about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAge
* 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.
* fix(yt/select/selection_file/help.str): Disable vim line wrappingBenedikt Peetz2025-02-14
| | | | | Wrapping lines in a file with concealed lines (due to `tree-sitter-yts`), is rather ugly. So just disable it.
* feat(yt/status): Include the approximate total watch timeBenedikt Peetz2025-02-14
|
* feat(yt/select/selection_file/duration): Support durations up to daysBenedikt Peetz2025-02-14
| | | | | The current maximum of hours was enough in most cases, but not for all cases.
* fix(yt/download/download_options): Stop trying to write annotationsBenedikt Peetz2025-02-14
| | | | | | 1. Prefer free formats 2. The annotations setting was causing a constant warning, and served very little purpose.
* fix(package/blake3): Migrate to the new `fetchCargoVendor` fetcherBenedikt Peetz2025-02-14
| | | | | This is necessary, because the old `fetchCargoTarball` fetcher, has become not reproducible because of `cargo` changes.
* feat(yt): Make colorization of the output configurableBenedikt Peetz2025-02-14
|
* fix(yt/cli): Make most of the arguments to `yt select <cmd> <hash>` optionalBenedikt Peetz2025-02-14
| | | | | | | In most cases `yt select watch <id>` is enough, but the previous cli specification required you to insert: `[TITLE] [DATE] [PUBLISHER] [DURATION] [URL]`. These are not used (except the `url` command), and thus the cli usage can be greatly improved by allowing the to be empty.
* feat(yt/select/cmds/add): Support `start` `stop` argsBenedikt Peetz2025-02-14
| | | | These allow you to only add playlist entries from `start` to `stop`.
* feat(version): Include `yt-dlp` and `python` version in `--version`Benedikt Peetz2025-02-14
| | | | | Both are run-time dependencies and need to be up-to-date (especially, `yt-dlp`)
* build(scripts/cprh): RemoveBenedikt Peetz2025-02-14
| | | | This has been superseded by my `stamp` script.
* chore(old): RemoveBenedikt Peetz2025-02-14
| | | | There is no need to include this old code any longer.
* chore(crates/yt_dlp/wrappers/info_json): Add further fieldsBenedikt Peetz2025-02-14
|
* test(crates/yt_dlp): Ignore tests that hang foreverBenedikt Peetz2025-02-14
|
* fix(crates/yt_dlp): Actually return errors instead of panicingBenedikt Peetz2025-02-14
|
* fix(crates/yt_dlp): Avoid printing the file extension in the progress displayBenedikt Peetz2025-02-14
| | | | The file extension should not be relevant for a user.
* fix(crates/libmpv2): Improve the error message for the `RawError`Benedikt Peetz2025-02-14
| | | | | Additionally, this commits migrates the error away from `thiserror`, simply because the crate is not needed at this scale.
* build(treewide): UpdateBenedikt Peetz2025-02-14
|
* build(.envrc): Always save the `output.info.json` if in devshellBenedikt Peetz2025-02-14
|
* chore(version): v1.4.1 v1.4.1Benedikt Peetz2024-12-14
|
* fix(yt_dlp/wrappers/info_json): Add further fields to `RequestedDownloads`Benedikt Peetz2024-12-14
|
* chore(version): v1.4.0 v1.4.0Benedikt Peetz2024-12-14
|