From 5c7b986db84282150d7ffd8cad54c3fe93c4b42a Mon Sep 17 00:00:00 2001 From: Himanshu Date: Fri, 27 Mar 2026 11:53:02 +0530 Subject: [PATCH] feat: update version to 2.0 in manifest.json; refactor getMeta and getPosts functions for improved data extraction --- dist/luxMovies/meta.js | 2 +- dist/luxMovies/posts.js | 2 +- manifest.json | 2 +- providers/luxMovies/meta.ts | 141 +++++++++++++++++++++++++---------- providers/luxMovies/posts.ts | 82 ++++++++++++++------ 5 files changed, 165 insertions(+), 64 deletions(-) diff --git a/dist/luxMovies/meta.js b/dist/luxMovies/meta.js index 300a3fc..36aa0ea 100644 --- a/dist/luxMovies/meta.js +++ b/dist/luxMovies/meta.js @@ -1 +1 @@ -"use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value:value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value:value,configurable:!0}),__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&"object"==typeof from||"function"==typeof from)for(let key of __getOwnPropNames(from))__hasOwnProp.call(to,key)||key===except||__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),__async=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())}),meta_exports={};__export(meta_exports,{getMeta:()=>getMeta});var 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","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",Cookie:"_ga=GA1.1.10613951.1756380104; xla=s4t; _ga_1CG5NQ0F53=GS2.1.s1756380103$o1$g1$t1756380120$j43$l0$h0","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"},getMeta=__name(_0=>__async(null,[_0],function*({link:link,providerContext:providerContext}){var _a,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s;try{const{axios:axios,cheerio:cheerio}=providerContext,url=link;console.log("url",url);const baseUrl=url.split("/").slice(0,3).join("/"),response=yield axios.get(url,{headers:__spreadProps(__spreadValues({},headers),{Referer:baseUrl})}),$=cheerio.load(response.data),infoContainer=$(".entry-content,.post-inner"),heading=null==infoContainer?void 0:infoContainer.find("h3"),imdbId=(null==(_f=null==(_e=null==(_d=null==(_c=null==(_b=null==(_a=null==heading?void 0:heading.next("p"))?void 0:_a.find("a"))?void 0:_b[0])?void 0:_c.attribs)?void 0:_d.href)?void 0:_e.match(/tt\d+/g))?void 0:_f[0])||(null==(_g=infoContainer.text().match(/tt\d+/g))?void 0:_g[0])||"",type=(null==(_i=null==(_h=null==heading?void 0:heading.next("p"))?void 0:_h.text())?void 0:_i.includes("Series Name"))?"series":"movie",titleRegex=/Name: (.+)/,title=(null==(_l=null==(_k=null==(_j=null==heading?void 0:heading.next("p"))?void 0:_j.text())?void 0:_k.match(titleRegex))?void 0:_l[1])||"",synopsisNode=null==(_q=null==(_p=null==(_o=null==(_n=null==(_m=null==infoContainer?void 0:infoContainer.find("p"))?void 0:_m.next("h3,h4"))?void 0:_n.next("p"))?void 0:_o[0])?void 0:_p.children)?void 0:_q[0],synopsis=synopsisNode&&"data"in synopsisNode?synopsisNode.data:"";let image=(null==(_r=null==infoContainer?void 0:infoContainer.find("img[data-lazy-src]"))?void 0:_r.attr("data-lazy-src"))||"";image.startsWith("//")&&(image="https:"+image);const hr=null==(_s=null==infoContainer?void 0:infoContainer.first())?void 0:_s.find("hr"),list=null==hr?void 0:hr.nextUntil("hr"),links=[];return list.each((index,element)=>{var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2,_i2;const title2=(null==(element=$(element))?void 0:element.text())||"",quality=(null==(_a2=null==element?void 0:element.text().match(/\d+p\b/))?void 0:_a2[0])||"",movieLinks=(null==element?void 0:element.next().find(".dwd-button").text().toLowerCase().includes("download"))?null==(_c2=null==(_b2=null==element?void 0:element.next().find(".dwd-button"))?void 0:_b2.parent())?void 0:_c2.attr("href"):"",vcloudLinks=null==(_e2=null==(_d2=null==element?void 0:element.next().find(".btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: white;'],.btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: #fdf8f2;']"))?void 0:_d2.parent())?void 0:_e2.attr("href");console.log(title2);const episodesLink=vcloudLinks||((null==element?void 0:element.next().find(".dwd-button").text().toLowerCase().includes("episode"))?null==(_g2=null==(_f2=null==element?void 0:element.next().find(".dwd-button"))?void 0:_f2.parent())?void 0:_g2.attr("href"):"")||(null==(_i2=null==(_h2=null==element?void 0:element.next().find(".btn-outline[style='background:linear-gradient(135deg,#0ebac3,#09d261); color: white;']"))?void 0:_h2.parent())?void 0:_i2.attr("href"));(movieLinks||episodesLink)&&links.push({title:title2,directLinks:movieLinks?[{title:"Movie",link:movieLinks,type:"movie"}]:[],episodesLink:episodesLink,quality:quality})}),{title:title,synopsis:synopsis,image:image,imdbId:imdbId,type:type,linkList:links}}catch(error){return console.log("getInfo error"),console.error(error),{title:"",synopsis:"",image:"",imdbId:"",type:"",linkList:[]}}}),"getMeta");exports.getMeta=getMeta; \ No newline at end of file +"use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value:value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value:value,configurable:!0}),__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&"object"==typeof from||"function"==typeof from)for(let key of __getOwnPropNames(from))__hasOwnProp.call(to,key)||key===except||__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),__async=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())}),meta_exports={};__export(meta_exports,{getMeta:()=>getMeta});var 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","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",Cookie:"_ga=GA1.1.10613951.1756380104; xla=s4t; _ga_1CG5NQ0F53=GS2.1.s1756380103$o1$g1$t1756380120$j43$l0$h0","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"},getMeta=__name(_0=>__async(null,[_0],function*({link:link,providerContext:providerContext}){var _a,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x;try{const{axios:axios,cheerio:cheerio}=providerContext,url=link;console.log("url",url);const baseUrl=url.split("/").slice(0,3).join("/"),response=yield axios.get(url,{headers:__spreadProps(__spreadValues({},headers),{Referer:baseUrl})}),$=cheerio.load(response.data),infoContainer=$(".entry-content, .post-inner, .post-content, .page-body");let title=$("h1.post-title").text().trim();if(!title){const heading2=null==infoContainer?void 0:infoContainer.find("h3"),titleRegex=/Name: (.+)/;title=(null==(_c=null==(_b=null==(_a=null==heading2?void 0:heading2.next("p"))?void 0:_a.text())?void 0:_b.match(titleRegex))?void 0:_c[1])||""}let imdbId=(null==(_e=null==(_d=$('a[href*="imdb.com"]').attr("href"))?void 0:_d.match(/tt\d+/))?void 0:_e[0])||"";if(!imdbId){const heading2=null==infoContainer?void 0:infoContainer.find("h3");imdbId=(null==(_k=null==(_j=null==(_i=null==(_h=null==(_g=null==(_f=null==heading2?void 0:heading2.next("p"))?void 0:_f.find("a"))?void 0:_g[0])?void 0:_h.attribs)?void 0:_i.href)?void 0:_j.match(/tt\d+/g))?void 0:_k[0])||(null==(_l=infoContainer.text().match(/tt\d+/g))?void 0:_l[0])||""}let type="movie";const heading=null==infoContainer?void 0:infoContainer.find("h3");(null==(_n=null==(_m=null==heading?void 0:heading.next("p"))?void 0:_m.text())?void 0:_n.includes("Series Name"))&&(type="series");let synopsis="";const synopsisHeader=$("h3").filter((i,el)=>$(el).text().includes("SYNOPSIS/PLOT")||$(el).text().includes("Plot"));if(synopsisHeader.length>0&&(synopsis=synopsisHeader.next("p").text().trim()),!synopsis){const synopsisNode=null==(_s=null==(_r=null==(_q=null==(_p=null==(_o=null==infoContainer?void 0:infoContainer.find("p"))?void 0:_o.next("h3,h4"))?void 0:_p.next("p"))?void 0:_q[0])?void 0:_r.children)?void 0:_s[0];synopsis=synopsisNode&&"data"in synopsisNode?synopsisNode.data:""}let image=(null==(_t=null==infoContainer?void 0:infoContainer.find("img[data-lazy-src]"))?void 0:_t.attr("data-lazy-src"))||(null==(_w=null==(_v=null==(_u=null==infoContainer?void 0:infoContainer.find("img"))?void 0:_u.filter((i,el)=>{const src=$(el).attr("src");return!(!src||src.includes("logo")||src.includes("svg")||src.includes("placeholder")||src.includes("icon"))}))?void 0:_v.first())?void 0:_w.attr("src"))||"";image.startsWith("//")&&(image="https:"+image),console.log({title:title,synopsis:synopsis,image:image,imdbId:imdbId,type:type});let hr=null==(_x=null==infoContainer?void 0:infoContainer.first())?void 0:_x.find("hr");const firstButton=$(".dwd-button").first();if(firstButton.length>0){let prev=firstButton.closest("p").prev();for(;prev.length&&!prev.is("hr");)prev=prev.prev();prev.is("hr")&&(hr=prev)}const list=null==hr?void 0:hr.nextUntil("hr"),links=[];return list.each((index,element)=>{var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2,_i2,_j2;const title2=(null==(element=$(element))?void 0:element.text())||"",quality=(null==(_a2=null==element?void 0:element.text().match(/\d+p\b/))?void 0:_a2[0])||"",movieLinks=(null==element?void 0:element.next().find(".dwd-button").text().toLowerCase().includes("download"))||element.next().find("a").text().toLowerCase().includes("download")?(null==(_c2=null==(_b2=null==element?void 0:element.next().find(".dwd-button"))?void 0:_b2.parent())?void 0:_c2.attr("href"))||(null==(_d2=null==element?void 0:element.next().find("a[href]"))?void 0:_d2.attr("href")):"",episodesLink=(null==(_f2=null==(_e2=null==element?void 0:element.next().find(".btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: white;'],.btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: #fdf8f2;'],.btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152);color: white']"))?void 0:_e2.parent())?void 0:_f2.attr("href"))||((null==element?void 0:element.next().find(".dwd-button").text().toLowerCase().includes("episode"))?null==(_h2=null==(_g2=null==element?void 0:element.next().find(".dwd-button"))?void 0:_g2.parent())?void 0:_h2.attr("href"):"")||(null==(_j2=null==(_i2=null==element?void 0:element.next().find(".btn-outline[style='background:linear-gradient(135deg,#0ebac3,#09d261); color: white;']"))?void 0:_i2.parent())?void 0:_j2.attr("href"));(movieLinks||episodesLink)&&links.push({title:title2,directLinks:movieLinks?[{title:"Movie",link:movieLinks,type:"movie"}]:[],episodesLink:episodesLink,quality:quality})}),{title:title,synopsis:synopsis,image:image,imdbId:imdbId,type:type,linkList:links}}catch(error){return console.log("getInfo error"),console.error(error),{title:"",synopsis:"",image:"",imdbId:"",type:"",linkList:[]}}}),"getMeta");exports.getMeta=getMeta; \ No newline at end of file diff --git a/dist/luxMovies/posts.js b/dist/luxMovies/posts.js index 75c879a..34b2d7c 100644 --- a/dist/luxMovies/posts.js +++ b/dist/luxMovies/posts.js @@ -1 +1 @@ -"use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value:value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value:value,configurable:!0}),__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&"object"==typeof from||"function"==typeof from)for(let key of __getOwnPropNames(from))__hasOwnProp.call(to,key)||key===except||__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),__async=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())}),posts_exports={};__export(posts_exports,{getPosts:()=>getPosts,getSearchPosts:()=>getSearchPosts});var 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",Cookie:"_ga=GA1.1.10613951.1756380104; xla=s4t; _ga_1CG5NQ0F53=GS2.1.s1756380103$o1$g1$t1756380120$j43$l0$h0","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0"},getPosts=__name(_0=>__async(null,[_0],function*({filter:filter,page:page,providerValue:providerValue,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext,baseUrl=yield getBaseUrl("lux");console.log("vegaGetPosts baseUrl:",providerValue,baseUrl);const url=`${baseUrl}/${filter}/page/${page}/`;return console.log("lux url:",url),posts(url,signal,providerContext)}),"getPosts"),getSearchPosts=__name(_0=>__async(null,[_0],function*({searchQuery:searchQuery,page:page,providerValue:providerValue,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext,baseUrl=yield getBaseUrl("lux");console.log("vegaGetPosts baseUrl:",providerValue,baseUrl);const url=1===page?`https://c.8man.workers.dev/?url=${baseUrl}/?s=${searchQuery}`:`https://c.8man.workers.dev/?url=${baseUrl}/page/${page}/?s=${searchQuery}`;return console.log("lux url:",url),posts(url,signal,providerContext)}),"getSearchPosts");function posts(url,signal,providerContext){return __async(this,null,function*(){var _a,_b;try{const{axios:axios,cheerio:cheerio}=providerContext,urlRes=yield fetch(url,{headers:__spreadProps(__spreadValues({},headers),{Referer:url}),signal:signal}),$=cheerio.load(yield urlRes.text()),posts2=[];return null==(_b=null==(_a=$(".blog-items"))?void 0:_a.children("article"))||_b.each((index,element)=>{var _a2,_b2,_c,_d,_e,_f,_g,_h,_i,_j;const post={title:(null==(_e=null==(_d=null==(_c=null==(_b2=null==(_a2=$(element))?void 0:_a2.find("a"))?void 0:_b2.attr("title"))?void 0:_c.replace("Download",""))?void 0:_d.match(/^(.*?)\s*\((\d{4})\)|^(.*?)\s*\((Season \d+)\)/))?void 0:_e[0])||(null==(_h=null==(_g=null==(_f=$(element))?void 0:_f.find("a"))?void 0:_g.attr("title"))?void 0:_h.replace("Download",""))||"",link:(null==(_j=null==(_i=$(element))?void 0:_i.find("a"))?void 0:_j.attr("href"))||"",image:$(element).find("a").find("img").attr("data-lazy-src")||$(element).find("a").find("img").attr("data-src")||$(element).find("a").find("img").attr("src")||""};post.image.startsWith("//")&&(post.image="https:"+post.image),posts2.push(post)}),posts2}catch(error){return console.error("vegaGetPosts error:",error),[]}})}__name(posts,"posts"),exports.getPosts=getPosts,exports.getSearchPosts=getSearchPosts; \ No newline at end of file +"use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value:value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value:value,configurable:!0}),__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&"object"==typeof from||"function"==typeof from)for(let key of __getOwnPropNames(from))__hasOwnProp.call(to,key)||key===except||__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),__async=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())}),posts_exports={};__export(posts_exports,{getPosts:()=>getPosts,getSearchPosts:()=>getSearchPosts});var 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",Cookie:"_ga=GA1.1.10613951.1756380104; xla=s4t; _ga_1CG5NQ0F53=GS2.1.s1756380103$o1$g1$t1756380120$j43$l0$h0","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0"},getPosts=__name(_0=>__async(null,[_0],function*({filter:filter,page:page,providerValue:providerValue,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl,axios:axios,cheerio:cheerio}=providerContext,baseUrl=yield getBaseUrl("Vega");console.log("vegaGetPosts baseUrl:",providerValue,baseUrl);const url=`${baseUrl}/${filter}/page/${page}/`;return console.log("vegaGetPosts url:",url),posts(baseUrl,url,signal,headers,axios,cheerio)}),"getPosts"),getSearchPosts=__name(_0=>__async(null,[_0],function*({searchQuery:searchQuery,page:page,providerValue:providerValue,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl,axios:axios,cheerio:cheerio}=providerContext,baseUrl=yield getBaseUrl("Vega");console.log("vegaGetPosts baseUrl:",providerValue,baseUrl);const url=`${baseUrl}/search.php?q=${searchQuery}&page=${page}`;console.log("vegaGetPosts url:",url);try{const data=(yield axios.get(url,{headers:__spreadProps(__spreadValues({},headers),{Referer:baseUrl}),signal:signal})).data,posts2=[];return(null==data?void 0:data.hits)&&data.hits.forEach(hit=>{const doc=hit.document,post={title:doc.post_title.replace("Download","").trim(),link:doc.permalink.startsWith("http")?doc.permalink:`${baseUrl}${doc.permalink}`,image:doc.post_thumbnail};posts2.push(post)}),posts2}catch(error){return console.error("vegaGetSearchPosts error:",error),[]}}),"getSearchPosts");function posts(_0,_1,_2){return __async(this,arguments,function*(baseUrl,url,signal,headers2={},axios,cheerio){var _a,_b;try{const urlRes=yield fetch(url,{headers:__spreadProps(__spreadValues({},headers2),{Referer:baseUrl}),signal:signal}),$=cheerio.load(yield urlRes.text()),posts2=[];return null==(_b=null==(_a=$(".blog-items,.post-list,#archive-container,.movies-grid"))?void 0:_a.children("article,.entry-list-item,a"))||_b.each((index,element)=>{var _a2,_b2,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m;const post={title:((null==(_e=null==(_d=null==(_c=null==(_b2=null==(_a2=$(element))?void 0:_a2.find(".entry-title,.poster-title"))?void 0:_b2.text())?void 0:_c.replace("Download",""))?void 0:_d.match(/^(.*?)\s*\((\d{4})\)|^(.*?)\s*\((Season \d+)\)/))?void 0:_e[0])||(null==(_h=null==(_g=null==(_f=$(element))?void 0:_f.find("a"))?void 0:_g.attr("title"))?void 0:_h.replace("Download",""))||(null==(_j=null==(_i=$(element))?void 0:_i.find(".post-title,.poster-title").text())?void 0:_j.replace("Download",""))||"").trim(),link:(null==(_l=null==(_k=$(element))?void 0:_k.find("a"))?void 0:_l.attr("href"))||(null==(_m=$(element))?void 0:_m.attr("href"))||"",image:$(element).find("a").find("img").attr("data-lazy-src")||$(element).find("a").find("img").attr("data-src")||$(element).find("a").find("img").attr("src")||$(element).find("img").attr("src")||""};post.image.startsWith("//")&&(post.image="https:"+post.image),console.log("vegaGetPosts post:",post),posts2.push(post)}),posts2}catch(error){return console.error("vegaGetPosts error:",error),[]}})}__name(posts,"posts"),exports.getPosts=getPosts,exports.getSearchPosts=getSearchPosts; \ No newline at end of file diff --git a/manifest.json b/manifest.json index ef6737e..5fda3c9 100644 --- a/manifest.json +++ b/manifest.json @@ -290,7 +290,7 @@ { "display_name": "RogMovies", "value": "luxMovies", - "version": "1.9", + "version": "2.0", "icon": "", "type": "india", "disabled": false diff --git a/providers/luxMovies/meta.ts b/providers/luxMovies/meta.ts index 5faa0bb..5029775 100644 --- a/providers/luxMovies/meta.ts +++ b/providers/luxMovies/meta.ts @@ -40,42 +40,103 @@ export const getMeta = async ({ }, }); const $ = cheerio.load(response.data); - const infoContainer = $(".entry-content,.post-inner"); - const heading = infoContainer?.find("h3"); - const imdbId = - //@ts-ignore - heading?.next("p")?.find("a")?.[0]?.attribs?.href?.match(/tt\d+/g)?.[0] || - infoContainer.text().match(/tt\d+/g)?.[0] || - ""; - // console.log(imdbId) + const infoContainer = $( + ".entry-content, .post-inner, .post-content, .page-body", + ); - const type = heading?.next("p")?.text()?.includes("Series Name") - ? "series" - : "movie"; - // console.log(type); // title - const titleRegex = /Name: (.+)/; - const title = heading?.next("p")?.text()?.match(titleRegex)?.[1] || ""; + let title = $("h1.post-title").text().trim(); + if (!title) { + const heading = infoContainer?.find("h3"); + const titleRegex = /Name: (.+)/; + title = heading?.next("p")?.text()?.match(titleRegex)?.[1] || ""; + } // console.log(title); + // imdbId + let imdbId = + $('a[href*="imdb.com"]').attr("href")?.match(/tt\d+/)?.[0] || ""; + if (!imdbId) { + const heading = infoContainer?.find("h3"); + imdbId = + //@ts-ignore + heading + ?.next("p") + ?.find("a")?.[0] + ?.attribs?.href?.match(/tt\d+/g)?.[0] || + infoContainer.text().match(/tt\d+/g)?.[0] || + ""; + } + // console.log(imdbId) + + // type + let type = "movie"; + + const heading = infoContainer?.find("h3"); + if (heading?.next("p")?.text()?.includes("Series Name")) { + type = "series"; + } + + // console.log(type); + // synopsis - const synopsisNode = //@ts-ignore - infoContainer?.find("p")?.next("h3,h4")?.next("p")?.[0]?.children?.[0]; - const synopsis = - synopsisNode && "data" in synopsisNode ? synopsisNode.data : ""; + let synopsis = ""; + const synopsisHeader = $("h3").filter( + (i, el) => + $(el).text().includes("SYNOPSIS/PLOT") || $(el).text().includes("Plot"), + ); + if (synopsisHeader.length > 0) { + synopsis = synopsisHeader.next("p").text().trim(); + } + if (!synopsis) { + const synopsisNode = //@ts-ignore + infoContainer?.find("p")?.next("h3,h4")?.next("p")?.[0]?.children?.[0]; + synopsis = + synopsisNode && "data" in synopsisNode ? synopsisNode.data : ""; + } // console.log(synopsis); // image let image = - infoContainer?.find("img[data-lazy-src]")?.attr("data-lazy-src") || ""; + infoContainer?.find("img[data-lazy-src]")?.attr("data-lazy-src") || + infoContainer + ?.find("img") + ?.filter((i, el) => { + const src = $(el).attr("src"); + return ( + !!src && + !src.includes("logo") && + !src.includes("svg") && + !src.includes("placeholder") && + !src.includes("icon") + ); + }) + ?.first() + ?.attr("src") || + ""; + if (image.startsWith("//")) { image = "https:" + image; } // console.log(image); - // console.log({title, synopsis, image, imdbId, type}); + console.log({ title, synopsis, image, imdbId, type }); /// Links - const hr = infoContainer?.first()?.find("hr"); + let hr = infoContainer?.first()?.find("hr"); + + // Try to find the HR before the download buttons if possible + const firstButton = $(".dwd-button").first(); + if (firstButton.length > 0) { + const containerP = firstButton.closest("p"); + let prev = containerP.prev(); + while (prev.length && !prev.is("hr")) { + prev = prev.prev(); + } + if (prev.is("hr")) { + hr = prev; + } + } + const list = hr?.nextUntil("hr"); const links: Link[] = []; list.each((index, element: any) => { @@ -86,39 +147,41 @@ export const getMeta = async ({ const quality = element?.text().match(/\d+p\b/)?.[0] || ""; // console.log(title); // movieLinks - const movieLinks = element - ?.next() - .find(".dwd-button") - .text() - .toLowerCase() - .includes("download") - ? element?.next().find(".dwd-button")?.parent()?.attr("href") - : ""; + const movieLinks = + element + ?.next() + .find(".dwd-button") + .text() + .toLowerCase() + .includes("download") || + element.next().find("a").text().toLowerCase().includes("download") + ? element?.next().find(".dwd-button")?.parent()?.attr("href") || + element?.next().find("a[href]")?.attr("href") + : ""; // episode links const vcloudLinks = element ?.next() .find( - ".btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: white;'],.btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: #fdf8f2;']" + ".btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: white;'],.btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: #fdf8f2;'],.btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152);color: white']", ) ?.parent() ?.attr("href"); - console.log(title); const episodesLink = (vcloudLinks ? vcloudLinks : element - ?.next() - .find(".dwd-button") - .text() - .toLowerCase() - .includes("episode") - ? element?.next().find(".dwd-button")?.parent()?.attr("href") - : "") || + ?.next() + .find(".dwd-button") + .text() + .toLowerCase() + .includes("episode") + ? element?.next().find(".dwd-button")?.parent()?.attr("href") + : "") || element ?.next() .find( - ".btn-outline[style='background:linear-gradient(135deg,#0ebac3,#09d261); color: white;']" + ".btn-outline[style='background:linear-gradient(135deg,#0ebac3,#09d261); color: white;']", ) ?.parent() ?.attr("href"); diff --git a/providers/luxMovies/posts.ts b/providers/luxMovies/posts.ts index 3aa75f0..5bdb877 100644 --- a/providers/luxMovies/posts.ts +++ b/providers/luxMovies/posts.ts @@ -34,13 +34,13 @@ export const getPosts = async ({ signal: AbortSignal; providerContext: ProviderContext; }): Promise => { - const { getBaseUrl } = providerContext; - const baseUrl = await getBaseUrl("lux"); + const { getBaseUrl, axios, cheerio } = providerContext; + const baseUrl = await getBaseUrl("Vega"); console.log("vegaGetPosts baseUrl:", providerValue, baseUrl); const url = `${baseUrl}/${filter}/page/${page}/`; - console.log("lux url:", url); - return posts(url, signal, providerContext); + console.log("vegaGetPosts url:", url); + return posts(baseUrl, url, signal, headers, axios, cheerio); }; export const getSearchPosts = async ({ @@ -56,58 +56,96 @@ export const getSearchPosts = async ({ signal: AbortSignal; providerContext: ProviderContext; }): Promise => { - const { getBaseUrl } = providerContext; - const baseUrl = await getBaseUrl("lux"); + const { getBaseUrl, axios, cheerio } = providerContext; + const baseUrl = await getBaseUrl("Vega"); console.log("vegaGetPosts baseUrl:", providerValue, baseUrl); - const url = - page === 1 - ? `https://c.8man.workers.dev/?url=${baseUrl}/?s=${searchQuery}` - : `https://c.8man.workers.dev/?url=${baseUrl}/page/${page}/?s=${searchQuery}`; - console.log("lux url:", url); + const url = `${baseUrl}/search.php?q=${searchQuery}&page=${page}`; + console.log("vegaGetPosts url:", url); - return posts(url, signal, providerContext); + try { + const response = await axios.get(url, { + headers: { + ...headers, + Referer: baseUrl, + }, + signal, + }); + + const data = response.data; + const posts: Post[] = []; + + if (data?.hits) { + data.hits.forEach((hit: any) => { + const doc = hit.document; + const post = { + title: doc.post_title.replace("Download", "").trim(), + link: doc.permalink.startsWith("http") + ? doc.permalink + : `${baseUrl}${doc.permalink}`, + image: doc.post_thumbnail, + }; + posts.push(post); + }); + } + return posts; + } catch (error) { + console.error("vegaGetSearchPosts error:", error); + return []; + } }; async function posts( + baseUrl: string, url: string, signal: AbortSignal, - providerContext: ProviderContext + headers: Record = {}, + axios: ProviderContext["axios"], + cheerio: ProviderContext["cheerio"], ): Promise { try { - const { axios, cheerio } = providerContext; const urlRes = await fetch(url, { headers: { ...headers, - Referer: url, + Referer: baseUrl, }, signal, }); const $ = cheerio.load(await urlRes.text()); const posts: Post[] = []; - $(".blog-items") - ?.children("article") + $(".blog-items,.post-list,#archive-container,.movies-grid") + ?.children("article,.entry-list-item,a") ?.each((index, element) => { const post = { - title: + title: ( $(element) - ?.find("a") - ?.attr("title") + ?.find(".entry-title,.poster-title") + ?.text() ?.replace("Download", "") ?.match(/^(.*?)\s*\((\d{4})\)|^(.*?)\s*\((Season \d+)\)/)?.[0] || $(element)?.find("a")?.attr("title")?.replace("Download", "") || - "", + $(element) + ?.find(".post-title,.poster-title") + .text() + ?.replace("Download", "") || + "" + ).trim(), - link: $(element)?.find("a")?.attr("href") || "", + link: + $(element)?.find("a")?.attr("href") || + $(element)?.attr("href") || + "", image: $(element).find("a").find("img").attr("data-lazy-src") || $(element).find("a").find("img").attr("data-src") || $(element).find("a").find("img").attr("src") || + $(element).find("img").attr("src") || "", }; if (post.image.startsWith("//")) { post.image = "https:" + post.image; } + console.log("vegaGetPosts post:", post); posts.push(post); });