2 Commits

Author SHA1 Message Date
Lukas Wölfer
33180e95a3 Worked on fetching 2025-08-12 21:03:49 +02:00
Lukas Wölfer
f37ca5e627 Made watchdog less verbose 2025-08-01 16:21:31 +02:00
5 changed files with 21 additions and 10 deletions

2
Cargo.lock generated
View File

@@ -2448,7 +2448,7 @@ dependencies = [
[[package]] [[package]]
name = "teachertracker-rs" name = "teachertracker-rs"
version = "0.1.0" version = "0.1.2"
dependencies = [ dependencies = [
"chrono", "chrono",
"futures", "futures",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "teachertracker-rs" name = "teachertracker-rs"
version = "0.1.0" version = "0.1.2"
edition = "2024" edition = "2024"
authors = ["Lukas Wölfer <coding@thasky.one>"] authors = ["Lukas Wölfer <coding@thasky.one>"]
description = "A MediaWiki bot that updates score information of teachers" description = "A MediaWiki bot that updates score information of teachers"

View File

@@ -17,7 +17,7 @@ use mwbot::{
Bot, Bot,
generators::{Generator, SortDirection, categories::CategoryMemberSort}, generators::{Generator, SortDirection, categories::CategoryMemberSort},
}; };
use std::{error::Error, path::Path}; use std::path::Path;
use crate::watchdog::watch_wanted; use crate::watchdog::watch_wanted;

View File

@@ -11,11 +11,17 @@ pub async fn watch_wanted(bot: Bot) -> ! {
let _enter = span.enter(); let _enter = span.enter();
let mut ignored_ids = vec![]; let mut ignored_ids = vec![];
let mut watch_count = 0;
loop { loop {
if ignored_ids.is_empty() { watch_count += 1;
tracing::info!("Watchdog check..."); if watch_count >= 120 {
watch_count = 0;
let failed_id_info = if ignored_ids.is_empty() {
String::new()
} else { } else {
tracing::info!("Watchdog check [{} failed ids]...", ignored_ids.len()); format!("[{} failed ids]", ignored_ids.len())
};
tracing::info!("Watchdog check{failed_id_info}...");
} }
let wanted = wanted_ids(bot.clone()).await; let wanted = wanted_ids(bot.clone()).await;
let mut new_ignored = vec![]; let mut new_ignored = vec![];

View File

@@ -11,14 +11,17 @@ pub async fn fetch_wsdc_info(id: u32) -> Result<DanceInfo, DanceInfoError> {
.map_err(DanceInfoError::ClientBuild)?; .map_err(DanceInfoError::ClientBuild)?;
let mut params = HashMap::new(); let mut params = HashMap::new();
params.insert("q", id.to_string()); params.insert("num", id.to_string());
let response = client let request = client
.request( .request(
reqwest::Method::POST, reqwest::Method::POST,
"https://points.worldsdc.com/lookup2020/find", "https://points.worldsdc.com/lookup2020/find",
) )
.form(&params) .form(&params)
.send() .build()
.map_err(DanceInfoError::RequestBuild)?;
let response = client
.execute(request)
.await .await
.map_err(DanceInfoError::Request)?; .map_err(DanceInfoError::Request)?;
@@ -30,6 +33,8 @@ pub async fn fetch_wsdc_info(id: u32) -> Result<DanceInfo, DanceInfoError> {
pub enum DanceInfoError { pub enum DanceInfoError {
#[error("Failed to build client: {0}")] #[error("Failed to build client: {0}")]
ClientBuild(reqwest::Error), ClientBuild(reqwest::Error),
#[error("Failed to build request: {0}")]
RequestBuild(reqwest::Error),
#[error("Request error: {0}")] #[error("Request error: {0}")]
Request(reqwest::Error), Request(reqwest::Error),
#[error("Failed to parse response: {0}")] #[error("Failed to parse response: {0}")]