Commit message (Collapse) | Author | Age | ||
---|---|---|---|---|
... | ||||
* | fix(config/from_filesystem): Only create the parent of config paths | Benedikt Peetz | 2024-08-23 | |
| | | | | | Otherwise, it would create a `videos.sqlite` *directory*, which is obviously not ideal. | |||
* | fix(config/from_filesystem): Just load an empty config, if there isn't one | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | chore(version): v1.1.0 v1.1.0 | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | docs(config): Add an example configuration file | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | fix(cli/verbosity): Simplify setting the default level | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | style(treewide): Format | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | fix(cli): Always log with a verbosity of at least WARN | Benedikt Peetz | 2024-08-23 | |
| | | | | | This ensures that warnings actually reach the user. And the `--quite` flag can still be used to silence all output. | |||
* | fix(treewide): Actually use the values from the config | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | feat(watch/events): Add further understood script-messages | Benedikt Peetz | 2024-08-23 | |
| | | | | | | They make it possible to force check for new available videos and to remove the currently playing video from the playlist to free cache space (otherwise you would have to quit the whole playlist). | |||
* | fix(storage/setters): Enforce status invariants | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | feat(treewide): Use a configuration file | Benedikt Peetz | 2024-08-23 | |
| | | | | | | This allows use to avoid duplication of default values in the codebase and obviously also facilitates changing these without having to re-compile. | |||
* | refactor(yt_dlp): Also move the `crates` subdirectory | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | refactor(cli): Replace the byte parser with the one from the `bytes` crate | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | fix(yt_dlp/lib): Standardize the formatting of bytes with the new `bytes` crate | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | feat(crates/bytes): Init | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | refactor(libmpv2): Move to the `crates` directory | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | chore(yt_dlp/progress_hook): Also consider the `total_bytes_estimate` field | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | chore(yt_dlp/info_json): Add further fields | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | refactor(storage/downloader): Remove unused `get_next_video_watchable` | Benedikt Peetz | 2024-08-23 | |
| | ||||
* | fix(storage/downloader): Sort the next videos to be downloaded like in the ↵ | Benedikt Peetz | 2024-08-23 | |
| | | | | selection file | |||
* | feat(cli): Add an explicit `subs export` subcommand | Benedikt Peetz | 2024-08-23 | |
| | | | | | | This subcommand is functionally identical with the previous `subs list --url`, but semantically it improves the situation, by having symmetrical `import` and `export` subcommands. | |||
* | fix(storage/schema.sql): Tell SQLite to perform type-checking | Benedikt Peetz | 2024-08-22 | |
| | | | | | | Otherwise, SQLite tries to “coerce” types into fitting in the “preferred” type of the table. Now SQLite actually refuses to accept a type mismatch. | |||
* | refactor(storage/getters): Inline an Option re-creation with `map` | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | fix(storage/setters): Avoid writing a literal "NULL" string into the db | Benedikt Peetz | 2024-08-22 | |
| | | | | | | Sqlx supports turning an option to a NULL insertion, but trying to insert a string, containing "NULL", will result in this literal string being written to the database. | |||
* | refactor(storage): Make all URL parsings panic | Benedikt Peetz | 2024-08-22 | |
| | | | | | | These URLs should be checked *before* they are written to the database, thus being unable to decode them after they've been read from the database is an application bug and not a user input issue. | |||
* | refactor(cli): Remove the useless `concurrent_processes` flag from `update` | Benedikt Peetz | 2024-08-22 | |
| | | | | | With the new `update_raw.py` script, supporting this flag becomes nearly impossible. Thus, we're simply removing it. | |||
* | fix(update): Propagate the logging options to the `update_raw.py` script | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | fix(package): Actually provide the blake3 library to the python interpreter | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | chore(version): v1.0.0 v1.0.0 | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | chore(treewide): Add missing license | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | fix(yt_dlp/info_json): Add further missing fields | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | fix(watch/events): Also mark a video inactive on the stop event | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | fix(constants): Don't set a default subtile language | Benedikt Peetz | 2024-08-22 | |
| | | | | Always fetching a subtitle file is rather counterproductive. | |||
* | fix(update): Correctly treat a success as a success | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | fix(subscriptions/add): Ignore the trailing slash on URLs | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | fix(storage/get_videos): Also order by `publish_date` | Benedikt Peetz | 2024-08-22 | |
| | | | | | All freshly added videos have a priority of 0. To ensure that they are still ordered, also sort by `publish_date`. | |||
* | feat(select/file): Allow `--priority` argument to all functions | Benedikt Peetz | 2024-08-22 | |
| | | | | This allows setting a priority even on picked videos. | |||
* | feat(download): Support limiting the downloader by maximal cache size | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | test(benches/update): Init | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | perf(raw_update.py)!: Don't fetch entries that are already in the database | Benedikt Peetz | 2024-08-22 | |
| | | | | | | | | | | | | | | | | | | | | Testing has resulted in a speed-up of circa 3400% (updates of 1 subscription (which is already fully stored) are now ca. 1 sec from previously 34 sec). BREAKING CHANGE: The extractor hash is now calculated from the `id` and not the `webpage_url` field requiring a complete re-fetch of all stored videos. ```bash $# export your subscriptions: $ yt subs list --urls > subs.txt $# remove the old database $ mv ~/.local/share/yt/videos.sqlite{,.old} $# reimport the subsciptions $ yt subs import subs.txt $# refetch all videos $ yt upadate ``` | |||
* | build(package): Include python `blake3` dependency | Benedikt Peetz | 2024-08-22 | |
| | ||||
* | chore(version): v0.1.3 v0.1.3 | Benedikt Peetz | 2024-08-21 | |
| | ||||
* | fix(yt_dlp/info_json): Add another missing attribute | Benedikt Peetz | 2024-08-21 | |
| | ||||
* | chore(version): v0.1.2 v0.1.2 | Benedikt Peetz | 2024-08-21 | |
| | ||||
* | fix(yt_dlp/info_json): Add further fields | Benedikt Peetz | 2024-08-21 | |
| | ||||
* | docs(yt_dlp/lib): Improve some comments | Benedikt Peetz | 2024-08-21 | |
| | ||||
* | build(flake): Wrap the yt binary with the required dependencies | Benedikt Peetz | 2024-08-21 | |
| | ||||
* | chore(version): v0.1.1 v0.1.1 | Benedikt Peetz | 2024-08-21 | |
| | ||||
* | fix(select/duration): Also parse `[No Duration]` as duration | Benedikt Peetz | 2024-08-21 | |
| | ||||
* | fix(update): Use the `raw_update.py` from the path | Benedikt Peetz | 2024-08-21 | |
| |