Media Hoarder 1.4.0-b (BETA!)
Pre-releaseImportant: this is a BETA pre-release of the forthcoming v1.4.0
TV Series Support
This pre-release includes the first implementation of TV series support.
Read here about how Media Hoarder expects series to be organized: feature-series/docs/01-Media-Storage.md
You can track the implementation progress at:
As this is a pre-release, please use with caution!
Changelog
v1.4.0-b7
- SCRAPER: IMDB Scraper updated to properly get genres
Older Releases (click to expand)
v1.4.0-b6
IMDB Scraper
- SCRAPER: When scanning series, re-rank IMDB search results so that tv-series are higher than movies when detecting the IMDB entry
- closes #61
v1.4.0-b5
Features (v1.4.0-b5)
- FEAT: do an update check on the beta channel if the build is a beta build
A beta build (like this one) will now do version checks against other beta builds and tell you if a newer beta build is available. The link for downloading is also pointing to the beta releases (and not the Media Hoarder website's download section).
Misc (v1.4.0-b5)
- DB Migrations
- new table: tbl_DB_Migrations
- implement migration runner
v1.4.0-b4
Features (v1.4.0-b4)
- FEAT: add HDR variants to the Video Quality section
Media Hoarder now detects the following HDR variants: "HDR10", "HDR10+", "DV", "HLG".
The HDR variants are shown in the media entries of the main list:
When clicked, you can see details about a certain HDR variant:
Filter section "Video Quality" also contains these entries:
Misc / Fixes (v1.4.0-b4)
The IMDB entry detection (Media Hoarder trying to find the correct IMDB entry for a movie / tv show based on its name and release year) can fail due to different circumstances. Until now, Media Hoarder did not show errors prominently enough.
- SCRAPER: add testIMDBFindPageSearch to testset in UI
- SCRAPER: during the phase of IMDB entry detection, if something fails, the error will be stored in the scraper errors
v1.4.0-b3
Features (v1.4.0-b3)
- FEAT: calculate collection sizes (movies, series, total) before and after a re-scan, show current collection sizes in the home screen (which also now has a link in the navigation bar on the left)
-
FEAT: enhanced rescan summary
- related ticket: #45
- show how many movies/series/episodes have been added/updated/removed
- details dialog where the user can check individual files
- new tab in Settings where past scan sessions are listed (detail dialog on click)
- UI: add "w2wTV" button for Series and Episodes which opens up https://whattowatchon.tv with the series pre-selected
Misc / Fixes (v1.4.0-b3)
- SCRAPER: stop imdb scraping when the tconst is obviously not working
- reworked relative time and duration i18n
v1.4.0-b2
Features (v1.4.0-b2)
- FEAT: Search Data Dialog: show role of person/company
Misc / Fixes (v1.4.0-b2)
- UX: only load filters that are actually shown
- reload filters when "edit filters" is done (only reload those filters that have changed visibility from false to true)
- FIX: series/movies filters are not stored when switching to movies/series and back
- related bug: switching movies <> series may lead to 0 media items, even when pressing reload button
- FIX: clicking on plot keyword in "find plot keyword dialog" does nothing
- FIX: hide items in dialogs that have 0 media (e.g. plot keywords for movies that can only be found in series)
- FIX: prevent filtering and highlighting of searchText in Episodes listing
- DECISION: bring back filters for episodes?
- NOT NOW! this introduces more problems than solutions
- FIX: include description text in search space
- FIX: fast switching during trailer show lags behind
v1.4.0-b1
Features (v1.4.0-b1)
- FEAT: when clicking a media item in one of the smaller lists, show the item's card
- Media Property Dialog
- Trailer Show (LocalVideoPlayerDialog, VideoPlayerDialog)
- Chat GPT Dialog
Misc / Fixes (v1.4.0-b1)
- UX: MediaList: as soon as "sort by" was changed by the user, reset page to 1
v1.3.37-a8
Misc / Fixes (v1.3.37-a8)
- FIX: sort by Season and Episode didn't work anymore
- SCRAPER: Update Plotsummary IMDB Scraper Test
v1.3.37-a7
Features (v1.3.37-a7)
-
UX/SCRAPER: use imdb-graphql-urls.json (also try to fetch them from master in github, this way we can update the urls if imdb changes them - without creating a new release)
-
UX/SCRAPER: propagate actual errors of imdb scraping to the test result (i.e. errors in graphql querying instead of $IMDB_something is NULL)
v1.3.37-a6
Features (v1.3.37-a6)
Series: Media Property Dialog
- FEAT: make series clickable and expand to episodes listing for the selected series, show affected number of episodes vs. total number of episodes
- UX: remove the episodes section (in favor of episodes sections for all listed series)
Series: IMDB Rating Dialog
- FEAT: IMDB Rating heatmap like https://whattowatchon.tv
- make medialist item card a shared component (now used in medialist as well as SeriesIMDBRatingDialog)main list "jumps" and THEN reloads with the filter applied (possibly a fix for another issue)
- prevent certain activities while in IMDB Rating Dialog mode
-
UI: fix z-index for other dialogs on top of the SeriesIMDBRatingDialog
-
UX: globally track MediaPropertyDialog's visibility in order to allow closing of SeriesIMDBRatingDialog on outside-click if MediaPropertyDialog is not open
-
UI: also provide clickable area for episodes we have but is missing an IMDB rating
- MediaList: provide Series_id_Movies_Owner explicitly to MediaPropertyDialog
Series: Edit Media Dialog
- FEAT: Allow user to define audio / subtitle languages
- implement EditMediaItemDialog controls
- save on diff
- DB: tbl_Movies_MI_Qualities: also use for editing the series entry
v1.3.37-a5
Misc / Fixes (v1.3.37-a5)
- SCRAPER: imdb-graphql-urls: update seriesEpisodes (new persisted query)
- FIX: series episodes matching: don't assume E01 if neither season nor episode are set
v1.3.37-a4
Misc / Fixes (v1.3.37-a4)
- UX: MediaList: store currentPage for Movies, Series and Episodes (episodes in tbl_Movies.Series_currentPage)
- UX: MediaList: optimize fetchSortValues before fetchFilters
- SCRAPER/UX: findIMDBtconst for episodes:
- tt* override
- by season and episode numbers
v1.3.37-a3
Misc / Fixes
- UX: use tt* in the filename to override the tconst of an episode
- UX: unlink IMDB on series: also unlink all episodes, which
- don't have the tt* as part of their file name
- haven't been user-set tt* (do we even track this?)
v1.3.37-a
Misc / Fixes
- CHORE: Windows: update bundled VLC to 3.0.20
- CHORE: Windows: update bundled Mediainfo CLI to 23.11
- CHORE: refactor store.fetchMedia to only accept a single object containing the options
- CHORE: check sqlite version for json support - The JSON functions and operators are built into SQLite by default, as of SQLite version 3.38.0 (2022-02-22).
- specs see data/devdocs/series.md, docs/01-Media-Storage.md
- DB: ensure that MI Tracks table is cleaned up when a movie gets removed
- FIX: store.mergeExtraFileBased 713 TypeError: Cannot read property 'length' of undefined
- FIX: delete series actually deleted the source path
- FIX: in Series, where Video Quality filter resets from "ALL" to some being checked just by switching back and forth (series <> episodes)
- TEST: create a test set with series name and year (see: https://github.com/theMK2k/media-hoarder-testset-generator)
- enumerate series names
- enumerate episodes for each series
- benchmark series name detection (success: 98% hits on 1799 english series names)
- also benchmark the english movies test set
TV Series Support (MVP)
These items track the series feature in general.
- Remove mediaItem Dialog:
- always show the affected location full path
- differentiate Movies, Series and Episodes
- update "lastAccessAt" also for the series as well as any duplicate (and not only for the episode)
- function: updateSeriesMetadataFromEpisodes
- Audio Formats
- Release Attributes
- Audio Languages
- Subtitle Languages
- Video Encoders
- Video Qualities (multiple!)
- tbl_Movies_MI_Qualities: also use for filtering!
- Medialist: check if the image for episodes can be set to "fit height"
- Filters - the numbers should represent either movies or series
- Dialogs: most of them do not utilize mediaType
- Generalize to MediaPropertyDialog:
- provide movies and series lists (and episodes lists)? it's probably interesting to see these even if a person etc. has been opened from a series...
- act as a dialog for movies
- act as a dialog for series
- act as a dialog for episodes (of a certain series)
- debounce the init() function and call it on any property change, with 10ms debounce
- Generalize to MediaPropertyDialog:
- find IMDB tconst and provide metadata for the series and episodes
- provide series in a different route
- integrate old dialogs:
- AgeRatingDialog
- AudioFormatDialog
- CompanyDialog
- FilmingLocationDialog
- GenreDialog
- LanguageDialog -> audioLanguageDialog + subtitleLanguageDialog
- PlotKeywordDialog
- ReleaseAttributeDialog
- VideoEncoderDialog
- VideoQualityDialog
- PersonDialog
- integrate old dialogs:
- new symbol for "opening" a series and changing the screen to its eposiodes
- Series / Episode detection in directory/filenames, examples:
- "S01E01" - the default
- "Ep01" - as seen with some anime stuff
- "E01" - episode without season - assume S01
- "1x5" - same as S01E05
- "S01E01E02" - multiple episodes
- "S01E01-E03" - multiple episodes
- "S01E01E02E03" - multiple episodes
- "S01E01-03" - multiple episodes
- assign series episode imdb tconst when episode number is 0 (imdb provides null in this case)
- add "Season and Episode" sort order (only for Episodes specificMediaType)
- store filters and sort values by specificMediaType ("Movies", "Series", "Episodes")
- update Series_Num_Episodes and Series_Num_Seasons after an episode has been removed