From 099b4aba4f71cb041160db8620c3bddeb10fffaf Mon Sep 17 00:00:00 2001 From: Himanshu Date: Mon, 23 Feb 2026 20:49:06 +0530 Subject: [PATCH] fix: update version to 1.17 in manifest.json and improve meta and posts data extraction logic --- dist/vega/meta.js | 2 +- dist/vega/posts.js | 2 +- manifest.json | 2 +- providers/vega/meta.ts | 135 +++++++++++++++++++++++++++++++--------- providers/vega/posts.ts | 11 ++-- 5 files changed, 117 insertions(+), 35 deletions(-) diff --git a/dist/vega/meta.js b/dist/vega/meta.js index 97987df..7fb92fe 100644 --- a/dist/vega/meta.js +++ b/dist/vega/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:"xla=s4t; _ga=GA1.1.1081149560.1756378968; _ga_BLZGKYN5PF=GS2.1.s1756378968$o1$g1$t1756378984$j44$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),console.log({title:title,synopsis:synopsis,image:image,imdbId:imdbId,type:type});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"):"",episodesLink=(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;'],.btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152);color: white']"))?void 0:_d2.parent())?void 0:_e2.attr("href"))||((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:"xla=s4t; _ga=GA1.1.1081149560.1756378968; _ga_BLZGKYN5PF=GS2.1.s1756378968$o1$g1$t1756378984$j44$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 heading=null==infoContainer?void 0:infoContainer.find("h3"),titleRegex=/Name: (.+)/;title=(null==(_c=null==(_b=null==(_a=null==heading?void 0:heading.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 heading=null==infoContainer?void 0:infoContainer.find("h3");imdbId=(null==(_k=null==(_j=null==(_i=null==(_h=null==(_g=null==(_f=null==heading?void 0:heading.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";if($(".post-categories a").map((i,el)=>$(el).text().toLowerCase()).get().some(c=>c.includes("series")||c.includes("drama")||c.includes("anime"))||title.toLowerCase().includes("season"))type="series";else{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/vega/posts.js b/dist/vega/posts.js index 862405d..ba2c241 100644 --- a/dist/vega/posts.js +++ b/dist/vega/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/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:"xla=s4t; _ga=GA1.1.1081149560.1756378968; _ga_BLZGKYN5PF=GS2.1.s1756378968$o1$g1$t1756378984$j44$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"},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}/page/${page}/?s=${searchQuery}`;return console.log("vegaGetPosts url:",url),posts(baseUrl,url,signal,headers,axios,cheerio)}),"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"))?void 0:_a.children("article,.entry-list-item"))||_b.each((index,element)=>{var _a2,_b2,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l;const post={title:((null==(_e=null==(_d=null==(_c=null==(_b2=null==(_a2=$(element))?void 0:_a2.find(".entry-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").text())?void 0:_j.replace("Download",""))||"").trim(),link:(null==(_l=null==(_k=$(element))?void 0:_k.find("a"))?void 0:_l.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/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:"xla=s4t; _ga=GA1.1.1081149560.1756378968; _ga_BLZGKYN5PF=GS2.1.s1756378968$o1$g1$t1756378984$j44$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"},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}/page/${page}/?s=${searchQuery}`;return console.log("vegaGetPosts url:",url),posts(baseUrl,url,signal,headers,axios,cheerio)}),"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"))?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").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")||""};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 diff --git a/manifest.json b/manifest.json index b27e3a9..16cea75 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ { "display_name": "VegaMovies", "value": "vega", - "version": "1.16", + "version": "1.17", "icon": "", "type": "global", "disabled": false diff --git a/providers/vega/meta.ts b/providers/vega/meta.ts index 5b7b4da..6bf6020 100644 --- a/providers/vega/meta.ts +++ b/providers/vega/meta.ts @@ -40,34 +40,91 @@ 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 categories = $(".post-categories a") + .map((i, el) => $(el).text().toLowerCase()) + .get(); + if ( + categories.some( + (c) => c.includes("series") || c.includes("drama") || c.includes("anime") + ) || + title.toLowerCase().includes("season") + ) { + type = "series"; + } else { + 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; } @@ -75,7 +132,21 @@ export const getMeta = async ({ 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,14 +157,22 @@ 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 diff --git a/providers/vega/posts.ts b/providers/vega/posts.ts index c8f5fc5..f6ec1c4 100644 --- a/providers/vega/posts.ts +++ b/providers/vega/posts.ts @@ -72,7 +72,7 @@ async function posts( signal: AbortSignal, headers: Record = {}, axios: ProviderContext["axios"], - cheerio: ProviderContext["cheerio"] + cheerio: ProviderContext["cheerio"], ): Promise { try { const urlRes = await fetch(url, { @@ -84,8 +84,8 @@ async function posts( }); const $ = cheerio.load(await urlRes.text()); const posts: Post[] = []; - $(".blog-items,.post-list,#archive-container") - ?.children("article,.entry-list-item") + $(".blog-items,.post-list,#archive-container,.movies-grid") + ?.children("article,.entry-list-item,a") ?.each((index, element) => { const post = { title: ( @@ -99,7 +99,10 @@ async function posts( "" ).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") ||