From aa7c517f4d3aff34394215acc542d4c408c534b8 Mon Sep 17 00:00:00 2001 From: himanshu8443 Date: Sat, 6 Sep 2025 16:28:01 +0530 Subject: [PATCH] fix: update getStream function to remove hardcoded cookie and enhance photolinx handling --- dist/world4u/stream.js | 2 +- providers/world4u/stream.ts | 53 +++++++++++++++++++++++++++++++------ 2 files changed, 46 insertions(+), 9 deletions(-) diff --git a/dist/world4u/stream.js b/dist/world4u/stream.js index 2e9fa83..1b56153 100644 --- a/dist/world4u/stream.js +++ b/dist/world4u/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 getStream=function(_a){return __awaiter(this,arguments,void 0,function*({link:url,type:type,providerContext:providerContext}){var _b;const{axios:axios,cheerio:cheerio}=providerContext,headers={"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-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",Cookie:"61cn=1; 61wk=1; __cf_bm=wtv9Eoa2wrUDgevtAnJ6wUOZrxtVYBcddhUDtT0Wj_M-1757137848-1.0.1.1-8Tr7rV19zNgUcRYe_5567LKb2IZrKyxwrc1VWgTmMDd06Givhil3U2kMtUYTYkTnuD3sHUgfh8CO9Y5LrEcZACBbrPE.3Sq5F_JLXaK7Hrw; conv_tracking_data-2=%7B%22mf_source%22%3A%22regular_download-59%22%2C%22mf_content%22%3A%22Free%22%2C%22mf_medium%22%3A%22unknown%5C%2FDefault%20Browser%22%2C%22mf_campaign%22%3A%22616qpccbrq0y4oe%22%2C%22mf_term%22%3A%22d11b8f533377139aa38d757e5057630e%22%7D; ukey=pu2dyp35fyongstav3km969l8d6u2z82"};try{if("movie"===type){const linkData=(yield axios.get(url,{headers:headers})).data;url=cheerio.load(linkData)('strong:contains("INSTANT")').parent().attr("href")||url}if(url.includes("fastilinks")){const fastilinksData=(yield axios.get(url,{headers:headers})).data,fastilinksKey=cheerio.load(fastilinksData)('input[name="_csrf_token_645a83a41868941e4692aa31e7235f2"]').attr("value"),fastilinksFormData=new FormData;fastilinksFormData.append("_csrf_token_645a83a41868941e4692aa31e7235f2",fastilinksKey||"");const fastilinksRes2=yield fetch(url,{method:"POST",headers:headers,body:fastilinksFormData}),fastilinksHtml=yield fastilinksRes2.text(),$$$=cheerio.load(fastilinksHtml);url=$$$('a:contains("mediafire")').attr("href")||$$$('a:contains("photolinx")').attr("href")||url}if(url.includes("photolinx")){const photolinxData=(yield axios.get(url,{headers:headers})).data,$$$=cheerio.load(photolinxData),access_token=$$$("#generate_url").attr("data-token"),body={type:"DOWNLOAD_GENERATE",payload:{access_token:access_token,uid:$$$("#generate_url").attr("data-uid")}},photolinxRes2=yield fetch("https://photolinx.shop/action",{headers:{"sec-fetch-site":"same-origin","x-requested-with":"xmlhttprequest",cookie:"PHPSESSID=9a8d855c700cf0711831c04960c2e2b4",Referer:"https://photolinx.shop/download/5mPkrBD0D2x","Referrer-Policy":"strict-origin-when-cross-origin"},body:JSON.stringify(body),method:"POST"}),photolinxData2=yield photolinxRes2.json(),dwUrl=null==photolinxData2?void 0:photolinxData2.download_url;if(dwUrl){return[{server:"Photolinx",link:dwUrl,type:"mkv"}]}}const html=(yield axios.get(url,{headers:headers})).data,streamLinks=[];let data={download:""};try{const key=(null===(_b=html.match(/formData\.append\('key',\s*'(\d+)'\);/))||void 0===_b?void 0:_b[1])||"",formData=new FormData;formData.append("key",key);const streamRes=yield fetch(url,{method:"POST",headers:headers,body:formData});data=yield streamRes.json()}catch(err){}let $=cheerio.load(html);const mediafireUrl=$('h1:contains("Download")').find("a").attr("href")||$(".input.popsok").attr("href");if(mediafireUrl){const urlContentType=(yield fetch(mediafireUrl,{headers:{Referer:url}})).headers.get("content-type");if(urlContentType&&urlContentType.includes("video"))return streamLinks.push({server:"Mediafire",link:mediafireUrl,type:"mkv"}),streamLinks;{const repairRes=yield fetch(mediafireUrl,{headers:{Referer:url}}),repairHtml=yield repairRes.text(),base64Link=cheerio.load(repairHtml)(".input.popsok").attr("data-scrambled-url"),href=base64Link?atob(base64Link):null;let downloadLInk=(null==href?void 0:href.startsWith("https://"))?href:null;return downloadLInk&&streamLinks.push({server:"Mediafire",link:downloadLInk,type:"mkv"}),streamLinks}}const contentType=(yield fetch(data.download)).headers.get("content-type");if(contentType&&contentType.includes("video"))return streamLinks.push({server:"Mediafire",link:data.download,type:"mkv"}),streamLinks;{const repairRes=yield fetch(data.download,{headers:{Referer:url}}),repairHtml=yield repairRes.text(),repairLink=cheerio.load(repairHtml)("#continue-btn").attr("href"),repairRequireRepairRes=yield fetch("https://www.mediafire.com"+repairLink),repairDownloadLink=cheerio.load(yield repairRequireRepairRes.text())(".input.popsok").attr("href");repairDownloadLink&&streamLinks.push({server:"Mediafire",link:repairDownloadLink,type:"mkv"})}return streamLinks}catch(err){return[]}})};exports.getStream=getStream; \ 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 getStream=function(_a){return __awaiter(this,arguments,void 0,function*({link:url,type:type,providerContext:providerContext}){var _b;const{axios:axios,cheerio:cheerio}=providerContext,headers={"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-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"};try{if("movie"===type){const linkData=(yield axios.get(url,{headers:headers})).data;url=cheerio.load(linkData)('strong:contains("INSTANT")').parent().attr("href")||url}if(url.includes("fastilinks")){const fastilinksData=(yield axios.get(url,{headers:headers})).data,fastilinksKey=cheerio.load(fastilinksData)('input[name="_csrf_token_645a83a41868941e4692aa31e7235f2"]').attr("value"),fastilinksFormData=new FormData;fastilinksFormData.append("_csrf_token_645a83a41868941e4692aa31e7235f2",fastilinksKey||"");const fastilinksRes2=yield fetch(url,{method:"POST",headers:headers,body:fastilinksFormData}),fastilinksHtml=yield fastilinksRes2.text(),$$$=cheerio.load(fastilinksHtml);url=$$$('a:contains("mediafire")').attr("href")||$$$('a:contains("photolinx")').attr("href")||url}if(url.includes("photolinx")){const photolinxBaseUrl=url.split("/").slice(0,3).join("/"),photolinxRes=yield fetch("https://photolinx.space/download/SzbPKzt6YMO",{headers:{accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","accept-language":"en-US,en;q=0.9,en-IN;q=0.8","cache-control":"no-cache",pragma:"no-cache",priority:"u=0, i","sec-ch-ua":'"Not;A=Brand";v="99", "Microsoft Edge";v="139", "Chromium";v="139"',"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",cookie:"PHPSESSID=f2211def7938d7228daaa37ffeabcfe0; ext_name=ojplmecpdpgccookcobabopnaifgidhf"},body:null,method:"GET"}),photolinxData=yield photolinxRes.text(),$$$=cheerio.load(photolinxData),access_token=$$$("#generate_url").attr("data-token"),body={type:"DOWNLOAD_GENERATE",payload:{access_token:access_token,uid:$$$("#generate_url").attr("data-uid")}},photolinxRes2=yield fetch(`${photolinxBaseUrl}/action`,{headers:{accept:"application/json, text/plain, */*","accept-language":"en-US,en;q=0.9,en-IN;q=0.8","cache-control":"no-cache","content-type":"application/json; charset=UTF-8",pragma:"no-cache",priority:"u=1, i","sec-ch-ua":'"Not;A=Brand";v="99", "Microsoft Edge";v="139", "Chromium";v="139"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"Windows"',"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin","x-requested-with":"xmlhttprequest",cookie:"PHPSESSID=f2211def7938d7228daaa37ffeabcfe0; ext_name=ojplmecpdpgccookcobabopnaifgidhf",Referer:url},body:JSON.stringify(body),method:"POST"}),photolinxData2=yield photolinxRes2.json(),dwUrl=null==photolinxData2?void 0:photolinxData2.download_url;if(dwUrl){return[{server:"Photolinx",link:dwUrl,type:"mkv"}]}}const html=(yield axios.get(url,{headers:headers})).data,streamLinks=[];let data={download:""};try{const key=(null===(_b=html.match(/formData\.append\('key',\s*'(\d+)'\);/))||void 0===_b?void 0:_b[1])||"",formData=new FormData;formData.append("key",key);const streamRes=yield fetch(url,{method:"POST",headers:headers,body:formData});data=yield streamRes.json()}catch(err){}let $=cheerio.load(html);const mediafireUrl=$('h1:contains("Download")').find("a").attr("href")||$(".input.popsok").attr("href");if(mediafireUrl){const urlContentType=(yield fetch(mediafireUrl,{headers:{Referer:url}})).headers.get("content-type");if(urlContentType&&urlContentType.includes("video"))return streamLinks.push({server:"Mediafire",link:mediafireUrl,type:"mkv"}),streamLinks;{const repairRes=yield fetch(mediafireUrl,{headers:{Referer:url}}),repairHtml=yield repairRes.text(),base64Link=cheerio.load(repairHtml)(".input.popsok").attr("data-scrambled-url"),href=base64Link?atob(base64Link):null;let downloadLInk=(null==href?void 0:href.startsWith("https://"))?href:null;return downloadLInk&&streamLinks.push({server:"Mediafire",link:downloadLInk,type:"mkv"}),streamLinks}}const contentType=(yield fetch(data.download)).headers.get("content-type");if(contentType&&contentType.includes("video"))return streamLinks.push({server:"Mediafire",link:data.download,type:"mkv"}),streamLinks;{const repairRes=yield fetch(data.download,{headers:{Referer:url}}),repairHtml=yield repairRes.text(),repairLink=cheerio.load(repairHtml)("#continue-btn").attr("href"),repairRequireRepairRes=yield fetch("https://www.mediafire.com"+repairLink),repairDownloadLink=cheerio.load(yield repairRequireRepairRes.text())(".input.popsok").attr("href");repairDownloadLink&&streamLinks.push({server:"Mediafire",link:repairDownloadLink,type:"mkv"})}return streamLinks}catch(err){return[]}})};exports.getStream=getStream; \ No newline at end of file diff --git a/providers/world4u/stream.ts b/providers/world4u/stream.ts index 17bbe61..bd9c11d 100644 --- a/providers/world4u/stream.ts +++ b/providers/world4u/stream.ts @@ -20,8 +20,6 @@ export const getStream = async function ({ "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", - Cookie: - "61cn=1; 61wk=1; __cf_bm=wtv9Eoa2wrUDgevtAnJ6wUOZrxtVYBcddhUDtT0Wj_M-1757137848-1.0.1.1-8Tr7rV19zNgUcRYe_5567LKb2IZrKyxwrc1VWgTmMDd06Givhil3U2kMtUYTYkTnuD3sHUgfh8CO9Y5LrEcZACBbrPE.3Sq5F_JLXaK7Hrw; conv_tracking_data-2=%7B%22mf_source%22%3A%22regular_download-59%22%2C%22mf_content%22%3A%22Free%22%2C%22mf_medium%22%3A%22unknown%5C%2FDefault%20Browser%22%2C%22mf_campaign%22%3A%22616qpccbrq0y4oe%22%2C%22mf_term%22%3A%22d11b8f533377139aa38d757e5057630e%22%7D; ukey=pu2dyp35fyongstav3km969l8d6u2z82", }; try { @@ -64,9 +62,36 @@ export const getStream = async function ({ if (url.includes("photolinx")) { console.log("photolinx", url); + const photolinxBaseUrl = url.split("/").slice(0, 3).join("/"); + console.log("photolinxBaseUrl", photolinxBaseUrl); // const photolinxBaseUrl = url.split('/').slice(0, 3).join('/'); - const photolinxRes = await axios.get(url, { headers }); - const photolinxData = photolinxRes.data; + const photolinxRes = await fetch( + "https://photolinx.space/download/SzbPKzt6YMO", + { + headers: { + accept: + "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", + "accept-language": "en-US,en;q=0.9,en-IN;q=0.8", + "cache-control": "no-cache", + pragma: "no-cache", + priority: "u=0, i", + "sec-ch-ua": + '"Not;A=Brand";v="99", "Microsoft Edge";v="139", "Chromium";v="139"', + "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", + cookie: + "PHPSESSID=f2211def7938d7228daaa37ffeabcfe0; ext_name=ojplmecpdpgccookcobabopnaifgidhf", + }, + body: null, + method: "GET", + } + ); + const photolinxData = await photolinxRes.text(); const $$$ = cheerio.load(photolinxData); const access_token = $$$("#generate_url").attr("data-token"); const uid = $$$("#generate_url").attr("data-uid"); @@ -79,13 +104,25 @@ export const getStream = async function ({ }; console.log("photolinxData", JSON.stringify(body)); - const photolinxRes2 = await fetch("https://photolinx.shop/action", { + const photolinxRes2 = await fetch(`${photolinxBaseUrl}/action`, { headers: { + accept: "application/json, text/plain, */*", + "accept-language": "en-US,en;q=0.9,en-IN;q=0.8", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + pragma: "no-cache", + priority: "u=1, i", + "sec-ch-ua": + '"Not;A=Brand";v="99", "Microsoft Edge";v="139", "Chromium";v="139"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": '"Windows"', + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "xmlhttprequest", - cookie: "PHPSESSID=9a8d855c700cf0711831c04960c2e2b4", - Referer: "https://photolinx.shop/download/5mPkrBD0D2x", - "Referrer-Policy": "strict-origin-when-cross-origin", + cookie: + "PHPSESSID=f2211def7938d7228daaa37ffeabcfe0; ext_name=ojplmecpdpgccookcobabopnaifgidhf", + Referer: url, }, body: JSON.stringify(body), method: "POST",