1- use crate :: utils:: {
2- groups:: { Group , Groups } ,
3- keyboard:: Keyboard ,
4- message:: Rustina ,
5- } ;
6- use teloxide:: {
7- payloads:: { EditMessageTextSetters , SendMessageSetters } ,
8- prelude:: * ,
9- types:: { InlineKeyboardMarkup , ParseMode } ,
10- } ;
1+ use crate :: utils:: groups:: { Group , Groups } ;
2+ use orzklv:: telegram:: { keyboard:: Keyboard , topic:: Topics } ;
3+ use teloxide:: { payloads:: EditMessageTextSetters , prelude:: * , types:: * } ;
114
125static TEXT : & str = "<b>Telegramdagi Rust Hamjamiyatlari yoki Guruhlari:</b>\n Agar o'zingizni guruhingizni qo'shmoqchi bo'lsangiz, bizni <a href='https://github.com/rust-lang-uz/rustina/blob/main/data/communities.json'>community.json</a> ni yangilang!" ;
136
147pub async fn command ( bot : & Bot , msg : & Message , groups : & Groups ) -> ResponseResult < ( ) > {
158 bot. send_message_tf ( msg. chat . id , TEXT , msg)
169 . parse_mode ( ParseMode :: Html )
1710 . reply_markup ( keyboard_list ( groups, 1 ) )
18- . disable_web_page_preview ( true )
11+ . link_preview_options ( LinkPreviewOptions {
12+ is_disabled : true ,
13+ url : None ,
14+ prefer_small_media : false ,
15+ prefer_large_media : false ,
16+ show_above_text : false ,
17+ } )
1918 . await ?;
2019
2120 Ok ( ( ) )
@@ -28,11 +27,22 @@ pub async fn callback_list(
2827 groups : & Groups ,
2928) -> ResponseResult < ( ) > {
3029 if !args. is_empty ( ) {
31- if let Some ( Message { id, chat, .. } ) = q. message . clone ( ) {
32- bot. edit_message_text ( chat. id , id, TEXT )
30+ let om = match q. message . clone ( ) {
31+ Some ( m) => m,
32+ None => return Ok ( ( ) ) ,
33+ } ;
34+
35+ if let Some ( Message { id, chat, .. } ) = om. regular_message ( ) {
36+ bot. edit_message_text ( chat. id , * id, TEXT )
3337 . parse_mode ( ParseMode :: Html )
3438 . reply_markup ( keyboard_list ( groups, args[ 0 ] . parse ( ) . unwrap_or ( 1 ) ) )
35- . disable_web_page_preview ( true )
39+ . link_preview_options ( LinkPreviewOptions {
40+ is_disabled : true ,
41+ url : None ,
42+ prefer_small_media : false ,
43+ prefer_large_media : false ,
44+ show_above_text : false ,
45+ } )
3646 . await ?;
3747 } else if let Some ( id) = q. inline_message_id . clone ( ) {
3848 bot. edit_message_text_inline ( id, "Oopsie, something went wrong..." )
@@ -48,8 +58,13 @@ pub async fn callback_detail(bot: &Bot, q: &CallbackQuery, args: &[&str]) -> Res
4858 let find = groups. find_group ( args[ 1 ..] . join ( "_" ) . to_string ( ) ) ;
4959
5060 if !args. is_empty ( ) {
51- if let Some ( Message { id, chat, .. } ) = q. message . clone ( ) {
52- bot. edit_message_text ( chat. id , id, view_detail ( & find) )
61+ let om = match q. message . clone ( ) {
62+ Some ( m) => m,
63+ None => return Ok ( ( ) ) ,
64+ } ;
65+
66+ if let Some ( Message { id, chat, .. } ) = om. regular_message ( ) {
67+ bot. edit_message_text ( chat. id , * id, view_detail ( & find) )
5368 . parse_mode ( ParseMode :: Html )
5469 . reply_markup ( keyboard_detail ( args[ 0 ] . parse ( ) . unwrap_or ( 1 ) , & find) )
5570 . await ?;
@@ -104,10 +119,12 @@ pub fn keyboard_detail(page: i32, data: &Option<Group>) -> InlineKeyboardMarkup
104119 let mut keyboard = Keyboard :: new ( ) ;
105120
106121 if let Some ( group) = data {
107- keyboard. url ( "Telegram" , & format ! ( "https://t.me/{}" , group. telegram) ) ;
122+ keyboard
123+ . url ( "Telegram" , & format ! ( "https://t.me/{}" , group. telegram) )
124+ . unwrap ( ) ;
108125
109126 if group. link . is_some ( ) {
110- keyboard. url ( "Web" , & group. link . clone ( ) . unwrap ( ) ) ;
127+ keyboard. url ( "Web" , & group. link . clone ( ) . unwrap ( ) ) . unwrap ( ) ;
111128 }
112129
113130 keyboard. row ( ) ;
0 commit comments