feat(cli): add channel search

This commit is contained in:
ThetaDev 2023-03-10 21:56:51 +01:00
parent 2e06d9c572
commit 19820db6d0

View file

@ -90,6 +90,9 @@ enum Commands {
/// Sort search resulus /// Sort search resulus
#[clap(long)] #[clap(long)]
order: Option<SearchOrder>, order: Option<SearchOrder>,
/// Channel ID for searching channel videos
#[clap(long)]
channel: Option<String>,
/// YouTube Music search filter /// YouTube Music search filter
#[clap(long)] #[clap(long)]
music: Option<MusicSearchCategory>, music: Option<MusicSearchCategory>,
@ -607,8 +610,17 @@ async fn main() {
length, length,
date, date,
order, order,
channel,
music, music,
} => match music { } => match music {
None => match channel {
Some(channel) => {
if !rustypipe::validate::channel_id(&channel) {
panic!("invalid channel id")
}
let res = rp.query().channel_search(&channel, &query).await.unwrap();
print_data(&res, format, pretty);
}
None => { None => {
let filter = search_filter::SearchFilter::new() let filter = search_filter::SearchFilter::new()
.item_type_opt(item_type.map(search_filter::ItemType::from)) .item_type_opt(item_type.map(search_filter::ItemType::from))
@ -619,6 +631,7 @@ async fn main() {
res.items.extend_limit(rp.query(), limit).await.unwrap(); res.items.extend_limit(rp.query(), limit).await.unwrap();
print_data(&res, format, pretty); print_data(&res, format, pretty);
} }
},
Some(MusicSearchCategory::All) => { Some(MusicSearchCategory::All) => {
let res = rp.query().music_search(&query).await.unwrap(); let res = rp.query().music_search(&query).await.unwrap();
print_data(&res, format, pretty); print_data(&res, format, pretty);