feat: Add initial implementation for ogomovies provider

This commit is contained in:
himanshu8443
2025-10-07 20:22:56 +05:30
parent b5d24d8962
commit 4dbc0ff321
8 changed files with 456 additions and 0 deletions

1
dist/ogomovies/posts.js vendored Normal file
View File

@@ -0,0 +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://ogomovies.mobi";let url;if(query&&query.trim()){const encodedQuery=encodeURIComponent(query.trim());url=page>1?`${baseUrl}/search-query/${encodedQuery}/page/${page}/`:`${baseUrl}/search-query/${encodedQuery}/`}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 $(".ml-item").each((_,el)=>{var _a;const anchor=$(el).find("a.ml-mask");let link=anchor.attr("href")||"";if(!link)return;if(link=resolveUrl(link),seen.has(link))return;const title=(null===(_a=anchor.attr("title"))||void 0===_a?void 0:_a.trim())||anchor.find("h2").text().trim()||"";let img=anchor.find("img").attr("data-original")||anchor.find("img").attr("src")||"";const image=img?resolveUrl(img):"";title&&image&&(seen.add(link),catalog.push({title:title,link:link,image:image}))}),catalog.slice(0,100)}catch(err){return[]}})}