// ==SiteScript== // @siteName BubbaPorn // @siteUrl http://www.bubbaporn.com/ // @author mayan // @authorUrl // @scriptUrl // @description // @date 2015/11/22 // @version 0.1.1 // ==/SiteScript== function CravingSiteScript() { this._initialize(); } CravingSiteScript.prototype = { _xhr: null, _initialize: function() {}, _getXmlHttpRequest: function() { if ( this._xhr != null ) { return this._xhr; } var xhr = null; var these = [ function() { return new XMLHttpRequest(); } , function() { return new ActiveXObject( "Msxml2.XMLHTTP" ); } , function() { return new ActiveXObject( "Microsoft.XMLHTTP" ); } , function() { return new ActiveXObject( "Msxml2.XMLHTTP.4.0" ); } ]; for ( var i = 0, length = these.length; i < length; i++ ) { var func = these[ i ]; try { xhr = func(); break; } catch( e ) {} } this._xhr = xhr; return this._xhr; }, _load: function( url, data, method ) { var req = this._getXmlHttpRequest(); var mtd = ( method == null ) ? "GET" : "POST"; req.open( mtd, url, false ); if ( mtd == "POST" ) { req.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" ); } req.send( data ); return req.responseText; }, getResponseText: function( url, data, method ) { return this._load( url, data, method ); }, getResponseJSON: function( url, data, method ) { var text = this._load( url, data, method ); return eval( "("+text+")" ); }, /// Math random: function( limit ) { return Math.floor( Math.random() * limit ); }, /// String decodeHtml: function( str ) { return str.replace( /&(quot|#0*34);/ig, "\"" ) .replace( /&(amp|#0*38);/ig, "&" ) .replace( /&(apos|#0*39);/ig, "'" ) .replace( /&(lt|#0*60);/ig, "<" ) .replace( /&(gt|#0*62);/ig, ">" ) .replace( /&(nbsp|#0*160);/ig, " " ) .replace( /&(frasl|#8260);/ig, "/" ) .replace( /(\d+);/g, function(a,b){return String.fromCharCode(parseInt(b,10));} ) .replace( /([0-9a-f]+);/ig, function(a,b){return String.fromCharCode(parseInt(b,16));} ); } } function isSiteUrl( url ) { if ( url.match( /http:\/\/(?:www\.)?bubbaporn\.com\/videos\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?serveporn\.com\/videos\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?todayporn\.com\/videos\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?serviporno\.com\/videos\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?voglioporno\.com\/video\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?einfachporno\.com\/filme\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?pornodoido\.com\/video\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?pornodingue\.com\/videos\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?pornozot\.com\/films\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?selamporno\.com\/videolari\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?chikiporno\.com\/(?:видео|%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE)\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?koloporno\.com\/filmy\/[^\/?]+/ ) ) return true; if ( url.match( /http:\/\/(?:www\.)?(?:bubbaporn|serveporn|todayporn|serviporno|voglioporno|einfachporno|pornodoido|pornodingue|pornozot|selamporno|chikiporno|koloporno)\.com\/embed\/\d+/ ) ) return true; return false; } function getVideoDetail( url ) { url = url.replace( /^http:\/\/(?:www\.)?(serveporn|todayporn)\.com\//, "http://www.bubbaporn.com/" ); url = url.replace( /^http:\/\/(bubbaporn|serveporn|todayporn|serviporno|voglioporno|einfachporno|pornodoido|pornodingue|pornozot|selamporno|chikiporno|koloporno)\.com\//, function (a,b){return "http://www." + b + ".com/";} ); if ( url.match( /http:\/\/www\.(?:bubbaporn|serveporn|todayporn|serviporno|voglioporno|einfachporno|pornodoido|pornodingue|pornozot|selamporno|chikiporno|koloporno)\.com\/(?:video|videos|filme|films|videolari|видео|%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE|filmy)\/([^\/?]+)/ ) ) { var type = "page"; var bk_title = decodeURI( RegExp.$1 ); } else if ( url.match( /http:\/\/www\.(?:bubbaporn|serveporn|todayporn|serviporno|voglioporno|einfachporno|pornodoido|pornodingue|pornozot|selamporno|chikiporno|koloporno)\.com\/embed\/(\d+)/ ) ) { type = "embed"; bk_title = "serveporn_" + RegExp.$1; } else { return null; } var craving = new CravingSiteScript(); try { var text = craving.getResponseText( url ); } catch( e ) { text = ""; } if ( !text ) return null; if ( type == "page" ) { if ( text.match( /]*?property\s*=\s*('|")?og:title\2[^>]*)>/im ) && RegExp.$1.match( /\s+content\s*=\s*('|")(.*?)\1/im ) ) { var title = craving.decodeHtml( RegExp.$2 ); } } if ( !title && text.match( /