diff --git a/src/source/FourKHDHub.test.ts b/src/source/FourKHDHub.test.ts index 40c54de..ac4ce8c 100644 --- a/src/source/FourKHDHub.test.ts +++ b/src/source/FourKHDHub.test.ts @@ -50,4 +50,9 @@ describe('FourKHDHub', () => { const streams = await source.handle(ctx, 'movie', new TmdbId(1948, undefined, undefined)); expect(streams).toMatchSnapshot(); }); + + test('handle lovely runner 2024 s01e01', async () => { + const streams = await source.handle(ctx, 'series', new TmdbId(230923, 1, 1)); + expect(streams).toMatchSnapshot(); + }); }); diff --git a/src/source/FourKHDHub.ts b/src/source/FourKHDHub.ts index 3fb7933..7265e95 100644 --- a/src/source/FourKHDHub.ts +++ b/src/source/FourKHDHub.ts @@ -42,13 +42,14 @@ export class FourKHDHub extends Source { return Promise.all( $(`.episode-item`) .filter((_i, el) => $('.episode-title', el).text().includes(`S${String(tmdbId.season).padStart(2, '0')}`)) - .map(async (_i, el) => { - const downloadItemEl = $('.episode-download-item', el) + .map((_i, el) => ({ + countryCodes: findCountryCodes($(el).html() as string), + downloadItem: $('.episode-download-item', el) .filter((_i, el) => $(el).text().includes(`Episode-${String(tmdbId.episode).padStart(2, '0')}`)) - .get(0); - - return await this.extractSourceResults(ctx, $, downloadItemEl as BasicAcceptedElems, findCountryCodes($(el).html() as string)); - }).toArray(), + .get(0), + })).filter((_i, { downloadItem }) => downloadItem !== undefined) + .map(async (_id, { countryCodes, downloadItem }) => await this.extractSourceResults(ctx, $, downloadItem as BasicAcceptedElems, countryCodes)) + .toArray(), ); } diff --git a/src/source/__fixtures__/FourKHDHub/https:4khdhub.fanslovely-runner-series-3379.html b/src/source/__fixtures__/FourKHDHub/https:4khdhub.fanslovely-runner-series-3379.html new file mode 100644 index 0000000..ff8fba4 --- /dev/null +++ b/src/source/__fixtures__/FourKHDHub/https:4khdhub.fanslovely-runner-series-3379.html @@ -0,0 +1,2837 @@ + + + + + + + + + + + + + +Lovely Runner (2024) - 4K-HDHub + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ +
+ + + + +
+ + + + + +
+ + + + + +
+
+
+ + + + + + + + + +
+ + +
+
+ + +
+ +
+
+

Lovely Runner

+

I will protect both you and me.

+
+ 2024 + + Amazon Prime Video + + Comedy + + Drama + + Hindi + + Korean + + Music + + Mystery + + Romance + + Sci-Fi & Fantasy + + Series + + + + +
+

• S01

+ +
+ +
+
+ +
+ +

+ Right after Ryu Sun-jae, a top star, ends his life, Im Sol, his top fan, somehow ends up at a time when they were in high school and tries to protect him. A fantasy romance unfolds where people who missed each other in time finally meet.

+ + + + + +
+ +
+
+ + +
+ + +
+

Download Complete Season

+ +
+ + +
+
+ +
S01
+ +
+ Lovely Runner S01 (E09-E16) (WEB-DL 1080p WEB-DL H264) + +
79.48 GB + Hindi, Korean + WEB-DL + +
+ + + +
+ +
+ +
+
+ +
S01
+ +
+ Lovely Runner S01 (E01-E08) (WEB-DL 1080p WEB-DL H264) + +
76.49 GB + Hindi, Korean + WEB-DL + +
+ + + +
+ +
+ +
+
+ +
S01
+ +
+ Lovely Runner S01 AVC (AMZN 1080p WEB-DL H264) + +
50.61 GB + Hindi, Korean + WEB-DL + +
+ + + +
+ +
+ +
+
+ +
S01
+ +
+ Lovely Runner S01 AVC (AMZN 720p WEB-DL H264) + +
24.42 GB + Hindi, Korean + WEB-DL + +
+ + + +
+ +
+ +
+
+ +
S01
+ +
+ Lovely Runner S01 HEVC (AMZN 1080p WEB-DL H265) + +
18.56 GB + Hindi, Korean + WEB-DL + +
+ + + +
+ +
+ +
+
+ +
S01
+ +
+ Lovely Runner S01 HEVC (AMZN 720p WEB-DL H265) + +
7.92 GB + Hindi, Korean + WEB-DL + +
+ + + +
+ +
+ + +
+
+ + +
+

