about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAge
* chore(version): v1.5.0 v1.5.0 primeBenedikt 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
|
* refactor(yt/description): Move to the `comments` subdirectoryBenedikt Peetz2025-02-22
|
* feat(yt/): Use concrete types in the `Video` structureBenedikt Peetz2025-02-22
|
* docs(yt/cli): Remove last references to the external update and ↵Benedikt Peetz2025-02-22
| | | | status_change bits
* feat(yt/version): Show _current_ database versionBenedikt Peetz2025-02-22
| | | | | `yt status` also displays the database version, but this happens after the database was already migrate to the latest version.
* feat(yt/cli): Make running the migrations of the database optionalBenedikt Peetz2025-02-21
|
* build(flake): Add `ffmpeg` to the devshellBenedikt Peetz2025-02-21
| | | | `yt-dlp` searches for this in the PATH.
* fix(crates/libmpv2/mpv): Log the setting of propertiesBenedikt Peetz2025-02-21
|
* chore(crates/yt_dlp/wrappers/info_json): Add further fieldsBenedikt Peetz2025-02-21
|
* chore(crates/libmpv2): Make `cargo clippy` happyBenedikt Peetz2025-02-21
|
* fix(yt/storage/notify): Switch from a polling based system to inotifyBenedikt Peetz2025-02-21
|
* fix(yt/status): Show the current database versionBenedikt Peetz2025-02-17
| | | | | This will always be the latest available version (because `yt` tries to migrate the db at startup), but it is still some-what informative.
* refactor(yt/videos/display): Streamline video formattingBenedikt Peetz2025-02-17
| | | | | | 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.
* fix(yt): Remove most of the references to the zero version `Video` structBenedikt Peetz2025-02-17
|
* feat(yt/storage/migrate): Add db version OneBenedikt Peetz2025-02-17
| | | | | | | | 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.
* feat(yt/storage/migrate): Init database migration systemBenedikt Peetz2025-02-17
| | | | | I could have used the `sqlx` migration system, but that seem too much like a framework to me.
* build({.envrc,scripts/mkdb}): Mark the `sqlx` databaseBenedikt Peetz2025-02-17
|
* build(.envrc): Align with current state of the repositoryBenedikt Peetz2025-02-17
| | | | | | 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.
* fix(yt/select/cmds/add): Don't try to add a video that is already addedBenedikt Peetz2025-02-16
|
* style(treewide): Re-formatBenedikt Peetz2025-02-16
|
* refactor(yt/): Use the new `termsize` and `uu_fmt` cratesBenedikt Peetz2025-02-16
|
* build(rustfmt.toml): AddBenedikt Peetz2025-02-16
|
* fix(crates/termsize): Remove all of `clippy`'s warningsBenedikt Peetz2025-02-16
|
* refactor(crates/fmt): Init forked `uu_fmt` libraryBenedikt Peetz2025-02-16
|
* chore(crates/termsize): VendorBenedikt Peetz2025-02-16
|
* refactor(treewide): Remove all references of the now obsolete update_raw.pyBenedikt Peetz2025-02-16
|
* feat(yt/update): Port the Python updater to rustBenedikt Peetz2025-02-16
| | | | | | | | 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).
* chore(yt): Change the type of `max_backlog` to `usize`Benedikt Peetz2025-02-16
|
* fix(crates/yt_dlp/wrappers/info_json): Serialize the `InfoType`s with their ↵Benedikt Peetz2025-02-16
| | | | correct name
* fix(crates/yt_dlp/wrappers/info_json): Don't serialize `None` valuesBenedikt Peetz2025-02-16
| | | | This keeps the jsons, which we internally parse, shorter.
* feat(crates/yt_dlp/lib): Wrap `process_ie_result` functionBenedikt Peetz2025-02-16
|
* fix(crates/yt_dlp/lib): Actually resolve the `entries` generator objectBenedikt Peetz2025-02-16
| | | | Previously, we just ignored it.
* fix(crates/yt_dlp/lib): Swallow all error logs from yt_dlpBenedikt Peetz2025-02-16
| | | | | | 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.
* fix(crates/yt_dlp/progress_hook): Print the progress to stderrBenedikt Peetz2025-02-16
|
* fix(crates/yt_dlp/error::PythonError): Add the python type as `kind`Benedikt Peetz2025-02-16
|
* fix(crates/libmpv2/Mpv::command): Correctly escape argumentsBenedikt Peetz2025-02-14
| | | | | This allows us to avoid all these ad-hoc command escaping `format!` invocations.
* fix(yt/watch): Always open a `mpv` windowBenedikt Peetz2025-02-14
| | | | | Otherwise, controlling playback of things like podcast or audio dramas becomes impossible because they do not have a video stream.