aboutsummaryrefslogtreecommitdiff
path: root/import/src/main.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-08-04 09:49:51 +0200
committermetamuffin <metamuffin@disroot.org>2023-08-04 09:49:51 +0200
commitcc37287b8c7280051a07d8f735e47e88bfe9fee6 (patch)
treef6081de54d47e7b4cde709ef77901ac6a6d93327 /import/src/main.rs
parent9d283fff3352b970a0dd0cb913e122b4d3c3d342 (diff)
downloadjellything-cc37287b8c7280051a07d8f735e47e88bfe9fee6.tar
jellything-cc37287b8c7280051a07d8f735e47e88bfe9fee6.tar.bz2
jellything-cc37287b8c7280051a07d8f735e47e88bfe9fee6.tar.zst
import video description
Diffstat (limited to 'import/src/main.rs')
-rw-r--r--import/src/main.rs89
1 files changed, 53 insertions, 36 deletions
diff --git a/import/src/main.rs b/import/src/main.rs
index 645bca0..806ebfb 100644
--- a/import/src/main.rs
+++ b/import/src/main.rs
@@ -39,6 +39,8 @@ enum Action {
copy: bool,
#[arg(long)]
r#move: bool,
+ #[arg(long)]
+ video: bool,
#[arg(short, long)]
input: Option<PathBuf>,
#[arg(short, long)]
@@ -61,6 +63,7 @@ fn main() -> anyhow::Result<()> {
input,
series,
copy,
+ video,
r#move,
} => {
let tmdb_kind = if series { "tv" } else { "movie" };
@@ -128,7 +131,11 @@ fn main() -> anyhow::Result<()> {
import_seek_index(&mut input)?
};
- kind = NodeKind::Movie;
+ kind = if video {
+ NodeKind::Video
+ } else {
+ NodeKind::Movie
+ };
}
let title = file_meta
@@ -143,37 +150,42 @@ fn main() -> anyhow::Result<()> {
let ident = make_ident(&title);
let path = path.join(&ident);
- let poster = tmdb_details
- .as_ref()
- .map(|d| {
- d.poster_path
- .as_ref()
- .map(|p| {
- let pu = path.join("poster.jpeg");
- let mut f = File::create(&pu)?;
- tmdb_image(&p, &mut f)?;
- Ok::<_, anyhow::Error>(pu)
- })
- .transpose()
- })
- .transpose()?
- .flatten();
+ let (mut poster, mut backdrop) = (None, None);
+ if !args.dry {
+ std::fs::create_dir_all(&path)?;
- let backdrop = tmdb_details
- .as_ref()
- .map(|d| {
- d.backdrop_path
- .as_ref()
- .map(|p| {
- let pu = path.join("backdrop.jpeg");
- let mut f = File::create(&pu)?;
- tmdb_image(&p, &mut f)?;
- Ok::<_, anyhow::Error>(pu)
- })
- .transpose()
- })
- .transpose()?
- .flatten();
+ poster = tmdb_details
+ .as_ref()
+ .map(|d| {
+ d.poster_path
+ .as_ref()
+ .map(|p| {
+ let pu = path.join("poster.jpeg");
+ let mut f = File::create(&pu)?;
+ tmdb_image(&p, &mut f)?;
+ Ok::<_, anyhow::Error>(pu)
+ })
+ .transpose()
+ })
+ .transpose()?
+ .flatten();
+
+ backdrop = tmdb_details
+ .as_ref()
+ .map(|d| {
+ d.backdrop_path
+ .as_ref()
+ .map(|p| {
+ let pu = path.join("backdrop.jpeg");
+ let mut f = File::create(&pu)?;
+ tmdb_image(&p, &mut f)?;
+ Ok::<_, anyhow::Error>(pu)
+ })
+ .transpose()
+ })
+ .transpose()?
+ .flatten();
+ }
let node = Node {
private: NodePrivate {
@@ -187,11 +199,17 @@ fn main() -> anyhow::Result<()> {
public: NodePublic {
parent: None,
federated: None,
- description: tmdb_details.as_ref().map(|d| d.overview.to_owned()),
- tagline: tmdb_details
+ description: file_meta
.as_ref()
- .map(|d| d.tagline.to_owned())
- .flatten(),
+ .map(|m| m.description.clone())
+ .flatten()
+ .or(tmdb_details.as_ref().map(|d| d.overview.to_owned())),
+ tagline: file_meta.as_ref().map(|m| m.tagline.clone()).flatten().or(
+ tmdb_details
+ .as_ref()
+ .map(|d| d.tagline.to_owned())
+ .flatten(),
+ ),
title,
index: None,
kind,
@@ -206,7 +224,6 @@ fn main() -> anyhow::Result<()> {
if args.dry {
println!("{}", serde_json::to_string_pretty(&node)?)
} else {
- std::fs::create_dir_all(&path)?;
if let Some(source_path) = source_path_e {
let input = input.clone().unwrap();
if r#move {