aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tool/src/add.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/tool/src/add.rs b/tool/src/add.rs
index 4645846..279574f 100644
--- a/tool/src/add.rs
+++ b/tool/src/add.rs
@@ -9,6 +9,7 @@ use dialoguer::{theme::ColorfulTheme, Confirm, FuzzySelect, Input, MultiSelect};
use jellybase::{CONF, SECRETS};
use jellycommon::{AssetLocation, ImportOptions, ImportSource, TraktKind};
use jellyimport::trakt::Trakt;
+use log::warn;
use tokio::{fs::File, io::AsyncWriteExt};
pub(crate) async fn add(action: Action) -> anyhow::Result<()> {
@@ -44,8 +45,24 @@ pub(crate) async fn add(action: Action) -> anyhow::Result<()> {
find_folders(&CONF.library_path, &PathBuf::new(), &mut directories)
.context("listing library directories")?;
+ let mut default = 0;
+ for k in possible_kinds {
+ match k {
+ TraktKind::Movie => {
+ if let Some(i) = directories
+ .iter()
+ .position(|d| d.0.to_str().unwrap().contains("movies"))
+ {
+ default = i
+ };
+ }
+ _ => (),
+ }
+ }
+
let target_dir_index = FuzzySelect::with_theme(&theme)
.items(&directories)
+ .default(default)
.interact()
.unwrap();
directories[target_dir_index].0.clone()
@@ -68,8 +85,14 @@ pub(crate) async fn add(action: Action) -> anyhow::Result<()> {
let results = trakt.search(&search_kinds, &name, false).await?;
+ if results.is_empty() {
+ warn!("no search results");
+ continue;
+ }
+
let correct = FuzzySelect::with_theme(&theme)
.items(&results)
+ .default(0)
.with_prompt("Metadata Source")
.interact_opt()
.unwrap();