Download Individual Episodes

+ + +
+ +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+
+
+ + +
+
+ + +
+
+ + + + + +

How to Download

+
+
    +
  1. Click on the download link of your choice.
  2. +
  3. Wait for the page to load and bypass any ads if necessary.
  4. +
  5. Click on the download button on the file hosting site.
  6. +
  7. Enjoy your high-quality series!
  8. +
+
+ + +
+
+
+
+ +
+
+
+
+

4K-HDHub

+

+ Your one-stop destination for high-quality movies and TV shows in various formats. +

+
+ + +
+

Quick Links

+ +
+ +
+

Connect

+

Stay updated with the latest releases and news.

+
+
+ + +
+

© 2025 4K-HDHub - All rights reserved.

+
+
+
+ + + + + + + +
+ + + + diff --git a/src/source/__fixtures__/FourKHDHub/https:4khdhub.fanssLovelypercent20Runnerpercent202024 b/src/source/__fixtures__/FourKHDHub/https:4khdhub.fanssLovelypercent20Runnerpercent202024 new file mode 100644 index 0000000..4bd7c01 --- /dev/null +++ b/src/source/__fixtures__/FourKHDHub/https:4khdhub.fanssLovelypercent20Runnerpercent202024 @@ -0,0 +1,722 @@ + + + + + + 4KHDHub - High Quality Movies and TV Shows + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ +
+ + + + +
+ + + + + +
+ + + + + +
+
+
+ + + + + + + + + +
+ + + +
+
+
+
+

+ Latest Releases

+ +
+ +
+ + + + + +
+ Lovely Runner +
+
+ + Amazon Prime Video + + Comedy + + Drama + + Hindi + + Korean + + Music + + Mystery + + Romance + + Sci-Fi & Fantasy + + Series + + +
+
+
+
+

Lovely Runner

+

2024 • S01

+
+
+ + + + +
+ Gunner +
+
+ + 1080p + + 10Bit + + Action + + BluRay + + Crime + + Dual Language + + REMUX + + Thriller + + Movies + + +
+
+
+
+

Gunner

+

2024

+
+
+ + + + +
+ Blade Runner 2049 +
+
+ + Drama + + Science Fiction + + Movies + + 1080p + + 2160p + + BluRay + + Dual Language + + HDR + + +
+
+
+
+

Blade Runner 2049

+

2017

+
+
+ + + + +
+ The Maze Runner +
+
+ + Action + + Mystery + + Science Fiction + + Thriller + + Movies + + 2160p + + BluRay + + Dual Language + + HDR + + +
+
+
+
+

The Maze Runner

+

2014

+
+
+ + + + +
+ Lonely Enough to Love! +
+
+ + Comedy + + Drama + + Hindi + + Romance + + Series + + +
+
+
+
+

Lonely Enough to Love!

+

2020 • S01

+
+
+ + + + +
+ Maze Runner: The Scorch Trials +
+
+ + Action + + Adventure + + Science Fiction + + Thriller + + Movies + + HDR + + BluRay + + Dual Language + + +
+
+
+
+

Maze Runner: The Scorch Trials

+

2015

+
+
+ + + + +
+ Maze Runner: The Death Cure +
+
+ + Action + + Adventure + + Science Fiction + + Thriller + + Movies + + 2160p + + BluRay + + Dual Language + + HDR + + +
+
+
+
+

Maze Runner: The Death Cure

+

2018

+
+
+ + + + +
+ Rust +
+
+ + 1080p + + 2160p + + WEB-DL + + Western + + Movies + + +
+
+
+
+

Rust

+

2024

+
+
+ + + + +
+ Unstoppable +
+
+ + 1080p + + 2160p + + HDR + + DDP + + Documentary + + Drama + + English + + Hindi + + History + + Movies + + +
+
+
+
+

Unstoppable

+

2024

+
+
+ + + + +
+ Survive +
+
+ + 1080p + + 10Bit + + Action + + Adventure + + BluRay + + Science Fiction + + Thriller + + Movies + + +
+
+
+
+

Survive

+

2024

