From faab50d1eab6159f54bc0ef25cfe2c1594afed99 Mon Sep 17 00:00:00 2001 From: VC Date: Thu, 24 Nov 2022 08:00:45 +0100 Subject: [PATCH] feat: main logic for regex + url filtering --- src/lib.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 7e13565..4b244a7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -22,6 +22,7 @@ use state::{read_state, write_state, TweetToToot}; use elefren::{prelude::*, status_builder::StatusBuilder, Language}; use futures::StreamExt; use log::info; +use regex::Regex; use rusqlite::Connection; use std::{collections::HashMap, sync::Arc}; use tokio::{spawn, sync::Mutex}; @@ -58,6 +59,14 @@ pub async fn run(config: Config) { }) .collect(); + let display_url_re = config + .scootaloo + .show_url_as_display_url_for + .as_ref() + .map(|r| + // we want to panic in case the RE is not valid + Regex::new(r).unwrap()); + let mut stream = futures::stream::iter(config.mastodon.into_values()) .map(|mastodon_config| { // calculate Twitter page size @@ -68,6 +77,8 @@ pub async fn run(config: Config) { // create temporary value for each task let scootaloo_cache_path = config.scootaloo.cache_path.clone(); let scootaloo_mentions = scootaloo_mentions.clone(); + let scootaloo_alt_services = config.scootaloo.alternative_services_for.clone(); + let display_url_re = display_url_re.clone(); let token = get_oauth2_token(&config.twitter); let task_conn = conn.clone(); @@ -108,7 +119,12 @@ pub async fn run(config: Config) { drop(lconn); // build basic status by just yielding text and dereferencing contained urls - let mut status_text = build_basic_status(tweet, &scootaloo_mentions); + let mut status_text = build_basic_status( + tweet, + &scootaloo_mentions, + &display_url_re, + &scootaloo_alt_services, + ); // building associative media list let (media_url, status_medias) =