Browse Source

Merge branch 'pr/570'

master
Igor Zhukov 10 years ago
parent
commit
ecc1bd4207
  1. 3
      app/css/app.css
  2. 7
      app/js/directives.js
  3. 8
      app/js/services.js

3
app/css/app.css

@ -1308,6 +1308,9 @@ div.im_message_video_thumb {
.im_message_vine_embed { .im_message_vine_embed {
padding-bottom: 100%; padding-bottom: 100%;
} }
.im_message_soundcloud_embed {
padding-bottom: 56.25%; /* 16/9 ratio */
}
.im_message_media_embed iframe, .im_message_media_embed iframe,
.im_message_media_embed webview { .im_message_media_embed webview {
position: absolute; position: absolute;

7
app/js/directives.js

@ -218,6 +218,13 @@ angular.module('myApp.directives', ['myApp.filters'])
'src="https://vine.co/v/' + vineID + '/embed/simple"></' + embedTag + '></div>'; 'src="https://vine.co/v/' + vineID + '/embed/simple"></' + embedTag + '></div>';
break; break;
case 'soundcloud':
var soundcloudUrl = embedData[1];
html = '<div class="im_message_media_embed im_message_soundcloud_embed"><' + embedTag + ' type="text/html" frameborder="0" ' +
'src="https://w.soundcloud.com/player/?url=' + encodeEntities(encodeURIComponent(soundcloudUrl)) +
'&amp;auto_play=false&amp;hide_related=true&amp;show_comments=false&amp;show_user=true&amp;show_reposts=false&amp;visual=true"></' + embedTag + '></div>';
break;
case 'twitter': case 'twitter':
html = '<div class="im_message_twitter_embed"><blockquote class="twitter-tweet" lang="en"><a href="' + embedData[1] + '"></a></blockquote></div>'; html = '<div class="im_message_twitter_embed"><blockquote class="twitter-tweet" lang="en"><a href="' + embedData[1] + '"></a></blockquote></div>';

8
app/js/services.js

@ -3113,13 +3113,14 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
var regexAlphaNumericChars = "0-9\.\_" + regexAlphaChars; var regexAlphaNumericChars = "0-9\.\_" + regexAlphaChars;
var regExp = new RegExp('((?:(ftp|https?)://|(?:mailto:)?([A-Za-z0-9._%+-]+@))(\\S*\\.\\S*[^\\s.;,(){}<>"\']))|(\\n)|(' + emojiUtf.join('|') + ')|(^|\\s)(#[' + regexAlphaNumericChars + ']{3,20})', 'i'); var regExp = new RegExp('((?:(ftp|https?)://|(?:mailto:)?([A-Za-z0-9._%+-]+@))(\\S*\\.\\S*[^\\s.;,(){}<>"\']))|(\\n)|(' + emojiUtf.join('|') + ')|(^|\\s)(#[' + regexAlphaNumericChars + ']{3,20})', 'i');
var youtubeRegex = /(?:https?:\/\/)?(?:www\.)?youtu(?:|.be|be.com|.b)(?:\/v\/|\/watch\\?v=|e\/|(?:\/\??#)?\/watch(?:.+)v=)(.{11})(?:\&[^\s]*)?/; var youtubeRegex = /(?:https?:\/\/)?(?:www\.)?youtu(?:|\.be|be\.com|\.b)(?:\/v\/|\/watch\\?v=|e\/|(?:\/\??#)?\/watch(?:.+)v=)(.{11})(?:\&[^\s]*)?/;
var vimeoRegex = /(?:https?:\/\/)?(?:www\.)?vimeo\.com\/(\d+)/; var vimeoRegex = /(?:https?:\/\/)?(?:www\.)?vimeo\.com\/(\d+)/;
var instagramRegex = /https?:\/\/(?:instagr\.am\/p\/|instagram\.com\/p\/)([a-zA-Z0-9\-\_]+)/i; var instagramRegex = /https?:\/\/(?:instagr\.am\/p\/|instagram\.com\/p\/)([a-zA-Z0-9\-\_]+)/i;
var vineRegex = /https?:\/\/vine\.co\/v\/([a-zA-Z0-9\-\_]+)/i; var vineRegex = /https?:\/\/vine\.co\/v\/([a-zA-Z0-9\-\_]+)/i;
var twitterRegex = /https?:\/\/twitter\.com\/.+?\/status\/\d+/i; var twitterRegex = /https?:\/\/twitter\.com\/.+?\/status\/\d+/i;
var facebookRegex = /https?:\/\/(?:www\.)?facebook\.com\/.+?\/posts\/\d+/i; var facebookRegex = /https?:\/\/(?:www\.)?facebook\.com\/.+?\/posts\/\d+/i;
var gplusRegex = /https?:\/\/plus\.google\.com\/\d+\/posts\/[a-zA-Z0-9\-\_]+/i; var gplusRegex = /https?:\/\/plus\.google\.com\/\d+\/posts\/[a-zA-Z0-9\-\_]+/i;
var soundcloudRegex = /https?:\/\/(?:soundcloud\.com|snd\.sc)\/([a-zA-Z0-9%\-\_]+)\/([a-zA-Z0-9%\-\_]+)/i;
return { return {
wrapRichText: wrapRichText, wrapRichText: wrapRichText,
@ -3265,6 +3266,11 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
else if (embedUrlMatches = text.match(vineRegex)) { else if (embedUrlMatches = text.match(vineRegex)) {
return ['vine', embedUrlMatches[1]]; return ['vine', embedUrlMatches[1]];
} }
else if (embedUrlMatches = text.match(soundcloudRegex)) {
if (embedUrlMatches[1] != 'explore') {
return ['soundcloud', embedUrlMatches[0]];
}
}
if (!Config.Modes.chrome_packed) { // Need external JS if (!Config.Modes.chrome_packed) { // Need external JS
if (embedUrlMatches = text.match(twitterRegex)) { if (embedUrlMatches = text.match(twitterRegex)) {

Loading…
Cancel
Save