From ed7c493b648d935b5070a7ade787e3b44d057847 Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Mon, 26 Feb 2024 22:46:08 +0200 Subject: [PATCH] introduce logging to important functions --- src/bot/bot.rs | 1 + src/bot/log.rs | 4 +++- src/bot/util.rs | 9 --------- src/dl.rs | 10 ++++++---- src/dl/spawn.rs | 3 +-- src/dl/yt_dlp.rs | 11 +++++++++-- 6 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/bot/bot.rs b/src/bot/bot.rs index 6ccd699..15b8c10 100644 --- a/src/bot/bot.rs +++ b/src/bot/bot.rs @@ -106,6 +106,7 @@ async fn bot_download(bot: Bot, msg: Message, url: String) -> HandlerResult { let output_path = match download(url.as_str()).await { Ok(path) => path, Err(e) => { + event!(Level::ERROR, "{}", e.to_string()); bot.send_message(msg.chat.id, e.to_string()).await?; return Ok(()); } diff --git a/src/bot/log.rs b/src/bot/log.rs index 664ca9f..b386e55 100644 --- a/src/bot/log.rs +++ b/src/bot/log.rs @@ -17,7 +17,9 @@ pub fn log_init() { .with_writer(io::stderr) .with_filter(LevelFilter::ERROR); - let file_layer = fmt::layer().with_writer(log_appender); + let file_layer = fmt::layer() + .with_writer(log_appender) + .with_filter(LevelFilter::INFO); tracing_subscriber::registry() .with(stderr_layer) diff --git a/src/bot/util.rs b/src/bot/util.rs index cfdd722..6861774 100644 --- a/src/bot/util.rs +++ b/src/bot/util.rs @@ -16,12 +16,3 @@ pub fn make_database_url() -> String { let path = Path::new(VAR_LIB).join("mk-dl-bot.db"); format!("sqlite://{}", path.as_os_str().to_str().unwrap()).to_string() } - -pub fn make_log_path() -> String { - Path::new(VAR_LOG) - .join("mk-dl-bot.log") - .as_os_str() - .to_str() - .unwrap() - .to_string() -} diff --git a/src/dl.rs b/src/dl.rs index 162db83..ca1876b 100644 --- a/src/dl.rs +++ b/src/dl.rs @@ -1,8 +1,6 @@ use std::fmt; use std::fs; -use std::path::Path; - -use teloxide::types::Message; +use tracing::{event, Level}; use self::spawn::SpawnError; use self::yt_dlp::{YtDlp, YtDlpError, YtDlpFormat, YtDlpInfo}; @@ -60,11 +58,15 @@ fn file_exists(path: &str) -> bool { pub fn delete_if_exists(path: &str) { if file_exists(path) { - fs::remove_file(path); + if let Err(e) = fs::remove_file(path) { + event!(Level::ERROR, "{}", e); + } } } pub async fn download(url: &str) -> Result { + event!(Level::INFO, "url {}", url); + let info = YtDlp::load_info(url).await?; let av = match info.best_av_format() { Some(av) => av, diff --git a/src/dl/spawn.rs b/src/dl/spawn.rs index 500dcc4..fa4b61c 100644 --- a/src/dl/spawn.rs +++ b/src/dl/spawn.rs @@ -36,8 +36,7 @@ impl fmt::Display for SpawnError { /* !!! The argument list could be exploited in a way to inject malicious arguments !!! !!! and alter the way program executes and/or gain access to system !!! */ -pub async fn spawn(program: &str, args: &[&str]) -> Result -{ +pub async fn spawn(program: &str, args: &[&str]) -> Result { { let cmd_args = args.join(" "); event!(Level::INFO, "{} {}", program, cmd_args); diff --git a/src/dl/yt_dlp.rs b/src/dl/yt_dlp.rs index 3b811a8..af7b92a 100644 --- a/src/dl/yt_dlp.rs +++ b/src/dl/yt_dlp.rs @@ -4,6 +4,7 @@ use ordered_float::OrderedFloat; use serde::Deserialize; use serde_json; use std::fs; +use tracing::{event, Level}; #[derive(Deserialize, Debug)] pub struct YtDlpFormat { @@ -106,7 +107,10 @@ impl YtDlpInfo { match format { Some(vf) => Some(vf.format), - None => None, + None => { + event!(Level::ERROR, "no av format for {}", self.id); + None + } } } @@ -124,7 +128,10 @@ impl YtDlpInfo { match format { Some(af) => Some(af.format), - None => None, + None => { + event!(Level::ERROR, "no audio format for {}", self.id); + None + } } } }