Commit message (Collapse) | Author | ||
---|---|---|---|
85 min. | build(flake): Document for what the `CLANG_*` env vars are needed | Benedikt Peetz | |
87 min. | build(flake): Remove `flake-utils` | Benedikt Peetz | |
This library serves no real purpose, and now started failing to updated. | |||
94 min. | refactor(yt): Move to `crates/yt` | Benedikt Peetz | |
Having one crate outside the `crates` directory is just weird. | |||
97 min. | 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. | |||
97 min. | build(flake): Adapt the dev env to yt_dlp's new dependencies | Benedikt Peetz | |
99 min. | fix(yt/subscribe): Deal with moved url value | Benedikt Peetz | |
100 min. | fix(yt/downloader/progress_hook): Silence clippy warnings | Benedikt Peetz | |
101 min. | refactor(yt): Consolidate the multiple ANSI escape code wrapper functions | Benedikt Peetz | |
102 min. | fix(yt/watch/playlist): Workaround terminals, that treat 0 as 1 | Benedikt Peetz | |
109 min. | fix(yt/storage/migrate): Correct the two to three migration script | Benedikt Peetz | |
111 min. | fix(yt/storage/migrate): Correctly state the upgrade to the topmost version | Benedikt Peetz | |
Previously `$new_version` and `$old_version` were mistakenly swapped. | |||
112 min. | feat(yt/status): Show the percentage of videos that were actually watched | Benedikt Peetz | |
113 min. | style(yt/cli): Sort the toplevel flags alphabetically | Benedikt Peetz | |
114 min. | 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. | |||
117 min. | feat({yt_dlp,yt}): Migrate from pyo3 to rustpython | Benedikt Peetz | |
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. | |||
2 hours | build(treewide): Update | Benedikt Peetz | |
2025-03-21 | build(flake): Add `git-bug` to the devshell | Benedikt Peetz | |
2025-03-21 | fix(yt/storage/migrate): Improve error messages | Benedikt Peetz | |
2025-03-21 | fix(yt/storage/migrate): Account for the fact that DbVersions::Empty means ↵ | Benedikt Peetz | |
no Version | |||
2025-03-21 | style(treewide): Adopt rust edition 2024 rustfmt style | Benedikt Peetz | |
2025-03-21 | chore(yt_dlp/wrappers/info_json): Add additional missing field | Benedikt Peetz | |
2025-03-21 | refactor(yt_dlp): Remove the unneeded `async` from the public functions | Benedikt Peetz | |
2025-03-21 | chore(treewide): Migrate to rust edition 2024 | Benedikt Peetz | |
Even though the diff in the libmpv2 crate is quite big, it really only added `unsafe` blocks to the `unsafe` functions. | |||
2025-03-21 | build(treewide): Update | Benedikt Peetz | |
2025-03-21 | feat(yt/storage/videos): Validate in DB, that is_focused is UNIQUE | Benedikt Peetz | |
This makes the situation where two or more videos are focused impossible to represent in the db. | |||
2025-03-21 | refactor(yt/storage/migrate/sql): Use predictable SQL paths | Benedikt Peetz | |
I.e. `<version_number>_<old_version_name>_to_<new_version_name>.sql` | |||
2025-03-21 | refactor(yt/storage/migrate): Factor out duplicated code into macro | Benedikt Peetz | |
2025-03-07 | fix(yt/storage/video_database/set): Reset the `is_focused` flag | Benedikt Peetz | |
2025-02-22 | chore(version): v1.5.0 v1.5.0 | Benedikt Peetz | |
2025-02-22 | fix(package): Update to account for modifications in `mkdb.sh` | Benedikt Peetz | |
2025-02-22 | build(treewide): Update | Benedikt Peetz | |
2025-02-22 | chore(treewide): Add/Update the license headers | Benedikt Peetz | |
2025-02-22 | refactor(yt/storage/video_database): Move `getters,setters` to `get,set` | Benedikt Peetz | |
This also removes some `get_`/`set_` prefixes from the functions in these modules, as `get::<function>` is more idiomatic than `get_<function>`. | |||
2025-02-22 | feat(yt/watch/playlist): Init | Benedikt Peetz | |
This leverages the fact, that we store the playlist information in the database to visualize the current playlist. | |||
2025-02-22 | feat(yt/watch/playlist_handler): Rewrite to use new db layout | Benedikt Peetz | |
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. | |||
2025-02-22 | feat(yt/storage/migrate): Add version two | Benedikt Peetz | |
2025-02-22 | fix(yt/storage/migrate/sql/01_zero_to_one.sql): Account for duration being NULL | Benedikt Peetz | |
2025-02-22 | fix(yt/storage/migrate): Improve error reporting | Benedikt Peetz | |
2025-02-22 | fix(yt/status): Don't show the database version in `yt status` | Benedikt Peetz | |
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. | |||
2025-02-22 | fix(yt/): Box large futures | Benedikt Peetz | |
Otherwise, they could result in a stack overflow | |||
2025-02-22 | fix(yt/main): Call `watch` with the required `Arc<App>` | Benedikt Peetz | |
2025-02-22 | fix(yt/main): Actually remove the `yt check output-info-json` | Benedikt Peetz | |
2025-02-22 | refactor(yt/description): Move to the `comments` subdirectory | Benedikt Peetz | |
2025-02-22 | feat(yt/): Use concrete types in the `Video` structure | Benedikt Peetz | |
2025-02-22 | docs(yt/cli): Remove last references to the external update and ↵ | Benedikt Peetz | |
status_change bits | |||
2025-02-22 | feat(yt/version): Show _current_ database version | Benedikt Peetz | |
`yt status` also displays the database version, but this happens after the database was already migrate to the latest version. | |||
2025-02-21 | feat(yt/cli): Make running the migrations of the database optional | Benedikt Peetz | |
2025-02-21 | build(flake): Add `ffmpeg` to the devshell | Benedikt Peetz | |
`yt-dlp` searches for this in the PATH. | |||
2025-02-21 | fix(crates/libmpv2/mpv): Log the setting of properties | Benedikt Peetz | |
2025-02-21 | chore(crates/yt_dlp/wrappers/info_json): Add further fields | Benedikt Peetz | |