mirror of
https://bitbucket.org/skobkin/chrome_point_plus.git
synced 2024-11-23 18:56:04 +00:00
Merged in isqua/chrome_point_plus/refactor_prostopleer (pull request #37) Refactor pleer.com and instagram embedding, remove bquery_ajax; Fixes #79
This commit is contained in:
commit
d35dc6036e
|
@ -86,9 +86,6 @@
|
|||
"option_embedding_pleercom": {
|
||||
"message": "Pleer.com ▼"
|
||||
},
|
||||
"option_embedding_pleercom_nokita_server": {
|
||||
"message": "Use Nokita's server (deprecated)"
|
||||
},
|
||||
"option_embedding_coubcom": {
|
||||
"message": "Coub.com ▼"
|
||||
},
|
||||
|
|
|
@ -86,9 +86,6 @@
|
|||
"option_embedding_pleercom": {
|
||||
"message": "Pleer.com ▼"
|
||||
},
|
||||
"option_embedding_pleercom_nokita_server": {
|
||||
"message": "Использовать сервер @NokitaKaze (deprecated)"
|
||||
},
|
||||
"option_embedding_coubcom": {
|
||||
"message": "Coub.com ▼"
|
||||
},
|
||||
|
|
|
@ -1,113 +0,0 @@
|
|||
/**
|
||||
* @deprecated since 1.36.0
|
||||
*/
|
||||
function $ajax_prot(settings){
|
||||
if (settings==undefined){return;}
|
||||
if (settings['url'] ==undefined){return;}this.url=settings['url'];
|
||||
if (settings['async'] !==undefined){this.async =settings['async'];}
|
||||
if (settings['type'] !==undefined){this.type =settings['type'];}
|
||||
if (settings['postdata']!==undefined){this.postdata=settings['postdata'];}
|
||||
if (settings['dont_set_content_type']!==undefined){
|
||||
this.dont_set_content_type=settings['dont_set_content_type'];
|
||||
}
|
||||
|
||||
this.xhr=new XMLHttpRequest();
|
||||
this.xhr.parent =this;
|
||||
this.xhr.settings=settings;
|
||||
this.xhr.success =settings['success'];
|
||||
this.xhr.error =settings['error'];
|
||||
this.xhr.onreadystatechange=this.change;
|
||||
this.xhr.open(this.type, this.url, this.async);
|
||||
if ((this.type=='POST')&& !this.dont_set_content_type){
|
||||
this.xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
}
|
||||
if (settings.headers!==undefined){
|
||||
for (var i=0;i<settings.headers.length;i++){
|
||||
this.xhr.setRequestHeader(settings.headers[i][0], settings.headers[i][1]);
|
||||
}
|
||||
}
|
||||
this.xhr.send(this.postdata);
|
||||
}
|
||||
|
||||
$ajax_prot.prototype={
|
||||
version: '0.0.5a',
|
||||
url: '',
|
||||
type: 'GET',
|
||||
async: true,
|
||||
postdata:null,
|
||||
xhr: null,
|
||||
dont_set_content_type: false,
|
||||
change:function(){
|
||||
if (this.readyState!==4){return;}
|
||||
if (this.status==200){
|
||||
if (this.success!==undefined){this.success(this.responseText,this.textStatus,this);}
|
||||
}else{
|
||||
if (this.error !==undefined){this.error(this.responseText,this.textStatus,this);}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$ajax=function (settings){return new $ajax_prot(settings);}
|
||||
|
||||
/**
|
||||
* @deprecated since 1.36.0
|
||||
*/
|
||||
function urlencode(text){return encodeURIComponent(text);}
|
||||
|
||||
/**
|
||||
* @deprecated since 1.36.0
|
||||
*/
|
||||
function sad_safe_reg(text){
|
||||
var ar='.-\\/[]{}?+';
|
||||
var s=''; for (var i=0;i<text.length;i++){
|
||||
if ((' '+ar).indexOf(text[i])>0){
|
||||
s+='\\'+text[i];
|
||||
}else{
|
||||
s+=text[i];
|
||||
}
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since 1.36.0
|
||||
*/
|
||||
function sad_xml_getnode(node,path){//node as domNode
|
||||
if ('' ==path){return node;}
|
||||
if ('#'==path){return node.textContent || node.text;}
|
||||
|
||||
var ri=new RegExp('^([a-z0-9.:_-]*)(\\|[0-9]+)?(/?(.*))?','i');
|
||||
var t=path.match(ri);
|
||||
if (t[1].length<1){return undefined;}
|
||||
if (t[2]==undefined){t[2]='';}
|
||||
if (t[4]==undefined){t[4]='';}
|
||||
|
||||
var k=parseInt(t[2].substr(1));
|
||||
if (!(k>0)){k=1;}
|
||||
var r=new RegExp('^'+sad_safe_reg(t[1])+'$');
|
||||
for (var i=0;i<node.childNodes.length;i++){
|
||||
if (r.test(node.childNodes[i].nodeName)){
|
||||
k--;if (k==0){return sad_xml_getnode(node.childNodes[i],t[4]);}
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since 1.36.0
|
||||
*/
|
||||
function sad_xml_attribute(node,name){
|
||||
if (node==undefined){return undefined;}
|
||||
var r=new RegExp('^'+sad_safe_reg(name)+'$','i');
|
||||
for (var i=0;i<node.attributes.length;i++){
|
||||
if (r.test(node.attributes[i].nodeName)){return node.attributes[i].nodeValue;}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since 1.36.0
|
||||
*/
|
||||
function sad_x2n(xml){
|
||||
return xml.responseXML.childNodes[xml.responseXML.childNodes.length-1];
|
||||
}
|
|
@ -972,84 +972,25 @@ function set_posts_count_label() {
|
|||
}
|
||||
|
||||
function parse_pleercom_links(current_options) {
|
||||
if (current_options.is('option_embedding_pleercom_nokita_server')) {
|
||||
parse_pleercom_links_nokita();
|
||||
} else {
|
||||
parse_pleercom_links_ajax(current_options);
|
||||
$('.post-content a').each(function(num, link) {
|
||||
var $link = $(link);
|
||||
var href = link.href;
|
||||
var matches = href.match(new RegExp('^https?:\\/\\/pleer\\.com\\/tracks\\/([0-9a-z]+)', 'i'));
|
||||
|
||||
if (matches) {
|
||||
trackHref = 'http://embed.pleer.com/normal/track?id=' + matches[1] + '&t=grey';
|
||||
|
||||
$link.before('<object width="578" height="60"><param name="movie" value="' + trackHref + '"></param>' +
|
||||
'<embed src="' + trackHref + '" type="application/x-shockwave-flash" width="578" height="60">' +
|
||||
'</embed></object>');
|
||||
|
||||
if ( ! current_options.is('option_embedding_pleercom_orig_link')) {
|
||||
$link.remove();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @deprecated since 1.19
|
||||
*/
|
||||
function parse_pleercom_links_nokita() {
|
||||
$('.post-content a').each(function(num, obj) {
|
||||
var href = obj.href;
|
||||
var n = null;
|
||||
|
||||
if (n = href.match(new RegExp('^https?:\\/\\/pleer\\.com\\/tracks\\/([0-9a-z]+)', 'i'))) {
|
||||
var player = document.createElement('audio');
|
||||
$(player).attr({
|
||||
'src': 'https://api.kanaria.ru/point/get_pleer_file.php?id=' + n[1],
|
||||
'controls': 'controls',
|
||||
'preload': 'none'
|
||||
});
|
||||
|
||||
var player_div = document.createElement('div');
|
||||
$(player_div).addClass('embeded_audio').addClass('embeded_audio_' + n[1]);
|
||||
player_div.appendChild(player);
|
||||
|
||||
obj.parentElement.insertBefore(player_div, obj);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function parse_pleercom_links_ajax(current_options) {
|
||||
$('.post-content a').each(function(num, obj) {
|
||||
var href = obj.href;
|
||||
var n = null;
|
||||
|
||||
if (n = href.match(new RegExp('^https?:\\/\\/pleer\\.com\\/tracks\\/([0-9a-z]+)', 'i'))) {
|
||||
var player_div = document.createElement('div');
|
||||
$(player_div).addClass('embeded_audio').addClass('embeded_audio_' + n[1]);
|
||||
$(obj).addClass('pleercom_original_link_'+n[1]);
|
||||
obj.parentElement.insertBefore(player_div, obj);
|
||||
create_pleercom_ajax(n[1], current_options);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function create_pleercom_ajax(id, current_options) {
|
||||
$ajax({
|
||||
'url': 'https://pleer.com/site_api/files/get_url',
|
||||
'type': 'post',
|
||||
'postdata': 'action=download&id=' + id,
|
||||
'dont_set_content_type': true,
|
||||
'pleer_id': id,
|
||||
'headers': [['Accept', '*'], ['Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8']],
|
||||
'success': function(a) {
|
||||
var answer = JSON.parse(a);
|
||||
var player = document.createElement('audio');
|
||||
// @todo Проверять существование track_link
|
||||
$(player).attr({
|
||||
'src': answer.track_link,
|
||||
'controls': 'controls',
|
||||
'preload': 'auto'
|
||||
});
|
||||
$('.embeded_audio_' + this.settings.pleer_id)[0].appendChild(player);
|
||||
|
||||
if (current_options.is('option_embedding_pleercom_orig_link', false)){
|
||||
$('.pleercom_original_link_'+this.settings.pleer_id).hide();
|
||||
}
|
||||
},
|
||||
'error': function() {
|
||||
console.log('Can not get pleer.com url');
|
||||
setTimeout(new Function('create_pleercom_ajax("' + this.settings.pleer_id + '");'), 1000);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Проставляем теги у постов
|
||||
// @hint В данный момент эта фича используются для NSFW, потом выборку по тегам можно будет использовать много где
|
||||
function create_tag_system() {
|
||||
|
@ -1612,41 +1553,36 @@ function twitter_tweet_embedding_parse_links() {
|
|||
function instagram_posts_embedding_init(options) {
|
||||
var regex = new RegExp('^https?://(www\\.)?instagram\\.com/p/([\\w-]+)/?', 'i');
|
||||
|
||||
$('.post-content a:not(.booru_pic)').each(function(num, $link) {
|
||||
var href = $link.href;
|
||||
var n;
|
||||
$('.post-content a:not(.booru_pic)').each(function(num, link) {
|
||||
var $link = $(link);
|
||||
var href = link.href;
|
||||
var matches = href.match(regex);
|
||||
|
||||
if (n = href.match(regex)) {
|
||||
$ajax({
|
||||
'url': 'https://api.instagram.com/oembed?url=' + urlencode('http://instagram.com/p/' + n[2] + '/'),
|
||||
'success': function(text) {
|
||||
var answer = JSON.parse(text);
|
||||
var new_post = document.createElement('a');
|
||||
$(new_post).attr({
|
||||
'id': 'instagram-' + num,
|
||||
'href': answer.thumbnail_url,
|
||||
'title': answer.title,
|
||||
'target': '_blank',
|
||||
'data-fancybox-group': (options.is('option_fancybox_bind_images_to_one_flow'))
|
||||
? 'one_flow_gallery' : '',
|
||||
'data-fancybox-title': (options.is('option_fancybox_smart_hints'))
|
||||
? answer.title : ' '
|
||||
}).addClass('postimg instagram-post-embedded');
|
||||
if (matches) {
|
||||
$.ajax('https://api.instagram.com/oembed?url=' + 'http://instagr.am/p/' + matches[2] + '/', {
|
||||
dataType: 'json',
|
||||
success: function(response) {
|
||||
var $imgLink = $('<a><img src="' + response.thumbnail_url +
|
||||
'" + alt="' + response.title + '"></a>');
|
||||
|
||||
var image = document.createElement('img');
|
||||
image.alt = new_post.title;
|
||||
image.src = new_post.href;
|
||||
new_post.appendChild(image);
|
||||
$imgLink
|
||||
.addClass('postimg instagram-post-embedded')
|
||||
.attr({
|
||||
id: 'instagram-' + num,
|
||||
href: 'http://instagram.com/p/' + matches[2] + '/media/?size=l',
|
||||
title: response.title,
|
||||
traget: '_blank',
|
||||
'data-fancybox-group': (options.is('option_fancybox_bind_images_to_one_flow')) ? 'one_flow_gallery' : '',
|
||||
'data-fancybox-title': (options.is('option_fancybox_smart_hints')) ? response.title : ''
|
||||
});
|
||||
|
||||
// Leave or replace
|
||||
if (options.is('option_embedding_instagram_posts_orig_link')) {
|
||||
$link.parentElement.insertBefore(new_post, $link);
|
||||
} else {
|
||||
$($link).replaceWith(new_post);
|
||||
$link.before($imgLink);
|
||||
|
||||
if ( ! options.is('option_embedding_instagram_posts_orig_link')) {
|
||||
$link.remove();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
"js": [
|
||||
"vendor/jquery/jquery.min.js",
|
||||
|
||||
"js/bquery_ajax.js",
|
||||
|
||||
"js/options-manager.js",
|
||||
"js/message-sender.js",
|
||||
|
||||
|
|
|
@ -106,11 +106,6 @@
|
|||
<input type="checkbox" name="option-embedding-pleercom" id="option-embedding-pleercom">
|
||||
<label for="option-embedding-pleercom" data-i18n="option_embedding_pleercom"></label>
|
||||
|
||||
<label class="option-node">
|
||||
<input type="checkbox" name="option-embedding-pleercom-nokita-server">
|
||||
<span data-i18n="option_embedding_pleercom_nokita_server"></span>
|
||||
</label>
|
||||
|
||||
<label class="option-node">
|
||||
<input type="checkbox" name="option-embedding-pleercom-orig-link">
|
||||
<span data-i18n="option_embedding_soundcloud_orig_link"></span>
|
||||
|
|
Loading…
Reference in a new issue