use raw
This commit is contained in:
parent
d3120cacc5
commit
a89496676b
@ -1,91 +0,0 @@
|
||||
use sea_orm::DbErr;
|
||||
use teloxide::{
|
||||
prelude::*,
|
||||
requests::{Request, Requester},
|
||||
types::{Message, UpdateKind},
|
||||
utils::command::BotCommands,
|
||||
RequestError,
|
||||
};
|
||||
use wd_log::{log_debug_ln, log_error_ln, log_info_ln, log_panic};
|
||||
|
||||
use crate::{
|
||||
commands::{CommandHandler, Commands},
|
||||
config::Args,
|
||||
};
|
||||
|
||||
pub struct BotServer {
|
||||
bot: Bot,
|
||||
pub command_handler: CommandHandler,
|
||||
}
|
||||
|
||||
impl BotServer {
|
||||
/// Create new bot
|
||||
pub async fn new(config: &Args) -> Result<Self, DbErr> {
|
||||
Ok(Self {
|
||||
bot: Bot::new(config.tgbot_token.to_owned())
|
||||
.set_api_url(reqwest::Url::parse(&config.api_url.as_str()).unwrap()),
|
||||
command_handler: CommandHandler::new(config).await?,
|
||||
})
|
||||
}
|
||||
|
||||
fn default_error_hander(&self, error: &RequestError) {
|
||||
log_error_ln!("{:?}", error);
|
||||
}
|
||||
|
||||
async fn register_commands(&self) {
|
||||
if let Err(error) = self
|
||||
.bot
|
||||
.set_my_commands(Commands::bot_commands())
|
||||
.send()
|
||||
.await
|
||||
{
|
||||
self.default_error_hander(&error);
|
||||
} else {
|
||||
log_info_ln!("commands registered")
|
||||
}
|
||||
}
|
||||
|
||||
async fn default_update_handler(&self, update_kind: &UpdateKind) {
|
||||
log_debug_ln!("non-supported kind {:?}", update_kind);
|
||||
}
|
||||
|
||||
fn default_error_handler(&self, error: &RequestError) {
|
||||
log_error_ln!("{:?}", error);
|
||||
}
|
||||
|
||||
/// Run the bot
|
||||
pub async fn run(&self) {
|
||||
match self.bot.get_me().send().await {
|
||||
Ok(result) => log_info_ln!(
|
||||
"connect succeed: id={}, botname=\"{}\"",
|
||||
result.id,
|
||||
result.username()
|
||||
),
|
||||
Err(error) => log_panic!("{}", error),
|
||||
}
|
||||
|
||||
self.register_commands().await;
|
||||
|
||||
Commands::repl(
|
||||
self.bot.to_owned(),
|
||||
|bot: Bot, msg: Message, cmd: Commands| async move {},
|
||||
)
|
||||
.await;
|
||||
}
|
||||
|
||||
/*
|
||||
fn answer_generator(&self) -> impl Future<
|
||||
Output = fn (Bot, Message, Commands) -> ResponseResult<()>> {
|
||||
fn (bot: Bot, msg: Message, cmd: Commands) -> ResponseResult<()> {
|
||||
async {
|
||||
match cmd {
|
||||
Commands::Help => Ok(self.command_handler.help_handler(&bot, &msg).await),
|
||||
Commands::About => Ok(self.command_handler.about_handler(&bot, &msg).await),
|
||||
Commands::Top => Ok(self.command_handler.top_handler(&bot, &msg).await),
|
||||
Commands::HangIt => Ok(self.command_handler.hangit_handler(&bot, &msg).await),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
Loading…
Reference in New Issue
Block a user