diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 27ef6fc4..3ebefe35 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,30 +8,195 @@ on: branches: - master jobs: - build: + test-build: runs-on: ubuntu-22.04 strategy: matrix: python-version: ["3.10"] steps: - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} + - name: Install dependencies run: | - sudo apt-get update - sudo apt-get install -y ffmpeg - python -m pip install --upgrade pip + python -m venv /opt/env + source /opt/env/bin/activate pip install -e .[lint,test] + - name: Save Python build cache + uses: actions/cache@v3 + with: + path: /opt/env + key: ${{github.sha}}-env + + test-lint: + runs-on: ubuntu-22.04 + needs: test-build + permissions: + contents: read + + steps: + - uses: actions/checkout@v3 + + - name: Restore Python build cache + uses: actions/cache@v3 + with: + path: /opt/env + key: ${{github.sha}}-env + - name: Run linters run: | + source /opt/env/bin/activate ./tools/linter check - - name: Run tests with coverage + + test-unit: + runs-on: ubuntu-22.04 + needs: test-build + permissions: + contents: read + + steps: + - uses: actions/checkout@v3 + + - name: Restore Python build cache + uses: actions/cache@v3 + with: + path: /opt/env + key: ${{github.sha}}-env + + - name: Run unit tests with coverage run: | - ./tools/test xml + source /opt/env/bin/activate + coverage run -m pytest tests/unit && coverage xml -o /opt/coverage/unit/coverage.xml + + - name: Save coverage + uses: actions/cache@v3 + with: + path: /opt/coverage/unit + key: ${{github.sha}}-coverage-unit + + test-soundcloud: + runs-on: ubuntu-22.04 + needs: test-build + permissions: + contents: read + + steps: + - uses: actions/checkout@v3 + + - name: Restore Python build cache + uses: actions/cache@v3 + with: + path: /opt/env + key: ${{github.sha}}-env + + - name: Run e2e soundcloud tests with coverage + run: | + sudo apt-get install -y ffmpeg + source /opt/env/bin/activate + coverage run -m pytest tests/e2e/soundcloud && coverage xml -o /opt/coverage/soundcloud/coverage.xml + + - name: Save coverage + uses: actions/cache@v3 + with: + path: /opt/coverage/soundcloud + key: ${{github.sha}}-coverage-soundcloud + + test-youtube: + runs-on: ubuntu-22.04 + needs: test-build + permissions: + contents: read + + steps: + - uses: actions/checkout@v3 + + - name: Restore Python build cache + uses: actions/cache@v3 + with: + path: /opt/env + key: ${{github.sha}}-env + + - name: Run e2e youtube tests with coverage + run: | + sudo apt-get install -y ffmpeg + source /opt/env/bin/activate + coverage run -m pytest tests/e2e/youtube && coverage xml -o /opt/coverage/youtube/coverage.xml + + - name: Save coverage + uses: actions/cache@v3 + with: + path: /opt/coverage/youtube + key: ${{github.sha}}-coverage-youtube + + test-plugins: + runs-on: ubuntu-22.04 + needs: test-build + permissions: + contents: read + + steps: + - uses: actions/checkout@v3 + + - name: Restore Python build cache + uses: actions/cache@v3 + with: + path: /opt/env + key: ${{github.sha}}-env + + - name: Run e2e plugin tests with coverage + run: | + sudo apt-get install -y ffmpeg + source /opt/env/bin/activate + coverage run -m pytest tests/e2e/plugins && coverage xml -o /opt/coverage/plugins/coverage.xml + + - name: Save coverage + uses: actions/cache@v3 + with: + path: /opt/coverage/plugins + key: ${{github.sha}}-coverage-plugins + + codecov-upload: + runs-on: ubuntu-22.04 + needs: [ + test-unit, + test-soundcloud, + test-youtube, + test-plugins + ] + permissions: + contents: read + + steps: + - name: Restore unit test coverage + uses: actions/cache@v3 + with: + path: /opt/coverage/unit + key: ${{github.sha}}-coverage-unit + + - name: Restore soundcloud test coverage + uses: actions/cache@v3 + with: + path: /opt/coverage/soundcloud + key: ${{github.sha}}-coverage-soundcloud + + - name: Restore youtube test coverage + uses: actions/cache@v3 + with: + path: /opt/coverage/youtube + key: ${{github.sha}}-coverage-youtube + + - name: Restore plugins test coverage + uses: actions/cache@v3 + with: + path: /opt/coverage/plugins + key: ${{github.sha}}-coverage-plugins + - name: Upload code coverage to codecov.io uses: codecov/codecov-action@v3 with: - files: ./coverage.xml \ No newline at end of file + token: ${{ secrets.CODECOV_TOKEN }} + files: /opt/coverage/unit/coverage.xml,/opt/coverage/soundcloud/coverage.xml,/opt/coverage/youtube/coverage.xml,/opt/coverage/plugins/coverage.xml \ No newline at end of file diff --git a/.github/workflows/package.yaml b/.github/workflows/package.yaml index e62118ab..f514690c 100644 --- a/.github/workflows/package.yaml +++ b/.github/workflows/package.yaml @@ -49,7 +49,7 @@ jobs: key: ${{github.sha}} - # Build ARM64 container + # Build ARM64 container, only on master branch to save time testing package-arm64: runs-on: ubuntu-latest needs: [ @@ -59,6 +59,7 @@ jobs: permissions: contents: read + if: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v') }} steps: - uses: actions/checkout@v3 @@ -135,7 +136,8 @@ jobs: key: ${{github.sha}} - # On master branch, build the docker manifest file from the cached docker builds and push to the registry + # On master branch, build the docker manifest file from the cached + # docker builds and push to the registry deploy: runs-on: ubuntu-latest needs: [ diff --git a/examples/kodi_music_videos_config.yaml b/examples/kodi_music_videos_config.yaml index 0beaf1b8..94fc64d7 100644 --- a/examples/kodi_music_videos_config.yaml +++ b/examples/kodi_music_videos_config.yaml @@ -55,9 +55,11 @@ presets: # Overrides is a section where we can define our own variables, and use them in # any other section. We define our music video directory and episode file name # here, which gets reused above for the video, thumbnail, and NFO file. + # Recommended to override the artist variable. overrides: music_video_directory: "path/to/Music Videos" music_video_name: "{artist_sanitized} - {title_sanitized}" + artist: "{channel}" # It is not always ideal to download all of an artist's music videos. # Maybe you only like one song of theirs. We can reuse our preset above diff --git a/examples/youtube_extract_and_tag_audio.yaml b/examples/youtube_extract_and_tag_audio.yaml index b18aaf53..7d11240c 100644 --- a/examples/youtube_extract_and_tag_audio.yaml +++ b/examples/youtube_extract_and_tag_audio.yaml @@ -30,7 +30,7 @@ presets: music_directory: "/path/to/music" custom_track_name: "{title}" custom_album_name: "Singles" - custom_artist_name: "{artist}" + custom_artist_name: "{channel}" custom_track_number: "1" # TODO: make a playlist of individual songs into an album. Need playlist_title diff --git a/src/ytdl_sub/entries/variables/youtube_variables.py b/src/ytdl_sub/entries/variables/youtube_variables.py index 7446e1dc..8507ef88 100644 --- a/src/ytdl_sub/entries/variables/youtube_variables.py +++ b/src/ytdl_sub/entries/variables/youtube_variables.py @@ -28,51 +28,6 @@ class YoutubeVideoVariables(EntryVariables): """ return sanitize_filename(self.channel) - @property - def track_title(self: BaseEntry) -> str: - """ - Returns - ------- - str - The track title of a music video if it is available, otherwise it falls back to the - title. NOTE: Even if a video has music metadata, this variable does not always get - pulled via yt-dlp. Use with caution. - """ - # Try to get the track, fall back on title - return self.kwargs_get("track", super().title) - - @property - def track_title_sanitized(self) -> str: - """ - Returns - ------- - str - The sanitized track title. - """ - return sanitize_filename(self.track_title) - - @property - def artist(self: BaseEntry) -> str: - """ - Returns - ------- - str - The artist of a music video if it is available, otherwise it falls back to the channel. - NOTE: Even if a video has music metadata, this variable does not always get pulled via - yt-dlp. Use with caution. - """ - return self.kwargs_get("artist", self.kwargs("channel")) - - @property - def artist_sanitized(self) -> str: - """ - Returns - ------- - str - The sanitized artist name. - """ - return sanitize_filename(self.artist) - @property def playlist_index(self) -> int: """ diff --git a/tests/e2e/plugins/test_regex.py b/tests/e2e/plugins/test_regex.py index 1b12e8ac..48467cc1 100644 --- a/tests/e2e/plugins/test_regex.py +++ b/tests/e2e/plugins/test_regex.py @@ -46,11 +46,6 @@ def regex_subscription_dict(output_directory): "Second containing {in_regex_default}", ], }, - "artist": { - "match": ["Never (.*) capture"], - "capture_group_names": ["always_default"], - "capture_group_defaults": ["Always default"], - }, }, }, "nfo_tags": { @@ -60,8 +55,6 @@ def regex_subscription_dict(output_directory): "title_cap_2": "{title_date}", "desc_cap": "{description_website}", "upload_date_both_caps": "{upload_captured_year} and {upload_captured_month}", - "artist_cap_always_default": "{always_default}", - "artist_cap_always_default_sanitized": "{always_default_sanitized}", "override_with_capture_variable": "{contains_regex_default}", "override_with_capture_variable_sanitized": "{contains_regex_sanitized_default}", } diff --git a/tests/e2e/plugins/test_split_by_chapters.py b/tests/e2e/plugins/test_split_by_chapters.py index 0e865a57..77070650 100644 --- a/tests/e2e/plugins/test_split_by_chapters.py +++ b/tests/e2e/plugins/test_split_by_chapters.py @@ -46,7 +46,7 @@ def yt_album_as_chapters_with_regex_preset_dict(yt_album_as_chapters_preset_dict "captured_album", ], "capture_group_defaults": [ - "{artist}", + "{channel}", "{title}", ], }, diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/date_range/test_channel_recent.json b/tests/e2e/resources/expected_downloads_summaries/plugins/date_range/test_channel_recent.json index 5672df64..ea097163 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/date_range/test_channel_recent.json +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/date_range/test_channel_recent.json @@ -1,12 +1,12 @@ { ".ytdl-sub-recent-download-archive.json": "23520634f7908081f3d1333a1441a578", "Season 2018/s2018.e1029 - Jesse's Minecraft Server | Teaser Trailer-thumb.jpg": "705ca4e0d99b37e9ecdf6bfe4b90c59b", - "Season 2018/s2018.e1029 - Jesse's Minecraft Server | Teaser Trailer.info.json": "1f3a258a331dbec8513f07efb9311b4b", + "Season 2018/s2018.e1029 - Jesse's Minecraft Server | Teaser Trailer.info.json": "200abe9cf0fbb96ef69698a633f7bebb", "Season 2018/s2018.e1029 - Jesse's Minecraft Server | Teaser Trailer.mp4": "82f6ee7253e1dbb83ae7215af08ffacc", "Season 2018/s2018.e1029 - Jesse's Minecraft Server | Teaser Trailer.nfo": "368d68db0cbe9eb4f43ece0517445e82", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id-thumb.jpg": "28d852ede73b879b9ebf9a061cfc7d46", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.en.srt": "3d2c4e7f65d2ca5e96da38ce7eecfc4e", - "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.info.json": "444c5c772742074552ca48bf1ff37e02", + "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.info.json": "7d7f3ce72ed87faef5675af218cecb30", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.mp4": "e733b4cc385b953b08c8eb0f47e03c1e", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.nfo": "d9114d43d87907b2afc06eb089a8ac0a", "fanart.jpg": "129c6639b47299bc48062f0365e670ee", diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/date_range/test_channel_rolling_recent.json b/tests/e2e/resources/expected_downloads_summaries/plugins/date_range/test_channel_rolling_recent.json index 54d7c652..f440e0ca 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/date_range/test_channel_rolling_recent.json +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/date_range/test_channel_rolling_recent.json @@ -2,7 +2,7 @@ ".ytdl-sub-recent-download-archive.json": "3bbf72c014d055ecf672c8ea603140f7", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id-thumb.jpg": "28d852ede73b879b9ebf9a061cfc7d46", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.en.srt": "3d2c4e7f65d2ca5e96da38ce7eecfc4e", - "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.info.json": "444c5c772742074552ca48bf1ff37e02", + "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.info.json": "7d7f3ce72ed87faef5675af218cecb30", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.mp4": "e733b4cc385b953b08c8eb0f47e03c1e", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.nfo": "d9114d43d87907b2afc06eb089a8ac0a", "fanart.jpg": "129c6639b47299bc48062f0365e670ee", diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_video.json b/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_video.json index f61a00c2..4d42f14f 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_video.json +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_video.json @@ -1,15 +1,15 @@ { - "01. Intro (Feat. Racheal Ofori & Barney Artist).info.json": "d6caed6a753a43d0b04631cef1a8dcb7", - "02. Answers (Feat. Rick David & Kaya Thomas - Dyke).info.json": "2bc497a07f620b2869737c91d4b2408e", - "03. Blaze (Feat. Kaya Thomas - Dyke).info.json": "50f1a853a78d17455f6b07283f13b77b", - "04. What If (Interlude).info.json": "59cfcb53a073943da369ff1e6ebdb3cb", - "05. No Peace (Feat. Tom Misch).info.json": "429ca06333d06d09ea5e958a98afa343", - "06. Closer (Feat. Lester Duval).info.json": "64fca065f1d01bb71cdff18b4e3526e3", - "07. Delusions: Rumination (Interlude) (Feat. Racheal Ofori).info.json": "dccc927e7522642cca3b79c6c15a9c80", - "08. Dreams (Feat. Carmody).info.json": "18e9a4f4609c9110a9da1669debdaf90", - "09. Dreaming (Interlude) (Feat. Racheal Ofori).info.json": "5393cc84a1b48e365ea337c28a66b3ba", - "10. Hopeful (Feat. Jordan Rakei).info.json": "117df1e4cbb2e3d476bc7b2608c3a656", - "11. Sunrise (Pillows) (Feat. Emmavie).info.json": "4ec5967d4a77ef974325243c317b6c0f", + "01. Intro (Feat. Racheal Ofori & Barney Artist).info.json": "94a46b3263d7a0c144371e19107d3cf6", + "02. Answers (Feat. Rick David & Kaya Thomas - Dyke).info.json": "53748da13a12862098594051041a84d1", + "03. Blaze (Feat. Kaya Thomas - Dyke).info.json": "1dfe88b81ad1e6bd25b9ce3a94b0ce1e", + "04. What If (Interlude).info.json": "65b165b1d2ec5184fa7894350b4594e1", + "05. No Peace (Feat. Tom Misch).info.json": "c47761519802a1a9f2078c1ffa58ab05", + "06. Closer (Feat. Lester Duval).info.json": "0fa1a9de65f828e35825c0431c7fc72e", + "07. Delusions: Rumination (Interlude) (Feat. Racheal Ofori).info.json": "fa8566864fd40d358f932a8e701f159e", + "08. Dreams (Feat. Carmody).info.json": "366b8c6d86ac3f4978916acf0f770f9a", + "09. Dreaming (Interlude) (Feat. Racheal Ofori).info.json": "79a5c6131e95d943f3ca8e97e9e3fcf3", + "10. Hopeful (Feat. Jordan Rakei).info.json": "a3b98eea72b55353fb05250beafe6634", + "11. Sunrise (Pillows) (Feat. Emmavie).info.json": "8d0ab69f6b93bed6737f3f04e51e9a24", "Alfa Mist - Nocturne [Full Album]/01 - 01. Intro (Feat. Racheal Ofori & Barney Artist).mp3": "ddc24257729f24055bf1b8dc06f8224c", "Alfa Mist - Nocturne [Full Album]/02 - 02. Answers (Feat. Rick David & Kaya Thomas - Dyke).mp3": "10dd7f13c469bd51ffcf3f8ff3ed3d69", "Alfa Mist - Nocturne [Full Album]/03 - 03. Blaze (Feat. Kaya Thomas - Dyke).mp3": "376722aaf08d1ef6dcba0aaf7a3b7a79", diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_with_regex_no_chapters_video_pass.txt b/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_with_regex_no_chapters_video_pass.txt index 2879b875..74418921 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_with_regex_no_chapters_video_pass.txt +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_with_regex_no_chapters_video_pass.txt @@ -1,5 +1,5 @@ { - "Oblivion Mod "Falcor" p.1.info.json": "1f0ddcab2854a515d27fba208ad23714", + "Oblivion Mod "Falcor" p.1.info.json": "5357a4ad737634396c577883ae586516", "Oblivion Mod "Falcor" p.1/01 - Oblivion Mod "Falcor" p.1.mp3": "703ffb93964ac025ee66221b98ee4d49", "Oblivion Mod "Falcor" p.1/folder.jpg": "fb95b510681676e81c321171fc23143e" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_with_regex_video.json b/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_with_regex_video.json index a7dc5dbb..5b574f9e 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_with_regex_video.json +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/split_by_chapters_with_regex_video.json @@ -1,13 +1,13 @@ { - "Answers (Feat. Rick David & Kaya Thomas - Dyke).info.json": "02a0382fb418e279ae378ae6c79ba736", - "Blaze (Feat. Kaya Thomas - Dyke).info.json": "48ee2257b62a7e2d152bf6633105704a", - "Closer (Feat. Lester Duval).info.json": "4f3f15c93f5fbe5f9bf5154eb3da3ecd", - "Delusions: Rumination (Interlude) (Feat. Racheal Ofori).info.json": "15e3184ac935672ef51ca0ffea44a25d", - "Dreaming (Interlude) (Feat. Racheal Ofori).info.json": "bf97ae0ddddd3dc6546a50ff42e9861e", - "Dreams (Feat. Carmody).info.json": "ab159ed943d1b5d41fe1efd98c94d973", - "Hopeful (Feat. Jordan Rakei).info.json": "05c32307125de1a28586be687c675cc1", - "Intro (Feat. Racheal Ofori & Barney Artist).info.json": "c5dcd31ecc441011f9de08a999f5b0da", - "No Peace (Feat. Tom Misch).info.json": "0f9f982f6e41c73f9925ef18f7c591c6", + "Answers (Feat. Rick David & Kaya Thomas - Dyke).info.json": "3cb3f1eec1813da1a09e2a2be0435fe3", + "Blaze (Feat. Kaya Thomas - Dyke).info.json": "a8600671c5c19683d405579185b51dbd", + "Closer (Feat. Lester Duval).info.json": "d46241bc3b6322838aa3634f5d4b74f4", + "Delusions: Rumination (Interlude) (Feat. Racheal Ofori).info.json": "fdeb58df8b9d55f7ddbb52fa3ac274d5", + "Dreaming (Interlude) (Feat. Racheal Ofori).info.json": "e3d5795ea6c596d6d97244daadf55fe9", + "Dreams (Feat. Carmody).info.json": "bcc5e14e8a25a62dfe6ab014a1eb98be", + "Hopeful (Feat. Jordan Rakei).info.json": "5643583ca640949f95d5e9ca135048aa", + "Intro (Feat. Racheal Ofori & Barney Artist).info.json": "49ef8e8555483a57773ce4573c9adbe9", + "No Peace (Feat. Tom Misch).info.json": "2ed45e531fdc46712dc6db1a8cc05f94", "Nocturne/01 - Intro (Feat. Racheal Ofori & Barney Artist).mp3": "15157be58e0f72485de1e7e10961321f", "Nocturne/02 - Answers (Feat. Rick David & Kaya Thomas - Dyke).mp3": "28ff5e2dda45771f1c6d5265dd03095e", "Nocturne/03 - Blaze (Feat. Kaya Thomas - Dyke).mp3": "705d7fc1799c1a14aa0656bd6e2bf260", @@ -20,6 +20,6 @@ "Nocturne/10 - Hopeful (Feat. Jordan Rakei).mp3": "ef7e06690ac849e1dd35771936d6ddb6", "Nocturne/11 - Sunrise (Pillows) (Feat. Emmavie).mp3": "56293fb70edc1ef7decc2d417d87ff1d", "Nocturne/folder.jpg": "bd3685acc53072e591bae2505ecb0648", - "Sunrise (Pillows) (Feat. Emmavie).info.json": "d90c8d11cd2cf7ec20c2b992c74bb93d", - "What If (Interlude).info.json": "c7f78947b22f8ebd838bd4df076944b2" + "Sunrise (Pillows) (Feat. Emmavie).info.json": "c2671abc8c942b8a6eac6f46f80be93f", + "What If (Interlude).info.json": "2df295486a3265b73979984f815f7983" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/test_audio_extract_playlist.json b/tests/e2e/resources/expected_downloads_summaries/plugins/test_audio_extract_playlist.json index c2c31f50..027a52f9 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/test_audio_extract_playlist.json +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/test_audio_extract_playlist.json @@ -1,8 +1,8 @@ { - "Jesse's Minecraft Server [Trailer - Feb.1].info.json": "15940eb703b80f718f8b23b98259ddff", + "Jesse's Minecraft Server [Trailer - Feb.1].info.json": "c80b80fa2ba893d54b1468cdabd223d8", "Jesse's Minecraft Server [Trailer - Feb.1].ogg": "16f66f1d81541a1f18b62bc08ad01d16", - "Jesse's Minecraft Server [Trailer - Feb.27].info.json": "84a6b6484a68179dac72ec2247a3eb22", + "Jesse's Minecraft Server [Trailer - Feb.27].info.json": "55cd6350a21653ff7b988e665b3ea923", "Jesse's Minecraft Server [Trailer - Feb.27].ogg": "6f322d842a1e43b4c9981b42423d9b4c", - "Jesse's Minecraft Server [Trailer - Mar.21].info.json": "7913fbea2ad4d5ea748342559a1a4d82", + "Jesse's Minecraft Server [Trailer - Mar.21].info.json": "5dd992c1dc201e83870af317e12cdd43", "Jesse's Minecraft Server [Trailer - Mar.21].ogg": "fe1dc3361a102661c27020d5b95a2a81" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/test_audio_extract_single.json b/tests/e2e/resources/expected_downloads_summaries/plugins/test_audio_extract_single.json index 612c988c..3909511c 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/test_audio_extract_single.json +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/test_audio_extract_single.json @@ -1,4 +1,4 @@ { - "YouTube Rewind 2019: For the Record | #YouTubeRewind.info.json": "1ed6876a5e9d78654667a33ff71b2ea3", + "YouTube Rewind 2019: For the Record | #YouTubeRewind.info.json": "6ef6fd3f6b1b0f4f7736d85e618777ac", "YouTube Rewind 2019: For the Record | #YouTubeRewind.mp3": "3a156b122bd79c956cce5079d3530cc3" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/test_chapters_from_ts_with_subs.json b/tests/e2e/resources/expected_downloads_summaries/plugins/test_chapters_from_ts_with_subs.json index 8e6dbb64..a4b26762 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/test_chapters_from_ts_with_subs.json +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/test_chapters_from_ts_with_subs.json @@ -1,6 +1,6 @@ { "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case-thumb.jpg": "b5353a824a4800cc26f884e3025ed969", - "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case.info.json": "f6ccef77e006c1c6c9ef5c94df5e38f2", - "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case.mp4": "2d40822bf4c0527f9080f00357b26ce0", + "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case.info.json": "d5e2788100b6f0578fb0d7111e422785", + "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case.mp4": "7e53f29dcc257882d947dd4728407745", "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case.nfo": "b9bd35e4f260c728774d8dd31f83637c" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/test_chapters_sb_and_embedded_subs.json b/tests/e2e/resources/expected_downloads_summaries/plugins/test_chapters_sb_and_embedded_subs.json index 4f175335..0d4ca87f 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/test_chapters_sb_and_embedded_subs.json +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/test_chapters_sb_and_embedded_subs.json @@ -1,6 +1,6 @@ { "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case-thumb.jpg": "b5353a824a4800cc26f884e3025ed969", - "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case.info.json": "e49ee50fbe88e7d1415f2df84e9c85cb", - "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case.mp4": "6f0bac1c364ff3bb13d3e8a955aaa002", + "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case.info.json": "a242fdeba2d172c8bc359298c7329f27", + "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case.mp4": "a1f8b2973eb7c703e08baf85d9a26ac9", "JMC - This GPU SLIDES into this Case! - Silverstone SUGO 16 ITX Case.nfo": "b9bd35e4f260c728774d8dd31f83637c" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/test_subtitles_embedded.json b/tests/e2e/resources/expected_downloads_summaries/plugins/test_subtitles_embedded.json index d050e85f..2d0ae8c5 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/test_subtitles_embedded.json +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/test_subtitles_embedded.json @@ -1,6 +1,6 @@ { "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind-thumb.jpg": "50ee47c80f679029f5d3503bb91b045a", - "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind.info.json": "d34427224f4dbc62a0c6b48dbd10ec01", + "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind.info.json": "c476aae219a3d3fa7a78b4afb145e8b5", "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind.mp4": "8562853314b75c1e47abd4f5ba97315c", "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind.nfo": "c64964fab07574080e5da3242e3bfd48" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/plugins/test_subtitles_embedded_and_file.json b/tests/e2e/resources/expected_downloads_summaries/plugins/test_subtitles_embedded_and_file.json index 6f916966..783dd4fa 100644 --- a/tests/e2e/resources/expected_downloads_summaries/plugins/test_subtitles_embedded_and_file.json +++ b/tests/e2e/resources/expected_downloads_summaries/plugins/test_subtitles_embedded_and_file.json @@ -2,7 +2,7 @@ "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind-thumb.jpg": "50ee47c80f679029f5d3503bb91b045a", "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind.de.srt": "b343c3bb9257b7ee7ba38f570a115b37", "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind.en.srt": "fe8c6ee92cae6e059fd80fd61691adbe", - "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind.info.json": "9cdc849168fbc91724fe6fe6e4b72fed", + "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind.info.json": "083591b51f393cd2d426fa9828d2e6fa", "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind.mp4": "8562853314b75c1e47abd4f5ba97315c", "JMC - YouTube Rewind 2019: For the Record | #YouTubeRewind.nfo": "c64964fab07574080e5da3242e3bfd48" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/soundcloud/test_soundcloud_discography.json b/tests/e2e/resources/expected_downloads_summaries/soundcloud/test_soundcloud_discography.json index 24a7ae00..74e5de3b 100644 --- a/tests/e2e/resources/expected_downloads_summaries/soundcloud/test_soundcloud_discography.json +++ b/tests/e2e/resources/expected_downloads_summaries/soundcloud/test_soundcloud_discography.json @@ -1,32 +1,32 @@ { ".ytdl-sub-jb-download-archive.json": "1114f07090dfb35eea6848efeaf9755a", - "j_b/[2021] Baby Santana's Dorian Groove/01 - Baby Santana's Dorian Groove.info.json": "5eb47f40cb9de8fd324d66c31995f934", + "j_b/[2021] Baby Santana's Dorian Groove/01 - Baby Santana's Dorian Groove.info.json": "dd5596c895aa015734548b0012644ddd", "j_b/[2021] Baby Santana's Dorian Groove/01 - Baby Santana's Dorian Groove.mp3": "bffbd558e12c6a9e029dc136a88342c4", "j_b/[2021] Baby Santana's Dorian Groove/folder.jpg": "967892be44b8c47e1be73f055a7c6f08", - "j_b/[2021] Purple Clouds/01 - Purple Clouds.info.json": "3301ac86ee70a05abe0588277d1e4a6c", + "j_b/[2021] Purple Clouds/01 - Purple Clouds.info.json": "86aaba3d72d84a54c3f1f9e0f1bb54e7", "j_b/[2021] Purple Clouds/01 - Purple Clouds.mp3": "038db58aebe2ba875b733932b42a94d6", "j_b/[2021] Purple Clouds/folder.jpg": "967892be44b8c47e1be73f055a7c6f08", - "j_b/[2022] Acoustic Treats/01 - 20160426 184214.info.json": "6d5cc99d594bd5b7183a37b005225400", + "j_b/[2022] Acoustic Treats/01 - 20160426 184214.info.json": "7cc6f9db8e623861534c78de7aa1147c", "j_b/[2022] Acoustic Treats/01 - 20160426 184214.mp3": "e145f0a2f6012768280c38655ca58065", - "j_b/[2022] Acoustic Treats/02 - 20160502 123150.info.json": "6d73a0fc77aa8b718857236d9f7c6cbd", + "j_b/[2022] Acoustic Treats/02 - 20160502 123150.info.json": "501cf469c5be8317e2be04bc2243d404", "j_b/[2022] Acoustic Treats/02 - 20160502 123150.mp3": "60c8b8817a197a13e4bb90903af612c5", - "j_b/[2022] Acoustic Treats/03 - 20160504 143832.info.json": "4e6fc80669ee79572182d3066575a6a7", + "j_b/[2022] Acoustic Treats/03 - 20160504 143832.info.json": "bf80d5682e4a060c1e32ee7d88899894", "j_b/[2022] Acoustic Treats/03 - 20160504 143832.mp3": "8265b7e4f79878af877bc6ecd9757efe", - "j_b/[2022] Acoustic Treats/04 - 20160601 221234.info.json": "80aef642112e661d6eb30e0038cc7aed", + "j_b/[2022] Acoustic Treats/04 - 20160601 221234.info.json": "8ae1746c6dc67cebf1e3df36584238f5", "j_b/[2022] Acoustic Treats/04 - 20160601 221234.mp3": "accf46b76891d2954b893d0f91d82816", - "j_b/[2022] Acoustic Treats/05 - 20160601 222440.info.json": "25e5abf44f3bdb57c045c82121f7d11c", + "j_b/[2022] Acoustic Treats/05 - 20160601 222440.info.json": "ca3e17cdde4709f265fcab0df8c96259", "j_b/[2022] Acoustic Treats/05 - 20160601 222440.mp3": "e1f584f523336160d5c1104a61de77f3", - "j_b/[2022] Acoustic Treats/06 - 20170604 190236.info.json": "4524f03ec40823085bc08294b108bfa9", + "j_b/[2022] Acoustic Treats/06 - 20170604 190236.info.json": "7109c43eca4316aa0b18151b7480d8da", "j_b/[2022] Acoustic Treats/06 - 20170604 190236.mp3": "f6885b25901177f0357649afe97328cc", - "j_b/[2022] Acoustic Treats/07 - 20170612 193646.info.json": "83e5d1403994a9ecd20a9dcb545a4cb6", + "j_b/[2022] Acoustic Treats/07 - 20170612 193646.info.json": "5419304bbd7c27ac5b12e1a56bd6a504", "j_b/[2022] Acoustic Treats/07 - 20170612 193646.mp3": "fa057f221cbe4cf2442cd2fdb960743e", - "j_b/[2022] Acoustic Treats/08 - 20170628 215206.info.json": "5bccfb88c2441af51294cefb988ef131", + "j_b/[2022] Acoustic Treats/08 - 20170628 215206.info.json": "139549303915d2bc35addd1ecdd5cd4a", "j_b/[2022] Acoustic Treats/08 - 20170628 215206.mp3": "7794ae812c64580e2ac8fc457d5cc85f", - "j_b/[2022] Acoustic Treats/09 - Finding Home.info.json": "84347cdbfb61ed1e2c21d3cab7325966", + "j_b/[2022] Acoustic Treats/09 - Finding Home.info.json": "85a11cc5860bdfbd6577601043f6aa9b", "j_b/[2022] Acoustic Treats/09 - Finding Home.mp3": "adbf02eddb2090c008eb497d13ff84b9", - "j_b/[2022] Acoustic Treats/10 - Shallow Water WIP.info.json": "1eacf5411e7e7041609c9d194013c78d", + "j_b/[2022] Acoustic Treats/10 - Shallow Water WIP.info.json": "7317859f8b458a22a51e2aef2a4418f5", "j_b/[2022] Acoustic Treats/10 - Shallow Water WIP.mp3": "65bb10c84366c71498161734f953e93d", - "j_b/[2022] Acoustic Treats/11 - Untold History.info.json": "0ab0eb6aa6e8b3f38076aeed0fae2a13", + "j_b/[2022] Acoustic Treats/11 - Untold History.info.json": "d240bb16200eb688a46bc746af74dbc9", "j_b/[2022] Acoustic Treats/11 - Untold History.mp3": "6904b2918e5dc38d9a9f72d967eb74bf", "j_b/[2022] Acoustic Treats/folder.jpg": "967892be44b8c47e1be73f055a7c6f08" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/youtube/test_channel_full.json b/tests/e2e/resources/expected_downloads_summaries/youtube/test_channel_full.json index affca557..b4008a52 100644 --- a/tests/e2e/resources/expected_downloads_summaries/youtube/test_channel_full.json +++ b/tests/e2e/resources/expected_downloads_summaries/youtube/test_channel_full.json @@ -1,52 +1,52 @@ { ".ytdl-sub-pz-download-archive.json": "70615451318cdb5e018e007c77893a39", "Season 2010/s2010.e0813 - Oblivion Mod "Falcor" p.1-thumb.jpg": "fb95b510681676e81c321171fc23143e", - "Season 2010/s2010.e0813 - Oblivion Mod "Falcor" p.1.info.json": "321813dd5598303d5fc91c7aa302f1b5", + "Season 2010/s2010.e0813 - Oblivion Mod "Falcor" p.1.info.json": "5a73e1a5de066b11b8c228f8881d790c", "Season 2010/s2010.e0813 - Oblivion Mod "Falcor" p.1.mp4": "931a705864c57d21d6fedebed4af6bbc", "Season 2010/s2010.e0813 - Oblivion Mod "Falcor" p.1.nfo": "2d0738094d8e649eaebbab16fd647da1", "Season 2010/s2010.e1202 - Oblivion Mod "Falcor" p.2-thumb.jpg": "8b32ee9c037fa669e444a0ac181525a1", - "Season 2010/s2010.e1202 - Oblivion Mod "Falcor" p.2.info.json": "461c98e86a4c3848fd89671a78900131", - "Season 2010/s2010.e1202 - Oblivion Mod "Falcor" p.2.mp4": "d3469b4dca7139cb3dbc38712b6796bf", + "Season 2010/s2010.e1202 - Oblivion Mod "Falcor" p.2.info.json": "a43092fc871ab2f6697adc8f60a14dd2", + "Season 2010/s2010.e1202 - Oblivion Mod "Falcor" p.2.mp4": "0b11a785addfac82a6c1dbc897c0a8f9", "Season 2010/s2010.e1202 - Oblivion Mod "Falcor" p.2.nfo": "5c258f9e54854ef292ce3c58331da110", "Season 2011/s2011.e0201 - Jesse's Minecraft Server [Trailer - Feb.1]-thumb.jpg": "b232d253df621aa770b780c1301d364d", - "Season 2011/s2011.e0201 - Jesse's Minecraft Server [Trailer - Feb.1].info.json": "ccb88e48fa500e74f7a51fcac5d4934d", + "Season 2011/s2011.e0201 - Jesse's Minecraft Server [Trailer - Feb.1].info.json": "d3d7c8b13a89b461c748f6239efb450f", "Season 2011/s2011.e0201 - Jesse's Minecraft Server [Trailer - Feb.1].mp4": "e66287b9832277b6a4d1554e29d9fdcc", "Season 2011/s2011.e0201 - Jesse's Minecraft Server [Trailer - Feb.1].nfo": "abb3ac33366cc3b86d0467c8fb80a323", "Season 2011/s2011.e0227 - Jesse's Minecraft Server [Trailer - Feb.27]-thumb.jpg": "d17c379ea8b362f5b97c6b213b0342cb", - "Season 2011/s2011.e0227 - Jesse's Minecraft Server [Trailer - Feb.27].info.json": "157d3cb2fdb0f47d924fbab5a07bbe9e", + "Season 2011/s2011.e0227 - Jesse's Minecraft Server [Trailer - Feb.27].info.json": "25824e1e019ba1ac3ad37167bc476d05", "Season 2011/s2011.e0227 - Jesse's Minecraft Server [Trailer - Feb.27].mp4": "04ab5cb3cc12325d0c96a7cd04a8b91d", "Season 2011/s2011.e0227 - Jesse's Minecraft Server [Trailer - Feb.27].nfo": "46190954652c9d9812e061fc0c9e1d92", "Season 2011/s2011.e0321 - Jesse's Minecraft Server [Trailer - Mar.21]-thumb.jpg": "e7830aa8a64b0cde65ba3f7e5fc56530", - "Season 2011/s2011.e0321 - Jesse's Minecraft Server [Trailer - Mar.21].info.json": "9660710f3aab66cbfaaa485eac55db13", + "Season 2011/s2011.e0321 - Jesse's Minecraft Server [Trailer - Mar.21].info.json": "5650cf47773fa4f8236e6fe62957759b", "Season 2011/s2011.e0321 - Jesse's Minecraft Server [Trailer - Mar.21].mp4": "025de6099a5c98e6397153c7a62d517d", "Season 2011/s2011.e0321 - Jesse's Minecraft Server [Trailer - Mar.21].nfo": "30993fa8e00a0e370b4db244f3da8f7d", "Season 2011/s2011.e0529 - Project Zombie |Official Trailer| (IP: mc.projectzombie.beastnode.net)-thumb.jpg": "c956192a379b3661595c9920972d4819", - "Season 2011/s2011.e0529 - Project Zombie |Official Trailer| (IP: mc.projectzombie.beastnode.net).info.json": "d43ca09cff753e13c4d4badaad8b8cf3", + "Season 2011/s2011.e0529 - Project Zombie |Official Trailer| (IP: mc.projectzombie.beastnode.net).info.json": "23878cc3a8db1d836ec72261e4d7a95f", "Season 2011/s2011.e0529 - Project Zombie |Official Trailer| (IP: mc.projectzombie.beastnode.net).mp4": "3d9c19835b03355d6fd5d00cd59dbe5b", "Season 2011/s2011.e0529 - Project Zombie |Official Trailer| (IP: mc.projectzombie.beastnode.net).nfo": "11a0e8754c414875bcd454358683da5f", "Season 2011/s2011.e0630 - Project Zombie |Fin|-thumb.jpg": "00ed383591779ffe98291de60f198fe9", - "Season 2011/s2011.e0630 - Project Zombie |Fin|.info.json": "351c14be8af8b7811515533f778252af", + "Season 2011/s2011.e0630 - Project Zombie |Fin|.info.json": "e6f93de0450c83fdd90ba3f6cade5d07", "Season 2011/s2011.e0630 - Project Zombie |Fin|.mp4": "4971cb2d4fa29460361031f3fa8e1ea9", "Season 2011/s2011.e0630 - Project Zombie |Fin|.nfo": "a464b9c8c48a9a5d4776436d8108f8f5", "Season 2011/s2011.e1121 - Skyrim 'Ultra HD w⧸Mods' [PC]-thumb.jpg": "1718599d5189c65f7d8cf6acfa5ea851", - "Season 2011/s2011.e1121 - Skyrim 'Ultra HD w⧸Mods' [PC].info.json": "a46366e7be54d3cb755a8a2994a55d3e", + "Season 2011/s2011.e1121 - Skyrim 'Ultra HD w⧸Mods' [PC].info.json": "c1a04de7bc628b88b32a774f656e890a", "Season 2011/s2011.e1121 - Skyrim 'Ultra HD w⧸Mods' [PC].mp4": "55e9b0add08c48c9c66105da0def2426", "Season 2011/s2011.e1121 - Skyrim 'Ultra HD w⧸Mods' [PC].nfo": "3562934ab9a5e802d955eda24ad355de", "Season 2012/s2012.e0123 - Project Zombie |Map Trailer|-thumb.jpg": "54ebe9df801b278fdd17b21afa8373a6", - "Season 2012/s2012.e0123 - Project Zombie |Map Trailer|.info.json": "64857d41adcad52bf97611e4fcae292d", + "Season 2012/s2012.e0123 - Project Zombie |Map Trailer|.info.json": "7daa381b23f0cbb14d84661b706bd424", "Season 2012/s2012.e0123 - Project Zombie |Map Trailer|.mp4": "65e4ce53ed5ec4139995469f99477a50", "Season 2012/s2012.e0123 - Project Zombie |Map Trailer|.nfo": "5e810d839be90dab579400a6177f90b3", "Season 2013/s2013.e0719 - Project Zombie Rewind |Trailer|-thumb.jpg": "e29d49433175de8a761af35c5307791f", - "Season 2013/s2013.e0719 - Project Zombie Rewind |Trailer|.info.json": "8d18bb9557625b910dd044f158969d05", + "Season 2013/s2013.e0719 - Project Zombie Rewind |Trailer|.info.json": "23bb9520f84cfb759f23b5dd4e820b21", "Season 2013/s2013.e0719 - Project Zombie Rewind |Trailer|.mp4": "18620a8257a686beda65e54add4d4cd1", "Season 2013/s2013.e0719 - Project Zombie Rewind |Trailer|.nfo": "83772bec917bb5d71e1ca0c061c1ec78", "Season 2018/s2018.e1029 - Jesse's Minecraft Server | Teaser Trailer-thumb.jpg": "705ca4e0d99b37e9ecdf6bfe4b90c59b", - "Season 2018/s2018.e1029 - Jesse's Minecraft Server | Teaser Trailer.info.json": "d9088a723ce5445c88bf72cb5a39b933", + "Season 2018/s2018.e1029 - Jesse's Minecraft Server | Teaser Trailer.info.json": "2a0033e6f81b3a186241c3274b17c520", "Season 2018/s2018.e1029 - Jesse's Minecraft Server | Teaser Trailer.mp4": "82f6ee7253e1dbb83ae7215af08ffacc", "Season 2018/s2018.e1029 - Jesse's Minecraft Server | Teaser Trailer.nfo": "368d68db0cbe9eb4f43ece0517445e82", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id-thumb.jpg": "28d852ede73b879b9ebf9a061cfc7d46", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.en.srt": "3d2c4e7f65d2ca5e96da38ce7eecfc4e", - "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.info.json": "7907cf957d8de4d4036af60d686061f5", + "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.info.json": "8708fa01466ce60aa3a405c8aad08ac1", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.mp4": "e733b4cc385b953b08c8eb0f47e03c1e", "Season 2018/s2018.e1102 - Jesse's Minecraft Server | IP mc.jesse.id.nfo": "d9114d43d87907b2afc06eb089a8ac0a", "fanart.jpg": "129c6639b47299bc48062f0365e670ee", diff --git a/tests/e2e/resources/expected_downloads_summaries/youtube/test_merge_playlist.json b/tests/e2e/resources/expected_downloads_summaries/youtube/test_merge_playlist.json index 830bf42d..f09604dc 100644 --- a/tests/e2e/resources/expected_downloads_summaries/youtube/test_merge_playlist.json +++ b/tests/e2e/resources/expected_downloads_summaries/youtube/test_merge_playlist.json @@ -1,6 +1,6 @@ { "JMC - Jesse's Minecraft Server-thumb.jpg": "a3f1910f9c51f6442f845a528e190829", - "JMC - Jesse's Minecraft Server.info.json": "5f54afde1f0965c2ede30291d978c7bf", + "JMC - Jesse's Minecraft Server.info.json": "5d521fdb7b735e69080ac31fb67eaa99", "JMC - Jesse's Minecraft Server.mkv": "21f246b1c922e11add509ea26c43c53d", "JMC - Jesse's Minecraft Server.nfo": "d16396c60b63c06a4f2c9239553bdf61" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/youtube/test_playlist.json b/tests/e2e/resources/expected_downloads_summaries/youtube/test_playlist.json index fa44bf04..c5b4acda 100644 --- a/tests/e2e/resources/expected_downloads_summaries/youtube/test_playlist.json +++ b/tests/e2e/resources/expected_downloads_summaries/youtube/test_playlist.json @@ -1,16 +1,16 @@ { ".ytdl-sub-music_video_playlist_test-download-archive.json": "25b8e44961343116436584e341c7fe9b", "JMC - Jesse's Minecraft Server [Trailer - Feb.1]-thumb.jpg": "b232d253df621aa770b780c1301d364d", - "JMC - Jesse's Minecraft Server [Trailer - Feb.1].info.json": "a1763e5afb49be0935d932334336f62f", + "JMC - Jesse's Minecraft Server [Trailer - Feb.1].info.json": "2c8bf622feb28760376c76afe4a9f7b5", "JMC - Jesse's Minecraft Server [Trailer - Feb.1].mp4": "e66287b9832277b6a4d1554e29d9fdcc", "JMC - Jesse's Minecraft Server [Trailer - Feb.1].nfo": "f8fd72bb97ed03938487494ad9094ca0", "JMC - Jesse's Minecraft Server [Trailer - Feb.27]-thumb.jpg": "d17c379ea8b362f5b97c6b213b0342cb", - "JMC - Jesse's Minecraft Server [Trailer - Feb.27].info.json": "2d3b4299450776edd822514d071671a4", + "JMC - Jesse's Minecraft Server [Trailer - Feb.27].info.json": "009323eb966a7ad9b47abcbe499fc6e2", "JMC - Jesse's Minecraft Server [Trailer - Feb.27].mp4": "04ab5cb3cc12325d0c96a7cd04a8b91d", "JMC - Jesse's Minecraft Server [Trailer - Feb.27].nfo": "6de4d997cfb300356072b4ebb09cbe38", "JMC - Jesse's Minecraft Server [Trailer - Mar.21]-thumb.jpg": "e7830aa8a64b0cde65ba3f7e5fc56530", - "JMC - Jesse's Minecraft Server [Trailer - Mar.21].info.json": "17a942919cb951d7cfd0dcc502bf4499", + "JMC - Jesse's Minecraft Server [Trailer - Mar.21].info.json": "4bcc266ee276d45da869c37cd8caa084", "JMC - Jesse's Minecraft Server [Trailer - Mar.21].mp4": "025de6099a5c98e6397153c7a62d517d", "JMC - Jesse's Minecraft Server [Trailer - Mar.21].nfo": "f000a6ed8caacb62a134a6ca81e3f308", - "tvshow.nfo": "792b0594defdfd6642086b76fcc6a91b" + "tvshow.nfo": "e4123860532466ed5e0ebf2c9e44eb18" } \ No newline at end of file diff --git a/tests/e2e/resources/expected_downloads_summaries/youtube/test_video.json b/tests/e2e/resources/expected_downloads_summaries/youtube/test_video.json index 33c026fd..e675c06a 100644 --- a/tests/e2e/resources/expected_downloads_summaries/youtube/test_video.json +++ b/tests/e2e/resources/expected_downloads_summaries/youtube/test_video.json @@ -1,6 +1,6 @@ { "JMC - Oblivion Mod "Falcor" p.1-thumb.jpg": "fb95b510681676e81c321171fc23143e", - "JMC - Oblivion Mod "Falcor" p.1.info.json": "9ded1b3bd37e1d8d04a417dfb8291810", + "JMC - Oblivion Mod "Falcor" p.1.info.json": "a1f343b06752c39dfdf07a26c836f5e9", "JMC - Oblivion Mod "Falcor" p.1.mp4": "28c14cdac05c803efe71abb9454ab306", "JMC - Oblivion Mod "Falcor" p.1.nfo": "24cc4e17d2bebc89b2759ce5471d403e" } \ No newline at end of file diff --git a/tests/e2e/resources/transaction_log_summaries/plugins/nfo_tags/test_nfo.txt b/tests/e2e/resources/transaction_log_summaries/plugins/nfo_tags/test_nfo.txt index 4efa621d..997969a1 100644 --- a/tests/e2e/resources/transaction_log_summaries/plugins/nfo_tags/test_nfo.txt +++ b/tests/e2e/resources/transaction_log_summaries/plugins/nfo_tags/test_nfo.txt @@ -1,8 +1,8 @@ Files created in '{output_directory}' ---------------------------------------- Rick Beato - Can you hear the difference? 🎸🔥 #shorts-thumb.jpg -Rick Beato - Can you hear the difference? 🎸🔥 #shorts.3gp Rick Beato - Can you hear the difference? 🎸🔥 #shorts.info.json +Rick Beato - Can you hear the difference? 🎸🔥 #shorts.mp4 Rick Beato - Can you hear the difference? 🎸🔥 #shorts.nfo NFO tags: musicvideo: diff --git a/tests/e2e/resources/transaction_log_summaries/plugins/nfo_tags/test_nfo_kodi_safe.txt b/tests/e2e/resources/transaction_log_summaries/plugins/nfo_tags/test_nfo_kodi_safe.txt index 6cc1f4a9..e1a85162 100644 --- a/tests/e2e/resources/transaction_log_summaries/plugins/nfo_tags/test_nfo_kodi_safe.txt +++ b/tests/e2e/resources/transaction_log_summaries/plugins/nfo_tags/test_nfo_kodi_safe.txt @@ -1,8 +1,8 @@ Files created in '{output_directory}' ---------------------------------------- Rick Beato - Can you hear the difference? 🎸🔥 #shorts-thumb.jpg -Rick Beato - Can you hear the difference? 🎸🔥 #shorts.3gp Rick Beato - Can you hear the difference? 🎸🔥 #shorts.info.json +Rick Beato - Can you hear the difference? 🎸🔥 #shorts.mp4 Rick Beato - Can you hear the difference? 🎸🔥 #shorts.nfo NFO tags: musicvideo: diff --git a/tests/e2e/resources/transaction_log_summaries/plugins/test_regex.txt b/tests/e2e/resources/transaction_log_summaries/plugins/test_regex.txt index 2d13155a..99522620 100644 --- a/tests/e2e/resources/transaction_log_summaries/plugins/test_regex.txt +++ b/tests/e2e/resources/transaction_log_summaries/plugins/test_regex.txt @@ -9,8 +9,6 @@ Project Zombie - Jesse's Minecraft Server [Trailer - Feb.1].nfo musicvideo: album: Music Videos artist: Project Zombie - artist_cap_always_default: Always default - artist_cap_always_default_sanitized: Always default desc_cap: www.jesseminecraft.webs override_with_capture_variable: contains Trailer override_with_capture_variable_sanitized: contains Trailer @@ -28,8 +26,6 @@ Project Zombie - Jesse's Minecraft Server [Trailer - Feb.27].nfo musicvideo: album: Music Videos artist: Project Zombie - artist_cap_always_default: Always default - artist_cap_always_default_sanitized: Always default desc_cap: jesseminecraft.webs override_with_capture_variable: contains Trailer override_with_capture_variable_sanitized: contains Trailer diff --git a/tests/e2e/resources/transaction_log_summaries/youtube/test_playlist.txt b/tests/e2e/resources/transaction_log_summaries/youtube/test_playlist.txt index 14e1f17f..65b90853 100644 --- a/tests/e2e/resources/transaction_log_summaries/youtube/test_playlist.txt +++ b/tests/e2e/resources/transaction_log_summaries/youtube/test_playlist.txt @@ -34,6 +34,6 @@ JMC - Jesse's Minecraft Server [Trailer - Mar.21].nfo tvshow.nfo NFO tags: test: - source_description: Trailers, Updates, etc - source_title: Jesse's Minecraft Server - source_uploader: Project Zombie \ No newline at end of file + playlist_description: Trailers, Updates, etc + playlist_title: Jesse's Minecraft Server + playlist_uploader: Project Zombie \ No newline at end of file diff --git a/tests/e2e/youtube/test_channel.py b/tests/e2e/youtube/test_channel.py index e355c0d6..c9113782 100644 --- a/tests/e2e/youtube/test_channel.py +++ b/tests/e2e/youtube/test_channel.py @@ -1,12 +1,8 @@ -from unittest.mock import patch - import pytest -from conftest import assert_debug_log from e2e.expected_download import assert_expected_downloads from e2e.expected_transaction_log import assert_transaction_log_matches from ytdl_sub.subscriptions.subscription import Subscription -from ytdl_sub.utils.retry import logger as retry_logger @pytest.fixture @@ -28,7 +24,7 @@ def channel_preset_dict(output_directory): }, "output_directory_nfo_tags": { "tags": { - "source_uploader": "{source_uploader}", + "source_uploader": "{playlist_uploader}", } }, "overrides": {"tv_show_name": "Project / Zombie"}, diff --git a/tests/e2e/youtube/test_playlist.py b/tests/e2e/youtube/test_playlist.py index 2f98df38..92db8a76 100644 --- a/tests/e2e/youtube/test_playlist.py +++ b/tests/e2e/youtube/test_playlist.py @@ -23,9 +23,9 @@ def playlist_preset_dict(output_directory): "nfo_name": "tvshow.nfo", "nfo_root": "test", "tags": { - "source_title": "{source_title}", - "source_uploader": "{source_uploader}", - "source_description": "{source_description}", + "playlist_title": "{playlist_title}", + "playlist_uploader": "{playlist_uploader}", + "playlist_description": "{playlist_description}", }, }, "subtitles": { diff --git a/tests/unit/entries/test_youtube_entries.py b/tests/unit/entries/test_youtube_entries.py index 67f7ea79..4935ce13 100644 --- a/tests/unit/entries/test_youtube_entries.py +++ b/tests/unit/entries/test_youtube_entries.py @@ -20,19 +20,7 @@ def channel(): @pytest.fixture -def track_title(): - return "not the title!" - - -@pytest.fixture -def artist(): - return "not the channel" - - -@pytest.fixture -def mock_youtube_video_to_dict( - mock_entry_to_dict, playlist_index, playlist_size, channel, track_title, artist -): +def mock_youtube_video_to_dict(mock_entry_to_dict, playlist_index, playlist_size, channel): return dict( mock_entry_to_dict, **{ @@ -40,26 +28,18 @@ def mock_youtube_video_to_dict( "playlist_size": playlist_size, "channel": channel, "channel_sanitized": channel, - "track_title": track_title, - "track_title_sanitized": track_title, - "artist": artist, - "artist_sanitized": artist, } ) @pytest.fixture -def mock_youtube_video_kwargs( - mock_entry_kwargs, playlist_index, playlist_size, channel, track_title, artist -): +def mock_youtube_video_kwargs(mock_entry_kwargs, playlist_index, playlist_size, channel): return dict( mock_entry_kwargs, **{ "playlist_index": playlist_index, "playlist_count": playlist_size, "channel": channel, - "track": track_title, - "artist": artist, } )