about summary refs log tree commit diff stats
path: root/crates (follow)
Commit message (Collapse)AuthorAge
* chore(yt/storage/video_database/set): Apply some of clippy's suggestionsBenedikt Peetz26 hours
|
* fix(yt/select/split): Also use persist the selection fileBenedikt Peetz26 hours
| | | | This makes re-editing after a selection failure possible.
* fix(yt/select/cmds/add): Use the correct names for the download typeBenedikt Peetz26 hours
| | | | Otherwise, adding anything is impossible.
* fix(yt/select/cmds/add): Don't print the title as value, cast it firstBenedikt Peetz26 hours
| | | | | Otherwise, we would silently ignore an invalid type, if the title type ever changes.
* fix(yt/download/progress_hook): Remove superfluous apostrophesBenedikt Peetz27 hours
| | | | | | The start and end of the title is already apparent, as it is coloured differently than the rest. Adding the single quotes around it does not improve it and is just visual clatter.
* build({flake,Cargo}.lock): UpdateBenedikt Peetz27 hours
|
* fix(yt_dlp): Polyfill missing rustpython features used in urllib3Benedikt Peetz27 hours
| | | | Otherwise, anything that depends on urllib3 just fails to initialize.
* revert: "build(treewide): Update"Benedikt Peetz27 hours
| | | | | | This reverts commit e6aa91c56ca51a8593b9a58ec5746741888db7f9. The update of urllib3 to v2.4.0 broke our `yt-dlp` integration.
* build(treewide): UpdateBenedikt Peetz5 days
|
* build(yt_dlp/Cargo.toml): Pin git dependenciesBenedikt Peetz5 days
|
* fix(yt_dlp/post_processors/dearrow): Don't try to access the drained vecBenedikt Peetz5 days
| | | | | | If all titles were declared “bad” the pp previously tried to access the first title in the array, which was already drained. We now simply clone the array to facilitate this usage.
* feat(yt/version): Add the (rust)python version againBenedikt Peetz5 days
|
* fix(yt/update/grouped): Don't drop the verbosity levelBenedikt Peetz5 days
| | | | Otherwise, the sub-processes run with the default verbosity level.
* feat(yt/cli): Also add completion for subscription namesBenedikt Peetz5 days
|
* chore(treewide): Assure that `nix fmt` and `reuse lint` are happyBenedikt Peetz12 days
|
* refactor(yt_dlp): Split the big `lib.rs` file upBenedikt Peetz12 days
|
* refactor(yt_dlp/progress_hook): Use public api via `__priv` moduleBenedikt Peetz12 days
| | | | | That makes it clear that these parts are only exposed to facilitate macro use and not as part of the public API.
* fix(yt_dlp/post_processing/dearrow): Correctly type the `CasualVote` fieldBenedikt Peetz12 days
|
* refactor(yt_dlp/logging): Avoid adding to the `__all__` listBenedikt Peetz12 days
| | | | | This seems to have no apparent effect on anything. As such I went ahead and removed this dead code.
* fix(yt_dlp): Typos in stringsBenedikt Peetz12 days
|
* fix(yt_dlp/post_processors): Register in pythonBenedikt Peetz12 days
| | | | | | | | | | | We need to tell yt_dlp about our post processors, as they would otherwise not take full effect. For example, changing the title would previously only have changed the title in the *in-memory* info json, the actual file on disk (video and .info.json) would still have the old title, as yt_dlp did not know about our post processor. Registering it via their api also has the upside of being able to determine when to run.
* fix(yt_dlp/post_processors/dearrow): Migrate to curl for api requestsBenedikt Peetz12 days
| | | | | | The reqwest crate will panic if it is blockingly run inside another executor. But we cannot make this function async, as the whole api is forced to be sync by python ffi.
* fix(yt_dlp/): Include the frozen python stdlibBenedikt Peetz13 days
| | | | | This avoids the dependency on a real std-library (i.e., python3) at runtime.
* style(treewide): ReformatBenedikt Peetz13 days
|
* chore(treewide): Add missing copyright headersBenedikt Peetz13 days
|
* style(yt/select): Apply clippy's suggestionsBenedikt Peetz13 days
|
* fix(yt/update): Also handle the newly introduced error conditionsBenedikt Peetz13 days
|
* feat(yt_dlp): Support a DeArrow post processorBenedikt Peetz13 days
|
* refactor(yt_dlp/lib): De-duplicate the info json sanitize codeBenedikt Peetz13 days
|
* refactor(yt_dlp/lib): Explicitly convert python exceptions into an errorBenedikt Peetz13 days
| | | | This avoids having to wrap all blocks into a `match` statement.
* refactor(yt/select/selection_file): Migrate from `trinitry` to `shlex`Benedikt Peetz13 days
| | | | shlex is better maintained, and _actually_ meant for this purpose .
* test(yt/cli): Test the CLIBenedikt Peetz13 days
|
* fix(libmpv2-sys): Avoid generating comments, that confuse rustdocBenedikt Peetz13 days
|
* fix(yt/cli): Remove duplicated short flag key (help also uses 'h')Benedikt Peetz13 days
|
* feat(yt/cli): Add support for command line completionsBenedikt Peetz13 days
|
* feat(yt/select/split): Make sorting configurableBenedikt Peetz13 days
| | | | | I also moved that to a separate subcommand, as we would otherwise have too many `requires`/`conflicts_with` statements.
* feat(yt/videos/list): Replace the nucleo matcher with a simple `contains`Benedikt Peetz13 days
| | | | | | 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.
* fix(yt/download/get_file_size): Correct deal with `filesize_approx` = NullBenedikt Peetz14 days
|
* fix(yt_dlp/json_{cast,get}): Improve error reportingBenedikt Peetz14 days
|
* fix(yt/update): Correct the progress display in `--grouped` modeBenedikt Peetz14 days
|
* docs(yt/watch/playlist_handler/client_messages): Add TODO about `current_exe`Benedikt Peetz2025-06-15
|
* docs(yt_dlp): Fix typo in `Cargo.toml`'s descriptionBenedikt Peetz2025-06-15
|
* fix(yt_dlp): Avoid writing the json output to diskBenedikt Peetz2025-06-15
| | | | | There is no point in doing this anymore, as we no longer need to deserialize it.
* fix(yt/update/video_entry_to_video): Cast the json objectsBenedikt Peetz2025-06-15
| | | | | Otherwise, we might encounter very weird behaviour if yt_dlp ever changes the types of these keys.
* feat(yt/update): Print a nice progress numberBenedikt Peetz2025-06-15
| | | | | | | 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.
* feat(yt/update): Support grouped updatesBenedikt Peetz2025-06-15
| | | | | | | | | | 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.
* perf(yt/update/updater): Acknowledge, that `yt_dlp` has a sync APIBenedikt Peetz2025-06-15
| | | | | | | | | | | | | | | 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.
* feat(yt/select): Support a directory selection processBenedikt Peetz2025-06-15
| | | | The single file approach becomes unwieldy once one has more open videos.
* refactor(yt/select): Split the `select::select` function upBenedikt Peetz2025-06-15
|
* feat(yt/update): Specify subscriptions to update as positional argsBenedikt Peetz2025-06-14
| | | | | Having the `-s/--subscription` flag is pointless, as there are no other flags that could make a positional arg ambiguous.