From c4204caa892ec86b49b14799e11281b48cd59b3d Mon Sep 17 00:00:00 2001 From: Hugo Jeller Ferreira Date: Wed, 2 Nov 2022 20:53:55 -0400 Subject: [PATCH 1/3] feat: add clip downloader to global exports --- src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/index.ts b/src/index.ts index 2af28dc..8ec4c3e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -17,6 +17,7 @@ export * from './twitch/twitch'; export * from './twitch/clip-fetcher'; export * from './twitch/clip-url-fetcher'; export * from './twitch/clips-downloader'; +export * from './twitch/clip-downloader'; export * from './twitch/video-downloader'; export * from './twitch/video-fragments-fetcher'; From 87867fac1eb5c8f0998a8ae320a209309822e95e Mon Sep 17 00:00:00 2001 From: Hugo Jeller Ferreira Date: Wed, 2 Nov 2022 20:56:45 -0400 Subject: [PATCH 2/3] feat: return clip data on download --- src/twitch/clip-downloader.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/twitch/clip-downloader.ts b/src/twitch/clip-downloader.ts index 0c05f2f..e1809c3 100644 --- a/src/twitch/clip-downloader.ts +++ b/src/twitch/clip-downloader.ts @@ -26,7 +26,7 @@ export class ClipDownloader extends EventEmitter { } } - async download(): Promise { + async download(): Promise { await this.resolveClip(); const clip = this.clipOrUrl as Clip; @@ -38,7 +38,7 @@ export class ClipDownloader extends EventEmitter { if (existsSync(appPath(mp4Path))) { logger.verbose(`Clip ${clip.title} found at ${appPath(mp4Path)}`); - return; + return clip; } const promises: Promise[] = []; @@ -59,5 +59,7 @@ export class ClipDownloader extends EventEmitter { } await Promise.all(promises); + + return clip; } } From 69712871a008782f712552fd5d4519a86d777fbf Mon Sep 17 00:00:00 2001 From: Hugo Jeller Ferreira Date: Wed, 2 Nov 2022 21:11:06 -0400 Subject: [PATCH 3/3] test: add tests for ID extraction from URL --- tests/utils.test.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/utils.test.ts diff --git a/tests/utils.test.ts b/tests/utils.test.ts new file mode 100644 index 0000000..be43b9a --- /dev/null +++ b/tests/utils.test.ts @@ -0,0 +1,17 @@ +import {twitchClipUrlToId} from '../src'; + +const urls = [ + [ + 'https://clips.twitch.tv/SassyKawaiiMallardTTours-7vNzQmvsJDGoicMB', + 'SassyKawaiiMallardTTours-7vNzQmvsJDGoicMB', + ], [ + 'https://clips.twitch.tv/EnthusiasticAnnoyingCockroachNotLikeThis-HJPYZFxKOH5mF2oP', + 'EnthusiasticAnnoyingCockroachNotLikeThis-HJPYZFxKOH5mF2oP' + ] +]; + +test.each(urls)('clip id is extracted from url', async (url, expectedId) => { + const id = twitchClipUrlToId(url); + + expect(id).toStrictEqual(expectedId); +});