Compare commits
2 commits
8a9a3174ab
...
2bd746c31a
Author | SHA1 | Date | |
---|---|---|---|
2bd746c31a | |||
1dd5f7be6a |
2 changed files with 20 additions and 5 deletions
|
@ -25,7 +25,7 @@ pub(super) async fn format_status(
|
||||||
time_prefix = time_prefix,
|
time_prefix = time_prefix,
|
||||||
timestamp = status.created_at.with_timezone(&Local).format("%H:%M"),
|
timestamp = status.created_at.with_timezone(&Local).format("%H:%M"),
|
||||||
ancestor_prefix = ancestor_prefix,
|
ancestor_prefix = ancestor_prefix,
|
||||||
status = apply_block_quote(depth, (&status.content).trim()),
|
status = apply_block_quote(depth, parse_html(&status.content).trim()),
|
||||||
attachments = format_attachments(depth, &status.media_attachments)
|
attachments = format_attachments(depth, &status.media_attachments)
|
||||||
);
|
);
|
||||||
let Response { json, .. } = client.get_status_context(status.id.clone(), None).await?;
|
let Response { json, .. } = client.get_status_context(status.id.clone(), None).await?;
|
||||||
|
|
23
src/main.rs
23
src/main.rs
|
@ -1,4 +1,4 @@
|
||||||
use anyhow::Result;
|
use anyhow::{Context, Result};
|
||||||
use chrono::{DateTime, Local, Utc};
|
use chrono::{DateTime, Local, Utc};
|
||||||
use clap::{arg, command, Parser};
|
use clap::{arg, command, Parser};
|
||||||
use log::{debug, trace};
|
use log::{debug, trace};
|
||||||
|
@ -9,6 +9,7 @@ use megalodon::{
|
||||||
response::Response,
|
response::Response,
|
||||||
Megalodon,
|
Megalodon,
|
||||||
};
|
};
|
||||||
|
use tokio::fs::try_exists;
|
||||||
use tokio_stream::{iter, StreamExt};
|
use tokio_stream::{iter, StreamExt};
|
||||||
|
|
||||||
use std::{env, fs::File, io::prelude::*};
|
use std::{env, fs::File, io::prelude::*};
|
||||||
|
@ -121,9 +122,23 @@ async fn main() -> Result<()> {
|
||||||
reversed.reverse();
|
reversed.reverse();
|
||||||
|
|
||||||
if let Some(output_dir) = output_dir {
|
if let Some(output_dir) = output_dir {
|
||||||
let output = format!("{}{}.md", output_dir, date);
|
let output = format!("{}/{}.md", output_dir.trim_end_matches("/"), date);
|
||||||
let mut f = File::options().append(true).open(&output)?;
|
let mut f = match try_exists(&output).await {
|
||||||
f.write_all(&reversed.join("\n\n").as_bytes())?;
|
Ok(exists) if exists => {
|
||||||
|
debug!("Appending {}", output);
|
||||||
|
File::options().append(true).open(&output)?
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
debug!("Writing {}", output);
|
||||||
|
File::options()
|
||||||
|
.create(true)
|
||||||
|
.append(true)
|
||||||
|
.open(&output)
|
||||||
|
.with_context(|| format!("Failed to create {}", output))?
|
||||||
|
}
|
||||||
|
};
|
||||||
|
f.write_all(&reversed.join("\n\n").as_bytes())
|
||||||
|
.with_context(|| format!("Failed to write all to {}", output))?;
|
||||||
println!("Appended matching posts to {}.", output);
|
println!("Appended matching posts to {}.", output);
|
||||||
} else {
|
} else {
|
||||||
println!("{}", reversed.join("\n\n"));
|
println!("{}", reversed.join("\n\n"));
|
||||||
|
|
Loading…
Reference in a new issue