mirror of
https://bitbucket.org/skobkin/chrome_point_plus.git
synced 2024-11-23 18:56:04 +00:00
* Парсер аудио-ссылок
This commit is contained in:
parent
d14e69c7b5
commit
572f137b5d
|
@ -56,6 +56,9 @@
|
||||||
"option_images_load_booru": {
|
"option_images_load_booru": {
|
||||||
"message": "Load pictures from Booru, Tumblr and some other sites"
|
"message": "Load pictures from Booru, Tumblr and some other sites"
|
||||||
},
|
},
|
||||||
|
"option_audios_parse_links": {
|
||||||
|
"message": "Parse audio links and create audio instead"
|
||||||
|
},
|
||||||
"option_videos_parse_links": {
|
"option_videos_parse_links": {
|
||||||
"message": "Parse video links and create video instead"
|
"message": "Parse video links and create video instead"
|
||||||
},
|
},
|
||||||
|
@ -66,7 +69,7 @@
|
||||||
"message": "Parse all links"
|
"message": "Parse all links"
|
||||||
},
|
},
|
||||||
"option_videos_parse_leave_links": {
|
"option_videos_parse_leave_links": {
|
||||||
"message": "Don't delete link itself"
|
"message": "Leave original link"
|
||||||
},
|
},
|
||||||
"option_embedding_soundcloud": {
|
"option_embedding_soundcloud": {
|
||||||
"message": "Soundcloud ▼"
|
"message": "Soundcloud ▼"
|
||||||
|
@ -138,7 +141,7 @@
|
||||||
"message": "@ before username"
|
"message": "@ before username"
|
||||||
},
|
},
|
||||||
"option_other_hightlight_post_comments": {
|
"option_other_hightlight_post_comments": {
|
||||||
"message": "Hightlight post with new comments (using @NokitaKaze server)"
|
"message": "Highlight post with new comments"
|
||||||
},
|
},
|
||||||
"option_other_show_recommendation_count": {
|
"option_other_show_recommendation_count": {
|
||||||
"message": "Show recommendation count and unique commentators count (using @NokitaKaze server)"
|
"message": "Show recommendation count and unique commentators count (using @NokitaKaze server)"
|
||||||
|
|
|
@ -56,6 +56,9 @@
|
||||||
"option_images_load_booru": {
|
"option_images_load_booru": {
|
||||||
"message": "Загружать картинки с Booru, Tumblr и других сайтов"
|
"message": "Загружать картинки с Booru, Tumblr и других сайтов"
|
||||||
},
|
},
|
||||||
|
"option_audios_parse_links": {
|
||||||
|
"message": "Превращать ссылки на аудио в аудио"
|
||||||
|
},
|
||||||
"option_videos_parse_links": {
|
"option_videos_parse_links": {
|
||||||
"message": "Превращать ссылки на видео в видео"
|
"message": "Превращать ссылки на видео в видео"
|
||||||
},
|
},
|
||||||
|
@ -138,7 +141,7 @@
|
||||||
"message": "Пёс перед юзернеймом"
|
"message": "Пёс перед юзернеймом"
|
||||||
},
|
},
|
||||||
"option_other_hightlight_post_comments": {
|
"option_other_hightlight_post_comments": {
|
||||||
"message": "Подсвечивать посты с новыми комментариями (используя сервер @NokitaKaze)"
|
"message": "Подсвечивать посты с новыми комментариями"
|
||||||
},
|
},
|
||||||
"option_other_show_recommendation_count": {
|
"option_other_show_recommendation_count": {
|
||||||
"message": "Показывать количество рекомендаций и уникальных комментаторов в посте (используя сервер @NokitaKaze)"
|
"message": "Показывать количество рекомендаций и уникальных комментаторов в посте (используя сервер @NokitaKaze)"
|
||||||
|
|
|
@ -38,6 +38,7 @@ $(document).ready(function() {
|
||||||
if (options.option_images_load_booru.value == true) {
|
if (options.option_images_load_booru.value == true) {
|
||||||
load_all_booru_images();
|
load_all_booru_images();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse webm-links and create video instead
|
// Parse webm-links and create video instead
|
||||||
if (options.option_videos_parse_links.value == true) {
|
if (options.option_videos_parse_links.value == true) {
|
||||||
if (options.option_videos_parse_links_type.value == "all") {
|
if (options.option_videos_parse_links_type.value == "all") {
|
||||||
|
@ -47,6 +48,11 @@ $(document).ready(function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Parse audio links
|
||||||
|
if (options.option_audios_parse_links.value == true) {
|
||||||
|
parse_all_audios();
|
||||||
|
}
|
||||||
|
|
||||||
// Soundcloud
|
// Soundcloud
|
||||||
if (options.option_embedding_soundcloud.value == true) {
|
if (options.option_embedding_soundcloud.value == true) {
|
||||||
// Injecting JS API
|
// Injecting JS API
|
||||||
|
@ -680,6 +686,7 @@ function parse_webm() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Видео
|
||||||
function parse_all_videos() {
|
function parse_all_videos() {
|
||||||
$('.post-content a').each(function(num, obj) {
|
$('.post-content a').each(function(num, obj) {
|
||||||
if ($(obj).hasClass('booru_pic')) {
|
if ($(obj).hasClass('booru_pic')) {
|
||||||
|
@ -692,7 +699,7 @@ function parse_all_videos() {
|
||||||
if (n = href.match(new RegExp('\\.(webm|avi|mp4|mpg|mpeg)(\\?.+)?$', 'i'))) {
|
if (n = href.match(new RegExp('\\.(webm|avi|mp4|mpg|mpeg)(\\?.+)?$', 'i'))) {
|
||||||
var player = document.createElement('video');
|
var player = document.createElement('video');
|
||||||
var mime = video_extension_to_mime(n[1]);
|
var mime = video_extension_to_mime(n[1]);
|
||||||
$(player).html('<source src="' + href + '" type=\'' + mime + '"\' />').attr('controls', 'controls').css({
|
$(player).html('<source src="' + href + '" type=\'' + mime + '\' />').attr('controls', 'controls').css({
|
||||||
'display': 'block',
|
'display': 'block',
|
||||||
'max-width': '95%'
|
'max-width': '95%'
|
||||||
}).addClass('parsed-webm-link');
|
}).addClass('parsed-webm-link');
|
||||||
|
@ -717,6 +724,50 @@ function video_extension_to_mime(extension) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Аудио
|
||||||
|
function parse_all_audios(){
|
||||||
|
$('.post-content a').each(function(num, obj) {
|
||||||
|
if ($(obj).hasClass('booru_pic')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var href = obj.href;
|
||||||
|
var n = null;
|
||||||
|
|
||||||
|
if (n = href.match(new RegExp('^https?:\\/\\/([a-z0-9.-]+)/[a-z0-9/.%-]+\\.(mp3|ogg|wav)(\\?.+)?$', 'i'))) {
|
||||||
|
var domain = n[1];
|
||||||
|
// Проверяем откуда мы грузимся
|
||||||
|
if (domain.match(new RegExp('\\.vk\\.me$', 'i'))){
|
||||||
|
// Так то ж Контакт!
|
||||||
|
if (!n[3].match('extra\\=', 'i')){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var player = document.createElement('audio');
|
||||||
|
var mime = audio_extension_to_mime(n[2]);
|
||||||
|
$(player).html('<source src="' + href + '" type=\'' + mime + '\' />').attr('controls', 'controls').css({
|
||||||
|
'display': 'block',
|
||||||
|
'max-width': '350px'
|
||||||
|
}).addClass('parsed-audio-link');
|
||||||
|
|
||||||
|
obj.parentElement.insertBefore(player, obj);
|
||||||
|
|
||||||
|
if (current_options.option_audios_parse_leave_links.value == false) {
|
||||||
|
$(obj).hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function audio_extension_to_mime(extension) {
|
||||||
|
switch (extension) {
|
||||||
|
case 'mp3': return 'audio/mpeg';
|
||||||
|
case 'ogg': return 'audio/ogg; codecs=vorbis';
|
||||||
|
case 'wav': return 'audio/vnd.wave';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Плашки у постов
|
// Плашки у постов
|
||||||
function set_posts_count_label() {
|
function set_posts_count_label() {
|
||||||
var ids = [];
|
var ids = [];
|
||||||
|
@ -799,6 +850,7 @@ function parse_pleercom_links_ajax() {
|
||||||
if (n = href.match(new RegExp('^https?:\\/\\/pleer\\.com\\/tracks\\/([0-9a-z]+)', 'i'))) {
|
if (n = href.match(new RegExp('^https?:\\/\\/pleer\\.com\\/tracks\\/([0-9a-z]+)', 'i'))) {
|
||||||
var player_div = document.createElement('div');
|
var player_div = document.createElement('div');
|
||||||
$(player_div).addClass('embeded_audio').addClass('embeded_audio_' + n[1]);
|
$(player_div).addClass('embeded_audio').addClass('embeded_audio_' + n[1]);
|
||||||
|
$(obj).addClass('pleercom_original_link_'+n[1]);
|
||||||
obj.parentElement.insertBefore(player_div, obj);
|
obj.parentElement.insertBefore(player_div, obj);
|
||||||
create_pleercom_ajax(n[1]);
|
create_pleercom_ajax(n[1]);
|
||||||
}
|
}
|
||||||
|
@ -823,6 +875,10 @@ function create_pleercom_ajax(id) {
|
||||||
'preload': 'auto'
|
'preload': 'auto'
|
||||||
});
|
});
|
||||||
$('.embeded_audio_' + this.settings.pleer_id)[0].appendChild(player);
|
$('.embeded_audio_' + this.settings.pleer_id)[0].appendChild(player);
|
||||||
|
|
||||||
|
if (current_options.option_embedding_pleercom_orig_link.value == false){
|
||||||
|
$('.pleercom_original_link_'+this.settings.pleer_id).hide();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'error': function() {
|
'error': function() {
|
||||||
console.log('Can not get pleer.com url');
|
console.log('Can not get pleer.com url');
|
||||||
|
|
|
@ -62,6 +62,14 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="option-node">
|
||||||
|
<input type="checkbox" class="option-boolean" id="option-audios-parse-links"><label for="option-audios-parse-links" data-i18n="option_audios_parse_links"></label>
|
||||||
|
|
||||||
|
<div class="option-node">
|
||||||
|
<input type="checkbox" class="option-boolean" id="option-audios-parse-leave-links"><label for="option-audios-parse-leave-links" data-i18n="option_embedding_soundcloud_orig_link"></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="option-node">
|
<div class="option-node">
|
||||||
<input type="checkbox" class="option-boolean" id="option-embedding-soundcloud"><label for="option-embedding-soundcloud" data-i18n="option_embedding_soundcloud"></label>
|
<input type="checkbox" class="option-boolean" id="option-embedding-soundcloud"><label for="option-embedding-soundcloud" data-i18n="option_embedding_soundcloud"></label>
|
||||||
|
|
||||||
|
@ -76,6 +84,10 @@
|
||||||
<div class="option-node">
|
<div class="option-node">
|
||||||
<input type="checkbox" class="option-boolean" id="option-embedding-pleercom-nokita-server"><label for="option-embedding-pleercom-nokita-server" data-i18n="option_embedding_pleercom_nokita_server"></label>
|
<input type="checkbox" class="option-boolean" id="option-embedding-pleercom-nokita-server"><label for="option-embedding-pleercom-nokita-server" data-i18n="option_embedding_pleercom_nokita_server"></label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="option-node">
|
||||||
|
<input type="checkbox" class="option-boolean" id="option-embedding-pleercom-orig-link"><label for="option-embedding-pleercom-orig-link" data-i18n="option_embedding_soundcloud_orig_link"></label>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue