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 = /
]*>([\s\S]*?)<\/div>\s*/gi; let wrapperMatch; while ((wrapperMatch = wrapperRegex.exec(html)) !== null) { const wrapperContent = wrapperMatch[1]; const imgRegex = /]*onclick="location\.href='([^']+)'[^>]*>\s*

\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 }); } }