aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)Author
2024-10-14refactor(treewide): Combine the separate crates in one workspaceBenedikt Peetz
2024-10-14feat(videos): Provide a consistent display for the `Video` structBenedikt Peetz
Before, `Video`s where colourized differently, just because the colourization was not standardized. It now is.
2024-10-07fix(downloader): Don't display changed cache size on first runBenedikt Peetz
Currently, the "Can't download video ..." message is directly followed by the "Current cache size has changed ...", when a full cache was hit before. This avoids this duplicated message, by update the cached cache size.
2024-10-07feat(cli): Add a `add` commandBenedikt Peetz
This command allows adding URLs directly. Otherwise, the process would be: `yt subs add <URL>` -> `yt update` -> `yt subs remove <URL>`
2024-10-07feat(cli): Also add a `dowa` commandBenedikt Peetz
This is the same as the `sedowa` command, with the difference that the `dowa` command does not include the select part.
2024-10-07fix(cli): Avoid having to interleave `sedowa` with dashesBenedikt Peetz
Otherwise the `sedowa` command would be `se-do-wa`
2024-08-25style(treewide): ReformatBenedikt Peetz
2024-08-25refactor(treewide): Conform to `cargo clippy`Benedikt Peetz
2024-08-25feat(cli): Support the common select -> download -> watch workflowBenedikt Peetz
2024-08-25refactor(watch/playlist_handler): InitBenedikt Peetz
This facilitates outsourcing the mpv playlist operations and overlaying them with an cache that provides the facility to convert for `playlist_entry_id`s to `ExtractorHash`es even after their corresponding video has been removed from the playlist.
2024-08-25fix(storage/extractor_hash): Remove useless logsBenedikt Peetz
2024-08-25fix(select/duration): Report parse errors, as the input is user specifiedBenedikt Peetz
2024-08-25fix(downloader): Fallback to calculating the video size, before using ↵Benedikt Peetz
hardcoded value
2024-08-25fix(downloader): Remove useless logsBenedikt Peetz
2024-08-25fix(downloader): Be smarter, when checking for available cacheBenedikt Peetz
2024-08-25docs(cache): Add context to the cache_path deletion errorBenedikt Peetz
2024-08-24refactor(comments): Remove dead codeBenedikt Peetz
2024-08-24refactor(watch): Don't track the playlist, use the properties of `mpv` insteadBenedikt Peetz
2024-08-24feat(watch): Idle until new videos are available instead of exitingBenedikt Peetz
2024-08-24fix(storage/database): Already borrow the `VideoStatus::ALL` constantBenedikt Peetz
2024-08-24fix(download): Don't fail hard, when a video file size can't be approximatedBenedikt Peetz
2024-08-24fix(select/display): Only align the status commands in color_displayBenedikt Peetz
2024-08-24fix(treewide): Always display bytes in a formatted way through `Bytes`Benedikt Peetz
2024-08-24feat(cli/selectCommand/file): Allow re-use of the previous selection fileBenedikt Peetz
2024-08-24fix(cli/selectCommand): Explicitly set the aliasesBenedikt Peetz
Otherwise the `w` alias for `watch` would conflict with `watched` and thus not work.
2024-08-24feat(cli/config): Show the currently active configurationBenedikt Peetz
2024-08-24fix(config): Check for wrong keys in the config fileBenedikt Peetz
2024-08-24feat(videos): Allow limiting the number of videos to showBenedikt Peetz
2024-08-24feat(status): Also show the cache usageBenedikt Peetz
2024-08-24feat(downloader): Display the sizes, when waiting for a cache size reductionBenedikt Peetz
2024-08-24feat(watch/handlers): Add status messages to the script handlersBenedikt Peetz
2024-08-24test(storage/setters): Assert the video status in `set_video_watched`Benedikt Peetz
2024-08-24feat(select/cmds): Add a `watched` commandBenedikt Peetz
Otherwise, running `yt select file --done` would mark all your already wached stuff to be watched again.
2024-08-24feat(select/display): Also show the video hash when color displaying itBenedikt Peetz
The hash can now be used on the commandline to access video information.
2024-08-23fix(select/cmds): Accept the watch flags for every commandBenedikt Peetz
This makes it easier to change the status of a video, without having to painstakingly remove the flags too.
2024-08-23feat(videos): InitBenedikt Peetz
2024-08-23fix(config/from_filesystem): Only create the parent of config pathsBenedikt Peetz
Otherwise, it would create a `videos.sqlite` *directory*, which is obviously not ideal.
2024-08-23fix(config/from_filesystem): Just load an empty config, if there isn't oneBenedikt Peetz
2024-08-23fix(cli/verbosity): Simplify setting the default levelBenedikt Peetz
2024-08-23style(treewide): FormatBenedikt Peetz
2024-08-23fix(cli): Always log with a verbosity of at least WARNBenedikt Peetz
This ensures that warnings actually reach the user. And the `--quite` flag can still be used to silence all output.
2024-08-23fix(treewide): Actually use the values from the configBenedikt Peetz
2024-08-23feat(watch/events): Add further understood script-messagesBenedikt Peetz
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).
2024-08-23fix(storage/setters): Enforce status invariantsBenedikt Peetz
2024-08-23feat(treewide): Use a configuration fileBenedikt Peetz
This allows use to avoid duplication of default values in the codebase and obviously also facilitates changing these without having to re-compile.
2024-08-23refactor(cli): Replace the byte parser with the one from the `bytes` crateBenedikt Peetz
2024-08-23refactor(storage/downloader): Remove unused `get_next_video_watchable`Benedikt Peetz
2024-08-23fix(storage/downloader): Sort the next videos to be downloaded like in the ↵Benedikt Peetz
selection file
2024-08-23feat(cli): Add an explicit `subs export` subcommandBenedikt Peetz
This subcommand is functionally identical with the previous `subs list --url`, but semantically it improves the situation, by having symmetrical `import` and `export` subcommands.
2024-08-22fix(storage/schema.sql): Tell SQLite to perform type-checkingBenedikt Peetz
Otherwise, SQLite tries to “coerce” types into fitting in the “preferred” type of the table. Now SQLite actually refuses to accept a type mismatch.