- /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__ = "Math" SIMPLIFY_HANDLER = DisableAbleCommandHandler("simplify", 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) LOG_HANDLER = DisableAbleCommandHandler("log", log, pass_args=True)
update.effective_message.reply_text("Current stats:\n" + "\n".join([mod.__stats__() for mod in STATS])) # /ip is for private use __help__ = """ - /id: get the current group id. If used by replying to a message, gets that user's id. - /runs: reply a random string from an array of replies. - /slap: slap a user, or get slapped if not a reply. - /time <place>: gives the local time at the given place. - /info: get information about a user. - /markdownhelp: quick summary of how markdown works in telegram - can only be called in private chats. """ __mod_name__ = "Misc" ID_HANDLER = DisableAbleCommandHandler("id", get_id, pass_args=True) IP_HANDLER = CommandHandler("ip", get_bot_ip, filters=Filters.chat(OWNER_ID)) TIME_HANDLER = CommandHandler("time", get_time, pass_args=True) SPAGET_HANDLER = CommandHandler("spaget", spaget) STFU_HANDLER = CommandHandler("stfu", stfu) PEPE_HANDLER = CommandHandler("pepe", pepe) RUNS_HANDLER = DisableAbleCommandHandler("runs", runs) SLAP_HANDLER = DisableAbleCommandHandler("slap", slap, pass_args=True) INFO_HANDLER = DisableAbleCommandHandler("info", info, pass_args=True) ECHO_HANDLER = CommandHandler("echo", echo, filters=Filters.user(OWNER_ID)) MD_HELP_HANDLER = CommandHandler("markdownhelp", markdown_help, filters=Filters.private)
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),
__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. """ __mod_name__ = "Locks" LOCKTYPES_HANDLER = DisableAbleCommandHandler("locktypes", locktypes) LOCK_HANDLER = CommandHandler("lock", lock, pass_args=True, filters=Filters.group) UNLOCK_HANDLER = CommandHandler("unlock", unlock, pass_args=True, filters=Filters.group) LOCKED_HANDLER = CommandHandler("locks", list_locks, filters=Filters.group) dispatcher.add_handler(LOCK_HANDLER) dispatcher.add_handler(UNLOCK_HANDLER) dispatcher.add_handler(LOCKTYPES_HANDLER) dispatcher.add_handler(LOCKED_HANDLER)
def __chat_settings__(chat_id, user_id): cust_filters = sql.get_chat_triggers(chat_id) return "There are `{}` custom filters here.".format(len(cust_filters)) __help__ = """ - /filters: list all active filters in this chat. *Admin only:* - /filter <keyword> <reply message>: add a filter to this chat. The bot will now reply that message whenever 'keyword'\ is mentioned. If you reply to a sticker with a keyword, the bot will reply with that sticker. NOTE: all filter \ keywords are in lowercase. If you want your keyword to be a sentence, use quotes. eg: /filter "hey there" How you \ doin? - /stop <filter keyword>: stop that filter. """ __mod_name__ = "Filters" FILTER_HANDLER = CommandHandler("filter", filters) STOP_HANDLER = CommandHandler("stop", stop_filter) LIST_HANDLER = DisableAbleCommandHandler("filters", list_handlers, admin_ok=True) CUST_FILTER_HANDLER = MessageHandler(CustomFilters.has_text, 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)
__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. - /rmblacklist <triggers>: Same as above. """ BLACKLIST_HANDLER = DisableAbleCommandHandler("blacklist", blacklist, filters=Filters.group, admin_ok=True) ADD_BLACKLIST_HANDLER = CommandHandler("addblacklist", add_blacklist, filters=Filters.group) UNBLACKLIST_HANDLER = CommandHandler(["unblacklist", "rmblacklist"], unblacklist, filters=Filters.group) BLACKLIST_DEL_HANDLER = MessageHandler( (Filters.text | Filters.command | Filters.sticker | Filters.photo) & Filters.group, del_blacklist) 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)
- /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,
filters=Filters.group) SETDESC_HANDLER = CommandHandler("setdescription", set_desc, filters=Filters.group) PROMOTE_HANDLER = CommandHandler("promote", promote, pass_args=True, filters=Filters.group) DEMOTE_HANDLER = CommandHandler("demote", demote, pass_args=True, filters=Filters.group) SET_TITLE_HANDLER = DisableAbleCommandHandler("settitle", set_title, pass_args=True) ADMINLIST_HANDLER = DisableAbleCommandHandler("adminlist", adminlist, filters=Filters.group) dispatcher.add_handler(PIN_HANDLER) dispatcher.add_handler(UNPIN_HANDLER) dispatcher.add_handler(INVITE_HANDLER) dispatcher.add_handler(PROMOTE_HANDLER) dispatcher.add_handler(DEMOTE_HANDLER) dispatcher.add_handler(ADMINLIST_HANDLER) dispatcher.add_handler(SET_TITLE_HANDLER) dispatcher.add_handler(CHAT_PIC_HANDLER) dispatcher.add_handler(DEL_CHAT_PIC_HANDLER) dispatcher.add_handler(SETCHAT_TITLE_HANDLER)
- /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, (via handle, or reply) """ __mod_name__ = "Bans" 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) 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)
from telegram import Update, Bot from telegram.ext import run_async from ROBOT.modules.disable import DisableAbleCommandHandler from ROBOT 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'Word: {text}\nDefinition: {results["list"][0]["definition"]}' message.reply_text(reply_text) __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)
update.effective_message.reply_text(res['message']) except Exception: if r.status_code == 404: update.effective_message.reply_text('Failed to reach dogbin') 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)
message.reply_text(reply_msg, quote=True) @run_async def me_too(bot: Bot, update: Update): message = update.effective_message if random.randint(0, 100) > 60: reply = random.choice( ["Me too thanks", "Haha yes, me too", "Same lol", "Me irl"]) message.reply_text(reply) __help__ = "many memz" __mod_name__ = "Memes" COPYPASTA_HANDLER = DisableAbleCommandHandler("copypasta", copypasta) COPYPASTA_ALIAS_HANDLER = DisableAbleCommandHandler("😂", copypasta) CLAPMOJI_HANDLER = DisableAbleCommandHandler("clapmoji", clapmoji) CLAPMOJI_ALIAS_HANDLER = DisableAbleCommandHandler("👏", clapmoji) ANGRYMOJI_HANDLER = DisableAbleCommandHandler("angrymoji", angrymoji) ANGRYMOJI_ALIAS_HANDLER = DisableAbleCommandHandler("😡", angrymoji) CRYMOJI_HANDLER = DisableAbleCommandHandler("crymoji", crymoji) CRYMOJI_ALIAS_HANDLER = DisableAbleCommandHandler("😭", crymoji) BMOJI_HANDLER = DisableAbleCommandHandler("🅱️", bmoji) BMOJI_ALIAS_HANDLER = DisableAbleCommandHandler("️b", bmoji) OWO_HANDLER = DisableAbleCommandHandler("owo", owo) SHRUG_HANDLER = DisableAbleCommandHandler("shrug", shrug) ME_TOO_THANKS_HANDLER = DisableAbleRegexHandler(r"(?i)me too", me_too, friendly="me_too")
if bio and me: return "<b>About user:</b>\n{me}\n<b>What others say:</b>\n{bio}".format( me=me, bio=bio) elif bio: return "<b>What others say:</b>\n{bio}\n".format(me=me, bio=bio) elif me: return "<b>About user:</b>\n{me}" "".format(me=me, bio=bio) 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 """ __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)