From 8de5898968d6b19494dee2145a737c33f7271c62 Mon Sep 17 00:00:00 2001 From: Himanshu Date: Sun, 2 Nov 2025 15:34:32 +0530 Subject: [PATCH] refactor: use remote url --- dist/skyMovieHD/posts.js | 2 +- providers/skyMovieHD/posts.ts | 37 ++++++++++++++++++++++++++++------- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/dist/skyMovieHD/posts.js b/dist/skyMovieHD/posts.js index 62cccf7..421da49 100644 --- a/dist/skyMovieHD/posts.js +++ b/dist/skyMovieHD/posts.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.getPosts=getPosts,exports.getSearchPosts=getSearchPosts;const defaultHeaders={Referer:"https://www.google.com","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9",Pragma:"no-cache","Cache-Control":"no-cache"};function getPosts(_a){return __awaiter(this,arguments,void 0,function*({filter:filter,page:page=1,signal:signal,providerContext:providerContext}){return fetchPosts({filter:filter,page:page,query:"",signal:signal,providerContext:providerContext})})}function getSearchPosts(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page=1,signal:signal,providerContext:providerContext}){return fetchPosts({filter:"",page:page,query:searchQuery,signal:signal,providerContext:providerContext})})}function fetchPosts(_a){return __awaiter(this,arguments,void 0,function*({filter:filter,query:query,page:page=1,signal:signal,providerContext:providerContext}){try{const baseUrl="https://skymovieshd.tattoo";let url;if(query&&query.trim()&&"what are you looking for?"!==query.trim().toLowerCase()){const params=new URLSearchParams;params.append("s",query.trim()),page>1&¶ms.append("paged",page.toString()),url=`${baseUrl}/?${params.toString()}`}else url=filter?filter.startsWith("/")?`${baseUrl}${filter.replace(/\/$/,"")}${page>1?`/page/${page}`:""}`:`${baseUrl}/${filter}${page>1?`/page/${page}`:""}`:`${baseUrl}${page>1?`/page/${page}`:""}`;const{axios:axios,cheerio:cheerio}=providerContext,res=yield axios.get(url,{headers:defaultHeaders,signal:signal}),$=cheerio.load(res.data||""),resolveUrl=href=>(null==href?void 0:href.startsWith("http"))?href:new URL(href,baseUrl).href,seen=new Set,catalog=[];return $("article.latestpost").each((_,el)=>{const card=$(el);let link=card.find("header.entry-header h2.entry-title a, header.entry-header h1.entry-title a").attr("href")||"";if(!link)return;if(link=resolveUrl(link),seen.has(link))return;let title=card.find("header.entry-header h2.entry-title a, header.entry-header h1.entry-title a").text().replace(/^Download\s*/i,"").trim();if(!title)return;let img=card.find("a#featured-thumbnail img").attr("data-src")||card.find("a#featured-thumbnail img").attr("src")||"";const image=img?resolveUrl(img):"";seen.add(link),catalog.push({title:title,link:link,image:image})}),catalog.slice(0,100)}catch(err){return[]}})} \ 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.getPosts=getPosts,exports.getSearchPosts=getSearchPosts;const defaultHeaders={Referer:"https://www.google.com","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9",Pragma:"no-cache","Cache-Control":"no-cache"};function getPosts(_a){return __awaiter(this,arguments,void 0,function*({filter:filter,page:page=1,signal:signal,providerContext:providerContext}){return fetchPosts({filter:filter,page:page,query:"",signal:signal,providerContext:providerContext})})}function getSearchPosts(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page=1,signal:signal,providerContext:providerContext}){return fetchPosts({filter:"",page:page,query:searchQuery,signal:signal,providerContext:providerContext})})}function fetchPosts(_a){return __awaiter(this,arguments,void 0,function*({filter:filter,query:query,page:page=1,signal:signal,providerContext:providerContext}){try{const baseUrl=yield providerContext.getBaseUrl("skymovieshd");let url;if(query&&query.trim()&&"what are you looking for?"!==query.trim().toLowerCase()){const params=new URLSearchParams;params.append("s",query.trim()),page>1&¶ms.append("paged",page.toString()),url=`${baseUrl}/?${params.toString()}`}else url=filter?filter.startsWith("/")?`${baseUrl}${filter.replace(/\/$/,"")}${page>1?`/page/${page}`:""}`:`${baseUrl}/${filter}${page>1?`/page/${page}`:""}`:`${baseUrl}${page>1?`/page/${page}`:""}`;const{axios:axios,cheerio:cheerio}=providerContext,res=yield axios.get(url,{headers:defaultHeaders,signal:signal}),$=cheerio.load(res.data||""),resolveUrl=href=>(null==href?void 0:href.startsWith("http"))?href:new URL(href,baseUrl).href,seen=new Set,catalog=[];return $("article.latestpost").each((_,el)=>{const card=$(el);let link=card.find("header.entry-header h2.entry-title a, header.entry-header h1.entry-title a").attr("href")||"";if(!link)return;if(link=resolveUrl(link),seen.has(link))return;let title=card.find("header.entry-header h2.entry-title a, header.entry-header h1.entry-title a").text().replace(/^Download\s*/i,"").trim();if(!title)return;let img=card.find("a#featured-thumbnail img").attr("data-src")||card.find("a#featured-thumbnail img").attr("src")||"";const image=img?resolveUrl(img):"";seen.add(link),catalog.push({title:title,link:link,image:image})}),catalog.slice(0,100)}catch(err){return[]}})} \ No newline at end of file diff --git a/providers/skyMovieHD/posts.ts b/providers/skyMovieHD/posts.ts index 0e3daed..91bde80 100644 --- a/providers/skyMovieHD/posts.ts +++ b/providers/skyMovieHD/posts.ts @@ -38,7 +38,13 @@ export async function getSearchPosts({ signal?: AbortSignal; providerContext: ProviderContext; }): Promise { - return fetchPosts({ filter: "", page, query: searchQuery, signal, providerContext }); + return fetchPosts({ + filter: "", + page, + query: searchQuery, + signal, + providerContext, + }); } // --- Core fetch function --- @@ -56,17 +62,23 @@ async function fetchPosts({ providerContext: ProviderContext; }): Promise { try { - const baseUrl = "https://skymovieshd.tattoo"; + const baseUrl = await providerContext.getBaseUrl("skymovieshd"); let url: string; - if (query && query.trim() && query.trim().toLowerCase() !== "what are you looking for?") { + if ( + query && + query.trim() && + query.trim().toLowerCase() !== "what are you looking for?" + ) { const params = new URLSearchParams(); params.append("s", query.trim()); if (page > 1) params.append("paged", page.toString()); url = `${baseUrl}/?${params.toString()}`; } else if (filter) { url = filter.startsWith("/") - ? `${baseUrl}${filter.replace(/\/$/, "")}${page > 1 ? `/page/${page}` : ""}` + ? `${baseUrl}${filter.replace(/\/$/, "")}${ + page > 1 ? `/page/${page}` : "" + }` : `${baseUrl}/${filter}${page > 1 ? `/page/${page}` : ""}`; } else { url = `${baseUrl}${page > 1 ? `/page/${page}` : ""}`; @@ -87,13 +99,21 @@ async function fetchPosts({ const card = $(el); // Link - let link = card.find("header.entry-header h2.entry-title a, header.entry-header h1.entry-title a").attr("href") || ""; + let link = + card + .find( + "header.entry-header h2.entry-title a, header.entry-header h1.entry-title a" + ) + .attr("href") || ""; if (!link) return; link = resolveUrl(link); if (seen.has(link)) return; // Title: remove "Download" - let title = card.find("header.entry-header h2.entry-title a, header.entry-header h1.entry-title a") + let title = card + .find( + "header.entry-header h2.entry-title a, header.entry-header h1.entry-title a" + ) .text() .replace(/^Download\s*/i, "") .trim(); @@ -112,7 +132,10 @@ async function fetchPosts({ return catalog.slice(0, 100); } catch (err) { - console.error("fetchPosts error:", err instanceof Error ? err.message : String(err)); + console.error( + "fetchPosts error:", + err instanceof Error ? err.message : String(err) + ); return []; } }