def main(): # test_handler = DisableAbleCommandHandler("test", test, run_async=True) start_handler = DisableAbleCommandHandler("start", start, pass_args=True, run_async=True) help_handler = DisableAbleCommandHandler("help", get_help, run_async=True) help_callback_handler = CallbackQueryHandler(help_button, pattern=r"help_", run_async=True) settings_handler = DisableAbleCommandHandler("settings", get_settings, run_async=True) settings_callback_handler = CallbackQueryHandler(settings_button, pattern=r"stngs_", run_async=True) donate_handler = DisableAbleCommandHandler("donate", donate, run_async=True) migrate_handler = MessageHandler(Filters.status_update.migrate, migrate_chats, run_async=True) # 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(donate_handler) dispatcher.add_error_handler(error_callback) if WEBHOOK: LOGGER.info("Using webhooks.") updater.start_webhook(listen="0.0.0.0", 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, drop_pending_updates=True, allowed_updates=Update.ALL_TYPES) if len(argv) not in (1, 3, 4): telethn.disconnect() else: telethn.run_until_disconnected() updater.idle()
counter = 0 pattern = r'^,\[\"(.*[.png|.jpg|.jpeg])\",[0-9]+,[0-9]+\]$' oboi = re.findall(pattern, decoded, re.I | re.M) for imglink in oboi: counter += 1 imglinks.append(imglink) if counter >= int(lim): break return imglinks __help__ = f""" *Commands:* • /reverse: Does a *reverse image search* of the media which it was replied to. - - - - - - - - - """ __mod_name__ = "Reverse" REVERSE_HANDLER = DisableAbleCommandHandler("reverse", reverse, pass_args=True, admin_ok=True) dispatcher.add_handler(REVERSE_HANDLER)
*Admins only:* • `/ban <userhandle>`*:* bans a user. (via handle, or reply) • `/sban <userhandle>`*:* Silently ban a user. Deletes command, Replied message and doesn't reply. (via handle, or reply) • `/tban <userhandle> x(m/h/d)`*:* bans a user for `x` time. (via handle, or reply). `m` = `minutes`, `h` = `hours`, `d` = `days`. • `/dban` <userhandle>: Bans a user and also deletes the message sent by banned user. • `/unban <userhandle>`*:* unbans a user. (via handle, or reply) • `/kick <userhandle>`*:* Kicks a user out of the group, (via handle, or reply) • `/punch <userhandle>`*:* Punches a user out of the group, (via handle, or reply) """ BAN_HANDLER = CommandHandler(["ban", "sban"], ban) TEMPBAN_HANDLER = CommandHandler(["tban"], temp_ban) PUNCH_HANDLER = CommandHandler(["punch", "kick"], punch) BANME_HANDLER = DisableAbleCommandHandler( "banme", banme, filters=Filters.group) UNBAN_HANDLER = CommandHandler("unban", unban) ROAR_HANDLER = CommandHandler("roar", selfunban) PUNCHME_HANDLER = DisableAbleCommandHandler(["punchme", "kickme"], punchme, filters=Filters.group) DBAN_HANDLER = CommandHandler("dban", dban) DKICK_HANDLER = CommandHandler("dkick", dkick) dispatcher.add_handler(BAN_HANDLER) dispatcher.add_handler(TEMPBAN_HANDLER) dispatcher.add_handler(BANME_HANDLER) dispatcher.add_handler(DBAN_HANDLER) dispatcher.add_handler(DKICK_HANDLER) dispatcher.add_handler(PUNCH_HANDLER) dispatcher.add_handler(UNBAN_HANDLER) dispatcher.add_handler(ROAR_HANDLER) dispatcher.add_handler(PUNCHME_HANDLER)
#plugin by t.me/RCage @run_async def meme(update: Update, context: CallbackContext): msg = update.effective_message meme = requests.get("https://meme-api.herokuapp.com/gimme/Animemes/").json() image = meme.get("url") caption = meme.get("title") if not image: msg.reply_text("No URL was received from the API!") return msg.reply_photo( photo=image, caption=caption) MEME_HANDLER = DisableAbleCommandHandler("meme", meme) HUGS_HANDLER = DisableAbleCommandHandler("hugs", hugs) dispatcher.add_handler(MEME_HANDLER) dispatcher.add_handler(HUGS_HANDLER) __command_list__ = [ "hugs", "meme", ] __handlers__ = [ HUGS_HANDLER, MEME_HANDLER, ]
• `/anime <anime>`*:* returns information about the anime. • `/character <character>`*:* returns information about the character. • `/manga <manga>`*:* returns information about the manga. • `/user <user>`*:* returns information about a MyAnimeList user. • `/upcoming`*:* returns a list of new anime in the upcoming seasons. • `/kaizoku <anime>`*:* search an anime on animekaizoku.com • `/kayo <anime>`*:* search an anime on animekayo.com • `/airing <anime>`*:* returns anime airing info. ➩ *Anime Fun:* • `/aq` *:* get random anime quotes """ ANIME_HANDLER = DisableAbleCommandHandler("anime", anime) AIRING_HANDLER = DisableAbleCommandHandler("airing", airing) CHARACTER_HANDLER = DisableAbleCommandHandler("character", character) MANGA_HANDLER = DisableAbleCommandHandler("manga", manga) USER_HANDLER = DisableAbleCommandHandler("user", user) UPCOMING_HANDLER = DisableAbleCommandHandler("upcoming", upcoming) KAIZOKU_SEARCH_HANDLER = DisableAbleCommandHandler("kaizoku", kaizoku) KAYO_SEARCH_HANDLER = DisableAbleCommandHandler("kayo", kayo) BUTTON_HANDLER = CallbackQueryHandler(button, pattern='anime_.*') dispatcher.add_handler(BUTTON_HANDLER) dispatcher.add_handler(ANIME_HANDLER) dispatcher.add_handler(CHARACTER_HANDLER) dispatcher.add_handler(MANGA_HANDLER) dispatcher.add_handler(AIRING_HANDLER) dispatcher.add_handler(USER_HANDLER)
update.effective_message.reply_text(res) else: if int(userc_id) == int(user_id): return res = "{} is afk.\nReason: <code>{}</code>".format( html.escape(fst_name), html.escape(user.reason)) update.effective_message.reply_text(res, parse_mode="html") __help__ = """ • `/afk <reason>`*:* mark yourself as AFK(away from keyboard). • `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 you're not available! """ AFK_HANDLER = DisableAbleCommandHandler("afk", afk) AFK_REGEX_HANDLER = DisableAbleMessageHandler(Filters.regex(r"^(?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) __mod_name__ = "AFK" __command_list__ = ["afk"] __handlers__ = [(AFK_HANDLER, AFK_GROUP), (AFK_REGEX_HANDLER, AFK_GROUP), (NO_AFK_HANDLER, AFK_GROUP),
@run_async def wyr(update: Update, context: CallbackContext): update.effective_message.reply_text(random.choice( game_strings.WYR_STRINGS)) __help__ = """ • `/truth`*:* asks you a question • `/dare`*:* gives you a dare • `/tord`*:* can be a truth or a dare • `/rather`*:* would you rather """ TRUTH_HANDLER = DisableAbleCommandHandler("truth", truth) DARE_HANDLER = DisableAbleCommandHandler("dare", dare) TORD_HANDLER = DisableAbleCommandHandler("tord", tord) WYR_HANDLER = DisableAbleCommandHandler("rather", wyr) dispatcher.add_handler(TRUTH_HANDLER) dispatcher.add_handler(DARE_HANDLER) dispatcher.add_handler(TORD_HANDLER) dispatcher.add_handler(WYR_HANDLER) __mod_name__ = "Games" __command_list__ = [ "truth", "dare", "tord", "rather",
except DisambiguationError as e: update.message.reply_text( "Disambiguated pages found! Adjust your query accordingly.\n<i>{}</i>" .format(e), parse_mode=ParseMode.HTML) except PageError as e: update.message.reply_text("<code>{}</code>".format(e), parse_mode=ParseMode.HTML) if res: result = f"<b>{search}</b>\n\n" result += f"<i>{res}</i>\n" result += f"""<a href="https://en.wikipedia.org/wiki/{search.replace(" ", "%20")}">Read more...</a>""" if len(result) > 4000: with open("result.txt", 'w') as f: f.write(f"{result}\n\nUwU OwO OmO UmU") with open("result.txt", 'rb') as f: context.bot.send_document( document=f, filename=f.name, reply_to_message_id=update.message.message_id, chat_id=update.effective_chat.id, parse_mode=ParseMode.HTML) else: update.message.reply_text(result, parse_mode=ParseMode.HTML, disable_web_page_preview=True) WIKI_HANDLER = DisableAbleCommandHandler("wiki", wiki) dispatcher.add_handler(WIKI_HANDLER)
except DisambiguationError as e: update.message.reply_text( "Disambiguated pages found! Adjust your query accordingly.\n<i>{}</i>" .format(e), parse_mode=ParseMode.HTML) except PageError as e: update.message.reply_text("<code>{}</code>".format(e), parse_mode=ParseMode.HTML) if res: result = f"<b>{search}</b>\n\n" result += f"<i>{res}</i>\n" result += f"""<a href="https://en.wikipedia.org/wiki/{search.replace(" ", "%20")}">Read more...</a>""" if len(result) > 4000: with open("result.txt", 'w') as f: f.write(f"{result}\n\nUwU OwO OmO UmU") with open("result.txt", 'rb') as f: context.bot.send_document( document=f, filename=f.name, reply_to_message_id=update.message.message_id, chat_id=update.effective_chat.id, parse_mode=ParseMode.HTML) else: update.message.reply_text(result, parse_mode=ParseMode.HTML, disable_web_page_preview=True) WIKI_HANDLER = DisableAbleCommandHandler("wiki", wiki, run_async=True) dispatcher.add_handler(WIKI_HANDLER)
*Urban Dictonary:* • `/ud <word>`*:* Type the word or expression you want to search use *Wikipedia:* • `/wiki <query>`*:* wikipedia your query *Wallpapers:* • `/wall <query>`*:* get a wallpaper from wall.alphacoders.com *Currency converter:* • `/cash`*:* currency converter Example: `/cash 1 USD INR` _OR_ `/cash 1 usd inr` Output: `1.0 USD = 75.505 INR` """ ECHO_HANDLER = DisableAbleCommandHandler("echo", echo, filters=Filters.chat_type.groups, run_async=True) MD_HELP_HANDLER = CommandHandler("markdownhelp", markdown_help, run_async=True) dispatcher.add_handler(ECHO_HANDLER) dispatcher.add_handler(MD_HELP_HANDLER) __mod_name__ = "Extras" __command_list__ = ["id", "echo"] __handlers__ = [ ECHO_HANDLER, MD_HELP_HANDLER, ]
is_afk = is_user_afk(user_id) text = "" if is_afk: since_afk = get_readable_time( (time.time() - float(REDIS.get(f'afk_time_{user_id}')))) text = "<i>This user is currently afk (away from keyboard).</i>" text += f"\n<i>Since: {since_afk}</i>" else: text = "<i>This user is currently isn't afk (away from keyboard).</i>" return text def __gdpr__(user_id): end_afk(user_id) AFK_HANDLER = DisableAbleCommandHandler("afk", afk, run_async=True) AFK_REGEX_HANDLER = MessageHandler(Filters.regex("(?i)brb"), afk) NO_AFK_HANDLER = MessageHandler(Filters.all & Filters.chat_type.groups, no_longer_afk, run_async=True) AFK_REPLY_HANDLER = MessageHandler(Filters.all & Filters.chat_type.groups, reply_afk, run_async=True) 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)
import requests from SungJinwooRobot import dispatcher from SungJinwooRobot.modules.disable import DisableAbleCommandHandler from telegram import ParseMode, Update from telegram.ext import CallbackContext, run_async @run_async def ud(update: Update, context: CallbackContext): message = update.effective_message text = message.text[len('/ud '):] results = requests.get( f'https://api.urbandictionary.com/v0/define?term={text}').json() try: reply_text = f'*{text}*\n\n{results["list"][0]["definition"]}\n\n_{results["list"][0]["example"]}_' except: reply_text = "No results found." message.reply_text(reply_text, parse_mode=ParseMode.MARKDOWN) UD_HANDLER = DisableAbleCommandHandler(["ud"], ud) dispatcher.add_handler(UD_HANDLER) __command_list__ = ["ud"] __handlers__ = [UD_HANDLER]
• `/removeallfilters`*:* Remove all chat filters at once. *Note*: Filters also support markdown formatters like: {first}, {last} etc.. and buttons. Check `/markdownhelp` to know more! """ __mod_name__ = "Filters" FILTER_HANDLER = CommandHandler("filter", filters) STOP_HANDLER = CommandHandler("stop", stop_filter) RMALLFILTER_HANDLER = CommandHandler( "removeallfilters", rmall_filters, filters=Filters.group) RMALLFILTER_CALLBACK = CallbackQueryHandler( rmall_callback, pattern=r"filters_.*") LIST_HANDLER = DisableAbleCommandHandler( "filters", list_handlers, admin_ok=True) CUST_FILTER_HANDLER = MessageHandler( CustomFilters.has_text & ~Filters.update.edited_message, reply_filter) dispatcher.add_handler(FILTER_HANDLER) dispatcher.add_handler(STOP_HANDLER) dispatcher.add_handler(LIST_HANDLER) dispatcher.add_handler(CUST_FILTER_HANDLER, HANDLER_GROUP) dispatcher.add_handler(RMALLFILTER_HANDLER) dispatcher.add_handler(RMALLFILTER_CALLBACK) __handlers__ = [ FILTER_HANDLER, STOP_HANDLER, LIST_HANDLER, (CUST_FILTER_HANDLER, HANDLER_GROUP, RMALLFILTER_HANDLER) ]
*Information others add on you:* • `/bio`*:* will get your or another user's bio. This cannot be set by yourself. • `/setbio <text>`*:* while replying, will save another user's bio Examples: `/bio @username(defaults to yours if not specified).` `/setbio This user is a wolf` (reply to the user) *Overall Information about you:* • `/info`*:* get information about a user. *What is that health thingy?* Come and see [HP System explained](https://t.me/OnePunchUpdates/192) """ SET_BIO_HANDLER = DisableAbleCommandHandler("setbio", set_about_bio) GET_BIO_HANDLER = DisableAbleCommandHandler("bio", about_bio) STATS_HANDLER = CommandHandler("stats", stats) ID_HANDLER = DisableAbleCommandHandler("id", get_id) GIFID_HANDLER = DisableAbleCommandHandler("gifid", gifid) INFO_HANDLER = DisableAbleCommandHandler(("info", "book"), info) SET_ABOUT_HANDLER = DisableAbleCommandHandler("setme", set_about_me) GET_ABOUT_HANDLER = DisableAbleCommandHandler("me", about_me) dispatcher.add_handler(STATS_HANDLER) dispatcher.add_handler(ID_HANDLER) dispatcher.add_handler(GIFID_HANDLER) dispatcher.add_handler(INFO_HANDLER) dispatcher.add_handler(SET_BIO_HANDLER)
• `/rmwarn `*:* now you can remove last warn. No need reset. • `/addwarn <keyword> <reply message>`*:* set a warning filter on a certain keyword. If you want your keyword to \ be a sentence, encompass it with quotes, as such: `/addwarn "very angry" This is an angry user`. • `/nowarn <keyword>`*:* stop a warning filter • `/warnlimit <num>`*:* set the warning limit • `/strongwarn <on/yes/off/no>`*:* If set to on, exceeding the warn limit will result in a ban. Else, will just punch. """ __mod_name__ = "Warnings" WARN_HANDLER = CommandHandler(["warn", "dwarn"], warn_user, filters=Filters.chat_type.groups, run_async=True) RESET_WARN_HANDLER = CommandHandler(["resetwarn", "resetwarns"], reset_warns, filters=Filters.chat_type.groups, run_async=True) CALLBACK_QUERY_HANDLER = CallbackQueryHandler(button, pattern=r"rm_warn", run_async=True) MYWARNS_HANDLER = DisableAbleCommandHandler( "warns", warns, filters=Filters.chat_type.groups, run_async=True) ADD_WARN_HANDLER = CommandHandler( "addwarn", add_warn_filter, filters=Filters.chat_type.groups, run_async=True) REMOVE_WARN_HANDLER = CommandHandler( "rmwarn", rmwarn_cmd, filters=Filters.chat_type.groups, run_async=True) RM_WARN_HANDLER = CommandHandler(["nowarn", "stopwarn"], remove_warn_filter, filters=Filters.chat_type.groups, run_async=True) LIST_WARN_HANDLER = DisableAbleCommandHandler(["warnlist", "warnfilters"], list_warn_filters, filters=Filters.chat_type.groups, admin_ok=True, run_async=True) WARN_FILTER_HANDLER = MessageHandler(CustomFilters.has_text & Filters.chat_type.groups, reply_filter, run_async=True) WARN_LIMIT_HANDLER = CommandHandler( "warnlimit", set_warn_limit, filters=Filters.chat_type.groups, run_async=True)
return if success: msg.reply_text( "Sticker pack successfully created. Get it [here](t.me/addstickers/%s)" % packname, parse_mode=ParseMode.MARKDOWN, ) else: msg.reply_text( "Failed to create sticker pack. Possibly due to blek mejik.") __help__ = """ • `/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. • `/stickers`*:* Find stickers for given term on combot sticker catalogue """ __mod_name__ = "Stickers" STICKERID_HANDLER = DisableAbleCommandHandler("stickerid", stickerid) GETSTICKER_HANDLER = DisableAbleCommandHandler("getsticker", getsticker) KANG_HANDLER = DisableAbleCommandHandler("kang", kang, admin_ok=True) STICKERS_HANDLER = DisableAbleCommandHandler("stickers", cb_sticker) dispatcher.add_handler(STICKERS_HANDLER) dispatcher.add_handler(STICKERID_HANDLER) dispatcher.add_handler(GETSTICKER_HANDLER) dispatcher.add_handler(KANG_HANDLER)
• `/runs`*:* reply a random string from an array of replies • `/slap`*:* slap a user, or get slapped if not a reply • `/shrug`*:* get shrug XD • `/table`*:* get flip/unflip :v • `/decide`*:* Randomly answers yes/no/maybe • `/toss`*:* Tosses A coin • `/bluetext`*:* check urself :V • `/roll`*:* Roll a dice • `/rlg`*:* Join ears,nose,mouth and create an emo ;-; • `/shout <keyword>`*:* write anything you want to give loud shout • `/weebify <text>`*:* returns a weebified text • `/sanitize`*:* always use this before /pat or any contact • `/pat`*:* pats a user, or get patted """ SANITIZE_HANDLER = DisableAbleCommandHandler("sanitize", sanitize) RUNS_HANDLER = DisableAbleCommandHandler("runs", runs) SLAP_HANDLER = DisableAbleCommandHandler("slap", slap) PAT_HANDLER = DisableAbleCommandHandler("pat", pat) ROLL_HANDLER = DisableAbleCommandHandler("roll", roll) TOSS_HANDLER = DisableAbleCommandHandler("toss", toss) SHRUG_HANDLER = DisableAbleCommandHandler("shrug", shrug) BLUETEXT_HANDLER = DisableAbleCommandHandler("bluetext", bluetext) RLG_HANDLER = DisableAbleCommandHandler("rlg", rlg) DECIDE_HANDLER = DisableAbleCommandHandler("decide", decide) TABLE_HANDLER = DisableAbleCommandHandler("table", table) SHOUT_HANDLER = DisableAbleCommandHandler("shout", shout) WEEBIFY_HANDLER = DisableAbleCommandHandler("weebify", weebify) dispatcher.add_handler(WEEBIFY_HANDLER) dispatcher.add_handler(SHOUT_HANDLER)
• `/sin`*:* Sine `/sin 0` • `/tan`*:* Tangent `/tan 0` • `/arccos`*:* Inverse Cosine `/arccos 1` • `/arcsin`*:* Inverse Sine `/arcsin 0` • `/arctan`*:* Inverse Tangent `/arctan 0` • `/abs`*:* Absolute Value `/abs -1` • `/log`*:* Logarithm `/log 2l8` _Keep in mind_: To find the tangent line of a function at a certain x value, send the request as c|f(x) where c is the given x value and f(x) is the function expression, the separator is a vertical bar '|'. See the table above for an example request. To find the area under a function, send the request as c:d|f(x) where c is the starting x value, d is the ending x value, and f(x) is the function under which you want the curve between the two x values. To compute fractions, enter expressions as numerator(over)denominator. For example, to process 2/4 you must send in your expression as 2(over)4. The result expression will be in standard math notation (1/2, 3/4). """ __mod_name__ = "Math" SIMPLIFY_HANDLER = DisableAbleCommandHandler("math", simplify) FACTOR_HANDLER = DisableAbleCommandHandler("factor", factor) DERIVE_HANDLER = DisableAbleCommandHandler("derive", derive) INTEGRATE_HANDLER = DisableAbleCommandHandler("integrate", integrate) ZEROES_HANDLER = DisableAbleCommandHandler("zeroes", zeroes) TANGENT_HANDLER = DisableAbleCommandHandler("tangent", tangent) AREA_HANDLER = DisableAbleCommandHandler("area", area) COS_HANDLER = DisableAbleCommandHandler("cos", cos) SIN_HANDLER = DisableAbleCommandHandler("sin", sin) TAN_HANDLER = DisableAbleCommandHandler("tan", tan) ARCCOS_HANDLER = DisableAbleCommandHandler("arccos", arccos) ARCSIN_HANDLER = DisableAbleCommandHandler("arcsin", arcsin) ARCTAN_HANDLER = DisableAbleCommandHandler("arctan", arctan) ABS_HANDLER = DisableAbleCommandHandler("abs", abs) LOG_HANDLER = DisableAbleCommandHandler("log", log)
__help__ = """ Stickers made easy with stickers module! ~ `/stickers`: Find stickers for given term on combot sticker catalogue ~ `/kang or /steal`: Reply to a sticker to add it to your pack. ~ `/remove`: Reply to your anime exist sticker to your pack to delete it. ~ `/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. ~ `/addfav or /afv <custom name>`: Reply to a sticker to add it into your favorite pack list. ~ `/myfav or /mfv`: Get list of your favorite packs. ~ `/removefav or /rfv` <custom name>|: Reply to a sticker to remove it into your favorite pack list. *Example:* `/addfav mizuhara` """ __mod_name__ = "Stickers" KANG_HANDLER = DisableAbleCommandHandler(["kang", "steal"] , addsticker, pass_args=True, run_async=True) DEL_HANDLER = DisableAbleCommandHandler("remove", delsticker, run_async=True) STICKERID_HANDLER = DisableAbleCommandHandler("stickerid", stickerid, run_async=True) ADD_FSTICKER_HANDLER = DisableAbleCommandHandler(["addfav","afv"], add_fvrtsticker, pass_args=True, run_async=True) REMOVE_FSTICKER_HANDLER = DisableAbleCommandHandler(["removefslav","rfv"], remove_fvrtsticker, pass_args=True, run_async=True) MY_FSTICKERS_HANDLER = DisableAbleCommandHandler(["myfav","mfv"], list_fvrtsticker, run_async=True) GETSTICKER_HANDLER = DisableAbleCommandHandler("getsticker", getsticker, run_async=True) FIND_STICKERS_HANDLER = DisableAbleCommandHandler("stickers", cb_sticker, run_async=True) dispatcher.add_handler(KANG_HANDLER) dispatcher.add_handler(DEL_HANDLER) dispatcher.add_handler(STICKERID_HANDLER) dispatcher.add_handler(ADD_FSTICKER_HANDLER) dispatcher.add_handler(REMOVE_FSTICKER_HANDLER) dispatcher.add_handler(MY_FSTICKERS_HANDLER)
else: result = generate_time(query_timezone, ["zoneName", "countryName"]) if not result: send_message.edit_text( f'Timezone info not available for <b>{query}</b>\n' '<b>All Timezones:</b> <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">List here</a>', parse_mode=ParseMode.HTML, disable_web_page_preview=True) return send_message.edit_text(result, parse_mode=ParseMode.HTML, disable_web_page_preview=True) __help__ = """ • `/time <query>`*:* Gives information about a timezone. *Available queries:* Country Code/Country Name/Timezone Name • 🕐 [Timezones list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) """ TIME_HANDLER = DisableAbleCommandHandler("time", gettime) dispatcher.add_handler(TIME_HANDLER) __mod_name__ = "Time" __command_list__ = ["time"] __handlers__ = [TIME_HANDLER]
"( ◡‿◡ *)", "(//ω//)", "( ̄▽ ̄*)ゞ", "(„ಡωಡ„)", "(ノ´ з `)ノ", "(♡-_-♡)", "(─‿‿─)♡", "(´ ω `♡)", "(ღ˘⌣˘ღ)", "(´• ω •`) ♡", "╰(*´︶`*)╯♡", "(≧◡≦) ♡", "♡ (˘▽˘>ԅ( ˘⌣˘)", "σ(≧ε≦σ) ♡", "(˘∀˘)/(μ‿μ) ❤", "Σ>―(〃°ω°〃)♡→", "(* ^ ω ^)", "(o^▽^o)", "ヽ(・∀・)ノ", "(o・ω・o)", "(^人^)", "( ´ ω ` )", "(´• ω •`)", "╰(▔∀▔)╯", "(✯◡✯)", "(⌒‿⌒)", "(*°▽°*)", "(´。• ᵕ •。`)", "ヽ(>∀<☆)ノ", "\( ̄▽ ̄)/", "(o˘◡˘o)", "(╯✧▽✧)╯", "( ‾́ ◡ ‾́ )", "(๑˘︶˘๑)", "(´・ᴗ・ ` )", "( ͡° ʖ̯ ͡°)", "( ఠ ͟ʖ ఠ)", "( ಥ ʖ̯ ಥ)", "(≖ ͜ʖ≖)", "ヘ( ̄ω ̄ヘ)", "(ノ≧∀≦)ノ", "└( ̄- ̄└))", "┌(^^)┘", "(^_^♪)", "(〜 ̄△ ̄)〜", "(「• ω •)「", "( ˘ ɜ˘) ♬♪♫", "( o˘◡˘o) ┌iii┐", "♨o(>_<)o♨", "( ・・)つ―{}@{}@{}-", "(*´з`)口゚。゚口(・∀・ )", "( *^^)o∀*∀o(^^* )", "-●●●-c(・・ )", "(ノ≧∀≦)ノ ‥…━━━★", "╰( ͡° ͜ʖ ͡° )つ──☆*:・゚", "(∩ᄑ_ᄑ)⊃━☆゚*・。*・:≡( ε:)" ] @run_async def react(update: Update, context: CallbackContext): message = update.effective_message react = random.choice(reactions) if message.reply_to_message: message.reply_to_message.reply_text(react) else: message.reply_text(react) REACT_HANDLER = DisableAbleCommandHandler("react", react) dispatcher.add_handler(REACT_HANDLER) __command_list__ = ["react"] __handlers__ = [REACT_HANDLER]
• `/nowarn <keyword>`*:* stop a warning filter • `/warnlimit <num>`*:* set the warning limit • `/strongwarn <on/yes/off/no>`*:* If set to on, exceeding the warn limit will result in a ban. Else, will just punch. """ __mod_name__ = "Warnings" WARN_HANDLER = CommandHandler(["warn", "dwarn"], warn_user, filters=Filters.group) RESET_WARN_HANDLER = CommandHandler(["resetwarn", "resetwarns"], reset_warns, filters=Filters.group) CALLBACK_QUERY_HANDLER = CallbackQueryHandler(button, pattern=r"rm_warn") MYWARNS_HANDLER = DisableAbleCommandHandler("warns", warns, filters=Filters.group) ADD_WARN_HANDLER = CommandHandler("addwarn", add_warn_filter, filters=Filters.group) REMOVE_WARN_HANDLER = CommandHandler("rmwarn", rmwarn_cmd, 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,
• `/paste`*:* Saves replied content to `nekobin.com` and replies with a url *React:* • `/react`*:* Reacts with a random reaction *Urban Dictonary:* • `/ud <word>`*:* Type the word or expression you want to search use *Wikipedia:* • `/wiki <query>`*:* wikipedia your query *Wallpapers:* • `/wall <query>`*:* get a wallpaper from wall.alphacoders.com *Currency converter:* • `/cash`*:* currency converter Example: `/cash 1 USD INR` _OR_ `/cash 1 usd inr` Output: `1.0 USD = 75.505 INR` """ ECHO_HANDLER = DisableAbleCommandHandler("echo", echo, filters=Filters.group) MD_HELP_HANDLER = CommandHandler("markdownhelp", markdown_help) dispatcher.add_handler(ECHO_HANDLER) dispatcher.add_handler(MD_HELP_HANDLER) __mod_name__ = "Extras" __command_list__ = ["id", "echo"] __handlers__ = [ ECHO_HANDLER, MD_HELP_HANDLER, ]
def __chat_settings__(chat_id, user_id): blacklisted = sql.num_stickers_chat_filters(chat_id) return "There are `{} `blacklisted stickers.".format(blacklisted) def __stats__(): return "• {} blacklist stickers, across {} chats.".format( sql.num_stickers_filters(), sql.num_stickers_filter_chats(), ) __mod_name__ = "Stickers Blacklist" BLACKLIST_STICKER_HANDLER = DisableAbleCommandHandler("blsticker", blackliststicker, admin_ok=True, run_async=True) ADDBLACKLIST_STICKER_HANDLER = DisableAbleCommandHandler("addblsticker", add_blackliststicker, run_async=True) UNBLACKLIST_STICKER_HANDLER = CommandHandler(["unblsticker", "rmblsticker"], unblackliststicker, run_async=True) BLACKLISTMODE_HANDLER = CommandHandler("blstickermode", blacklist_mode, run_async=True) BLACKLIST_STICKER_DEL_HANDLER = MessageHandler(Filters.sticker & Filters.chat_type.groups, del_blackliststicker, run_async=True)
Reply 3` • `/clear <notename>`*:* clear note with this name • `/removeallnotes`*:* removes all notes from the group *Note:* Note names are case-insensitive, and they are automatically converted to lowercase before getting saved. """ __mod_name__ = "Notes" GET_HANDLER = CommandHandler("get", cmd_get) HASH_GET_HANDLER = MessageHandler(Filters.regex(r"^#[^\s]+"), hash_get) SLASH_GET_HANDLER = MessageHandler(Filters.regex(r"^/\d+$"), slash_get) SAVE_HANDLER = CommandHandler("save", save) DELETE_HANDLER = CommandHandler("clear", clear) LIST_HANDLER = DisableAbleCommandHandler(["notes", "saved"], list_notes, admin_ok=True) CLEARALL = DisableAbleCommandHandler("removeallnotes", clearall) CLEARALL_BTN = CallbackQueryHandler(clearall_btn, pattern=r"notes_.*") dispatcher.add_handler(GET_HANDLER) dispatcher.add_handler(SAVE_HANDLER) dispatcher.add_handler(LIST_HANDLER) dispatcher.add_handler(DELETE_HANDLER) dispatcher.add_handler(HASH_GET_HANDLER) dispatcher.add_handler(SLASH_GET_HANDLER) dispatcher.add_handler(CLEARALL) dispatcher.add_handler(CLEARALL_BTN)
*Information others add on you:* • `/bio`*:* will get your or another user's bio. This cannot be set by yourself. • `/setbio <text>`*:* while replying, will save another user's bio Examples: `/bio @username(defaults to yours if not specified).` `/setbio This user is a wolf` (reply to the user) *Overall Information about you:* • `/info`*:* get information about a user. *What is that health thingy?* Come and see [HP System explained](https://t.me/IGRISXUPDATES/4) """ SET_BIO_HANDLER = DisableAbleCommandHandler("setbio", set_about_bio, run_async=True) GET_BIO_HANDLER = DisableAbleCommandHandler("bio", about_bio, run_async=True) STATS_HANDLER = CommandHandler("stats", stats, run_async=True) ID_HANDLER = DisableAbleCommandHandler("id", get_id, run_async=True) GIFID_HANDLER = DisableAbleCommandHandler("gifid", gifid, run_async=True) INFO_HANDLER = DisableAbleCommandHandler(("info", "book"), info, run_async=True) SET_ABOUT_HANDLER = DisableAbleCommandHandler("setme", set_about_me, run_async=True) GET_ABOUT_HANDLER = DisableAbleCommandHandler("me", about_me, run_async=True)
• /quote: random quotes from anime characters. • /anime <anime> : returns information about the anime. • /airing <anime> : returns anime airing info. • /manga <manga> : returns information about the manga. • /character <character> : returns information about the character. • /user <user> : returns information about a MyAnimeList user. • /schedule : returns a list of new anime in the upcoming seasons. • /watchlist: to get your saved watchlist. • /mangalist: to get your saved manga read list. • /mywaifus | characterlist | fcl: to get your favorite characters / waifus list. • /removewatchlist | rwl <anime>: to remove a anime from your list. • /rfcharacter | rfcl <character>: to remove a character from your list. • /rmanga | rml <manga>: to remove a manga from your list. """ ANIME_HANDLER = DisableAbleCommandHandler("anime", anime, run_async=True) AIRING_HANDLER = DisableAbleCommandHandler("airing", airing, run_async=True) CHARACTER_HANDLER = DisableAbleCommandHandler("character", character) MANGA_HANDLER = DisableAbleCommandHandler("manga", manga, run_async=True) USER_HANDLER = DisableAbleCommandHandler("user", user, run_async=True) UPCOMING_HANDLER = DisableAbleCommandHandler("schedule", upcoming, run_async=True) BUTTON_HANDLER = CallbackQueryHandler(button, pattern='anime_.*', run_async=True) WATCHLIST_HANDLER = DisableAbleCommandHandler("watchlist", watchlist, run_async=True) MANGALIST_HANDLER = DisableAbleCommandHandler("mangalist", readmanga, run_async=True) FVRT_CHAR_HANDLER = DisableAbleCommandHandler(["characterlist","fcl","mywaifus"], fvrtchar, run_async=True) REMOVE_WATCHLIST_HANDLER = DisableAbleCommandHandler(["removewatchlist","rwl"], removewatchlist, run_async=True) REMOVE_FVRT_CHAR_HANDLER = DisableAbleCommandHandler(["rfcharacter","rfcl"], removefvrtchar, run_async=True) REMOVE_MANGA_CHAR_HANDLER = DisableAbleCommandHandler(["rmanga","rml"], removemangalist, run_async=True) BUTTON_HANDLER = CallbackQueryHandler(button, pattern='anime_.*', run_async=True) ANIME_STUFFS_HANDLER = CallbackQueryHandler(animestuffs, pattern='xanime_.*', run_async=True) QUOTE = DisableAbleCommandHandler("quote", quotes)
except IndexError: update.effective_message.reply_text( "Reply to messages or write messages from other languages for translating into the intended language\n\n" "Example: `/tr en-ja` to translate from English to Japanese\n" "Or use: `/tr ja` for automatic detection and translating it into Japanese.", parse_mode="markdown", disable_web_page_preview=True, ) except ValueError: update.effective_message.reply_text( "The intended language is not found!") else: return __help__ = """ ~ `/tr` or `/tl` (language code) as reply to a long message *Example:* `/tr en`*:* translates something to english `/tr hi-en`*:* translates hindi to english """ TRANSLATE_HANDLER = DisableAbleCommandHandler(["tr", "tl"], totranslate) dispatcher.add_handler(TRANSLATE_HANDLER) __mod_name__ = "Translator" __command_list__ = ["tr", "tl"] __handlers__ = [TRANSLATE_HANDLER]
__help__ = """ Blacklists are used to stop certain triggers from being said in a group. Any time the trigger is mentioned, the message will immediately be deleted. A good combo is sometimes to pair this up with warn filters! *NOTE*: Blacklists do not affect group admins. • `/blacklist`*:* View the current blacklisted words. Admin only: • `/addblacklist <triggers>`*:* Add a trigger to the blacklist. Each line is considered one trigger, so using different lines will allow you to add multiple triggers. • `/unblacklist <triggers>`*:* Remove triggers from the blacklist. Same newline logic applies here, so you can remove multiple triggers at once. • `/blacklistmode <off/del/warn/ban/kick/mute/tban/tmute>`*:* Action to perform when someone sends blacklisted words. """ BLACKLIST_HANDLER = DisableAbleCommandHandler("blacklist", blacklist, pass_args=True, admin_ok=True) ADD_BLACKLIST_HANDLER = CommandHandler("addblacklist", add_blacklist) UNBLACKLIST_HANDLER = CommandHandler("unblacklist", unblacklist) BLACKLISTMODE_HANDLER = CommandHandler("blacklistmode", blacklist_mode, pass_args=True) BLACKLIST_DEL_HANDLER = MessageHandler( (Filters.text | Filters.command | Filters.sticker | Filters.photo) & Filters.group, del_blacklist, allow_edit=True, ) dispatcher.add_handler(BLACKLIST_HANDLER) dispatcher.add_handler(ADD_BLACKLIST_HANDLER)
).json() if not json_rep.get("success"): msg.reply_text(f"An error occurred! Report this @{SUPPORT_CHAT}") else: wallpapers = json_rep.get("wallpapers") if not wallpapers: msg.reply_text("No results found! Refine your search.") return else: index = randint(0, len(wallpapers) - 1) # Choose random index wallpaper = wallpapers[index] wallpaper = wallpaper.get("url_image") wallpaper = wallpaper.replace("\\", "") bot.send_photo( chat_id, photo=wallpaper, caption='Preview', reply_to_message_id=msg_id, timeout=60) bot.send_document( chat_id, document=wallpaper, filename='wallpaper', caption=caption, reply_to_message_id=msg_id, timeout=60) WALLPAPER_HANDLER = DisableAbleCommandHandler("wall", wall, run_async=True) dispatcher.add_handler(WALLPAPER_HANDLER)