mirror of
https://bitbucket.org/skobkin/chrome_point_plus.git
synced 2024-11-23 10:46:02 +00:00
Merge branch 'developer'
This commit is contained in:
commit
95f8dab7f5
|
@ -89,6 +89,9 @@
|
||||||
"option_embedding_coubcom": {
|
"option_embedding_coubcom": {
|
||||||
"message": "Coub.com ▼"
|
"message": "Coub.com ▼"
|
||||||
},
|
},
|
||||||
|
"option_embedding_twitter_tweets": {
|
||||||
|
"message": "Embedding tweets from Twitter"
|
||||||
|
},
|
||||||
"option_nsfw": {
|
"option_nsfw": {
|
||||||
"message": "NSFW content filtering"
|
"message": "NSFW content filtering"
|
||||||
},
|
},
|
||||||
|
|
|
@ -89,6 +89,9 @@
|
||||||
"option_embedding_coubcom": {
|
"option_embedding_coubcom": {
|
||||||
"message": "Coub.com ▼"
|
"message": "Coub.com ▼"
|
||||||
},
|
},
|
||||||
|
"option_embedding_twitter_tweets": {
|
||||||
|
"message": "Встраиваем твиты из Твиттера"
|
||||||
|
},
|
||||||
"option_nsfw": {
|
"option_nsfw": {
|
||||||
"message": "Фильтрация NSFW-контента"
|
"message": "Фильтрация NSFW-контента"
|
||||||
},
|
},
|
||||||
|
|
|
@ -512,6 +512,11 @@ $(document).ready(function() {
|
||||||
set_comments_refresh_tick(options);
|
set_comments_refresh_tick(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Твиты из Твиттера
|
||||||
|
if (options.option_embedding_twitter_tweets.value == true){
|
||||||
|
twitter_tweet_embedding_init();
|
||||||
|
}
|
||||||
|
|
||||||
$('#point-plus-debug').fadeOut(1000);
|
$('#point-plus-debug').fadeOut(1000);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1327,3 +1332,79 @@ function comments_count_refresh_tick(current_options) {
|
||||||
'height': '300px'
|
'height': '300px'
|
||||||
}).hide();
|
}).hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Встраиваем твиты из Твиттера
|
||||||
|
*/
|
||||||
|
function twitter_tweet_embedding_init() {
|
||||||
|
// Чёрная магия. Выбираемся из манямирка, прихватив с собой пару сраных функций
|
||||||
|
// https://developer.chrome.com/extensions/content_scripts Isolated World
|
||||||
|
var e = document.createElement("script");
|
||||||
|
e.appendChild(document.createTextNode(twitter_tweet_embedding_wait_for_ready_injected.toString() +
|
||||||
|
twitter_tweet_embedding_parse_links.toString() + 'twitter_tweet_embedding_wait_for_ready_injected();'));
|
||||||
|
document.head.appendChild(e);
|
||||||
|
|
||||||
|
// Встраиваем скрипт так, как описано в best twitter practice https://dev.twitter.com/web/javascript/loading
|
||||||
|
window.twttr = (function(d, s, id) {
|
||||||
|
var t, js, fjs = d.getElementsByTagName(s)[0];
|
||||||
|
if (d.getElementById(id)) return;
|
||||||
|
js = d.createElement(s);
|
||||||
|
js.id = id;
|
||||||
|
js.src = "https://platform.twitter.com/widgets.js";
|
||||||
|
fjs.parentNode.insertBefore(js, fjs);
|
||||||
|
return window.twttr || (t = {
|
||||||
|
_e: [], ready: function(f) {
|
||||||
|
t._e.push(f);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}(document, "script", "twitter-wjs"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Проверяем загрузились ли мы. Эта функция запускается из page scope
|
||||||
|
*/
|
||||||
|
function twitter_tweet_embedding_wait_for_ready_injected() {
|
||||||
|
if (typeof(window.twttr) == 'undefined') {
|
||||||
|
setTimeout(twitter_tweet_embedding_wait_for_ready_injected, 100);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (typeof(window.twttr.widgets) == 'undefined') {
|
||||||
|
setTimeout(twitter_tweet_embedding_wait_for_ready_injected, 100);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
twitter_tweet_embedding_parse_links();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Парсим все ссылки. Эта функция запускается из page scope
|
||||||
|
*/
|
||||||
|
function twitter_tweet_embedding_parse_links() {
|
||||||
|
// Обрабатываем все твиты
|
||||||
|
var twitter_tweet_count = 0;
|
||||||
|
$('.post-content a').each(function(num, obj) {
|
||||||
|
if ($(obj).hasClass('booru_pic')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var href = obj.href;
|
||||||
|
var n;
|
||||||
|
|
||||||
|
if (n = href.match(new RegExp('^https?://(www\\.)?twitter\\.com/[^/]+/status/([0-9]+)', 'i'))) {
|
||||||
|
var image = document.createElement('div');
|
||||||
|
$(image).attr({
|
||||||
|
'id': 'tweet-' + twitter_tweet_count,
|
||||||
|
'data-tweet-id': n[2]
|
||||||
|
}).addClass('twitter-tweet-embedded');
|
||||||
|
obj.parentElement.insertBefore(image, obj);
|
||||||
|
|
||||||
|
window.twttr.widgets.createTweet(
|
||||||
|
n[2],
|
||||||
|
image,
|
||||||
|
{
|
||||||
|
theme: 'dark'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
twitter_tweet_count++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "Point+",
|
"name": "Point+",
|
||||||
"version": "1.18.7",
|
"version": "1.18.8",
|
||||||
"default_locale": "ru",
|
"default_locale": "ru",
|
||||||
"author": "__MSG_ext_author__",
|
"author": "__MSG_ext_author__",
|
||||||
"homepage_url": "https://bitbucket.org/skobkin/chrome_point_plus",
|
"homepage_url": "https://bitbucket.org/skobkin/chrome_point_plus",
|
||||||
|
|
|
@ -101,6 +101,10 @@
|
||||||
<input type="checkbox" class="option-boolean" id="option-embedding-coubcom-orig-link"><label for="option-embedding-coubcom-orig-link" data-i18n="option_embedding_soundcloud_orig_link"></label>
|
<input type="checkbox" class="option-boolean" id="option-embedding-coubcom-orig-link"><label for="option-embedding-coubcom-orig-link" data-i18n="option_embedding_soundcloud_orig_link"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="option-node">
|
||||||
|
<input type="checkbox" class="option-boolean" id="option-embedding-twitter-tweets"><label for="option-embedding-twitter-tweets" data-i18n="option_embedding_twitter_tweets"></label>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="option-node">
|
<div class="option-node">
|
||||||
|
|
Loading…
Reference in a new issue