mirror of
https://github.com/vega-org/vega-providers.git
synced 2026-04-17 15:41:45 +00:00
71 lines
2.5 KiB
JavaScript
71 lines
2.5 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.katEpisodeLinks = void 0;
|
|
exports.extractKmhdLink = extractKmhdLink;
|
|
const katEpisodeLinks = async function ({ url, providerContext, }) {
|
|
const { axios, cheerio } = providerContext;
|
|
const episodesLink = [];
|
|
try {
|
|
if (url.includes('gdflix')) {
|
|
const baseUrl = url.split('/pack')?.[0];
|
|
const res = await axios.get(url);
|
|
const data = res.data;
|
|
const $ = cheerio.load(data);
|
|
const links = $('.list-group-item');
|
|
links?.map((i, link) => {
|
|
episodesLink.push({
|
|
title: $(link).text() || '',
|
|
link: baseUrl + $(link).find('a').attr('href') || '',
|
|
});
|
|
});
|
|
if (episodesLink.length > 0) {
|
|
return episodesLink;
|
|
}
|
|
}
|
|
if (url.includes('/pack')) {
|
|
const epIds = await extractKmhdEpisodes(url, providerContext);
|
|
epIds?.forEach((id, index) => {
|
|
episodesLink.push({
|
|
title: `Episode ${index + 1}`,
|
|
link: url.split('/pack')[0] + '/file/' + id,
|
|
});
|
|
});
|
|
}
|
|
const res = await axios.get(url, {
|
|
headers: {
|
|
Cookie: '_ga_GNR438JY8N=GS1.1.1722240350.5.0.1722240350.0.0.0; _ga=GA1.1.372196696.1722150754; unlocked=true',
|
|
},
|
|
});
|
|
const episodeData = res.data;
|
|
const $ = cheerio.load(episodeData);
|
|
const links = $('.autohyperlink');
|
|
links?.map((i, link) => {
|
|
episodesLink.push({
|
|
title: $(link).parent().children().remove().end().text() || '',
|
|
link: $(link).attr('href') || '',
|
|
});
|
|
});
|
|
return episodesLink;
|
|
}
|
|
catch (err) {
|
|
console.error(err);
|
|
return [];
|
|
}
|
|
};
|
|
exports.katEpisodeLinks = katEpisodeLinks;
|
|
async function extractKmhdLink(katlink, providerContext) {
|
|
const { axios } = providerContext;
|
|
const res = await axios.get(katlink);
|
|
const data = res.data;
|
|
const hubDriveRes = data.match(/hubdrive_res:\s*"([^"]+)"/)[1];
|
|
const hubDriveLink = data.match(/hubdrive_res\s*:\s*{[^}]*?link\s*:\s*"([^"]+)"/)[1];
|
|
return hubDriveLink + hubDriveRes;
|
|
}
|
|
async function extractKmhdEpisodes(katlink, providerContext) {
|
|
const { axios } = providerContext;
|
|
const res = await axios.get(katlink);
|
|
const data = res.data;
|
|
const ids = data.match(/[\w]+_[a-f0-9]{8}/g);
|
|
return ids;
|
|
}
|