mirror of
https://github.com/vega-org/vega-providers.git
synced 2026-04-17 15:41:45 +00:00
1 line
8.3 KiB
JavaScript
1 line
8.3 KiB
JavaScript
var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){var value;result.done?resolve(result.value):(value=result.value,value instanceof P?value:new P(function(resolve){resolve(value)})).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};exports.getStream=getStream,exports.getRedirectLinks=getRedirectLinks,exports.decodeString=decodeString;__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){var value;result.done?resolve(result.value):(value=result.value,value instanceof P?value:new P(function(resolve){resolve(value)})).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};const hubcloudDecode=function(value){return void 0===value?"":atob(value.toString())};function hubcloudExtractor(link,signal,axios,cheerio,headers){return __awaiter(this,void 0,void 0,function*(){var _a,_b,_c,_d,_e,_f;try{headers.Cookie="ext_name=ojplmecpdpgccookcobabopnaifgidhf; xla=s4t; cf_clearance=woQrFGXtLfmEMBEiGUsVHrUBMT8s3cmguIzmMjmvpkg-1770053679-1.2.1.1-xBrQdciOJsweUF6F2T_OtH6jmyanN_TduQ0yslc_XqjU6RcHSxI7.YOKv6ry7oYo64868HYoULnVyww536H2eVI3R2e4wKzsky6abjPdfQPxqpUaXjxfJ02o6jl3_Vkwr4uiaU7Wy596Vdst3y78HXvVmKdIohhtPvp.vZ9_L7wvWdce0GRixjh_6JiqWmWMws46hwEt3hboaS1e1e4EoWCvj5b0M_jVwvSxBOAW5emFzvT3QrnRh4nyYmKDERnY";const baseUrl=link.split("/").slice(0,3).join("/"),streamLinks=[],vLinkText=(yield axios(`${link}`,{headers:headers,signal:signal})).data,$vLink=cheerio.load(vLinkText),vLinkRedirect=vLinkText.match(/var\s+url\s*=\s*'([^']+)';/)||[];let vcloudLink=hubcloudDecode(null===(_b=null===(_a=vLinkRedirect[1])||void 0===_a?void 0:_a.split("r="))||void 0===_b?void 0:_b[1])||vLinkRedirect[1]||$vLink(".fa-file-download.fa-lg").parent().attr("href")||link;(null==vcloudLink?void 0:vcloudLink.startsWith("/"))&&(vcloudLink=`${baseUrl}${vcloudLink}`);const vcloudRes=yield fetch(vcloudLink,{headers:headers,signal:signal,redirect:"follow"}),$=cheerio.load(yield vcloudRes.text()),linkClass=$(".btn-success.btn-lg.h6,.btn-danger,.btn-secondary");for(const element of linkClass){let link=$(element).attr("href")||"";switch(!0){case null==link?void 0:link.includes("pixeld"):if(!(null==link?void 0:link.includes("api"))){const token=link.split("/").pop(),baseUrl=link.split("/").slice(0,-2).join("/");link=`${baseUrl}/api/file/${token}?download`}streamLinks.push({server:"Pixeldrain",link:link,type:"mkv"});break;case(null==link?void 0:link.includes(".dev"))&&!(null==link?void 0:link.includes("/?id=")):streamLinks.push({server:"Cf Worker",link:link,type:"mkv"});break;case(null==link?void 0:link.includes("hubcloud"))||(null==link?void 0:link.includes("/?id=")):try{const newLinkRes=yield fetch(link,{method:"HEAD",headers:headers,signal:signal,redirect:"manual"});let newLink=link;if(newLink=newLinkRes.status>=300&&newLinkRes.status<400?newLinkRes.headers.get("location")||link:newLinkRes.url&&newLinkRes.url!==link?newLinkRes.url:newLinkRes.headers.get("location")||link,newLink.includes("googleusercontent"))newLink=newLink.split("?link=")[1];else{const newLinkRes2=yield fetch(newLink,{method:"HEAD",headers:headers,signal:signal,redirect:"manual"});newLink=newLinkRes2.status>=300&&newLinkRes2.status<400?(null===(_c=newLinkRes2.headers.get("location"))||void 0===_c?void 0:_c.split("?link=")[1])||newLink:newLinkRes2.url&&newLinkRes2.url!==newLink?newLinkRes2.url.split("?link=")[1]||newLinkRes2.url:(null===(_d=newLinkRes2.headers.get("location"))||void 0===_d?void 0:_d.split("?link=")[1])||newLink}streamLinks.push({server:"hubcloud",link:newLink,type:"mkv"})}catch(error){}break;case null==link?void 0:link.includes("cloudflarestorage"):streamLinks.push({server:"CfStorage",link:link,type:"mkv"});break;case(null==link?void 0:link.includes("fastdl"))||(null==link?void 0:link.includes("fsl.")):streamLinks.push({server:"FastDl",link:link,type:"mkv"});break;case link.includes("hubcdn")&&!link.includes("/?id="):streamLinks.push({server:"HubCdn",link:link,type:"mkv"});break;default:if((null==link?void 0:link.includes(".mkv"))||(null==link?void 0:link.includes("?token="))){const serverName=(null===(_f=null===(_e=link.match(/^(?:https?:\/\/)?(?:www\.)?([^\/]+)/i))||void 0===_e?void 0:_e[1])||void 0===_f?void 0:_f.replace(/\./g," "))||"Unknown";streamLinks.push({server:serverName,link:link,type:"mkv"})}}}return streamLinks}catch(error){return[]}})}function getStream(_a){return __awaiter(this,arguments,void 0,function*({link:link,signal:signal,providerContext:providerContext}){var _b,_c,_d,_e;const{axios:axios,cheerio:cheerio,commonHeaders:headers}=providerContext;let hubdriveLink="";if(link.includes("hubdrive")){const hubdriveText=(yield axios.get(link,{headers:headers,signal:signal})).data;hubdriveLink=cheerio.load(hubdriveText)(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href")||link}else{const decodedString=decodeString(null===(_d=null===(_c=null===(_b=(yield axios.get(link,{headers:headers,signal:signal})).data.split("s('o','"))||void 0===_b?void 0:_b[1])||void 0===_c?void 0:_c.split("',180"))||void 0===_d?void 0:_d[0]);link=atob(null==decodedString?void 0:decodedString.o);const redirectLink=yield getRedirectLinks(link,signal,headers);if(redirectLink.includes("hubcloud")||redirectLink.includes("/drive/"))return yield hubcloudExtractor(redirectLink,signal,axios,cheerio,headers);const redirectLinkText=(yield axios.get(redirectLink,{headers:headers,signal:signal})).data;if(hubdriveLink=cheerio.load(redirectLinkText)('h3:contains("1080p")').find("a").attr("href")||redirectLinkText.match(/href="(https:\/\/hubcloud\.[^\/]+\/drive\/[^"]+)"/)[1],hubdriveLink.includes("hubdrive")){const hubdriveText=(yield axios.get(hubdriveLink,{headers:headers,signal:signal})).data;hubdriveLink=cheerio.load(hubdriveText)(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href")||hubdriveLink}}const hubcloudLink=(null===(_e=(yield axios.get(hubdriveLink,{headers:headers,signal:signal})).data.match(/<META HTTP-EQUIV="refresh" content="0; url=([^"]+)">/i))||void 0===_e?void 0:_e[1])||hubdriveLink;try{return yield hubcloudExtractor(hubcloudLink,signal,axios,cheerio,headers)}catch(error){return[]}})}const encode=function(value){return btoa(value.toString())},decode=function(value){return void 0===value?"":atob(value.toString())},pen=function(value){return value.replace(/[a-zA-Z]/g,function(_0x1a470e){return String.fromCharCode((_0x1a470e<="Z"?90:122)>=(_0x1a470e=_0x1a470e.charCodeAt(0)+13)?_0x1a470e:_0x1a470e-26)})},abortableTimeout=(ms,{signal:signal}={})=>new Promise((resolve,reject)=>{if(signal&&signal.aborted)return reject(new Error("Aborted"));const timer=setTimeout(resolve,ms);signal&&signal.addEventListener("abort",()=>{clearTimeout(timer),reject(new Error("Aborted"))})});function getRedirectLinks(link,signal,headers){return __awaiter(this,void 0,void 0,function*(){try{const res=yield fetch(link,{headers:headers,signal:signal}),resText=yield res.text();for(var match,regex=/ck\('_wp_http_\d+','([^']+)'/g,combinedString="";null!==(match=regex.exec(resText));)combinedString+=match[1];const decodedString=decode(pen(decode(decode(combinedString)))),data=JSON.parse(decodedString),token=encode(null==data?void 0:data.data),blogLink=(null==data?void 0:data.wp_http1)+"?re="+token;let wait=abortableTimeout(1e3*(Number(null==data?void 0:data.total_time)+3),{signal:signal});yield wait;let vcloudLink="Invalid Request";for(;vcloudLink.includes("Invalid Request");){const blogRes=yield fetch(blogLink,{headers:headers,signal:signal}),blogResText=yield blogRes.text();if(!blogResText.includes("Invalid Request")){vcloudLink=blogResText.match(/var reurl = "([^"]+)"/)||"";break}}return blogLink||link}catch(err){return link}})}function rot13(str){return str.replace(/[a-zA-Z]/g,function(char){const charCode=char.charCodeAt(0),baseCharCode=char<="Z"?65:97;return String.fromCharCode((charCode-baseCharCode+13)%26+baseCharCode)})}function decodeString(encryptedString){try{let decoded=atob(encryptedString);return decoded=atob(decoded),decoded=rot13(decoded),decoded=atob(decoded),JSON.parse(decoded)}catch(error){return null}} |