Stub websever, don't store to API given filename (sometimes they have /)

This commit is contained in:
Bill Thiede 2020-02-09 21:46:05 -08:00
parent 93af9725df
commit 2dd5bb1d43

View File

@ -3,6 +3,7 @@ use std::error::Error;
use std::fs; use std::fs;
use std::fs::File; use std::fs::File;
use std::io; use std::io;
use std::net::SocketAddr;
use std::path::PathBuf; use std::path::PathBuf;
use google_api_auth; use google_api_auth;
@ -32,6 +33,13 @@ enum Command {
/// Directory to store sync. /// Directory to store sync.
output: PathBuf, output: PathBuf,
}, },
Serve {
/// Directory of data fetched by `sync`.
root: PathBuf,
/// HTTP address to listen for web requests.
#[structopt(long = "addr", default_value = "0.0.0.0:0")]
addr: SocketAddr,
},
} }
#[derive(Debug, StructOpt)] #[derive(Debug, StructOpt)]
@ -179,6 +187,11 @@ fn sync_albums(
title_filter: Option<Regex>, title_filter: Option<Regex>,
output_dir: PathBuf, output_dir: PathBuf,
) -> Result<(), Box<dyn Error>> { ) -> Result<(), Box<dyn Error>> {
// Put images from all albums in common directory.
let image_dir = output_dir.join("images");
if !image_dir.exists() {
fs::create_dir_all(&image_dir)?;
}
let albums = list_albums(client, title_filter)?; let albums = list_albums(client, title_filter)?;
for a in &albums { for a in &albums {
let album_id = a.id.as_ref().expect("unset album id").to_string(); let album_id = a.id.as_ref().expect("unset album id").to_string();
@ -195,12 +208,7 @@ fn sync_albums(
.filename .filename
.as_ref() .as_ref()
.map_or("NO_FILENAME".to_string(), |s| s.to_string()); .map_or("NO_FILENAME".to_string(), |s| s.to_string());
// Put images from all albums in common directory. let image_path = image_dir.join(mi_id);
let image_path = output_dir.join("images").join(&mi_id);
if !image_path.exists() {
fs::create_dir_all(&image_path)?;
}
let image_path = image_path.join(&filename);
if image_path.exists() { if image_path.exists() {
info!( info!(
"Skipping already downloaded {} @ {}", "Skipping already downloaded {} @ {}",
@ -277,6 +285,9 @@ fn list_albums(
}) })
.collect()) .collect())
} }
pub fn serve(addr: SocketAddr, root: PathBuf) -> Result<(), Box<dyn Error>> {
Ok(())
}
fn main() -> Result<(), Box<dyn std::error::Error>> { fn main() -> Result<(), Box<dyn std::error::Error>> {
let opt = Opt::from_args(); let opt = Opt::from_args();
@ -300,5 +311,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
title_filter, title_filter,
output, output,
} => sync_albums(&client, title_filter, output), } => sync_albums(&client, title_filter, output),
Command::Serve { addr, root } => serve(addr, root),
} }
} }