diff --git a/Cargo.lock b/Cargo.lock index 519bc75..af3c7f1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -372,6 +372,7 @@ dependencies = [ "axum", "axum-prometheus", "base64", + "book_bot_macros", "chrono", "ctrlc", "dateparser", @@ -400,6 +401,15 @@ dependencies = [ "url", ] +[[package]] +name = "book_bot_macros" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "bumpalo" version = "3.19.0" diff --git a/Cargo.toml b/Cargo.toml index 0fcacd3..6aa8e8f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,70 +1,9 @@ -[package] -name = "book_bot" -version = "0.1.0" -edition = "2021" - - -[profile.release] -opt-level = 3 -debug = false -strip = true -lto = true -codegen-units = 1 -panic = 'abort' - -[profile.profiling] -inherits = "release" -debug = true -strip = false - - -[dependencies] -once_cell = "1.21.3" - -tokio = { version = "1.44.2", features = ["rt-multi-thread", "macros"] } -tokio-util = { version = "0.7.14", features = ["compat"] } -tokio-stream = "0.1.17" -futures = "0.3.31" - -axum = "0.8.3" -axum-prometheus = "0.9.0" - -tower = "0.5.2" -tower-http = { version = "0.6.2", features = ["trace"] } +[workspace] +members = ["book_bot", "book_bot_macros"] +resolver = "2" +[workspace.dependencies] tracing = "0.1.41" -tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } -sentry-tracing = "0.42.0" - -reqwest = { version = "0.12.15", features = ["json", "stream"] } - -serde = { version = "1.0.219", features = ["derive"] } -serde_json = "1.0.140" - -teloxide = { version = "0.17.0", features = [ - "macros", - "webhooks-axum", - "cache-me", - "throttle", -] } - -url = "2.5.4" - -ctrlc = { version = "3.4.5", features = ["termination"] } - -strum = "0.27.1" -strum_macros = "0.27.1" - -base64 = "0.22.1" -textwrap = "0.16.2" -regex = "1.11.1" -chrono = "0.4.40" -dateparser = "0.2.1" - -smallvec = { version = "1.14.0", features = ["serde"] } -smartstring = { version = "1.0.1", features = ["serde"] } - -moka = { version = "0.12.10", features = ["future"] } - -sentry = { version = "0.42.0", features = ["debug-images"] } -anyhow = "1.0.98" +syn = { version = "2.0", features = ["full"] } +quote = "1.0" +proc-macro2 = "1.0" diff --git a/book_bot/Cargo.toml b/book_bot/Cargo.toml new file mode 100644 index 0000000..22afe49 --- /dev/null +++ b/book_bot/Cargo.toml @@ -0,0 +1,78 @@ +[package] +name = "book_bot" +version = "0.1.0" +edition = "2021" +description = "Binary crate for the book_bot application." + +[dependencies] +# Local procedural-macro crate (path is relative to this crate directory) +book_bot_macros = { path = "../book_bot_macros" } + +# Core runtime / async +once_cell = "1.21.3" +tokio = { version = "1.44.2", features = ["rt-multi-thread", "macros"] } +tokio-util = { version = "0.7.14", features = ["compat"] } +tokio-stream = "0.1.17" +futures = "0.3.31" + +# Web / server / metrics +axum = "0.8.3" +axum-prometheus = "0.9.0" + +# Middleware / tower +tower = "0.5.2" +tower-http = { version = "0.6.2", features = ["trace"] } + +# Observability +tracing = "0.1.41" +tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } +sentry-tracing = "0.42.0" +sentry = { version = "0.42.0", features = ["debug-images"] } + +# HTTP client +reqwest = { version = "0.12.15", features = ["json", "stream"] } + +# Serialization +serde = { version = "1.0.219", features = ["derive"] } +serde_json = "1.0.140" + +# Telegram bot framework +teloxide = { version = "0.17.0", features = [ + "macros", + "webhooks-axum", + "cache-me", + "throttle", +] } + +# Utilities and helpers +url = "2.5.4" +ctrlc = { version = "3.4.5", features = ["termination"] } + +strum = "0.27.1" +strum_macros = "0.27.1" + +base64 = "0.22.1" +textwrap = "0.16.2" +regex = "1.11.1" +chrono = "0.4.40" +dateparser = "0.2.1" + +smallvec = { version = "1.14.0", features = ["serde"] } +smartstring = { version = "1.0.1", features = ["serde"] } + +moka = { version = "0.12.10", features = ["future"] } + +anyhow = "1.0.98" + +[profile.release] +opt-level = 3 +debug = false +strip = true +lto = true +codegen-units = 1 +panic = "abort" + +[profile.profiling] +inherits = "release" +debug = true +strip = false diff --git a/src/bots/approved_bot/mod.rs b/book_bot/src/bots/approved_bot/mod.rs similarity index 100% rename from src/bots/approved_bot/mod.rs rename to book_bot/src/bots/approved_bot/mod.rs diff --git a/src/bots/approved_bot/modules/annotations/callback_data.rs b/book_bot/src/bots/approved_bot/modules/annotations/callback_data.rs similarity index 100% rename from src/bots/approved_bot/modules/annotations/callback_data.rs rename to book_bot/src/bots/approved_bot/modules/annotations/callback_data.rs diff --git a/src/bots/approved_bot/modules/annotations/commands.rs b/book_bot/src/bots/approved_bot/modules/annotations/commands.rs similarity index 100% rename from src/bots/approved_bot/modules/annotations/commands.rs rename to book_bot/src/bots/approved_bot/modules/annotations/commands.rs diff --git a/src/bots/approved_bot/modules/annotations/errors.rs b/book_bot/src/bots/approved_bot/modules/annotations/errors.rs similarity index 100% rename from src/bots/approved_bot/modules/annotations/errors.rs rename to book_bot/src/bots/approved_bot/modules/annotations/errors.rs diff --git a/src/bots/approved_bot/modules/annotations/formatter.rs b/book_bot/src/bots/approved_bot/modules/annotations/formatter.rs similarity index 100% rename from src/bots/approved_bot/modules/annotations/formatter.rs rename to book_bot/src/bots/approved_bot/modules/annotations/formatter.rs diff --git a/src/bots/approved_bot/modules/annotations/mod.rs b/book_bot/src/bots/approved_bot/modules/annotations/mod.rs similarity index 98% rename from src/bots/approved_bot/modules/annotations/mod.rs rename to book_bot/src/bots/approved_bot/modules/annotations/mod.rs index 05b378d..c8739a8 100644 --- a/src/bots/approved_bot/modules/annotations/mod.rs +++ b/book_bot/src/bots/approved_bot/modules/annotations/mod.rs @@ -3,6 +3,8 @@ pub mod commands; pub mod errors; pub mod formatter; +use book_bot_macros::log_handler; + use std::convert::TryInto; use futures::TryStreamExt; @@ -40,6 +42,7 @@ async fn download_image( Ok(reqwest::get(file).await?.error_for_status()?) } +#[log_handler("annotations")] pub async fn send_annotation_handler( message: Message, bot: CacheMe>, @@ -115,6 +118,7 @@ where Ok(()) } +#[log_handler("annotations")] pub async fn annotation_pagination_handler( cq: CallbackQuery, bot: CacheMe>, diff --git a/src/bots/approved_bot/modules/book/callback_data.rs b/book_bot/src/bots/approved_bot/modules/book/callback_data.rs similarity index 100% rename from src/bots/approved_bot/modules/book/callback_data.rs rename to book_bot/src/bots/approved_bot/modules/book/callback_data.rs diff --git a/src/bots/approved_bot/modules/book/commands.rs b/book_bot/src/bots/approved_bot/modules/book/commands.rs similarity index 100% rename from src/bots/approved_bot/modules/book/commands.rs rename to book_bot/src/bots/approved_bot/modules/book/commands.rs diff --git a/src/bots/approved_bot/modules/book/mod.rs b/book_bot/src/bots/approved_bot/modules/book/mod.rs similarity index 98% rename from src/bots/approved_bot/modules/book/mod.rs rename to book_bot/src/bots/approved_bot/modules/book/mod.rs index 90823b6..ffdb389 100644 --- a/src/bots/approved_bot/modules/book/mod.rs +++ b/book_bot/src/bots/approved_bot/modules/book/mod.rs @@ -1,6 +1,8 @@ pub mod callback_data; pub mod commands; +use book_bot_macros::log_handler; + use core::fmt::Debug; use smartstring::alias::String as SmartString; @@ -31,6 +33,7 @@ use self::{callback_data::BookCallbackData, commands::BookCommand}; use super::utils::{filter_command::filter_command, pagination::generic_get_pagination_keyboard}; +#[log_handler("book")] async fn send_book_handler( message: Message, bot: CacheMe>, @@ -49,9 +52,7 @@ where }; let chat_id = message.chat.id; - let user_id = message.from.map(|from| from.id); - - let user_id = match user_id { + let user_id = match message.from.map(|from| from.id) { Some(v) => v, None => { return match bot @@ -102,6 +103,7 @@ where Ok(()) } +#[log_handler("book")] async fn send_pagination_book_handler( cq: CallbackQuery, bot: CacheMe>, diff --git a/src/bots/approved_bot/modules/download/callback_data.rs b/book_bot/src/bots/approved_bot/modules/download/callback_data.rs similarity index 100% rename from src/bots/approved_bot/modules/download/callback_data.rs rename to book_bot/src/bots/approved_bot/modules/download/callback_data.rs diff --git a/src/bots/approved_bot/modules/download/commands.rs b/book_bot/src/bots/approved_bot/modules/download/commands.rs similarity index 100% rename from src/bots/approved_bot/modules/download/commands.rs rename to book_bot/src/bots/approved_bot/modules/download/commands.rs diff --git a/src/bots/approved_bot/modules/download/mod.rs b/book_bot/src/bots/approved_bot/modules/download/mod.rs similarity index 96% rename from src/bots/approved_bot/modules/download/mod.rs rename to book_bot/src/bots/approved_bot/modules/download/mod.rs index 5d04e22..f78bf8f 100644 --- a/src/bots/approved_bot/modules/download/mod.rs +++ b/book_bot/src/bots/approved_bot/modules/download/mod.rs @@ -1,6 +1,8 @@ pub mod callback_data; pub mod commands; +use book_bot_macros::log_handler; + use std::time::Duration; use chrono::Utc; @@ -187,6 +189,7 @@ async fn download_handler( } } +#[log_handler("download")] async fn get_download_keyboard_handler( message: Message, bot: CacheMe>, @@ -231,6 +234,7 @@ async fn get_download_keyboard_handler( Ok(()) } +#[log_handler("download")] async fn get_download_archive_keyboard_handler( message: Message, bot: CacheMe>, @@ -434,6 +438,7 @@ async fn wait_archive( Ok(()) } +#[log_handler("download")] async fn download_archive( cq: CallbackQuery, download_archive_query_data: DownloadArchiveQueryData, @@ -482,6 +487,16 @@ async fn download_archive( Ok(()) } +#[log_handler("download")] +async fn download_query_handler( + cq: CallbackQuery, + download_query_data: DownloadQueryData, + bot: CacheMe>, + cache: BotCache, +) -> BotHandlerInternal { + download_handler(cq.message.unwrap(), bot, cache, download_query_data, true).await +} + pub fn get_download_handler() -> crate::bots::BotHandler { dptree::entry() .branch( @@ -492,21 +507,7 @@ pub fn get_download_handler() -> crate::bots::BotHandler { .branch( Update::filter_callback_query() .chain(filter_callback_query::()) - .endpoint( - |cq: CallbackQuery, - download_query_data: DownloadQueryData, - bot: CacheMe>, - cache: BotCache| async move { - download_handler( - cq.message.unwrap(), - bot, - cache, - download_query_data, - true, - ) - .await - }, - ), + .endpoint(download_query_handler), ) .branch( Update::filter_message() diff --git a/src/bots/approved_bot/modules/help/commands.rs b/book_bot/src/bots/approved_bot/modules/help/commands.rs similarity index 100% rename from src/bots/approved_bot/modules/help/commands.rs rename to book_bot/src/bots/approved_bot/modules/help/commands.rs diff --git a/src/bots/approved_bot/modules/help/mod.rs b/book_bot/src/bots/approved_bot/modules/help/mod.rs similarity index 96% rename from src/bots/approved_bot/modules/help/mod.rs rename to book_bot/src/bots/approved_bot/modules/help/mod.rs index 3c31add..749aed5 100644 --- a/src/bots/approved_bot/modules/help/mod.rs +++ b/book_bot/src/bots/approved_bot/modules/help/mod.rs @@ -1,6 +1,7 @@ pub mod commands; use crate::bots::BotHandlerInternal; +use book_bot_macros::log_handler; use teloxide::{ adaptors::{CacheMe, Throttle}, @@ -10,6 +11,7 @@ use teloxide::{ use self::commands::HelpCommand; +#[log_handler("help")] pub async fn help_handler(message: Message, bot: CacheMe>) -> BotHandlerInternal { let name = message .from diff --git a/src/bots/approved_bot/modules/mod.rs b/book_bot/src/bots/approved_bot/modules/mod.rs similarity index 100% rename from src/bots/approved_bot/modules/mod.rs rename to book_bot/src/bots/approved_bot/modules/mod.rs diff --git a/src/bots/approved_bot/modules/random/callback_data.rs b/book_bot/src/bots/approved_bot/modules/random/callback_data.rs similarity index 100% rename from src/bots/approved_bot/modules/random/callback_data.rs rename to book_bot/src/bots/approved_bot/modules/random/callback_data.rs diff --git a/src/bots/approved_bot/modules/random/commands.rs b/book_bot/src/bots/approved_bot/modules/random/commands.rs similarity index 100% rename from src/bots/approved_bot/modules/random/commands.rs rename to book_bot/src/bots/approved_bot/modules/random/commands.rs diff --git a/src/bots/approved_bot/modules/random/mod.rs b/book_bot/src/bots/approved_bot/modules/random/mod.rs similarity index 98% rename from src/bots/approved_bot/modules/random/mod.rs rename to book_bot/src/bots/approved_bot/modules/random/mod.rs index 722a31b..c633ff4 100644 --- a/src/bots/approved_bot/modules/random/mod.rs +++ b/book_bot/src/bots/approved_bot/modules/random/mod.rs @@ -1,6 +1,8 @@ pub mod callback_data; pub mod commands; +use book_bot_macros::log_handler; + use smallvec::SmallVec; use smartstring::alias::String as SmartString; use teloxide::{ @@ -23,6 +25,7 @@ use crate::bots::{ use self::commands::RandomCommand; +#[log_handler("random")] async fn random_handler( message: Message, bot: CacheMe>, @@ -111,6 +114,7 @@ where } } +#[log_handler("random")] async fn get_random_item_handler( cq: CallbackQuery, bot: CacheMe>, @@ -127,6 +131,7 @@ where get_random_item_handler_internal(cq, bot, item).await } +#[log_handler("random")] async fn get_genre_metas_handler( cq: CallbackQuery, bot: CacheMe>, @@ -169,6 +174,7 @@ async fn get_genre_metas_handler( Ok(()) } +#[log_handler("random")] async fn get_genres_by_meta_handler( cq: CallbackQuery, bot: CacheMe>, @@ -233,6 +239,7 @@ async fn get_genres_by_meta_handler( Ok(()) } +#[log_handler("random")] async fn get_random_book_by_genre( cq: CallbackQuery, bot: CacheMe>, diff --git a/src/bots/approved_bot/modules/search/callback_data.rs b/book_bot/src/bots/approved_bot/modules/search/callback_data.rs similarity index 100% rename from src/bots/approved_bot/modules/search/callback_data.rs rename to book_bot/src/bots/approved_bot/modules/search/callback_data.rs diff --git a/src/bots/approved_bot/modules/search/mod.rs b/book_bot/src/bots/approved_bot/modules/search/mod.rs similarity index 99% rename from src/bots/approved_bot/modules/search/mod.rs rename to book_bot/src/bots/approved_bot/modules/search/mod.rs index 0e9a1db..fd1d4c4 100644 --- a/src/bots/approved_bot/modules/search/mod.rs +++ b/book_bot/src/bots/approved_bot/modules/search/mod.rs @@ -1,6 +1,8 @@ pub mod callback_data; pub mod utils; +use book_bot_macros::log_handler; + use core::fmt::Debug; use smartstring::alias::String as SmartString; @@ -35,6 +37,7 @@ use self::{ use super::utils::pagination::generic_get_pagination_keyboard; +#[log_handler("search")] async fn generic_search_pagination_handler( cq: CallbackQuery, bot: CacheMe>, @@ -126,6 +129,7 @@ where } } +#[log_handler("search")] pub async fn message_handler(message: Message, bot: CacheMe>) -> BotHandlerInternal { let query = message.text().map(|t| t.trim()).filter(|t| !t.is_empty()); let user_id = message.from.as_ref().map(|u| u.id); diff --git a/src/bots/approved_bot/modules/search/utils.rs b/book_bot/src/bots/approved_bot/modules/search/utils.rs similarity index 100% rename from src/bots/approved_bot/modules/search/utils.rs rename to book_bot/src/bots/approved_bot/modules/search/utils.rs diff --git a/src/bots/approved_bot/modules/settings/callback_data.rs b/book_bot/src/bots/approved_bot/modules/settings/callback_data.rs similarity index 100% rename from src/bots/approved_bot/modules/settings/callback_data.rs rename to book_bot/src/bots/approved_bot/modules/settings/callback_data.rs diff --git a/src/bots/approved_bot/modules/settings/commands.rs b/book_bot/src/bots/approved_bot/modules/settings/commands.rs similarity index 100% rename from src/bots/approved_bot/modules/settings/commands.rs rename to book_bot/src/bots/approved_bot/modules/settings/commands.rs diff --git a/src/bots/approved_bot/modules/settings/mod.rs b/book_bot/src/bots/approved_bot/modules/settings/mod.rs similarity index 99% rename from src/bots/approved_bot/modules/settings/mod.rs rename to book_bot/src/bots/approved_bot/modules/settings/mod.rs index ab58560..2c7af14 100644 --- a/src/bots/approved_bot/modules/settings/mod.rs +++ b/book_bot/src/bots/approved_bot/modules/settings/mod.rs @@ -1,6 +1,8 @@ pub mod callback_data; pub mod commands; +use book_bot_macros::log_handler; + use std::collections::HashSet; use smallvec::SmallVec; @@ -44,6 +46,7 @@ fn get_main_settings_keyboard() -> InlineKeyboardMarkup { } } +#[log_handler("settings")] async fn settings_handler(message: Message, bot: CacheMe>) -> BotHandlerInternal { bot.send_message(message.chat.id, "Настройки") .reply_markup(get_main_settings_keyboard()) @@ -149,6 +152,7 @@ fn get_default_search_keyboard(current: Option) -> InlineKeyb } } +#[log_handler("settings")] async fn settings_callback_handler( cq: CallbackQuery, bot: CacheMe>, diff --git a/src/bots/approved_bot/modules/support/mod.rs b/book_bot/src/bots/approved_bot/modules/support/mod.rs similarity index 96% rename from src/bots/approved_bot/modules/support/mod.rs rename to book_bot/src/bots/approved_bot/modules/support/mod.rs index 970fb6f..5ee4fa7 100644 --- a/src/bots/approved_bot/modules/support/mod.rs +++ b/book_bot/src/bots/approved_bot/modules/support/mod.rs @@ -1,4 +1,5 @@ use crate::bots::BotHandlerInternal; +use book_bot_macros::log_handler; use teloxide::{ adaptors::{CacheMe, Throttle}, @@ -14,6 +15,7 @@ enum SupportCommand { Donate, } +#[log_handler("support")] pub async fn support_command_handler( message: Message, bot: &CacheMe>, diff --git a/src/bots/approved_bot/modules/update_history/callback_data.rs b/book_bot/src/bots/approved_bot/modules/update_history/callback_data.rs similarity index 100% rename from src/bots/approved_bot/modules/update_history/callback_data.rs rename to book_bot/src/bots/approved_bot/modules/update_history/callback_data.rs diff --git a/src/bots/approved_bot/modules/update_history/commands.rs b/book_bot/src/bots/approved_bot/modules/update_history/commands.rs similarity index 100% rename from src/bots/approved_bot/modules/update_history/commands.rs rename to book_bot/src/bots/approved_bot/modules/update_history/commands.rs diff --git a/src/bots/approved_bot/modules/update_history/mod.rs b/book_bot/src/bots/approved_bot/modules/update_history/mod.rs similarity index 98% rename from src/bots/approved_bot/modules/update_history/mod.rs rename to book_bot/src/bots/approved_bot/modules/update_history/mod.rs index f663a5c..46a618e 100644 --- a/src/bots/approved_bot/modules/update_history/mod.rs +++ b/book_bot/src/bots/approved_bot/modules/update_history/mod.rs @@ -1,6 +1,7 @@ pub mod callback_data; pub mod commands; +use book_bot_macros::log_handler; use chrono::{prelude::*, Duration}; use crate::bots::{ @@ -21,6 +22,7 @@ use self::{callback_data::UpdateLogCallbackData, commands::UpdateLogCommand}; use super::utils::pagination::generic_get_pagination_keyboard; +#[log_handler("update_history")] async fn update_log_command(message: Message, bot: CacheMe>) -> BotHandlerInternal { let now = Utc::now().date_naive(); let d3 = now - Duration::days(3); @@ -76,6 +78,7 @@ async fn update_log_command(message: Message, bot: CacheMe>) -> Bo } } +#[log_handler("update_history")] async fn update_log_pagination_handler( cq: CallbackQuery, bot: CacheMe>, diff --git a/src/bots/approved_bot/modules/utils/errors.rs b/book_bot/src/bots/approved_bot/modules/utils/errors.rs similarity index 100% rename from src/bots/approved_bot/modules/utils/errors.rs rename to book_bot/src/bots/approved_bot/modules/utils/errors.rs diff --git a/src/bots/approved_bot/modules/utils/filter_command.rs b/book_bot/src/bots/approved_bot/modules/utils/filter_command.rs similarity index 100% rename from src/bots/approved_bot/modules/utils/filter_command.rs rename to book_bot/src/bots/approved_bot/modules/utils/filter_command.rs diff --git a/src/bots/approved_bot/modules/utils/message_text.rs b/book_bot/src/bots/approved_bot/modules/utils/message_text.rs similarity index 100% rename from src/bots/approved_bot/modules/utils/message_text.rs rename to book_bot/src/bots/approved_bot/modules/utils/message_text.rs diff --git a/src/bots/approved_bot/modules/utils/mod.rs b/book_bot/src/bots/approved_bot/modules/utils/mod.rs similarity index 100% rename from src/bots/approved_bot/modules/utils/mod.rs rename to book_bot/src/bots/approved_bot/modules/utils/mod.rs diff --git a/src/bots/approved_bot/modules/utils/pagination.rs b/book_bot/src/bots/approved_bot/modules/utils/pagination.rs similarity index 100% rename from src/bots/approved_bot/modules/utils/pagination.rs rename to book_bot/src/bots/approved_bot/modules/utils/pagination.rs diff --git a/src/bots/approved_bot/modules/utils/split_text.rs b/book_bot/src/bots/approved_bot/modules/utils/split_text.rs similarity index 100% rename from src/bots/approved_bot/modules/utils/split_text.rs rename to book_bot/src/bots/approved_bot/modules/utils/split_text.rs diff --git a/src/bots/approved_bot/services/batch_downloader.rs b/book_bot/src/bots/approved_bot/services/batch_downloader.rs similarity index 100% rename from src/bots/approved_bot/services/batch_downloader.rs rename to book_bot/src/bots/approved_bot/services/batch_downloader.rs diff --git a/src/bots/approved_bot/services/book_cache/mod.rs b/book_bot/src/bots/approved_bot/services/book_cache/mod.rs similarity index 100% rename from src/bots/approved_bot/services/book_cache/mod.rs rename to book_bot/src/bots/approved_bot/services/book_cache/mod.rs diff --git a/src/bots/approved_bot/services/book_cache/types.rs b/book_bot/src/bots/approved_bot/services/book_cache/types.rs similarity index 100% rename from src/bots/approved_bot/services/book_cache/types.rs rename to book_bot/src/bots/approved_bot/services/book_cache/types.rs diff --git a/src/bots/approved_bot/services/book_library/formatters.rs b/book_bot/src/bots/approved_bot/services/book_library/formatters.rs similarity index 100% rename from src/bots/approved_bot/services/book_library/formatters.rs rename to book_bot/src/bots/approved_bot/services/book_library/formatters.rs diff --git a/src/bots/approved_bot/services/book_library/mod.rs b/book_bot/src/bots/approved_bot/services/book_library/mod.rs similarity index 100% rename from src/bots/approved_bot/services/book_library/mod.rs rename to book_bot/src/bots/approved_bot/services/book_library/mod.rs diff --git a/src/bots/approved_bot/services/book_library/types.rs b/book_bot/src/bots/approved_bot/services/book_library/types.rs similarity index 100% rename from src/bots/approved_bot/services/book_library/types.rs rename to book_bot/src/bots/approved_bot/services/book_library/types.rs diff --git a/src/bots/approved_bot/services/donation_notifications.rs b/book_bot/src/bots/approved_bot/services/donation_notifications.rs similarity index 100% rename from src/bots/approved_bot/services/donation_notifications.rs rename to book_bot/src/bots/approved_bot/services/donation_notifications.rs diff --git a/src/bots/approved_bot/services/mod.rs b/book_bot/src/bots/approved_bot/services/mod.rs similarity index 100% rename from src/bots/approved_bot/services/mod.rs rename to book_bot/src/bots/approved_bot/services/mod.rs diff --git a/src/bots/approved_bot/services/user_settings/mod.rs b/book_bot/src/bots/approved_bot/services/user_settings/mod.rs similarity index 100% rename from src/bots/approved_bot/services/user_settings/mod.rs rename to book_bot/src/bots/approved_bot/services/user_settings/mod.rs diff --git a/src/bots/approved_bot/tools.rs b/book_bot/src/bots/approved_bot/tools.rs similarity index 100% rename from src/bots/approved_bot/tools.rs rename to book_bot/src/bots/approved_bot/tools.rs diff --git a/src/bots/bots_manager/mod.rs b/book_bot/src/bots/bots_manager/mod.rs similarity index 96% rename from src/bots/bots_manager/mod.rs rename to book_bot/src/bots/bots_manager/mod.rs index 9613012..5cbd605 100644 --- a/src/bots/bots_manager/mod.rs +++ b/book_bot/src/bots/bots_manager/mod.rs @@ -1,4 +1,5 @@ use anyhow; +use book_bot_macros::log_handler; use teloxide::{ adaptors::{CacheMe, Throttle}, prelude::*, @@ -11,8 +12,10 @@ pub mod register; pub mod strings; pub mod utils; +#[log_handler("manager")] pub async fn message_handler(message: Message, bot: CacheMe>) -> anyhow::Result<()> { let from_user = message.clone().from.unwrap(); + let text = message.text().unwrap_or(""); let result = register::register(from_user.id, text).await; diff --git a/src/bots/bots_manager/register.rs b/book_bot/src/bots/bots_manager/register.rs similarity index 100% rename from src/bots/bots_manager/register.rs rename to book_bot/src/bots/bots_manager/register.rs diff --git a/src/bots/bots_manager/strings.rs b/book_bot/src/bots/bots_manager/strings.rs similarity index 100% rename from src/bots/bots_manager/strings.rs rename to book_bot/src/bots/bots_manager/strings.rs diff --git a/src/bots/bots_manager/utils.rs b/book_bot/src/bots/bots_manager/utils.rs similarity index 100% rename from src/bots/bots_manager/utils.rs rename to book_bot/src/bots/bots_manager/utils.rs diff --git a/src/bots/mod.rs b/book_bot/src/bots/mod.rs similarity index 100% rename from src/bots/mod.rs rename to book_bot/src/bots/mod.rs diff --git a/src/bots_manager/axum_server.rs b/book_bot/src/bots_manager/axum_server.rs similarity index 100% rename from src/bots_manager/axum_server.rs rename to book_bot/src/bots_manager/axum_server.rs diff --git a/src/bots_manager/bot_manager_client.rs b/book_bot/src/bots_manager/bot_manager_client.rs similarity index 100% rename from src/bots_manager/bot_manager_client.rs rename to book_bot/src/bots_manager/bot_manager_client.rs diff --git a/src/bots_manager/closable_sender.rs b/book_bot/src/bots_manager/closable_sender.rs similarity index 100% rename from src/bots_manager/closable_sender.rs rename to book_bot/src/bots_manager/closable_sender.rs diff --git a/src/bots_manager/custom_error_handler.rs b/book_bot/src/bots_manager/custom_error_handler.rs similarity index 100% rename from src/bots_manager/custom_error_handler.rs rename to book_bot/src/bots_manager/custom_error_handler.rs diff --git a/src/bots_manager/internal.rs b/book_bot/src/bots_manager/internal.rs similarity index 100% rename from src/bots_manager/internal.rs rename to book_bot/src/bots_manager/internal.rs diff --git a/src/bots_manager/mod.rs b/book_bot/src/bots_manager/mod.rs similarity index 100% rename from src/bots_manager/mod.rs rename to book_bot/src/bots_manager/mod.rs diff --git a/src/bots_manager/utils.rs b/book_bot/src/bots_manager/utils.rs similarity index 100% rename from src/bots_manager/utils.rs rename to book_bot/src/bots_manager/utils.rs diff --git a/src/config.rs b/book_bot/src/config.rs similarity index 100% rename from src/config.rs rename to book_bot/src/config.rs diff --git a/src/main.rs b/book_bot/src/main.rs similarity index 100% rename from src/main.rs rename to book_bot/src/main.rs