__help__ = """ - /adminlist: list of admins in the chat *Admin 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 - /settitle: sets a custom title for an admin that the bot promoted - /setgpic: As a reply to file or photo to set group profile pic. - /delgpic: Remove group profile pic. """ ADMINLIST_HANDLER = DisableAbleCommandHandler(["adminlist", "admins"], adminlist) PIN_HANDLER = CommandHandler("pin", pin, pass_args=True, filters=Filters.group) UNPIN_HANDLER = CommandHandler("unpin", unpin, filters=Filters.group) INVITE_HANDLER = DisableAbleCommandHandler("invitelink", invite, filters=Filters.group) PROMOTE_HANDLER = CommandHandler("promote", promote, pass_args=True) DEMOTE_HANDLER = CommandHandler("demote", demote, pass_args=True) SET_TITLE_HANDLER = CommandHandler("settitle", set_title, pass_args=True) GITPULL_HANDLER = CommandHandler("gitpull", gitpull) RESTART_HANDLER = CommandHandler("restart", restart)
"(´・ᴗ・ ` )", "( ͡° ʖ̯ ͡°)", "( ఠ ͟ʖ ఠ)", "( ಥ ʖ̯ ಥ)", "(≖ ͜ʖ≖)", "ヘ( ̄ω ̄ヘ)", "(ノ≧∀≦)ノ", "└( ̄- ̄└))", "┌(^^)┘", "(^_^♪)", "(〜 ̄△ ̄)〜", "(「• ω •)「", "( ˘ ɜ˘) ♬♪♫", "( o˘◡˘o) ┌iii┐", "♨o(>_<)o♨", "( ・・)つ―{}@{}@{}-", "(*´з`)口゚。゚口(・∀・ )", "( *^^)o∀*∀o(^^* )", "-●●●-c(・・ )", "(ノ≧∀≦)ノ ‥…━━━★", "╰( ͡° ͜ʖ ͡° )つ──☆*:・゚", "(∩ᄑ_ᄑ)⊃━☆゚*・。*・:≡( ε:)" ] @run_async def react(bot: Bot, update: Update): 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) __help__ = """ - /react: Reacts with a random reaction """ REACT_HANDLER = DisableAbleCommandHandler("react", react) dispatcher.add_handler(REACT_HANDLER) __mod_name__ = "REACT" __command_list__ = ["react"] __handlers__ = [REACT_HANDLER]
% packname, parse_mode=ParseMode.MARKDOWN) 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.") __help__ = """ - /stickerid: reply to a sticker to get its ID. - /getsticker: reply to a sticker to get the raw PNG image. - /kang: reply to a sticker or image to add it to your pack. """ __mod_name__ = "STICKERS" STICKERID_HANDLER = DisableAbleCommandHandler("stickerid", stickerid) GETSTICKER_HANDLER = DisableAbleCommandHandler("getsticker", getsticker) STEAL_HANDLER = DisableAbleCommandHandler("kang", steal, pass_args=True, admin_ok=False) dispatcher.add_handler(STICKERID_HANDLER) dispatcher.add_handler(GETSTICKER_HANDLER) dispatcher.add_handler(STEAL_HANDLER)
Get information about anime, manga or characters from [AniList](anilist.co). *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. """ 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)
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: 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) __help__ = """ WIKIPEDIA!! *Available commands:* - /wiki <query>: wiki your query. """ __mod_name__ = "WIKIPEDIA" WIKI_HANDLER = DisableAbleCommandHandler("wiki", wiki) dispatcher.add_handler(WIKI_HANDLER)
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>", parse_mode=ParseMode.HTML) return send_message.edit_text(result, parse_mode=ParseMode.HTML) __help__ = """ - /time <query> : Gives information about a timezone. Available queries : Country Code/Country Name/Timezone Name """ TIME_HANDLER = DisableAbleCommandHandler("time", gettime) dispatcher.add_handler(TIME_HANDLER) __mod_name__ = "TIME" __command_list__ = ["time"] __handlers__ = [TIME_HANDLER]
BAN_HANDLER = CommandHandler("ban", ban, pass_args=True, filters=Filters.group) TEMPBAN_HANDLER = CommandHandler(["tban", "tempban"], temp_ban, pass_args=True, filters=Filters.group) KICK_HANDLER = CommandHandler("kick", kick, pass_args=True, filters=Filters.group) UNBAN_HANDLER = CommandHandler("unban", unban, pass_args=True, filters=Filters.group) KICKME_HANDLER = DisableAbleCommandHandler("kickme", kickme, filters=Filters.group) BANME_HANDLER = DisableAbleCommandHandler("banme", banme, filters=Filters.group) SBAN_HANDLER = CommandHandler("sban", sban, pass_args=True, filters=Filters.group) ROAR_HANDLER = CommandHandler("roar", selfunban, pass_args=True) dispatcher.add_handler(BAN_HANDLER) dispatcher.add_handler(TEMPBAN_HANDLER) dispatcher.add_handler(KICK_HANDLER) dispatcher.add_handler(UNBAN_HANDLER) dispatcher.add_handler(KICKME_HANDLER)
- /strongwarn <on/yes/off/no>: If set to on, exceeding the warn limit will result in a ban. Else, will just kick. """ __mod_name__ = "WARNINGS" WARN_HANDLER = CommandHandler("warn", warn_user, pass_args=True, filters=Filters.group) RESET_WARN_HANDLER = CommandHandler(["resetwarn", "resetwarns"], reset_warns, pass_args=True, filters=Filters.group) CALLBACK_QUERY_HANDLER = CallbackQueryHandler(button, pattern=r"rm_warn") MYWARNS_HANDLER = DisableAbleCommandHandler("warns", warns, pass_args=True, 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,
if character not in thonkifydict: msg = msg.replace(character, "") x = 0 y = 896 image = Image.new('RGBA', [x, y], (0, 0, 0)) for character in msg: value = thonkifydict.get(character) addedimg = Image.new('RGBA', [x + value.size[0] + tracking.size[0], y], (0, 0, 0)) addedimg.paste(image, [0, 0]) addedimg.paste(tracking, [x, 0]) 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) PAN_HANDLER = DisableAbleCommandHandler("pan", pan, admin_ok=True) dispatcher.add_handler(PAN_HANDLER)
message = update.effective_message if len(args) == 0: update.effective_message.reply_text( "That was a funny joke, but no really, put in a location") try: geolocator = Nominatim(user_agent="SkittBot") location = " ".join(args) geoloc = geolocator.geocode(location) chat_id = update.effective_chat.id lon = geoloc.longitude lat = geoloc.latitude the_loc = Location(lon, lat) gm = "https://www.google.com/maps/search/{},{}".format(lat, lon) bot.send_location(chat_id, location=the_loc) update.message.reply_text("Open with: [Google Maps]({})".format(gm), parse_mode=ParseMode.MARKDOWN, disable_web_page_preview=True) except AttributeError: update.message.reply_text("I can't find that") __help__ = """ - /gps <location>: get gps location """ __mod_name__ = "GPS" GPS_HANDLER = DisableAbleCommandHandler("gps", gps, pass_args=True) dispatcher.add_handler(GPS_HANDLER)
@run_async def ping(bot: Bot, update: Update): start_time = time.time() requests.get('https://api.telegram.org') end_time = time.time() ping_time = str(round((end_time - start_time), 2) % 60) uptime = get_readable_time((time.time() - StartTime)) update.effective_message.reply_text( f"� Pong!\n��<b>Reply took:</b> {ping_time}s\n🔮<b>Service Uptime:</b> {uptime}", parse_mode=ParseMode.HTML) @run_async def uptime(bot: Bot, update: Update): uptime = get_readable_time((time.time() - StartTime)) update.effective_message.reply_text(f"🔮Service Uptime: {uptime}") __help__ = """ - /ping :get ping time of bot to telegram server - /uptime: Find last service update time """ __mod_name__ = "PING" PING_HANDLER = DisableAbleCommandHandler("ping", ping) UPTIME_HANDLER = DisableAbleCommandHandler("uptime", uptime) dispatcher.add_handler(UPTIME_HANDLER) dispatcher.add_handler(PING_HANDLER)
import subprocess from telegram import Update, Bot from telegram.ext import run_async, Filters from pokemon import dispatcher from pokemon.modules.disable import DisableAbleCommandHandler def google(bot: Bot, update: Update): query = update.effective_message.text.split(None, 1) result_ = subprocess.run(['gsearch', str(query)], stdout=subprocess.PIPE) result = str(result_.stdout.decode()) update.effective_message.reply_markdown('*Searching:*\n`' + str(query) + '`\n\n*RESULTS:*\n' + result) __help__ = """ - /google: Google search """ __mod_name__ = "Google" GOOGLE_HANDLER = DisableAbleCommandHandler("google", google) dispatcher.add_handler(GOOGLE_HANDLER)
else: wallpapers = json_rep.get("wallpapers") if not wallpapers: msg.reply_text("No results found!") 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, reply_to_message_id=msg_id, timeout=60) bot.send_document(chat_id, document=wallpaper, filename='wallpaper', reply_to_message_id=msg_id, timeout=60) __help__ = """ - /wall <query> to get wallpaper """ __mod_name__ = "WALLPAPER" WALLPAPER_HANDLER = DisableAbleCommandHandler("wall", wall, pass_args=True) dispatcher.add_handler(WALLPAPER_HANDLER)
from pokemon import dispatcher from telegram import ParseMode, Update, Bot from pokemon.modules.disable import DisableAbleCommandHandler from telegram.ext import run_async @run_async def truth(bot: Bot, update: Update): update.effective_message.reply_text( random.choice(truth_and_dare_string.TRUTH)) @run_async def dare(bot: Bot, update: Update): update.effective_message.reply_text( random.choice(truth_and_dare_string.DARE)) __help__ = """ - /truth : for random truth - /dare : for random dare """ TRUTH_HANDLER = DisableAbleCommandHandler("truth", truth) DARE_HANDLER = DisableAbleCommandHandler("dare", dare) dispatcher.add_handler(TRUTH_HANDLER) dispatcher.add_handler(DARE_HANDLER) __mod_name__ = "Truth or Dare"
- /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 ;-; - /judge: as a reply to someone, checks if they're lying or not! - /weebify: as a reply to a message, "weebifies" the message. - /block: as a reply to a message, "blockfont" the messange. - /shout <word>: shout the specified word in the chat. - /pan <text/reply a message>: text get funny emojify. """ RUNS_HANDLER = DisableAbleCommandHandler("runs", runs) SLAP_HANDLER = DisableAbleCommandHandler("slap", slap, pass_args=True) 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) JUDGE_HANDLER = DisableAbleCommandHandler("judge", judge) WEEBIFY_HANDLER = DisableAbleCommandHandler("weebify", weebify, pass_args=True) SHOUT_HANDLER = DisableAbleCommandHandler("shout", shout, pass_args=True) BLOCK_HANDLER = DisableAbleCommandHandler("block", block, pass_args=True) dispatcher.add_handler(RUNS_HANDLER) dispatcher.add_handler(SLAP_HANDLER)
#Made By @Madepranav On Telegram & Github Id Superboyfan import html import random import pokemon.modules.animequotesstring as animequotesstring from pokemon import dispatcher from telegram import ParseMode, Update, Bot from pokemon.modules.disable import DisableAbleCommandHandler from telegram.ext import run_async @run_async def animequotes(bot: Bot, update: Update): update.effective_message.reply_text(random.choice(animequotesstring.ANIMEQUOTES)) __help__ = """ - /animequotes : for random Anime qoutes """ ANIMEQUOTES_HANDLER = DisableAbleCommandHandler("animequotes", animequotes) dispatcher.add_handler(ANIMEQUOTES_HANDLER) __mod_name__ = "AnimeQuotes"
else: update.effective_message.reply_text('Unknown error occured') r.raise_for_status() document = r.json()['document'] key = document['_id'] views = document['viewCount'] reply = f'Stats for **[/{key}]({BASE_URL}/{key})**:\nViews: `{views}`' update.effective_message.reply_text(reply, parse_mode=ParseMode.MARKDOWN) __help__ = """ - /paste: Create a paste or a shortened url using [dogbin](https://del.dog) - /getpaste: Get the content of a paste or shortened url from [dogbin](https://del.dog) - /pastestats: Get stats of a paste or shortened url from [dogbin](https://del.dog) """ __mod_name__ = "DOGBIN" 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) dispatcher.add_handler(PASTE_HANDLER) dispatcher.add_handler(GET_PASTE_HANDLER) dispatcher.add_handler(PASTE_STATS_HANDLER)
SAFEMODE_HANDLER = CommandHandler("safemode", safemode, pass_args=True, filters=Filters.group) DEL_JOINED = CommandHandler("rmjoin", del_joined, pass_args=True, filters=Filters.group) WELCOME_HELP = CommandHandler("welcomehelp", welcome_help) BUTTON_VERIFY_HANDLER = CallbackQueryHandler(user_button, pattern=r"userverify_") SETCAS_HANDLER = CommandHandler("setcas", setcas, filters=Filters.group) GETCAS_HANDLER = CommandHandler("getcas", get_current_setting, filters=Filters.group) GETVER_HANDLER = DisableAbleCommandHandler("casver", get_version) CASCHECK_HANDLER = CommandHandler("cascheck", caschecker, pass_args=True) CASQUERY_HANDLER = CommandHandler("casquery", casquery, pass_args=True, filters=CustomFilters.sudo_filter) SETBAN_HANDLER = CommandHandler("setban", setban, filters=Filters.group) GBANCHAT_HANDLER = CommandHandler("blchat", gbanChat, pass_args=True, filters=CustomFilters.sudo_filter) UNGBANCHAT_HANDLER = CommandHandler("unblchat", ungbanChat, pass_args=True, filters=CustomFilters.sudo_filter) DEFENSE_HANDLER = CommandHandler("setdefense", setDefense, pass_args=True)
- /cos: Cosine `/cos pi` - /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__ = "MATHS" SIMPLIFY_HANDLER = DisableAbleCommandHandler("math", simplify, pass_args=True) FACTOR_HANDLER = DisableAbleCommandHandler("factor", factor, pass_args=True) DERIVE_HANDLER = DisableAbleCommandHandler("derive", derive, pass_args=True) 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)
from pokemon.modules.helper_funcs.chat_status import is_user_admin, user_admin from pokemon.modules.helper_funcs.extraction import extract_user #sleep how many times after each edit in 'police' EDIT_SLEEP = 1 #edit how many times in 'police' EDIT_TIMES = 6 police_siren = [ "🔴🔴🔴⬜️⬜️⬜️🔵🔵🔵\n🔴🔴🔴⬜️⬜️⬜️🔵🔵🔵\n🔴🔴🔴⬜️⬜️⬜️🔵🔵🔵", "🔵🔵🔵⬜️⬜️⬜️🔴🔴🔴\n🔵🔵🔵⬜️⬜️⬜️🔴🔴🔴\n🔵🔵🔵⬜️⬜️⬜️🔴🔴🔴" ] @user_admin @run_async def police(bot: Bot, update: Update): msg = update.effective_message.reply_text('Police is coming!') for x in range(EDIT_TIMES): msg.edit_text(police_siren[x % 2]) time.sleep(EDIT_SLEEP) msg.edit_text('🚴♂️Pling! Police Car was Breakdown') POLICE_HANDLER = DisableAbleCommandHandler("police", police) dispatcher.add_handler(POLICE_HANDLER) __command_list__ = ["police"] __handlers__ = [POLICE_HANDLER]
elif bio: return f"<b>What others say:</b>\n{bio}\n" elif me: return f"<b>About user:</b>\n{me}" else: return "" __help__ = """ - /setbio <text>: while replying, will save another user's bio - /bio: will get your or another user's bio. This cannot be set by yourself. - /setme <text>: will set your info - /me: will get your or another user's info """ SET_BIO_HANDLER = DisableAbleCommandHandler("setbio", set_about_bio) GET_BIO_HANDLER = DisableAbleCommandHandler("bio", about_bio, pass_args=True) SET_ABOUT_HANDLER = DisableAbleCommandHandler("setme", set_about_me) GET_ABOUT_HANDLER = DisableAbleCommandHandler("me", about_me, pass_args=True) dispatcher.add_handler(SET_BIO_HANDLER) dispatcher.add_handler(GET_BIO_HANDLER) dispatcher.add_handler(SET_ABOUT_HANDLER) dispatcher.add_handler(GET_ABOUT_HANDLER) __mod_name__ = "BIOS/ABOUTS" __command_list__ = ["setbio", "bio", "setme", "me"] __handlers__ = [ SET_BIO_HANDLER, GET_BIO_HANDLER, SET_ABOUT_HANDLER, GET_ABOUT_HANDLER ]
from telegram import Update, Bot, ParseMode from telegram.ext import run_async from pokemon.modules.disable import DisableAbleCommandHandler from pokemon import dispatcher from requests import get @run_async def ud(bot: Bot, update: Update): message = update.effective_message text = message.text[len('/ud '):] results = get( f'http://api.urbandictionary.com/v0/define?term={text}').json() reply_text = f'ℹ️ *{text}*\n\n👉🏻 {results["list"][0]["definition"]}\n\n📌 _{results["list"][0]["example"]}_' message.reply_text(reply_text, parse_mode=ParseMode.MARKDOWN) __help__ = """ - /ud:{word} Type the word or expression you want to search use. like /ud telegram Word: Telegram Definition: A once-popular system of telecommunications, in which the sender would contact the telegram service and speak their [message] over the [phone]. The person taking the message would then send it, via a teletype machine, to a telegram office near the receiver's [address]. The message would then be hand-delivered to the addressee. From 1851 until it discontinued the service in 2006, Western Union was the best-known telegram service in the world. """ __mod_name__ = "URBAN DICTIONARY" ud_handle = DisableAbleCommandHandler("ud", ud) dispatcher.add_handler(ud_handle)
- /notes or /saved: list all saved notes in this chat 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. *Admin 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 """ __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) 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)
else: reply = "Couldn't find any lyrics for that song!" else: reply = "Song not found!" if len(reply) > 4090: with open("lyrics.txt", 'w') as f: f.write(f"{reply}\n\n\nOwO UwU OmO") with open("lyrics.txt", 'rb') as f: msg.reply_document(document=f, caption="Message length exceeded max limit! Sending as a text file.") else: msg.reply_text(reply) __help__ = """ Want to get the lyrics of your favorite songs straight from the app? This module is perfect for that! *Available commands:* - /lyrics <song>: returns the lyrics of that song. You can either enter just the song name or both the artist and song name. """ __mod_name__ = "SONG LYRICS" LYRICS_HANDLER = DisableAbleCommandHandler("lyrics", lyrics, pass_args=True) dispatcher.add_handler(LYRICS_HANDLER)
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__ = "REVERSE IMAGE SEARCH" REVERSE_HANDLER = DisableAbleCommandHandler("reverse", reverse, pass_args=True, admin_ok=True) dispatcher.add_handler(REVERSE_HANDLER)
return res = "{} is afk".format(fst_name) update.effective_message.reply_text(res) else: if int(userc_id) == int(user_id): return res = "{} is AFK.\nReason: {}".format(fst_name, user.reason) update.effective_message.reply_text(res) __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 = 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) __mod_name__ = "AFK" __command_list__ = ["afk"] __handlers__ = [(AFK_HANDLER, AFK_GROUP), (AFK_REGEX_HANDLER, AFK_GROUP), (NO_AFK_HANDLER, AFK_GROUP), (AFK_REPLY_HANDLER, AFK_REPLY_GROUP)]
else: tekstr = trl.translate(text, dest=dest_lang, src=source_lang) message.reply_text( "Translated from `{}` to `{}`:\n`{}`".format( source_lang, dest_lang, tekstr.text), parse_mode=ParseMode.MARKDOWN) except IndexError: update.effective_message.reply_text( "Reply to messages or write messages from other languages for translating into the intended language\n\nExample: `/tr en ml` to translate from English to Malayalam\nOr use: `/tr ml` for automatic detection and translating it into Malayalam.\nSee [List of Language Codes](https://telegra.ph/%C5%9E%E0%B8%AA%E2%84%9D%E0%B8%AA%D1%92-06-28) 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 __help__ = """ - /tr (language code) as reply to a long message. """ TRANSLATE_HANDLER = DisableAbleCommandHandler("tr", totranslate) dispatcher.add_handler(TRANSLATE_HANDLER) __mod_name__ = "TRANSLATOR" __command_list__ = ["tr"] __handlers__ = [TRANSLATE_HANDLER]
__help__ = """ - /locktypes: a list of possible locktypes *Admin only:* - /lock <type>: lock items of a certain type (not available in private) - /unlock <type>: unlock items of a certain type (not available in private) - /locks: the current list of locks in this chat. Locks can be used to restrict a group's users. eg: Locking urls will auto-delete all messages with urls which haven't been whitelisted, locking stickers will delete all \ stickers, etc. Locking bots will stop non-admins from adding bots to the chat. """ LOCKTYPES_HANDLER = DisableAbleCommandHandler("locktypes", locktypes) LOCK_HANDLER = CommandHandler("lock", lock, pass_args=True) UNLOCK_HANDLER = CommandHandler("unlock", unlock, pass_args=True) LOCKED_HANDLER = CommandHandler("locks", list_locks) LOCKABLE_HANDLER = MessageHandler(Filters.all & Filters.group, del_lockables) RESTRICTION_HANDLER = MessageHandler(Filters.all & Filters.group, rest_handler) dispatcher.add_handler(LOCK_HANDLER) dispatcher.add_handler(UNLOCK_HANDLER) dispatcher.add_handler(LOCKTYPES_HANDLER) dispatcher.add_handler(LOCKED_HANDLER) dispatcher.add_handler(LOCKABLE_HANDLER, PERM_GROUP) dispatcher.add_handler(RESTRICTION_HANDLER, REST_GROUP) __mod_name__ = "LOCKS" __handlers__ = [
def __stats__(): return "{} blacklist stickers, across {} chats.".format(sql.num_stickers_filters(), sql.num_stickers_filter_chats()) __help__ = """ Blacklist sticker is used to stop certain stickers. Whenever a sticker is sent, the message will be deleted immediately. *NOTE:* Blacklist stickers do not affect the group admin. - /blsticker: See current blacklisted sticker. *Only admin:* - /addblsticker <sticker link>: Add the sticker trigger to the black list. Can be added via reply sticker. - /unblsticker <sticker link>: Remove triggers from blacklist. The same newline logic applies here, so you can delete multiple triggers at once. - /rmblsticker <sticker link>: Same as above. - /blstickermode ban/tban/mute/tmute . Note: - `<sticker link>` can be `https://t.me/addstickers/<sticker>` or just `<sticker>` or reply to the sticker message. """ __mod_name__ = "STICKER BLACKLIST" BLACKLIST_STICKER_HANDLER = DisableAbleCommandHandler("blsticker", blackliststicker, pass_args=True, admin_ok=True) ADDBLACKLIST_STICKER_HANDLER = DisableAbleCommandHandler("addblsticker", add_blackliststicker) UNBLACKLIST_STICKER_HANDLER = CommandHandler(["unblsticker", "rmblsticker"], unblackliststicker) BLACKLISTMODE_HANDLER = CommandHandler("blstickermode", blacklist_mode, pass_args=True) BLACKLIST_STICKER_DEL_HANDLER = MessageHandler(Filters.sticker & Filters.group, del_blackliststicker) dispatcher.add_handler(BLACKLIST_STICKER_HANDLER) dispatcher.add_handler(ADDBLACKLIST_STICKER_HANDLER) dispatcher.add_handler(UNBLACKLIST_STICKER_HANDLER) dispatcher.add_handler(BLACKLISTMODE_HANDLER) dispatcher.add_handler(BLACKLIST_STICKER_DEL_HANDLER)
def stats(bot: Bot, update: Update): stats = "Current stats:\n" + "\n".join([mod.__stats__() for mod in STATS]) result = re.sub(r'(\d+)', r'<code>\1</code>', stats) update.effective_message.reply_text(result, parse_mode=ParseMode.HTML) __help__ = """ - /id: get the current group id. If used by replying to a message, gets that user's id. - /info: get information about a user. - /gifid: Get gif ID. - /markdownhelp: quick summary of how markdown works in telegram - can only be called in private chats. - /imdb <movie or TV series name>: View IMDb results for selected movie or TV series - /direct <link>: Download from a link """ ID_HANDLER = DisableAbleCommandHandler("id", get_id, pass_args=True) GIFID_HANDLER = DisableAbleCommandHandler("gifid", gifid) ECHO_HANDLER = DisableAbleCommandHandler("echo", echo, filters=Filters.group) MD_HELP_HANDLER = CommandHandler("markdownhelp", markdown_help, filters=Filters.private) STATS_HANDLER = CommandHandler("stats", stats) dispatcher.add_handler(ID_HANDLER) dispatcher.add_handler(GIFID_HANDLER) dispatcher.add_handler(ECHO_HANDLER) dispatcher.add_handler(MD_HELP_HANDLER) dispatcher.add_handler(STATS_HANDLER) __mod_name__ = "MISC" __command_list__ = ["id", "echo"]