mirror of
https://codeberg.org/icewind/rss-webhook-trigger.git
synced 2026-06-03 09:54:18 +02:00
it requires user-agent....
This commit is contained in:
parent
a3447da5a9
commit
6f551c9f30
1 changed files with 17 additions and 15 deletions
32
src/main.rs
32
src/main.rs
|
|
@ -1,6 +1,6 @@
|
||||||
mod config;
|
mod config;
|
||||||
|
|
||||||
use crate::config::Config;
|
use crate::config::{Config, FeedConfig};
|
||||||
use color_eyre::{
|
use color_eyre::{
|
||||||
eyre::{eyre, WrapErr},
|
eyre::{eyre, WrapErr},
|
||||||
Result,
|
Result,
|
||||||
|
|
@ -51,20 +51,7 @@ async fn main_loop(config: Config) {
|
||||||
for feed in config.feed.iter() {
|
for feed in config.feed.iter() {
|
||||||
match fetcher.is_feed_updated(&feed.feed).await {
|
match fetcher.is_feed_updated(&feed.feed).await {
|
||||||
Ok(true) => {
|
Ok(true) => {
|
||||||
println!("Triggering hook for {}", feed.feed);
|
trigger(&fetcher.client, feed).await;
|
||||||
let mut req = fetcher.client.post(&feed.hook);
|
|
||||||
for (key, value) in &feed.headers {
|
|
||||||
req = req.header(key, value);
|
|
||||||
debug!("setting header '{}' = '{}'", key, value);
|
|
||||||
}
|
|
||||||
if !feed.body.is_null() {
|
|
||||||
req = req.json(&feed.body);
|
|
||||||
debug!("setting body '{:?}'", feed.body);
|
|
||||||
}
|
|
||||||
debug!("request '{:?}'", req);
|
|
||||||
if let Err(e) = req.send().await.and_then(|res| res.error_for_status()) {
|
|
||||||
eprintln!("{:#}", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Err(e) => eprintln!("{:#}", e),
|
Err(e) => eprintln!("{:#}", e),
|
||||||
Ok(false) => {}
|
Ok(false) => {}
|
||||||
|
|
@ -75,6 +62,21 @@ async fn main_loop(config: Config) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn trigger(client: &Client, feed: &FeedConfig) {
|
||||||
|
println!("Triggering hook for {}", feed.feed);
|
||||||
|
let mut req = client.post(&feed.hook).header("user-agent", "rss-webhook-trigger");
|
||||||
|
for (key, value) in &feed.headers {
|
||||||
|
req = req.header(key, value);
|
||||||
|
}
|
||||||
|
if !feed.body.is_null() {
|
||||||
|
req = req.json(&feed.body);
|
||||||
|
}
|
||||||
|
debug!("request {:?}", req);
|
||||||
|
if let Err(e) = req.send().await.and_then(|res| res.error_for_status()) {
|
||||||
|
eprintln!("{:#}", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub struct FeedFetcher {
|
pub struct FeedFetcher {
|
||||||
client: Client,
|
client: Client,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue