filter: add forwarder filter

Fixes: https://github.com/damus-io/noteguard/issues/10
Changelog-Added: Add forwarder filter
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin 2024-07-11 09:02:47 -07:00
parent 794468d98a
commit 15e53a116a
8 changed files with 169 additions and 2 deletions

View file

@ -1,9 +1,14 @@
use noteguard::filters::{Kinds, ProtectedEvents, RateLimit, Whitelist};
#[cfg(feature = "forwarder")]
use noteguard::filters::Forwarder;
use noteguard::{Action, InputMessage, NoteFilter, OutputMessage};
use serde::de::DeserializeOwned;
use serde::Deserialize;
use std::collections::HashMap;
use std::io::{self, BufRead, Read, Write};
use log::info;
#[derive(Deserialize)]
struct Config {
@ -44,6 +49,9 @@ impl Noteguard {
self.register_filter::<Whitelist>();
self.register_filter::<ProtectedEvents>();
self.register_filter::<Kinds>();
#[cfg(feature = "forwarder")]
self.register_filter::<Forwarder>();
}
/// Run the loaded filters. You must call `load_config` before calling this, otherwise
@ -94,7 +102,21 @@ impl Noteguard {
}
}
#[cfg(feature = "forwarder")]
#[tokio::main]
async fn main() {
noteguard();
}
#[cfg(not(feature = "forwarder"))]
fn main() {
noteguard();
}
fn noteguard() {
env_logger::init();
info!("running noteguard");
let config_path = "noteguard.toml";
let mut noteguard = Noteguard::new();