From 544adfa7b240453f47bfe2955ba42a5310fae4b1 Mon Sep 17 00:00:00 2001 From: sdaqo Date: Sun, 9 Apr 2023 07:01:11 +0200 Subject: [PATCH] use packer for filemoon --- src/index.ts | 2 +- src/match/matches.ts | 13 +++++-------- src/ui/player/player.ts | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/index.ts b/src/index.ts index d968097..ab2e63f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -21,7 +21,7 @@ async function main() { const url = await match.match(re) - if (match.replace && !url.endsWith('.m3u8')) { + if (match.replace && !url.includes('.m3u8')) { const player = document.createElement('video') player.style.width = '100%' player.style.height = '100%' diff --git a/src/match/matches.ts b/src/match/matches.ts index e5225bd..38f359f 100644 --- a/src/match/matches.ts +++ b/src/match/matches.ts @@ -57,16 +57,13 @@ class Filemoon implements Match { domains = [ 'filemoon.sx' ] - regex = new RegExp(/(?<=\|)\w{2,}/gm) + regex = new RegExp(/eval\(function\(p,a,c,k,e,d\).*?(?=\<\/script\>)/gms) async match(match: RegExpMatchArray): Promise { - const start_idx = match.indexOf('moon') - - const prefix = `${match[start_idx]}-${match[start_idx-1]}-${match[start_idx-2]}-${match[start_idx-3]}` - const time = match.find(m => m.length === 10 && !isNaN(parseInt(m))) - const offset = !isNaN(parseInt(match[start_idx-12])) && parseInt(match[start_idx-12]).toString().length == match[start_idx-12].length ? 0 : -1 - - return `https://${prefix}.filemoon.${match[start_idx-4]}/${match[start_idx-5]}/${match[start_idx-6]}/${match[start_idx-7]}/${match[start_idx-8]}/master.m3u8?t=${match[start_idx-11]}${offset != 0 ? `-${match[start_idx-12]}` : ''}&s=${time}&e=${match[start_idx + offset - 12]}&sp=${match[start_idx + offset - 18]}` + let unpacked = unPack(match[0]) + let url = unpacked.match(/(?<=file:").*(?=")/)[0] + console.log(url) + return url } } diff --git a/src/ui/player/player.ts b/src/ui/player/player.ts index 7e43355..a258208 100644 --- a/src/ui/player/player.ts +++ b/src/ui/player/player.ts @@ -44,7 +44,7 @@ async function main() { } document.title = `Stream Bypass (${domain})` - new URL(url).pathname.endsWith('.m3u8') ? await play_hls(url) : await play_native(url) + new URL(url).pathname.contains('.m3u8') ? await play_hls(url) : await play_native(url) } main()