about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAge
* fix(yt_dlp/post_processing/dearrow): Correctly type the `CasualVote` fieldBenedikt Peetz46 hours
|
* refactor(yt_dlp/logging): Avoid adding to the `__all__` listBenedikt Peetz46 hours
| | | | | 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 Peetz46 hours
|
* fix(yt_dlp/post_processors): Register in pythonBenedikt Peetz46 hours
| | | | | | | | | | | 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 Peetz46 hours
| | | | | | 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 Peetz3 days
| | | | | This avoids the dependency on a real std-library (i.e., python3) at runtime.
* chore(version): v1.6.0 v1.6.0Benedikt Peetz3 days
|
* build(cog.toml): Use the correct remote urlBenedikt Peetz3 days
|
* build(cog.toml): Use correct usernameBenedikt Peetz3 days
|
* style(treewide): ReformatBenedikt Peetz3 days
|
* chore(treewide): Add missing copyright headersBenedikt Peetz3 days
|
* style(yt/select): Apply clippy's suggestionsBenedikt Peetz3 days
|
* fix(yt/update): Also handle the newly introduced error conditionsBenedikt Peetz3 days
|
* feat(yt_dlp): Support a DeArrow post processorBenedikt Peetz3 days
|
* refactor(yt_dlp/lib): De-duplicate the info json sanitize codeBenedikt Peetz3 days
|
* refactor(yt_dlp/lib): Explicitly convert python exceptions into an errorBenedikt Peetz3 days
| | | | This avoids having to wrap all blocks into a `match` statement.
* build(.envrc): Also disable ytdlp plugins by defaultBenedikt Peetz3 days
|
* build(package/package.nix): Update to the new build requirementsBenedikt Peetz3 days
|
* build({flake,Cargo}.lock): UpdateBenedikt Peetz3 days
|
* fix(scripts/mkdb.sh): Also use the `$DATABASE_URL` variable as source sourceBenedikt Peetz3 days
| | | | This avoids having to specify the db location twice.
* refactor(yt/select/selection_file): Migrate from `trinitry` to `shlex`Benedikt Peetz3 days
| | | | shlex is better maintained, and _actually_ meant for this purpose .
* test(yt/cli): Test the CLIBenedikt Peetz3 days
|
* fix(libmpv2-sys): Avoid generating comments, that confuse rustdocBenedikt Peetz3 days
|
* fix(yt/cli): Remove duplicated short flag key (help also uses 'h')Benedikt Peetz3 days
|
* feat(yt/cli): Add support for command line completionsBenedikt Peetz3 days
|
* build(.envrc): Remove outdated env variablesBenedikt Peetz3 days
|
* feat(yt/select/split): Make sorting configurableBenedikt Peetz3 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 Peetz3 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 Peetz3 days
|
* fix(yt_dlp/json_{cast,get}): Improve error reportingBenedikt Peetz3 days
|
* build(treewide): UpdateBenedikt Peetz3 days
|
* fix(yt/update): Correct the progress display in `--grouped` modeBenedikt Peetz3 days
|
* docs(yt/watch/playlist_handler/client_messages): Add TODO about `current_exe`Benedikt Peetz4 days
|
* docs(yt_dlp): Fix typo in `Cargo.toml`'s descriptionBenedikt Peetz4 days
|
* fix(yt_dlp): Avoid writing the json output to diskBenedikt Peetz4 days
| | | | | 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 Peetz4 days
| | | | | 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 Peetz4 days
| | | | | | | 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 Peetz4 days
| | | | | | | | | | 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 Peetz4 days
| | | | | | | | | | | | | | | 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 Peetz4 days
| | | | The single file approach becomes unwieldy once one has more open videos.
* refactor(yt/select): Split the `select::select` function upBenedikt Peetz4 days
|
* feat(yt/update): Specify subscriptions to update as positional argsBenedikt Peetz5 days
| | | | | Having the `-s/--subscription` flag is pointless, as there are no other flags that could make a positional arg ambiguous.
* feat({yt/update,yt_dlp}): Use yt_dlp errors againBenedikt Peetz5 days
| | | | | This code was temporarily commented out, as I had not migrated it in the pyo3 -> rustpython migration.
* docs(yt/update): Add comment about the `unsmuggle_url` invocationBenedikt Peetz5 days
|
* fix(yt/update): Avoid printing all the subscriptions that are not updatedBenedikt Peetz5 days
| | | | This is just too much noise.
* fix(yt/select/selection_file/duration): Improve the duration parserBenedikt Peetz5 days
| | | | | | | | 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).
* fix(yt/version): Use yt_dlp's native python version implyBenedikt Peetz5 days
| | | | This is just cleaner, compared to running `yt-dlp --version` as command.
* build(treewide): UpdateBenedikt Peetz5 days
|
* build(flake): Document for what the `CLANG_*` env vars are neededBenedikt Peetz5 days
|
* build(flake): Remove `flake-utils`Benedikt Peetz5 days
| | | | This library serves no real purpose, and now started failing to updated.