* Started adding youtube API for fast indexing
* Hooked youtube API into fast indexing
* Added youtube_api_key to settings
* Added youtube api key to settings UI
* Added tests
* Refactored the youtube api module
* More refactor
* Changed editing mode name from basic to standard
* [WIP] started on copy changes
* Updated copy
* Added compound index for updated media item table for performance
* Improved large number display on homepage
* Improved UI around large numbers
* Centered the content of homepage data cards
* Renamed migration
* [WIP] renamed and migrated upload_date column
* Refactored yt-dlp media module
* Refactored parse_upload_date
* Refactored media item upload_date_index
* Got media tests running
* Refactored media item table live
* Cleaned up the stragglers
* Fixed old oversight re: original_url
* Changed sqlite FTS to use a trigram tokenizer
* Added search UI to source tables
* Fix bug with special chars in search form
* improved main search results form
* Improved centering for media table header elements
* [WIP] started on codec parser
* Added codec preferences to settings model
* [WIP] added basic codec preference fields to settings form
* Hooked up the backend portion of the codec preference work
* Added codec settings to frontend
* Ensured you can remove codec data
* [WIP] Got query kinda working, now to refactor other queries
* Refactored all query methods to use dynamic snippets
* Refactored tab layout to grab tabs by name
* Removed standalone show buttons from in-app tables
* Removed unneeded comment
* Added ability to specify overwrite behaviour when downloading media
* Added helper for redownloading media items
* renamed media redownload worker to disambiguate it from similarly named methods
* Added new redownload option to source actions dropdown
* Refactored MediaQuery to use a __using__ macro
* docs
* Added upload date index field to media_items
* Added incrementing index for upload dates
* Added media item upload date index to download option builder
* Added new season_episode_index_from_date to UI; updated parser
* Improve support for channels
* Hopefully fixed flakey test
* Namespaced notification modules under lifecycle
* Added a JSON encoder for all the main model types
* Added startup task to create user script file
* Hook up user script event to media download
* Hooked up media deletion user script
* Added jq to docker deps
* Updated README
* Manually installed mutagen
* Stopped upgrade form from submitting on enter
* Gracefully handle duplicate enqueued downloads
* Update metadata thumbnail fetcher to use the best jpg available
* Updated downloader and runner to handle sponsorblock failures more gracefully
* stopped download worker from running if a media item is preventing download
* Properly escaped NFO file contents
* Added an NFO backfill worker
* Added a try-catch to the backfill since I _really_ don't want failures to halt app boot
* [WIP] renamed current settings module and tables to have backup suffix
* Created new settings table, schema, and context
* Migrated from old settings module to new one
* Removed settings backup modules
* Added some tests and docs