mirror of
https://git.luna-app.eu/50n50/sources
synced 2025-12-21 21:26:19 +01:00
Add wearechecking/wearechecking.js
This commit is contained in:
parent
2e8cc4b214
commit
74c9bf6ca9
1 changed files with 148 additions and 0 deletions
148
wearechecking/wearechecking.js
Normal file
148
wearechecking/wearechecking.js
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
async function searchResults(keyword) {
|
||||
const results = [];
|
||||
try {
|
||||
const urls = [
|
||||
'https://wearechecking.wtf/streams-pages/motorsports',
|
||||
'https://wearechecking.wtf/streams-pages/football',
|
||||
'https://wearechecking.wtf/streams-pages/others'
|
||||
];
|
||||
|
||||
const responses = await Promise.all(
|
||||
urls.map(url => fetchv2(url).then(res => res.text()))
|
||||
);
|
||||
|
||||
for (const html of responses) {
|
||||
const wrapperRegex = /<div class="stream-wrapper[^"]*"[^>]*>([\s\S]*?)<\/div>\s*<!--.*?stream close -->/gi;
|
||||
let wrapperMatch;
|
||||
|
||||
while ((wrapperMatch = wrapperRegex.exec(html)) !== null) {
|
||||
const wrapperContent = wrapperMatch[1];
|
||||
|
||||
const imgRegex = /<img class="stream-thumb" src="([^"]+)"/i;
|
||||
const imgMatch = imgRegex.exec(wrapperContent);
|
||||
const imageUrl = imgMatch ? imgMatch[1].replace('..', 'https://wearechecking.wtf').replace(/\\/g, '/') : '';
|
||||
|
||||
const seriesTitleRegex = /<img src="[^"]*[\/\\]([^\/\\]+)\.svg"/i;
|
||||
const seriesMatch = seriesTitleRegex.exec(wrapperContent);
|
||||
const sport = seriesMatch ? seriesMatch[1].toUpperCase() : 'UNKNOWN';
|
||||
|
||||
const streamLinkRegex = /<div class="stream-feed[^"]*"[^>]*onclick="location\.href='([^']+)'[^>]*>\s*<p><span class="unix-timestamp">\d+<\/span>([^<]+)<\/p>/gi;
|
||||
let linkMatch;
|
||||
|
||||
while ((linkMatch = streamLinkRegex.exec(wrapperContent)) !== null) {
|
||||
const streamUrl = 'https://wearechecking.wtf' + linkMatch[1];
|
||||
const eventName = linkMatch[2].trim();
|
||||
const title = `[${sport}] ${eventName}`;
|
||||
|
||||
results.push({
|
||||
title: title,
|
||||
image: imageUrl,
|
||||
href: streamUrl
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return JSON.stringify(results);
|
||||
} catch (err) {
|
||||
return JSON.stringify([{
|
||||
title: "Error",
|
||||
image: "Error",
|
||||
href: "Error"
|
||||
}]);
|
||||
}
|
||||
}
|
||||
|
||||
async function extractDetails(url) {
|
||||
try {
|
||||
return JSON.stringify([{
|
||||
description: "",
|
||||
aliases: "",
|
||||
airdate: ""
|
||||
}]);
|
||||
} catch (err) {
|
||||
return JSON.stringify([{
|
||||
description: "Error",
|
||||
aliases: "Error",
|
||||
airdate: "Error"
|
||||
}]);
|
||||
}
|
||||
}
|
||||
|
||||
async function extractEpisodes(url) {
|
||||
const results = [];
|
||||
try {
|
||||
results.push({
|
||||
href: url,
|
||||
number: 1
|
||||
});
|
||||
|
||||
return JSON.stringify(results);
|
||||
} catch (err) {
|
||||
return JSON.stringify([{
|
||||
href: "Error",
|
||||
number: "Error"
|
||||
}]);
|
||||
}
|
||||
}
|
||||
|
||||
async function extractStreamUrl(pageUrl) {
|
||||
try {
|
||||
const response = await fetchv2(pageUrl);
|
||||
const html = await response.text();
|
||||
|
||||
const iframeRegex = /(?:document\.getElementById\('feed-iframe'\)\.src|src)\s*=\s*['"]https:\/\/ihatestreams\.xyz\/embed\/([a-f0-9\-]+)['"]/i;
|
||||
const match = iframeRegex.exec(html);
|
||||
|
||||
if (!match) return JSON.stringify({ streams: [], subtitle: null });
|
||||
|
||||
const streamId = match[1];
|
||||
|
||||
const streamResponse = await fetchv2(`https://ihatestreams.xyz/get-stream?id=${streamId}`);
|
||||
const streamData = await streamResponse.json();
|
||||
|
||||
let streamUrl = streamData.pointer;
|
||||
let headers = {};
|
||||
|
||||
if (!streamUrl.startsWith("http")) {
|
||||
const baseUrl = `https://gg.revoltedpeanuts.com/${streamUrl}/`;
|
||||
headers = {
|
||||
"Referer": "https://ihatestreams.xyz/",
|
||||
"Origin": "https://ihatestreams.xyz"
|
||||
};
|
||||
|
||||
const manifestResponse = await fetchv2(baseUrl + "index.m3u8", headers);
|
||||
const manifestText = await manifestResponse.text();
|
||||
|
||||
const lines = manifestText.split("\n").map(l => l.trim());
|
||||
const relativePath = lines.find(l => l && !l.startsWith("#")) || "index.m3u8";
|
||||
streamUrl = baseUrl + relativePath;
|
||||
}
|
||||
|
||||
return JSON.stringify({
|
||||
streams: [
|
||||
{
|
||||
title: streamData.title || "Unknown",
|
||||
streamUrl,
|
||||
headers
|
||||
}
|
||||
],
|
||||
subtitle: streamData.subtitle || null
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
return JSON.stringify({
|
||||
streams: [
|
||||
{
|
||||
title: "Error",
|
||||
streamUrl: "https://error.org/",
|
||||
headers: {}
|
||||
}
|
||||
],
|
||||
subtitle: null
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue