async def migrate_chat(m: Message, new_chat: int) -> None: LOGGER.info(f"Migrating from {m.chat.id} to {new_chat}...") langdb = Langs(m.chat.id) notedb = Notes() gdb = Greetings(m.chat.id) ruledb = Rules(m.chat.id) userdb = Users(m.chat.id) chatdb = Chats(m.chat.id) bldb = Blacklist(m.chat.id) approvedb = Approve(m.chat.id) reportdb = Reporting(m.chat.id) notes_settings = NotesSettings() pins_db = Pins(m.chat.id) fldb = Filters() disabl = Disabling(m.chat.id) disabl.migrate_chat(new_chat) gdb.migrate_chat(new_chat) chatdb.migrate_chat(new_chat) userdb.migrate_chat(new_chat) langdb.migrate_chat(new_chat) ruledb.migrate_chat(new_chat) bldb.migrate_chat(new_chat) notedb.migrate_chat(m.chat.id, new_chat) approvedb.migrate_chat(new_chat) reportdb.migrate_chat(new_chat) notes_settings.migrate_chat(m.chat.id, new_chat) pins_db.migrate_chat(new_chat) fldb.migrate_chat(m.chat.id, new_chat) LOGGER.info(f"Successfully migrated from {m.chat.id} to {new_chat}!")
async def clean_linked(_, m: Message): pinsdb = Pins(m.chat.id) if len(m.text.split()) == 1: status = pinsdb.get_settings()["cleanlinked"] await m.reply_text( tlang(m, "pin.antichannelpin.current_status").format( status=status, ), ) return if len(m.text.split()) == 2: if m.command[1] in ("yes", "on", "true"): pinsdb.cleanlinked_on() LOGGER.info(f"{m.from_user.id} enabled CleanLinked in {m.chat.id}") msg = "Turned on CleanLinked! Now all the messages from linked channel will be deleted!" elif m.command[1] in ("no", "off", "false"): pinsdb.cleanlinked_off() LOGGER.info( f"{m.from_user.id} disabled CleanLinked in {m.chat.id}") msg = "Turned off CleanLinked! Messages from linked channel will not be deleted!" else: await m.reply_text(tlang(m, "general.check_help")) return await m.reply_text(msg) return
async def antichanpin_cleanlinked(c: Alita, m: Message): try: msg_id = m.message_id pins_db = Pins(m.chat.id) curr = pins_db.get_settings() if curr["antichannelpin"]: await c.unpin_chat_message(chat_id=m.chat.id, message_id=msg_id) LOGGER.info( f"AntiChannelPin: msgid-{m.message_id} unpinned in {m.chat.id}" ) if curr["cleanlinked"]: await c.delete_messages(m.chat.id, msg_id) LOGGER.info( f"CleanLinked: msgid-{m.message_id} cleaned in {m.chat.id}") except ChatAdminRequired: await m.reply_text( "Disabled antichannelpin as I don't have enough admin rights!", ) pins_db.antichannelpin_off() LOGGER.warning( f"Disabled antichannelpin in {m.chat.id} as i'm not an admin.") except Exception as ef: LOGGER.error(ef) LOGGER.error(format_exc()) return
async def anti_channel_pin(_, m: Message): pinsdb = Pins(m.chat.id) if len(m.text.split()) == 1: status = pinsdb.get_settings()["antichannelpin"] await m.reply_text( tlang(m, "pin.antichannelpin.current_status").format( status=status, ), ) return if len(m.text.split()) == 2: if m.command[1] in ("yes", "on", "true"): pinsdb.antichannelpin_on() LOGGER.info( f"{m.from_user.id} enabled antichannelpin in {m.chat.id}") msg = tlang(m, "pin.antichannelpin.turned_on") elif m.command[1] in ("no", "off", "false"): pinsdb.antichannelpin_off() LOGGER.info( f"{m.from_user.id} disabled antichannelpin in {m.chat.id}") msg = tlang(m, "pin.antichannelpin.turned_off") else: await m.reply_text(tlang(m, "general.check_help")) return await m.reply_text(msg) return