diff --git a/src/main.rs b/src/main.rs index 87fbffe..9120a7a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,5 @@ use anyhow::{bail, format_err, Result}; use chrono::{DateTime, Local, LocalResult, NaiveDate, TimeZone, Utc}; -use clap::{arg, command, Parser}; use html2md::parse_html; use log::{debug, trace}; use megalodon::{ @@ -24,35 +23,20 @@ struct Page<'a> { newest: Option<&'a DateTime>, } -#[derive(Debug, Parser)] -#[command()] -struct Config { - #[arg(required = true)] - date: String, - #[arg(short, long)] - verbose: bool, -} - #[tokio::main] async fn main() -> Result<()> { - let Config { date, verbose } = Config::parse(); - if verbose { - env::set_var("RUST_LOG", format!("{}=debug", module_path!())); - } else { - env::set_var("RUST_LOG", format!("{}=none", module_path!())); - } + env::set_var("RUST_LOG", format!("{}=debug", module_path!())); env_logger::init(); - let day = try_create_range(date)?; + // TODO add clap and argument for date + let day = try_create_range("2023-07-01")?; debug!("Date {}", day.end.format("%Y-%m-%d")); let client = create_client()?; - let Response { json: account, .. } = client.verify_account_credentials().await?; let mut last_id_on_page: Option = None; debug!("Fetching posts"); - let mut reversed = Vec::new(); loop { let json = fetch_page(&client, &last_id_on_page).await?; let page = Page { @@ -74,51 +58,35 @@ async fn main() -> Result<()> { let json = json .clone() .into_iter() - .filter(|json| { - json.account.id == account.id - && day.start <= json.created_at - && json.created_at <= day.end - }) + .filter(|json| day.start <= json.created_at && json.created_at <= day.end) .collect::>(); trace!("Filtered to {} post(s)", json.len()); let mut stream = iter(json); while let Some(status) = stream.next().await { - let ancestor = format!( + println!( "{} > {}", status.created_at.with_timezone(&Local).format("%H:%M"), - parse_html(&status.content).trim() + parse_html(&status.content) ); let Response { json, .. } = client.get_status_context(status.id, None).await?; let thread = json .descendants .into_iter() - .filter(|s| { - s.in_reply_to_account_id == Some(account.id.clone()) - && s.account.id == account.id - }) .map(|status| { format!( "> > {} >> {}", status.created_at.with_timezone(&Local).format("%H:%M"), - parse_html(&status.content).trim() + parse_html(&status.content) ) }) .collect::>() .join("\n"); - reversed.push(format!( - "{}{}", - ancestor, - if !thread.is_empty() { - thread - } else { - String::default() - } - )); + println!("{}", thread); } if page_end_older_than(&page, &day) { @@ -130,8 +98,6 @@ async fn main() -> Result<()> { last_id_on_page.replace(id.clone()); } } - reversed.reverse(); - println!("{}", reversed.join("\n\n")); Ok(()) }