Changes
- Convert the program into a package with separate modules
- Support running directly with uvicorn via `python -m uvicorn gallery_dl_server:app` and as a package via `python -m gallery_dl_server`
- Update default configuration file with more options and better formatting
- Support loading from multiple configuration file locations: if loading is a success, log the list of config files loaded; if no file is found, log the full list of valid config file paths
- Use the [default gallery-dl configuration file locations](https://github.com/mikf/gallery-dl#locations) if not running in the Docker container
- Only copy the default configuration file into the directory mounted to `/config` inside the Docker container if none of the multiple valid configuration files exist
- Fix for Web-UI override options
- Configure logging for gallery-dl after the config file is loaded to allow gallery-dl log messages to be configured within the config file
- Add support for writing unsupported URLs to an "unsupported file" if a path is specified in the config file
- Exception handling for the gallery-dl download job logs the name of the exception and the correct exit code
- Ensure the download process stdout is flushed each time it is written to so that log messages arrive in the right order
- In the Docker container, save a backup copy of the log file on server shutdown to `/config/logs` appended with the date and time
- Force the file handler to open the log file with UTF-8 encoding for compatibility
Docker image: [Docker Hub](https://hub.docker.com/r/qx6ghqkz/gallery-dl-server/tags?name=0.4.0) / [GitHub](https://github.com/users/qx6ghqkz/packages/container/gallery-dl-server/330118760?tag=0.4.0)
**Full Changelog**: https://github.com/qx6ghqkz/gallery-dl-server/compare/v0.3.3...v0.4.0