Commit message (Collapse) | Author | ||
---|---|---|---|
28 hours | fix(yt/update): Also handle the newly introduced error conditions | Benedikt Peetz | |
28 hours | feat(yt_dlp): Support a DeArrow post processor | Benedikt Peetz | |
28 hours | refactor(yt_dlp/lib): De-duplicate the info json sanitize code | Benedikt Peetz | |
28 hours | refactor(yt_dlp/lib): Explicitly convert python exceptions into an error | Benedikt Peetz | |
This avoids having to wrap all blocks into a `match` statement. | |||
28 hours | build(.envrc): Also disable ytdlp plugins by default | Benedikt Peetz | |
28 hours | build(package/package.nix): Update to the new build requirements | Benedikt Peetz | |
31 hours | build({flake,Cargo}.lock): Update | Benedikt Peetz | |
31 hours | fix(scripts/mkdb.sh): Also use the `$DATABASE_URL` variable as source source | Benedikt Peetz | |
This avoids having to specify the db location twice. | |||
31 hours | refactor(yt/select/selection_file): Migrate from `trinitry` to `shlex` | Benedikt Peetz | |
shlex is better maintained, and _actually_ meant for this purpose . | |||
31 hours | test(yt/cli): Test the CLI | Benedikt Peetz | |
31 hours | fix(libmpv2-sys): Avoid generating comments, that confuse rustdoc | Benedikt Peetz | |
31 hours | fix(yt/cli): Remove duplicated short flag key (help also uses 'h') | Benedikt Peetz | |
32 hours | feat(yt/cli): Add support for command line completions | Benedikt Peetz | |
32 hours | build(.envrc): Remove outdated env variables | Benedikt Peetz | |
32 hours | feat(yt/select/split): Make sorting configurable | Benedikt Peetz | |
I also moved that to a separate subcommand, as we would otherwise have too many `requires`/`conflicts_with` statements. | |||
32 hours | feat(yt/videos/list): Replace the nucleo matcher with a simple `contains` | Benedikt Peetz | |
The matching behaviour was not predictable at all (probably due to a bad config), which than led to using `yt videos ls | grep -i <query>` instead. | |||
43 hours | fix(yt/download/get_file_size): Correct deal with `filesize_approx` = Null | Benedikt Peetz | |
43 hours | fix(yt_dlp/json_{cast,get}): Improve error reporting | Benedikt Peetz | |
47 hours | build(treewide): Update | Benedikt Peetz | |
47 hours | fix(yt/update): Correct the progress display in `--grouped` mode | Benedikt Peetz | |
47 hours | docs(yt/watch/playlist_handler/client_messages): Add TODO about `current_exe` | Benedikt Peetz | |
47 hours | docs(yt_dlp): Fix typo in `Cargo.toml`'s description | Benedikt Peetz | |
47 hours | fix(yt_dlp): Avoid writing the json output to disk | Benedikt Peetz | |
There is no point in doing this anymore, as we no longer need to deserialize it. | |||
48 hours | fix(yt/update/video_entry_to_video): Cast the json objects | Benedikt Peetz | |
Otherwise, we might encounter very weird behaviour if yt_dlp ever changes the types of these keys. | |||
48 hours | feat(yt/update): Print a nice progress number | Benedikt Peetz | |
This number obviously does not actually mean that we have finished updating (as it is incremented on staring). But it still provides some feedback, on how long the update will probably take. | |||
48 hours | feat(yt/update): Support grouped updates | Benedikt Peetz | |
Rustpython currently does not use a garbage collector. Thus, every cyclic reference between Python objects results in a memory leak of these objects (as Rustpython uses (A)RCs). The only real way to workaround the memory leaks, is by restarting the whole process, and this `--grouped` flag seems to be the best solution for that. | |||
2 days | perf(yt/update/updater): Acknowledge, that `yt_dlp` has a sync API | Benedikt Peetz | |
The previous code was written with the assumption, that `yt_dlp` had an async API (which means, that calls to it should never block). Unfortunately, the API is sync and all calls into it block. Therefore, all the parallelism in the previous code accounted for nothing; The actual update ran completely sequentially. The new version uses a local thread pool to avoid blocking the tokio runtime and as such achieves higher speed. Unfortunately, because the rustpython implementation is way slower than cpython, the whole update takes longer. But that is a problem for another day. | |||
2 days | feat(yt/select): Support a directory selection process | Benedikt Peetz | |
The single file approach becomes unwieldy once one has more open videos. | |||
2 days | refactor(yt/select): Split the `select::select` function up | Benedikt Peetz | |
3 days | feat(yt/update): Specify subscriptions to update as positional args | Benedikt Peetz | |
Having the `-s/--subscription` flag is pointless, as there are no other flags that could make a positional arg ambiguous. | |||
3 days | feat({yt/update,yt_dlp}): Use yt_dlp errors again | Benedikt Peetz | |
This code was temporarily commented out, as I had not migrated it in the pyo3 -> rustpython migration. | |||
3 days | docs(yt/update): Add comment about the `unsmuggle_url` invocation | Benedikt Peetz | |
3 days | fix(yt/update): Avoid printing all the subscriptions that are not updated | Benedikt Peetz | |
This is just too much noise. | |||
3 days | fix(yt/select/selection_file/duration): Improve the duration parser | Benedikt Peetz | |
The previous parser was very brittle, it failed for (valid) outputs like `1d 10h 30m` (as it only expected two number unit pairs). On top of that, extending it was failure prone (as proven by the roundtrip failure in combination with the `d` unit). | |||
4 days | fix(yt/version): Use yt_dlp's native python version imply | Benedikt Peetz | |
This is just cleaner, compared to running `yt-dlp --version` as command. | |||
4 days | build(treewide): Update | Benedikt Peetz | |
4 days | build(flake): Document for what the `CLANG_*` env vars are needed | Benedikt Peetz | |
4 days | build(flake): Remove `flake-utils` | Benedikt Peetz | |
This library serves no real purpose, and now started failing to updated. | |||
4 days | refactor(yt): Move to `crates/yt` | Benedikt Peetz | |
Having one crate outside the `crates` directory is just weird. | |||
4 days | build(flake): Switch to `nixpkgs-unstable-small` | Benedikt Peetz | |
Small is updated faster, and we need quick updates as `yt_dlp` needs to be always up-to-date so that it actually works with YouTube. | |||
4 days | build(flake): Adapt the dev env to yt_dlp's new dependencies | Benedikt Peetz | |
4 days | fix(yt/subscribe): Deal with moved url value | Benedikt Peetz | |
4 days | fix(yt/downloader/progress_hook): Silence clippy warnings | Benedikt Peetz | |
4 days | refactor(yt): Consolidate the multiple ANSI escape code wrapper functions | Benedikt Peetz | |
4 days | fix(yt/watch/playlist): Workaround terminals, that treat 0 as 1 | Benedikt Peetz | |
4 days | fix(yt/storage/migrate): Correct the two to three migration script | Benedikt Peetz | |
4 days | fix(yt/storage/migrate): Correctly state the upgrade to the topmost version | Benedikt Peetz | |
Previously `$new_version` and `$old_version` were mistakenly swapped. | |||
4 days | feat(yt/status): Show the percentage of videos that were actually watched | Benedikt Peetz | |
4 days | style(yt/cli): Sort the toplevel flags alphabetically | Benedikt Peetz | |
4 days | fix(yt/{se,}dowa): Don't exit completely, if the downloader fails | Benedikt Peetz | |
Otherwise the `yt watch` part exists even if videos are available to be watched. |