about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAge
* refactor(yt/select): Split the `select::select` function upBenedikt Peetz3 days
|
* feat(yt/update): Specify subscriptions to update as positional argsBenedikt Peetz4 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 Peetz4 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 Peetz4 days
|
* fix(yt/update): Avoid printing all the subscriptions that are not updatedBenedikt Peetz4 days
| | | | This is just too much noise.
* fix(yt/select/selection_file/duration): Improve the duration parserBenedikt Peetz4 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.
* refactor(yt): Move to `crates/yt`Benedikt Peetz5 days
| | | | Having one crate outside the `crates` directory is just weird.
* build(flake): Switch to `nixpkgs-unstable-small`Benedikt Peetz5 days
| | | | | 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.
* build(flake): Adapt the dev env to yt_dlp's new dependenciesBenedikt Peetz5 days
|
* fix(yt/subscribe): Deal with moved url valueBenedikt Peetz5 days
|
* fix(yt/downloader/progress_hook): Silence clippy warningsBenedikt Peetz5 days
|
* refactor(yt): Consolidate the multiple ANSI escape code wrapper functionsBenedikt Peetz5 days
|
* fix(yt/watch/playlist): Workaround terminals, that treat 0 as 1Benedikt Peetz5 days
|
* fix(yt/storage/migrate): Correct the two to three migration scriptBenedikt Peetz5 days
|
* fix(yt/storage/migrate): Correctly state the upgrade to the topmost versionBenedikt Peetz5 days
| | | | Previously `$new_version` and `$old_version` were mistakenly swapped.
* feat(yt/status): Show the percentage of videos that were actually watchedBenedikt Peetz5 days
|
* style(yt/cli): Sort the toplevel flags alphabeticallyBenedikt Peetz5 days
|
* fix(yt/{se,}dowa): Don't exit completely, if the downloader failsBenedikt Peetz5 days
| | | | | Otherwise the `yt watch` part exists even if videos are available to be watched.
* feat({yt_dlp,yt}): Migrate from pyo3 to rustpythonBenedikt Peetz5 days
| | | | | | | | That allows us to avoid cpython's GIL and gives us full ability to leverage async/concurrent code to speed up python operations. I have also taken the opportunity to change the `InfoJson` struct to an untyped json value, as that is what it actually is.
* build(treewide): UpdateBenedikt Peetz5 days
|
* build(flake): Add `git-bug` to the devshellBenedikt Peetz2025-03-21
|
* fix(yt/storage/migrate): Improve error messagesBenedikt Peetz2025-03-21
|
* fix(yt/storage/migrate): Account for the fact that DbVersions::Empty means ↵Benedikt Peetz2025-03-21
| | | | no Version
* style(treewide): Adopt rust edition 2024 rustfmt styleBenedikt Peetz2025-03-21
|
* chore(yt_dlp/wrappers/info_json): Add additional missing fieldBenedikt Peetz2025-03-21
|
* refactor(yt_dlp): Remove the unneeded `async` from the public functionsBenedikt Peetz2025-03-21
|
* chore(treewide): Migrate to rust edition 2024Benedikt Peetz2025-03-21
| | | | | Even though the diff in the libmpv2 crate is quite big, it really only added `unsafe` blocks to the `unsafe` functions.
* build(treewide): UpdateBenedikt Peetz2025-03-21
|
* feat(yt/storage/videos): Validate in DB, that is_focused is UNIQUEBenedikt Peetz2025-03-21
| | | | This makes the situation where two or more videos are focused impossible to represent in the db.
* refactor(yt/storage/migrate/sql): Use predictable SQL pathsBenedikt Peetz2025-03-21
| | | | I.e. `<version_number>_<old_version_name>_to_<new_version_name>.sql`
* refactor(yt/storage/migrate): Factor out duplicated code into macroBenedikt Peetz2025-03-21
|
* fix(yt/storage/video_database/set): Reset the `is_focused` flagBenedikt Peetz2025-03-07
|
* chore(version): v1.5.0 v1.5.0Benedikt Peetz2025-02-22
|
* fix(package): Update to account for modifications in `mkdb.sh`Benedikt Peetz2025-02-22
|
* build(treewide): UpdateBenedikt Peetz2025-02-22
|
* chore(treewide): Add/Update the license headersBenedikt Peetz2025-02-22
|
* refactor(yt/storage/video_database): Move `getters,setters` to `get,set`Benedikt Peetz2025-02-22
| | | | | This also removes some `get_`/`set_` prefixes from the functions in these modules, as `get::<function>` is more idiomatic than `get_<function>`.
* feat(yt/watch/playlist): InitBenedikt Peetz2025-02-22
| | | | | This leverages the fact, that we store the playlist information in the database to visualize the current playlist.
* feat(yt/watch/playlist_handler): Rewrite to use new db layoutBenedikt Peetz2025-02-22
| | | | | | | | | | The previous iteration actually worked with the mpv playlist, which proved very bug prone as mpv does not store our costume video, but the loaded cache path. Besides this, the old handler stored everything in memory, resulting in a full playback reset on restart. This new version uses the db to store the playlist and the playback progress and simply synchronizes this playlist with mpv.
* feat(yt/storage/migrate): Add version twoBenedikt Peetz2025-02-22
|
* fix(yt/storage/migrate/sql/01_zero_to_one.sql): Account for duration being NULLBenedikt Peetz2025-02-22
|
* fix(yt/storage/migrate): Improve error reportingBenedikt Peetz2025-02-22
|
* fix(yt/status): Don't show the database version in `yt status`Benedikt Peetz2025-02-22
| | | | | | The db version is already migrated to the latest at this point, thus this is effectively just showing the latest available version. `yt --version` actually shows the current one.
* fix(yt/): Box large futuresBenedikt Peetz2025-02-22
| | | | Otherwise, they could result in a stack overflow
* fix(yt/main): Call `watch` with the required `Arc<App>`Benedikt Peetz2025-02-22
|
* fix(yt/main): Actually remove the `yt check output-info-json`Benedikt Peetz2025-02-22
|