* 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
* Sources that use cookies when_needed now retry downloads if we think it'd help
* tweaked error message we're checking on to match media_download_worker
* 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
* Added a command for updating yt-dlp
* Added a yt-dlp update worker to run daily
* Added a new file that runs post-boot when the app is ready to serve requests; put yt-dlp updater in there
* Updated config to expose the current env globally; updated startup tasks to not run in test env
* Removes unneeded test code
* Updated default job priorities for downloading queue
* Added the ability to set priority to various downloading helpers
* Sets sources to fast index on creation
* Added sleep interval to settings
* Added new sleep setting to yt-dlp runner and added tests
* Added setting for form; updated setting name
* Updated form label
* Prevented saving/updating of media items if being throttled by youtube
* Added the bot message to the list of non-retryable errors
* Fixed typo
* WIP - moved plugs; set up a new token-protected route plug
* Added a route_token column to settings model
* Hooked up token_protected_route plug to database
* Hooked up new OPML route to UI; turned RSS and OPML feed buttons into links
* Docs, tests
* Added a note about the phoenix bug
* Added OPML Endpoint for podcast rss feeds
* changed opml route and added controller test for opml endpoint
* add copy opml feed button
* add copy opml feed button - correct url
* fix html indenting
* add indentation to opml
Co-authored-by: Kieran <kieran.eglin@gmail.com>
* use convention for unused controller params
Co-authored-by: Kieran <kieran.eglin@gmail.com>
* add test for opml_sources helper function
* change opml endpoint to be more inline with the other routes
---------
Co-authored-by: robs <git@robs.social>
Co-authored-by: Kieran <kieran.eglin@gmail.com>
* Updated yt-dlp runner to take an action type
* Added actions to all callers of the yt-dlp runner
* [SQUASH] updated test files to use new mocking strategy
* Removed unneeded alias
* 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
* Moved quality options to their own module
* Added language and format selection to quality option builder
* [WIP] migrating tests
* Added audio_lang to media_profile table
* Renamed column; added format options and tests
* Adds UI for audio_track to the media profile form
* Adds a version string to in-app streams to help with cache busting
* Added logic to ignore downloads that aren't in the right live state
* Added tests for get_downloadable_status method
* Added tests for media downloader module
* Added tests to download worker modeule
* [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
* Add option to use existing Media Profile as template for new profile
* Forgot to commit the edit form too
* Reset deletion mark on Source controller
* Add test for new preload profile feature
* mix check
* Added ability to pass additional yt-dlp options to indexing step
* Added predicted_filename to media struct
* WIP added ability to predict filepath to source indexing
* renamed predicted_filepath
* Added the ability to predict filepath when fast indexing
* Add predicted_media_filepath to media items table
* Addressed TODOs
* Added function for updating a media item's filepaths on-disk
* Added placeholder action to source page
* Turned the file sync into a job and properly hooked it up to the controller
* Updated deps in case that does anything
* Kills running slow-indexes when a new slow-index is enqueued
* Revert deps upgrade (saving that for its own PR)
* Added duration limits to source model
* Added duration limits to source form
* Added validation for min/max amounts
* Added duration checks to pending query
* Moved min/max filters up in source form
* Removed debugger
* Added 'use_cookies' column to source
* Added cookies to the source form
* Updated every command to optionally include cookies
* LOTS of tests
* Made YT cookies off by default
* [WIP] started on source deletion
* Removed unneeded test blocks
* Added marked_for_deletion_at to sources and media profiles
* Hooked up async deletion to media profiles as well
* Changed the purpose of the 'culled_at' flag. renamed some methods
* implemented new culling behaviour for source cutoff dates
* Removed culled_at flag if a media item gets redownloaded
* Updated source form
* Removed unused method