* Move the startup application settings to a new class
* Replace settings methods with static fields
* Move Redis and ES configuration to the settings class
* Fix environment python imports
* Update envcheck to use the new settings
* ES Client must bootstrap itself to be the source of config
If this is not done a cyclic loop is created between the config loader and the ES client.
This lays the ground work for ES being the source of all app config.
* auto_download is not used anymore
* Add UserConfig class that encapsulates user config storage
This class will allow the rest of the code to 'not care' about how user properties are stored.
This requires the addition of a ta_users index in ES.
* Create migration task for user config transfer
* Replace getters and setters for each property
Strongly type the user configuration
Migrate missed sponsorblock ID
* Other DB settings will be another PR
* Allow to configure yt-dlp `--format-sort` argument
This exposes the [`--format-sort`][1] yt-dlp option to the user.
Implements parts of #316
[1]: https://github.com/yt-dlp/yt-dlp#sorting-formats
* Trim split values of format_sort, obey black
* Add `format_sort` to default configuration
* Add note about codec compatibility to settings page
* Initial shot at adding in live and short videos
* Fix for typo on config variable names
* Remove was_live youtube flag
* Adding startup script to support setting vid_type on ta_video for videos created prior to support for live and shorts
* Linting updates
* More linting fixes
* Removing title variable from loop tuple unpacking
* make nginx run as root within the container (#268)
* move file to videos path with fallback to regular copy with no metadata copying (#268)
* use `copy_function=shutil.copy` everywhere with `shutil.move`