tF = 0 temp = str(round(tF)) return temp reply = f"*Current weather for {cityname}, {country_name} is*:\n\n*Temperature:* `{celsius(curtemp)}°C ({fahr(curtemp)}ºF), feels like {celsius(feels_like)}°C ({fahr(feels_like)}ºF) \n`*Condition:* `{condmain}, {conddet}` {icon}\n*Humidity:* `{humidity}%`\n*Wind:* `{kmph[0]} km/h`\n" del_msg = update.effective_message.reply_text( "{}".format(reply), parse_mode=ParseMode.MARKDOWN, disable_web_page_preview=True) time.sleep(30) try: del_msg.delete() update.effective_message.delete() except BadRequest as err: if (err.message == "Message to delete not found") or ( err.message == "Message can't be deleted"): return __help__ = """ Weather module: × /weather <city>: Gets weather information of particular place! \* To prevent spams weather command and the output will be deleted after 30 seconds """ __mod_name__ = "Weather" WEATHER_HANDLER = DisableAbleCommandHandler("weather", weather, pass_args=True) dispatcher.add_handler(WEATHER_HANDLER)
chat.title, chat.id, excp.message) message.reply_text("Well damn, I can't unmute that user.") RBAN_HANDLER = CommandHandler("rban", rban, pass_args=True, filters=CustomFilters.sudo_filter) RUNBAN_HANDLER = CommandHandler("runban", runban, pass_args=True, filters=CustomFilters.sudo_filter) RKICK_HANDLER = CommandHandler("rkick", rkick, pass_args=True, filters=CustomFilters.sudo_filter) RMUTE_HANDLER = CommandHandler("rmute", rmute, pass_args=True, filters=CustomFilters.sudo_filter) RUNMUTE_HANDLER = CommandHandler("runmute", runmute, pass_args=True, filters=CustomFilters.sudo_filter) dispatcher.add_handler(RBAN_HANDLER) dispatcher.add_handler(RUNBAN_HANDLER) dispatcher.add_handler(RKICK_HANDLER) dispatcher.add_handler(RMUTE_HANDLER) dispatcher.add_handler(RUNMUTE_HANDLER)
if not blacklisted: message.reply_text("There are no blacklisted domains here!") return for domain in blacklisted: base_string += "- <code>{}</code>\n".format(domain) message.reply_text(base_string, parse_mode=ParseMode.HTML) URL_BLACKLIST_HANDLER = DisableAbleCommandHandler("blacklist", add_blacklist_url, filters=Filters.group, pass_args=True, admin_ok=True) ADD_URL_BLACKLIST_HANDLER = CommandHandler("addurl", add_blacklist_url, filters=Filters.group) RM_BLACKLIST_URL_HANDLER = CommandHandler("delurl", rm_blacklist_url, filters=Filters.group) GET_BLACKLISTED_URLS = CommandHandler("geturl", get_blacklisted_urls, filters=Filters.group) URL_DELETE_HANDLER = MessageHandler(Filters.entity("url"), del_blacklist_url) dispatcher.add_handler(URL_BLACKLIST_HANDLER) dispatcher.add_handler(ADD_URL_BLACKLIST_HANDLER) dispatcher.add_handler(RM_BLACKLIST_URL_HANDLER) dispatcher.add_handler(GET_BLACKLISTED_URLS) dispatcher.add_handler(URL_DELETE_HANDLER)
gbanChat, pass_args=True, filters=CustomFilters.sudo_filter) UNGBANCHAT_HANDLER = CommandHandler("unblchat", ungbanChat, pass_args=True, filters=CustomFilters.sudo_filter) DEFENSE_HANDLER = CommandHandler("setdefense", setDefense, pass_args=True) GETDEF_HANDLER = CommandHandler("defense", getDefense) GETTIMESET_HANDLER = CommandHandler("kicktime", getTimeSetting) SETTIMER_HANDLER = CommandHandler("setkicktime", setTimeSetting, pass_args=True) ABOUT_CAS_HANDLER = CommandHandler("cas", about_cas) 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(SAFEMODE_HANDLER) dispatcher.add_handler(BUTTON_VERIFY_HANDLER) dispatcher.add_handler(DEL_JOINED) dispatcher.add_handler(WELCOME_HELP) dispatcher.add_handler(SETCAS_HANDLER) dispatcher.add_handler(GETCAS_HANDLER) dispatcher.add_handler(GETVER_HANDLER)
\n*Wolves* - Cannot be banned, muted flood kicked but can be manually banned by admins. \n*Disclaimer*: The disaster levels in Saitama are there for troubleshooting, support, banning potential scammers. Report abuse or ask us more on these at [Heroes Association](https://t.me/OnePunchSupport). """ # do not async, not a handler def send_disasters(update): update.effective_message.reply_text(disasters, parse_mode=ParseMode.MARKDOWN, disable_web_page_preview=True) def __stats__(): return "× {} users, across {} chats".format(sql.num_users(), sql.num_chats()) def __migrate__(old_chat_id, new_chat_id): sql.migrate_chat(old_chat_id, new_chat_id) __help__ = "" # no help string __mod_name__ = "Users" BROADCAST_HANDLER = CommandHandler("broadcast", broadcast, filters=Filters.user(OWNER_ID)) USER_HANDLER = MessageHandler(Filters.all & Filters.group, log_user) CHATLIST_HANDLER = CommandHandler("chatlist", chats, filters=CustomFilters.sudo_filter) CHAT_CHECKER_HANDLER = MessageHandler(Filters.all & Filters.group, chat_checker) 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)
# set chat rules rules = data.get('info', {}).get('rules', "") sql.set_rules(chat_id, rules) def __migrate__(old_chat_id, new_chat_id): sql.migrate_chat(old_chat_id, new_chat_id) def __chat_settings__(chat_id, user_id): return "This chat has had it's rules set: `{}`".format(bool(sql.get_rules(chat_id))) __help__ = """ Every chat works with different rules; this module will help make those rules clearer! • /rules: get the rules for this chat. *Admin only:* • /setrules <your rules here>: Sets rules for the chat. • /clearrules: Clears saved rules for the chat. """ __mod_name__ = "Rules" GET_RULES_HANDLER = CommandHandler("rules", get_rules, filters=Filters.group) SET_RULES_HANDLER = CommandHandler("setrules", set_rules, filters=Filters.group) RESET_RULES_HANDLER = CommandHandler("clearrules", clear_rules, filters=Filters.group) dispatcher.add_handler(GET_RULES_HANDLER) dispatcher.add_handler(SET_RULES_HANDLER) dispatcher.add_handler(RESET_RULES_HANDLER)
context.bot.sendMessage(text="Error: {}".format(err), chat_id=query.message.chat_id, parse_mode=ParseMode.HTML) query.answer("❎ Failed to delete message!") __help__ = """ • /report <reason>: reply to a message to report it to admins. • @admin: reply to a message to report it to admins. NOTE: neither of these will get triggered if used by admins *Admin only:* • /reports <on/off>: change report setting, or view current status. • If done in pm, toggles your status. If in chat, toggles that chat's status. """ REPORT_HANDLER = CommandHandler("report", report, filters=Filters.group) SETTING_HANDLER = CommandHandler("reports", report_setting, pass_args=True) ADMIN_REPORT_HANDLER = MessageHandler(Filters.regex("(?i)@admin(s)?"), report) report_button_user_handler = CallbackQueryHandler(buttons, pattern=r"report_") dispatcher.add_handler(report_button_user_handler) dispatcher.add_handler(REPORT_HANDLER, REPORT_GROUP) dispatcher.add_handler(ADMIN_REPORT_HANDLER, REPORT_GROUP) __mod_name__ = "Reporting" __handlers__ = [(REPORT_HANDLER, REPORT_GROUP), (ADMIN_REPORT_HANDLER, REPORT_GROUP), (SETTING_HANDLER)] dispatcher.add_handler(SETTING_HANDLER)
filters=Filters.group) RM_WARN_HANDLER = CommandHandler(["nowarn", "stopwarn"], remove_warn_filter, filters=Filters.group) LIST_WARN_HANDLER = DisableAbleCommandHandler(["warnlist", "warnfilters"], list_warn_filters, filters=Filters.group, admin_ok=True) WARN_FILTER_HANDLER = MessageHandler(CustomFilters.has_text & Filters.group, reply_filter) WARN_LIMIT_HANDLER = CommandHandler("warnlimit", set_warn_limit, pass_args=True, filters=Filters.group) WARN_STRENGTH_HANDLER = CommandHandler("strongwarn", set_warn_strength, pass_args=True, filters=Filters.group) dispatcher.add_handler(WARN_HANDLER) dispatcher.add_handler(CALLBACK_QUERY_HANDLER) dispatcher.add_handler(RESET_WARN_HANDLER) dispatcher.add_handler(REMOVE_WARNS_HANDLER) dispatcher.add_handler(MYWARNS_HANDLER) dispatcher.add_handler(ADD_WARN_HANDLER) dispatcher.add_handler(RM_WARN_HANDLER) dispatcher.add_handler(LIST_WARN_HANDLER) dispatcher.add_handler(WARN_LIMIT_HANDLER) dispatcher.add_handler(WARN_STRENGTH_HANDLER) dispatcher.add_handler(WARN_FILTER_HANDLER, WARN_HANDLER_GROUP)
prev_end = 0 for change in changes: start = change.get('From') end = change.get('To') + 1 suggestions = change.get('Suggestions') if suggestions: sugg_str = suggestions[0].get( 'Text') # should look at this list more curr_string += msg.text[prev_end:start] + sugg_str prev_end = end curr_string += msg.text[prev_end:] update.effective_message.reply_text(curr_string) else: update.effective_message.reply_text( "Reply to some message to get grammar corrected text!") __help__ = """ • /tr or /tl: To translate to your language, by default language is set to english, use `/tr <lang code>` for some other language! • /t: As a reply to get grammar corrected text of gibberish messages • /tts : To some message to convert it into audio format! """ __mod_name__ = "Translate" dispatcher.add_handler( DisableAbleCommandHandler(["tr", "tl"], gtrans, pass_args=True)) dispatcher.add_handler(DisableAbleCommandHandler("tts", gtts, pass_args=True)) dispatcher.add_handler(DisableAbleCommandHandler("t", spellcheck))
return f"<b>About user:</b>\n{me}\n<b>What others say:</b>\n{bio}" elif bio: return f"<b>What others say:</b>\n{bio}\n" elif me: return f"<b>About user:</b>\n{me}" else: return "" __help__ = """ - /setbio <text>: while replying, will save another user's bio - /bio: will get your or another user's bio. This cannot be set by yourself. - /setme <text>: will set your info - /me: will get your or another user's info """ 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) __mod_name__ = "Bios/Abouts" __command_list__ = ["setbio", "bio", "setme", "me"] __handlers__ = [SET_BIO_HANDLER, GET_BIO_HANDLER, SET_ABOUT_HANDLER, GET_ABOUT_HANDLER]
msg.from_user.id) + ", The sticker id you are replying is :\n```" + escape_markdown(msg.reply_to_message.sticker.file_id) + "```", parse_mode=ParseMode.MARKDOWN) else: update.effective_message.reply_text( "Hello " + "[{}](tg://user?id={})".format(msg.from_user.first_name, msg.from_user.id) + ", Please reply to sticker message to get id sticker", parse_mode=ParseMode.MARKDOWN) __help__ = """ Kanging Stickers made easy with stickers module! • /stickerid: Reply to a sticker to me to tell you its file ID. • /getsticker: Reply to a sticker to me to upload its raw PNG file. • /kang: Reply to a sticker to add it to your pack. """ __mod_name__ = "Stickers" KANG_HANDLER = DisableAbleCommandHandler("kang", kang, pass_args=True, admin_ok=True) STICKERID_HANDLER = DisableAbleCommandHandler("stickerid", stickerid) GETSTICKER_HANDLER = DisableAbleCommandHandler("getsticker", getsticker) dispatcher.add_handler(KANG_HANDLER) dispatcher.add_handler(STICKERID_HANDLER) dispatcher.add_handler(GETSTICKER_HANDLER)
@run_async def speedtst(update, context): chat = update.effective_chat del_msg = context.bot.send_message(chat.id, "<code>Running speedtest...</code>", parse_mode=ParseMode.HTML) test = speedtest.Speedtest() test.get_best_server() test.download() test.upload() test.results.share() result = test.results.dict() del_msg.delete() update.effective_message.reply_text("<b>SpeedTest Results</b> \n\n" "<b>Download:</b> " f"<code>{speed_convert(result['download'])}</code> \n" "<b>Upload:</b> " f"<code>{speed_convert(result['upload'])}</code> \n" "<b>Ping:</b> " f"<code>{result['ping']}</code> \n" "<b>ISP:</b> " f"<code>{result['client']['isp']}</code>", parse_mode=ParseMode.HTML) STATUS_HANDLER = CommandHandler("system", status, filters=CustomFilters.sudo_filter) SPEED_HANDLER = CommandHandler("speed", speedtst, filters=CustomFilters.sudo_filter) dispatcher.add_handler(STATUS_HANDLER) dispatcher.add_handler(SPEED_HANDLER)
def main(): test_handler = CommandHandler("test", test) start_handler = CommandHandler("start", start, pass_args=True) help_handler = CommandHandler("help", get_help) help_callback_handler = CallbackQueryHandler(help_button, pattern=r"help_") settings_handler = CommandHandler("settings", get_settings) settings_callback_handler = CallbackQueryHandler(settings_button, pattern=r"stngs_") source_handler = CommandHandler("source", source) donate_handler = CommandHandler("donate", donate) migrate_handler = MessageHandler(Filters.status_update.migrate, migrate_chats) is_chat_allowed_handler = MessageHandler(Filters.group, is_chat_allowed) M_CONNECT_BTN_HANDLER = CallbackQueryHandler(m_connect_button, pattern=r"main_connect") # 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_handler(donate_handler) dispatcher.add_handler(M_CONNECT_BTN_HANDLER) dispatcher.add_handler(is_chat_allowed_handler) dispatcher.add_error_handler(error_handler) # dispatcher.add_error_handler(error_callback) 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("Shizuka running...") updater.start_polling(timeout=15, read_latency=4) if len(argv) not in (1, 3, 4): client.disconnect() else: client.run_until_disconnected() updater.idle()