Compare commits
3 Commits
c8c9021b78
...
e79dfe9fc5
Author | SHA1 | Date | |
---|---|---|---|
e79dfe9fc5
|
|||
cdb0277c57
|
|||
40455f0365
|
833
Cargo.lock
generated
833
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "matrix-feedbot"
|
name = "matrix-feedbot"
|
||||||
version = "0.1.4"
|
version = "0.1.5"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "GPL-3.0-or-later"
|
license = "GPL-3.0-or-later"
|
||||||
authors = ["mirsal <mirsal@mirsal.fr>"]
|
authors = ["mirsal <mirsal@mirsal.fr>"]
|
||||||
|
@ -73,7 +73,7 @@ pub async fn fetch_and_parse_feed(uri: &str) -> Result<Feed, Box<dyn Error>> {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn format_entry(feed: Feed, entry: model::Entry) -> Result<Entry, Box<dyn Error>> {
|
pub fn format_entry(feed: Feed, entry: model::Entry) -> Entry {
|
||||||
debug!("Formatting entry {}", entry.id);
|
debug!("Formatting entry {}", entry.id);
|
||||||
|
|
||||||
let mut e = Entry {
|
let mut e = Entry {
|
||||||
@ -112,5 +112,5 @@ pub fn format_entry(feed: Feed, entry: model::Entry) -> Result<Entry, Box<dyn Er
|
|||||||
content=e.content
|
content=e.content
|
||||||
));
|
));
|
||||||
|
|
||||||
Ok(e)
|
e
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ use crate::{
|
|||||||
state::FeedReaderStateDb
|
state::FeedReaderStateDb
|
||||||
};
|
};
|
||||||
|
|
||||||
use std::{ sync::Arc, cmp::max };
|
use std::{ sync::Arc, cmp::min, cmp::max };
|
||||||
use tracing::{ info, debug, error };
|
use tracing::{ info, debug, error };
|
||||||
use chrono::DateTime;
|
use chrono::DateTime;
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ async fn main() -> anyhow::Result<()> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let feed = if feed.is_none() {
|
let feed = if feed.is_none() {
|
||||||
backoff = max(backoff * 2, 6 * 3600);
|
backoff = min(backoff * 2, 6 * 3600);
|
||||||
error!("Backing off for {} seconds", backoff);
|
error!("Backing off for {} seconds", backoff);
|
||||||
sleep(Duration::from_secs(backoff)).await;
|
sleep(Duration::from_secs(backoff)).await;
|
||||||
continue;
|
continue;
|
||||||
@ -104,7 +104,7 @@ async fn main() -> anyhow::Result<()> {
|
|||||||
|
|
||||||
for entry in feed.model.entries.iter().rev() {
|
for entry in feed.model.entries.iter().rev() {
|
||||||
// FIXME: nasty clone business going on here... use Arc instead?
|
// FIXME: nasty clone business going on here... use Arc instead?
|
||||||
let parsed = format_entry(feed.clone(), (*entry).clone()).unwrap();
|
let parsed = format_entry(feed.clone(), (*entry).clone());
|
||||||
debug!("parsed entry with title: {}, updated on {}", parsed.title, parsed.ts);
|
debug!("parsed entry with title: {}, updated on {}", parsed.title, parsed.ts);
|
||||||
|
|
||||||
if parsed.ts > state_ts {
|
if parsed.ts > state_ts {
|
||||||
|
@ -98,7 +98,7 @@ pub async fn login_and_sync<T: Clone>(
|
|||||||
client
|
client
|
||||||
.matrix_auth()
|
.matrix_auth()
|
||||||
.login_username(username, password)
|
.login_username(username, password)
|
||||||
.initial_device_display_name("bender v0.1.4")
|
.initial_device_display_name("bender v0.1.5")
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
info!("logged in as {username}");
|
info!("logged in as {username}");
|
||||||
|
Reference in New Issue
Block a user