]*?class\\s*=\\s*(\"|')?" + objRef.id + "\\1[^>]*>", "igm" );
var objReg_cls = new RegExp( "\\b" + objRef.id + "\\b" );
var objReg_div = /
]*?class\s*=\s*("|')(.*?)\1[^>]*>/igm;
while ( objReg_div.test( objRef.text ) ) {
var cls = RegExp.$2;
var div = RegExp.lastMatch;
var next = RegExp.rightContext;
if ( !objReg_cls.test( cls ) ) continue;
var objRet = {};
objRet.inner = "";
objRet.outer = "";
var close = 0;
var success = false;
var objReg1 = /
]*)?>/ig;
var objReg2 = /<\/div\s*>/ig;
while( objReg2.test( next ) ) {
var left = RegExp.leftContext;
var open = 0;
while ( objReg1.test( left ) ) {
if ( RegExp.$1.match( /\/$/ ) ) continue;
open++;
}
if ( open === close ) {
objRet.inner = left;
objRet.outer = div + left + "
";
success = true;
break;
}
close++;
}
if ( success == true ) arrRet.push( objRet );
}
return arrRet;
}
function Rel2Abs( strPageurl, strRelurl ) {
//2014/09/18 version 0.2
if ( strRelurl.split( /[?]/ )[0].match( /(\w+?):\/\/([^\/]+)(\/.*)?/ ) ) {
return strRelurl;
}
if ( strPageurl.split( /[?]/ )[0].match( /(\w+?):\/\/([^\/]+)(?:\/(.*))?/ ) ) {
var protocol = RegExp.$1;
var domain = RegExp.$2;
var path = RegExp.$3;
}
if ( !protocol ) protocol = "http";
if ( !domain ) domain = "";
if ( !path ) path = "";
var base = protocol + "://" + domain;
if ( strRelurl.match( /^\/\// ) ) {
var absurl = protocol + ":" + strRelurl;
} else if ( strRelurl.match( /^\// ) ) {
absurl = base + strRelurl;
} else {
var pathz = path.split( "/" );
pathz.pop();
if ( strRelurl.match( /^((\.\.\/|\.\/)+)(.+)?/ ) ) {
var dotp = RegExp.$1;
var relpath = RegExp.$3;
var objReg = /\.\.\//g;
while ( objReg.test( dotp ) ) pathz.pop();
} else {
relpath = strRelurl;
}
if ( pathz.length <= 0 ) var abspath = "/";
else abspath = "/" + pathz.join( "/" ) + "/";
absurl = base + abspath + relpath;
}
return absurl;
}
function setType( objDat ) {
if ( !objDat.src || typeof objDat.src != "string" ) return false;
if ( objDat.src.match( /^\/\// ) ) objDat.src = "http:" + objDat.src;
if ( !objDat.src.match( /:\/\/([^\/?]+)(?::\d+)?\// ) ) return false;
objDat.domain = RegExp.$1;
if ( objDat.domain.match( /(.+\.)?allplayer\.tk$/i ) ) {
objDat.type = "allplayertk";
} else if ( objDat.domain.match( /(.+\.)?mooplayer\.com$/i ) ) {
objDat.type = "mooplayercom";
} else if ( objDat.domain.match( /(.+\.)?flashx\.tv$/i ) ) {
objDat.type = "flashxtv";
objDat.script = "flashxtv.site.js";
} else if ( objDat.domain.match( /(.+\.)?streamin\.to$/i ) ) {//erooppai only
objDat.type = "streaminto";
objDat.script = "streaminto.site.js";
} else if ( objDat.domain.match( /(.+\.)?uptostream\.com$/i ) ) {//avmuryou only
objDat.type = "uptostream";
objDat.script = "uptostream.site.js";
} else if ( objDat.domain.match( /(.+\.)?openload\.(?:co|io)$/i ) ) {//avmuryou only
objDat.type = "openload";
objDat.script = "openloadio.site.js";
} else if ( objDat.domain.match( /(?:.+\.)?videomega\.tv$/i ) ) {
objDat.type = "videomegatv";
objDat.script = "videomegatv.site.js";
} else if ( objDat.domain.match( /(?:.+\.)?videowood\.tv$/i ) ) {
objDat.type = "videowoodtv";
objDat.script = "videowoodtv.site.js";
} else {
objDat.type = "unknown";
}
return true;
}
function clsInputBox(){
//VBScript InputBox
this.isOK = false;
this._objSC = null;
this._initialize = function (){
try {
this._objSC = new ActiveXObject( "ScriptControl" );
this._objSC.Language = "VBScript";
this._objSC.AddCode( "Function VB_IB(p, t, d) : VB_IB = InputBox(p, t, d) : End Function" );
this.isOK = true;
} catch(e) {
this.isOK = false;
}
}
this._initialize();
this.InputBox = function (msg, title, def){
if ( this.isOK ){
return this._objSC.Run( "VB_IB", msg, title, def);
}
}
}
function parseRet( strRet, min, max, add ){
//input box 入力文字列を処理します。
//return : Array
var arrR = [];
if ( !strRet || typeof strRet != "string" ) return arrR;
var arrS = strRet.split( "," );
for ( var i = 0; i < arrS.length; i++ ){
if ( arrS[ i ].match( /^\s*(\d+)\s*$/ ) ) {
var num = parseInt( RegExp.$1, 10 ) - add;
if ( ( min <= num && num < max ) && !inArray( num, arrR ) ) arrR.push( num );
}
}
return arrR;
function inArray( element, arr ) {
var flag = false;
for ( var i = 0; i < arr.length; i++ ) {
if ( arr[i] === element ) {
flag = true;
break;
}
}
return flag;
}
}
/* msgbox */
function clsMsgBox(){
//WScript.Shell Popup
this.isOK = false;
this._objShell = null;
this._initialize = function (){
try{
this._objShell = new ActiveXObject( "WScript.Shell" );
this.isOK = true;
} catch( e ) {
this.isOK = false;
}
}
this._initialize();
this.MsgBox = function ( msg, title, btn ){
if ( btn == undefined ) btn = 1;
//btn=1の時ret: OK:1, キャンセル:2
if ( this.isOK )
return this._objShell.Popup( msg, 0, title, btn+64 );
}
}
/* msgbox */
function showMsg( src, ps ) {
var objBx = new clsMsgBox();
if ( objBx.isOK ) {
objBx.MsgBox( "取得できませんでした。"
+ "\n動画配信元:\n" + src
+ ( ps? ("\n\n" + ps): "" )
, "from hpjavcom.site.js", 0 );
}
}
function clsIncludeSiteScript() {
var code1 = "(function(){\n\n";
var code2 = "\n\nreturn {'isSiteUrl':isSiteUrl,'getVideoDetail':getVideoDetail};})()";
var cePath = "\\CravingExplorer\\site-script\\";
this.isOK = false;
//initialize
try {
var appPath = ( new ActiveXObject( "WScript.Shell" ) ).SpecialFolders( "AppData" );
this.isOK = true;
} catch( e ) {
appPath = "";
this.isOK = false;
}
function evalScript( strFullPath, strCharset ) {
try {
var objStream = new ActiveXObject( "ADODB.Stream" );
objStream.Charset = strCharset;
objStream.Open();
objStream.LoadFromFile( strFullPath );
var obj = eval( "(" + code1 + objStream.ReadText() + code2 + ")" );
objStream.Close();
} catch( e ) {
obj = null;
}
if ( !obj || typeof obj != "object" ) return null;
if ( typeof obj.isSiteUrl != "function" ) return null;
if ( typeof obj.getVideoDetail != "function" ) return null;
return obj;
}
this.includeSiteScript = function ( strFileName ) {
if ( !this.isOK ) return null;
var strFullPath = appPath + cePath + strFileName;
var objS = evalScript( strFullPath, "unicode" );
if ( !objS ) objS = evalScript( strFullPath, "utf-8" );
return objS;
};
this.replaceTitle = function ( objRtn, title ) {
var count = 0;
var safe = 300;
while ( count < safe ) {
if ( objRtn[ "videoTitle" + count ] == undefined ) break;
count++;
}
if ( count <= 1 ) {
objRtn.videoTitle0 = title;
} else {
for ( var i = 0; i < count; i++ ) {
objRtn[ "videoTitle" + i ] = title + "_" + ( (i<9)?("0"+(i+1)):(""+(i+1)) );
}
}
return objRtn;
};
}
function getRealUrl_allplayertk( url, referer ) {
var objRef = { "text":"" };
try {
var objHttp = new ActiveXObject( "WinHttp.WinHttpRequest.5.1" );
objHttp.option(12) = true;
objHttp.open( "GET", url, false );
if ( referer ) objHttp.setRequestHeader( "Referer", referer );
objHttp.send();
objRef.text = objHttp.responseText;
} catch ( e ) {
objRef.text = "";
}
if ( !objRef.text ) return "";
return getRealUrl_dean( objRef );
}
function getRealUrl_dean( objRef ) {
if ( !objRef.text || typeof objRef.text != "string" ) return "";
var objReg_stup = /jwplayer\s*\([^)]*\)\.setup\(([\s\S]*?)\)\s*;/im;
var code = objReg_stup.test( objRef.text )? RegExp.$1: "";
if ( !code ) {
var objReg_evl = /eval\((\s*function\s*\(\s*p\s*,\s*a\s*,\s*c\s*,\s*k\s*,\s*e\s*,\s*d\s*\)\s*\{[\s\S]*?\.split\(\s*'\|'\s*\)\))\)/gm;
while ( objReg_evl.test( objRef.text ) ) {
var tmp = RegExp.$1;
if ( tmp.match( /jwplayer/ ) ) {
try {
tmp = ( new Function( "var a=" + tmp + ";return a;" ) )();
} catch ( e ) {
tmp = "";
}
if ( tmp && typeof tmp == "string" && objReg_stup.test( tmp ) ) {
code = RegExp.$1;
break;
}
}
}
}
if ( !code || typeof code != "string" ) return "";
code = code.replace( /("|')?logo\1\s*:\s*\{[^}]*\}/, "" ).replace( /("|')?related\1\s*:\s*\{[^}]*\}/, "" );
var realUrl = "";
if ( code.match( /[,{]\s*("|')?sources\1\s*:\s*(\[[^]]*\])\s*[,}]/m ) ) {
var plst = RegExp.$2;
var objReg = /\{[^}]*\}/gm;
var arrDat = [];
while ( objReg.test( plst ) ) {
var dat = RegExp.lastMatch;
var file = dat.match( /[{,]\s*("|')?file\1\s*:\s*("|')(.*?)\2\s*[},]/m )? RegExp.$3: "";
if ( !file ) continue;
var label = dat.match( /[{,]\s*("|')?label\1\s*:\s*("|')(.*?)\2\s*[},]/m )? RegExp.$3: "";
var rate = label.match( /(\d+)p/i )? parseInt( RegExp.$1, 10 ): 0;
if ( isNaN( rate ) ) rate = 0;
if ( label.toLowerCase() === "sd" ) rate = 480;
if ( label.toLowerCase() === "hd" ) rate = 720;
var obj = {};
obj.file = file;
obj.label = label;
obj.rate = rate;
arrDat.push( obj );
}
if ( arrDat.length > 0 ) {
arrDat.sort( function(a,b){ return b.rate - a.rate; } );
realUrl = arrDat[0].file;
}
}
if ( !realUrl ) {
code = code.replace( /[,{]\s*("|')?sources\1\s*:\s*(\[[^]]*\])\s*[,}]/m,"" );
if ( code.match( /[,{]\s*("|')?file\1\s*:\s*("|')(.*?)\2\s*[,}]/m ) ) {
realUrl = RegExp.$3;
}
}
if ( !realUrl &&
code.match( /\{\s*("|')?type\1\s*:\s*("|')html5\2\s*,\s*("|')?config\3\s*:\s*\{\s*("|')?file\4\s*:\s*('|")(.*?)\5/ ) ) {
realUrl = RegExp.$6;
}
return realUrl;
}