aboutsummaryrefslogtreecommitdiffstats
path: root/sys/nixpkgs/pkgs/yt/src/bin/yts
diff options
context:
space:
mode:
Diffstat (limited to 'sys/nixpkgs/pkgs/yt/src/bin/yts')
-rw-r--r--sys/nixpkgs/pkgs/yt/src/bin/yts/args.rs41
-rw-r--r--sys/nixpkgs/pkgs/yt/src/bin/yts/main.rs91
2 files changed, 0 insertions, 132 deletions
diff --git a/sys/nixpkgs/pkgs/yt/src/bin/yts/args.rs b/sys/nixpkgs/pkgs/yt/src/bin/yts/args.rs
deleted file mode 100644
index 56989421..00000000
--- a/sys/nixpkgs/pkgs/yt/src/bin/yts/args.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-use clap::{Parser, Subcommand};
-/// A helper for selecting which videos to download from ytcc to ytc
-#[derive(Parser, Debug)]
-#[clap(author, version, about, long_about = None)]
-pub struct Args {
- #[command(subcommand)]
- /// subcommand to execute
- pub subcommand: Option<Command>,
-}
-
-#[derive(Subcommand, Debug)]
-pub enum Command {
- #[clap(value_parser)]
- /// Which ordering to use
- Order {
- #[command(subcommand)]
- command: OrderCommand,
- },
-}
-
-#[derive(Subcommand, Debug)]
-pub enum OrderCommand {
- #[clap(value_parser)]
- /// Order by date
- #[group(required = true)]
- Date {
- #[arg(value_parser)]
- /// Order descending
- desc: bool,
- #[clap(value_parser)]
- /// Order ascending
- asc: bool,
- },
- #[clap(value_parser)]
- /// Pass a raw SQL 'ORDER BY' value
- Raw {
- #[clap(value_parser)]
- /// The raw value(s) to pass
- value: Vec<String>,
- },
-}
diff --git a/sys/nixpkgs/pkgs/yt/src/bin/yts/main.rs b/sys/nixpkgs/pkgs/yt/src/bin/yts/main.rs
deleted file mode 100644
index 7398db61..00000000
--- a/sys/nixpkgs/pkgs/yt/src/bin/yts/main.rs
+++ /dev/null
@@ -1,91 +0,0 @@
-use anyhow::{bail, Context, Result};
-use clap::Parser;
-use std::{
- env,
- io::{BufRead, BufReader, Write},
- process::Command as StdCmd,
-};
-use tempfile::NamedTempFile;
-use yt::{constants::HELP_STR, filter_line, YtccListData};
-
-use crate::args::{Args, Command, OrderCommand};
-
-mod args;
-
-fn main() -> Result<()> {
- let args = Args::parse();
- cli_log::init_cli_log!();
-
- let ordering = match args.subcommand.unwrap_or(Command::Order {
- command: OrderCommand::Date {
- desc: true,
- asc: false,
- },
- }) {
- Command::Order { command } => match command {
- OrderCommand::Date { desc, asc } => {
- if desc {
- vec!["--order-by".into(), "publish_date".into(), "desc".into()]
- } else if asc {
- vec!["--order-by".into(), "publish_date".into(), "asc".into()]
- } else {
- vec!["--order-by".into(), "publish_date".into(), "desc".into()]
- }
- }
- OrderCommand::Raw { value } => [vec!["--order-by".into()], value].concat(),
- },
- };
-
- let json_map = {
- let mut ytcc = StdCmd::new("ytcc");
- ytcc.args(["--output", "json", "list"]);
- ytcc.args(ordering);
-
- serde_json::from_slice::<Vec<YtccListData>>(
- &ytcc.output().context("Failed to json from ytcc")?.stdout,
- )
- .context("Failed to deserialize json output")?
- };
-
- let mut edit_file = NamedTempFile::new().context("Failed to get tempfile")?;
-
- json_map.iter().for_each(|line| {
- let line = line.to_string();
- edit_file
- .write_all(line.as_bytes())
- .expect("This write should not fail");
- });
-
- write!(&edit_file, "{}", HELP_STR)?;
- edit_file.flush().context("Failed to flush edit file")?;
-
- let read_file = edit_file.reopen()?;
-
- let mut nvim = StdCmd::new("nvim");
- nvim.arg(edit_file.path());
-
- let status = nvim.status().context("Falied to run nvim")?;
- if !status.success() {
- bail!("Nvim exited with error status: {}", status)
- }
-
- let mut watching = Vec::new();
- let reader = BufReader::new(&read_file);
- for line in reader.lines() {
- let line = line.context("Failed to read line")?;
-
- if let Some(downloadable) =
- filter_line(&line).with_context(|| format!("Failed to process line: '{}'", line))?
- {
- watching.push(downloadable);
- }
- }
-
- let watching: String = watching
- .iter()
- .map(|d| d.to_string())
- .collect::<Vec<String>>()
- .join("\n");
- println!("{}", &watching);
- Ok(())
-}