Refactor App struct

This commit is contained in:
Marc Plano-Lesay 2025-05-21 15:32:43 +10:00
parent f9692b8ddf
commit ee7d7971be
Signed by: kernald
GPG key ID: 66A41B08CC62A6CF
13 changed files with 1147 additions and 163 deletions

View file

@ -1,7 +1,8 @@
use crate::actions::action::{Action, ProcessedMagnets};
use crate::actions::bitmagnet::client::BitmagnetClient;
use crate::actions::bitmagnet::config::BitmagnetConfig;
use crate::db::{BitmagnetProcessedTable, Database};
use crate::db::BitmagnetProcessedTable;
use crate::services::database::DatabaseService;
use color_eyre::eyre::Result;
use log::{debug, warn};
@ -30,14 +31,17 @@ impl Action for BitmagnetAction {
}
/// Process all unprocessed magnet links and return the list of processed magnets
async fn process_unprocessed_magnets(&mut self, db: &mut Database) -> Result<ProcessedMagnets> {
async fn process_unprocessed_magnets(
&mut self,
db_service: &mut DatabaseService,
) -> Result<ProcessedMagnets> {
let unprocessed_magnets =
db.get_unprocessed_magnets_for_table::<BitmagnetProcessedTable>()?;
db_service.get_unprocessed_magnets::<BitmagnetProcessedTable>()?;
let mut processed_magnets = Vec::new();
let mut failed_magnets = Vec::new();
for magnet in unprocessed_magnets {
let tags = db.get_tags_for_magnet(magnet.id)?;
let tags = db_service.get_tags_for_magnet(magnet.id)?;
let tag_refs: Vec<&str> = tags.iter().map(|s| s.as_str()).collect();
match self
@ -60,7 +64,7 @@ impl Action for BitmagnetAction {
if !tags.is_empty() {
debug!("Tags: {:?}", tags);
}
db.mark_magnet_processed_for_table::<BitmagnetProcessedTable>(magnet.id)?;
db_service.mark_magnet_processed::<BitmagnetProcessedTable>(magnet.id)?;
processed_magnets.push(magnet);
}
Err(e) => {