about summary refs log tree commit diff stats
path: root/pkgs/sources/yt/src/bin/ytc
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:26:22 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:26:22 +0200
commit204731c0a69136c9cebcb54f1afecf5145e26bbe (patch)
treefc9132e5dc74e4a8e1327cdd411839a90f9410aa /pkgs/sources/yt/src/bin/ytc
parentrefactor(sys): Modularize and move to `modules/system` or `pkgs` (diff)
downloadnixos-config-204731c0a69136c9cebcb54f1afecf5145e26bbe.tar.gz
nixos-config-204731c0a69136c9cebcb54f1afecf5145e26bbe.zip
refactor(pkgs): Categorize into `by-name` shards
This might not be the perfect way to organize a package set --
especially if the set is not nearly the size of nixpkgs -- but it is
_at_ least a way of organization.
Diffstat (limited to 'pkgs/sources/yt/src/bin/ytc')
-rw-r--r--pkgs/sources/yt/src/bin/ytc/args.rs26
-rw-r--r--pkgs/sources/yt/src/bin/ytc/main.rs77
2 files changed, 0 insertions, 103 deletions
diff --git a/pkgs/sources/yt/src/bin/ytc/args.rs b/pkgs/sources/yt/src/bin/ytc/args.rs
deleted file mode 100644
index 8b2d6a61..00000000
--- a/pkgs/sources/yt/src/bin/ytc/args.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-use clap::{Parser, Subcommand};
-/// A helper for downloading and playing youtube videos
-#[derive(Parser, Debug)]
-#[clap(author, version, about, long_about = None)]
-pub struct Args {
-    #[command(subcommand)]
-    /// The subcommand to execute
-    pub subcommand: Command,
-}
-#[derive(Subcommand, Debug)]
-pub enum Command {
-    #[clap(value_parser)]
-    /// Work based of ytcc ids
-    Id {
-        #[clap(value_parser)]
-        /// A list of ids to play
-        ids: Vec<u32>,
-    },
-    #[clap(value_parser)]
-    /// Work based of raw youtube urls
-    Url {
-        #[clap(value_parser)]
-        /// A list of urls to play
-        urls: Vec<String>,
-    },
-}
diff --git a/pkgs/sources/yt/src/bin/ytc/main.rs b/pkgs/sources/yt/src/bin/ytc/main.rs
deleted file mode 100644
index b38157df..00000000
--- a/pkgs/sources/yt/src/bin/ytc/main.rs
+++ /dev/null
@@ -1,77 +0,0 @@
-use std::{env, process::Command as StdCmd};
-
-use anyhow::{bail, Context, Result};
-use clap::Parser;
-use log::debug;
-use url::Url;
-use yt::{
-    downloader::{Downloadable, Downloader},
-    YtccListData,
-};
-
-use crate::args::{Args, Command};
-
-mod args;
-
-fn main() -> Result<()> {
-    let args = Args::parse();
-    cli_log::init_cli_log!();
-
-    let playspec: Vec<Downloadable> = match args.subcommand {
-        Command::Id { ids } => {
-            let mut output = Vec::with_capacity(ids.len());
-            for id in ids {
-                debug!("Adding {}", id);
-                let mut ytcc = StdCmd::new("ytcc");
-                ytcc.args([
-                    "--output",
-                    "json",
-                    "list",
-                    "--watched",
-                    "--unwatched",
-                    "--attributes",
-                    "url",
-                    "--ids",
-                    id.to_string().as_str(),
-                ]);
-                let json = serde_json::from_slice::<Vec<YtccListData>>(
-                    &ytcc.output().context("Failed to get url from id")?.stdout,
-                )
-                .context("Failed to deserialize json output")?;
-
-                if json.is_empty() {
-                    bail!("Could not find a video with id: {}", id);
-                }
-                assert_eq!(json.len(), 1);
-                let json = json.first().expect("Has only one element");
-
-                debug!("Id resolved to: '{}'", &json.url);
-
-                output.push(Downloadable {
-                    url: Url::parse(&json.url)?,
-                    id: Some(json.id),
-                })
-            }
-            output
-        }
-        Command::Url { urls } => {
-            let mut output = Vec::with_capacity(urls.len());
-            for url in urls {
-                output.push(Downloadable {
-                    url: Url::parse(&url).context("Failed to parse url")?,
-                    id: None,
-                })
-            }
-            output
-        }
-    };
-
-    debug!("Initializing downloader");
-    let downloader = Downloader::new(playspec)?;
-
-    downloader
-        .consume()
-        .context("Failed to consume downloader")?;
-
-    Ok(())
-}