about summary refs log tree commit diff stats
path: root/tree-sitter-yts (unfollow)
Commit message (Collapse)Author
2 daysfeat(yt/version): Add the (rust)python version againBenedikt Peetz
2 daysfix(yt/update/grouped): Don't drop the verbosity levelBenedikt Peetz
Otherwise, the sub-processes run with the default verbosity level.
2 daysfeat(yt/cli): Also add completion for subscription namesBenedikt Peetz
10 dayschore(version): v1.6.1 v1.6.1Benedikt Peetz
10 daysbuild(flake): Teach the flake about the new package.nix locationBenedikt Peetz
10 dayschore(treewide): Assure that `nix fmt` and `reuse lint` are happyBenedikt Peetz
10 daysbuild({Cargo,flake}.lock): UpdateBenedikt Peetz
10 daysrefactor(nix/package): Avoid the duplicated `package` nameBenedikt Peetz
10 daysfix(package): Set the PYTHONPATH ourselvesBenedikt Peetz
The propagation mechanism seems to be python exclusive and not something that works inside the `buildRustPackage` function.
10 daysrefactor(yt_dlp): Split the big `lib.rs` file upBenedikt Peetz
10 daysrefactor(yt_dlp/progress_hook): Use public api via `__priv` moduleBenedikt Peetz
That makes it clear that these parts are only exposed to facilitate macro use and not as part of the public API.
10 daysfix(yt_dlp/post_processing/dearrow): Correctly type the `CasualVote` fieldBenedikt Peetz
10 daysrefactor(yt_dlp/logging): Avoid adding to the `__all__` listBenedikt Peetz
This seems to have no apparent effect on anything. As such I went ahead and removed this dead code.
10 daysfix(yt_dlp): Typos in stringsBenedikt Peetz
10 daysfix(yt_dlp/post_processors): Register in pythonBenedikt Peetz
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.
10 daysfix(yt_dlp/post_processors/dearrow): Migrate to curl for api requestsBenedikt Peetz
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.
10 daysfix(yt_dlp/): Include the frozen python stdlibBenedikt Peetz
This avoids the dependency on a real std-library (i.e., python3) at runtime.
10 dayschore(version): v1.6.0 v1.6.0Benedikt Peetz
10 daysbuild(cog.toml): Use the correct remote urlBenedikt Peetz
10 daysbuild(cog.toml): Use correct usernameBenedikt Peetz
10 daysstyle(treewide): ReformatBenedikt Peetz
10 dayschore(treewide): Add missing copyright headersBenedikt Peetz
10 daysstyle(yt/select): Apply clippy's suggestionsBenedikt Peetz
10 daysfix(yt/update): Also handle the newly introduced error conditionsBenedikt Peetz
10 daysfeat(yt_dlp): Support a DeArrow post processorBenedikt Peetz
10 daysrefactor(yt_dlp/lib): De-duplicate the info json sanitize codeBenedikt Peetz
10 daysrefactor(yt_dlp/lib): Explicitly convert python exceptions into an errorBenedikt Peetz
This avoids having to wrap all blocks into a `match` statement.
10 daysbuild(.envrc): Also disable ytdlp plugins by defaultBenedikt Peetz
10 daysbuild(package/package.nix): Update to the new build requirementsBenedikt Peetz
11 daysbuild({flake,Cargo}.lock): UpdateBenedikt Peetz
11 daysfix(scripts/mkdb.sh): Also use the `$DATABASE_URL` variable as source sourceBenedikt Peetz
This avoids having to specify the db location twice.
11 daysrefactor(yt/select/selection_file): Migrate from `trinitry` to `shlex`Benedikt Peetz
shlex is better maintained, and _actually_ meant for this purpose .
11 daystest(yt/cli): Test the CLIBenedikt Peetz
11 daysfix(libmpv2-sys): Avoid generating comments, that confuse rustdocBenedikt Peetz
11 daysfix(yt/cli): Remove duplicated short flag key (help also uses 'h')Benedikt Peetz
11 daysfeat(yt/cli): Add support for command line completionsBenedikt Peetz
11 daysbuild(.envrc): Remove outdated env variablesBenedikt Peetz
11 daysfeat(yt/select/split): Make sorting configurableBenedikt Peetz
I also moved that to a separate subcommand, as we would otherwise have too many `requires`/`conflicts_with` statements.
11 daysfeat(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.
11 daysfix(yt/download/get_file_size): Correct deal with `filesize_approx` = NullBenedikt Peetz
11 daysfix(yt_dlp/json_{cast,get}): Improve error reportingBenedikt Peetz
11 daysbuild(treewide): UpdateBenedikt Peetz
11 daysfix(yt/update): Correct the progress display in `--grouped` modeBenedikt Peetz
11 daysdocs(yt/watch/playlist_handler/client_messages): Add TODO about `current_exe`Benedikt Peetz
11 daysdocs(yt_dlp): Fix typo in `Cargo.toml`'s descriptionBenedikt Peetz
11 daysfix(yt_dlp): Avoid writing the json output to diskBenedikt Peetz
There is no point in doing this anymore, as we no longer need to deserialize it.
11 daysfix(yt/update/video_entry_to_video): Cast the json objectsBenedikt Peetz
Otherwise, we might encounter very weird behaviour if yt_dlp ever changes the types of these keys.
11 daysfeat(yt/update): Print a nice progress numberBenedikt 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.
11 daysfeat(yt/update): Support grouped updatesBenedikt 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.
11 daysperf(yt/update/updater): Acknowledge, that `yt_dlp` has a sync APIBenedikt 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.