From 36e23839f36b6408f5ee49e98319cd3f1a435de9 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Sat, 31 May 2025 10:26:42 -0700 Subject: [PATCH] [FEATURE] Ability to change season and episode ordering via variables, support for release_date (#1220) Adds the ability to change season and episode ordering using override variables, like so: ``` "~Kids Toys Play": url: "https://www.youtube.com/@KidsToysPlayChannel" tv_show_by_date_season_ordering: "upload-year-month" tv_show_by_date_episode_ordering: "upload-day" ``` In addition, adds support for release-date based episode ordering (and culling if using Only Recent). More info here: https://ytdl-sub.readthedocs.io/en/latest/prebuilt_presets/tv_shows.html Closes https://github.com/jmbannon/ytdl-sub/issues/1182 --- .../scripting/scripting_functions.rst | 2 +- docs/source/faq/index.rst | 4 +- docs/source/prebuilt_presets/tv_shows.rst | 142 ++++++--- src/ytdl_sub/downloaders/url/downloader.py | 4 +- .../prebuilt_presets/tv_show/__init__.py | 43 --- .../prebuilt_presets/tv_show/episode.yaml | 8 +- .../tv_show/tv_show_by_date.yaml | 107 ++++++- .../tv_show/tv_show_collection.yaml | 54 +++- .../script/functions/string_functions.py | 4 +- .../enhanced_download_archive.py | 8 +- tests/integration/conftest.py | 15 + .../prebuilt_presets/test_tv_show_by_date.py | 153 ++++++++-- .../test_tv_show_collection.py | 82 ++++-- .../download-index/is_yt_1_migrated.json | 22 ++ .../upload-year/upload-month-day/is_yt_1.json | 22 ++ .../release-day/is_yt_1.json | 22 ++ .../release-year/download-index/is_yt_1.json | 22 ++ .../release-month-day-reversed/is_yt_1.json | 22 ++ .../release-month-day/is_yt_1.json | 22 ++ .../upload-year-month/upload-day/is_yt_1.json | 22 ++ .../upload-year/download-index/is_yt_1.json | 22 ++ .../download-index/is_yt_1_migrated.json | 22 ++ .../upload-month-day-reversed/is_yt_1.json | 22 ++ .../upload-year/upload-month-day/is_yt_1.json | 22 ++ .../download-index/is_yt_1_migrated.json | 17 ++ .../upload-year/upload-month-day/is_yt_1.json | 17 ++ .../s_1/is_yt_1_migrated.json | 23 ++ .../s_2/is_yt_1_migrated.json | 40 +++ .../upload-year-month-day/s_1/is_yt_1.json | 23 ++ .../upload-year-month-day/s_2/is_yt_1.json | 40 +++ .../Kodi/does-not-exist/s_1/is_yt_1.json | 1 + .../playlist-index-reversed/s_1/is_yt_1.json | 23 ++ .../s_1/is_yt_1_migrated.json | 23 ++ .../playlist-index-reversed/s_2/is_yt_1.json | 40 +++ .../s_2/is_yt_1_migrated.json | 40 +++ .../Kodi/playlist-index/s_1/is_yt_1.json | 23 ++ .../Kodi/playlist-index/s_2/is_yt_1.json | 40 +++ .../s_1/is_yt_1.json | 23 ++ .../s_2/is_yt_1.json | 40 +++ .../release-year-month-day/s_1/is_yt_1.json | 23 ++ .../release-year-month-day/s_2/is_yt_1.json | 40 +++ .../s_1/is_yt_1.json | 23 ++ .../s_2/is_yt_1.json | 40 +++ .../upload-year-month-day/s_1/is_yt_1.json | 23 ++ .../upload-year-month-day/s_2/is_yt_1.json | 40 +++ .../s_1/is_yt_1_migrated.json | 18 ++ .../s_2/is_yt_1_migrated.json | 31 ++ .../upload-year-month-day/s_1/is_yt_1.json | 18 ++ .../upload-year-month-day/s_2/is_yt_1.json | 31 ++ .../upload-year/upload-month-day}/is_yt_1.txt | 0 .../is_yt_1_reformatted_to_upload-year.txt} | 0 .../release-day/is_yt_1.txt | 130 ++++++++ .../is_yt_1_reformatted_to_upload-year.txt | 145 +++++++++ .../release-year/download-index/is_yt_1.txt | 130 ++++++++ .../is_yt_1_reformatted_to_upload-year.txt | 145 +++++++++ .../release-month-day-reversed/is_yt_1.txt | 130 ++++++++ .../is_yt_1_reformatted_to_upload-year.txt | 145 +++++++++ .../release-month-day/is_yt_1.txt | 130 ++++++++ .../is_yt_1_reformatted_to_upload-year.txt | 145 +++++++++ .../upload-year-month/upload-day}/is_yt_1.txt | 0 .../is_yt_1_reformatted_to_upload-year.txt} | 0 .../upload-year/download-index}/is_yt_1.txt | 0 .../is_yt_1_reformatted_to_upload-year.txt} | 0 .../upload-month-day-reversed}/is_yt_1.txt | 0 .../is_yt_1_reformatted_to_upload-year.txt} | 0 .../upload-year/upload-month-day}/is_yt_1.txt | 0 .../is_yt_1_reformatted_to_upload-year.txt} | 0 .../upload-year/upload-month-day}/is_yt_1.txt | 0 .../is_yt_1_reformatted_to_upload-year.txt} | 0 .../upload-year-month-day}/s_1/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../upload-year-month-day}/s_2/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../Kodi/does-not-exist/s_1/is_yt_1.txt | 1 + ...reformatted_to_playlist-index-reversed.txt | 4 + .../playlist-index-reversed}/s_1/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../playlist-index-reversed}/s_2/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../Kodi/playlist-index}/s_1/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../Kodi/playlist-index}/s_2/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../s_1/is_yt_1.txt | 134 +++++++++ ...reformatted_to_playlist-index-reversed.txt | 143 +++++++++ .../s_2/is_yt_1.txt | 257 ++++++++++++++++ ...reformatted_to_playlist-index-reversed.txt | 277 ++++++++++++++++++ .../release-year-month-day/s_1/is_yt_1.txt | 134 +++++++++ ...reformatted_to_playlist-index-reversed.txt | 143 +++++++++ .../release-year-month-day/s_2/is_yt_1.txt | 257 ++++++++++++++++ ...reformatted_to_playlist-index-reversed.txt | 277 ++++++++++++++++++ .../s_1/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../s_2/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../upload-year-month-day}/s_1/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../upload-year-month-day}/s_2/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../upload-year-month-day}/s_1/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 .../upload-year-month-day}/s_2/is_yt_1.txt | 0 ...eformatted_to_playlist-index-reversed.txt} | 0 103 files changed, 4120 insertions(+), 175 deletions(-) create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Jellyfin/upload-year/download-index/is_yt_1_migrated.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Jellyfin/upload-year/upload-month-day/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year-month/upload-day/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1_migrated.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/upload-month-day-reversed/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/upload-month-day/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Plex/upload-year/download-index/is_yt_1_migrated.json create mode 100644 tests/resources/expected_downloads_summaries/integration/by-date/Plex/upload-year/upload-month-day/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/playlist-index-reversed/s_1/is_yt_1_migrated.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/playlist-index-reversed/s_2/is_yt_1_migrated.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/upload-year-month-day/s_1/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/upload-year-month-day/s_2/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1_migrated.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1_migrated.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index/s_1/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index/s_2/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_1/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_2/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day/s_1/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day/s_2/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Plex/playlist-index-reversed/s_1/is_yt_1_migrated.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Plex/playlist-index-reversed/s_2/is_yt_1_migrated.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Plex/upload-year-month-day/s_1/is_yt_1.json create mode 100644 tests/resources/expected_downloads_summaries/integration/collection/Plex/upload-year-month-day/s_2/is_yt_1.json rename tests/resources/transaction_log_summaries/{unit/jellyfin_tv_show_by_date/season_by_year__episode_by_month_day => integration/by-date/Jellyfin/upload-year/upload-month-day}/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/jellyfin_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt => integration/by-date/Jellyfin/upload-year/upload-month-day/is_yt_1_reformatted_to_upload-year.txt} (100%) create mode 100644 tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1.txt create mode 100644 tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1_reformatted_to_upload-year.txt create mode 100644 tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1.txt create mode 100644 tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1_reformatted_to_upload-year.txt create mode 100644 tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1.txt create mode 100644 tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1_reformatted_to_upload-year.txt create mode 100644 tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1.txt create mode 100644 tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1_reformatted_to_upload-year.txt rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_by_date/season_by_year_month__episode_by_day => integration/by-date/Kodi/upload-year-month/upload-day}/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_by_date/season_by_year_month__episode_by_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt => integration/by-date/Kodi/upload-year-month/upload-day/is_yt_1_reformatted_to_upload-year.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_by_date/season_by_year__episode_by_download_index => integration/by-date/Kodi/upload-year/download-index}/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_by_date/season_by_year__episode_by_download_index/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt => integration/by-date/Kodi/upload-year/download-index/is_yt_1_reformatted_to_upload-year.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day_reversed => integration/by-date/Kodi/upload-year/upload-month-day-reversed}/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day_reversed/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt => integration/by-date/Kodi/upload-year/upload-month-day-reversed/is_yt_1_reformatted_to_upload-year.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day => integration/by-date/Kodi/upload-year/upload-month-day}/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt => integration/by-date/Kodi/upload-year/upload-month-day/is_yt_1_reformatted_to_upload-year.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/plex_tv_show_by_date/season_by_year__episode_by_month_day => integration/by-date/Plex/upload-year/upload-month-day}/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/plex_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt => integration/by-date/Plex/upload-year/upload-month-day/is_yt_1_reformatted_to_upload-year.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day => integration/collection/Jellyfin/upload-year-month-day}/s_1/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Jellyfin/upload-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day => integration/collection/Jellyfin/upload-year-month-day}/s_2/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Jellyfin/upload-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) create mode 100644 tests/resources/transaction_log_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1.txt create mode 100644 tests/resources/transaction_log_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed => integration/collection/Kodi/playlist-index-reversed}/s_1/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed => integration/collection/Kodi/playlist-index-reversed}/s_2/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index => integration/collection/Kodi/playlist-index}/s_1/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Kodi/playlist-index/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index => integration/collection/Kodi/playlist-index}/s_2/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Kodi/playlist-index/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) create mode 100644 tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1.txt create mode 100644 tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt create mode 100644 tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1.txt create mode 100644 tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt create mode 100644 tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1.txt create mode 100644 tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt create mode 100644 tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1.txt create mode 100644 tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed => integration/collection/Kodi/upload-year-month-day-reversed}/s_1/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Kodi/upload-year-month-day-reversed/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed => integration/collection/Kodi/upload-year-month-day-reversed}/s_2/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Kodi/upload-year-month-day-reversed/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day => integration/collection/Kodi/upload-year-month-day}/s_1/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Kodi/upload-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day => integration/collection/Kodi/upload-year-month-day}/s_2/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Kodi/upload-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day => integration/collection/Plex/upload-year-month-day}/s_1/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Plex/upload-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) rename tests/resources/transaction_log_summaries/{unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day => integration/collection/Plex/upload-year-month-day}/s_2/is_yt_1.txt (100%) rename tests/resources/transaction_log_summaries/{unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt => integration/collection/Plex/upload-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt} (100%) diff --git a/docs/source/config_reference/scripting/scripting_functions.rst b/docs/source/config_reference/scripting/scripting_functions.rst index 61076fa7..e2cf4e41 100644 --- a/docs/source/config_reference/scripting/scripting_functions.rst +++ b/docs/source/config_reference/scripting/scripting_functions.rst @@ -634,7 +634,7 @@ capitalize concat ~~~~~~ -:spec: ``concat(values: String, ...) -> String`` +:spec: ``concat(values: AnyArgument, ...) -> String`` :description: Concatenate multiple Strings into a single String. diff --git a/docs/source/faq/index.rst b/docs/source/faq/index.rst index a3dad246..95f9e06b 100644 --- a/docs/source/faq/index.rst +++ b/docs/source/faq/index.rst @@ -63,9 +63,9 @@ See the prebuilt preset :doc:`chunk_initial_download See the prebuilt preset :doc:`Filter Keywords `. ...prevent creation of NFO file -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Creation of NFO files is done by :ref:`NFO tags plugin `. It, as any other plugin, can be disabled: +Creation of NFO files is done by the NFO tags plugin. It, as any other plugin, can be disabled: .. code-block:: yaml diff --git a/docs/source/prebuilt_presets/tv_shows.rst b/docs/source/prebuilt_presets/tv_shows.rst index 8510350d..9cf0f92b 100644 --- a/docs/source/prebuilt_presets/tv_shows.rst +++ b/docs/source/prebuilt_presets/tv_shows.rst @@ -28,23 +28,18 @@ Plex ---------------------------------------------- -Generic Presets -=============== - -There are two main methods for downloading and formatting videos as a TV show. - TV Show by Date ---------------- +=============== TV Show by Date will organize something like a YouTube channel or playlist into a tv show, where seasons and episodes are organized using upload date. Example -~~~~~~~ +------- Must define ``tv_show_directory``. Available presets: -* ``"Kodi TV Show by Date"`` -* ``"Jellyfin TV Show by Date"`` -* ``"Plex TV Show by Date"`` +* ``Kodi TV Show by Date`` +* ``Jellyfin TV Show by Date`` +* ``Plex TV Show by Date`` .. code-block:: yaml @@ -72,30 +67,68 @@ Must define ``tv_show_directory``. Available presets: - "https://www.youtube.com/@rickbeato240" Advanced Usage -~~~~~~~~~~~~~~ +-------------- -If you prefer a different organization method, you can instead apply multiple presets to your subscriptions. +If you prefer a different season/episode organization method, you can set the following override variables. -You will need a base of one of the below: +.. code-block:: yaml -* ``kodi_tv_show_by_date`` -* ``jellyfin_tv_show_by_date`` -* ``plex_tv_show_by_date`` + __preset__: + overrides: + tv_show_directory: "/tv_shows" + tv_show_by_date_season_ordering: "upload-year-month" + tv_show_by_date_episode_ordering: "upload-day" -And then add one of these: +Or for a specific preset -* ``season_by_year__episode_by_month_day`` -* ``season_by_year_month__episode_by_day`` -* ``season_by_year__episode_by_month_day_reversed`` - - * Episode numbers are reversed, meaning more recent episodes appear at the top of a season by having a lower value. -* ``season_by_year__episode_by_download_index`` - - * Episodes are numbered by the download order. NOTE that this is fetched using the length of the download archive. Do not use if you intend to remove old videos. +.. code-block:: yaml + "~Kids Toys Play": + url: "https://www.youtube.com/@KidsToysPlayChannel" + tv_show_by_date_season_ordering: "upload-year-month" + tv_show_by_date_episode_ordering: "upload-day" + +The following are supported. Be sure the combined season + episode ordering +include the year, month, day, i.e. upload-year + upload-month-day. + + +Season Ordering +~~~~~~~~~~~~~~~ + +``tv_show_by_date_season_ordering`` supports one of the following: + +* ``upload-year`` (default) +* ``upload-year-month`` +* ``release-year`` +* ``release-year-month`` + + +Episode Ordering +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``tv_show_by_date_episode_ordering`` supports one of the following: + +* ``upload-month-day`` (default) +* ``upload-month-day-reversed`` + + * Reversed means more recent episodes appear at the top of a season by having a lower value. +* ``upload-day`` +* ``release-day`` +* ``release-month-day`` +* ``release-month-day-reversed`` +* ``download-index`` + + * Episodes are numbered by the download order. **NOTE**: this is fetched using the length of the download archive. Do not use if you intend to remove old videos. + +TV Show by Date presets use the following for defaults: + +.. code-block:: yaml + + tv_show_by_date_season_ordering: "upload-year" + tv_show_by_date_episode_ordering: "upload-month-day" TV Show Collection ------------------- +================== TV Show Collections set each URL as its own season. If a video belongs to multiple URLs (i.e. a channel and a channel's playlist), the video will only download once and reside in @@ -109,12 +142,12 @@ Two main use cases of a collection are: represents a separate channel/playlist. Example -~~~~~~~ +------- Must define ``tv_show_directory``. Available presets: -* ``"Kodi TV Show Collection"`` -* ``"Jellyfin TV Show Collection"`` -* ``"Plex TV Show Collection"`` +* ``Kodi TV Show Collection`` +* ``Jellyfin TV Show Collection`` +* ``Plex TV Show Collection`` .. code-block:: yaml @@ -132,21 +165,44 @@ Must define ``tv_show_directory``. Available presets: s02_url: "https://www.youtube.com/playlist?list=PLE62gWlWZk5NWVAVuf0Lm9jdv_-_KXs0W" Advanced Usage -~~~~~~~~~~~~~~ +-------------- -If you prefer a different organization method, you can instead apply multiple presets to your subscriptions. +If you prefer a different episode organization method, you can set the following override variables. -You will need a base of one of the below: +.. code-block:: yaml -* ``kodi_tv_show_collection`` -* ``jellyfin_tv_show_collection`` -* ``plex_tv_show_collection`` + __preset__: + overrides: + tv_show_directory: "/tv_shows" + tv_show_collection_episode_ordering: "release-year-month-day" -And then add one of these: +Or for a specific preset -* ``season_by_collection__episode_by_year_month_day`` -* ``season_by_collection__episode_by_year_month_day_reversed`` -* ``season_by_collection__episode_by_playlist_index`` - - * Only use playlist_index episode formatting for playlists that will be fully downloaded once and never again. Otherwise, indices can change. -* ``season_by_collection__episode_by_playlist_index_reversed`` +.. code-block:: yaml + + "~Beyond the Guitar": + tv_show_collection_episode_ordering: "release-year-month-day" + s01_name: "Videos" + s01_url: "https://www.youtube.com/c/BeyondTheGuitar" + s02_name: "Covers" + s02_url: "https://www.youtube.com/playlist?list=PLE62gWlWZk5NWVAVuf0Lm9jdv_-_KXs0W" + + +The following are supported. + + +Episode Ordering +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``tv_show_collection_episode_ordering`` supports one of the following: + +* ``upload-year-month-day`` (default) +* ``upload-year-month-day-reversed`` +* ``release-year-month-day`` +* ``release-year-month-day-reversed`` +* ``playlist-index`` + + * Only use ``playlist-index`` episode formatting for playlists that will be fully downloaded once and never again. Otherwise, indices can change. +* ``playlist-index-reversed`` + +TV Show Collection presets use upload-year-month-day as the default. diff --git a/src/ytdl_sub/downloaders/url/downloader.py b/src/ytdl_sub/downloaders/url/downloader.py index 2db75fb1..1f5eb56d 100644 --- a/src/ytdl_sub/downloaders/url/downloader.py +++ b/src/ytdl_sub/downloaders/url/downloader.py @@ -531,8 +531,8 @@ class MultiUrlDownloader(SourcePlugin[MultiUrlValidator]): download_logger.info("Entry rejected by download match-filter, skipping ..") return None - upload_date_idx = self._enhanced_download_archive.mapping.get_num_entries_with_upload_date( - upload_date_standardized=entry.get(v.upload_date_standardized, str) + upload_date_idx = self._enhanced_download_archive.mapping.get_num_entries_with_date( + standardized_date=entry.get(v.ytdl_sub_keep_files_date_eval, str) ) download_idx = self._enhanced_download_archive.num_entries diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/__init__.py b/src/ytdl_sub/prebuilt_presets/tv_show/__init__.py index b2e0df4f..841e1713 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/__init__.py +++ b/src/ytdl_sub/prebuilt_presets/tv_show/__init__.py @@ -12,28 +12,6 @@ class TvShowByDatePresets(PrebuiltPresets): } -class TvShowByDateOldPresets(PrebuiltPresets): - """ - TV Show by Date presets create a TV show from a single URL using upload dates as season/episode - numbers. - """ - - preset_names = { - "kodi_tv_show_by_date", - "jellyfin_tv_show_by_date", - "plex_tv_show_by_date", - } - - -class TvShowByDateEpisodeFormattingPresets(PrebuiltPresets): - preset_names = { - "season_by_year__episode_by_month_day", - "season_by_year__episode_by_month_day_reversed", - "season_by_year_month__episode_by_day", - "season_by_year__episode_by_download_index", - } - - class TvShowCollectionPresets(PrebuiltPresets): preset_names = { "Kodi TV Show Collection", @@ -48,24 +26,3 @@ class TvShowCollectionOldPresets(PrebuiltPresets): "jellyfin_tv_show_collection", "plex_tv_show_collection", } - - -class TvShowCollectionEpisodeFormattingPresets(PrebuiltPresets): - preset_names = { - "season_by_collection__episode_by_year_month_day", - "season_by_collection__episode_by_year_month_day_reversed", - "season_by_collection__episode_by_playlist_index", - "season_by_collection__episode_by_playlist_index_reversed", - } - - -class TvShowCollectionSeasonPresets(PrebuiltPresets): - """Now Deprecated""" - - preset_names = { - "collection_season_1", - "collection_season_2", - "collection_season_3", - "collection_season_4", - "collection_season_5", - } diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml index b6bacd27..4e9ccc7d 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml @@ -9,6 +9,7 @@ presets: thumbnail_name: "{thumbnail_file_name}" info_json_name: "{episode_file_path}.{info_json_ext}" maintain_download_archive: True + keep_files_date_eval: "{episode_date_standardized}" ytdl_options: break_on_existing: True @@ -36,14 +37,11 @@ presets: tv_show_genre: "{subscription_indent_1}" tv_show_content_rating: "{subscription_indent_2}" season_directory_name: "Season {season_number_padded}" - episode_title: "{upload_date_standardized} - {title}" + episode_title: "{episode_date_standardized} - {title}" episode_plot: "{webpage_url}\n\n{description}" - episode_year: "{upload_year}" episode_content_rating: "{tv_show_content_rating}" episode_date_standardized: "{upload_date_standardized}" episode_file_name: "s{season_number_padded}.e{episode_number_padded} - {file_title}" episode_file_path: "{season_directory_name_sanitized}/{episode_file_name_sanitized}" thumbnail_file_name: "{episode_file_path}-thumb.jpg" - - - + episode_year: "{%slice(episode_date_standardized, 0, 4)}" diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_by_date.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_by_date.yaml index bca76405..db12b9d0 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_by_date.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_by_date.yaml @@ -56,19 +56,104 @@ presets: "Provided `s01_url` or `s01_name` variable to TV Show by Date preset when it expects `url`. Perhaps you meant to use the `TV Show Collection` preset?" ) } - #################################################################################################### + _tv_show_by_date_season_episode_ordering: + overrides: + tv_show_by_date_season_ordering: >- + { %throw("Must specify tv_show_by_date_season_ordering") } + + "%season_ordering_": >- + { %eq( %lower(tv_show_by_date_season_ordering), $0 ) } + + season_number: >- + { + %elif( + %season_ordering_( "upload-year" ), upload_year, + %season_ordering_( "upload-year-month" ), %concat(upload_year, upload_month_padded), + %season_ordering_( "release-year" ), release_year, + %season_ordering_( "release-year-month" ), %concat(release_year, release_month_padded), + %throw( + 'tv_show_by_date_season_ordering must be one of the following: "upload-year", "upload-year-month", "release-year", "release-year-month"' + ) + ) + } + + # both year and year-month are fixed width, until the year 10000 :) + season_number_padded: "{season_number}" + + ##################################### episode overrides + + tv_show_by_date_episode_ordering: >- + { %throw("Must specify tv_show_by_date_episode_ordering") } + + "%episode_ordering_": >- + { %eq( %lower(tv_show_by_date_episode_ordering), $0 ) } + + episode_number_and_padded_: >- + { + %elif( + %episode_ordering_( "upload-day" ), [ %concat(upload_day, upload_date_index_padded), 4 ], + %episode_ordering_( "upload-month-day" ), [ %concat(upload_month, upload_day_padded, upload_date_index_padded), 6], + %episode_ordering_( "upload-month-day-reversed" ), [ %concat(upload_day_of_year_reversed, upload_date_index_reversed_padded), 5], + %episode_ordering_( "release-day" ), [ %concat(release_day, upload_date_index_padded), 4 ], + %episode_ordering_( "release-month-day" ), [ %concat(release_month, release_day_padded, upload_date_index_padded), 6], + %episode_ordering_( "release-month-day-reversed" ), [ %concat(release_day_of_year_reversed, upload_date_index_reversed_padded), 5], + %episode_ordering_( "download-index" ), [ download_index, 6 ], + %throw( + 'tv_show_by_date_episode_ordering must be one of the following: "upload-day", "upload-month-day", "upload-month-day-reversed", "release-day", "release-month-day", "release-month-day-reversed", "download-index"' + ) + ) + } + + episode_number: "{ %array_at(episode_number_and_padded_, 0) }" + episode_number_padded: "{ %pad_zero( %int(episode_number), %int(%array_at(episode_number_and_padded_, 1))) }" + episode_date_standardized: >- + { + %if( + %contains(tv_show_by_date_season_ordering, "release"), + release_date_standardized, + upload_date_standardized + ) + } + + ##################################### season/episode pairing validation + + "%ordering_pair_eq": >- + { + %eq([tv_show_by_date_season_ordering, tv_show_by_date_episode_ordering], [$0, $1]) + } + tv_show_by_date_ordering_pair_validation_: >- + { + %assert_then( + %or( + %ordering_pair_eq("upload-year", "upload-month-day"), + %ordering_pair_eq("upload-year", "upload-month-day-reversed"), + %ordering_pair_eq("upload-year", "download-index"), + %ordering_pair_eq("upload-year-month", "upload-day"), + %ordering_pair_eq("release-year", "release-month-day"), + %ordering_pair_eq("release-year", "release-month-day-reversed"), + %ordering_pair_eq("release-year", "download-index"), + %ordering_pair_eq("release-year-month", "release-day") + ), + episode_number_and_padded_, + "Detected incompatibility between tv_show_by_date_season_ordering and tv_show_by_date_episode_ordering. Ensure you are not using both upload and release date, and that the year/month/day are included in the combined season and episode." + ) + } + + +#################################################################################################### +# LEGACY PRESETS _season_by_year: + preset: "_tv_show_by_date_season_episode_ordering" overrides: - season_number: "{upload_year}" - season_number_padded: "{season_number}" + tv_show_by_date_season_ordering: "upload-year" _season_by_year_month: + preset: "_tv_show_by_date_season_episode_ordering" overrides: - season_number: "{upload_year}{upload_month_padded}" - season_number_padded: "{season_number}" + tv_show_by_date_season_ordering: "upload-year-month" #################################################################################################### @@ -76,26 +161,22 @@ presets: preset: - "_season_by_year_month" overrides: - episode_number: "{upload_day}{upload_date_index_padded}" - episode_number_padded: "{upload_day_padded}{upload_date_index_padded}" + tv_show_by_date_episode_ordering: "upload-day" season_by_year__episode_by_month_day: preset: - "_season_by_year" overrides: - episode_number: "{upload_month}{upload_day_padded}{upload_date_index_padded}" - episode_number_padded: "{upload_month_padded}{upload_day_padded}{upload_date_index_padded}" + tv_show_by_date_episode_ordering: "upload-month-day" season_by_year__episode_by_month_day_reversed: preset: - "_season_by_year" overrides: - episode_number: "{upload_day_of_year_reversed}{upload_date_index_reversed_padded}" - episode_number_padded: "{upload_day_of_year_reversed_padded}{upload_date_index_reversed_padded}" + tv_show_by_date_episode_ordering: "upload-month-day-reversed" season_by_year__episode_by_download_index: preset: - "_season_by_year" overrides: - episode_number: "{download_index}" - episode_number_padded: "{download_index_padded6}" \ No newline at end of file + tv_show_by_date_episode_ordering: "download-index" diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_collection.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_collection.yaml index accdd395..71a81dc6 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_collection.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_collection.yaml @@ -37,25 +37,61 @@ presets: ############################### - season_by_collection__episode_by_year_month_day: + _tv_show_collection_episode_ordering: overrides: - episode_number: "{upload_year_truncated}{upload_month_padded}{upload_day_padded}{upload_date_index_padded}" - episode_number_padded: "{episode_number}" + tv_show_collection_episode_ordering: >- + { %throw("Must specify tv_show_collection_episode_ordering") } + + "%episode_ordering_": >- + { %eq( %lower(tv_show_collection_episode_ordering), $0 ) } + + episode_number_and_padded_: >- + { + %elif( + %episode_ordering_( "upload-year-month-day" ), [ %concat(upload_year_truncated, upload_month_padded, upload_day_padded, upload_date_index_padded), 8 ], + %episode_ordering_( "upload-year-month-day-reversed" ), [ %concat(upload_year_truncated_reversed, upload_month_reversed_padded, upload_day_reversed_padded, upload_date_index_reversed_padded), 8], + %episode_ordering_( "release-year-month-day" ), [ %concat(release_year_truncated, release_month_padded, release_day_padded, upload_date_index_padded), 8 ], + %episode_ordering_( "release-year-month-day-reversed" ), [ %concat(release_year_truncated_reversed, release_month_reversed_padded, release_day_reversed_padded, upload_date_index_reversed_padded), 8], + %episode_ordering_( "playlist-index" ), [ %concat(playlist_index), 6], + %episode_ordering_( "playlist-index-reversed" ), [ %concat(playlist_index_reversed), 6], + %throw( + 'tv_show_collection_episode_ordering must be one of the following: "upload-year-month-day", "upload-year-month-day-reversed", "release-year-month-day", "release-year-month-day-reversed", "playlist-index", "playlist-index-reversed"' + ) + ) + } + + episode_number: "{ %array_at(episode_number_and_padded_, 0) }" + episode_number_padded: "{ %pad_zero( %int(episode_number), %int(%array_at(episode_number_and_padded_, 1))) }" + episode_date_standardized: >- + { + %if( + %contains(tv_show_collection_episode_ordering, "release"), + release_date_standardized, + upload_date_standardized + ) + } + + ### LEGACY PRESETS + + season_by_collection__episode_by_year_month_day: + preset: "_tv_show_collection_episode_ordering" + overrides: + tv_show_collection_episode_ordering: "upload-year-month-day" season_by_collection__episode_by_year_month_day_reversed: + preset: "_tv_show_collection_episode_ordering" overrides: - episode_number: "{upload_year_truncated_reversed}{upload_month_reversed_padded}{upload_day_reversed_padded}{upload_date_index_reversed_padded}" - episode_number_padded: "{episode_number}" + tv_show_collection_episode_ordering: "upload-year-month-day-reversed" season_by_collection__episode_by_playlist_index: + preset: "_tv_show_collection_episode_ordering" overrides: - episode_number: "{playlist_index}" - episode_number_padded: "{playlist_index_padded6}" + tv_show_collection_episode_ordering: "playlist-index" season_by_collection__episode_by_playlist_index_reversed: + preset: "_tv_show_collection_episode_ordering" overrides: - episode_number: "{playlist_index_reversed}" - episode_number_padded: "{playlist_index_reversed_padded6}" + tv_show_collection_episode_ordering: "playlist-index-reversed" ############## diff --git a/src/ytdl_sub/script/functions/string_functions.py b/src/ytdl_sub/script/functions/string_functions.py index 43ff87a5..a1f4567e 100644 --- a/src/ytdl_sub/script/functions/string_functions.py +++ b/src/ytdl_sub/script/functions/string_functions.py @@ -127,12 +127,12 @@ class StringFunctions: return Array([String(split_val) for split_val in string.value.split(sep=sep.value)]) @staticmethod - def concat(*values: String) -> String: + def concat(*values: AnyArgument) -> String: """ :description: Concatenate multiple Strings into a single String. """ - return String("".join(val.value for val in values)) + return String("".join(str(val.value) for val in values)) @staticmethod def pad(string: String, length: Integer, char: String) -> String: diff --git a/src/ytdl_sub/ytdl_additions/enhanced_download_archive.py b/src/ytdl_sub/ytdl_additions/enhanced_download_archive.py index 2c633a74..7a565412 100644 --- a/src/ytdl_sub/ytdl_additions/enhanced_download_archive.py +++ b/src/ytdl_sub/ytdl_additions/enhanced_download_archive.py @@ -248,20 +248,18 @@ class DownloadMappings: del self._entry_mappings[entry_id] return self - def get_num_entries_with_upload_date(self, upload_date_standardized: str) -> int: + def get_num_entries_with_date(self, standardized_date: str) -> int: """ Parameters ---------- - upload_date_standardized + standardized_date A standardized upload date Returns ------- Number of entries in the mapping with this upload date """ - return len( - [_ for _ in self._entry_mappings.values() if _.upload_date == upload_date_standardized] - ) + return len([_ for _ in self._entry_mappings.values() if _.upload_date == standardized_date]) def get_num_entries(self) -> int: """ diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index c50773ff..621ad68f 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -5,6 +5,7 @@ from pathlib import Path from typing import Callable from typing import Dict from typing import List +from typing import Optional from unittest.mock import patch import pytest @@ -53,6 +54,7 @@ def mock_entry_dict_factory(mock_downloaded_file_path) -> Callable: is_youtube_channel: bool = False, mock_download_to_working_dir: bool = True, is_extracted_audio: bool = False, + release_date: Optional[str] = None, ) -> Dict: entry_dict = { v.uid.metadata_key: uid, @@ -71,6 +73,10 @@ def mock_entry_dict_factory(mock_downloaded_file_path) -> Callable: v.description.metadata_key: "The Description", } + # TODO: Make this required eventually + if release_date is not None: + entry_dict[v.release_date.metadata_key] = release_date + if is_youtube_channel: entry_dict[v.playlist_metadata.metadata_key]["thumbnails"] = [ { @@ -153,6 +159,7 @@ def mock_download_collection_entries( mock_entry_dict_factory( uid="21-1", upload_date="20210808", + release_date="20010808", playlist_title="Download First", playlist_index=1, playlist_count=4, @@ -163,6 +170,7 @@ def mock_download_collection_entries( mock_entry_dict_factory( uid="20-1", upload_date="20200808", + release_date="20000808", playlist_title="Download First", playlist_index=2, playlist_count=4, @@ -173,6 +181,7 @@ def mock_download_collection_entries( mock_entry_dict_factory( uid="20-2", upload_date="20200808", + release_date="20000808", playlist_title="Download First", playlist_index=3, playlist_count=4, @@ -183,6 +192,7 @@ def mock_download_collection_entries( mock_entry_dict_factory( uid="20-3", upload_date="20200807", + release_date="20000807", playlist_title="Download First", playlist_index=4, playlist_count=4, @@ -196,6 +206,7 @@ def mock_download_collection_entries( mock_entry_dict_factory( uid="20-3", upload_date="20200807", + release_date="20000807", playlist_title="Download Second", playlist_index=1, playlist_count=5, @@ -206,6 +217,7 @@ def mock_download_collection_entries( mock_entry_dict_factory( uid="20-4", upload_date="20200806", + release_date="20000806", playlist_title="Download Second", playlist_index=2, playlist_count=5, @@ -216,6 +228,7 @@ def mock_download_collection_entries( mock_entry_dict_factory( uid="20-5", upload_date="20200706", + release_date="20000706", playlist_title="Download Second", playlist_index=3, playlist_count=5, @@ -226,6 +239,7 @@ def mock_download_collection_entries( mock_entry_dict_factory( uid="20-6", upload_date="20200706", + release_date="20000706", playlist_title="Download Second", playlist_index=4, playlist_count=5, @@ -236,6 +250,7 @@ def mock_download_collection_entries( mock_entry_dict_factory( uid="20-7", upload_date="20200606", + release_date="20000606", playlist_title="Download Second", playlist_index=5, playlist_count=5, diff --git a/tests/integration/prebuilt_presets/test_tv_show_by_date.py b/tests/integration/prebuilt_presets/test_tv_show_by_date.py index 904642d7..e886e228 100644 --- a/tests/integration/prebuilt_presets/test_tv_show_by_date.py +++ b/tests/integration/prebuilt_presets/test_tv_show_by_date.py @@ -1,19 +1,30 @@ +import re +from typing import Set + import pytest from expected_download import assert_expected_downloads from expected_transaction_log import assert_transaction_log_matches from ytdl_sub.config.config_file import ConfigFile -from ytdl_sub.prebuilt_presets.tv_show import TvShowByDateEpisodeFormattingPresets from ytdl_sub.prebuilt_presets.tv_show import TvShowByDatePresets +from ytdl_sub.script.utils.exceptions import UserThrownRuntimeError from ytdl_sub.subscriptions.subscription import Subscription -DEPRECATED_TV_SHOW_PRESET_EQUIVALENTS = { - "Kodi TV Show by Date": "kodi_tv_show_by_date", - "Jellyfin TV Show by Date": "jellyfin_tv_show_by_date", - "Plex TV Show by Date": "plex_tv_show_by_date", -} +DEFAULT_SEASON_ORDERING = "upload-year" +DEFAULT_EPISODE_ORDERING = "upload-month-day" -DEFAULT_EPISODE_ORDERING_PRESET = "season_by_year__episode_by_month_day" +VALID_ORDERING_COMBOS = [ + # upload + ("upload-year", "upload-month-day"), + ("upload-year", "upload-month-day-reversed"), + ("upload-year", "download-index"), + ("upload-year-month", "upload-day"), + # release + ("release-year", "release-month-day"), + ("release-year", "release-month-day-reversed"), + ("release-year", "download-index"), + ("release-year-month", "release-day"), +] class TestPrebuiltTVShowPresets: @@ -24,24 +35,28 @@ class TestPrebuiltTVShowPresets: subscription_name: str, output_directory: str, tv_show_preset: str, - episode_ordering_preset: str, + season_ordering: str, + episode_ordering: str, is_youtube_channel: bool = True, is_many_urls: bool = False, ): - expected_summary_name = "unit/{}/{}/is_yt_{}{}".format( - DEPRECATED_TV_SHOW_PRESET_EQUIVALENTS[tv_show_preset], - episode_ordering_preset, + expected_summary_name = "integration/by-date/{}/{}/{}/is_yt_{}{}".format( + tv_show_preset.split(" ")[0], + season_ordering, + episode_ordering, int(is_youtube_channel), "_many_urls" if is_many_urls else "", ) preset_dict = { - "preset": [tv_show_preset, episode_ordering_preset], + "preset": tv_show_preset, "overrides": { "url": "https://your.name.here", "tv_show_name": "Best Prebuilt TV Show by Date", "tv_show_directory": output_directory, + "tv_show_by_date_season_ordering": season_ordering, + "tv_show_by_date_episode_ordering": episode_ordering, }, } if is_many_urls: @@ -67,16 +82,19 @@ class TestPrebuiltTVShowPresets: ) ###################################### Perform reformat - reformatted_tv_show_structure_preset = "season_by_year__episode_by_download_index" - reformatted_expected_summary_name = "unit/{}/{}/is_yt_{}{}".format( - DEPRECATED_TV_SHOW_PRESET_EQUIVALENTS[tv_show_preset], - reformatted_tv_show_structure_preset, + reformatted_season_ordering = "upload-year" + reformatted_episode_ordering = "download-index" + + reformatted_expected_summary_name = "integration/by-date/{}/{}/{}/is_yt_{}{}".format( + tv_show_preset.split(" ")[0], + reformatted_season_ordering, + reformatted_episode_ordering, int(is_youtube_channel), "_many_urls" if is_many_urls else "", ) reformatted_preset_dict = { - "preset": [tv_show_preset, reformatted_tv_show_structure_preset], + "preset": tv_show_preset, "output_options": { "migrated_download_archive_name": ".ytdl-sub-{tv_show_name_sanitized}-download-archive.json" }, @@ -84,6 +102,8 @@ class TestPrebuiltTVShowPresets: "url": "https://your.name.here", "tv_show_name": "Best Prebuilt TV Show by Date", "tv_show_directory": output_directory, + "tv_show_by_date_season_ordering": reformatted_season_ordering, + "tv_show_by_date_episode_ordering": reformatted_episode_ordering, }, } if is_many_urls: @@ -98,7 +118,7 @@ class TestPrebuiltTVShowPresets: output_directory=output_directory, transaction_log=reformatted_transaction_log, transaction_log_summary_file_name=( - f"{expected_summary_name}_reformatted_to_{reformatted_tv_show_structure_preset}.txt" + f"{expected_summary_name}_reformatted_to_{reformatted_season_ordering}.txt" ), ) assert_expected_downloads( @@ -123,11 +143,13 @@ class TestPrebuiltTVShowPresets: subscription_name=subscription_name, output_directory=output_directory, tv_show_preset=tv_show_preset, - episode_ordering_preset=DEFAULT_EPISODE_ORDERING_PRESET, + season_ordering=DEFAULT_SEASON_ORDERING, + episode_ordering=DEFAULT_EPISODE_ORDERING, ) @pytest.mark.parametrize( - "episode_ordering_preset", TvShowByDateEpisodeFormattingPresets.preset_names + "season_ordering, episode_ordering", + VALID_ORDERING_COMBOS, ) def test_episode_ordering_presets( self, @@ -135,7 +157,8 @@ class TestPrebuiltTVShowPresets: subscription_name, output_directory, mock_download_collection_entries, - episode_ordering_preset: str, + season_ordering: str, + episode_ordering: str, ): with mock_download_collection_entries( @@ -146,5 +169,91 @@ class TestPrebuiltTVShowPresets: subscription_name=subscription_name, output_directory=output_directory, tv_show_preset="Kodi TV Show by Date", - episode_ordering_preset=episode_ordering_preset, + season_ordering=season_ordering, + episode_ordering=episode_ordering, ) + + def test_invalid_season_ordering( + self, config, subscription_name, output_directory, mock_download_collection_entries + ): + expected_message = ( + "tv_show_by_date_season_ordering must be one of the following: " + '"upload-year", ' + '"upload-year-month", ' + '"release-year", ' + '"release-year-month"' + ) + + with ( + mock_download_collection_entries(is_youtube_channel=True, num_urls=1), + pytest.raises(UserThrownRuntimeError, match=re.escape(expected_message)), + ): + self.run( + config=config, + subscription_name=subscription_name, + output_directory=output_directory, + tv_show_preset="Kodi TV Show by Date", + season_ordering="nope", + episode_ordering=DEFAULT_EPISODE_ORDERING, + ) + + def test_invalid_episode_ordering( + self, config, subscription_name, output_directory, mock_download_collection_entries + ): + expected_message = ( + "tv_show_by_date_episode_ordering must be one of the following: " + '"upload-day", ' + '"upload-month-day", ' + '"upload-month-day-reversed", ' + '"release-day", ' + '"release-month-day", ' + '"release-month-day-reversed", ' + '"download-index"' + ) + + with ( + mock_download_collection_entries(is_youtube_channel=True, num_urls=1), + pytest.raises(UserThrownRuntimeError, match=re.escape(expected_message)), + ): + self.run( + config=config, + subscription_name=subscription_name, + output_directory=output_directory, + tv_show_preset="Kodi TV Show by Date", + season_ordering=DEFAULT_SEASON_ORDERING, + episode_ordering="not-a-valid", + ) + + def test_invalid_season_episode_ordering_combo( + self, config, subscription_name, output_directory, mock_download_collection_entries + ): + expected_message = ( + "Detected incompatibility between tv_show_by_date_season_ordering " + "and tv_show_by_date_episode_ordering. Ensure you are not using both " + "upload and release date, and that the year/month/day are included in " + "the combined season and episode." + ) + + possible_seasons: Set[str] = set() + possible_episodes: Set[str] = set() + for season_ordering, episode_ordering in VALID_ORDERING_COMBOS: + possible_seasons.add(season_ordering) + possible_episodes.add(episode_ordering) + + for season_ordering in possible_seasons: + for episode_ordering in possible_episodes: + if (season_ordering, episode_ordering) in VALID_ORDERING_COMBOS: + continue + + with ( + mock_download_collection_entries(is_youtube_channel=True, num_urls=1), + pytest.raises(UserThrownRuntimeError, match=re.escape(expected_message)), + ): + self.run( + config=config, + subscription_name=subscription_name, + output_directory=output_directory, + tv_show_preset="Kodi TV Show by Date", + season_ordering=season_ordering, + episode_ordering=episode_ordering, + ) diff --git a/tests/integration/prebuilt_presets/test_tv_show_collection.py b/tests/integration/prebuilt_presets/test_tv_show_collection.py index b4954e6e..2061efd1 100644 --- a/tests/integration/prebuilt_presets/test_tv_show_collection.py +++ b/tests/integration/prebuilt_presets/test_tv_show_collection.py @@ -1,3 +1,4 @@ +import re from typing import Dict from typing import List @@ -6,17 +7,11 @@ from expected_download import assert_expected_downloads from expected_transaction_log import assert_transaction_log_matches from ytdl_sub.config.config_file import ConfigFile -from ytdl_sub.prebuilt_presets.tv_show import TvShowCollectionEpisodeFormattingPresets from ytdl_sub.prebuilt_presets.tv_show import TvShowCollectionPresets +from ytdl_sub.script.utils.exceptions import UserThrownRuntimeError from ytdl_sub.subscriptions.subscription import Subscription -DEPRECATED_TV_SHOW_PRESET_EQUIVALENTS = { - "Kodi TV Show Collection": "kodi_tv_show_collection", - "Jellyfin TV Show Collection": "jellyfin_tv_show_collection", - "Plex TV Show Collection": "plex_tv_show_collection", -} - -DEFAULT_EPISODE_ORDERING_PRESET = "season_by_collection__episode_by_year_month_day" +DEFAULT_EPISODE_ORDERING = "upload-year-month-day" class TestPrebuiltTvShowCollectionPresets: @@ -27,22 +22,19 @@ class TestPrebuiltTvShowCollectionPresets: subscription_name: str, output_directory: str, media_player_preset: str, - tv_show_structure_preset: str, + episode_ordering: str, season_indices: List[int], is_youtube_channel: bool = True, ): - expected_summary_name = "unit/{}/{}/s_{}/is_yt_{}".format( - DEPRECATED_TV_SHOW_PRESET_EQUIVALENTS[media_player_preset], - tv_show_structure_preset, + expected_summary_name = "integration/collection/{}/{}/s_{}/is_yt_{}".format( + media_player_preset.split(" ")[0], + episode_ordering, len(season_indices), int(is_youtube_channel), ) - parent_presets: List[str] = [media_player_preset, tv_show_structure_preset] overrides: Dict[str, str] = {} for season_index in season_indices: - parent_presets.append(f"collection_season_{season_index}") - overrides = dict( overrides, **{ @@ -55,12 +47,13 @@ class TestPrebuiltTvShowCollectionPresets: config=config, preset_name=subscription_name, preset_dict={ - "preset": parent_presets, + "preset": media_player_preset, "overrides": dict( overrides, **{ "tv_show_name": "Best Prebuilt TV Show Collection", "tv_show_directory": output_directory, + "tv_show_collection_episode_ordering": episode_ordering, }, ), }, @@ -79,12 +72,10 @@ class TestPrebuiltTvShowCollectionPresets: ) ###################################### Perform reformat - reformatted_tv_show_structure_preset = ( - "season_by_collection__episode_by_playlist_index_reversed" - ) - reformatted_expected_summary_name = "unit/{}/{}/s_{}/is_yt_{}".format( - DEPRECATED_TV_SHOW_PRESET_EQUIVALENTS[media_player_preset], - reformatted_tv_show_structure_preset, + reformatted_tv_show_collection_episode_ordering = "playlist-index-reversed" + reformatted_expected_summary_name = "integration/collection/{}/{}/s_{}/is_yt_{}".format( + media_player_preset.split(" ")[0], + reformatted_tv_show_collection_episode_ordering, len(season_indices), int(is_youtube_channel), ) @@ -93,7 +84,7 @@ class TestPrebuiltTvShowCollectionPresets: config=config, preset_name=subscription_name, preset_dict={ - "preset": parent_presets + [reformatted_tv_show_structure_preset], + "preset": media_player_preset, "output_options": { "migrated_download_archive_name": ".ytdl-sub-{tv_show_name_sanitized}-download-archive.json" }, @@ -102,6 +93,7 @@ class TestPrebuiltTvShowCollectionPresets: **{ "tv_show_name": "Best Prebuilt TV Show Collection", "tv_show_directory": output_directory, + "tv_show_collection_episode_ordering": reformatted_tv_show_collection_episode_ordering, }, ), }, @@ -112,7 +104,7 @@ class TestPrebuiltTvShowCollectionPresets: output_directory=output_directory, transaction_log=reformatted_transaction_log, transaction_log_summary_file_name=( - f"{expected_summary_name}_reformatted_to_{reformatted_tv_show_structure_preset}.txt" + f"{expected_summary_name}_reformatted_to_{reformatted_tv_show_collection_episode_ordering}.txt" ), ) assert_expected_downloads( @@ -141,12 +133,20 @@ class TestPrebuiltTvShowCollectionPresets: subscription_name=subscription_name, output_directory=output_directory, media_player_preset=media_player_preset, - tv_show_structure_preset=DEFAULT_EPISODE_ORDERING_PRESET, + episode_ordering=DEFAULT_EPISODE_ORDERING, season_indices=season_indices, ) @pytest.mark.parametrize( - "episode_ordering_preset", TvShowCollectionEpisodeFormattingPresets.preset_names + "episode_ordering", + [ + "upload-year-month-day", + "upload-year-month-day-reversed", + "release-year-month-day", + "release-year-month-day-reversed", + "playlist-index", + "playlist-index-reversed", + ], ) @pytest.mark.parametrize("season_indices", [[1], [1, 2]]) def test_episode_ordering_presets( @@ -155,7 +155,7 @@ class TestPrebuiltTvShowCollectionPresets: subscription_name, output_directory, mock_download_collection_entries, - episode_ordering_preset: str, + episode_ordering: str, season_indices: List[int], ): @@ -167,6 +167,32 @@ class TestPrebuiltTvShowCollectionPresets: subscription_name=subscription_name, output_directory=output_directory, media_player_preset="Kodi TV Show Collection", - tv_show_structure_preset=episode_ordering_preset, + episode_ordering=episode_ordering, season_indices=season_indices, ) + + def test_invalid_episode_ordering( + self, config, subscription_name, output_directory, mock_download_collection_entries + ): + expected_message = ( + "tv_show_collection_episode_ordering must be one of the following: " + '"upload-year-month-day", ' + '"upload-year-month-day-reversed", ' + '"release-year-month-day", ' + '"release-year-month-day-reversed", ' + '"playlist-index", ' + '"playlist-index-reversed"' + ) + + with ( + mock_download_collection_entries(is_youtube_channel=True, num_urls=1), + pytest.raises(UserThrownRuntimeError, match=re.escape(expected_message)), + ): + self.run( + config=config, + subscription_name=subscription_name, + output_directory=output_directory, + media_player_preset="Kodi TV Show Collection", + episode_ordering="does-not-exist", + season_indices=[1], + ) diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Jellyfin/upload-year/download-index/is_yt_1_migrated.json b/tests/resources/expected_downloads_summaries/integration/by-date/Jellyfin/upload-year/download-index/is_yt_1_migrated.json new file mode 100644 index 00000000..c8541f52 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Jellyfin/upload-year/download-index/is_yt_1_migrated.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-Best Prebuilt TV Show by Date-download-archive.json": "456d8882fc5e35d74f19b386d1d9a059", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.mp4": "1d0714fb3ca4d31a0f88492a06a6142d", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.nfo": "dbe61f2c8ae41041773f713ba5376726", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.mp4": "a8f3f8580989f3927606bf6060a64e30", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.nfo": "0f071078c9fa2569bbcb998664d40681", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.mp4": "265b1104b382fd157a123842e49fcdfd", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.nfo": "837a61dca11bbe1874ea07cb8ef8a7c9", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.mp4": "09fa4599fd48836c6c0da0760c306006", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.nfo": "8ee3845c514a411425b7e9198666b61c", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Jellyfin/upload-year/upload-month-day/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/by-date/Jellyfin/upload-year/upload-month-day/is_yt_1.json new file mode 100644 index 00000000..33848fb2 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Jellyfin/upload-year/upload-month-day/is_yt_1.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-subscription_test-download-archive.json": "e30d83126c2c6981c936ed894a6f159b", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3.mp4": "c712d7fd5dfdb9bb6c2be99f7c796c6f", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3.nfo": "7c0f2a9d38bf617377e474fcb9bf2bc2", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2.mp4": "7ec7ac1923053c4b5653bbfb8924fdc6", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2.nfo": "1f4dec756555ee345cd9d6489b63e070", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1.mp4": "414c243016f406451c790757949173aa", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1.nfo": "f6f704ae3ae0c4055590a147eb425609", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1.mp4": "e2f858efd08ac82749fd01db65d8341e", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1.nfo": "c6e0d368bfe9d70134e5a2ff2d3dccc6", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1.json new file mode 100644 index 00000000..0ead8778 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-subscription_test-download-archive.json": "95d3790190cece6e49d2f4d5f68868b1", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0701 - Mock Entry 20-3.mp4": "6dd6860e8075e5e99c85e14729c41bdb", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0701 - Mock Entry 20-3.nfo": "92d978e6f64d97e7e71e7045c9d2fb1f", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0801 - Mock Entry 20-2.mp4": "6b3537db708f88a877d3c5273df02eb0", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0801 - Mock Entry 20-2.nfo": "b1a3768f43d0f7f4dde1207a8670f9b1", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0802 - Mock Entry 20-1.mp4": "7e40cf2da8eedd93b3df9a017c78cd2e", + "Best Prebuilt TV Show by Date/Season 200008/s200008.e0802 - Mock Entry 20-1.nfo": "ea37e0d89713f971a87ddf67f8933be1", + "Best Prebuilt TV Show by Date/Season 200108/s200108.e0801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 200108/s200108.e0801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 200108/s200108.e0801 - Mock Entry 21-1.mp4": "c14c0b1901c456e87e1070539d32917e", + "Best Prebuilt TV Show by Date/Season 200108/s200108.e0801 - Mock Entry 21-1.nfo": "4e18e9e0454bc948cf8daa0151a0b137", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1.json new file mode 100644 index 00000000..8c885adb --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-subscription_test-download-archive.json": "d2888d629be62badedce415f8296a995", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000001 - Mock Entry 20-3.mp4": "f94c693da1964bd8e916459253ede6d4", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000001 - Mock Entry 20-3.nfo": "57b7ef31d0b9948bd67ba6a7c83dd22b", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000002 - Mock Entry 20-2.mp4": "68a76930c4456ab58f30ad1a3eb109aa", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000002 - Mock Entry 20-2.nfo": "1cc84f0bbe25315268dc453db8941c7f", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000003 - Mock Entry 20-1.mp4": "b24b301ec95f359ba28ca503e678522f", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e000003 - Mock Entry 20-1.nfo": "e77cc16953d13241f83fbd01792c15ba", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e000004 - Mock Entry 21-1.mp4": "cf36da70822036f06e5c834dac291dd3", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e000004 - Mock Entry 21-1.nfo": "cbd1abadd656f6d047775969604e9af4", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1.json new file mode 100644 index 00000000..7bc26567 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-subscription_test-download-archive.json": "1e8b4072d6d6aace4cac0c94ac0e711e", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14698 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14698 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14698 - Mock Entry 20-1.mp4": "f4846a3b9ee6a16df3348916077d6476", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14698 - Mock Entry 20-1.nfo": "ad715f955b255f356b6263f06941bf05", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14699 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14699 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14699 - Mock Entry 20-2.mp4": "82a1f043b879412d6219e16993b8b188", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14699 - Mock Entry 20-2.nfo": "2fa884c057a44122a245efe3c33921cd", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14799 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14799 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14799 - Mock Entry 20-3.mp4": "6626433c9c3399c6403ba5753e3b31c2", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e14799 - Mock Entry 20-3.nfo": "63f4405964a11f99ff1595cc18266489", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e14699 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e14699 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e14699 - Mock Entry 21-1.mp4": "bac622134b8f65eaeccce6f3b822be64", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e14699 - Mock Entry 21-1.nfo": "6b9659879d7a1b9f5e2dccee70d7fe66", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1.json new file mode 100644 index 00000000..290d9fa6 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-subscription_test-download-archive.json": "f13a43a83e725981df8417ab1d36705a", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080701 - Mock Entry 20-3.mp4": "219480c0ee2075ed86ccba740cca3d70", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080701 - Mock Entry 20-3.nfo": "6085b15cd1a32e8b45b97cee69ca4741", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080801 - Mock Entry 20-2.mp4": "7ed6abcf342149769ea2de23a0fee0a1", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080801 - Mock Entry 20-2.nfo": "599b687960602264db2f7f44dbd2f849", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080802 - Mock Entry 20-1.mp4": "1431320eb3acc337b1c70a895362397a", + "Best Prebuilt TV Show by Date/Season 2000/s2000.e080802 - Mock Entry 20-1.nfo": "6da492b1897671a3309df38e6fa33279", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e080801 - Mock Entry 21-1.mp4": "5c7f600b9a40039ea77729deda8d103f", + "Best Prebuilt TV Show by Date/Season 2001/s2001.e080801 - Mock Entry 21-1.nfo": "294fb0959c2cf640312f112c0a7aae27", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year-month/upload-day/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year-month/upload-day/is_yt_1.json new file mode 100644 index 00000000..05570b53 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year-month/upload-day/is_yt_1.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-subscription_test-download-archive.json": "5269b5e9e4fad7b63b6fdb3fef477b1e", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0701 - Mock Entry 20-3.mp4": "b095358d6b335a25f3be3ae44a6d10ac", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0701 - Mock Entry 20-3.nfo": "4ba0e01c1e7295952c3f5e6b9b251d7d", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0801 - Mock Entry 20-2.mp4": "43f73b6f99439e4873bf8d4ba1802452", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0801 - Mock Entry 20-2.nfo": "db9196b729c7b2cd26e3f0fc649b39f0", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0802 - Mock Entry 20-1.mp4": "632af351287dde4d1a096460f6bd93b1", + "Best Prebuilt TV Show by Date/Season 202008/s202008.e0802 - Mock Entry 20-1.nfo": "ba4a387d9462f416ba176c31c1c55316", + "Best Prebuilt TV Show by Date/Season 202108/s202108.e0801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 202108/s202108.e0801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 202108/s202108.e0801 - Mock Entry 21-1.mp4": "bf0104b783e168b150ea165faa898915", + "Best Prebuilt TV Show by Date/Season 202108/s202108.e0801 - Mock Entry 21-1.nfo": "93dd5c4c493422f9a60e61a6b965b39a", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1.json new file mode 100644 index 00000000..1795a9ee --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-subscription_test-download-archive.json": "456d8882fc5e35d74f19b386d1d9a059", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.mp4": "1d0714fb3ca4d31a0f88492a06a6142d", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.nfo": "dbe61f2c8ae41041773f713ba5376726", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.mp4": "a8f3f8580989f3927606bf6060a64e30", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.nfo": "0f071078c9fa2569bbcb998664d40681", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.mp4": "265b1104b382fd157a123842e49fcdfd", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.nfo": "837a61dca11bbe1874ea07cb8ef8a7c9", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.mp4": "09fa4599fd48836c6c0da0760c306006", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.nfo": "8ee3845c514a411425b7e9198666b61c", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1_migrated.json b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1_migrated.json new file mode 100644 index 00000000..c8541f52 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1_migrated.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-Best Prebuilt TV Show by Date-download-archive.json": "456d8882fc5e35d74f19b386d1d9a059", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.mp4": "1d0714fb3ca4d31a0f88492a06a6142d", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.nfo": "dbe61f2c8ae41041773f713ba5376726", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.mp4": "a8f3f8580989f3927606bf6060a64e30", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.nfo": "0f071078c9fa2569bbcb998664d40681", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.mp4": "265b1104b382fd157a123842e49fcdfd", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.nfo": "837a61dca11bbe1874ea07cb8ef8a7c9", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.mp4": "09fa4599fd48836c6c0da0760c306006", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.nfo": "8ee3845c514a411425b7e9198666b61c", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/upload-month-day-reversed/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/upload-month-day-reversed/is_yt_1.json new file mode 100644 index 00000000..bbd955da --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/upload-month-day-reversed/is_yt_1.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-subscription_test-download-archive.json": "05539b932348da7e949a63eb71f77efc", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14698 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14698 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14698 - Mock Entry 20-1.mp4": "c27d1898d39763a265e4fe4451777688", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14698 - Mock Entry 20-1.nfo": "88fee5353ad7eecd96865b34654bbde6", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14699 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14699 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14699 - Mock Entry 20-2.mp4": "80c087803d5ac9c0efe02361fdaaa5bd", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14699 - Mock Entry 20-2.nfo": "d781b80ef24916acbf3bf181ab32ddea", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14799 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14799 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14799 - Mock Entry 20-3.mp4": "1b5084c06b33f7e0d6daf7cff03adc73", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e14799 - Mock Entry 20-3.nfo": "252b3639b4d1686f8c79476943f89439", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e14699 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e14699 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e14699 - Mock Entry 21-1.mp4": "a83870aaca55947b7a91ac90109163af", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e14699 - Mock Entry 21-1.nfo": "e7374b766d9ec0599ecf209a0f78c0ba", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/upload-month-day/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/upload-month-day/is_yt_1.json new file mode 100644 index 00000000..33848fb2 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Kodi/upload-year/upload-month-day/is_yt_1.json @@ -0,0 +1,22 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-subscription_test-download-archive.json": "e30d83126c2c6981c936ed894a6f159b", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3.mp4": "c712d7fd5dfdb9bb6c2be99f7c796c6f", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3.nfo": "7c0f2a9d38bf617377e474fcb9bf2bc2", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2.mp4": "7ec7ac1923053c4b5653bbfb8924fdc6", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2.nfo": "1f4dec756555ee345cd9d6489b63e070", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1.mp4": "414c243016f406451c790757949173aa", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1.nfo": "f6f704ae3ae0c4055590a147eb425609", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1.mp4": "e2f858efd08ac82749fd01db65d8341e", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1.nfo": "c6e0d368bfe9d70134e5a2ff2d3dccc6", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show by Date/tvshow.nfo": "2439ebc18e46a67064956cb940c992e9" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Plex/upload-year/download-index/is_yt_1_migrated.json b/tests/resources/expected_downloads_summaries/integration/by-date/Plex/upload-year/download-index/is_yt_1_migrated.json new file mode 100644 index 00000000..57c4e26f --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Plex/upload-year/download-index/is_yt_1_migrated.json @@ -0,0 +1,17 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-Best Prebuilt TV Show by Date-download-archive.json": "0011c85c3339ac1301d80be2f3330e67", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000001 - Mock Entry 20-3.mp4": "1d0714fb3ca4d31a0f88492a06a6142d", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000002 - Mock Entry 20-2.mp4": "a8f3f8580989f3927606bf6060a64e30", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e000003 - Mock Entry 20-1.mp4": "265b1104b382fd157a123842e49fcdfd", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e000004 - Mock Entry 21-1.mp4": "09fa4599fd48836c6c0da0760c306006", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/by-date/Plex/upload-year/upload-month-day/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/by-date/Plex/upload-year/upload-month-day/is_yt_1.json new file mode 100644 index 00000000..33cbc2b5 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/by-date/Plex/upload-year/upload-month-day/is_yt_1.json @@ -0,0 +1,17 @@ +{ + "Best Prebuilt TV Show by Date/.ytdl-sub-subscription_test-download-archive.json": "6cd67e6b935bc5b2521f6ed0fa2ea2ed", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080701 - Mock Entry 20-3.mp4": "c712d7fd5dfdb9bb6c2be99f7c796c6f", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080801 - Mock Entry 20-2.mp4": "7ec7ac1923053c4b5653bbfb8924fdc6", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2020/s2020.e080802 - Mock Entry 20-1.mp4": "414c243016f406451c790757949173aa", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show by Date/Season 2021/s2021.e080801 - Mock Entry 21-1.mp4": "e2f858efd08ac82749fd01db65d8341e", + "Best Prebuilt TV Show by Date/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show by Date/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/playlist-index-reversed/s_1/is_yt_1_migrated.json b/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/playlist-index-reversed/s_1/is_yt_1_migrated.json new file mode 100644 index 00000000..622ac651 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/playlist-index-reversed/s_1/is_yt_1_migrated.json @@ -0,0 +1,23 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json": "809885e6c29bba06215b840516628090", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.mp4": "e107a93fa177c5f8594ccc3e023db8e8", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.nfo": "ddf2763f976aaa79199bddbfd3b66501", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.mp4": "2788e6b165908e6d52d7d771859b085e", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.nfo": "cda58b9d5b7ee05d5e4d5144ebfe0f94", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.mp4": "6f0fd7cb3b3c49a8cf7baa6657cb5148", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.nfo": "4d5775492f2731cb5dc04a84ebcb029d", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.mp4": "6a983aa1b5dff65c54bd5f0b78003e07", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.nfo": "2980b224863465a8b8a465c9d381d1f4", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "a3f1061135b7aa0c25e5176a271d32f0" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/playlist-index-reversed/s_2/is_yt_1_migrated.json b/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/playlist-index-reversed/s_2/is_yt_1_migrated.json new file mode 100644 index 00000000..ef34edca --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/playlist-index-reversed/s_2/is_yt_1_migrated.json @@ -0,0 +1,40 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json": "7331c3a7cc0b43cd547b82af4ec35a3f", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.mp4": "6390603e1f9642ea573f25179b42f6af", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.nfo": "42ad110e3f608de3edb94735631d39a7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.mp4": "179e310bd4de1638d84b6da787ff9fa8", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.nfo": "ea4dee97b5bb9e49cb72f0942f851feb", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.mp4": "3c412f47cb87e820138fb8909c672216", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.nfo": "7f71bd60012d850ece38fa644eeddc5e", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.mp4": "8409a144e67c50573bae29bf76431d76", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.nfo": "c487f013b8d5adc399a793bc803b898f", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.mp4": "e107a93fa177c5f8594ccc3e023db8e8", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.nfo": "4eedc1c0e99858530e6228001d024766", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.mp4": "2788e6b165908e6d52d7d771859b085e", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.nfo": "cc1541a65508fcbfd9f024042cb6b6ce", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.mp4": "6f0fd7cb3b3c49a8cf7baa6657cb5148", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.nfo": "d5fa573faf1d29c367117917417df62c", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.mp4": "6a983aa1b5dff65c54bd5f0b78003e07", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.nfo": "6c40cd5d13c8d088e57906e809a591f8", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/season02-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "61943a17325c5188475651ca7c68446d" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/upload-year-month-day/s_1/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/upload-year-month-day/s_1/is_yt_1.json new file mode 100644 index 00000000..c67cdbac --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/upload-year-month-day/s_1/is_yt_1.json @@ -0,0 +1,23 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "ede1deeba072bae50f7f7039deca0543", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3.mp4": "a874866ad7096eb3bf31c72ea3315354", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3.nfo": "043c6de15ab09f32e64414d1f4a8a89c", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2.mp4": "fe6fcf8bfc13c0913ad1509703b447f1", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2.nfo": "4fb018858502fe2c7a0d3dcb89145a8d", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1.mp4": "1d0f1081b402ebea9aeedf75f891c811", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1.nfo": "6ac2ee3bd87b453d56bd90b42bbf52a0", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1.mp4": "e5a844cc2c8fe19037afdf0692731414", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1.nfo": "d54ba1888f0083f8de6f401e399ad379", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "a3f1061135b7aa0c25e5176a271d32f0" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/upload-year-month-day/s_2/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/upload-year-month-day/s_2/is_yt_1.json new file mode 100644 index 00000000..9754c9cb --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Jellyfin/upload-year-month-day/s_2/is_yt_1.json @@ -0,0 +1,40 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "9b9e26ff3d036f450501bf5adb979aeb", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7.mp4": "fab0f2d0a74558a86b3935c6b962ebe3", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7.nfo": "9ceac835c0166bf4f7354106379e6d17", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6.mp4": "9c2569c62ff81f067fe3d91324942c11", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6.nfo": "35f15e5437cae813095fe2ca3bd2ca18", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5.mp4": "921e686edbf2a2e11f8d3eba9ef32592", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5.nfo": "9aa69e4c86bb282ac57b2024ec2fbd34", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4.mp4": "a9fae3eca046637910a6e79aae4a8354", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4.nfo": "709533b6b8f501196db0d98dfe2b2b16", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3.mp4": "a874866ad7096eb3bf31c72ea3315354", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3.nfo": "05f34cd0e6be4b09ea96134faec892f6", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2.mp4": "fe6fcf8bfc13c0913ad1509703b447f1", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2.nfo": "54b4f84daf25626703f7b3a36b0dea49", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1.mp4": "1d0f1081b402ebea9aeedf75f891c811", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1.nfo": "3d2644161e57b94cfac5e95732864cc3", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1.mp4": "e5a844cc2c8fe19037afdf0692731414", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1.nfo": "fd91adb2089d0fcdbb2e568a10ac880e", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/season02-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "61943a17325c5188475651ca7c68446d" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1.json new file mode 100644 index 00000000..edf55e33 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1.json @@ -0,0 +1,23 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "809885e6c29bba06215b840516628090", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.mp4": "e107a93fa177c5f8594ccc3e023db8e8", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.nfo": "ddf2763f976aaa79199bddbfd3b66501", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.mp4": "2788e6b165908e6d52d7d771859b085e", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.nfo": "cda58b9d5b7ee05d5e4d5144ebfe0f94", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.mp4": "6f0fd7cb3b3c49a8cf7baa6657cb5148", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.nfo": "4d5775492f2731cb5dc04a84ebcb029d", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.mp4": "6a983aa1b5dff65c54bd5f0b78003e07", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.nfo": "2980b224863465a8b8a465c9d381d1f4", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "a3f1061135b7aa0c25e5176a271d32f0" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1_migrated.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1_migrated.json new file mode 100644 index 00000000..622ac651 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1_migrated.json @@ -0,0 +1,23 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json": "809885e6c29bba06215b840516628090", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.mp4": "e107a93fa177c5f8594ccc3e023db8e8", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.nfo": "ddf2763f976aaa79199bddbfd3b66501", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.mp4": "2788e6b165908e6d52d7d771859b085e", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.nfo": "cda58b9d5b7ee05d5e4d5144ebfe0f94", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.mp4": "6f0fd7cb3b3c49a8cf7baa6657cb5148", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.nfo": "4d5775492f2731cb5dc04a84ebcb029d", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.mp4": "6a983aa1b5dff65c54bd5f0b78003e07", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.nfo": "2980b224863465a8b8a465c9d381d1f4", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "a3f1061135b7aa0c25e5176a271d32f0" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1.json new file mode 100644 index 00000000..56508d3c --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1.json @@ -0,0 +1,40 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "7331c3a7cc0b43cd547b82af4ec35a3f", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.mp4": "6390603e1f9642ea573f25179b42f6af", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.nfo": "42ad110e3f608de3edb94735631d39a7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.mp4": "179e310bd4de1638d84b6da787ff9fa8", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.nfo": "ea4dee97b5bb9e49cb72f0942f851feb", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.mp4": "3c412f47cb87e820138fb8909c672216", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.nfo": "7f71bd60012d850ece38fa644eeddc5e", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.mp4": "8409a144e67c50573bae29bf76431d76", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.nfo": "c487f013b8d5adc399a793bc803b898f", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.mp4": "e107a93fa177c5f8594ccc3e023db8e8", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.nfo": "4eedc1c0e99858530e6228001d024766", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.mp4": "2788e6b165908e6d52d7d771859b085e", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.nfo": "cc1541a65508fcbfd9f024042cb6b6ce", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.mp4": "6f0fd7cb3b3c49a8cf7baa6657cb5148", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.nfo": "d5fa573faf1d29c367117917417df62c", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.mp4": "6a983aa1b5dff65c54bd5f0b78003e07", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.nfo": "6c40cd5d13c8d088e57906e809a591f8", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/season02-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "61943a17325c5188475651ca7c68446d" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1_migrated.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1_migrated.json new file mode 100644 index 00000000..ef34edca --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1_migrated.json @@ -0,0 +1,40 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json": "7331c3a7cc0b43cd547b82af4ec35a3f", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.mp4": "6390603e1f9642ea573f25179b42f6af", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.nfo": "42ad110e3f608de3edb94735631d39a7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.mp4": "179e310bd4de1638d84b6da787ff9fa8", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.nfo": "ea4dee97b5bb9e49cb72f0942f851feb", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.mp4": "3c412f47cb87e820138fb8909c672216", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.nfo": "7f71bd60012d850ece38fa644eeddc5e", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.mp4": "8409a144e67c50573bae29bf76431d76", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.nfo": "c487f013b8d5adc399a793bc803b898f", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.mp4": "e107a93fa177c5f8594ccc3e023db8e8", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.nfo": "4eedc1c0e99858530e6228001d024766", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.mp4": "2788e6b165908e6d52d7d771859b085e", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.nfo": "cc1541a65508fcbfd9f024042cb6b6ce", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.mp4": "6f0fd7cb3b3c49a8cf7baa6657cb5148", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.nfo": "d5fa573faf1d29c367117917417df62c", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.mp4": "6a983aa1b5dff65c54bd5f0b78003e07", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.nfo": "6c40cd5d13c8d088e57906e809a591f8", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/season02-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "61943a17325c5188475651ca7c68446d" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index/s_1/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index/s_1/is_yt_1.json new file mode 100644 index 00000000..901a9588 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index/s_1/is_yt_1.json @@ -0,0 +1,23 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "4e5ef7394c029e7fe230f82dfe134e4c", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 21-1.mp4": "79cac07b1964b53ff128ef041e3ed10b", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 21-1.nfo": "2a3d9b51221a541fefc29eebffe47cd4", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-1.mp4": "ebd20e58d50951bfcd2316bcf660ba11", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-1.nfo": "ec57b2c78058e18cdc015813e8a14b9d", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-2.mp4": "331068e0bf01c2baaa131c7760a46c02", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-2.nfo": "cd919caf88b0eed99fd2a595c1afa6b1", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-3.mp4": "c646ebe3838f553abb5e9cb1dd96b85f", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-3.nfo": "7c4b28456fe5d398b7dad966eb194421", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "a3f1061135b7aa0c25e5176a271d32f0" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index/s_2/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index/s_2/is_yt_1.json new file mode 100644 index 00000000..85551fe8 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/playlist-index/s_2/is_yt_1.json @@ -0,0 +1,40 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "c7c2427315924db344d4659a60c59bc9", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-4.mp4": "a37dba001208063f0c04b2a681973c1c", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-4.nfo": "7d8f03bdcd8ee66fd1578a86f20365cc", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.mp4": "3c412f47cb87e820138fb8909c672216", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.nfo": "7f71bd60012d850ece38fa644eeddc5e", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-6.mp4": "0bee8e6eb39dbfa8aab81fb78c74ffa0", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-6.nfo": "39996f43e9761247dce614247f99c808", + "Best Prebuilt TV Show Collection/Season 01/s01.e000005 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000005 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000005 - Mock Entry 20-7.mp4": "db88af54bfd315035ce187c2da47f95a", + "Best Prebuilt TV Show Collection/Season 01/s01.e000005 - Mock Entry 20-7.nfo": "cae377877c966dad492eaa3f224b86ba", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 21-1.mp4": "79cac07b1964b53ff128ef041e3ed10b", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 21-1.nfo": "974bb83bd43b9579ab1716f66589ccc1", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-1.mp4": "ebd20e58d50951bfcd2316bcf660ba11", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-1.nfo": "b12dcb09ffad7f23f21d350e1f60f128", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-2.mp4": "331068e0bf01c2baaa131c7760a46c02", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-2.nfo": "e6fd0fc3e95b77c595d1a77c2060fd98", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 20-3.mp4": "c646ebe3838f553abb5e9cb1dd96b85f", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 20-3.nfo": "23386ea27c1e64afcecdb235acb81b79", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/season02-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "61943a17325c5188475651ca7c68446d" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1.json new file mode 100644 index 00000000..e9a36254 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1.json @@ -0,0 +1,23 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "df87dea55d4f4076ab4c075a3bceaa3d", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052498 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052498 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052498 - Mock Entry 20-1.mp4": "170f6eaaa831b92e80ba798b5ae50b60", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052498 - Mock Entry 20-1.nfo": "93e75d3231077883d37c5baac435e182", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052499 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052499 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052499 - Mock Entry 20-2.mp4": "0e1805471b84d94f605f645d9ea94c9e", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052499 - Mock Entry 20-2.nfo": "6d022da37f3545d9ab8608f11b8059cd", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052599 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052599 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052599 - Mock Entry 20-3.mp4": "2b59eab2673eb7f2a0ec91033737634a", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052599 - Mock Entry 20-3.nfo": "f47403746915586d1bd87436210311c5", + "Best Prebuilt TV Show Collection/Season 01/s01.e99052499 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e99052499 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e99052499 - Mock Entry 21-1.mp4": "450737dd9b8307f498eddb2ac7f4e567", + "Best Prebuilt TV Show Collection/Season 01/s01.e99052499 - Mock Entry 21-1.nfo": "5c095683a8c1ae4ff950d4302dc5f06e", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "a3f1061135b7aa0c25e5176a271d32f0" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1.json new file mode 100644 index 00000000..3a8abfa0 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1.json @@ -0,0 +1,40 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "e89ac9f59f9f9ef22e01c9055708b81c", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052699 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052699 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052699 - Mock Entry 20-4.mp4": "1ea0b0274a45288449dddcb1c91a0ac7", + "Best Prebuilt TV Show Collection/Season 01/s01.e100052699 - Mock Entry 20-4.nfo": "f670533b516a47b833cd0ae04bec5877", + "Best Prebuilt TV Show Collection/Season 01/s01.e100062698 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e100062698 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e100062698 - Mock Entry 20-5.mp4": "9b03d1c2e2be9cd75920821accae7774", + "Best Prebuilt TV Show Collection/Season 01/s01.e100062698 - Mock Entry 20-5.nfo": "a223cdfe24fb5d285704351f38db7b46", + "Best Prebuilt TV Show Collection/Season 01/s01.e100062699 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e100062699 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e100062699 - Mock Entry 20-6.mp4": "2240a972bc91ef589b3b0a25f1e41725", + "Best Prebuilt TV Show Collection/Season 01/s01.e100062699 - Mock Entry 20-6.nfo": "bb1cc5d794aa28d43e405179622f2095", + "Best Prebuilt TV Show Collection/Season 01/s01.e100072599 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e100072599 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e100072599 - Mock Entry 20-7.mp4": "5944f9af51010e2783576fdbd2ad5436", + "Best Prebuilt TV Show Collection/Season 01/s01.e100072599 - Mock Entry 20-7.nfo": "dbd5b09d734a10795a11344a5b536b8f", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052498 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052498 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052498 - Mock Entry 20-1.mp4": "170f6eaaa831b92e80ba798b5ae50b60", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052498 - Mock Entry 20-1.nfo": "bb5c4debab0a9f5bbd0a4e303c9bed2d", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052499 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052499 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052499 - Mock Entry 20-2.mp4": "0e1805471b84d94f605f645d9ea94c9e", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052499 - Mock Entry 20-2.nfo": "de6eab4d23acac23213ee25adb8095ac", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052599 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052599 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052599 - Mock Entry 20-3.mp4": "2b59eab2673eb7f2a0ec91033737634a", + "Best Prebuilt TV Show Collection/Season 02/s02.e100052599 - Mock Entry 20-3.nfo": "23e88cb7a059946b12c0702a1f987bc7", + "Best Prebuilt TV Show Collection/Season 02/s02.e99052499 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e99052499 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e99052499 - Mock Entry 21-1.mp4": "450737dd9b8307f498eddb2ac7f4e567", + "Best Prebuilt TV Show Collection/Season 02/s02.e99052499 - Mock Entry 21-1.nfo": "ee3a0c5681e7bf7923f72c323e7a9795", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/season02-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "61943a17325c5188475651ca7c68446d" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1.json new file mode 100644 index 00000000..8eb2de94 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1.json @@ -0,0 +1,23 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "8f0390db6223f1c48072c28aabdc4162", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080701 - Mock Entry 20-3.mp4": "680b08a1e5032d89188def2784e62146", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080701 - Mock Entry 20-3.nfo": "2ecfb16f4216df21e9485b90b14e355f", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080801 - Mock Entry 20-2.mp4": "3c0dcdd38605f032c98aac9068732329", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080801 - Mock Entry 20-2.nfo": "090cfb9795b2ddd210afb93873cb60ce", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080802 - Mock Entry 20-1.mp4": "29d7648807690a4af93541ae340dd7bc", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080802 - Mock Entry 20-1.nfo": "e4aa8129a961c47e3151062b95f39b73", + "Best Prebuilt TV Show Collection/Season 01/s01.e01080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e01080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e01080801 - Mock Entry 21-1.mp4": "9abd6ecaf194553e9486e1bf02f552cf", + "Best Prebuilt TV Show Collection/Season 01/s01.e01080801 - Mock Entry 21-1.nfo": "34704ea06cbdfaa1c9939e061fd1633a", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "a3f1061135b7aa0c25e5176a271d32f0" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1.json new file mode 100644 index 00000000..1edba6fc --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1.json @@ -0,0 +1,40 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "b6ee943d41ca8b0f9b54bb9cb04da7de", + "Best Prebuilt TV Show Collection/Season 01/s01.e00060601 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e00060601 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e00060601 - Mock Entry 20-7.mp4": "a75f9d2b28d82b78ae30da3962f57f61", + "Best Prebuilt TV Show Collection/Season 01/s01.e00060601 - Mock Entry 20-7.nfo": "29b6f491d1d7cb5e62f6a3dd290ba74a", + "Best Prebuilt TV Show Collection/Season 01/s01.e00070601 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e00070601 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e00070601 - Mock Entry 20-6.mp4": "18226f783f8c3fac3089d61307bee3ba", + "Best Prebuilt TV Show Collection/Season 01/s01.e00070601 - Mock Entry 20-6.nfo": "8ce2b32b9371cc45908acb73a5c5d5e6", + "Best Prebuilt TV Show Collection/Season 01/s01.e00070602 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e00070602 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e00070602 - Mock Entry 20-5.mp4": "180e86031e6af3ea1a54714460a6bf1f", + "Best Prebuilt TV Show Collection/Season 01/s01.e00070602 - Mock Entry 20-5.nfo": "4567dfd30fc7287eea63f28e465d9c54", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080601 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080601 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080601 - Mock Entry 20-4.mp4": "09fba17ad8bf9deb8157ff83880185c3", + "Best Prebuilt TV Show Collection/Season 01/s01.e00080601 - Mock Entry 20-4.nfo": "0fc29c2520ae80c4390a5b68d02e6794", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080701 - Mock Entry 20-3.mp4": "680b08a1e5032d89188def2784e62146", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080701 - Mock Entry 20-3.nfo": "7276a8c14720f76cf4e5e624eb1dea2d", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080801 - Mock Entry 20-2.mp4": "3c0dcdd38605f032c98aac9068732329", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080801 - Mock Entry 20-2.nfo": "028a4161b6bccda2cf8d2a0a3ff13f4f", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080802 - Mock Entry 20-1.mp4": "29d7648807690a4af93541ae340dd7bc", + "Best Prebuilt TV Show Collection/Season 02/s02.e00080802 - Mock Entry 20-1.nfo": "7303574842c9409a6521486ddeb7cde9", + "Best Prebuilt TV Show Collection/Season 02/s02.e01080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e01080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e01080801 - Mock Entry 21-1.mp4": "9abd6ecaf194553e9486e1bf02f552cf", + "Best Prebuilt TV Show Collection/Season 02/s02.e01080801 - Mock Entry 21-1.nfo": "5b9d248c2fd2460030aa590d8660d957", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/season02-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "61943a17325c5188475651ca7c68446d" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_1/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_1/is_yt_1.json new file mode 100644 index 00000000..077b159a --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_1/is_yt_1.json @@ -0,0 +1,23 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "e26598ffd47b150e6bf09e5490546e94", + "Best Prebuilt TV Show Collection/Season 01/s01.e79052499 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e79052499 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e79052499 - Mock Entry 21-1.mp4": "cda96931a134eeb6e05e0b5aec03ddfe", + "Best Prebuilt TV Show Collection/Season 01/s01.e79052499 - Mock Entry 21-1.nfo": "a7e21040a3fcb264f287e4eba1853f94", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052498 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052498 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052498 - Mock Entry 20-1.mp4": "a7f2ca37b817da0512af297b5652e5e8", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052498 - Mock Entry 20-1.nfo": "78c08ad76d004a74cdba012f0b746c22", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052499 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052499 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052499 - Mock Entry 20-2.mp4": "35ebd30923d8f321e023281ec6ef4e6f", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052499 - Mock Entry 20-2.nfo": "d9031d8608d12742c40a3279138c8371", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052599 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052599 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052599 - Mock Entry 20-3.mp4": "204ce9c28ab7b69c659f0f76b6c75bfa", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052599 - Mock Entry 20-3.nfo": "74bd8dc59c5b76ae112d90638977c464", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "a3f1061135b7aa0c25e5176a271d32f0" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_2/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_2/is_yt_1.json new file mode 100644 index 00000000..ba4303f1 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_2/is_yt_1.json @@ -0,0 +1,40 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "2990d95213df5a6c87825a28daa970f4", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052699 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052699 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052699 - Mock Entry 20-4.mp4": "611d34cf77a2123181a7c4096623f6b9", + "Best Prebuilt TV Show Collection/Season 01/s01.e80052699 - Mock Entry 20-4.nfo": "0242d92e5e0d26745948b42c25eecfba", + "Best Prebuilt TV Show Collection/Season 01/s01.e80062698 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e80062698 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e80062698 - Mock Entry 20-5.mp4": "f09ce6574a040cea52b7177f74b9ccea", + "Best Prebuilt TV Show Collection/Season 01/s01.e80062698 - Mock Entry 20-5.nfo": "52b17bcad30adb6eaef4c3b21c1af76b", + "Best Prebuilt TV Show Collection/Season 01/s01.e80062699 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e80062699 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e80062699 - Mock Entry 20-6.mp4": "435692c75994d929807b5f09726728ad", + "Best Prebuilt TV Show Collection/Season 01/s01.e80062699 - Mock Entry 20-6.nfo": "31fb72d089fd680fea1340f3d3c41d64", + "Best Prebuilt TV Show Collection/Season 01/s01.e80072599 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e80072599 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e80072599 - Mock Entry 20-7.mp4": "613c386e00bf1c87e4f1d1acbbd98281", + "Best Prebuilt TV Show Collection/Season 01/s01.e80072599 - Mock Entry 20-7.nfo": "df65227ee260219883ff618c9fbdf1d4", + "Best Prebuilt TV Show Collection/Season 02/s02.e79052499 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e79052499 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e79052499 - Mock Entry 21-1.mp4": "cda96931a134eeb6e05e0b5aec03ddfe", + "Best Prebuilt TV Show Collection/Season 02/s02.e79052499 - Mock Entry 21-1.nfo": "0e4ea058d6a1e8760c80d3a02d25aafc", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052498 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052498 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052498 - Mock Entry 20-1.mp4": "a7f2ca37b817da0512af297b5652e5e8", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052498 - Mock Entry 20-1.nfo": "1095322364e512dff963a44b2beffe30", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052499 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052499 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052499 - Mock Entry 20-2.mp4": "35ebd30923d8f321e023281ec6ef4e6f", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052499 - Mock Entry 20-2.nfo": "5130c71d99f1c0726fee8cb8c9d82ba7", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052599 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052599 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052599 - Mock Entry 20-3.mp4": "204ce9c28ab7b69c659f0f76b6c75bfa", + "Best Prebuilt TV Show Collection/Season 02/s02.e80052599 - Mock Entry 20-3.nfo": "bde2a5401c49b58de0eacea4145d91ae", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/season02-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "61943a17325c5188475651ca7c68446d" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day/s_1/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day/s_1/is_yt_1.json new file mode 100644 index 00000000..c67cdbac --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day/s_1/is_yt_1.json @@ -0,0 +1,23 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "ede1deeba072bae50f7f7039deca0543", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3.mp4": "a874866ad7096eb3bf31c72ea3315354", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3.nfo": "043c6de15ab09f32e64414d1f4a8a89c", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2.mp4": "fe6fcf8bfc13c0913ad1509703b447f1", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2.nfo": "4fb018858502fe2c7a0d3dcb89145a8d", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1.mp4": "1d0f1081b402ebea9aeedf75f891c811", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1.nfo": "6ac2ee3bd87b453d56bd90b42bbf52a0", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1.mp4": "e5a844cc2c8fe19037afdf0692731414", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1.nfo": "d54ba1888f0083f8de6f401e399ad379", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "a3f1061135b7aa0c25e5176a271d32f0" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day/s_2/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day/s_2/is_yt_1.json new file mode 100644 index 00000000..9754c9cb --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Kodi/upload-year-month-day/s_2/is_yt_1.json @@ -0,0 +1,40 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "9b9e26ff3d036f450501bf5adb979aeb", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7.mp4": "fab0f2d0a74558a86b3935c6b962ebe3", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7.nfo": "9ceac835c0166bf4f7354106379e6d17", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6.mp4": "9c2569c62ff81f067fe3d91324942c11", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6.nfo": "35f15e5437cae813095fe2ca3bd2ca18", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5.mp4": "921e686edbf2a2e11f8d3eba9ef32592", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5.nfo": "9aa69e4c86bb282ac57b2024ec2fbd34", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4.mp4": "a9fae3eca046637910a6e79aae4a8354", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4.nfo": "709533b6b8f501196db0d98dfe2b2b16", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3.mp4": "a874866ad7096eb3bf31c72ea3315354", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3.nfo": "05f34cd0e6be4b09ea96134faec892f6", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2.mp4": "fe6fcf8bfc13c0913ad1509703b447f1", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2.nfo": "54b4f84daf25626703f7b3a36b0dea49", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1.mp4": "1d0f1081b402ebea9aeedf75f891c811", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1.nfo": "3d2644161e57b94cfac5e95732864cc3", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1.mp4": "e5a844cc2c8fe19037afdf0692731414", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1.nfo": "fd91adb2089d0fcdbb2e568a10ac880e", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a", + "Best Prebuilt TV Show Collection/season01-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/season02-poster.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/tvshow.nfo": "61943a17325c5188475651ca7c68446d" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Plex/playlist-index-reversed/s_1/is_yt_1_migrated.json b/tests/resources/expected_downloads_summaries/integration/collection/Plex/playlist-index-reversed/s_1/is_yt_1_migrated.json new file mode 100644 index 00000000..bae82de6 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Plex/playlist-index-reversed/s_1/is_yt_1_migrated.json @@ -0,0 +1,18 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json": "ba324b2c6532fe9d8fbe03e0dd6d0410", + "Best Prebuilt TV Show Collection/Season 01/Season01.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-3.mp4": "e107a93fa177c5f8594ccc3e023db8e8", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-2.mp4": "2788e6b165908e6d52d7d771859b085e", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-1.mp4": "6f0fd7cb3b3c49a8cf7baa6657cb5148", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 21-1.mp4": "6a983aa1b5dff65c54bd5f0b78003e07", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Plex/playlist-index-reversed/s_2/is_yt_1_migrated.json b/tests/resources/expected_downloads_summaries/integration/collection/Plex/playlist-index-reversed/s_2/is_yt_1_migrated.json new file mode 100644 index 00000000..eb4cb28e --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Plex/playlist-index-reversed/s_2/is_yt_1_migrated.json @@ -0,0 +1,31 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json": "6ec6913047c175cedcbd41cb3ef402fc", + "Best Prebuilt TV Show Collection/Season 01/Season01.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000001 - Mock Entry 20-7.mp4": "6390603e1f9642ea573f25179b42f6af", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000002 - Mock Entry 20-6.mp4": "179e310bd4de1638d84b6da787ff9fa8", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000003 - Mock Entry 20-5.mp4": "3c412f47cb87e820138fb8909c672216", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e000004 - Mock Entry 20-4.mp4": "8409a144e67c50573bae29bf76431d76", + "Best Prebuilt TV Show Collection/Season 02/Season02.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000001 - Mock Entry 20-3.mp4": "e107a93fa177c5f8594ccc3e023db8e8", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000002 - Mock Entry 20-2.mp4": "2788e6b165908e6d52d7d771859b085e", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000003 - Mock Entry 20-1.mp4": "6f0fd7cb3b3c49a8cf7baa6657cb5148", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e000004 - Mock Entry 21-1.mp4": "6a983aa1b5dff65c54bd5f0b78003e07", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Plex/upload-year-month-day/s_1/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Plex/upload-year-month-day/s_1/is_yt_1.json new file mode 100644 index 00000000..3ebd92c2 --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Plex/upload-year-month-day/s_1/is_yt_1.json @@ -0,0 +1,18 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "87f96a1e055447383bfea0a12680438d", + "Best Prebuilt TV Show Collection/Season 01/Season01.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080701 - Mock Entry 20-3.mp4": "a874866ad7096eb3bf31c72ea3315354", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080801 - Mock Entry 20-2.mp4": "fe6fcf8bfc13c0913ad1509703b447f1", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080802 - Mock Entry 20-1.mp4": "1d0f1081b402ebea9aeedf75f891c811", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e21080801 - Mock Entry 21-1.mp4": "e5a844cc2c8fe19037afdf0692731414", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a" +} \ No newline at end of file diff --git a/tests/resources/expected_downloads_summaries/integration/collection/Plex/upload-year-month-day/s_2/is_yt_1.json b/tests/resources/expected_downloads_summaries/integration/collection/Plex/upload-year-month-day/s_2/is_yt_1.json new file mode 100644 index 00000000..47a0f4ac --- /dev/null +++ b/tests/resources/expected_downloads_summaries/integration/collection/Plex/upload-year-month-day/s_2/is_yt_1.json @@ -0,0 +1,31 @@ +{ + "Best Prebuilt TV Show Collection/.ytdl-sub-subscription_test-download-archive.json": "04d06f293fcb5164266bedf66b4d4264", + "Best Prebuilt TV Show Collection/Season 01/Season01.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20060601 - Mock Entry 20-7.mp4": "fab0f2d0a74558a86b3935c6b962ebe3", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070601 - Mock Entry 20-6.mp4": "9c2569c62ff81f067fe3d91324942c11", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20070602 - Mock Entry 20-5.mp4": "921e686edbf2a2e11f8d3eba9ef32592", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 01/s01.e20080601 - Mock Entry 20-4.mp4": "a9fae3eca046637910a6e79aae4a8354", + "Best Prebuilt TV Show Collection/Season 02/Season02.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080701 - Mock Entry 20-3.mp4": "a874866ad7096eb3bf31c72ea3315354", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080801 - Mock Entry 20-2.mp4": "fe6fcf8bfc13c0913ad1509703b447f1", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e20080802 - Mock Entry 20-1.mp4": "1d0f1081b402ebea9aeedf75f891c811", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1-thumb.jpg": "e80c508c4818454300133fe1dc1a9cd7", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1.info.json": "INFO_JSON", + "Best Prebuilt TV Show Collection/Season 02/s02.e21080801 - Mock Entry 21-1.mp4": "e5a844cc2c8fe19037afdf0692731414", + "Best Prebuilt TV Show Collection/fanart.jpg": "15c9a67b554f415a662fdf7a3340cd61", + "Best Prebuilt TV Show Collection/poster.jpg": "0b0fdbe56bab3e3fdda18730588d742a" +} \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/by-date/Jellyfin/upload-year/upload-month-day/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Jellyfin/upload-year/upload-month-day/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt b/tests/resources/transaction_log_summaries/integration/by-date/Jellyfin/upload-year/upload-month-day/is_yt_1_reformatted_to_upload-year.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Jellyfin/upload-year/upload-month-day/is_yt_1_reformatted_to_upload-year.txt diff --git a/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1.txt new file mode 100644 index 00000000..2515d402 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1.txt @@ -0,0 +1,130 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json + fanart.jpg + poster.jpg + tvshow.nfo + NFO tags: + tvshow: + genre: ytdl-sub + mpaa: TV-14 + title: Best Prebuilt TV Show by Date +{output_directory}/Season 200008 + s200008.e0701 - Mock Entry 20-3-thumb.jpg + s200008.e0701 - Mock Entry 20-3.info.json + s200008.e0701 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-07 + episode_id: 701 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-3.com + + The Description + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s200008.e0701 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2000-08-07 + episode: 701 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 200008 + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s200008.e0801 - Mock Entry 20-2-thumb.jpg + s200008.e0801 - Mock Entry 20-2.info.json + s200008.e0801 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 801 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-2.com + + The Description + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s200008.e0801 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 801 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 200008 + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s200008.e0802 - Mock Entry 20-1-thumb.jpg + s200008.e0802 - Mock Entry 20-1.info.json + s200008.e0802 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 802 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-1.com + + The Description + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s200008.e0802 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 802 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 200008 + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 +{output_directory}/Season 200108 + s200108.e0801 - Mock Entry 21-1-thumb.jpg + s200108.e0801 - Mock Entry 21-1.info.json + s200108.e0801 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2001-08-08 + episode_id: 801 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://21-1.com + + The Description + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 + s200108.e0801 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2001-08-08 + episode: 801 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 200108 + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1_reformatted_to_upload-year.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1_reformatted_to_upload-year.txt new file mode 100644 index 00000000..b4622a19 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year-month/release-day/is_yt_1_reformatted_to_upload-year.txt @@ -0,0 +1,145 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-Best Prebuilt TV Show by Date-download-archive.json +{output_directory}/Season 2020 + s2020.e000001 - Mock Entry 20-3-thumb.jpg + s2020.e000001 - Mock Entry 20-3.info.json + s2020.e000001 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-07 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-3.com + + The Description + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s2020.e000001 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2020-08-07 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2020 + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s2020.e000002 - Mock Entry 20-2-thumb.jpg + s2020.e000002 - Mock Entry 20-2.info.json + s2020.e000002 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-2.com + + The Description + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s2020.e000002 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2020 + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s2020.e000003 - Mock Entry 20-1-thumb.jpg + s2020.e000003 - Mock Entry 20-1.info.json + s2020.e000003 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-1.com + + The Description + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s2020.e000003 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2020 + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 +{output_directory}/Season 2021 + s2021.e000004 - Mock Entry 21-1-thumb.jpg + s2021.e000004 - Mock Entry 21-1.info.json + s2021.e000004 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2021-08-08 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://21-1.com + + The Description + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + s2021.e000004 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2021-08-08 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2021 + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + +Files removed: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json +{output_directory}/Season 200008 + s200008.e0701 - Mock Entry 20-3-thumb.jpg + s200008.e0701 - Mock Entry 20-3.info.json + s200008.e0701 - Mock Entry 20-3.mp4 + s200008.e0701 - Mock Entry 20-3.nfo + s200008.e0801 - Mock Entry 20-2-thumb.jpg + s200008.e0801 - Mock Entry 20-2.info.json + s200008.e0801 - Mock Entry 20-2.mp4 + s200008.e0801 - Mock Entry 20-2.nfo + s200008.e0802 - Mock Entry 20-1-thumb.jpg + s200008.e0802 - Mock Entry 20-1.info.json + s200008.e0802 - Mock Entry 20-1.mp4 + s200008.e0802 - Mock Entry 20-1.nfo +{output_directory}/Season 200108 + s200108.e0801 - Mock Entry 21-1-thumb.jpg + s200108.e0801 - Mock Entry 21-1.info.json + s200108.e0801 - Mock Entry 21-1.mp4 + s200108.e0801 - Mock Entry 21-1.nfo \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1.txt new file mode 100644 index 00000000..b3777c57 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1.txt @@ -0,0 +1,130 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json + fanart.jpg + poster.jpg + tvshow.nfo + NFO tags: + tvshow: + genre: ytdl-sub + mpaa: TV-14 + title: Best Prebuilt TV Show by Date +{output_directory}/Season 2000 + s2000.e000001 - Mock Entry 20-3-thumb.jpg + s2000.e000001 - Mock Entry 20-3.info.json + s2000.e000001 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-07 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-3.com + + The Description + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s2000.e000001 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2000-08-07 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2000 + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s2000.e000002 - Mock Entry 20-2-thumb.jpg + s2000.e000002 - Mock Entry 20-2.info.json + s2000.e000002 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-2.com + + The Description + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s2000.e000002 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2000 + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s2000.e000003 - Mock Entry 20-1-thumb.jpg + s2000.e000003 - Mock Entry 20-1.info.json + s2000.e000003 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-1.com + + The Description + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s2000.e000003 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2000 + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 +{output_directory}/Season 2001 + s2001.e000004 - Mock Entry 21-1-thumb.jpg + s2001.e000004 - Mock Entry 21-1.info.json + s2001.e000004 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2001-08-08 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://21-1.com + + The Description + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 + s2001.e000004 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2001-08-08 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2001 + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1_reformatted_to_upload-year.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1_reformatted_to_upload-year.txt new file mode 100644 index 00000000..1a539b9a --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/download-index/is_yt_1_reformatted_to_upload-year.txt @@ -0,0 +1,145 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-Best Prebuilt TV Show by Date-download-archive.json +{output_directory}/Season 2020 + s2020.e000001 - Mock Entry 20-3-thumb.jpg + s2020.e000001 - Mock Entry 20-3.info.json + s2020.e000001 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-07 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-3.com + + The Description + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s2020.e000001 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2020-08-07 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2020 + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s2020.e000002 - Mock Entry 20-2-thumb.jpg + s2020.e000002 - Mock Entry 20-2.info.json + s2020.e000002 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-2.com + + The Description + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s2020.e000002 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2020 + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s2020.e000003 - Mock Entry 20-1-thumb.jpg + s2020.e000003 - Mock Entry 20-1.info.json + s2020.e000003 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-1.com + + The Description + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s2020.e000003 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2020 + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 +{output_directory}/Season 2021 + s2021.e000004 - Mock Entry 21-1-thumb.jpg + s2021.e000004 - Mock Entry 21-1.info.json + s2021.e000004 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2021-08-08 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://21-1.com + + The Description + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + s2021.e000004 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2021-08-08 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2021 + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + +Files removed: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json +{output_directory}/Season 2000 + s2000.e000001 - Mock Entry 20-3-thumb.jpg + s2000.e000001 - Mock Entry 20-3.info.json + s2000.e000001 - Mock Entry 20-3.mp4 + s2000.e000001 - Mock Entry 20-3.nfo + s2000.e000002 - Mock Entry 20-2-thumb.jpg + s2000.e000002 - Mock Entry 20-2.info.json + s2000.e000002 - Mock Entry 20-2.mp4 + s2000.e000002 - Mock Entry 20-2.nfo + s2000.e000003 - Mock Entry 20-1-thumb.jpg + s2000.e000003 - Mock Entry 20-1.info.json + s2000.e000003 - Mock Entry 20-1.mp4 + s2000.e000003 - Mock Entry 20-1.nfo +{output_directory}/Season 2001 + s2001.e000004 - Mock Entry 21-1-thumb.jpg + s2001.e000004 - Mock Entry 21-1.info.json + s2001.e000004 - Mock Entry 21-1.mp4 + s2001.e000004 - Mock Entry 21-1.nfo \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1.txt new file mode 100644 index 00000000..d8106b98 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1.txt @@ -0,0 +1,130 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json + fanart.jpg + poster.jpg + tvshow.nfo + NFO tags: + tvshow: + genre: ytdl-sub + mpaa: TV-14 + title: Best Prebuilt TV Show by Date +{output_directory}/Season 2000 + s2000.e14698 - Mock Entry 20-1-thumb.jpg + s2000.e14698 - Mock Entry 20-1.info.json + s2000.e14698 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 14698 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-1.com + + The Description + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s2000.e14698 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 14698 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2000 + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s2000.e14699 - Mock Entry 20-2-thumb.jpg + s2000.e14699 - Mock Entry 20-2.info.json + s2000.e14699 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 14699 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-2.com + + The Description + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s2000.e14699 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 14699 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2000 + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s2000.e14799 - Mock Entry 20-3-thumb.jpg + s2000.e14799 - Mock Entry 20-3.info.json + s2000.e14799 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-07 + episode_id: 14799 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-3.com + + The Description + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s2000.e14799 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2000-08-07 + episode: 14799 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2000 + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 +{output_directory}/Season 2001 + s2001.e14699 - Mock Entry 21-1-thumb.jpg + s2001.e14699 - Mock Entry 21-1.info.json + s2001.e14699 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2001-08-08 + episode_id: 14699 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://21-1.com + + The Description + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 + s2001.e14699 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2001-08-08 + episode: 14699 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2001 + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1_reformatted_to_upload-year.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1_reformatted_to_upload-year.txt new file mode 100644 index 00000000..64e36c64 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day-reversed/is_yt_1_reformatted_to_upload-year.txt @@ -0,0 +1,145 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-Best Prebuilt TV Show by Date-download-archive.json +{output_directory}/Season 2020 + s2020.e000001 - Mock Entry 20-3-thumb.jpg + s2020.e000001 - Mock Entry 20-3.info.json + s2020.e000001 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-07 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-3.com + + The Description + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s2020.e000001 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2020-08-07 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2020 + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s2020.e000002 - Mock Entry 20-2-thumb.jpg + s2020.e000002 - Mock Entry 20-2.info.json + s2020.e000002 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-2.com + + The Description + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s2020.e000002 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2020 + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s2020.e000003 - Mock Entry 20-1-thumb.jpg + s2020.e000003 - Mock Entry 20-1.info.json + s2020.e000003 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-1.com + + The Description + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s2020.e000003 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2020 + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 +{output_directory}/Season 2021 + s2021.e000004 - Mock Entry 21-1-thumb.jpg + s2021.e000004 - Mock Entry 21-1.info.json + s2021.e000004 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2021-08-08 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://21-1.com + + The Description + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + s2021.e000004 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2021-08-08 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2021 + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + +Files removed: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json +{output_directory}/Season 2000 + s2000.e14698 - Mock Entry 20-1-thumb.jpg + s2000.e14698 - Mock Entry 20-1.info.json + s2000.e14698 - Mock Entry 20-1.mp4 + s2000.e14698 - Mock Entry 20-1.nfo + s2000.e14699 - Mock Entry 20-2-thumb.jpg + s2000.e14699 - Mock Entry 20-2.info.json + s2000.e14699 - Mock Entry 20-2.mp4 + s2000.e14699 - Mock Entry 20-2.nfo + s2000.e14799 - Mock Entry 20-3-thumb.jpg + s2000.e14799 - Mock Entry 20-3.info.json + s2000.e14799 - Mock Entry 20-3.mp4 + s2000.e14799 - Mock Entry 20-3.nfo +{output_directory}/Season 2001 + s2001.e14699 - Mock Entry 21-1-thumb.jpg + s2001.e14699 - Mock Entry 21-1.info.json + s2001.e14699 - Mock Entry 21-1.mp4 + s2001.e14699 - Mock Entry 21-1.nfo \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1.txt new file mode 100644 index 00000000..364055d5 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1.txt @@ -0,0 +1,130 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json + fanart.jpg + poster.jpg + tvshow.nfo + NFO tags: + tvshow: + genre: ytdl-sub + mpaa: TV-14 + title: Best Prebuilt TV Show by Date +{output_directory}/Season 2000 + s2000.e080701 - Mock Entry 20-3-thumb.jpg + s2000.e080701 - Mock Entry 20-3.info.json + s2000.e080701 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-07 + episode_id: 80701 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-3.com + + The Description + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s2000.e080701 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2000-08-07 + episode: 80701 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2000 + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s2000.e080801 - Mock Entry 20-2-thumb.jpg + s2000.e080801 - Mock Entry 20-2.info.json + s2000.e080801 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 80801 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-2.com + + The Description + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s2000.e080801 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 80801 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2000 + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s2000.e080802 - Mock Entry 20-1-thumb.jpg + s2000.e080802 - Mock Entry 20-1.info.json + s2000.e080802 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 80802 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-1.com + + The Description + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s2000.e080802 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 80802 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2000 + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 +{output_directory}/Season 2001 + s2001.e080801 - Mock Entry 21-1-thumb.jpg + s2001.e080801 - Mock Entry 21-1.info.json + s2001.e080801 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2001-08-08 + episode_id: 80801 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://21-1.com + + The Description + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 + s2001.e080801 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2001-08-08 + episode: 80801 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2001 + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1_reformatted_to_upload-year.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1_reformatted_to_upload-year.txt new file mode 100644 index 00000000..ef01d6ff --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/release-year/release-month-day/is_yt_1_reformatted_to_upload-year.txt @@ -0,0 +1,145 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-Best Prebuilt TV Show by Date-download-archive.json +{output_directory}/Season 2020 + s2020.e000001 - Mock Entry 20-3-thumb.jpg + s2020.e000001 - Mock Entry 20-3.info.json + s2020.e000001 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-07 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-3.com + + The Description + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s2020.e000001 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2020-08-07 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2020 + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s2020.e000002 - Mock Entry 20-2-thumb.jpg + s2020.e000002 - Mock Entry 20-2.info.json + s2020.e000002 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-2.com + + The Description + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s2020.e000002 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2020 + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s2020.e000003 - Mock Entry 20-1-thumb.jpg + s2020.e000003 - Mock Entry 20-1.info.json + s2020.e000003 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://20-1.com + + The Description + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s2020.e000003 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2020 + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 +{output_directory}/Season 2021 + s2021.e000004 - Mock Entry 21-1-thumb.jpg + s2021.e000004 - Mock Entry 21-1.info.json + s2021.e000004 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2021-08-08 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show by Date + synopsis: + https://21-1.com + + The Description + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + s2021.e000004 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2021-08-08 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2021 + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + +Files removed: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json +{output_directory}/Season 2000 + s2000.e080701 - Mock Entry 20-3-thumb.jpg + s2000.e080701 - Mock Entry 20-3.info.json + s2000.e080701 - Mock Entry 20-3.mp4 + s2000.e080701 - Mock Entry 20-3.nfo + s2000.e080801 - Mock Entry 20-2-thumb.jpg + s2000.e080801 - Mock Entry 20-2.info.json + s2000.e080801 - Mock Entry 20-2.mp4 + s2000.e080801 - Mock Entry 20-2.nfo + s2000.e080802 - Mock Entry 20-1-thumb.jpg + s2000.e080802 - Mock Entry 20-1.info.json + s2000.e080802 - Mock Entry 20-1.mp4 + s2000.e080802 - Mock Entry 20-1.nfo +{output_directory}/Season 2001 + s2001.e080801 - Mock Entry 21-1-thumb.jpg + s2001.e080801 - Mock Entry 21-1.info.json + s2001.e080801 - Mock Entry 21-1.mp4 + s2001.e080801 - Mock Entry 21-1.nfo \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year_month__episode_by_day/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year-month/upload-day/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year_month__episode_by_day/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year-month/upload-day/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year_month__episode_by_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year-month/upload-day/is_yt_1_reformatted_to_upload-year.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year_month__episode_by_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year-month/upload-day/is_yt_1_reformatted_to_upload-year.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_download_index/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_download_index/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_download_index/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1_reformatted_to_upload-year.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_download_index/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/download-index/is_yt_1_reformatted_to_upload-year.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day_reversed/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/upload-month-day-reversed/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day_reversed/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/upload-month-day-reversed/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day_reversed/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/upload-month-day-reversed/is_yt_1_reformatted_to_upload-year.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day_reversed/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/upload-month-day-reversed/is_yt_1_reformatted_to_upload-year.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/upload-month-day/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/upload-month-day/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt b/tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/upload-month-day/is_yt_1_reformatted_to_upload-year.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Kodi/upload-year/upload-month-day/is_yt_1_reformatted_to_upload-year.txt diff --git a/tests/resources/transaction_log_summaries/unit/plex_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/by-date/Plex/upload-year/upload-month-day/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/plex_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Plex/upload-year/upload-month-day/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/plex_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt b/tests/resources/transaction_log_summaries/integration/by-date/Plex/upload-year/upload-month-day/is_yt_1_reformatted_to_upload-year.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/plex_tv_show_by_date/season_by_year__episode_by_month_day/is_yt_1_reformatted_to_season_by_year__episode_by_download_index.txt rename to tests/resources/transaction_log_summaries/integration/by-date/Plex/upload-year/upload-month-day/is_yt_1_reformatted_to_upload-year.txt diff --git a/tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Jellyfin/upload-year-month-day/s_1/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Jellyfin/upload-year-month-day/s_1/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Jellyfin/upload-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Jellyfin/upload-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Jellyfin/upload-year-month-day/s_2/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Jellyfin/upload-year-month-day/s_2/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Jellyfin/upload-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/jellyfin_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Jellyfin/upload-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1.txt new file mode 100644 index 00000000..7192b6c7 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1.txt @@ -0,0 +1 @@ +No new, modified, or removed files in '{output_directory}' \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt new file mode 100644 index 00000000..2d20fc29 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/collection/Kodi/does-not-exist/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt @@ -0,0 +1,4 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed/s_1/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed/s_1/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index-reversed/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed/s_2/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed/s_2/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index_reversed/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index-reversed/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index/s_1/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index/s_1/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index/s_1/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index/s_1/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index/s_2/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index/s_2/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index/s_2/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index/s_2/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_playlist_index/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/playlist-index/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1.txt new file mode 100644 index 00000000..0e0cc670 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1.txt @@ -0,0 +1,134 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json + fanart.jpg + poster.jpg + season01-poster.jpg + tvshow.nfo + NFO tags: + tvshow: + genre: ytdl-sub + mpaa: TV-14 + namedseason: + attributes: + number: 1 + tag: Named Season 1 + title: Best Prebuilt TV Show Collection +{output_directory}/Season 01 + s01.e100052498 - Mock Entry 20-1-thumb.jpg + s01.e100052498 - Mock Entry 20-1.info.json + s01.e100052498 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 100052498 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-1.com + + The Description + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s01.e100052498 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 100052498 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 1 + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s01.e100052499 - Mock Entry 20-2-thumb.jpg + s01.e100052499 - Mock Entry 20-2.info.json + s01.e100052499 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 100052499 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-2.com + + The Description + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s01.e100052499 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 100052499 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 1 + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s01.e100052599 - Mock Entry 20-3-thumb.jpg + s01.e100052599 - Mock Entry 20-3.info.json + s01.e100052599 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-07 + episode_id: 100052599 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-3.com + + The Description + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s01.e100052599 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2000-08-07 + episode: 100052599 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 1 + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s01.e99052499 - Mock Entry 21-1-thumb.jpg + s01.e99052499 - Mock Entry 21-1.info.json + s01.e99052499 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2001-08-08 + episode_id: 99052499 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://21-1.com + + The Description + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 + s01.e99052499 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2001-08-08 + episode: 99052499 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 1 + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt new file mode 100644 index 00000000..a6ff607e --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt @@ -0,0 +1,143 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json +{output_directory}/Season 01 + s01.e000001 - Mock Entry 20-3-thumb.jpg + s01.e000001 - Mock Entry 20-3.info.json + s01.e000001 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-07 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-3.com + + The Description + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s01.e000001 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2020-08-07 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 1 + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s01.e000002 - Mock Entry 20-2-thumb.jpg + s01.e000002 - Mock Entry 20-2.info.json + s01.e000002 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-2.com + + The Description + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s01.e000002 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 1 + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s01.e000003 - Mock Entry 20-1-thumb.jpg + s01.e000003 - Mock Entry 20-1.info.json + s01.e000003 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-1.com + + The Description + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s01.e000003 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 1 + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s01.e000004 - Mock Entry 21-1-thumb.jpg + s01.e000004 - Mock Entry 21-1.info.json + s01.e000004 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2021-08-08 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://21-1.com + + The Description + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + s01.e000004 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2021-08-08 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 1 + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + +Files removed: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json +{output_directory}/Season 01 + s01.e100052498 - Mock Entry 20-1-thumb.jpg + s01.e100052498 - Mock Entry 20-1.info.json + s01.e100052498 - Mock Entry 20-1.mp4 + s01.e100052498 - Mock Entry 20-1.nfo + s01.e100052499 - Mock Entry 20-2-thumb.jpg + s01.e100052499 - Mock Entry 20-2.info.json + s01.e100052499 - Mock Entry 20-2.mp4 + s01.e100052499 - Mock Entry 20-2.nfo + s01.e100052599 - Mock Entry 20-3-thumb.jpg + s01.e100052599 - Mock Entry 20-3.info.json + s01.e100052599 - Mock Entry 20-3.mp4 + s01.e100052599 - Mock Entry 20-3.nfo + s01.e99052499 - Mock Entry 21-1-thumb.jpg + s01.e99052499 - Mock Entry 21-1.info.json + s01.e99052499 - Mock Entry 21-1.mp4 + s01.e99052499 - Mock Entry 21-1.nfo \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1.txt new file mode 100644 index 00000000..135d1231 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1.txt @@ -0,0 +1,257 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json + fanart.jpg + poster.jpg + season01-poster.jpg + season02-poster.jpg + tvshow.nfo + NFO tags: + tvshow: + genre: ytdl-sub + mpaa: TV-14 + namedseason: + - + attributes: + number: 1 + tag: Named Season 1 + - + attributes: + number: 2 + tag: Named Season 2 + title: Best Prebuilt TV Show Collection +{output_directory}/Season 01 + s01.e100052699 - Mock Entry 20-4-thumb.jpg + s01.e100052699 - Mock Entry 20-4.info.json + s01.e100052699 - Mock Entry 20-4.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-06 + episode_id: 100052699 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-4.com + + The Description + title: 2000-08-06 - Mock Entry 20-4 + year: 2000 + s01.e100052699 - Mock Entry 20-4.nfo + NFO tags: + episodedetails: + aired: 2000-08-06 + episode: 100052699 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-4.com + + The Description + season: 1 + title: 2000-08-06 - Mock Entry 20-4 + year: 2000 + s01.e100062698 - Mock Entry 20-5-thumb.jpg + s01.e100062698 - Mock Entry 20-5.info.json + s01.e100062698 - Mock Entry 20-5.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-07-06 + episode_id: 100062698 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-5.com + + The Description + title: 2000-07-06 - Mock Entry 20-5 + year: 2000 + s01.e100062698 - Mock Entry 20-5.nfo + NFO tags: + episodedetails: + aired: 2000-07-06 + episode: 100062698 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-5.com + + The Description + season: 1 + title: 2000-07-06 - Mock Entry 20-5 + year: 2000 + s01.e100062699 - Mock Entry 20-6-thumb.jpg + s01.e100062699 - Mock Entry 20-6.info.json + s01.e100062699 - Mock Entry 20-6.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-07-06 + episode_id: 100062699 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-6.com + + The Description + title: 2000-07-06 - Mock Entry 20-6 + year: 2000 + s01.e100062699 - Mock Entry 20-6.nfo + NFO tags: + episodedetails: + aired: 2000-07-06 + episode: 100062699 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-6.com + + The Description + season: 1 + title: 2000-07-06 - Mock Entry 20-6 + year: 2000 + s01.e100072599 - Mock Entry 20-7-thumb.jpg + s01.e100072599 - Mock Entry 20-7.info.json + s01.e100072599 - Mock Entry 20-7.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-06-06 + episode_id: 100072599 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-7.com + + The Description + title: 2000-06-06 - Mock Entry 20-7 + year: 2000 + s01.e100072599 - Mock Entry 20-7.nfo + NFO tags: + episodedetails: + aired: 2000-06-06 + episode: 100072599 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-7.com + + The Description + season: 1 + title: 2000-06-06 - Mock Entry 20-7 + year: 2000 +{output_directory}/Season 02 + s02.e100052498 - Mock Entry 20-1-thumb.jpg + s02.e100052498 - Mock Entry 20-1.info.json + s02.e100052498 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 100052498 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-1.com + + The Description + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s02.e100052498 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 100052498 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2 + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s02.e100052499 - Mock Entry 20-2-thumb.jpg + s02.e100052499 - Mock Entry 20-2.info.json + s02.e100052499 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 100052499 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-2.com + + The Description + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s02.e100052499 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 100052499 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2 + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s02.e100052599 - Mock Entry 20-3-thumb.jpg + s02.e100052599 - Mock Entry 20-3.info.json + s02.e100052599 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-07 + episode_id: 100052599 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-3.com + + The Description + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s02.e100052599 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2000-08-07 + episode: 100052599 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2 + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s02.e99052499 - Mock Entry 21-1-thumb.jpg + s02.e99052499 - Mock Entry 21-1.info.json + s02.e99052499 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2001-08-08 + episode_id: 99052499 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://21-1.com + + The Description + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 + s02.e99052499 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2001-08-08 + episode: 99052499 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2 + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt new file mode 100644 index 00000000..2d56f95a --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day-reversed/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt @@ -0,0 +1,277 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json +{output_directory}/Season 01 + s01.e000001 - Mock Entry 20-7-thumb.jpg + s01.e000001 - Mock Entry 20-7.info.json + s01.e000001 - Mock Entry 20-7.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-06-06 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-7.com + + The Description + title: 2020-06-06 - Mock Entry 20-7 + year: 2020 + s01.e000001 - Mock Entry 20-7.nfo + NFO tags: + episodedetails: + aired: 2020-06-06 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-7.com + + The Description + season: 1 + title: 2020-06-06 - Mock Entry 20-7 + year: 2020 + s01.e000002 - Mock Entry 20-6-thumb.jpg + s01.e000002 - Mock Entry 20-6.info.json + s01.e000002 - Mock Entry 20-6.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-07-06 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-6.com + + The Description + title: 2020-07-06 - Mock Entry 20-6 + year: 2020 + s01.e000002 - Mock Entry 20-6.nfo + NFO tags: + episodedetails: + aired: 2020-07-06 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-6.com + + The Description + season: 1 + title: 2020-07-06 - Mock Entry 20-6 + year: 2020 + s01.e000003 - Mock Entry 20-5-thumb.jpg + s01.e000003 - Mock Entry 20-5.info.json + s01.e000003 - Mock Entry 20-5.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-07-06 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-5.com + + The Description + title: 2020-07-06 - Mock Entry 20-5 + year: 2020 + s01.e000003 - Mock Entry 20-5.nfo + NFO tags: + episodedetails: + aired: 2020-07-06 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-5.com + + The Description + season: 1 + title: 2020-07-06 - Mock Entry 20-5 + year: 2020 + s01.e000004 - Mock Entry 20-4-thumb.jpg + s01.e000004 - Mock Entry 20-4.info.json + s01.e000004 - Mock Entry 20-4.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-06 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-4.com + + The Description + title: 2020-08-06 - Mock Entry 20-4 + year: 2020 + s01.e000004 - Mock Entry 20-4.nfo + NFO tags: + episodedetails: + aired: 2020-08-06 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-4.com + + The Description + season: 1 + title: 2020-08-06 - Mock Entry 20-4 + year: 2020 +{output_directory}/Season 02 + s02.e000001 - Mock Entry 20-3-thumb.jpg + s02.e000001 - Mock Entry 20-3.info.json + s02.e000001 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-07 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-3.com + + The Description + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s02.e000001 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2020-08-07 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2 + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s02.e000002 - Mock Entry 20-2-thumb.jpg + s02.e000002 - Mock Entry 20-2.info.json + s02.e000002 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-2.com + + The Description + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s02.e000002 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2 + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s02.e000003 - Mock Entry 20-1-thumb.jpg + s02.e000003 - Mock Entry 20-1.info.json + s02.e000003 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-1.com + + The Description + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s02.e000003 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2 + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s02.e000004 - Mock Entry 21-1-thumb.jpg + s02.e000004 - Mock Entry 21-1.info.json + s02.e000004 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2021-08-08 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://21-1.com + + The Description + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + s02.e000004 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2021-08-08 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2 + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + +Files removed: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json +{output_directory}/Season 01 + s01.e100052699 - Mock Entry 20-4-thumb.jpg + s01.e100052699 - Mock Entry 20-4.info.json + s01.e100052699 - Mock Entry 20-4.mp4 + s01.e100052699 - Mock Entry 20-4.nfo + s01.e100062698 - Mock Entry 20-5-thumb.jpg + s01.e100062698 - Mock Entry 20-5.info.json + s01.e100062698 - Mock Entry 20-5.mp4 + s01.e100062698 - Mock Entry 20-5.nfo + s01.e100062699 - Mock Entry 20-6-thumb.jpg + s01.e100062699 - Mock Entry 20-6.info.json + s01.e100062699 - Mock Entry 20-6.mp4 + s01.e100062699 - Mock Entry 20-6.nfo + s01.e100072599 - Mock Entry 20-7-thumb.jpg + s01.e100072599 - Mock Entry 20-7.info.json + s01.e100072599 - Mock Entry 20-7.mp4 + s01.e100072599 - Mock Entry 20-7.nfo +{output_directory}/Season 02 + s02.e100052498 - Mock Entry 20-1-thumb.jpg + s02.e100052498 - Mock Entry 20-1.info.json + s02.e100052498 - Mock Entry 20-1.mp4 + s02.e100052498 - Mock Entry 20-1.nfo + s02.e100052499 - Mock Entry 20-2-thumb.jpg + s02.e100052499 - Mock Entry 20-2.info.json + s02.e100052499 - Mock Entry 20-2.mp4 + s02.e100052499 - Mock Entry 20-2.nfo + s02.e100052599 - Mock Entry 20-3-thumb.jpg + s02.e100052599 - Mock Entry 20-3.info.json + s02.e100052599 - Mock Entry 20-3.mp4 + s02.e100052599 - Mock Entry 20-3.nfo + s02.e99052499 - Mock Entry 21-1-thumb.jpg + s02.e99052499 - Mock Entry 21-1.info.json + s02.e99052499 - Mock Entry 21-1.mp4 + s02.e99052499 - Mock Entry 21-1.nfo \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1.txt new file mode 100644 index 00000000..cf5a8cd3 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1.txt @@ -0,0 +1,134 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json + fanart.jpg + poster.jpg + season01-poster.jpg + tvshow.nfo + NFO tags: + tvshow: + genre: ytdl-sub + mpaa: TV-14 + namedseason: + attributes: + number: 1 + tag: Named Season 1 + title: Best Prebuilt TV Show Collection +{output_directory}/Season 01 + s01.e00080701 - Mock Entry 20-3-thumb.jpg + s01.e00080701 - Mock Entry 20-3.info.json + s01.e00080701 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-07 + episode_id: 0080701 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-3.com + + The Description + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s01.e00080701 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2000-08-07 + episode: 0080701 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 1 + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s01.e00080801 - Mock Entry 20-2-thumb.jpg + s01.e00080801 - Mock Entry 20-2.info.json + s01.e00080801 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 0080801 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-2.com + + The Description + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s01.e00080801 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 0080801 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 1 + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s01.e00080802 - Mock Entry 20-1-thumb.jpg + s01.e00080802 - Mock Entry 20-1.info.json + s01.e00080802 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 0080802 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-1.com + + The Description + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s01.e00080802 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 0080802 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 1 + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s01.e01080801 - Mock Entry 21-1-thumb.jpg + s01.e01080801 - Mock Entry 21-1.info.json + s01.e01080801 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2001-08-08 + episode_id: 1080801 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://21-1.com + + The Description + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 + s01.e01080801 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2001-08-08 + episode: 1080801 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 1 + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt new file mode 100644 index 00000000..b2832b2a --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt @@ -0,0 +1,143 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json +{output_directory}/Season 01 + s01.e000001 - Mock Entry 20-3-thumb.jpg + s01.e000001 - Mock Entry 20-3.info.json + s01.e000001 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-07 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-3.com + + The Description + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s01.e000001 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2020-08-07 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 1 + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s01.e000002 - Mock Entry 20-2-thumb.jpg + s01.e000002 - Mock Entry 20-2.info.json + s01.e000002 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-2.com + + The Description + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s01.e000002 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 1 + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s01.e000003 - Mock Entry 20-1-thumb.jpg + s01.e000003 - Mock Entry 20-1.info.json + s01.e000003 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-1.com + + The Description + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s01.e000003 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 1 + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s01.e000004 - Mock Entry 21-1-thumb.jpg + s01.e000004 - Mock Entry 21-1.info.json + s01.e000004 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2021-08-08 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://21-1.com + + The Description + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + s01.e000004 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2021-08-08 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 1 + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + +Files removed: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json +{output_directory}/Season 01 + s01.e00080701 - Mock Entry 20-3-thumb.jpg + s01.e00080701 - Mock Entry 20-3.info.json + s01.e00080701 - Mock Entry 20-3.mp4 + s01.e00080701 - Mock Entry 20-3.nfo + s01.e00080801 - Mock Entry 20-2-thumb.jpg + s01.e00080801 - Mock Entry 20-2.info.json + s01.e00080801 - Mock Entry 20-2.mp4 + s01.e00080801 - Mock Entry 20-2.nfo + s01.e00080802 - Mock Entry 20-1-thumb.jpg + s01.e00080802 - Mock Entry 20-1.info.json + s01.e00080802 - Mock Entry 20-1.mp4 + s01.e00080802 - Mock Entry 20-1.nfo + s01.e01080801 - Mock Entry 21-1-thumb.jpg + s01.e01080801 - Mock Entry 21-1.info.json + s01.e01080801 - Mock Entry 21-1.mp4 + s01.e01080801 - Mock Entry 21-1.nfo \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1.txt new file mode 100644 index 00000000..c6da76b6 --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1.txt @@ -0,0 +1,257 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json + fanart.jpg + poster.jpg + season01-poster.jpg + season02-poster.jpg + tvshow.nfo + NFO tags: + tvshow: + genre: ytdl-sub + mpaa: TV-14 + namedseason: + - + attributes: + number: 1 + tag: Named Season 1 + - + attributes: + number: 2 + tag: Named Season 2 + title: Best Prebuilt TV Show Collection +{output_directory}/Season 01 + s01.e00060601 - Mock Entry 20-7-thumb.jpg + s01.e00060601 - Mock Entry 20-7.info.json + s01.e00060601 - Mock Entry 20-7.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-06-06 + episode_id: 0060601 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-7.com + + The Description + title: 2000-06-06 - Mock Entry 20-7 + year: 2000 + s01.e00060601 - Mock Entry 20-7.nfo + NFO tags: + episodedetails: + aired: 2000-06-06 + episode: 0060601 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-7.com + + The Description + season: 1 + title: 2000-06-06 - Mock Entry 20-7 + year: 2000 + s01.e00070601 - Mock Entry 20-6-thumb.jpg + s01.e00070601 - Mock Entry 20-6.info.json + s01.e00070601 - Mock Entry 20-6.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-07-06 + episode_id: 0070601 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-6.com + + The Description + title: 2000-07-06 - Mock Entry 20-6 + year: 2000 + s01.e00070601 - Mock Entry 20-6.nfo + NFO tags: + episodedetails: + aired: 2000-07-06 + episode: 0070601 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-6.com + + The Description + season: 1 + title: 2000-07-06 - Mock Entry 20-6 + year: 2000 + s01.e00070602 - Mock Entry 20-5-thumb.jpg + s01.e00070602 - Mock Entry 20-5.info.json + s01.e00070602 - Mock Entry 20-5.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-07-06 + episode_id: 0070602 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-5.com + + The Description + title: 2000-07-06 - Mock Entry 20-5 + year: 2000 + s01.e00070602 - Mock Entry 20-5.nfo + NFO tags: + episodedetails: + aired: 2000-07-06 + episode: 0070602 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-5.com + + The Description + season: 1 + title: 2000-07-06 - Mock Entry 20-5 + year: 2000 + s01.e00080601 - Mock Entry 20-4-thumb.jpg + s01.e00080601 - Mock Entry 20-4.info.json + s01.e00080601 - Mock Entry 20-4.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-06 + episode_id: 0080601 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-4.com + + The Description + title: 2000-08-06 - Mock Entry 20-4 + year: 2000 + s01.e00080601 - Mock Entry 20-4.nfo + NFO tags: + episodedetails: + aired: 2000-08-06 + episode: 0080601 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-4.com + + The Description + season: 1 + title: 2000-08-06 - Mock Entry 20-4 + year: 2000 +{output_directory}/Season 02 + s02.e00080701 - Mock Entry 20-3-thumb.jpg + s02.e00080701 - Mock Entry 20-3.info.json + s02.e00080701 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-07 + episode_id: 0080701 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-3.com + + The Description + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s02.e00080701 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2000-08-07 + episode: 0080701 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2 + title: 2000-08-07 - Mock Entry 20-3 + year: 2000 + s02.e00080801 - Mock Entry 20-2-thumb.jpg + s02.e00080801 - Mock Entry 20-2.info.json + s02.e00080801 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 0080801 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-2.com + + The Description + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s02.e00080801 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 0080801 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2 + title: 2000-08-08 - Mock Entry 20-2 + year: 2000 + s02.e00080802 - Mock Entry 20-1-thumb.jpg + s02.e00080802 - Mock Entry 20-1.info.json + s02.e00080802 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2000-08-08 + episode_id: 0080802 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-1.com + + The Description + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s02.e00080802 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2000-08-08 + episode: 0080802 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2 + title: 2000-08-08 - Mock Entry 20-1 + year: 2000 + s02.e01080801 - Mock Entry 21-1-thumb.jpg + s02.e01080801 - Mock Entry 21-1.info.json + s02.e01080801 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2001-08-08 + episode_id: 1080801 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://21-1.com + + The Description + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 + s02.e01080801 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2001-08-08 + episode: 1080801 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2 + title: 2001-08-08 - Mock Entry 21-1 + year: 2001 \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt new file mode 100644 index 00000000..2fc7ab5e --- /dev/null +++ b/tests/resources/transaction_log_summaries/integration/collection/Kodi/release-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt @@ -0,0 +1,277 @@ +Files created: +---------------------------------------- +{output_directory} + .ytdl-sub-Best Prebuilt TV Show Collection-download-archive.json +{output_directory}/Season 01 + s01.e000001 - Mock Entry 20-7-thumb.jpg + s01.e000001 - Mock Entry 20-7.info.json + s01.e000001 - Mock Entry 20-7.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-06-06 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-7.com + + The Description + title: 2020-06-06 - Mock Entry 20-7 + year: 2020 + s01.e000001 - Mock Entry 20-7.nfo + NFO tags: + episodedetails: + aired: 2020-06-06 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-7.com + + The Description + season: 1 + title: 2020-06-06 - Mock Entry 20-7 + year: 2020 + s01.e000002 - Mock Entry 20-6-thumb.jpg + s01.e000002 - Mock Entry 20-6.info.json + s01.e000002 - Mock Entry 20-6.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-07-06 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-6.com + + The Description + title: 2020-07-06 - Mock Entry 20-6 + year: 2020 + s01.e000002 - Mock Entry 20-6.nfo + NFO tags: + episodedetails: + aired: 2020-07-06 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-6.com + + The Description + season: 1 + title: 2020-07-06 - Mock Entry 20-6 + year: 2020 + s01.e000003 - Mock Entry 20-5-thumb.jpg + s01.e000003 - Mock Entry 20-5.info.json + s01.e000003 - Mock Entry 20-5.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-07-06 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-5.com + + The Description + title: 2020-07-06 - Mock Entry 20-5 + year: 2020 + s01.e000003 - Mock Entry 20-5.nfo + NFO tags: + episodedetails: + aired: 2020-07-06 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-5.com + + The Description + season: 1 + title: 2020-07-06 - Mock Entry 20-5 + year: 2020 + s01.e000004 - Mock Entry 20-4-thumb.jpg + s01.e000004 - Mock Entry 20-4.info.json + s01.e000004 - Mock Entry 20-4.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-06 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-4.com + + The Description + title: 2020-08-06 - Mock Entry 20-4 + year: 2020 + s01.e000004 - Mock Entry 20-4.nfo + NFO tags: + episodedetails: + aired: 2020-08-06 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-4.com + + The Description + season: 1 + title: 2020-08-06 - Mock Entry 20-4 + year: 2020 +{output_directory}/Season 02 + s02.e000001 - Mock Entry 20-3-thumb.jpg + s02.e000001 - Mock Entry 20-3.info.json + s02.e000001 - Mock Entry 20-3.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-07 + episode_id: 1 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-3.com + + The Description + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s02.e000001 - Mock Entry 20-3.nfo + NFO tags: + episodedetails: + aired: 2020-08-07 + episode: 1 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-3.com + + The Description + season: 2 + title: 2020-08-07 - Mock Entry 20-3 + year: 2020 + s02.e000002 - Mock Entry 20-2-thumb.jpg + s02.e000002 - Mock Entry 20-2.info.json + s02.e000002 - Mock Entry 20-2.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 2 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-2.com + + The Description + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s02.e000002 - Mock Entry 20-2.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 2 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-2.com + + The Description + season: 2 + title: 2020-08-08 - Mock Entry 20-2 + year: 2020 + s02.e000003 - Mock Entry 20-1-thumb.jpg + s02.e000003 - Mock Entry 20-1.info.json + s02.e000003 - Mock Entry 20-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2020-08-08 + episode_id: 3 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://20-1.com + + The Description + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s02.e000003 - Mock Entry 20-1.nfo + NFO tags: + episodedetails: + aired: 2020-08-08 + episode: 3 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://20-1.com + + The Description + season: 2 + title: 2020-08-08 - Mock Entry 20-1 + year: 2020 + s02.e000004 - Mock Entry 21-1-thumb.jpg + s02.e000004 - Mock Entry 21-1.info.json + s02.e000004 - Mock Entry 21-1.mp4 + Video Tags: + contentRating: TV-14 + date: 2021-08-08 + episode_id: 4 + genre: ytdl-sub + show: Best Prebuilt TV Show Collection + synopsis: + https://21-1.com + + The Description + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + s02.e000004 - Mock Entry 21-1.nfo + NFO tags: + episodedetails: + aired: 2021-08-08 + episode: 4 + genre: ytdl-sub + mpaa: TV-14 + plot: + https://21-1.com + + The Description + season: 2 + title: 2021-08-08 - Mock Entry 21-1 + year: 2021 + +Files removed: +---------------------------------------- +{output_directory} + .ytdl-sub-subscription_test-download-archive.json +{output_directory}/Season 01 + s01.e00060601 - Mock Entry 20-7-thumb.jpg + s01.e00060601 - Mock Entry 20-7.info.json + s01.e00060601 - Mock Entry 20-7.mp4 + s01.e00060601 - Mock Entry 20-7.nfo + s01.e00070601 - Mock Entry 20-6-thumb.jpg + s01.e00070601 - Mock Entry 20-6.info.json + s01.e00070601 - Mock Entry 20-6.mp4 + s01.e00070601 - Mock Entry 20-6.nfo + s01.e00070602 - Mock Entry 20-5-thumb.jpg + s01.e00070602 - Mock Entry 20-5.info.json + s01.e00070602 - Mock Entry 20-5.mp4 + s01.e00070602 - Mock Entry 20-5.nfo + s01.e00080601 - Mock Entry 20-4-thumb.jpg + s01.e00080601 - Mock Entry 20-4.info.json + s01.e00080601 - Mock Entry 20-4.mp4 + s01.e00080601 - Mock Entry 20-4.nfo +{output_directory}/Season 02 + s02.e00080701 - Mock Entry 20-3-thumb.jpg + s02.e00080701 - Mock Entry 20-3.info.json + s02.e00080701 - Mock Entry 20-3.mp4 + s02.e00080701 - Mock Entry 20-3.nfo + s02.e00080801 - Mock Entry 20-2-thumb.jpg + s02.e00080801 - Mock Entry 20-2.info.json + s02.e00080801 - Mock Entry 20-2.mp4 + s02.e00080801 - Mock Entry 20-2.nfo + s02.e00080802 - Mock Entry 20-1-thumb.jpg + s02.e00080802 - Mock Entry 20-1.info.json + s02.e00080802 - Mock Entry 20-1.mp4 + s02.e00080802 - Mock Entry 20-1.nfo + s02.e01080801 - Mock Entry 21-1-thumb.jpg + s02.e01080801 - Mock Entry 21-1.info.json + s02.e01080801 - Mock Entry 21-1.mp4 + s02.e01080801 - Mock Entry 21-1.nfo \ No newline at end of file diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed/s_1/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_1/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed/s_1/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_1/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed/s_2/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_2/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed/s_2/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_2/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day_reversed/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day-reversed/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day/s_1/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day/s_1/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day/s_2/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day/s_2/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/kodi_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Kodi/upload-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Plex/upload-year-month-day/s_1/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Plex/upload-year-month-day/s_1/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Plex/upload-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day/s_1/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Plex/upload-year-month-day/s_1/is_yt_1_reformatted_to_playlist-index-reversed.txt diff --git a/tests/resources/transaction_log_summaries/unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1.txt b/tests/resources/transaction_log_summaries/integration/collection/Plex/upload-year-month-day/s_2/is_yt_1.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1.txt rename to tests/resources/transaction_log_summaries/integration/collection/Plex/upload-year-month-day/s_2/is_yt_1.txt diff --git a/tests/resources/transaction_log_summaries/unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt b/tests/resources/transaction_log_summaries/integration/collection/Plex/upload-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt similarity index 100% rename from tests/resources/transaction_log_summaries/unit/plex_tv_show_collection/season_by_collection__episode_by_year_month_day/s_2/is_yt_1_reformatted_to_season_by_collection__episode_by_playlist_index_reversed.txt rename to tests/resources/transaction_log_summaries/integration/collection/Plex/upload-year-month-day/s_2/is_yt_1_reformatted_to_playlist-index-reversed.txt