mirror of
https://github.com/vega-org/vega-providers.git
synced 2026-04-17 15:41:45 +00:00
fix: update HubDrive to HubCloud in meta and stream functions; bump version to 1.7 in manifest
This commit is contained in:
2
dist/4khdhub/meta.js
vendored
2
dist/4khdhub/meta.js
vendored
@@ -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.getMeta=void 0;const getMeta=function(_a){return __awaiter(this,arguments,void 0,function*({link:link,providerContext:providerContext}){try{const{axios:axios,cheerio:cheerio,getBaseUrl:getBaseUrl}=providerContext,url=`${yield getBaseUrl("4khdhub")}${link}`,data=(yield axios.get(url)).data,$=cheerio.load(data),type=$(".season-content").length>0?"series":"movie",imdbId="",title=$(".page-title").text()||"",image=$(".poster-image").find("img").attr("src")||"",synopsis=$(".content-section").find("p").first().text().trim()||"",links=[];return"series"===type?$(".season-item").map((i,element)=>{const title=$(element).find(".episode-title").text();let directLinks=[];$(element).find(".episode-download-item").map((i,element)=>{const title=$(element).find(".episode-file-info").text().trim().replace("\n"," "),link=$(element).find(".episode-links").find("a:contains('HubDrive')").attr("href");title&&link&&directLinks.push({title:title,link:link})}),title&&directLinks.length>0&&links.push({title:title,directLinks:directLinks})}):$(".download-item").map((i,element)=>{const title=$(element).find(".flex-1.text-left.font-semibold").text().trim(),link=$(element).find(".grid.grid-cols-2.gap-2").find("a:contains('HubDrive')").attr("href");title&&link&&links.push({title:title,directLinks:[{title:title,link:link}]})}),{title:title,synopsis:synopsis,image:image,imdbId:imdbId,type:type,linkList:links}}catch(err){return{title:"",synopsis:"",image:"",imdbId:"",type:"movie",linkList:[]}}})};exports.getMeta=getMeta;
|
||||
"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.getMeta=void 0;const getMeta=function(_a){return __awaiter(this,arguments,void 0,function*({link:link,providerContext:providerContext}){try{const{axios:axios,cheerio:cheerio,getBaseUrl:getBaseUrl}=providerContext,url=`${yield getBaseUrl("4khdhub")}${link}`,data=(yield axios.get(url)).data,$=cheerio.load(data),type=$(".season-content").length>0?"series":"movie",imdbId="",title=$(".page-title").text()||"",image=$(".poster-image").find("img").attr("src")||"",synopsis=$(".content-section").find("p").first().text().trim()||"",links=[];return"series"===type?$(".season-item").map((i,element)=>{const title=$(element).find(".episode-title").text();let directLinks=[];$(element).find(".episode-download-item").map((i,element)=>{const title=$(element).find(".episode-file-info").text().trim().replace("\n"," "),link=$(element).find(".episode-links").find("a:contains('HubCloud')").attr("href");title&&link&&directLinks.push({title:title,link:link})}),title&&directLinks.length>0&&links.push({title:title,directLinks:directLinks})}):$(".download-item").map((i,element)=>{const title=$(element).find(".flex-1.text-left.font-semibold").text().trim(),link=$(element).find(".grid.grid-cols-2.gap-2").find("a:contains('HubCloud')").attr("href");title&&link&&links.push({title:title,directLinks:[{title:title,link:link}]})}),{title:title,synopsis:synopsis,image:image,imdbId:imdbId,type:type,linkList:links}}catch(err){return{title:"",synopsis:"",image:"",imdbId:"",type:"movie",linkList:[]}}})};exports.getMeta=getMeta;
|
||||
2
dist/4khdhub/stream.js
vendored
2
dist/4khdhub/stream.js
vendored
@@ -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())})};function getStream(_a){return __awaiter(this,arguments,void 0,function*({link:link,signal:signal,providerContext:providerContext}){var _b,_c,_d,_e;const{axios:axios,cheerio:cheerio,extractors:extractors,commonHeaders:headers}=providerContext,{hubcloudExtracter:hubcloudExtracter}=extractors;let hubdriveLink="";if(link.includes("hubdrive")){const hubdriveText=(yield axios.get(link,{headers:headers,signal:signal})).data;hubdriveLink=cheerio.load(hubdriveText)(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href")||link}else{const decodedString=decodeString(null===(_d=null===(_c=null===(_b=(yield axios.get(link,{headers:headers,signal:signal})).data.split("s('o','"))||void 0===_b?void 0:_b[1])||void 0===_c?void 0:_c.split("',180"))||void 0===_d?void 0:_d[0]);link=atob(null==decodedString?void 0:decodedString.o);const redirectLink=yield getRedirectLinks(link,signal,headers),redirectLinkText=(yield axios.get(redirectLink,{headers:headers,signal:signal})).data;if(hubdriveLink=cheerio.load(redirectLinkText)('h3:contains("1080p")').find("a").attr("href")||redirectLinkText.match(/href="(https:\/\/hubcloud\.[^\/]+\/drive\/[^"]+)"/)[1],hubdriveLink.includes("hubdrive")){const hubdriveText=(yield axios.get(hubdriveLink,{headers:headers,signal:signal})).data;hubdriveLink=cheerio.load(hubdriveText)(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href")||hubdriveLink}}const hubcloudLink=(null===(_e=(yield axios.get(hubdriveLink,{headers:headers,signal:signal})).data.match(/<META HTTP-EQUIV="refresh" content="0; url=([^"]+)">/i))||void 0===_e?void 0:_e[1])||hubdriveLink;try{return yield hubcloudExtracter(hubcloudLink,signal)}catch(error){return[]}})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=getStream,exports.getRedirectLinks=getRedirectLinks,exports.decodeString=decodeString;const encode=function(value){return btoa(value.toString())},decode=function(value){return void 0===value?"":atob(value.toString())},pen=function(value){return value.replace(/[a-zA-Z]/g,function(_0x1a470e){return String.fromCharCode((_0x1a470e<="Z"?90:122)>=(_0x1a470e=_0x1a470e.charCodeAt(0)+13)?_0x1a470e:_0x1a470e-26)})},abortableTimeout=(ms,{signal:signal}={})=>new Promise((resolve,reject)=>{if(signal&&signal.aborted)return reject(new Error("Aborted"));const timer=setTimeout(resolve,ms);signal&&signal.addEventListener("abort",()=>{clearTimeout(timer),reject(new Error("Aborted"))})});function getRedirectLinks(link,signal,headers){return __awaiter(this,void 0,void 0,function*(){try{const res=yield fetch(link,{headers:headers,signal:signal}),resText=yield res.text();for(var match,regex=/ck\('_wp_http_\d+','([^']+)'/g,combinedString="";null!==(match=regex.exec(resText));)combinedString+=match[1];const decodedString=decode(pen(decode(decode(combinedString)))),data=JSON.parse(decodedString),token=encode(null==data?void 0:data.data),blogLink=(null==data?void 0:data.wp_http1)+"?re="+token;let wait=abortableTimeout(1e3*(Number(null==data?void 0:data.total_time)+3),{signal:signal});yield wait;let vcloudLink="Invalid Request";for(;vcloudLink.includes("Invalid Request");){const blogRes=yield fetch(blogLink,{headers:headers,signal:signal}),blogResText=yield blogRes.text();if(!blogResText.includes("Invalid Request")){vcloudLink=blogResText.match(/var reurl = "([^"]+)"/)||"";break}}return blogLink||link}catch(err){return link}})}function rot13(str){return str.replace(/[a-zA-Z]/g,function(char){const charCode=char.charCodeAt(0),baseCharCode=char<="Z"?65:97;return String.fromCharCode((charCode-baseCharCode+13)%26+baseCharCode)})}function decodeString(encryptedString){try{let decoded=atob(encryptedString);return decoded=atob(decoded),decoded=rot13(decoded),decoded=atob(decoded),JSON.parse(decoded)}catch(error){return null}}
|
||||
"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())})};function getStream(_a){return __awaiter(this,arguments,void 0,function*({link:link,signal:signal,providerContext:providerContext}){var _b,_c,_d,_e;const{axios:axios,cheerio:cheerio,extractors:extractors,commonHeaders:headers}=providerContext,{hubcloudExtracter:hubcloudExtracter}=extractors;let hubdriveLink="";if(link.includes("hubdrive")){const hubdriveText=(yield axios.get(link,{headers:headers,signal:signal})).data;hubdriveLink=cheerio.load(hubdriveText)(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href")||link}else{const decodedString=decodeString(null===(_d=null===(_c=null===(_b=(yield axios.get(link,{headers:headers,signal:signal})).data.split("s('o','"))||void 0===_b?void 0:_b[1])||void 0===_c?void 0:_c.split("',180"))||void 0===_d?void 0:_d[0]);link=atob(null==decodedString?void 0:decodedString.o);const redirectLink=yield getRedirectLinks(link,signal,headers);if(redirectLink.includes("hubcloud")||redirectLink.includes("/drive/"))return yield hubcloudExtracter(redirectLink,signal);const redirectLinkText=(yield axios.get(redirectLink,{headers:headers,signal:signal})).data;if(hubdriveLink=cheerio.load(redirectLinkText)('h3:contains("1080p")').find("a").attr("href")||redirectLinkText.match(/href="(https:\/\/hubcloud\.[^\/]+\/drive\/[^"]+)"/)[1],hubdriveLink.includes("hubdrive")){const hubdriveText=(yield axios.get(hubdriveLink,{headers:headers,signal:signal})).data;hubdriveLink=cheerio.load(hubdriveText)(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href")||hubdriveLink}}const hubcloudLink=(null===(_e=(yield axios.get(hubdriveLink,{headers:headers,signal:signal})).data.match(/<META HTTP-EQUIV="refresh" content="0; url=([^"]+)">/i))||void 0===_e?void 0:_e[1])||hubdriveLink;try{return yield hubcloudExtracter(hubcloudLink,signal)}catch(error){return[]}})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=getStream,exports.getRedirectLinks=getRedirectLinks,exports.decodeString=decodeString;const encode=function(value){return btoa(value.toString())},decode=function(value){return void 0===value?"":atob(value.toString())},pen=function(value){return value.replace(/[a-zA-Z]/g,function(_0x1a470e){return String.fromCharCode((_0x1a470e<="Z"?90:122)>=(_0x1a470e=_0x1a470e.charCodeAt(0)+13)?_0x1a470e:_0x1a470e-26)})},abortableTimeout=(ms,{signal:signal}={})=>new Promise((resolve,reject)=>{if(signal&&signal.aborted)return reject(new Error("Aborted"));const timer=setTimeout(resolve,ms);signal&&signal.addEventListener("abort",()=>{clearTimeout(timer),reject(new Error("Aborted"))})});function getRedirectLinks(link,signal,headers){return __awaiter(this,void 0,void 0,function*(){try{const res=yield fetch(link,{headers:headers,signal:signal}),resText=yield res.text();for(var match,regex=/ck\('_wp_http_\d+','([^']+)'/g,combinedString="";null!==(match=regex.exec(resText));)combinedString+=match[1];const decodedString=decode(pen(decode(decode(combinedString)))),data=JSON.parse(decodedString),token=encode(null==data?void 0:data.data),blogLink=(null==data?void 0:data.wp_http1)+"?re="+token;let wait=abortableTimeout(1e3*(Number(null==data?void 0:data.total_time)+3),{signal:signal});yield wait;let vcloudLink="Invalid Request";for(;vcloudLink.includes("Invalid Request");){const blogRes=yield fetch(blogLink,{headers:headers,signal:signal}),blogResText=yield blogRes.text();if(!blogResText.includes("Invalid Request")){vcloudLink=blogResText.match(/var reurl = "([^"]+)"/)||"";break}}return blogLink||link}catch(err){return link}})}function rot13(str){return str.replace(/[a-zA-Z]/g,function(char){const charCode=char.charCodeAt(0),baseCharCode=char<="Z"?65:97;return String.fromCharCode((charCode-baseCharCode+13)%26+baseCharCode)})}function decodeString(encryptedString){try{let decoded=atob(encryptedString);return decoded=atob(decoded),decoded=rot13(decoded),decoded=atob(decoded),JSON.parse(decoded)}catch(error){return null}}
|
||||
@@ -34,7 +34,7 @@
|
||||
{
|
||||
"display_name": "4khdHub",
|
||||
"value": "4khdhub",
|
||||
"version": "1.6",
|
||||
"version": "1.7",
|
||||
"icon": "",
|
||||
"type": "global",
|
||||
"disabled": false
|
||||
|
||||
@@ -38,9 +38,9 @@ export const getMeta = async function ({
|
||||
.replace("\n", " ");
|
||||
const link = $(element)
|
||||
.find(".episode-links")
|
||||
.find("a:contains('HubDrive')")
|
||||
.find("a:contains('HubCloud')")
|
||||
.attr("href");
|
||||
console.log("title⭐", title, "link", link);
|
||||
// console.log("title⭐", title, "link", link);
|
||||
if (title && link) {
|
||||
directLinks.push({ title, link });
|
||||
}
|
||||
@@ -60,7 +60,7 @@ export const getMeta = async function ({
|
||||
.trim();
|
||||
const link = $(element)
|
||||
.find(".grid.grid-cols-2.gap-2")
|
||||
.find("a:contains('HubDrive')")
|
||||
.find("a:contains('HubCloud')")
|
||||
.attr("href");
|
||||
// console.log("title⭐", title, "link", link);
|
||||
if (title && link) {
|
||||
|
||||
@@ -31,13 +31,17 @@ export async function getStream({
|
||||
const decodedString: any = decodeString(encryptedString);
|
||||
link = atob(decodedString?.o);
|
||||
const redirectLink = await getRedirectLinks(link, signal, headers);
|
||||
console.log("redirectLink", redirectLink);
|
||||
if (redirectLink.includes("hubcloud") || redirectLink.includes("/drive/")) {
|
||||
return await hubcloudExtracter(redirectLink, signal);
|
||||
}
|
||||
const redirectLinkRes = await axios.get(redirectLink, { headers, signal });
|
||||
const redirectLinkText = redirectLinkRes.data;
|
||||
const $ = cheerio.load(redirectLinkText);
|
||||
hubdriveLink =
|
||||
$('h3:contains("1080p")').find("a").attr("href") ||
|
||||
redirectLinkText.match(
|
||||
/href="(https:\/\/hubcloud\.[^\/]+\/drive\/[^"]+)"/
|
||||
/href="(https:\/\/hubcloud\.[^\/]+\/drive\/[^"]+)"/,
|
||||
)[1];
|
||||
if (hubdriveLink.includes("hubdrive")) {
|
||||
const hubdriveRes = await axios.get(hubdriveLink, { headers, signal });
|
||||
@@ -52,7 +56,7 @@ export async function getStream({
|
||||
const hubcloudText = hubdriveLinkRes.data;
|
||||
const hubcloudLink =
|
||||
hubcloudText.match(
|
||||
/<META HTTP-EQUIV="refresh" content="0; url=([^"]+)">/i
|
||||
/<META HTTP-EQUIV="refresh" content="0; url=([^"]+)">/i,
|
||||
)?.[1] || hubdriveLink;
|
||||
try {
|
||||
return await hubcloudExtracter(hubcloudLink, signal);
|
||||
@@ -77,14 +81,14 @@ const pen = function (value: string) {
|
||||
(_0x1a470e <= "Z" ? 90 : 122) >=
|
||||
(_0x1a470e = _0x1a470e.charCodeAt(0) + 13)
|
||||
? _0x1a470e
|
||||
: _0x1a470e - 26
|
||||
: _0x1a470e - 26,
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
const abortableTimeout = (
|
||||
ms: number,
|
||||
{ signal }: { signal?: AbortSignal } = {}
|
||||
{ signal }: { signal?: AbortSignal } = {},
|
||||
) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (signal && signal.aborted) {
|
||||
@@ -105,7 +109,7 @@ const abortableTimeout = (
|
||||
export async function getRedirectLinks(
|
||||
link: string,
|
||||
signal: AbortSignal,
|
||||
headers: any
|
||||
headers: any,
|
||||
) {
|
||||
try {
|
||||
const res = await fetch(link, { headers, signal });
|
||||
@@ -160,7 +164,7 @@ function rot13(str: string) {
|
||||
const isUpperCase = char <= "Z";
|
||||
const baseCharCode = isUpperCase ? 65 : 97;
|
||||
return String.fromCharCode(
|
||||
((charCode - baseCharCode + 13) % 26) + baseCharCode
|
||||
((charCode - baseCharCode + 13) % 26) + baseCharCode,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user