about summary refs log tree commit diff stats
path: root/pkgs/sources/yt/src/constants.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-20 16:10:21 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-20 16:14:26 +0200
commit368cb6b0d25db2ae23be42ad51584de059997e51 (patch)
tree3282e45d3ebced63c8498a47e83a255c35de620b /pkgs/sources/yt/src/constants.rs
parentrefactor(hm): Rename to `modules/home` (diff)
downloadnixos-config-368cb6b0d25db2ae23be42ad51584de059997e51.tar.gz
nixos-config-368cb6b0d25db2ae23be42ad51584de059997e51.zip
refactor(sys): Modularize and move to `modules/system` or `pkgs`
Diffstat (limited to 'pkgs/sources/yt/src/constants.rs')
-rw-r--r--pkgs/sources/yt/src/constants.rs51
1 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/sources/yt/src/constants.rs b/pkgs/sources/yt/src/constants.rs
new file mode 100644
index 00000000..5e233656
--- /dev/null
+++ b/pkgs/sources/yt/src/constants.rs
@@ -0,0 +1,51 @@
+use std::{env, fs, path::PathBuf};
+
+pub const HELP_STR: &str = include_str!("./help.str");
+
+pub const YT_DLP_FLAGS: [&str; 13] = [
+    // Ignore errors arising of unavailable sponsor block API
+    "--ignore-errors",
+    "--format",
+    "bestvideo[height<=?1080]+bestaudio/best",
+    "--embed-chapters",
+    "--progress",
+    "--write-comments",
+    "--extractor-args",
+    "youtube:max_comments=150,all,100;comment_sort=top",
+    "--write-info-json",
+    "--sponsorblock-mark",
+    "default",
+    "--sponsorblock-remove",
+    "sponsor",
+];
+pub const MPV_FLAGS: [&str; 4] = [
+    "--speed=2.7",
+    "--volume=75",
+    "--keep-open=yes",
+    "--msg-level=osd/libass=fatal",
+];
+
+pub const CONCURRENT: u32 = 5;
+
+pub const DOWNLOAD_DIR: &str = "/tmp/ytcc";
+
+fn get_runtime_path(component: &'static str) -> anyhow::Result<PathBuf> {
+    let out: PathBuf = format!(
+        "{}/{}",
+        env::var("XDG_RUNTIME_DIR").expect("This should always exist"),
+        component
+    )
+    .into();
+    fs::create_dir_all(out.parent().expect("Parent should exist"))?;
+    Ok(out)
+}
+
+const STATUS_PATH: &str = "ytcc/running";
+pub fn status_path() -> anyhow::Result<PathBuf> {
+    get_runtime_path(STATUS_PATH)
+}
+
+const LAST_SELECT: &str = "ytcc/selected.yts";
+pub fn last_select() -> anyhow::Result<PathBuf> {
+    get_runtime_path(LAST_SELECT)
+}