+
+
+ + + + +
+ Absolution +
+
+ + Action + + Crime + + DDP + + English + + Family + + Hindi + + Mystery + + Thriller + + Movies + + +
+
+
+
+

Absolution

+

2024

+
+
+ + + + +
+ APPU +
+
+ + Animation + + Comedy + + Drama + + Family + + Movies + + Dual Language + + WEB-DL + + +
+
+
+
+

APPU

+

2024

+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ +
+ +
+ +
+
+ + +
+
+
+
+

4KHDHub

+

+ Your one-stop destination for high-quality movies and TV shows in various formats. +

+
+ + +
+

Quick Links

+ +
+ +
+

Connect

+

Stay updated with the latest releases and news.

+
+
+ + +
+

© 2025 4KHDHub - All rights reserved.

+
+
+
+ + + +
+ + + + diff --git a/src/source/__fixtures__/FourKHDHub/https:api.themoviedb.org3tv230923 b/src/source/__fixtures__/FourKHDHub/https:api.themoviedb.org3tv230923 new file mode 100644 index 0000000..ad6a3b4 --- /dev/null +++ b/src/source/__fixtures__/FourKHDHub/https:api.themoviedb.org3tv230923 @@ -0,0 +1 @@ +{"adult":false,"backdrop_path":"/vUVPHEo4ayCO4kkNV4k0PbWPmZS.jpg","created_by":[{"id":4220681,"credit_id":"64de76d9371097011c53058f","name":"Kim Bbang","original_name":"Kim Bbang","gender":0,"profile_path":null}],"episode_run_time":[70],"first_air_date":"2024-04-08","genres":[{"id":18,"name":"Drama"},{"id":10765,"name":"Sci-Fi & Fantasy"},{"id":35,"name":"Comedy"},{"id":9648,"name":"Mystery"}],"homepage":"https://tvn.cjenm.com/ko/Lovely-Runner/","id":230923,"in_production":false,"languages":["ko"],"last_air_date":"2024-05-28","last_episode_to_air":{"id":5148777,"name":"I Remember Everything","overview":"Sun-jae's memory comes back and now he remembers everything that happened between Sol and him. Thanks to Tae-sung, the ill-fated relations are resolved and the couple can be together. Sun-jae wants to propose to Sol, but finding the right time is difficult. Sun-ae decides to attend Sol’s nephew’s first birthday party and meet Sol’s family.","vote_average":0.0,"vote_count":1,"air_date":"2024-05-28","episode_number":16,"episode_type":"finale","production_code":"","runtime":77,"season_number":1,"show_id":230923,"still_path":"/hcFyYk5LGmkqTSbxRnQqej3mszO.jpg"},"name":"Lovely Runner","next_episode_to_air":null,"networks":[{"id":866,"logo_path":"/aRDq8zBrX3YLpHSfueNQBkNnn7b.png","name":"tvN","origin_country":"KR"}],"number_of_episodes":16,"number_of_seasons":1,"origin_country":["KR"],"original_language":"ko","original_name":"선재 업고 튀어","overview":"Right after Ryu Sun-jae, a top star, ends his life, Im Sol, his top fan, somehow ends up at a time when they were in high school and tries to protect him. A fantasy romance unfolds where people who missed each other in time finally meet.","popularity":10.0734,"poster_path":"/xJQyrif5M4UMoVBrBlwUabtaRxB.jpg","production_companies":[{"id":36225,"logo_path":"/haNfBy6ZS1a1teY9JXNHHkFhZEj.png","name":"Bon Factory","origin_country":"KR"},{"id":199265,"logo_path":"/mv2yDqAgT1ea1eTXZMDr89zX95M.png","name":"CJ ENM Studios","origin_country":"KR"}],"production_countries":[{"iso_3166_1":"KR","name":"South Korea"}],"seasons":[{"air_date":"2024-04-08","episode_count":16,"id":349357,"name":"Season 1","overview":"Im Sol is devastated by the sudden and tragic death of her favorite star, Ryu Sun-jae, a former swimmer turned K-pop idol. But in the midst of her anguish, she magically time slips back to 2008 – when Sun-jae is still only 19 years old! Delighted that she has a chance to help him avert his unhappy future fate, Sol makes it her mission to change the future... and maybe find love along the way.","poster_path":"/xJQyrif5M4UMoVBrBlwUabtaRxB.jpg","season_number":1,"vote_average":10.0}],"spoken_languages":[{"english_name":"Korean","iso_639_1":"ko","name":"한국어/조선말"}],"status":"Ended","tagline":"I will protect both you and me.","type":"Scripted","vote_average":8.578,"vote_count":210} \ No newline at end of file diff --git a/src/source/__fixtures__/FourKHDHub/https:taazabull24.comidQ1dxTzFnbjhrQm5kMG5lL01tQzcvaHhpOFBFcWlwQUQ0VnRSUlFZaDIyU3VjQ05saEdUQkhpR3pwZkFua0x4NzlacGt2YnN1THBsZ0RNNWhRY1FlYWc9PQ b/src/source/__fixtures__/FourKHDHub/https:taazabull24.comidQ1dxTzFnbjhrQm5kMG5lL01tQzcvaHhpOFBFcWlwQUQ0VnRSUlFZaDIyU3VjQ05saEdUQkhpR3pwZkFua0x4NzlacGt2YnN1THBsZ0RNNWhRY1FlYWc9PQ new file mode 100644 index 0000000..f493779 --- /dev/null +++ b/src/source/__fixtures__/FourKHDHub/https:taazabull24.comidQ1dxTzFnbjhrQm5kMG5lL01tQzcvaHhpOFBFcWlwQUQ0VnRSUlFZaDIyU3VjQ05saEdUQkhpR3pwZkFua0x4NzlacGt2YnN1THBsZ0RNNWhRY1FlYWc9PQ @@ -0,0 +1,20 @@ + + +Redirecting ... + + + + + + + + + +Redirecting .. + + + + \ No newline at end of file diff --git a/src/source/__fixtures__/FourKHDHub/https:taazabull24.comidQ1dxTzFnbjhrQm5kMG5lL01tQzcvaHhpOFBFcWlwQUQ0VnRSUlFZaDIyVCtjSXVTeEF6TThBWUJIalBwcjQxdFpIRUdxSXE1d2sya0dCc3dYdXJyQ1E9PQ b/src/source/__fixtures__/FourKHDHub/https:taazabull24.comidQ1dxTzFnbjhrQm5kMG5lL01tQzcvaHhpOFBFcWlwQUQ0VnRSUlFZaDIyVCtjSXVTeEF6TThBWUJIalBwcjQxdFpIRUdxSXE1d2sya0dCc3dYdXJyQ1E9PQ new file mode 100644 index 0000000..9330672 --- /dev/null +++ b/src/source/__fixtures__/FourKHDHub/https:taazabull24.comidQ1dxTzFnbjhrQm5kMG5lL01tQzcvaHhpOFBFcWlwQUQ0VnRSUlFZaDIyVCtjSXVTeEF6TThBWUJIalBwcjQxdFpIRUdxSXE1d2sya0dCc3dYdXJyQ1E9PQ @@ -0,0 +1,20 @@ + + +Redirecting ... + + + + + + + + + +Redirecting .. + + + + \ No newline at end of file diff --git a/src/source/__snapshots__/FourKHDHub.test.ts.snap b/src/source/__snapshots__/FourKHDHub.test.ts.snap index d07db7b..230109d 100644 --- a/src/source/__snapshots__/FourKHDHub.test.ts.snap +++ b/src/source/__snapshots__/FourKHDHub.test.ts.snap @@ -239,6 +239,35 @@ exports[`FourKHDHub handle dexter resurrection 2025 s01e01 1`] = ` ] `; +exports[`FourKHDHub handle lovely runner 2024 s01e01 1`] = ` +[ + { + "meta": { + "bytes": 3586297692, + "countryCodes": [ + "hi", + "ko", + ], + "height": 1080, + "title": "Lovely.Runner.S01E01.1080p.AMZN.WEB-DL.Hindi.DDP2.0-Korean.DDP2.0.H.264-4kHdHub.Com.mkv", + }, + "url": "https://hubcloud.one/drive/8t7i1lrytgz56eo", + }, + { + "meta": { + "bytes": 10340133765, + "countryCodes": [ + "hi", + "ko", + ], + "height": 1080, + "title": "Lovely Runner S01E01 1080p WEB-DL [Hindi DDP 2.0 + Korean DDP 5.1] x264 (PandaMoon-LUMiX).mkv", + }, + "url": "https://hubcloud.one/drive/171fxx1xmbezm1r", + }, +] +`; + exports[`FourKHDHub handle non-existent devil's bath 2024 gracefully 1`] = `[]`; exports[`FourKHDHub handle superman 2025 1`] = `