diff --git a/dist/mod/stream.js b/dist/mod/stream.js index c0a70d8..a035eee 100644 --- a/dist/mod/stream.js +++ b/dist/mod/stream.js @@ -1 +1 @@ -"use strict";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())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=void 0;const headers={Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","Cache-Control":"no-store","Accept-Language":"en-US,en;q=0.9",DNT:"1","sec-ch-ua":'"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"Windows"',"Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate",Cookie:"popads_user_id=6ba8fe60a481387a3249f05aa058822d","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0"},getStream=function(_a){return __awaiter(this,arguments,void 0,function*({link:url,type:type,providerContext:providerContext}){var _b,_c;const{axios:axios,cheerio:cheerio}=providerContext;try{const modGetEpisodeLinks=function(_a){return __awaiter(this,arguments,void 0,function*({url:url,providerContext:providerContext}){var _b;const{axios:axios,cheerio:cheerio}=providerContext;try{url.includes("url=")&&(url=atob(url.split("url=")[1]));const html=(yield axios.get(url)).data;let $=cheerio.load(html);if(url.includes("url=")){const newUrl=null===(_b=$("meta[http-equiv='refresh']").attr("content"))||void 0===_b?void 0:_b.split("url=")[1],html2=(yield axios.get(newUrl||url)).data;$=cheerio.load(html2)}const episodeLinks=[];return $("h3,h4").map((i,element)=>{const seriesTitle=$(element).text(),episodesLink=$(element).find("a").attr("href");episodesLink&&"#"!==episodesLink&&episodeLinks.push({title:seriesTitle.trim()||"No title found",link:episodesLink||""})}),$("a.maxbutton").map((i,element)=>{const seriesTitle=$(element).children("span").text(),episodesLink=$(element).attr("href");episodesLink&&"#"!==episodesLink&&episodeLinks.push({title:seriesTitle.trim()||"No title found",link:episodesLink||""})}),episodeLinks}catch(err){return[]}})};if("movie"===type){url=(yield modGetEpisodeLinks({url:url,providerContext:providerContext}))[0].link||url}let downloadLink=yield modExtractor(url,providerContext);const ddl=(null===(_c=null===(_b=null==downloadLink?void 0:downloadLink.data)||void 0===_b?void 0:_b.match(/content="0;url=(.*?)"/))||void 0===_c?void 0:_c[1])||url,servers=[],driveLink=yield isDriveLink(ddl),driveHtml=(yield axios.get(driveLink,{headers:headers})).data,$drive=cheerio.load(driveHtml);try{const resumeBot=$drive(".btn.btn-light").attr("href")||"",resumeBotRes=yield axios.get(resumeBot,{headers:headers}),resumeBotToken=resumeBotRes.data.match(/formData\.append\('token', '([a-f0-9]+)'\)/)[1],resumeBotBody=new FormData;resumeBotBody.append("token",resumeBotToken);const resumeBotPath=resumeBotRes.data.match(/fetch\('\/download\?id=([a-zA-Z0-9\/+]+)'/)[1],resumeBotBaseUrl=resumeBot.split("/download")[0],resumeBotDownload=yield fetch(resumeBotBaseUrl+"/download?id="+resumeBotPath,{method:"POST",body:resumeBotBody,headers:{Referer:resumeBot,Cookie:"PHPSESSID=7e9658ce7c805dab5bbcea9046f7f308"}}),resumeBotDownloadData=yield resumeBotDownload.json();servers.push({server:"ResumeBot",link:resumeBotDownloadData.url,type:"mkv"})}catch(err){}try{const cfWorkersLink=driveLink.replace("/file","/wfile")+"?type=1",cfWorkersHtml=(yield axios.get(cfWorkersLink,{headers:headers})).data,$cfWorkers=cheerio.load(cfWorkersHtml);$cfWorkers(".btn-success").each((i,el)=>{var _a;const link=null===(_a=el.attribs)||void 0===_a?void 0:_a.href;link&&servers.push({server:"Cf Worker 1."+i,link:link,type:"mkv"})})}catch(err){}try{const cfWorkersLink=driveLink.replace("/file","/wfile")+"?type=2",cfWorkersHtml=(yield axios.get(cfWorkersLink,{headers:headers})).data,$cfWorkers=cheerio.load(cfWorkersHtml);$cfWorkers(".btn-success").each((i,el)=>{var _a;const link=null===(_a=el.attribs)||void 0===_a?void 0:_a.href;link&&servers.push({server:"Cf Worker 2."+i,link:link,type:"mkv"})})}catch(err){}try{const seed=$drive(".btn-danger").attr("href")||"",instantToken=seed.split("=")[1],InstantFromData=new FormData;InstantFromData.append("keys",instantToken);const videoSeedUrl=seed.split("/").slice(0,3).join("/")+"/api",instantLinkRes=yield fetch(videoSeedUrl,{method:"POST",body:InstantFromData,headers:{"x-token":videoSeedUrl}}),instantLinkData=yield instantLinkRes.json();if(!1===instantLinkData.error){const instantLink=instantLinkData.url;servers.push({server:"Gdrive-Instant",link:instantLink,type:"mkv"})}}catch(err){}return servers}catch(err){return[]}})};exports.getStream=getStream;const isDriveLink=ddl=>__awaiter(void 0,void 0,void 0,function*(){if(ddl.includes("drive")){const driveLeach=yield fetch(ddl),pathMatch=(yield driveLeach.text()).match(/window\.location\.replace\("([^"]+)"\)/),path=null==pathMatch?void 0:pathMatch[1];return`https://${ddl.split("/")[2]}${path}`}return ddl});function modExtractor(url,providerContext){return __awaiter(this,void 0,void 0,function*(){const{axios:axios,cheerio:cheerio}=providerContext;try{const wpHttp=url.split("sid=")[1];var bodyFormData0=new FormData;bodyFormData0.append("_wp_http",wpHttp);const res=yield fetch(url.split("?")[0],{method:"POST",body:bodyFormData0}),html=yield res.text(),$=cheerio.load(html),wpHttp2=$("input").attr("name","_wp_http2").val();var bodyFormData=new FormData;bodyFormData.append("_wp_http2",wpHttp2);const formUrl=$("form").attr("action")||url.split("?")[0],res2=yield fetch(formUrl,{method:"POST",body:bodyFormData}),link=(yield res2.text()).match(/setAttribute\("href",\s*"(.*?)"/)[1],cookie=link.split("=")[1];return yield axios.get(link,{headers:{Referer:formUrl,Cookie:`${cookie}=${wpHttp2}`}})}catch(err){}})} \ No newline at end of file +"use strict";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())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=void 0;const headers={Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","Cache-Control":"no-store","Accept-Language":"en-US,en;q=0.9",DNT:"1","sec-ch-ua":'"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"Windows"',"Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate",Cookie:"popads_user_id=6ba8fe60a481387a3249f05aa058822d","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0"},getStream=function(_a){return __awaiter(this,arguments,void 0,function*({link:url,type:type,providerContext:providerContext}){var _b,_c;const{axios:axios,cheerio:cheerio}=providerContext;try{const modGetEpisodeLinks=function(_a){return __awaiter(this,arguments,void 0,function*({url:url,providerContext:providerContext}){var _b;const{axios:axios,cheerio:cheerio}=providerContext;try{url.includes("url=")&&(url=atob(url.split("url=")[1]));const html=(yield axios.get(url)).data;let $=cheerio.load(html);if(url.includes("url=")){const newUrl=null===(_b=$("meta[http-equiv='refresh']").attr("content"))||void 0===_b?void 0:_b.split("url=")[1],html2=(yield axios.get(newUrl||url)).data;$=cheerio.load(html2)}const episodeLinks=[];return $("h3,h4").map((i,element)=>{const seriesTitle=$(element).text(),episodesLink=$(element).find("a").attr("href");episodesLink&&"#"!==episodesLink&&episodeLinks.push({title:seriesTitle.trim()||"No title found",link:episodesLink||""})}),$("a.maxbutton").map((i,element)=>{const seriesTitle=$(element).children("span").text(),episodesLink=$(element).attr("href");episodesLink&&"#"!==episodesLink&&episodeLinks.push({title:seriesTitle.trim()||"No title found",link:episodesLink||""})}),episodeLinks}catch(err){return[]}})};if("movie"===type){url=(yield modGetEpisodeLinks({url:url,providerContext:providerContext}))[0].link||url}let downloadLink=yield modExtractor(url,providerContext);const ddl=(null===(_c=null===(_b=null==downloadLink?void 0:downloadLink.data)||void 0===_b?void 0:_b.match(/content="0;url=(.*?)"/))||void 0===_c?void 0:_c[1])||url,servers=[],driveLink=yield isDriveLink(ddl),driveHtml=(yield axios.get(driveLink,{headers:headers})).data,$drive=cheerio.load(driveHtml);try{const resumeBot=$drive(".btn.btn-light").attr("href")||"",resumeBotRes=yield axios.get(resumeBot,{headers:headers}),resumeBotToken=resumeBotRes.data.match(/formData\.append\('token', '([a-f0-9]+)'\)/)[1],resumeBotBody=new FormData;resumeBotBody.append("token",resumeBotToken);const resumeBotPath=resumeBotRes.data.match(/fetch\('\/download\?id=([a-zA-Z0-9\/+]+)'/)[1],resumeBotBaseUrl=resumeBot.split("/download")[0],resumeBotDownload=yield fetch(resumeBotBaseUrl+"/download?id="+resumeBotPath,{method:"POST",body:resumeBotBody,headers:{Referer:resumeBot,Cookie:"PHPSESSID=7e9658ce7c805dab5bbcea9046f7f308"}}),resumeBotDownloadData=yield resumeBotDownload.json();servers.push({server:"ResumeBot",link:resumeBotDownloadData.url,type:"mkv"})}catch(err){}try{$drive(".btn-success").each((i,el)=>{var _a;const link=null===(_a=el.attribs)||void 0===_a?void 0:_a.href;link&&servers.push({server:"Resume Worker "+(i+1),link:link,type:"mkv"})})}catch(err){}try{const cfWorkersLink=driveLink.replace("/file","/wfile")+"?type=1",cfWorkersHtml=(yield axios.get(cfWorkersLink,{headers:headers})).data,$cfWorkers=cheerio.load(cfWorkersHtml);$cfWorkers(".btn-success").each((i,el)=>{var _a;const link=null===(_a=el.attribs)||void 0===_a?void 0:_a.href;link&&servers.push({server:"Cf Worker 1."+i,link:link,type:"mkv"})})}catch(err){}try{const cfWorkersLink=driveLink.replace("/file","/wfile")+"?type=2",cfWorkersHtml=(yield axios.get(cfWorkersLink,{headers:headers})).data,$cfWorkers=cheerio.load(cfWorkersHtml);$cfWorkers(".btn-success").each((i,el)=>{var _a;const link=null===(_a=el.attribs)||void 0===_a?void 0:_a.href;link&&servers.push({server:"Cf Worker 2."+i,link:link,type:"mkv"})})}catch(err){}try{const seed=$drive(".btn-danger").attr("href")||"",newLinkRes=yield fetch(seed,{method:"HEAD",headers:headers,redirect:"manual"});let newLink=seed;newLink=newLinkRes.status>=300&&newLinkRes.status<400?newLinkRes.headers.get("location")||seed:newLinkRes.url&&newLinkRes.url!==seed?newLinkRes.url||newLinkRes.url:newLinkRes.headers.get("location")||seed,servers.push({server:"Gdrive-Instant-2",link:(null==newLink?void 0:newLink.split("?url=")[1])||newLink,type:"mkv"})}catch(err){}return servers}catch(err){return[]}})};exports.getStream=getStream;const isDriveLink=ddl=>__awaiter(void 0,void 0,void 0,function*(){if(ddl.includes("drive")){const driveLeach=yield fetch(ddl),pathMatch=(yield driveLeach.text()).match(/window\.location\.replace\("([^"]+)"\)/),path=null==pathMatch?void 0:pathMatch[1];return`https://${ddl.split("/")[2]}${path}`}return ddl});function modExtractor(url,providerContext){return __awaiter(this,void 0,void 0,function*(){const{axios:axios,cheerio:cheerio}=providerContext;try{const wpHttp=url.split("sid=")[1];var bodyFormData0=new FormData;bodyFormData0.append("_wp_http",wpHttp);const res=yield fetch(url.split("?")[0],{method:"POST",body:bodyFormData0}),html=yield res.text(),$=cheerio.load(html),wpHttp2=$("input").attr("name","_wp_http2").val();var bodyFormData=new FormData;bodyFormData.append("_wp_http2",wpHttp2);const formUrl=$("form").attr("action")||url.split("?")[0],res2=yield fetch(formUrl,{method:"POST",body:bodyFormData}),link=(yield res2.text()).match(/setAttribute\("href",\s*"(.*?)"/)[1],cookie=link.split("=")[1];return yield axios.get(link,{headers:{Referer:formUrl,Cookie:`${cookie}=${wpHttp2}`}})}catch(err){}})} \ No newline at end of file diff --git a/dist/uhd/stream.js b/dist/uhd/stream.js index 82f91c6..1033e82 100644 --- a/dist/uhd/stream.js +++ b/dist/uhd/stream.js @@ -1 +1 @@ -"use strict";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())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=void 0;const headers={Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","Cache-Control":"no-store","Accept-Language":"en-US,en;q=0.9",DNT:"1","sec-ch-ua":'"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"Windows"',"Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0"},getStream=_a=>__awaiter(void 0,[_a],void 0,function*({link:url,providerContext:providerContext}){var _b,_c;try{const{axios:axios,cheerio:cheerio}=providerContext;let downloadLink=yield modExtractor(url,providerContext);const ddl=(null===(_c=null===(_b=null==downloadLink?void 0:downloadLink.data)||void 0===_b?void 0:_b.match(/content="0;url=(.*?)"/))||void 0===_c?void 0:_c[1])||url,driveLink=yield isDriveLink(ddl),ServerLinks=[],driveHtml=(yield axios.get(driveLink,{headers:headers})).data,$drive=cheerio.load(driveHtml);try{const seed=$drive(".btn-danger").attr("href")||"",instantToken=seed.split("=")[1],InstantFromData=new FormData;InstantFromData.append("keys",instantToken);const videoSeedUrl=seed.split("/").slice(0,3).join("/")+"/api",instantLinkRes=yield fetch(videoSeedUrl,{method:"POST",body:InstantFromData,headers:{"x-token":videoSeedUrl}}),instantLinkData=yield instantLinkRes.json();if(!1===instantLinkData.error){const instantLink=instantLinkData.url;ServerLinks.push({server:"Gdrive-Instant",link:instantLink,type:"mkv"})}}catch(err){}try{const resumeDrive=driveLink.replace("/file","/zfile"),resumeDriveHtml=(yield axios.get(resumeDrive,{headers:headers})).data,resumeLink=cheerio.load(resumeDriveHtml)(".btn-success").attr("href");resumeLink&&ServerLinks.push({server:"ResumeCloud",link:resumeLink,type:"mkv"})}catch(err){}try{const cfWorkersLink=driveLink.replace("/file","/wfile")+"?type=1",cfWorkersHtml=(yield axios.get(cfWorkersLink,{headers:headers})).data,$cfWorkers=cheerio.load(cfWorkersHtml);$cfWorkers(".btn-success").each((i,el)=>{var _a;const link=null===(_a=el.attribs)||void 0===_a?void 0:_a.href;link&&ServerLinks.push({server:"Cf Worker 1."+i,link:link,type:"mkv"})})}catch(err){}try{const cfWorkersLink=driveLink.replace("/file","/wfile")+"?type=2",cfWorkersHtml=(yield axios.get(cfWorkersLink,{headers:headers})).data,$cfWorkers=cheerio.load(cfWorkersHtml);$cfWorkers(".btn-success").each((i,el)=>{var _a;const link=null===(_a=el.attribs)||void 0===_a?void 0:_a.href;link&&ServerLinks.push({server:"Cf Worker 2."+i,link:link,type:"mkv"})})}catch(err){}return ServerLinks}catch(err){return[]}});exports.getStream=getStream;const isDriveLink=ddl=>__awaiter(void 0,void 0,void 0,function*(){if(ddl.includes("drive")){const driveLeach=yield fetch(ddl),pathMatch=(yield driveLeach.text()).match(/window\.location\.replace\("([^"]+)"\)/),path=null==pathMatch?void 0:pathMatch[1];return`https://${ddl.split("/")[2]}${path}`}return ddl});function modExtractor(url,providerContext){return __awaiter(this,void 0,void 0,function*(){const{axios:axios,cheerio:cheerio}=providerContext;try{const wpHttp=url.split("sid=")[1];var bodyFormData0=new FormData;bodyFormData0.append("_wp_http",wpHttp);const res=yield fetch(url.split("?")[0],{method:"POST",body:bodyFormData0}),html=yield res.text(),$=cheerio.load(html),wpHttp2=$("input").attr("name","_wp_http2").val();var bodyFormData=new FormData;bodyFormData.append("_wp_http2",wpHttp2);const formUrl=$("form").attr("action")||url.split("?")[0],res2=yield fetch(formUrl,{method:"POST",body:bodyFormData}),link=(yield res2.text()).match(/setAttribute\("href",\s*"(.*?)"/)[1],cookie=link.split("=")[1];return yield axios.get(link,{headers:{Referer:formUrl,Cookie:`${cookie}=${wpHttp2}`}})}catch(err){}})} \ No newline at end of file +"use strict";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())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=void 0;const headers={Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","Cache-Control":"no-store","Accept-Language":"en-US,en;q=0.9",DNT:"1","sec-ch-ua":'"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"Windows"',"Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0"},getStream=_a=>__awaiter(void 0,[_a],void 0,function*({link:url,providerContext:providerContext}){var _b,_c;try{const{axios:axios,cheerio:cheerio}=providerContext;let downloadLink=yield modExtractor(url,providerContext);const ddl=(null===(_c=null===(_b=null==downloadLink?void 0:downloadLink.data)||void 0===_b?void 0:_b.match(/content="0;url=(.*?)"/))||void 0===_c?void 0:_c[1])||url,driveLink=yield isDriveLink(ddl),ServerLinks=[],driveHtml=(yield axios.get(driveLink,{headers:headers})).data,$drive=cheerio.load(driveHtml);try{const seed=$drive(".btn-danger").attr("href")||"",instantToken=seed.split("=")[1],InstantFromData=new FormData;InstantFromData.append("keys",instantToken);const videoSeedUrl=seed.split("/").slice(0,3).join("/")+"/api",instantLinkRes=yield fetch(videoSeedUrl,{method:"POST",body:InstantFromData,headers:{"x-token":videoSeedUrl}}),instantLinkData=yield instantLinkRes.json();if(!1===instantLinkData.error){const instantLink=instantLinkData.url;ServerLinks.push({server:"Gdrive-Instant",link:instantLink,type:"mkv"})}}catch(err){}try{const seed=$drive(".btn-danger").attr("href")||"",newLinkRes=yield fetch(seed,{method:"HEAD",headers:headers,redirect:"manual"});let newLink=seed;newLink=newLinkRes.status>=300&&newLinkRes.status<400?newLinkRes.headers.get("location")||seed:newLinkRes.url&&newLinkRes.url!==seed?newLinkRes.url||newLinkRes.url:newLinkRes.headers.get("location")||seed,ServerLinks.push({server:"Gdrive-Instant-2",link:(null==newLink?void 0:newLink.split("?url=")[1])||newLink,type:"mkv"})}catch(err){}try{const resumeDrive=driveLink.replace("/file","/zfile"),resumeDriveHtml=(yield axios.get(resumeDrive,{headers:headers})).data,resumeLink=cheerio.load(resumeDriveHtml)(".btn-success").attr("href");resumeLink&&ServerLinks.push({server:"ResumeCloud",link:resumeLink,type:"mkv"})}catch(err){}try{$drive(".btn-success").each((i,el)=>{var _a;const link=null===(_a=el.attribs)||void 0===_a?void 0:_a.href;link&&ServerLinks.push({server:"Resume Worker "+(i+1),link:link,type:"mkv"})})}catch(err){}try{const cfWorkersLink=driveLink.replace("/file","/wfile")+"?type=1",cfWorkersHtml=(yield axios.get(cfWorkersLink,{headers:headers})).data,$cfWorkers=cheerio.load(cfWorkersHtml);$cfWorkers(".btn-success").each((i,el)=>{var _a;const link=null===(_a=el.attribs)||void 0===_a?void 0:_a.href;link&&ServerLinks.push({server:"Cf Worker 1."+i,link:link,type:"mkv"})})}catch(err){}try{const cfWorkersLink=driveLink.replace("/file","/wfile")+"?type=2",cfWorkersHtml=(yield axios.get(cfWorkersLink,{headers:headers})).data,$cfWorkers=cheerio.load(cfWorkersHtml);$cfWorkers(".btn-success").each((i,el)=>{var _a;const link=null===(_a=el.attribs)||void 0===_a?void 0:_a.href;link&&ServerLinks.push({server:"Cf Worker 2."+i,link:link,type:"mkv"})})}catch(err){}return ServerLinks}catch(err){return[]}});exports.getStream=getStream;const isDriveLink=ddl=>__awaiter(void 0,void 0,void 0,function*(){if(ddl.includes("drive")){const driveLeach=yield fetch(ddl),pathMatch=(yield driveLeach.text()).match(/window\.location\.replace\("([^"]+)"\)/),path=null==pathMatch?void 0:pathMatch[1];return`https://${ddl.split("/")[2]}${path}`}return ddl});function modExtractor(url,providerContext){return __awaiter(this,void 0,void 0,function*(){const{axios:axios,cheerio:cheerio}=providerContext;try{const wpHttp=url.split("sid=")[1];var bodyFormData0=new FormData;bodyFormData0.append("_wp_http",wpHttp);const res=yield fetch(url.split("?")[0],{method:"POST",body:bodyFormData0}),html=yield res.text(),$=cheerio.load(html),wpHttp2=$("input").attr("name","_wp_http2").val();var bodyFormData=new FormData;bodyFormData.append("_wp_http2",wpHttp2);const formUrl=$("form").attr("action")||url.split("?")[0],res2=yield fetch(formUrl,{method:"POST",body:bodyFormData}),link=(yield res2.text()).match(/setAttribute\("href",\s*"(.*?)"/)[1],cookie=link.split("=")[1];return yield axios.get(link,{headers:{Referer:formUrl,Cookie:`${cookie}=${wpHttp2}`}})}catch(err){}})} \ No newline at end of file diff --git a/providers/mod/stream.ts b/providers/mod/stream.ts index 738b42e..ff757c3 100644 --- a/providers/mod/stream.ts +++ b/providers/mod/stream.ts @@ -141,6 +141,22 @@ export const getStream = async function ({ } catch (err) { console.log("ResumeBot link not found", err); } + // Base page worker + try { + const baseWorkerStream = $drive(".btn-success"); + baseWorkerStream.each((i, el) => { + const link = (el as any).attribs?.href; + if (link) { + servers.push({ + server: "Resume Worker " + (i + 1), + link: link, + type: "mkv", + }); + } + }); + } catch (err) { + console.log("Base page worker link not found", err); + } // CF workers type 1 try { const cfWorkersLink = driveLink.replace("/file", "/wfile") + "?type=1"; @@ -185,37 +201,69 @@ export const getStream = async function ({ // gdrive - //instant link + //******* + //instant link 1 + //******* + // try { + // const seed = $drive(".btn-danger").attr("href") || ""; + // const instantToken = seed.split("=")[1]; + // console.log("InstantToken", instantToken); + // const InstantFromData = new FormData(); + // InstantFromData.append("keys", instantToken); + // const videoSeedUrl = seed.split("/").slice(0, 3).join("/") + "/api"; + // console.log("videoSeedUrl", videoSeedUrl); + // const instantLinkRes = await fetch(videoSeedUrl, { + // method: "POST", + // body: InstantFromData, + // headers: { + // "x-token": videoSeedUrl, + // }, + // }); + // const instantLinkData = await instantLinkRes.json(); + // // console.log('instantLinkData', instantLinkData); + // if (instantLinkData.error === false) { + // const instantLink = instantLinkData.url; + // servers.push({ + // server: "Gdrive-Instant", + // link: instantLink, + // type: "mkv", + // }); + // } else { + // console.log("Instant link not found", instantLinkData); + // } + // } catch (err) { + // console.log("Instant link not found", err); + // } + + //******* + //instant link 2 + //******* try { const seed = $drive(".btn-danger").attr("href") || ""; - const instantToken = seed.split("=")[1]; - // console.log('InstantToken', instantToken); - const InstantFromData = new FormData(); - InstantFromData.append("keys", instantToken); - const videoSeedUrl = seed.split("/").slice(0, 3).join("/") + "/api"; - // console.log('videoSeedUrl', videoSeedUrl); - const instantLinkRes = await fetch(videoSeedUrl, { - method: "POST", - body: InstantFromData, - headers: { - "x-token": videoSeedUrl, - }, + const newLinkRes = await fetch(seed, { + method: "HEAD", + headers, + redirect: "manual", }); - const instantLinkData = await instantLinkRes.json(); - // console.log('instantLinkData', instantLinkData); - if (instantLinkData.error === false) { - const instantLink = instantLinkData.url; - servers.push({ - server: "Gdrive-Instant", - link: instantLink, - type: "mkv", - }); + let newLink = seed; + if (newLinkRes.status >= 300 && newLinkRes.status < 400) { + newLink = newLinkRes.headers.get("location") || seed; + } else if (newLinkRes.url && newLinkRes.url !== seed) { + // Fallback: check if URL changed (redirect was followed) + newLink = newLinkRes.url || newLinkRes.url; } else { - console.log("Instant link not found", instantLinkData); + newLink = newLinkRes.headers.get("location") || seed; } + console.log("Gdrive-Instant-2 link", newLink?.split("?url=")[1]); + servers.push({ + server: "Gdrive-Instant-2", + link: newLink?.split("?url=")[1] || newLink, + type: "mkv", + }); } catch (err) { console.log("Instant link not found", err); } + return servers; } catch (err) { console.log("getStream error", err); diff --git a/providers/uhd/stream.ts b/providers/uhd/stream.ts index a2bbd9d..d452efe 100644 --- a/providers/uhd/stream.ts +++ b/providers/uhd/stream.ts @@ -42,6 +42,7 @@ export const getStream = async ({ const driveRes = await axios.get(driveLink, { headers }); const driveHtml = driveRes.data; const $drive = cheerio.load(driveHtml); + //instant link try { const seed = $drive(".btn-danger").attr("href") || ""; @@ -74,6 +75,35 @@ export const getStream = async ({ console.log("Instant link not found", err); } + //******* + //instant link 2 + //******* + try { + const seed = $drive(".btn-danger").attr("href") || ""; + const newLinkRes = await fetch(seed, { + method: "HEAD", + headers, + redirect: "manual", + }); + let newLink = seed; + if (newLinkRes.status >= 300 && newLinkRes.status < 400) { + newLink = newLinkRes.headers.get("location") || seed; + } else if (newLinkRes.url && newLinkRes.url !== seed) { + // Fallback: check if URL changed (redirect was followed) + newLink = newLinkRes.url || newLinkRes.url; + } else { + newLink = newLinkRes.headers.get("location") || seed; + } + console.log("Gdrive-Instant-2 link", newLink?.split("?url=")[1]); + ServerLinks.push({ + server: "Gdrive-Instant-2", + link: newLink?.split("?url=")[1] || newLink, + type: "mkv", + }); + } catch (err) { + console.log("Instant link not found", err); + } + // resume link try { const resumeDrive = driveLink.replace("/file", "/zfile"); @@ -94,6 +124,23 @@ export const getStream = async ({ console.log("Resume link not found"); } + // Base page worker + try { + const baseWorkerStream = $drive(".btn-success"); + baseWorkerStream.each((i, el) => { + const link = (el as any).attribs?.href; + if (link) { + ServerLinks.push({ + server: "Resume Worker " + (i + 1), + link: link, + type: "mkv", + }); + } + }); + } catch (err) { + console.log("Base page worker link not found", err); + } + // CF workers type 1 try { const cfWorkersLink = driveLink.replace("/file", "/wfile") + "?type=1";