mirror of
https://github.com/vega-org/vega-providers.git
synced 2026-06-17 20:28:37 +00:00
2ce3c737d1
fix: handle anti-DDoS checks in meta and posts fetching fix: improve episode extraction logic in episodes fix: enhance stream link extraction in stream Co-authored-by: Copilot <copilot@github.com>
1 line
6.2 KiB
JavaScript
1 line
6.2 KiB
JavaScript
"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 defaultHeaders={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","cache-control":"no-cache",pragma:"no-cache",priority:"u=0, i","sec-ch-ua":'"Microsoft Edge";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"Windows"',"sec-fetch-dest":"document","sec-fetch-mode":"navigate","sec-fetch-site":"same-origin","sec-fetch-user":"?1","upgrade-insecure-requests":"1",cookie:"Antiddos-systems-DH=395a53ac840ad21dff778291a3ffae36",Referer:"https://movies4u.vg/category/web-series/"};function getPosts(_0){return __async(this,arguments,function*({filter:filter,page:page=1,signal:signal,providerContext:providerContext}){return fetchPosts({filter:filter,page:page,query:"",signal:signal,providerContext:providerContext})})}function getSearchPosts(_0){return __async(this,arguments,function*({searchQuery:searchQuery,page:page=1,signal:signal,providerContext:providerContext}){return fetchPosts({filter:"",page:page,query:searchQuery,signal:signal,providerContext:providerContext})})}function fetchPosts(_0){return __async(this,arguments,function*({filter:filter,query:query,page:page=1,signal:signal,providerContext:providerContext}){try{const baseUrl=yield providerContext.getBaseUrl("movies4u");let url;url=query&&query.trim()?`${baseUrl}/?s=${encodeURIComponent(query)}${page>1?`&paged=${page}`:""}`: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;let res=yield axios.get(url,{headers:defaultHeaders,signal:signal,maxRedirects:5});if(res.data&&res.data.includes("Please turn JavaScript on and reload the page.")){const b1Match=res.data.match(/var b1=atob\(['"]([^'"]+)['"]\)/),a2Match=res.data.match(/_0x2aa8=\[['"]([^'"]+)['"]\]/),c3Match=res.data.match(/c3=toNumbers\(['"]([^'"]+)['"]\)/);if(b1Match&&a2Match&&c3Match){const unescapeHexStr=__name(str=>str.replace(/\\x([0-9A-Fa-f]{2})/g,(_,hex)=>String.fromCharCode(parseInt(hex,16))),"unescapeHexStr"),minJsRes=yield axios.get(`${baseUrl}/min.js`,{headers:defaultHeaders,signal:signal}),b1Hex=atob(unescapeHexStr(b1Match[1])),a2Hex=atob(unescapeHexStr(a2Match[1])),c3Hex=unescapeHexStr(c3Match[1]),newCookie=`Antiddos-systems-DH=${new Function("c3Hex","a1Hex","b2Hex",`\n ${minJsRes.data}\n function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}\n function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e='',f=0;f<d.length;f++)e+=(16>d[f]?'0':'')+d[f].toString(16);return e.toLowerCase()}\n return toHex(slowAES.decrypt(toNumbers(c3Hex), 2, toNumbers(a1Hex), toNumbers(b2Hex)));\n `)(c3Hex,a2Hex,b1Hex)}`;res=yield axios.get(url,{headers:__spreadProps(__spreadValues({},defaultHeaders),{Cookie:newCookie}),signal:signal,maxRedirects:5})}}const $=cheerio.load(res.data||""),resolveUrl=__name(href=>(null==href?void 0:href.startsWith("http"))?href:new URL(href,url).href,"resolveUrl"),seen=new Set,catalog=[],POST_SELECTORS=[".pstr_box","article",".result-item",".post",".item",".thumbnail",".latest-movies",".movie-item",".entry-card"].join(",");return console.log("Fetching posts from URL:",url),$(POST_SELECTORS).each((_,el)=>{var _a;const card=$(el);console.log("Processing card:",card.text().trim().slice(0,50));let link=card.find("a[href]").first().attr("href")||"";if(!link)return;if(link=resolveUrl(link),seen.has(link))return;let title=card.find("h2").first().text().trim()||(null==(_a=card.find("a[title]").first().attr("title"))?void 0:_a.trim())||card.text().trim();if(title=title.replace(/(?:480p|720p|1080p|4k|HDTC|HDRip|BluRay|LiNE|Full Movie).*$/i,"").replace(/\[.*?\]/g,"").replace(/\s{2,}/g," ").replace(/\s*[|\-]\s*$/,"").trim(),!title)return;const img=card.find("img").first().attr("src")||card.find("img").first().attr("data-src")||card.find("img").first().attr("data-original")||"",image=img?resolveUrl(img):"";seen.add(link),catalog.push({title:title,link:link,image:image})}),catalog.slice(0,100)}catch(err){return console.error("HDMovie2 fetchPosts error:",err instanceof Error?err.message:String(err)),[]}})}__name(getPosts,"getPosts"),__name(getSearchPosts,"getSearchPosts"),__name(fetchPosts,"fetchPosts"),exports.getPosts=getPosts,exports.getSearchPosts=getSearchPosts; |