def main(): # test_handler = CommandHandler("test", test) #Unused variable start_handler = CommandHandler("start", start, pass_args=True) help_handler = CommandHandler("help", get_help) help_callback_handler = CallbackQueryHandler(help_button, pattern=r"help_") start_callback_handler = CallbackQueryHandler(send_start, pattern=r"bot_start") migrate_handler = MessageHandler(Filters.status_update.migrate, migrate_chats) # dispatcher.add_handler(test_handler) dispatcher.add_handler(start_handler) dispatcher.add_handler(start_callback_handler) dispatcher.add_handler(help_handler) dispatcher.add_handler(help_callback_handler) dispatcher.add_handler(migrate_handler) # dispatcher.add_error_handler(error_callback) # add antiflood processor Dispatcher.process_update = process_update LOGGER.info("Using long polling.") # updater.start_polling(timeout=15, read_latency=4, clean=True) updater.start_polling(poll_interval=0.0, timeout=10, clean=True, bootstrap_retries=-1, read_latency=3.0) LOGGER.info("Successfully loaded") if len(argv) not in (1, 3, 4): tbot.disconnect() else: tbot.run_until_disconnected() updater.idle()
except Exception: chat_name3 = "" if chat_name1: btn1 = "/connect {} - {}".format(history.chat_id1, chat_name1) else: btn1 = "/connect - {}".format(tld(chat.id, "keyboard_connect")) if chat_name2: btn2 = "/connect {} - {}".format(history.chat_id2, chat_name2) else: btn2 = "" if chat_name3: btn3 = "/connect {} - {}".format(history.chat_id3, chat_name3) else: btn3 = "" #TODO: Remove except garbage update.effective_message.reply_text( tld(chat.id, "keyboard_updated"), reply_markup=ReplyKeyboardMarkup([[ KeyboardButton("/help"), KeyboardButton("/notes - {}".format(tld(chat.id, "keyboard_notes"))) ], [KeyboardButton(btn1)], [KeyboardButton(btn2)], [KeyboardButton(btn3)]])) KEYBOARD_HANDLER = CommandHandler(["keyboard"], keyboard) dispatcher.add_handler(KEYBOARD_HANDLER)
#if tekstr.pronunciation == None: # return message.reply_text("Translated from `{}` to `{}`:\n`{}`".format(detection.lang, target, tekstr.text), parse_mode=ParseMode.MARKDOWN) #else: # return message.reply_text("Translated from `{}` to `{}`:\n`{}`".format(detection.lang, target, tekstr.pronunciation), parse_mode=ParseMode.MARKDOWN) else: tekstr = trl.translate(text, dest=target2, src=target) message.reply_text("Translated from `{}` to `{}`:\n`{}`".format(target, target2, tekstr.text), parse_mode=ParseMode.MARKDOWN) #if tekstr.pronunciation == None: # return message.reply_text("Translated from `{}` to `{}`:\n`{}`".format(target, target2, tekstr.text), parse_mode=ParseMode.MARKDOWN) #else: # return message.reply_text("Translated from `{}` to `{}`:\n`{}`".format(target, target2, tekstr.pronunciation), parse_mode=ParseMode.MARKDOWN) except IndexError: update.effective_message.reply_text("Reply to messages or write messages from other languages for translating into the intended language\n\nExample: `/tl en-ja` to translate from English to Japanese\nOr use: `/tl ja` for automatic detection and translating it into Japanese.", parse_mode="markdown") except ValueError: update.effective_message.reply_text("The intended language is not found!") else: return __help__ = """ *This module uses Google Translate to do the translations.* - /tr <language code>: as reply to a long message. """ __mod_name__ = "Translator" TOTRANSLATE_HANDLER = DisableAbleCommandHandler("tr", totranslate) dispatcher.add_handler(TOTRANSLATE_HANDLER)
__help__ = True PIN_HANDLER = DisableAbleCommandHandler("pin", pin, pass_args=True, filters=Filters.group) UNPIN_HANDLER = DisableAbleCommandHandler("unpin", unpin, filters=Filters.group) INVITE_HANDLER = CommandHandler("invitelink", invite) PROMOTE_HANDLER = DisableAbleCommandHandler("promote", promote, pass_args=True) DEMOTE_HANDLER = DisableAbleCommandHandler("demote", demote, pass_args=True) REACT_HANDLER = DisableAbleCommandHandler("reaction", reaction, pass_args=True, filters=Filters.group) ADMINLIST_HANDLER = DisableAbleCommandHandler(["adminlist", "admins"], adminlist) dispatcher.add_handler(PIN_HANDLER) dispatcher.add_handler(UNPIN_HANDLER) dispatcher.add_handler(INVITE_HANDLER) dispatcher.add_handler(PROMOTE_HANDLER) dispatcher.add_handler(DEMOTE_HANDLER) dispatcher.add_handler(ADMINLIST_HANDLER) dispatcher.add_handler(REACT_HANDLER)
def __chat_settings__(bot, update, chat, chatP, user): chat_id = chat.id limit = sql.get_flood_limit(chat_id) if limit == 0: return "*Not* currently enforcing flood control." else: return "Antiflood is set to `{}` messages.".format(limit) __help__ = """ *You know how sometimes, people join, send 100 messages, and ruin your chat? With antiflood, that happens no more!* *Antiflood allows you to take action on users that send more than x messages in a row.* Available commands are: - /flood: gets the current antiflood settings. - /setflood <number/off>: sets the number of messages at which to take action on a user. """ __mod_name__ = "AntiFlood" FLOOD_BAN_HANDLER = MessageHandler(Filters.all & ~Filters.status_update & Filters.group, check_flood) SET_FLOOD_HANDLER = CommandHandler("setflood", set_flood, pass_args=True, filters=Filters.group) FLOOD_HANDLER = CommandHandler("flood", flood, filters=Filters.group) dispatcher.add_handler(FLOOD_BAN_HANDLER, FLOOD_GROUP) dispatcher.add_handler(SET_FLOOD_HANDLER) dispatcher.add_handler(FLOOD_HANDLER)
GET_PASTE_HANDLER = CommandHandler("getpaste", get_paste_content, pass_args=True) PASTE_STATS_HANDLER = CommandHandler("pastestats", get_paste_stats, pass_args=True) UD_HANDLER = CommandHandler("ud", ud) WIKI_HANDLER = CommandHandler("wiki", wiki) DECIDE_HANDLER = CommandHandler("decide", decide) SNIPE_HANDLER = CommandHandler("snipe", snipe, pass_args=True, filters=CustomFilters.sudo_filter) GDPR_HANDLER = CommandHandler("gdpr", gdpr, filters=Filters.private) WEEBIFY_HANDLER = DisableAbleCommandHandler("weebify", weebify, pass_args=True) PAT_HANDLER = DisableAbleCommandHandler("pat", pat) SHRUG_HANDLER = DisableAbleCommandHandler(["shrug", "shg"], shrug) HUG_HANDLER = DisableAbleCommandHandler("hug", hug) PING_HANDLER = DisableAbleCommandHandler("ping", ping) dispatcher.add_handler(SHRUG_HANDLER) dispatcher.add_handler(HUG_HANDLER) dispatcher.add_handler(UD_HANDLER) dispatcher.add_handler(PASTE_HANDLER) dispatcher.add_handler(GET_PASTE_HANDLER) dispatcher.add_handler(PASTE_STATS_HANDLER) dispatcher.add_handler(ID_HANDLER) dispatcher.add_handler(IP_HANDLER) dispatcher.add_handler(INSULTS_HANDLER) dispatcher.add_handler(RUNS_HANDLER) dispatcher.add_handler(SLAP_HANDLER) dispatcher.add_handler(INFO_HANDLER) dispatcher.add_handler(ECHO_HANDLER) dispatcher.add_handler(MD_HELP_HANDLER) dispatcher.add_handler(STATS_HANDLER) dispatcher.add_handler(PING_HANDLER)
conn = connected(bot, update, chat, user.id) if conn: chat_id = conn else: if chat.type == 'private': msg.reply_text(tld(chat.id, 'common_cmd_group_only')) return chat_id = chat.id sql.set_rules(chat_id, "") update.effective_message.reply_text(tld(chat.id, 'rules_clean_success')) def __stats__(): return "• `{}` chats have rules set.".format(sql.num_chats()) def __migrate__(old_chat_id, new_chat_id): sql.migrate_chat(old_chat_id, new_chat_id) __help__ = True GET_RULES_HANDLER = CommandHandler("rules", get_rules) SET_RULES_HANDLER = CommandHandler("setrules", set_rules) RESET_RULES_HANDLER = CommandHandler("clearrules", clear_rules) dispatcher.add_handler(GET_RULES_HANDLER) dispatcher.add_handler(SET_RULES_HANDLER) dispatcher.add_handler(RESET_RULES_HANDLER)
message.reply_text(rhappy) @run_async def rangry(bot: Bot, update: Update): message = update.effective_message rangry = random.choice(reactionangry) if message.reply_to_message: message.reply_to_message.reply_text(rangry) else: message.reply_text(rangry) __help__ = """ *Use these commands to let the bot express reactions for you!* - /react: reacts with normal reactions. - /happy: reacts with happiness. - /angry: reacts angrily. """ __mod_name__ = "Reactions" REACT_HANDLER = DisableAbleCommandHandler("react", react) RHAPPY_HANDLER = DisableAbleCommandHandler("happy", rhappy) RANGRY_HANDLER = DisableAbleCommandHandler("angry", rangry) dispatcher.add_handler(REACT_HANDLER) dispatcher.add_handler(RHAPPY_HANDLER) dispatcher.add_handler(RANGRY_HANDLER)
def __user_info__(user_id, chat_id): bio = html.escape(sql.get_user_bio(user_id) or "") me = html.escape(sql.get_user_me_info(user_id) or "") if bio and me: return tld(chat_id, "userinfo_what_i_and_other_say").format(me, bio) elif bio: return tld(chat_id, "userinfo_what_other_say").format(bio) elif me: return tld(chat_id, "userinfo_what_i_say").format(me) else: return "" def __gdpr__(user_id): sql.clear_user_info(user_id) sql.clear_user_bio(user_id) __help__ = True SET_BIO_HANDLER = DisableAbleCommandHandler("setbio", set_about_bio) GET_BIO_HANDLER = DisableAbleCommandHandler("bio", about_bio, pass_args=True) SET_ABOUT_HANDLER = DisableAbleCommandHandler("setme", set_about_me) GET_ABOUT_HANDLER = DisableAbleCommandHandler("me", about_me, pass_args=True) dispatcher.add_handler(SET_BIO_HANDLER) dispatcher.add_handler(GET_BIO_HANDLER) dispatcher.add_handler(SET_ABOUT_HANDLER) dispatcher.add_handler(GET_ABOUT_HANDLER)
for fx in f_flist: sql.remove_filter(chat.id, fx) message.reply_text(tld(chat.id, "cust_filters_cleanup_success").format(x)) def __stats__(): return "• `{}` filters, across `{}` chats.".format(sql.num_filters(), sql.num_chats()) def __migrate__(old_chat_id, new_chat_id): sql.migrate_chat(old_chat_id, new_chat_id) __help__ = True FILTER_HANDLER = DisableAbleCommandHandler("filter", filters) STOP_HANDLER = DisableAbleCommandHandler("stop", stop_filter) STOPALL_HANDLER = DisableAbleCommandHandler("stopall", stop_all_filters) LIST_HANDLER = DisableAbleCommandHandler("filters", list_handlers, admin_ok=True) CUST_FILTER_HANDLER = MessageHandler(CustomFilters.has_text, reply_filter) dispatcher.add_handler(FILTER_HANDLER) dispatcher.add_handler(STOP_HANDLER) dispatcher.add_handler(STOPALL_HANDLER) dispatcher.add_handler(LIST_HANDLER) dispatcher.add_handler(CUST_FILTER_HANDLER, HANDLER_GROUP)
SNIPE_HANDLER = CommandHandler("snipe", snipe, pass_args=True, filters=Filters.user(OWNER_ID)) GETLINK_HANDLER = CommandHandler("getlink", getlink, pass_args=True, filters=Filters.user(OWNER_ID)) CHATLIST_HANDLER = CommandHandler("chatlist", chats, filters=Filters.user(OWNER_ID)) LEAVECHAT_HANDLER = CommandHandler("leavechat", leavechat, pass_args=True, filters=Filters.user(OWNER_ID)) SLIST_HANDLER = CommandHandler("slist", slist, filters=CustomFilters.sudo_filter | CustomFilters.support_filter) CHAT_CHECKER_HANDLER = MessageHandler(Filters.all & Filters.group, chat_checker) dispatcher.add_handler(SNIPE_HANDLER) dispatcher.add_handler(GETLINK_HANDLER) dispatcher.add_handler(LEAVECHAT_HANDLER) dispatcher.add_handler(SLIST_HANDLER) dispatcher.add_handler(USER_HANDLER, USERS_GROUP) dispatcher.add_handler(BROADCAST_HANDLER) dispatcher.add_handler(CHATLIST_HANDLER) dispatcher.add_handler(CHAT_CHECKER_HANDLER, CHAT_GROUP)
FED_SET_RULES_HANDLER = CommandHandler("setfrules", set_frules, pass_args=True) FED_GET_RULES_HANDLER = CommandHandler("frules", get_frules, pass_args=True) FED_CHAT_HANDLER = CommandHandler("chatfed", fed_chat, pass_args=True) FED_ADMIN_HANDLER = DisableAbleCommandHandler("fedadmins", fed_admin, pass_args=True) FED_CHATLIST_HANDLER = DisableAbleCommandHandler("fedchats", fed_chats, pass_args=True) FED_USERBAN_HANDLER = CommandHandler("fbanlist", fed_ban_list, pass_args=True, pass_chat_data=True) FED_IMPORTBAN_HANDLER = CommandHandler("importfbans", fed_import_bans, pass_chat_data=True) DELETEBTN_FED_HANDLER = CallbackQueryHandler(del_fed_button, pattern=r"rmfed_") dispatcher.add_handler(NEW_FED_HANDLER) dispatcher.add_handler(DEL_FED_HANDLER) dispatcher.add_handler(JOIN_FED_HANDLER) dispatcher.add_handler(LEAVE_FED_HANDLER) dispatcher.add_handler(PROMOTE_FED_HANDLER) dispatcher.add_handler(DEMOTE_FED_HANDLER) dispatcher.add_handler(INFO_FED_HANDLER) dispatcher.add_handler(BAN_FED_HANDLER) dispatcher.add_handler(UN_BAN_FED_HANDLER) dispatcher.add_handler(FED_SET_RULES_HANDLER) dispatcher.add_handler(FED_GET_RULES_HANDLER) dispatcher.add_handler(FED_CHAT_HANDLER) dispatcher.add_handler(FED_ADMIN_HANDLER) # dispatcher.add_handler(FED_NOTIF_HANDLER) # dispatcher.add_handler(FED_CHATLIST_HANDLER)
reply = f"Mirrors for <i>{file_path.split('/')[-1]}</i>\n" project = re.findall(r'projects?/(.*?)/files', link)[0] mirrors = f'https://sourceforge.net/settings/mirror_choices?' \ f'projectname={project}&filename={file_path}' page = BeautifulSoup(requests.get(mirrors).content, 'lxml') info = page.find('ul', {'id': 'mirrorList'}).findAll('li') for mirror in info[1:]: name = re.findall(r'\((.*)\)', mirror.text.strip())[0] dl_url = f'https://{mirror["id"]}.dl.sourceforge.net/project/{project}/{file_path}' reply += f'<a href="{dl_url}">{name}</a> ' return reply def useragent(): useragents = BeautifulSoup( requests.get( 'https://developers.whatismybrowser.com/' 'useragents/explore/operating_system_name/android/').content, 'lxml').findAll('td', {'class': 'useragent'}) user_agent = choice(useragents) return user_agent.text __help__ = "directlinks_help" __mod_name__ = "Direct Links" DIRECT_HANDLER = CommandHandler("direct", direct_link_generator) dispatcher.add_handler(DIRECT_HANDLER)
log_channel = sql.stop_chat_logging(chat.id) if log_channel: try: bot.send_message( log_channel, tld(chat.id, "log_channel_unlink_success").format(chat.title)) message.reply_text(tld(chat.id, "Log channel has been un-set.")) except Exception: print("Nut") else: message.reply_text(tld(chat.id, "log_channel_unlink_none")) def __stats__(): return "• `{}` log channels set.".format(sql.num_logchannels()) def __migrate__(old_chat_id, new_chat_id): sql.migrate_chat(old_chat_id, new_chat_id) __help__ = True LOG_HANDLER = CommandHandler("logchannel", logging) SET_LOG_HANDLER = CommandHandler("setlog", setlog) UNSET_LOG_HANDLER = CommandHandler("unsetlog", unsetlog) dispatcher.add_handler(LOG_HANDLER) dispatcher.add_handler(SET_LOG_HANDLER) dispatcher.add_handler(UNSET_LOG_HANDLER)
caption=tl( update.effective_message, "*Berhasil!*\n\nKerja bagus manusia, kini Anda dapat chatting di: *{}*" ).format(chat_name), parse_mode="markdown")) query.answer(text=tl( update.effective_message, "Berhasil! Anda dapat chatting di {} sekarang").format(chat_name), show_alert=True) else: context.bot.edit_message_media( chat.id, message_id=query.message.message_id, media=InputMediaPhoto( media="https://telegra.ph/file/d81cdcbafb240071add84.jpg", caption=tl( update.effective_message, "Maaf robot, kamu telah salah klik tombol verifikasi.\n\nCoba lagi dengan klik tombol verifikasi pada pesan selamat datang." ), parse_mode="markdown")) query.answer(text=tl( update.effective_message, "Gagal! Kamu telah salah mengklik tombol verifikasi"), show_alert=True) verify_callback_handler = CallbackQueryHandler(verify_button_pressed, pattern=r"verify_me") dispatcher.add_handler(verify_callback_handler)
text = tl(update.effective_message, "Blue text cleaner was *enabled*.") send_message(update.effective_message, text, parse_mode="markdown") else: send_message( update.effective_message, tl(update.effective_message, "Unknown argument - please use 'yes', or 'no'.")) else: send_message( update.effective_message, tl(update.effective_message, "Curent settings for Blue text cleaner at {}: *{}*").format( chat_name, "Enabled" if sql.is_enable(chat_id) else "Disabled"), parse_mode="markdown") __help__ = "cleaner_help" __mod_name__ = "Cleaner" SET_CLEAN_BLUE_TEXT_HANDLER = DisableAbleCommandHandler( "cleanbluetext", set_blue_text_must_click, pass_args=True) CLEAN_BLUE_TEXT_HANDLER = MessageHandler(Filters.command & Filters.group, clean_blue_text_must_click) dispatcher.add_handler(SET_CLEAN_BLUE_TEXT_HANDLER) dispatcher.add_handler(CLEAN_BLUE_TEXT_HANDLER, 15)
GETLINK_HANDLER = CommandHandler("getlink", getlink, pass_args=True, filters=Filters.user(OWNER_ID)) LEAVECHAT_HANDLER = CommandHandler(["leavechat", "leavegroup", "leave"], leavechat, pass_args=True, filters=Filters.user(OWNER_ID)) FORTUNE_HANDLER = DisableAbleCommandHandler("fortune", fortune) TRANSLATE_HANDLER = DisableAbleCommandHandler("tr", translate) WIKIPEDIA_HANDLER = DisableAbleCommandHandler("wiki", wiki) UD_HANDLER = DisableAbleCommandHandler("ud", urbandictionary, pass_args=True) LOG_HANDLER = CommandHandler("log", log, filters=Filters.user(OWNER_ID)) REACT_HANDLER = DisableAbleCommandHandler("react", react) RHAPPY_HANDLER = DisableAbleCommandHandler("happy", rhappy) RANGRY_HANDLER = DisableAbleCommandHandler("angry", rangry) STATUS_HANDLER = DisableAbleCommandHandler("status", status) dispatcher.add_handler(STATUS_HANDLER) dispatcher.add_handler(REACT_HANDLER) dispatcher.add_handler(RHAPPY_HANDLER) dispatcher.add_handler(RANGRY_HANDLER) dispatcher.add_handler(PING_HANDLER) dispatcher.add_handler(GETLINK_HANDLER) dispatcher.add_handler(LEAVECHAT_HANDLER) dispatcher.add_handler(FORTUNE_HANDLER) dispatcher.add_handler(TRANSLATE_HANDLER) dispatcher.add_handler(WIKIPEDIA_HANDLER) dispatcher.add_handler(UD_HANDLER) dispatcher.add_handler(LOG_HANDLER)
ungban, pass_args=True, filters=CustomFilters.sudo_filter | CustomFilters.support_filter) UNGBANQ_HANDLER = CommandHandler("ungban_quicc", ungban_quicc, pass_args=True, filters=CustomFilters.sudo_filter | CustomFilters.support_filter) GBAN_LIST = CommandHandler("gbanlist", gbanlist, filters=Filters.user(OWNER_ID)) GBAN_ENFORCER = MessageHandler(Filters.all & Filters.group, enforce_gban) CLEAN_DELACC_HANDLER = CommandHandler("cleandelacc", clear_gbans, filters=Filters.user(OWNER_ID)) dispatcher.add_handler(ANTISPAM_STATUS) dispatcher.add_handler(GBAN_HANDLER) dispatcher.add_handler(UNGBAN_HANDLER) dispatcher.add_handler(CLEAN_DELACC_HANDLER) dispatcher.add_handler(UNGBANQ_HANDLER) dispatcher.add_handler(GBAN_LIST) if STRICT_ANTISPAM: # enforce GBANS if this is set dispatcher.add_handler(GBAN_ENFORCER, GBAN_ENFORCE_GROUP)
support_list, filters=CustomFilters.sudo_filter) STATS_HANDLER = CommandHandler("stats", stats, filters=CustomFilters.sudo_filter) WEEBIFY_HANDLER = DisableAbleCommandHandler("weebify", weebify, pass_args=True) PAT_HANDLER = DisableAbleCommandHandler("pat", pat) SHRUG_HANDLER = DisableAbleCommandHandler(["shrug", "shg"], shrug) HUG_HANDLER = DisableAbleCommandHandler("hug", hug) RUNS_HANDLER = DisableAbleCommandHandler(["runs", "lari"], runs) SLAP_HANDLER = DisableAbleCommandHandler("slap", slap, pass_args=True) INFO_HANDLER = DisableAbleCommandHandler("info", info, pass_args=True) dispatcher.add_handler(ID_HANDLER) dispatcher.add_handler(IP_HANDLER) dispatcher.add_handler(RUNS_HANDLER) dispatcher.add_handler(SLAP_HANDLER) dispatcher.add_handler(INFO_HANDLER) dispatcher.add_handler(ECHO_HANDLER) dispatcher.add_handler(MD_HELP_HANDLER) dispatcher.add_handler(STATS_HANDLER) dispatcher.add_handler(SUDO_LIST_HANDLER) dispatcher.add_handler(SUPPORT_LIST_HANDLER) dispatcher.add_handler(PASTE_HANDLER) dispatcher.add_handler(GET_PASTE_HANDLER) dispatcher.add_handler(PASTE_STATS_HANDLER) dispatcher.add_handler(WEEBIFY_HANDLER) dispatcher.add_handler(PAT_HANDLER) dispatcher.add_handler(SHRUG_HANDLER)
SECURITY_BUTTONTXT_HANDLER = CommandHandler("setmutetext", security_text, pass_args=True, filters=Filters.group) SECURITY_BUTTONRESET_HANDLER = CommandHandler("resetmutetext", security_text_reset, filters=Filters.group) CLEAN_SERVICE_HANDLER = CommandHandler("cleanservice", cleanservice, pass_args=True, filters=Filters.group) help_callback_handler = CallbackQueryHandler(check_bot_button, pattern=r"check_bot_") dispatcher.add_handler(NEW_MEM_HANDLER) dispatcher.add_handler(LEFT_MEM_HANDLER) dispatcher.add_handler(WELC_PREF_HANDLER) dispatcher.add_handler(GOODBYE_PREF_HANDLER) dispatcher.add_handler(SET_WELCOME) dispatcher.add_handler(SET_GOODBYE) dispatcher.add_handler(RESET_WELCOME) dispatcher.add_handler(RESET_GOODBYE) dispatcher.add_handler(CLEAN_WELCOME) dispatcher.add_handler(SECURITY_HANDLER) dispatcher.add_handler(SECURITY_MUTE_HANDLER) dispatcher.add_handler(SECURITY_BUTTONTXT_HANDLER) dispatcher.add_handler(SECURITY_BUTTONRESET_HANDLER) dispatcher.add_handler(CLEAN_SERVICE_HANDLER) dispatcher.add_handler(help_callback_handler)
'尸', '㔿', '尺', '丂', '丅', '凵', 'リ', '山', '乂', '丫', '乙' ] @run_async def weebify(bot: Bot, update: Update, args: List[str]): string = ' '.join(args).lower() for normiecharacter in string: if normiecharacter in normiefont: weebycharacter = weebyfont[normiefont.index(normiecharacter)] string = string.replace(normiecharacter, weebycharacter) message = update.effective_message if message.reply_to_message: message.reply_to_message.reply_text(string) else: message.reply_text(string) __help__ = """ - /weebify <text>: returns a weebified text """ WEEBIFY_HANDLER = DisableAbleCommandHandler("weebify", weebify, pass_args=True) dispatcher.add_handler(WEEBIFY_HANDLER) __mod_name__ = "Weebify" __command_list__ = ["weebify"] __handlers__ = [WEEBIFY_HANDLER]
def main(): # test_handler = CommandHandler("test", test) #Unused variable start_handler = CommandHandler("start", start, pass_args=True) help_handler = CommandHandler("help", get_help) help_callback_handler = CallbackQueryHandler(help_button, pattern=r"help_") start_callback_handler = CallbackQueryHandler(send_start, pattern=r"bot_start") dispatcher.add_handler(start_callback_handler) cntrl_panel = CommandHandler("controlpanel", control_panel) cntrl_panel_callback_handler = CallbackQueryHandler(control_panel, pattern=r"cntrl_panel") dispatcher.add_handler(cntrl_panel_callback_handler) dispatcher.add_handler(cntrl_panel) settings_handler = CommandHandler("settings", get_settings) settings_callback_handler = CallbackQueryHandler(settings_button, pattern=r"stngs_") migrate_handler = MessageHandler(Filters.status_update.migrate, migrate_chats) source_handler = CommandHandler("source", source) # dispatcher.add_handler(test_handler) dispatcher.add_handler(start_handler) dispatcher.add_handler(help_handler) dispatcher.add_handler(settings_handler) dispatcher.add_handler(help_callback_handler) dispatcher.add_handler(settings_callback_handler) dispatcher.add_handler(migrate_handler) dispatcher.add_handler(source_handler) # dispatcher.add_error_handler(error_callback) # add antiflood processor Dispatcher.process_update = process_update if WEBHOOK: LOGGER.info("Using webhooks.") updater.start_webhook(listen="127.0.0.1", port=PORT, url_path=TOKEN) if CERT_PATH: updater.bot.set_webhook(url=URL + TOKEN, certificate=open(CERT_PATH, 'rb')) else: updater.bot.set_webhook(url=URL + TOKEN) else: LOGGER.info("Using long polling.") # updater.start_polling(timeout=15, read_latency=4, clean=True) updater.start_polling(poll_interval=0.0, timeout=10, clean=True, bootstrap_retries=-1, read_latency=3.0) updater.idle()
"Riwayat yang terhubung telah dihapus!")) elif connect_close: query.message.edit_text( languages.tl(update.effective_message, "Closed.\nTo open again, type /connect")) else: connect_chat(update, context) __help__ = "connection_help" __mod_name__ = "Connection" CONNECT_CHAT_HANDLER = CommandHandler("connect", connect_chat, pass_args=True) CONNECTION_CHAT_HANDLER = CommandHandler("connection", connection_chat) DISCONNECT_CHAT_HANDLER = CommandHandler("disconnect", disconnect_chat) ALLOW_CONNECTIONS_HANDLER = CommandHandler("allowconnect", allow_connections, pass_args=True) HELP_CONNECT_CHAT_HANDLER = CommandHandler("helpconnect", help_connect_chat, pass_args=True) CONNECT_BTN_HANDLER = CallbackQueryHandler(connect_button, pattern=r"connect") dispatcher.add_handler(CONNECT_CHAT_HANDLER) dispatcher.add_handler(CONNECTION_CHAT_HANDLER) dispatcher.add_handler(DISCONNECT_CHAT_HANDLER) dispatcher.add_handler(ALLOW_CONNECTIONS_HANDLER) dispatcher.add_handler(HELP_CONNECT_CHAT_HANDLER) dispatcher.add_handler(CONNECT_BTN_HANDLER)
if update.effective_message.reply_to_message: user = update.effective_user # type: Optional[User] chat = update.effective_chat # type: Optional[Chat] if user_can_delete(chat, user, context.bot.id): update.effective_message.reply_to_message.delete() update.effective_message.delete() return "<b>{}:</b>" \ "\n#DEL" \ "\n<b>Admin:</b> {}" \ "\nMessage deleted.".format(html.escape(chat.title), mention_html(user.id, user.first_name)) else: send_message(update.effective_message, tl(update.effective_message, "Apa yang ingin di hapus?")) return "" __help__ = "msgdel_help" __mod_name__ = "Purges" DELETE_HANDLER = CommandHandler("del", del_message, filters=Filters.group) PURGE_HANDLER = CommandHandler("purge", purge, filters=Filters.group, pass_args=True) dispatcher.add_handler(DELETE_HANDLER) dispatcher.add_handler(PURGE_HANDLER)
__help__ = """ Do stickers annoy you? or want to avoid people sharing links? or pictures? You're in the right place! The locks module allows you to lock away some common items in the telegram world; the bot will automatically delete them! Available commands are: - /lock <item(s)>: lock the usage of "item". Now, only admins will be able to use this type! - /unlock <item(s)>: unlock "item". Everyone can use them again. - /locks: list the lock status in the chat. - /locktypes: gets a list of all things that can be locked. (have a look at this!) eg: lock stickers with: /lock sticker """ __mod_name__ = "Locks" LOCKTYPES_HANDLER = DisableAbleCommandHandler("locktypes", locktypes) LOCK_HANDLER = CommandHandler("lock", lock, pass_args=True, filters=Filters.group) UNLOCK_HANDLER = CommandHandler("unlock", unlock, pass_args=True, filters=Filters.group) LOCKED_HANDLER = CommandHandler("locks", list_locks, filters=Filters.group) dispatcher.add_handler(LOCK_HANDLER) dispatcher.add_handler(UNLOCK_HANDLER) dispatcher.add_handler(LOCKTYPES_HANDLER) dispatcher.add_handler(LOCKED_HANDLER) dispatcher.add_handler(MessageHandler(Filters.all & Filters.group, del_lockables), PERM_GROUP) dispatcher.add_handler(MessageHandler(Filters.all & Filters.group, rest_handler), REST_GROUP)
if msg.reply_to_message: to_translate_text = remove_emoji(msg.reply_to_message.text) else: msg.reply_text(tld(chat.id, "translator_no_str")) return if not args: msg.reply_text(tld(chat.id, 'translator_no_args')) return translator = Translator() try: translated = translator.translate(to_translate_text, dest=lan) except ValueError as e: msg.reply_text(tld(chat.id, 'translator_err').format(e)) src_lang = LANGUAGES[f'{translated.src.lower()}'].title() dest_lang = LANGUAGES[f'{translated.dest.lower()}'].title() translated_text = translated.text msg.reply_text(tld(chat.id, 'translator_translated').format(src_lang, dest_lang, translated_text), parse_mode=ParseMode.MARKDOWN) __help__ = True dispatcher.add_handler( DisableAbleCommandHandler("tr", do_translate, pass_args=True))
REPO_HANDLER = CommandHandler("repo", repo, pass_args=True, admin_ok=True) RELEASEHANDLER = CommandHandler("gitr", getRelease, pass_args=True, admin_ok=True) FETCH_HANDLER = CommandHandler("fetch", cmdFetch, pass_args=True, admin_ok=True) SAVEREPO_HANDLER = CommandHandler("saverepo", saveRepo, pass_args=True) DELREPO_HANDLER = CommandHandler("delrepo", delRepo, pass_args=True) LISTREPO_HANDLER = CommandHandler("listrepo", listRepo, admin_ok=True) VERCHECKER_HANDLER = CommandHandler("gitver", getVer, admin_ok=True) CHANGELOG_HANDLER = CommandHandler("changelog", changelog, pass_args=True, admin_ok=True) HASHFETCH_HANDLER = RegexHandler(r"^&[^\s]+", hashFetch) dispatcher.add_handler(RELEASEHANDLER) dispatcher.add_handler(REPO_HANDLER) dispatcher.add_handler(GITHUB_HANDLER) dispatcher.add_handler(FETCH_HANDLER) dispatcher.add_handler(SAVEREPO_HANDLER) dispatcher.add_handler(DELREPO_HANDLER) dispatcher.add_handler(LISTREPO_HANDLER) dispatcher.add_handler(HASHFETCH_HANDLER) dispatcher.add_handler(VERCHECKER_HANDLER) dispatcher.add_handler(CHANGELOG_HANDLER)
chat = update.effective_chat # type: Optional[Chat] if sql.is_afk(user_id): user = sql.check_afk_status(user_id) if not user.reason: res = tld(chat.id, f"{fst_name} is AFK!") else: res = tld( chat.id, f"{fst_name} is AFK! says its because of:\n{user.reason}") update.effective_message.reply_text(res) __help__ = """ - /afk <reason>: mark yourself as AFK. - brb <reason>: same as the afk command - but not a command. When marked as AFK, any mentions will be replied to with a message to say that you're not available! """ __mod_name__ = "AFK" AFK_HANDLER = DisableAbleCommandHandler("afk", afk) AFK_REGEX_HANDLER = DisableAbleRegexHandler("(?i)brb", afk, friendly="afk") NO_AFK_HANDLER = MessageHandler(Filters.all & Filters.group, no_longer_afk) AFK_REPLY_HANDLER = MessageHandler(Filters.all & Filters.group, reply_afk) dispatcher.add_handler(AFK_HANDLER, AFK_GROUP) dispatcher.add_handler(AFK_REGEX_HANDLER, AFK_GROUP) dispatcher.add_handler(NO_AFK_HANDLER, AFK_GROUP) dispatcher.add_handler(AFK_REPLY_HANDLER, AFK_REPLY_GROUP)
filters=Filters.private) STATS_HANDLER = CommandHandler("stats", stats, filters=Filters.user(OWNER_ID)) GDPR_HANDLER = CommandHandler("gdpr", gdpr, filters=Filters.private) PASTE_HANDLER = DisableAbleCommandHandler("paste", paste, pass_args=True) GET_PASTE_HANDLER = DisableAbleCommandHandler("getpaste", get_paste_content, pass_args=True) PASTE_STATS_HANDLER = DisableAbleCommandHandler("pastestats", get_paste_stats, pass_args=True) UD_HANDLER = DisableAbleCommandHandler("ud", ud) WIKI_HANDLER = DisableAbleCommandHandler("wiki", wiki) COVID_HANDLER = DisableAbleCommandHandler("covid", covid, admin_ok=True) dispatcher.add_handler(UD_HANDLER) dispatcher.add_handler(PASTE_HANDLER) dispatcher.add_handler(GET_PASTE_HANDLER) dispatcher.add_handler(PASTE_STATS_HANDLER) dispatcher.add_handler(ID_HANDLER) dispatcher.add_handler(IP_HANDLER) dispatcher.add_handler(INFO_HANDLER) dispatcher.add_handler(ECHO_HANDLER) dispatcher.add_handler(MD_HELP_HANDLER) dispatcher.add_handler(STATS_HANDLER) dispatcher.add_handler(GDPR_HANDLER) dispatcher.add_handler(GITHUB_HANDLER) dispatcher.add_handler(REPO_HANDLER) dispatcher.add_handler( DisableAbleCommandHandler("removebotkeyboard", reply_keyboard_remove)) dispatcher.add_handler(WIKI_HANDLER)
rep += tld(chat.id, "misc_lastfm_pn_loved").format(artist, song) if image: rep += f"<a href='{image}'>\u200c</a>" else: tracks = res.json().get("recenttracks").get("track") track_dict = { tracks[i].get("artist").get("name"): tracks[i].get("name") for i in range(3) } rep = tld(chat.id, "misc_lastfm_np").format(user) for artist, song in track_dict.items(): rep += tld(chat.id, "misc_lastfm_scrr").format(artist, song) last_user = requests.get( f"{base_url}?method=user.getinfo&user={username}&api_key={LASTFM_API_KEY}&format=json" ).json().get("user") scrobbles = last_user.get("playcount") rep += tld(chat.id, "misc_lastfm_scr").format(scrobbles) msg.reply_text(rep, parse_mode=ParseMode.HTML) __help__ = True SET_USER_HANDLER = CommandHandler("setuser", set_user, pass_args=True) CLEAR_USER_HANDLER = CommandHandler("clearuser", clear_user) LASTFM_HANDLER = DisableAbleCommandHandler("lastfm", last_fm) dispatcher.add_handler(SET_USER_HANDLER) dispatcher.add_handler(CLEAR_USER_HANDLER) dispatcher.add_handler(LASTFM_HANDLER)