Commit message (Collapse) | Author | ||
---|---|---|---|
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 | |
2025-02-21 | chore(crates/libmpv2): Make `cargo clippy` happy | Benedikt Peetz | |
2025-02-21 | fix(yt/storage/notify): Switch from a polling based system to inotify | Benedikt Peetz | |
2025-02-17 | fix(yt/status): Show the current database version | Benedikt Peetz | |
This will always be the latest available version (because `yt` tries to migrate the db at startup), but it is still some-what informative. | |||
2025-02-17 | refactor(yt/videos/display): Streamline video formatting | Benedikt Peetz | |
The previous approach with a trait and two newtype wrappers was just too complicated and really not worth it. Simply implementing the functions directly makes the code more readable and simplifies the implementation. | |||
2025-02-17 | fix(yt): Remove most of the references to the zero version `Video` struct | Benedikt Peetz | |
2025-02-17 | feat(yt/storage/migrate): Add db version One | Benedikt Peetz | |
This version finally removes the weird `is_changing` flag (which was most of the time an elaborate alias for something like: "is being watched".) Additionally, this change brings in the groundwork to move the mpv playlist tracking from in-memory to the database. | |||
2025-02-17 | feat(yt/storage/migrate): Init database migration system | Benedikt Peetz | |
I could have used the `sqlx` migration system, but that seem too much like a framework to me. | |||
2025-02-17 | build({.envrc,scripts/mkdb}): Mark the `sqlx` database | Benedikt Peetz | |
2025-02-17 | build(.envrc): Align with current state of the repository | Benedikt Peetz | |
This means, that we removed the `python_update` directory and added the `scripts` directory to the path and that we removed the long obsolete `.env` file. | |||
2025-02-16 | fix(yt/select/cmds/add): Don't try to add a video that is already added | Benedikt Peetz | |
2025-02-16 | style(treewide): Re-format | Benedikt Peetz | |
2025-02-16 | refactor(yt/): Use the new `termsize` and `uu_fmt` crates | Benedikt Peetz | |
2025-02-16 | build(rustfmt.toml): Add | Benedikt Peetz | |
2025-02-16 | fix(crates/termsize): Remove all of `clippy`'s warnings | Benedikt Peetz | |
2025-02-16 | refactor(crates/fmt): Init forked `uu_fmt` library | Benedikt Peetz | |
2025-02-16 | chore(crates/termsize): Vendor | Benedikt Peetz | |
2025-02-16 | refactor(treewide): Remove all references of the now obsolete update_raw.py | Benedikt Peetz | |
2025-02-16 | feat(yt/update): Port the Python updater to rust | Benedikt Peetz | |
This has the massive upside, that we no longer need to communicate via JSON, and thus can filter errors and use included rust logger. The big downside of this approach is, that this port regresses the update speed by a factor of 3 (i.e., previously updating took 1 min for my set of subscriptions, it now takes 3 mins). | |||
2025-02-16 | chore(yt): Change the type of `max_backlog` to `usize` | Benedikt Peetz | |
2025-02-16 | fix(crates/yt_dlp/wrappers/info_json): Serialize the `InfoType`s with their ↵ | Benedikt Peetz | |
correct name | |||
2025-02-16 | fix(crates/yt_dlp/wrappers/info_json): Don't serialize `None` values | Benedikt Peetz | |
This keeps the jsons, which we internally parse, shorter. | |||
2025-02-16 | feat(crates/yt_dlp/lib): Wrap `process_ie_result` function | Benedikt Peetz | |
2025-02-16 | fix(crates/yt_dlp/lib): Actually resolve the `entries` generator object | Benedikt Peetz | |
Previously, we just ignored it. | |||
2025-02-16 | fix(crates/yt_dlp/lib): Swallow all error logs from yt_dlp | Benedikt Peetz | |
These are already returned as `PythonError`s and thus often printed twice. As such, removing the python print gives the consumer more liberty of how to handle the error. | |||
2025-02-16 | fix(crates/yt_dlp/progress_hook): Print the progress to stderr | Benedikt Peetz | |
2025-02-16 | fix(crates/yt_dlp/error::PythonError): Add the python type as `kind` | Benedikt Peetz | |
2025-02-14 | fix(crates/libmpv2/Mpv::command): Correctly escape arguments | Benedikt Peetz | |
This allows us to avoid all these ad-hoc command escaping `format!` invocations. | |||
2025-02-14 | fix(yt/watch): Always open a `mpv` window | Benedikt Peetz | |
Otherwise, controlling playback of things like podcast or audio dramas becomes impossible because they do not have a video stream. | |||
2025-02-14 | fix(yt/select/selection_file/help.str): Disable vim line wrapping | Benedikt Peetz | |
Wrapping lines in a file with concealed lines (due to `tree-sitter-yts`), is rather ugly. So just disable it. |