From 48c773516521bac37ed8218df5544bdd9228a8f5 Mon Sep 17 00:00:00 2001 From: WebStreamr <210764791+webstreamr@users.noreply.github.com> Date: Sat, 6 Sep 2025 19:30:35 +0000 Subject: [PATCH] fix(extractor): gracefully handle deleted files for SaveFiles --- src/extractor/SaveFiles.test.ts | 4 + src/extractor/SaveFiles.ts | 2 +- .../SaveFiles/https:savefiles.combejqk3vlsv02 | 874 ++++++++++++++++++ .../__snapshots__/SaveFiles.test.ts.snap | 2 + 4 files changed, 881 insertions(+), 1 deletion(-) create mode 100644 src/extractor/__fixtures__/SaveFiles/https:savefiles.combejqk3vlsv02 diff --git a/src/extractor/SaveFiles.test.ts b/src/extractor/SaveFiles.test.ts index 8213b16..6ed90fa 100644 --- a/src/extractor/SaveFiles.test.ts +++ b/src/extractor/SaveFiles.test.ts @@ -26,6 +26,10 @@ describe('SafeFiles', () => { expect(await extractorRegistry.handle(ctx, new URL('https://savefiles.com/omqq55i59nvv'))).toMatchSnapshot(); }); + test('savefiles deleted file', async () => { + expect(await extractorRegistry.handle(ctx, new URL('https://savefiles.com/bejqk3vlsv02'))).toMatchSnapshot(); + }); + test('streamhls /e/', async () => { expect(await extractorRegistry.handle(ctx, new URL('https://streamhls.to/e/ip0k0dj2g0i3'))).toMatchSnapshot(); }); diff --git a/src/extractor/SaveFiles.ts b/src/extractor/SaveFiles.ts index c9bb22f..7a120ff 100644 --- a/src/extractor/SaveFiles.ts +++ b/src/extractor/SaveFiles.ts @@ -21,7 +21,7 @@ export class SaveFiles extends Extractor { protected async extractInternal(ctx: Context, url: URL, meta: Meta): Promise { const html = await this.fetcher.text(ctx, url); - if (/File was locked by administrator/.test(html)) { + if (/file was locked|file was deleted/i.test(html)) { throw new NotFoundError(); } diff --git a/src/extractor/__fixtures__/SaveFiles/https:savefiles.combejqk3vlsv02 b/src/extractor/__fixtures__/SaveFiles/https:savefiles.combejqk3vlsv02 new file mode 100644 index 0000000..f1688a7 --- /dev/null +++ b/src/extractor/__fixtures__/SaveFiles/https:savefiles.combejqk3vlsv02 @@ -0,0 +1,874 @@ + + + + + + + + + + + + + Watch alien earth s01e01 1080p web h264 successfulcrab mp4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ +
+
+ + + +
+

+ The file was deleted by administration because it didn't comply with our Terms of Use +

+

+ alien.earth.s01e01.1080p.web.h264-successfulcrab.mp4 +

+
+
+ Reason for deletion: +
+ DMCA request +
+
+ + +
+ + + + + + + \ No newline at end of file diff --git a/src/extractor/__snapshots__/SaveFiles.test.ts.snap b/src/extractor/__snapshots__/SaveFiles.test.ts.snap index 86afaad..9046504 100644 --- a/src/extractor/__snapshots__/SaveFiles.test.ts.snap +++ b/src/extractor/__snapshots__/SaveFiles.test.ts.snap @@ -51,6 +51,8 @@ exports[`SafeFiles savefiles 1`] = ` ] `; +exports[`SafeFiles savefiles deleted file 1`] = `[]`; + exports[`SafeFiles savefiles locked file 1`] = `[]`; exports[`SafeFiles streamhls /e/ 1`] = `