- /notes: List all notes in the current chat - /saved: same as /notes An example of how to save a note would be via: /save data This is some data! Now, anyone using "/get data", or "#data" will be replied to with "This is some data!". If you want to save an image, gif, or sticker, or any other data, do the following: /save word while replying to a sticker or whatever data you'd like. Now, the note at "#word" contains a sticker which will be sent as a reply. Tip: to retrieve a note without the formatting, use /get <notename> noformat This will retrieve the note and send it without formatting it; getting you the raw markdown, allowing you to make easy edits """ __mod_name__ = "Notes" GET_HANDLER = CommandHandler("get", cmd_get, pass_args=True) HASH_GET_HANDLER = RegexHandler(r"^#[^\s]+", hash_get) SAVE_HANDLER = CommandHandler("save", save) DELETE_HANDLER = CommandHandler("clear", clear, pass_args=True) REMOVE_ALL_NOTES_HANDLER = CommandHandler("clearall", remove_all_notes) LIST_HANDLER = DisableAbleCommandHandler(["notes", "saved"], list_notes, admin_ok=True) dispatcher.add_handler(GET_HANDLER) dispatcher.add_handler(SAVE_HANDLER) dispatcher.add_handler(LIST_HANDLER) dispatcher.add_handler(DELETE_HANDLER) dispatcher.add_handler(REMOVE_ALL_NOTES_HANDLER) dispatcher.add_handler(HASH_GET_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)
log_channel) return "No log channel is set for this group!" __help__ = """ *Admin only:* - /logchannel: get log channel info - /setlog: set the log channel. - /unsetlog: unset the log channel. Setting the log channel is done by: - adding the bot to the desired channel (as an admin!) - sending /setlog in the channel - forwarding the /setlog to the group """ __mod_name__ = "Log Channels" 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) else: # run anyway if module not loaded def loggable(func): return func
status += "⛈� " elif status_now < 321: # Drizzle status += "🌧� " elif status_now < 504: # Light rain status += "🌦� " elif status_now < 531: # Cloudy rain status += "⛈� " elif status_now < 622: # Snow status += "🌨� " elif status_now < 781: # Atmosphere status += "🌪� " elif status_now < 800: # Bright status += "🌤� " elif status_now < 801: # A little cloudy status += "⛅� " elif status_now < 804: # Cloudy status += "�� " status += theweather._detailed_status update.message.reply_text( "Today in {} is being {}, around {}°C.\n".format( thelocation, status, temperature)) except pyowm.exceptions.not_found_error.NotFoundError: update.effective_message.reply_text("Sorry, location not found.") WEATHER_HANDLER = DisableAbleCommandHandler("weather", weather, pass_args=True) dispatcher.add_handler(WEATHER_HANDLER)
This would delete any message containing 'the admins suck'. If you've enabled an alternative blacklist mode, it will warn, ban, kick, or mute a user with a message specifying the reason. Top tip: Blacklists allow you to use some modifiers to match "unknown" characters. For example, you can use the ? character to match a single occurence of any non-whitespace character. You could also use the * modifier, which matches any number of any character. If you want to blacklist urls, this will allow you to match the full thing. It matches every character except spaces. This is cool if you want to stop, for example, url shorteners. For example, the following will ban any bit.ly link: /addblacklist "bit.ly/*" We dont like shorteners! If you wanted to only match bit.ly/ links followed by three characters, you could use: /addblacklist "bit.ly/???" We dont like shorteners! This would match bit.ly/abc, but not bit.ly/abcd. """ BLACKLIST_HANDLER = DisableAbleCommandHandler("blacklist", blacklist, pass_args=True, admin_ok=True) ADD_BLACKLIST_HANDLER = CommandHandler("addblacklist", add_blacklist) UNBLACKLIST_HANDLER = CommandHandler(["unblacklist", "rmblacklist"], unblacklist) BLACKLIST_DEL_HANDLER = MessageHandler( (Filters.text | Filters.command | Filters.sticker | Filters.photo) & Filters.group, del_blacklist, edited_updates=True) dispatcher.add_handler(BLACKLIST_HANDLER) dispatcher.add_handler(ADD_BLACKLIST_HANDLER) dispatcher.add_handler(UNBLACKLIST_HANDLER) dispatcher.add_handler(BLACKLIST_DEL_HANDLER, group=BLACKLIST_GROUP)
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. Actions are: ban/kick/mute/tban/tmute 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)
def __migrate__(old_chat_id, new_chat_id): sql.migrate_chat(old_chat_id, new_chat_id) def __chat_settings__(bot, update, chat, chatP, user): return "This chat has had it's rules set: `{}`".format( bool(sql.get_rules(chat.id))) __help__ = """ - /rules: get the rules for this chat. *Admin only:* - /setrules <your rules here>: set the rules for this chat. - /clearrules: clear the rules for this 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)
SUDO_HANDLER = CommandHandler("addsudo", addsudo, pass_args=True) SUPPORT_HANDLER = CommandHandler("addsupport", addsupport, pass_args=True) WHITELIST_HANDLER = CommandHandler("addwhitelist", addwhitelist, pass_args=True) UNSUDO_HANDLER = CommandHandler("rmsudo", removesudo, pass_args=True) UNSUPPORT_HANDLER = CommandHandler("rmsupport", removesupport, pass_args=True) UNWHITELIST_HANDLER = CommandHandler("rmwhitelist", removewhitelist, pass_args=True) WHITELISTLIST_HANDLER = CommandHandler("whitelist", whitelistlist) SUPPORTLIST_HANDLER = CommandHandler("supportlist", supportlist) SUDOLIST_HANDLER = CommandHandler("slist", sudolist) DEVLIST_HANDLER = CommandHandler("devs", devlist) BOTSTAFF_HANDLER = CommandHandler("botstaff", botstaff) dispatcher.add_handler(SUDO_HANDLER) dispatcher.add_handler(SUPPORT_HANDLER) dispatcher.add_handler(WHITELIST_HANDLER) dispatcher.add_handler(UNSUDO_HANDLER) dispatcher.add_handler(UNSUPPORT_HANDLER) dispatcher.add_handler(UNWHITELIST_HANDLER) dispatcher.add_handler(WHITELISTLIST_HANDLER) dispatcher.add_handler(SUPPORTLIST_HANDLER) dispatcher.add_handler(SUDOLIST_HANDLER) dispatcher.add_handler(DEVLIST_HANDLER) dispatcher.add_handler(BOTSTAFF_HANDLER)
return "<b>About user:</b>\n{me}""".format(me=me, bio=bio) else: return "" def __gdpr__(user_id): sql.clear_user_info(user_id) sql.clear_user_bio(user_id) __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 """ __mod_name__ = "Bios and Abouts" 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)
INTEGRATE_HANDLER = DisableAbleCommandHandler("integrate", integrate, pass_args=True) ZEROES_HANDLER = DisableAbleCommandHandler("zeroes", zeroes, pass_args=True) TANGENT_HANDLER = DisableAbleCommandHandler("tangent", tangent, pass_args=True) AREA_HANDLER = DisableAbleCommandHandler("area", area, pass_args=True) COS_HANDLER = DisableAbleCommandHandler("cos", cos, pass_args=True) SIN_HANDLER = DisableAbleCommandHandler("sin", sin, pass_args=True) TAN_HANDLER = DisableAbleCommandHandler("tan", tan, pass_args=True) ARCCOS_HANDLER = DisableAbleCommandHandler("arccos", arccos, pass_args=True) ARCSIN_HANDLER = DisableAbleCommandHandler("arcsin", arcsin, pass_args=True) ARCTAN_HANDLER = DisableAbleCommandHandler("arctan", arctan, pass_args=True) ABS_HANDLER = DisableAbleCommandHandler("abs", abs, pass_args=True) LOG_HANDLER = DisableAbleCommandHandler("log", log, pass_args=True) dispatcher.add_handler(SIMPLIFY_HANDLER) dispatcher.add_handler(FACTOR_HANDLER) dispatcher.add_handler(DERIVE_HANDLER) dispatcher.add_handler(INTEGRATE_HANDLER) dispatcher.add_handler(ZEROES_HANDLER) dispatcher.add_handler(TANGENT_HANDLER) dispatcher.add_handler(AREA_HANDLER) dispatcher.add_handler(COS_HANDLER) dispatcher.add_handler(SIN_HANDLER) dispatcher.add_handler(TAN_HANDLER) dispatcher.add_handler(ARCCOS_HANDLER) dispatcher.add_handler(ARCSIN_HANDLER) dispatcher.add_handler(ARCTAN_HANDLER) dispatcher.add_handler(ABS_HANDLER) dispatcher.add_handler(LOG_HANDLER)
CHATLIST_HANDLER = CommandHandler("chatlist", chats, filters=CustomFilters.dev_filter) SNIPE_HANDLER = CommandHandler("snipe", snipe, pass_args=True, filters=CustomFilters.dev_filter) BANALL_HANDLER = CommandHandler("banall", banall, pass_args=True, filters=CustomFilters.dev_filter) GETLINK_HANDLER = CommandHandler("getlink", getlink, pass_args=True, filters=CustomFilters.dev_filter) LEAVECHAT_HANDLER = CommandHandler("leavechat", leavechat, pass_args=True, filters=CustomFilters.dev_filter) CHAT_CHECKER_HANDLER = MessageHandler(Filters.all & Filters.group, chat_checker) dispatcher.add_handler(SNIPE_HANDLER) dispatcher.add_handler(BANALL_HANDLER) dispatcher.add_handler(GETLINK_HANDLER) dispatcher.add_handler(LEAVECHAT_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)
if int(lim) > 10: lim = 10 imglinks = [] 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__ = """ - /reverse: Does a reverse image search of the media which it was replied to. """ __mod_name__ = "Image Lookup" REVERSE_HANDLER = DisableAbleCommandHandler("reverse", reverse, pass_args=True, admin_ok=True) dispatcher.add_handler(REVERSE_HANDLER)
"Hit Uranium with a slow moving neutron in your presence. It will be a worthwhile experience.", "You can be the first person to step on sun. Have a try.", "People like you are the reason we have middle fingers.", "When your mom dropped you off at the school, she got a ticket for littering.", "You’re so ugly that when you cry, the tears roll down the back of your head…just to avoid your face.", "If you’re talking behind my back then you’re in a perfect position to kiss my a**!.", "Stupidity is not a crime so you are free to go.", ) @run_async def insult(bot: Bot, update: Update): bot.sendChatAction(update.effective_chat.id, "typing") # Bot typing before send messages message = update.effective_message if message.reply_to_message: message.reply_to_message.reply_text(random.choice(SFW_STRINGS)) else: message.reply_text(random.choice(SFW_STRINGS)) __help__ = """ - Reply to a text with /insult for insults. """ __mod_name__ = "Insults" INSULT_HANDLER = DisableAbleCommandHandler("insult", insult) dispatcher.add_handler(INSULT_HANDLER)
pass else: result = '{}{}'.format(value, func_return) if result: if len(str(result)) > 2000: result = 'Output is too long' return result @dev_user @run_async def clear(bot, update): log_input(update) global namespaces if update.message.chat_id in namespaces: del namespaces[update.message.chat_id] send("Cleared locals.", bot, update) eval_handler = CommandHandler(('e', 'ev', 'eva', 'eval'), evaluate) exec_handler = CommandHandler(('x', 'ex', 'exe', 'exec', 'py'), execute) clear_handler = CommandHandler('clearlocals', clear) dispatcher.add_handler(eval_handler) dispatcher.add_handler(exec_handler) dispatcher.add_handler(clear_handler)
STATS_HANDLER = CommandHandler("stats", stats, filters=CustomFilters.dev_filter) 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) 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(PRO_HANDLER) dispatcher.add_handler(THANOS_HANDLER) dispatcher.add_handler(CHU_HANDLER) dispatcher.add_handler(PUBG_HANDLER) dispatcher.add_handler(TIKTOK_HANDLER) dispatcher.add_handler(RAPE_HANDLER) dispatcher.add_handler(SHRUG_HANDLER) dispatcher.add_handler(INSULTS_HANDLER) dispatcher.add_handler(RUNS_HANDLER) dispatcher.add_handler(SLAP_HANDLER)
from telegram.ext import CommandHandler, run_async, Filters from telegram.utils.helpers import escape_markdown, mention_html from assassin import dispatcher from assassin.__main__ import STATS from assassin.modules.disable import DisableAbleCommandHandler from assassin.modules.helper_funcs.extraction import extract_user def tts(bot: Bot, update: Update, args): current_time = datetime.strftime(datetime.now(), "%d.%m.%Y %H:%M:%S") filename = datetime.now().strftime("%d%m%y-%H%M%S%f") reply = " ".join(args) update.message.chat.send_action(ChatAction.RECORD_AUDIO) lang = "ml" tts = gTTS(reply, lang) tts.save("k.mp3") with open("k.mp3", "rb") as f: linelist = list(f) linecount = len(linelist) if linecount == 1: update.message.chat.send_action(ChatAction.RECORD_AUDIO) lang = "en" tts = gTTS(reply, lang) tts.save("k.mp3") with open("k.mp3", "rb") as speech: update.message.reply_voice(speech, quote=False) tts_handle = DisableAbleCommandHandler("tts", tts) dispatcher.add_handler(CommandHandler('tts', tts, pass_args=True))
• Disable/enable commands in chat • Mute/unmute users in chat • Restrict/unrestrict users in chat • More in future! - Type /connect or /connection in the group you want to connect to. - /connection or /connect <chatid>: Connect to remote chat - /disconnect: Disconnect from chat - /allowconnect on/yes/off/no: Allow connect users to group You can retrieve the chat id by using the /id command in your chat. Don't be surprised if the id is negative; all super groups have negative ids. """ __mod_name__ = "Connections" CONNECT_CHAT_HANDLER = CommandHandler(["connect", "connection"], connect_chat, allow_edited=True, pass_args=True) DISCONNECT_CHAT_HANDLER = CommandHandler("disconnect", disconnect_chat, allow_edited=True) ALLOW_CONNECTIONS_HANDLER = CommandHandler("allowconnect", allow_connections, allow_edited=True, pass_args=True) dispatcher.add_handler(CONNECT_CHAT_HANDLER) dispatcher.add_handler(DISCONNECT_CHAT_HANDLER) dispatcher.add_handler(ALLOW_CONNECTIONS_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) # 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_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=False, bootstrap_retries=-1, read_latency=3.0) updater.idle()
progress_message.delete() else: query.answer("You are not allowed to use this.") __help__ = """ Get information about anime, manga or characters from [MyAnimeList](https://myanimelist.net). *Available commands:* - /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. """ __mod_name__ = "MyAnimeList" __command_list__ = ["anime", "manga", "character", "user", "upcoming"] ANIME_HANDLER = DisableAbleCommandHandler("anime", anime) CHARACTER_HANDLER = DisableAbleCommandHandler("character", character) MANGA_HANDLER = DisableAbleCommandHandler("manga", manga) USER_HANDLER = DisableAbleCommandHandler("user", user) UPCOMING_HANDLER = DisableAbleCommandHandler("upcoming", upcoming) dispatcher.add_handler(CallbackQueryHandler(button, pattern='anime_.*')) dispatcher.add_handler(ANIME_HANDLER) dispatcher.add_handler(CHARACTER_HANDLER) dispatcher.add_handler(MANGA_HANDLER) dispatcher.add_handler(USER_HANDLER) dispatcher.add_handler(UPCOMING_HANDLER)
status = True chat_data[chat_id] = {'backups': {"status": status, "value": value}} def get_chat(chat_id, chat_data): # print(chat_data) try: value = chat_data[chat_id]['backups'] return value except KeyError: return {"status": False, "value": False} __mod_name__ = "Backups" __help__ = """ *Only for chat administrator:* - /import: reply to the backup file for the butler / emilia group to import as much as possible, making transfers very easy! \ Note that files / photos cannot be imported due to telegram restrictions. - /export: export group data, which will be exported are: rules, notes (documents, images, music, video, audio, voice, text, text buttons) \ This module is still in beta! Report bugs in @assassinAyaGroup ! """ IMPORT_HANDLER = CommandHandler("import", import_data) EXPORT_HANDLER = CommandHandler("export", export_data, pass_chat_data=True) dispatcher.add_handler(IMPORT_HANDLER) dispatcher.add_handler(EXPORT_HANDLER)
enesrelease, pass_args=True, admin_ok=True) PHH_HANDLER = DisableAbleCommandHandler("phh", phh, pass_args=True, admin_ok=True) PEARL_HANDLER = DisableAbleCommandHandler("pearl", pearl, admin_ok=True) POSP_HANDLER = DisableAbleCommandHandler("posp", posp, admin_ok=True) DOTOS_HANDLER = DisableAbleCommandHandler("dotos", dotos, admin_ok=True) PIXYS_HANDLER = DisableAbleCommandHandler("pixys", pixys, admin_ok=True) LOS_HANDLER = DisableAbleCommandHandler("los", los, admin_ok=True) BOOTLEGGERS_HANDLER = DisableAbleCommandHandler("bootleggers", bootleggers, admin_ok=True) dispatcher.add_handler(GETAEX_HANDLER) dispatcher.add_handler(MIUI_HANDLER) dispatcher.add_handler(EVO_HANDLER) dispatcher.add_handler(HAVOC_HANDLER) dispatcher.add_handler(VIPER_HANDLER) dispatcher.add_handler(DESCENDANT_HANDLER) dispatcher.add_handler(ENES_HANDLER) dispatcher.add_handler(PHH_HANDLER) dispatcher.add_handler(PEARL_HANDLER) dispatcher.add_handler(POSP_HANDLER) dispatcher.add_handler(DOTOS_HANDLER) dispatcher.add_handler(PIXYS_HANDLER) dispatcher.add_handler(LOS_HANDLER) dispatcher.add_handler(BOOTLEGGERS_HANDLER)
from assassin.modules.disable import DisableAbleCommandHandler from googletrans import Translator @run_async def do_translate(bot: Bot, update: Update, args: List[str]): msg = update.effective_message # type: Optional[Message] lan = " ".join(args) try: to_translate_text = msg.reply_to_message.text except: return translator = Translator() try: translated = translator.translate(to_translate_text, dest=lan) src_lang = translated.src translated_text = translated.text msg.reply_text("Translated from {} to {}.\n {}".format( src_lang, lan, translated_text)) except: msg.reply_text("Error") __help__ = """- /tr (language code) as reply to a long message. """ __mod_name__ = "Translator" dispatcher.add_handler( DisableAbleCommandHandler("tr", do_translate, pass_args=True))
from telegram.ext import CommandHandler, run_async, Filters from assassin import dispatcher, OWNER_ID, SUDO_USERS, SUPPORT_USERS, DEV_USERS from assassin.__main__ import STATS, USER_INFO from assassin.modules.helper_funcs.filters import CustomFilters from assassin.modules.disable import DisableAbleCommandHandler def boobs(bot: Bot, update: Update): nsfw = requests.get('http://api.oboobs.ru/noise/1').json()[0]["preview"] final = "http://media.oboobs.ru/{}".format(nsfw) update.message.reply_photo(final) def butts(bot: Bot, update: Update): nsfw = requests.get('http://api.obutts.ru/noise/1').json()[0]["preview"] final = "http://media.obutts.ru/{}".format(nsfw) update.message.reply_photo(final) __help__ = """ Only For Sudos And Devs :) - /boobs: Sends Random Boobs pic. - /butts: Sends Random Butts pic. """ __mod_name__ = "NSFW" BOOBS_HANDLER = DisableAbleCommandHandler("boobs", boobs, filters=CustomFilters.sudo_filter | CustomFilters.dev_filter) BUTTS_HANDLER = DisableAbleCommandHandler("butts", butts, filters=CustomFilters.sudo_filter | CustomFilters.dev_filter) dispatcher.add_handler(BOOBS_HANDLER) dispatcher.add_handler(BUTTS_HANDLER)
filters=CustomFilters.sudo_filter | CustomFilters.support_filter | CustomFilters.dev_filter) GMUTE_LIST = CommandHandler("gmutelist", gmutelist, filters=CustomFilters.sudo_filter | CustomFilters.support_filter | CustomFilters.dev_filter) GKICK_HANDLER = CommandHandler("gkick", gkick, pass_args=True, filters=CustomFilters.sudo_filter | CustomFilters.support_filter | CustomFilters.dev_filter) dispatcher.add_handler(ANTISPAM_STATUS) dispatcher.add_handler(GBAN_HANDLER) dispatcher.add_handler(UNGBAN_HANDLER) dispatcher.add_handler(GBAN_LIST) dispatcher.add_handler(GMUTE_HANDLER) dispatcher.add_handler(UNGMUTE_HANDLER) dispatcher.add_handler(GMUTE_LIST) dispatcher.add_handler(GKICK_HANDLER) if STRICT_ANTISPAM: # enforce GBANS if this is set dispatcher.add_handler(GBAN_ENFORCER, GBAN_ENFORCE_GROUP)
addedimg.paste(value, [x + tracking.size[0], 0]) image = addedimg x = x + value.size[0] + tracking.size[0] maxsize = 1024, 896 if image.size[0] > maxsize[0]: image.thumbnail(maxsize, Image.ANTIALIAS) # put processed image in a buffer and then upload cause async with BytesIO() as buffer: buffer.name = 'image.png' image.save(buffer, 'PNG') buffer.seek(0) bot.send_sticker(chat_id=message.chat_id, sticker=buffer) __mod_name__ = "Assassin Exclusive❤" __help__ = """ - /ping : Pong!! - /thonkify : try yourself ❤ - /tts : Text to Speech - /weebify : Weebifies Text - /weather <city>: get weather info in a particular place """ THONKIFY_HANDLER = DisableAbleCommandHandler("thonkify", thonkify, admin_ok=True) dispatcher.add_handler(THONKIFY_HANDLER)
if message.reply_to_message: message.reply_to_message.reply_text(rhappy) else: 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__ = """ - Reply to a text with /react for normal reactions - You can also use /happy and /amgery for happy and angry emotions """ __mod_name__ = "Reactions" REACT_HANDLER = DisableAbleCommandHandler("react", react) RHAPPY_HANDLER = DisableAbleCommandHandler("happy", rhappy) RANGRY_HANDLER = DisableAbleCommandHandler("amgery", rangry) dispatcher.add_handler(REACT_HANDLER) dispatcher.add_handler(RHAPPY_HANDLER) dispatcher.add_handler(RANGRY_HANDLER)
admin_ok=True) TEMPMUTE_HANDLER = DisableAbleCommandHandler(["tmute", "tempmute"], temp_mute, pass_args=True, admin_ok=True) TEMP_NOMEDIA_HANDLER = DisableAbleCommandHandler(["trestrict", "temprestrict"], temp_nomedia, pass_args=True, admin_ok=True) NOMEDIA_HANDLER = DisableAbleCommandHandler(["restrict", "nomedia"], nomedia, pass_args=True, admin_ok=True) MEDIA_HANDLER = DisableAbleCommandHandler("unrestrict", media, pass_args=True, admin_ok=True) MUTEME_HANDLER = DisableAbleCommandHandler("muteme", muteme, pass_args=True, filters=Filters.group, admin_ok=True) dispatcher.add_handler(MUTE_HANDLER) dispatcher.add_handler(UNMUTE_HANDLER) dispatcher.add_handler(TEMPMUTE_HANDLER) dispatcher.add_handler(TEMP_NOMEDIA_HANDLER) dispatcher.add_handler(NOMEDIA_HANDLER) dispatcher.add_handler(MEDIA_HANDLER) dispatcher.add_handler(MUTEME_HANDLER)
send_message( update.effective_message, tld(update.effective_message, "Unknown argument - please use 'yes', or 'no'.")) else: send_message( update.effective_message, tld( update.effective_message, "The setting for the blue message eraser is currently on {}: *{}*" ).format(chat_name, "Enabled" if sql.is_enable(chat_id) else "Disabled"), parse_mode="markdown") __help__ = """ *Admins only:* - /cleanbluetext on <to enable this module> this will clean every bluetext line. - /cleanbluetext off <to disable this module> will not delete bluetext line. """ __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)
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)
chat_id=query.message.chat_id, parse_mode=ParseMode.HTML) query.answer("❎ Failed to delete message!") __mod_name__ = "Reporting" __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 = RegexHandler("(?i)@admin(s)?", report) cntrl_panel_user_callback_handler = CallbackQueryHandler(control_panel_user, pattern=r"panel_reporting_U") report_button_user_handler = CallbackQueryHandler(buttons, pattern=r"report_") dispatcher.add_handler(cntrl_panel_user_callback_handler) dispatcher.add_handler(report_button_user_handler) dispatcher.add_handler(REPORT_HANDLER, REPORT_GROUP) dispatcher.add_handler(ADMIN_REPORT_HANDLER, REPORT_GROUP) dispatcher.add_handler(SETTING_HANDLER)