* Bumped Elixir
* Silenced mix check warnings
* Updated all deps with minor version upgrades
* Updated more deps; Refactored text components to work with phoenix_html updates
* Added last_error to media item table
* Error messages are now persisted to the last_error field
* Minor layout updates
* Added help tooltip to source content view
* Added error information to homepage tables
* Remove unneeded index
* Added docs to tooltip component
* WIP - started improving handling of sorting for sources index table
* WIP - Added UI to table to indicate sort column and direction
* Refactored toggle liveview into a livecomponent
* Added sorting for all table attrs
* Added pagination to the sources table
* Added tests for updated liveviews and live components
* Add tests for new helper methods
* Added fancy new CSS to my sources table
* Added size to sources table
* Adds relative div to ensure that sorting arrow doesn't run away
* Fixed da tests
* [Unrelated] updated module name for existing liveview module
* Updated toggle component and moved MP index table to a liveview
* [WIP] reverted MP index table; added source count to MP index
* Moved new live table to sources index
* Added 'enabled' boolean to sources
* Got 'enabled' logic working re: downloading pending media
* Updated sources context to do the right thing when a source is updated
* Docs and tests
* Updated slow indexing to maintain its old schedule if re-enabled
* Hooked up the enabled toggle to the sources page
* [Unrelated] added direct links to various tabs on the sources table
* More tests
* Removed unneeded guard in
* Removed outdated comment
* Format 'Scheduled At' in task table according to user's TZ
* Changed video preview layout to 1 column on all displays
* Made links in descriptions clickable
* Updated Copy JSON button to properly escape newline characters
* 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
* 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] 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
* First pass at cutting down image size
* Made selfhosted docker work multiplatform
* Updated compile-time value to be runtime
* Fixed issue with tzdata file permissions
* Applied better fix for tz issue
* Added basic history table to homepage
* Improved homepage history query
* Set table to use 24h time
* Added timezone support
* Updated README to reflect new TZ stuff
* 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
* [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
* Add media streaming (#108)
* [WIP] set up streaming route
* Added UUID to sources and media items
* Added media preview to MI show page
* Added plug to strip file extensions
* [VERY WIP] basic podcast RSS setup
* [WIP] got basic podcast RSS working
* [WIP] more expanding on RSS
* Comment
* [WIP] Working on refactoring feed
* Added UUID backfill to a migration
* [WIP] Moar refactoring
* [WIP] Adding UI for getting RSS feed
* Many tests
* Added conditional routing for feed URLs
* Removed the need for url_base to be set
* Updated preset name
* Rendered certain fields HTML-safe; Added logging to confirm range request support
* Fixed incorrect scheme issue
* Updated env var
* Updated other UI to use dropdown
* removed commented code
* Generate rss feeds (#123)
* Added plug to strip file extensions
* [VERY WIP] basic podcast RSS setup
* [WIP] got basic podcast RSS working
* [WIP] more expanding on RSS
* [WIP] Working on refactoring feed
* Added UUID backfill to a migration
* [WIP] Moar refactoring
* [WIP] Adding UI for getting RSS feed
* Many tests
* Added conditional routing for feed URLs
* Removed the need for url_base to be set
* Updated preset name
* Rendered certain fields HTML-safe; Added logging to confirm range request support
* Fixed incorrect scheme issue
* Updated env var
* Updated other UI to use dropdown
* removed commented code
* docs
* Added unique index to UUID fields
* Add media profile presets (#85)
* Added presets for output templates
* Added presets for the entire media profile form
* Append `-thumb` to thumbnails when downloading (#87)
* Appended -thumb to thumbnails when downloading
* Added code to compensate for yt-dlp bug
* Squash all the commits from the other branch bc I broke things (#88)
* Added new uploaded_at column to media items
* Updated indexer to pull upload date
* Updates media item creation to update on conflict
* Added download cutoff date to sources
* Applies cutoff date logic to pending media logic
* Updated docs