Working karma handler
This commit is contained in:
		| @ -1,4 +1,4 @@ | |||||||
| use teloxide::{prelude::*, repl}; | use teloxide::prelude::*; | ||||||
|  |  | ||||||
| pub mod commands; | pub mod commands; | ||||||
| mod handlers; | mod handlers; | ||||||
| @ -43,41 +43,30 @@ impl Godette { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     pub async fn message_dispatcher(bot: Bot, msg: Message) -> ResponseResult<()> { |     pub async fn message_dispatcher(bot: Bot, msg: Message) -> ResponseResult<()> { | ||||||
|         let thanks = vec!["спасибо", "спс", "благодар очка"]; |         // Checking if it's a reply | ||||||
|         let text = msg |         let message = msg.clone(); | ||||||
|             .text() |         let reply = message.reply_to_message(); | ||||||
|             .unwrap_or(msg.caption().unwrap_or_default()) |         match reply { | ||||||
|             .to_string(); |             Some(reply) => return Godette::reply_dispatcher(bot, msg, reply.to_owned()).await, | ||||||
|  |             None => (), | ||||||
|  |         }; | ||||||
|  |  | ||||||
|         for thank in thanks { |  | ||||||
|             match text.to_lowercase().find(thank) { |  | ||||||
|                 Some(_id) => { |  | ||||||
|                     bot.send_message(msg.chat.id, "Не за что!").await?; |  | ||||||
|                 } |  | ||||||
|                 None => (), |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         Ok(()) |         Ok(()) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     pub async fn reply_dispatcher( |     pub async fn reply_dispatcher(bot: Bot, msg: Message, reply: Message) -> ResponseResult<()> { | ||||||
|         bot: Bot, |  | ||||||
|         msg: Message, |  | ||||||
|         reply_to_message: Message, |  | ||||||
|     ) -> ResponseResult<()> { |  | ||||||
|         let thanks = vec!["спасибо", "спс", "благодар очка"]; |         let thanks = vec!["спасибо", "спс", "благодар очка"]; | ||||||
|  |         println!("Working on reply"); | ||||||
|         let text = msg |         let text = msg | ||||||
|             .text() |             .text() | ||||||
|             .unwrap_or(msg.caption().unwrap_or_default()) |             .unwrap_or(msg.caption().unwrap_or_default()) | ||||||
|             .to_string(); |             .to_string(); | ||||||
|         println!("{:?}", msg); |         println!("{:?}", text); | ||||||
|         println!("{:?}", bot); |  | ||||||
|         println!("{:?}", reply_to_message); |  | ||||||
|         for thank in thanks { |         for thank in thanks { | ||||||
|             match text.to_lowercase().find(thank) { |             match text.to_lowercase().find(thank) { | ||||||
|                 Some(_id) => { |                 Some(_id) => { | ||||||
|                     handlers::karma(&bot, &msg, &reply_to_message, 1).await?; |                     println!("It's a thanks!"); | ||||||
|                     () |                     return handlers::karma(&bot, &msg, &reply, 1).await; | ||||||
|                 } |                 } | ||||||
|                 None => (), |                 None => (), | ||||||
|             } |             } | ||||||
|  | |||||||
| @ -67,12 +67,7 @@ pub async fn unwarn(bot: Bot, msg: Message) -> ResponseResult<Message> { | |||||||
|         .await |         .await | ||||||
| } | } | ||||||
|  |  | ||||||
| pub async fn karma( | pub async fn karma(bot: &Bot, msg: &Message, reply: &Message, change: i8) -> ResponseResult<()> { | ||||||
|     bot: &Bot, |  | ||||||
|     msg: &Message, |  | ||||||
|     reply: &Message, |  | ||||||
|     change: i8, |  | ||||||
| ) -> ResponseResult<Message> { |  | ||||||
|     let giver = msg.from().unwrap(); |     let giver = msg.from().unwrap(); | ||||||
|     let reciever = reply.from().unwrap(); |     let reciever = reply.from().unwrap(); | ||||||
|     let change_text = match change { |     let change_text = match change { | ||||||
| @ -88,5 +83,6 @@ pub async fn karma( | |||||||
|     ); |     ); | ||||||
|     bot.send_message(msg.chat.id, text) |     bot.send_message(msg.chat.id, text) | ||||||
|         .parse_mode(MarkdownV2) |         .parse_mode(MarkdownV2) | ||||||
|         .await |         .await?; | ||||||
|  |     Ok(()) | ||||||
| } | } | ||||||
|  | |||||||
| @ -24,7 +24,7 @@ async fn main() { | |||||||
|                 .endpoint(Godette::admin_dispatcher), |                 .endpoint(Godette::admin_dispatcher), | ||||||
|         ) |         ) | ||||||
|         // Replies |         // Replies | ||||||
|         .branch(Message::filter_reply_to_message().endpoint(Godette::reply_dispatcher)) |         // .branch(Message::filter_reply_to_message().endpoint(Godette::reply_dispatcher)) | ||||||
|         // Messages |         // Messages | ||||||
|         .branch( |         .branch( | ||||||
|             dptree::filter(|msg: Message| { |             dptree::filter(|msg: Message| { | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user