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),
*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. • `/kaizoku <anime>`*:* search an anime on animekaizoku.com • `/kayo <anime>`*:* search an anime on animekayo.com • `/airing <anime>`*:* returns anime airing info. • `/vibe <anime>`*:* search an anime on animevibe.wtf. • `/erai <anime>`*:* search an anime on erai-raws.info. [ Beta Phase is on going and it is suggested to NOT use it right now. ] """ 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) VIBE_SEARCH_HANDLER = DisableAbleCommandHandler("vibe", vibe) ERAI_SEARCH_HANDLER = DisableAbleCommandHandler("erai", erai) 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)
__help__ = """ • `/punchme`*:* punchs the user who issued the command *Admins only:* • `/ban <userhandle>`*:* bans a user. (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`. • `/unban <userhandle>`*:* unbans a user. (via handle, or reply) • `/punch <userhandle>`*:* Punches a user out of the group, (via handle, or reply) """ BAN_HANDLER = CommandHandler("ban", ban) TEMPBAN_HANDLER = CommandHandler(["tban"], temp_ban) PUNCH_HANDLER = CommandHandler("punch", punch) UNBAN_HANDLER = CommandHandler("unban", unban) ROAR_HANDLER = CommandHandler("roar", selfunban) PUNCHME_HANDLER = DisableAbleCommandHandler( "punchme", punchme, filters=Filters.group) dispatcher.add_handler(BAN_HANDLER) dispatcher.add_handler(TEMPBAN_HANDLER) dispatcher.add_handler(PUNCH_HANDLER) dispatcher.add_handler(UNBAN_HANDLER) dispatcher.add_handler(ROAR_HANDLER) dispatcher.add_handler(PUNCHME_HANDLER) __mod_name__ = "Bans" __handlers__ = [ BAN_HANDLER, TEMPBAN_HANDLER, PUNCH_HANDLER, UNBAN_HANDLER, ROAR_HANDLER, PUNCHME_HANDLER ]
*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) ]
- /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. - /airing <anime>: returns anime airing info. - /aq: get random anime quote - /whatanime: to search source of anime reply to photo - /watchlist: to get your saved watchlist. - /mangalist: to get your saved manga read list. - /characterlist | fcl: to get your favorite characters 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) 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) QUOTE = DisableAbleCommandHandler("aq", quotes) CHANGE_QUOTE = CallbackQueryHandler(change_quote, pattern=r"change_.*") QUOTE_CHANGE = CallbackQueryHandler(change_quote, pattern=r"quote_.*") WATCHLIST_HANDLER = DisableAbleCommandHandler("watchlist", watchlist) MANGALIST_HANDLER = DisableAbleCommandHandler("mangalist", readmanga) FVRT_CHAR_HANDLER = DisableAbleCommandHandler(["characterlist","fcl"], fvrtchar) REMOVE_WATCHLIST_HANDLER = DisableAbleCommandHandler(["rmwatchlist","rwl"], removewatchlist) REMOVE_FVRT_CHAR_HANDLER = DisableAbleCommandHandler(["rmfcharacter","rfcl"], removefvrtchar) REMOVE_MANGA_CHAR_HANDLER = DisableAbleCommandHandler(["rmmanga","rml"], removemangalist) BUTTON_HANDLER = CallbackQueryHandler(button, pattern='anime_.*')
__help__ = """ • /admins*:* list of admins in the chat *Admins only:* • /pin*:* silently pins the message replied to - add `'loud'` or `'notify'` to give notifs to users • /unpin*:* unpins the currently pinned message • /invitelink*:* gets invitelink • /promote*:* promotes the user replied to • /demote*:* demotes the user replied to • /title `<title here>`*:* sets a custom title for an admin that the bot promoted • /admincache*:* force refresh the admins list • /zombies *:* Scan deleted accounts • /zombies clean *:* Cleans deleted accounts """ ADMINLIST_HANDLER = DisableAbleCommandHandler("admins", adminlist) PIN_HANDLER = CommandHandler("pin", pin, filters=Filters.group) UNPIN_HANDLER = CommandHandler("unpin", unpin, filters=Filters.group) INVITE_HANDLER = DisableAbleCommandHandler("invitelink", invite) PROMOTE_HANDLER = DisableAbleCommandHandler("promote", promote) DEMOTE_HANDLER = DisableAbleCommandHandler("demote", demote) SET_TITLE_HANDLER = CommandHandler("title", set_title) ADMIN_REFRESH_HANDLER = CommandHandler("admincache", refresh_admin, filters=Filters.group) dispatcher.add_handler(ADMINLIST_HANDLER)
• `/kickme`*:* kicks the user who issued the command *Admins only:* • `/ban <userhandle>`*:* bans a user. (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`. • `/unban <userhandle>`*:* unbans a user. (via handle, or reply) • `/kick <userhandle>`*:* Kicks a user out of the group, (via handle, or reply) """ BAN_HANDLER = CommandHandler("ban", ban) TEMPBAN_HANDLER = CommandHandler(["tban"], temp_ban) KICK_HANDLER = CommandHandler("kick", kick) UNBAN_HANDLER = CommandHandler("unban", unban) ROAR_HANDLER = CommandHandler("roar", selfunban) KICKME_HANDLER = DisableAbleCommandHandler("kickme", kickme, filters=Filters.group) dispatcher.add_handler(BAN_HANDLER) dispatcher.add_handler(TEMPBAN_HANDLER) dispatcher.add_handler(KICK_HANDLER) dispatcher.add_handler(UNBAN_HANDLER) dispatcher.add_handler(ROAR_HANDLER) dispatcher.add_handler(KICKME_HANDLER) __mod_name__ = "Bans" __handlers__ = [ BAN_HANDLER, TEMPBAN_HANDLER, KICK_HANDLER, UNBAN_HANDLER, ROAR_HANDLER, KICKME_HANDLER ]
def scam(imgspage, lim): """Parse/Scrape the HTML code for the info we want.""" single = opener.open(imgspage).read() decoded = single.decode("utf-8") 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 REVERSE_HANDLER = DisableAbleCommandHandler(["grs", "reverse"], reverse, pass_args=True, run_async=True) dispatcher.add_handler(REVERSE_HANDLER)
"Provide a country name/abbreviation/timezone to find.") return send_message = message.reply_text( f"Finding timezone info for <b>{query}</b>", parse_mode=ParseMode.HTML) query_timezone = query.lower() if len(query_timezone) == 2: result = generate_time(query_timezone, ["countryCode"]) 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) TIME_HANDLER = DisableAbleCommandHandler("time", gettime) dispatcher.add_handler(TIME_HANDLER) __command_list__ = ["time"] __handlers__ = [TIME_HANDLER]
• `/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__ = "Exᴛʀᴀs" __command_list__ = ["id", "echo"] __handlers__ = [ ECHO_HANDLER, MD_HELP_HANDLER, ]
Locks can be used to restrict a group's users. eg: Locking urls will auto-delete all messages with urls, locking stickers will restrict all \ non-admin users from sending stickers, etc. Locking bots will stop non-admins from adding bots to the chat. *NOTE:* >> Unlocking permission *info* will allow members (non-admins) to change the group information, such as the description or the group name >> Unlocking permission *pin* will allow members (non-admins) to pinned a message in a group """ __mod_name__ = "Locks" LOCKTYPES_HANDLER = DisableAbleCommandHandler("locktypes", locktypes, run_async=True) LOCK_HANDLER = CommandHandler( "lock", lock, pass_args=True, run_async=True, ) # , filters=Filters.chat_type.group) UNLOCK_HANDLER = CommandHandler( "unlock", unlock, pass_args=True, run_async=True, ) # , filters=Filters.chat_type.group) LOCKED_HANDLER = CommandHandler( "locks", list_locks, run_async=True) # , filters=Filters.chat_type.group)
import requests from SaitamaRobot import dispatcher from SaitamaRobot.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]
data = message.reply_to_message.text elif len(args) >= 1: data = message.text.split(None, 1)[1] else: message.reply_text("What am I supposed to do with this?") return key = (requests.post("https://nekobin.com/api/documents", json={ "content": data }).json().get("result").get("key")) url = f"https://nekobin.com/{key}" reply_text = f"Nekofied to *Nekobin* : {url}" message.reply_text( reply_text, parse_mode=ParseMode.MARKDOWN, disable_web_page_preview=True, ) PASTE_HANDLER = DisableAbleCommandHandler("paste", paste) dispatcher.add_handler(PASTE_HANDLER) __command_list__ = ["paste"] __handlers__ = [PASTE_HANDLER]
else: trans_str = trl.translate( text, lang_tgt=dest_lang, lang_src=source_lang) message.reply_text( f"Translated from `{source_lang}` to `{dest_lang}`:\n`{trans_str}`", 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\n" "Example: `/tr en-ml` to translate from English to Malayalam\n" "Or use: `/tr ml` for automatic detection and translating it into Malayalam.\n" "See [List of Language Codes](t.me/OnePunchSupport/12823) for a list of language codes.", parse_mode="markdown", disable_web_page_preview=True) except ValueError: update.effective_message.reply_text( "The intended language is not found!") else: return TRANSLATE_HANDLER = DisableAbleCommandHandler(["tr", "tl"], totranslate) dispatcher.add_handler(TRANSLATE_HANDLER) __command_list__ = ["tr", "tl"] __handlers__ = [TRANSLATE_HANDLER]
\ Sometimes, you might trust a user not to send unwanted content. Maybe not enough to make them admin, but you might be ok with auto warns, blacklists, and antiflood not applying to them. That's what approvals are for - approve of trustworthy users to allow them to send Admin commands: ✪ `/approval`: Check a user's approval status in this chat. Admin commands: ✪ `/approve`: Approve of a user. Locks, blacklists, and antiflood won't apply to them anymore. ✪ `/unapprove`: Unapprove of a user. They will now be subject to locks, blacklists, and antiflood again. ✪ `/approved`: List all approved users. ✪ `/unapproveall`: Unapprove ALL users in a chat. This cannot be undone. \ """ APPROVED_HANDLER = DisableAbleCommandHandler("approved", approved, filters=Filters.group) UNAPPROVE_ALL_HANDLER = DisableAbleCommandHandler("unapproveall", unapproveall, filters=Filters.group) APPROVE_HANDLER = DisableAbleCommandHandler("approve", approve, pass_args=True, filters=Filters.group) UNAPPROVE_HANDLER = DisableAbleCommandHandler("unapprove", unapprove, pass_args=True, filters=Filters.group) APPROVEL_HANDLER = DisableAbleCommandHandler("approval", approval, pass_args=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)
"<b>🔮Service Uptime:</b> <code>{}</code>".format( telegram_ping, uptime), parse_mode=ParseMode.HTML) @run_async @sudo_plus def pingall(update: Update, context: CallbackContext): to_ping = ["Kaizoku", "Kayo", "Telegram", "Jikan"] pinged_list = ping_func(to_ping) pinged_list.insert(2, '') uptime = get_readable_time((time.time() - StartTime)) reply_msg = "⏱Ping results are:\n" reply_msg += "\n".join(pinged_list) reply_msg += '\n<b>Service uptime:</b> <code>{}</code>'.format(uptime) update.effective_message.reply_text(reply_msg, parse_mode=ParseMode.HTML, disable_web_page_preview=True) PING_HANDLER = DisableAbleCommandHandler("ping", ping) PINGALL_HANDLER = DisableAbleCommandHandler("pingall", pingall) dispatcher.add_handler(PING_HANDLER) dispatcher.add_handler(PINGALL_HANDLER) __command_list__ = ["ping", "pingall"] __handlers__ = [PING_HANDLER, PINGALL_HANDLER]
buttons = [[InlineKeyboardButton("See all results", url=search_url)]] if more_results: message.reply_text(result, parse_mode=ParseMode.HTML, reply_markup=InlineKeyboardMarkup(buttons), disable_web_page_preview=True) else: message.reply_text(result, parse_mode=ParseMode.HTML, disable_web_page_preview=True) @run_async def kaizoku(update: Update, context: CallbackContext): site_search(update, context, "kaizoku") @run_async def kayo(update: Update, context: CallbackContext): site_search(update, context, "kayo") KAIZOKU_SEARCH_HANDLER = DisableAbleCommandHandler("kaizoku", kaizoku) KAYO_SEARCH_HANDLER = DisableAbleCommandHandler("kayo", kayo) dispatcher.add_handler(KAIZOKU_SEARCH_HANDLER) dispatcher.add_handler(KAYO_SEARCH_HANDLER) __handlers__ = [KAIZOKU_SEARCH_HANDLER, KAYO_SEARCH_HANDLER]
"(〜 ̄△ ̄)〜", "(「• ω •)「", "( ˘ ɜ˘) ♬♪♫", "( o˘◡˘o) ┌iii┐", "♨o(>_<)o♨", "( ・・)つ―{}@{}@{}-", "(*´з`)口゚。゚口(・∀・ )", "( *^^)o∀*∀o(^^* )", "-●●●-c(・・ )", "(ノ≧∀≦)ノ ‥…━━━★", "╰( ͡° ͜ʖ ͡° )つ──☆*:・゚", "(∩ᄑ_ᄑ)⊃━☆゚*・。*・:≡( ε:)", ] 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]
speed.download() speed.upload() replymsg = 'SpeedTest nəticəsi:' if query.data == 'speedtest_image': speedtest_image = speed.results.share() update.effective_message.reply_photo( photo=speedtest_image, caption=replymsg) msg.delete() elif query.data == 'speedtest_text': result = speed.results.dict() replymsg += f"\nDownload: `{convert(result['download'])}Mb/s`\nUpload: `{convert(result['upload'])}Mb/s`\nPing: `{result['ping']}`" update.effective_message.edit_text( replymsg, parse_mode=ParseMode.MARKDOWN) else: query.answer( "Bu əmri işlətmək üçün qəhrəmanlar assosasiyasına qoşulmalısan :D.") SPEED_TEST_HANDLER = DisableAbleCommandHandler("speedtest", speedtestxyz) SPEED_TEST_CALLBACKHANDLER = CallbackQueryHandler( speedtestxyz_callback, pattern='speedtest_.*') dispatcher.add_handler(SPEED_TEST_HANDLER) dispatcher.add_handler(SPEED_TEST_CALLBACKHANDLER) __mod_name__ = "SpeedTest" __command_list__ = ["speedtest"] __handlers__ = [SPEED_TEST_HANDLER, SPEED_TEST_CALLBACKHANDLER]
site_search(update, context, "ast") @run_async def atf(update: Update, context: CallbackContext): site_search(update, context, "atf") @run_async def an(update: Update, context: CallbackContext): site_search(update, context, "an") @run_async def cat(update: Update, context: CallbackContext): site_search(update, context, "cat") KAIZOKU_SEARCH_HANDLER = DisableAbleCommandHandler("kaizoku", kaizoku) KAYO_SEARCH_HANDLER = DisableAbleCommandHandler("kayo", kayo) AAT_SEARCH_HANDLER = DisableAbleCommandHandler("aat", aat) HSA_SEARCH_HANDLER = DisableAbleCommandHandler("hsa", hsa) AST_SEARCH_HANDLER = DisableAbleCommandHandler("ast", ast) ATF_SEARCH_HANDLER = DisableAbleCommandHandler("atf", atf) AN_SEARCH_HANDLER = DisableAbleCommandHandler("an", an) CAT_SEARCH_HANDLER = DisableAbleCommandHandler("cat", cat) dispatcher.add_handler(KAIZOKU_SEARCH_HANDLER) dispatcher.add_handler(KAYO_SEARCH_HANDLER) dispatcher.add_handler(AAT_SEARCH_HANDLER) dispatcher.add_handler(HSA_SEARCH_HANDLER) dispatcher.add_handler(AST_SEARCH_HANDLER) dispatcher.add_handler(ATF_SEARCH_HANDLER) dispatcher.add_handler(AN_SEARCH_HANDLER)
• `/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__ = "Warns" WARN_HANDLER = CommandHandler("warn", 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) 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,
*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)
print(e) if e.message == "Etiket kümesi adı zaten dolu": msg.reply_text(f"Paketiniz bulunabilir [here](t.me/addstickers/{packname})", parse_mode=ParseMode.MARKDOWN) elif e.message == "Peer_id_invalid": msg.reply_text("Önce PM'de bana ulaşın.", reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton( text="Start", url=f"t.me/{bot.username}")]])) return if success: msg.reply_text(f"Çıkartma paketi başarıyla oluşturuldu. Anla [here](t.me/addstickers/{packname})", parse_mode=ParseMode.MARKDOWN) else: msg.reply_text("Çıkartma paketi oluşturulamadı. Muhtemelen blek mejik nedeniyle.") __help__ = """ • `/stickerid`*:* bana dosya kimliğini söylemek için bir çıkartmaya cevap ver. • `/getsticker`*:* ham PNG dosyasını yüklemek için bana bir çıkartmayı yanıtla. • `/kang`*:* paketinize eklemek için bir etikete cevap verin. """ __mod_name__ = "Stickers" STICKERID_HANDLER = DisableAbleCommandHandler("stickerid", stickerid) GETSTICKER_HANDLER = DisableAbleCommandHandler("getsticker", getsticker) KANG_HANDLER = DisableAbleCommandHandler("kang", kang, pass_args=True, admin_ok=True) dispatcher.add_handler(STICKERID_HANDLER) dispatcher.add_handler(GETSTICKER_HANDLER) dispatcher.add_handler(KANG_HANDLER)
If you would like to retrieve the contents of a note without any formatting, use `/get <notename> noformat`. This can \ be useful when updating a current note. *Admins only:* • `/save <notename> <notedata>`*:* saves notedata as a note with name notename A button can be added to a note by using standard markdown link syntax - the link should just be prepended with a \ `buttonurl:` section, as such: `[somelink](buttonurl:example.com)`. Check `/markdownhelp` for more info. • `/save <notename>`*:* save the replied message as a note with name notename • `/clear <notename>`*:* clear note with this name *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) SAVE_HANDLER = CommandHandler("save", save) DELETE_HANDLER = CommandHandler("clear", clear) 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(HASH_GET_HANDLER)
• `/slap`*:* bir istifadəçiyə yumruq vurun və ya cavab deyilsə tokatlanın • `/shrug`*:* XD çiyinlərini çəkmək • `/table`*:* çevir / geri çevir • `/decide`*:* Təsadüfi olaraq he / yox / bəlkə cavab verir • `/toss`*:* Bir sikkə atır • `/bluetext`*:* özünüzü yoxlayın • `/roll`*:* Bir zar atın • `/rlg`*:* Qulaqları, burnu, ağzı birləşdirin və bir emo yaradın • `/shout <söz>`*:* yüksək səs vermək istədiyiniz hər şeyi yazın • `/weebify <text>`*:* weebify mətni qaytarır • `/sanitize`*:* həmişə bunu / patlamadan və ya hər hansı bir təmasdan əvvəl istifadə edin • `/pat`*:* bir istifadəçini ovuşdurur və ya şəfqət alır • `/8ball`*:* 8ball metodundan istifadə edərək proqnoz verir """ 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) EIGHTBALL_HANDLER = DisableAbleCommandHandler("8ball", eightball) TABLE_HANDLER = DisableAbleCommandHandler("table", table) SHOUT_HANDLER = DisableAbleCommandHandler("shout", shout) WEEBIFY_HANDLER = DisableAbleCommandHandler("weebify", weebify) dispatcher.add_handler(WEEBIFY_HANDLER)
reply = random.choice(fun.GDMORNING) message.reply_text(reply, parse_mode=ParseMode.MARKDOWN) __help__ = """ *Some dank memes for fun or whatever! ✪ `/slap`: Slap a user, or get slapped if not a reply. ✪ `/hug`: Hug a user warmly, or get hugged if not a reply. ✪ `/roll`: Rolls a dice. ✪ `/clap`: Claps on someones message! """ __mod_name__ = "Memes😊" SLAP_HANDLER = DisableAbleCommandHandler("slap", slap) HUG_HANDLER = DisableAbleCommandHandler("hug", hug) DICE_HANDLER = DisableAbleCommandHandler("roll", dice) CLAP_HANDLER = DisableAbleCommandHandler("clap", clapmoji) GDMORNING_HANDLER = DisableAbleMessageHandler( Filters.regex(r"(?i)(gm|good morning)"), goodmorning, friendly="goodmorning") GDNIGHT_HANDLER = DisableAbleMessageHandler( Filters.regex(r"(?i)(gn|good night)"), goodnight, friendly="goodnight") dispatcher.add_handler(SLAP_HANDLER) dispatcher.add_handler(HUG_HANDLER) dispatcher.add_handler(DICE_HANDLER) dispatcher.add_handler(CLAP_HANDLER) dispatcher.add_handler(GDMORNING_HANDLER)
import SaitamaRobot.modules.animequotes_strings as animequotes_strings from SaitamaRobot import dispatcher from SaitamaRobot.modules.disable import DisableAbleCommandHandler from SaitamaRobot.modules.helper_funcs.chat_status import (is_user_admin) from SaitamaRobot.modules.helper_funcs.extraction import extract_user @run_async def animequotes(update: Update, context: CallbackContext): message = update.effective_message name = message.reply_to_message.from_user.first_name if message.reply_to_message else message.from_user.first_name reply_photo = message.reply_to_message.reply_photo if message.reply_to_message else message.reply_photo reply_photo( random.choice(animequotes_strings.QUOTES_IMG)) __help__ = """ • `/animequotes`*:* gives random anime quotes """ ANIMEQUOTES_HANDLER = DisableAbleCommandHandler("animequotes", animequotes) dispatcher.add_handler(ANIMEQUOTES_HANDLER) __mod_name__ = "AnimeQuotes" __command_list__ = [ "animequotes" ] __handlers__ = [ ANIMEQUOTES_HANDLER ]
) 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)
if args: string = ' '.join(args).lower() if not string: message.reply_text( "Usage is `/weebify <text>`", parse_mode=ParseMode.MARKDOWN) return for normiecharacter in string: if normiecharacter in normiefont: weebycharacter = weebyfont[normiefont.index(normiecharacter)] string = string.replace(normiecharacter, weebycharacter) 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) dispatcher.add_handler(WEEBIFY_HANDLER) __mod_name__ = "Weebify😯" __command_list__ = ["weebify"] __handlers__ = [WEEBIFY_HANDLER]