mirror of
				https://github.com/civsocit/olgram.git
				synced 2023-07-22 01:29:12 +03:00 
			
		
		
		
	fix group chat remove, some minor fixes
This commit is contained in:
		
							parent
							
								
									cb05f9d1fa
								
							
						
					
					
						commit
						9f32edd1be
					
				@ -5,7 +5,7 @@ from olgram.models.models import Bot, User
 | 
				
			|||||||
from aiogram.dispatcher import FSMContext
 | 
					from aiogram.dispatcher import FSMContext
 | 
				
			||||||
from aiogram.utils.callback_data import CallbackData
 | 
					from aiogram.utils.callback_data import CallbackData
 | 
				
			||||||
from textwrap import dedent
 | 
					from textwrap import dedent
 | 
				
			||||||
from olgram.utils.mix import edit_or_create
 | 
					from olgram.utils.mix import edit_or_create, button_text_limit
 | 
				
			||||||
from olgram.commands import bot_actions
 | 
					from olgram.commands import bot_actions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import typing as ty
 | 
					import typing as ty
 | 
				
			||||||
@ -57,7 +57,7 @@ async def send_chats_menu(bot: Bot, call: types.CallbackQuery):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    for chat in chats:
 | 
					    for chat in chats:
 | 
				
			||||||
        keyboard.insert(
 | 
					        keyboard.insert(
 | 
				
			||||||
            types.InlineKeyboardButton(text=chat.name,
 | 
					            types.InlineKeyboardButton(text=button_text_limit(chat.name),
 | 
				
			||||||
                                       callback_data=menu_callback.new(level=3, bot_id=bot.id, operation="chat",
 | 
					                                       callback_data=menu_callback.new(level=3, bot_id=bot.id, operation="chat",
 | 
				
			||||||
                                                                       chat=chat.id))
 | 
					                                                                       chat=chat.id))
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
				
			|||||||
@ -20,3 +20,10 @@ async def edit_or_create(call: CallbackQuery, message: str,
 | 
				
			|||||||
    except TelegramAPIError:  # кнопка устарела
 | 
					    except TelegramAPIError:  # кнопка устарела
 | 
				
			||||||
        await call.bot.send_message(call.message.chat.id, text=message, reply_markup=reply_markup,
 | 
					        await call.bot.send_message(call.message.chat.id, text=message, reply_markup=reply_markup,
 | 
				
			||||||
                                    parse_mode=parse_mode)
 | 
					                                    parse_mode=parse_mode)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def button_text_limit(data: str) -> str:
 | 
				
			||||||
 | 
					    max_len = 30
 | 
				
			||||||
 | 
					    if len(data) > max_len:
 | 
				
			||||||
 | 
					        data = data[:max_len-4] + "..."
 | 
				
			||||||
 | 
					    return data
 | 
				
			||||||
 | 
				
			|||||||
@ -12,6 +12,7 @@ import typing as ty
 | 
				
			|||||||
from olgram.settings import ServerSettings
 | 
					from olgram.settings import ServerSettings
 | 
				
			||||||
from olgram.models.models import Bot, GroupChat
 | 
					from olgram.models.models import Bot, GroupChat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
logging.basicConfig(level=logging.INFO)
 | 
					logging.basicConfig(level=logging.INFO)
 | 
				
			||||||
_logger = logging.getLogger(__name__)
 | 
					_logger = logging.getLogger(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -72,6 +73,7 @@ async def receive_invite(message: types.Message):
 | 
				
			|||||||
        if member.id == message.bot.id:
 | 
					        if member.id == message.bot.id:
 | 
				
			||||||
            chat, _ = await GroupChat.get_or_create(chat_id=message.chat.id,
 | 
					            chat, _ = await GroupChat.get_or_create(chat_id=message.chat.id,
 | 
				
			||||||
                                                    defaults={"name": message.chat.full_name})
 | 
					                                                    defaults={"name": message.chat.full_name})
 | 
				
			||||||
 | 
					            chat.name = message.chat.full_name
 | 
				
			||||||
            if chat not in await bot.group_chats.all():
 | 
					            if chat not in await bot.group_chats.all():
 | 
				
			||||||
                await bot.group_chats.add(chat)
 | 
					                await bot.group_chats.add(chat)
 | 
				
			||||||
                await bot.save()
 | 
					                await bot.save()
 | 
				
			||||||
@ -79,19 +81,15 @@ async def receive_invite(message: types.Message):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async def receive_left(message: types.Message):
 | 
					async def receive_left(message: types.Message):
 | 
				
			||||||
    _logger.info("Receive left")
 | 
					 | 
				
			||||||
    bot = db_bot_instance.get()
 | 
					    bot = db_bot_instance.get()
 | 
				
			||||||
    if message.left_chat_member.id == message.bot.id:
 | 
					    if message.left_chat_member.id == message.bot.id:
 | 
				
			||||||
        chat = await bot.group_chats.filter(chat_id=message.chat.id).first()
 | 
					        chat = await bot.group_chats.filter(chat_id=message.chat.id).first()
 | 
				
			||||||
        _logger.info(f"chat found {chat}")
 | 
					 | 
				
			||||||
        if chat:
 | 
					        if chat:
 | 
				
			||||||
            await bot.group_chats.remove(chat)
 | 
					            await bot.group_chats.remove(chat)
 | 
				
			||||||
            bot_group_chat = await bot.group_chat
 | 
					            bot_group_chat = await bot.group_chat
 | 
				
			||||||
            _logger.info(f"chat removed {bot_group_chat} {chat}")
 | 
					 | 
				
			||||||
            if bot_group_chat == chat:
 | 
					            if bot_group_chat == chat:
 | 
				
			||||||
                _logger.info("saved")
 | 
					 | 
				
			||||||
                bot.group_chat = None
 | 
					                bot.group_chat = None
 | 
				
			||||||
                await bot.save(update_fields=["group_chat"])
 | 
					            await bot.save()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CustomRequestHandler(WebhookRequestHandler):
 | 
					class CustomRequestHandler(WebhookRequestHandler):
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user