PEARL_HANDLER = CommandHandler("pearl", pearl, admin_ok=True) PIXYS_HANDLER = CommandHandler("pixys", pixys, admin_ok=True) POSP_HANDLER = CommandHandler("posp", posp, admin_ok=True) VIPER_HANDLER = CommandHandler("viper", viper, admin_ok=True) DESCENDANT_HANDLER = CommandHandler("descendant", descendant, pass_args=True, admin_ok=True) ENES_HANDLER = CommandHandler("enesrelease", enesrelease, pass_args=True, admin_ok=True) PHH_HANDLER = CommandHandler("phh", phh, pass_args=True, admin_ok=True) SPECS_HANDLER = CommandHandler("specs", specs, pass_args=True) dispatcher.add_handler(DEVICE_HANDLER) dispatcher.add_handler(MAGISK_HANDLER) dispatcher.add_handler(TWRP_HANDLER) dispatcher.add_handler(AEX_HANDLER) dispatcher.add_handler(BOOTLEGGERS_HANDLER) dispatcher.add_handler(DOTOS_HANDLER) dispatcher.add_handler(EVO_HANDLER) dispatcher.add_handler(HAVOC_HANDLER) dispatcher.add_handler(LOS_HANDLER) dispatcher.add_handler(MIUI_HANDLER) dispatcher.add_handler(PE_HANDLER) dispatcher.add_handler(PE10_HANDLER) dispatcher.add_handler(PEPLUS_HANDLER) dispatcher.add_handler(PEARL_HANDLER) dispatcher.add_handler(PIXYS_HANDLER) dispatcher.add_handler(POSP_HANDLER)
suggestions = change.get('Suggestions') if suggestions: sugg_str = suggestions[0].get( 'Text') # should look at this list more curr_string += msg.text[prev_end:start] + sugg_str prev_end = end curr_string += msg.text[prev_end:] print(curr_string) update.effective_message.reply_text(curr_string) __help__ = """ - /afk <reason>: mark yourself as AFK(Away From Keyboard) - brb <reason>: same as the afk command - /spell: while replying to a message, will reply with a grammar corrected version(ENGLISH ONLY) - /forbesify: Correct your punctuations better use the advanged spell module - /tr (language code) as reply to a long message. - /define <text>: Type the word or expression you want to search\nFor example /define Gay - /banme: ban yourself from a chat - /kickme: kicks yourself from a chat - /markdownhelp: quick summary of how markdown works in telegram - can only be called in private chats. """ __mod_name__ = "Helpers 🤗" TRANSLATE_HANDLER = CommandHandler('spell', translate) dispatcher.add_handler(TRANSLATE_HANDLER)
bot.edit_message_text( chat_id=query.message.chat_id, message_id=query.message.message_id, text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup([[ InlineKeyboardButton("English (US) 🇺🇸", callback_data="set_lang_en-US"), ]] + [[ InlineKeyboardButton("Russian 🇷🇺", callback_data="set_lang_ru") ]] + [[ InlineKeyboardButton(f"{tld(chat.id, 'btn_go_back')}", callback_data="bot_start") ]])) # query.message.delete() bot.answer_callback_query(query.id) LOCALE_HANDLER = CommandHandler(["set_locale", "locale", "lang", "setlang"], locale, pass_args=True) locale_handler = CallbackQueryHandler(locale_button, pattern="chng_lang") set_locale_handler = CallbackQueryHandler(locale_button, pattern=r"set_lang_") dispatcher.add_handler(LOCALE_HANDLER) dispatcher.add_handler(locale_handler) dispatcher.add_handler(set_locale_handler)
markdown_help, filters=Filters.private) STATS_HANDLER = CommandHandler("stats", stats, filters=Filters.user(OWNER_ID)) 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(INFO_HANDLER) dispatcher.add_handler(ECHO_HANDLER) dispatcher.add_handler(MD_HELP_HANDLER) dispatcher.add_handler(STATS_HANDLER) dispatcher.add_handler(GDPR_HANDLER) dispatcher.add_handler(GITHUB_HANDLER) dispatcher.add_handler(LYRICS_HANDLER) dispatcher.add_handler(REPO_HANDLER) dispatcher.add_handler( DisableAbleCommandHandler("removebotkeyboard", reply_keyboard_remove))
def main(): test_handler = CommandHandler("test", test) 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="0.0.0.0", port=PORT, url_path=TOKEN) if CERT_PATH: updater.bot.set_webhook(url=URL + TOKEN, certificate=open(CERT_PATH, 'rb')) else: updater.bot.set_webhook(url=URL + TOKEN) else: LOGGER.info("Using long polling.") updater.start_polling(timeout=15, read_latency=4) updater.idle()
GMAPS_LOC = "https://maps.googleapis.com/maps/api/geocode/json" @run_async @user_admin def gps(bot: Bot, update: Update, args: List[str]): 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") GPS_HANDLER = CommandHandler("gps", gps, pass_args=True) dispatcher.add_handler(GPS_HANDLER)
return __help__ = True SET_CLEAN_BLUE_TEXT_HANDLER = CommandHandler("cleanblue", set_blue_text_must_click, pass_args=True) ADD_CLEAN_BLUE_TEXT_HANDLER = CommandHandler("ignoreblue", add_bluetext_ignore, pass_args=True) REMOVE_CLEAN_BLUE_TEXT_HANDLER = CommandHandler("unignoreblue", remove_bluetext_ignore, pass_args=True) ADD_CLEAN_BLUE_TEXT_GLOBAL_HANDLER = CommandHandler("gignoreblue", add_bluetext_ignore_global, pass_args=True) REMOVE_CLEAN_BLUE_TEXT_GLOBAL_HANDLER = CommandHandler( "ungignoreblue", remove_bluetext_ignore_global, pass_args=True) LIST_CLEAN_BLUE_TEXT_HANDLER = CommandHandler("listblue", bluetext_ignore_list) 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(ADD_CLEAN_BLUE_TEXT_HANDLER) dispatcher.add_handler(REMOVE_CLEAN_BLUE_TEXT_HANDLER) dispatcher.add_handler(ADD_CLEAN_BLUE_TEXT_GLOBAL_HANDLER) dispatcher.add_handler(REMOVE_CLEAN_BLUE_TEXT_GLOBAL_HANDLER) dispatcher.add_handler(LIST_CLEAN_BLUE_TEXT_HANDLER) dispatcher.add_handler(CLEAN_BLUE_TEXT_HANDLER, BLUE_TEXT_CLEAN_GROUP)
MD_HELP_HANDLER = CommandHandler("markdownhelp", markdown_help, filters=Filters.private) STATS_HANDLER = CommandHandler("stats", stats, filters=CustomFilters.sudo_filter) GDPR_HANDLER = CommandHandler("gdpr", gdpr, filters=Filters.private) WEATHER_HANDLER = DisableAbleCommandHandler("weather", weather, pass_args=True) STICKER_HANDLER = DisableAbleCommandHandler("stickerid", stickerid) STICKERID_HANDLER = DisableAbleCommandHandler("getsticker", getsticker) UD_HANDLER = DisableAbleCommandHandler("ud", ud) WIKI_HANDLER = DisableAbleCommandHandler("wiki", wiki) dispatcher.add_handler(UD_HANDLER) dispatcher.add_handler(ID_HANDLER) dispatcher.add_handler(IP_HANDLER) dispatcher.add_handler(TIME_HANDLER) dispatcher.add_handler(RUNS_HANDLER) dispatcher.add_handler(SLAP_HANDLER) dispatcher.add_handler(GITHUB_HANDLER) dispatcher.add_handler(INFO_HANDLER) dispatcher.add_handler(ECHO_HANDLER) dispatcher.add_handler(MD_HELP_HANDLER) dispatcher.add_handler(STATS_HANDLER) dispatcher.add_handler(GDPR_HANDLER) dispatcher.add_handler(PING_HANDLER) dispatcher.add_handler(WEATHER_HANDLER) dispatcher.add_handler(STICKER_HANDLER)
if (im.width and im.height) < 512: size1 = im.width size2 = im.height if im.width > im.height: scale = 512 / size1 size1new = 512 size2new = size2 * scale else: scale = 512 / size2 size1new = size1 * scale size2new = 512 size1new = math.floor(size1new) size2new = math.floor(size2new) sizenew = (size1new, size2new) im = im.resize(sizenew) else: im.thumbnail(maxsize) return im 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)
@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) def error_callback(bot, update, error): try: raise error except (TimedOut, NetworkError): log.debug(error, exc_info=True) except: log.info(error, exc_info=True) __mod_name__ = "Eval Module" EVAL_HANDLER = CommandHandler("eval", evaluate, filters=CustomFilters.dev_filter) exec_handle = CommandHandler(["x", "ex", "exe", "exec", "py"], execute, filters=CustomFilters.dev_filter) clear_handle = CommandHandler('clearlocals', clear) dispatcher.add_handler(EVAL_HANDLER) dispatcher.add_handler(exec_handle) dispatcher.add_handler(clear_handle) #To be uncommented after testing
import json from typing import Optional, List import time import urllib from urllib.request import urlopen, urlretrieve from urllib.parse import quote_plus, urlencode import requests from telegram import Message, Chat, Update, Bot, MessageEntity from telegram import ParseMode from telegram.ext import CommandHandler, run_async, Filters from haruka import dispatcher from haruka.__main__ import STATS, USER_INFO from haruka.modules.disable import DisableAbleCommandHandler 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__ = """ - /boobs: Sends Random Boobs pic. - /butts: Sends Random Butts pic. """ __mod_name__ = "NSFW" BUTTS_HANDLER = DisableAbleCommandHandler("butts", butts, filters=CustomFilters.sudo_filter) dispatcher.add_handler(BUTTS_HANDLER)
message.reply_text(reply_text, parse_mode=ParseMode.MARKDOWN, disable_web_page_preview=True) __help__ = True GETAEX_HANDLER = DisableAbleCommandHandler("aex", getaex, pass_args=True, admin_ok=True) EVO_HANDLER = DisableAbleCommandHandler("evo", evo, admin_ok=True) HAVOC_HANDLER = DisableAbleCommandHandler("havoc", havoc, admin_ok=True) PHH_HANDLER = DisableAbleCommandHandler("phh", phh, pass_args=True, admin_ok=True) POSP_HANDLER = DisableAbleCommandHandler("posp", posp, 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(EVO_HANDLER) dispatcher.add_handler(HAVOC_HANDLER) dispatcher.add_handler(PHH_HANDLER) dispatcher.add_handler(POSP_HANDLER) dispatcher.add_handler(LOS_HANDLER) dispatcher.add_handler(BOOTLEGGERS_HANDLER)
HITLER_HANDLER = DisableAbleCommandHandler("hitler", hitlertext, admin_ok=True, pass_args=True) ZALGO_HANDLER = DisableAbleCommandHandler("zalgofy", zalgotext, pass_args=True) DEEPFRY_HANDLER = DisableAbleCommandHandler("deepfry", deepfryer, admin_ok=True) SHOUT_HANDLER = DisableAbleCommandHandler("shout", shout, pass_args=True) INSULTS_HANDLER = DisableAbleCommandHandler("insults", insults, admin_ok=True) RUNS_HANDLER = DisableAbleCommandHandler("runs", runs, admin_ok=True) SLAP_HANDLER = DisableAbleCommandHandler("slap", slap, pass_args=True, admin_ok=True) dispatcher.add_handler(MAFIA_HANDLER) dispatcher.add_handler(PIDOR_HANDLER) dispatcher.add_handler(SHOUT_HANDLER) dispatcher.add_handler(OWO_HANDLER) dispatcher.add_handler(STRETCH_HANDLER) dispatcher.add_handler(VAPOR_HANDLER) dispatcher.add_handler(MOCK_HANDLER) dispatcher.add_handler(ZALGO_HANDLER) dispatcher.add_handler(DEEPFRY_HANDLER) dispatcher.add_handler(KIM_HANDLER) dispatcher.add_handler(HITLER_HANDLER) dispatcher.add_handler(INSULTS_HANDLER) dispatcher.add_handler(RUNS_HANDLER) dispatcher.add_handler(SLAP_HANDLER)
chat_name3 = "" if chat_name1: btn1 = "/connect {} - {}".format(history.chat_id1, chat_name1) else: btn1 = "/connect - {}".format(tld(chat.id, "keyboard_connect")) if chat_name2: btn2 = "/connect {} - {}".format(history.chat_id2, chat_name2) else: btn2 = "" if chat_name3: btn3 = "/connect {} - {}".format(history.chat_id3, chat_name3) else: btn3 = "" #TODO: Remove except garbage update.effective_message.reply_text( tld(chat.id, "keyboard_updated"), reply_markup=ReplyKeyboardMarkup([[ KeyboardButton("/help - {}".format(tld(chat.id, "keyboard_bothelp"))), KeyboardButton("/notes - {}".format(tld(chat.id, "keyboard_notes"))) ], [KeyboardButton(btn1)], [KeyboardButton(btn2)], [KeyboardButton(btn3)]])) KEYBOARD_HANDLER = CommandHandler(["keyboard"], keyboard) dispatcher.add_handler(KEYBOARD_HANDLER)
def __user_info__(user_id, chat_id): bio = html.escape(sql.get_user_bio(user_id) or "") me = html.escape(sql.get_user_me_info(user_id) or "") if bio and me: return tld(chat_id, "userinfo_what_i_and_other_say").format(me, bio) elif bio: return tld(chat_id, "userinfo_what_other_say").format(bio) elif me: return tld(chat_id, "userinfo_what_i_say").format(me) else: return "" def __gdpr__(user_id): sql.clear_user_info(user_id) sql.clear_user_bio(user_id) __help__ = True 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)
def flood(bot: Bot, update: Update): chat = update.effective_chat limit = sql.get_flood_limit(chat.id) if limit == 0: update.effective_message.reply_text(tld(chat.id, "flood_status_off")) else: update.effective_message.reply_text( tld(chat.id, "flood_status_on").format(limit)) def __migrate__(old_chat_id, new_chat_id): sql.migrate_chat(old_chat_id, new_chat_id) __help__ = True # TODO: Add actions: ban/kick/mute/tban/tmute 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)
admin_ok=True) WARN_FILTER_HANDLER = MessageHandler(CustomFilters.has_text & Filters.group, reply_filter) WARN_LIMIT_HANDLER = DisableAbleCommandHandler("warnlimit", set_warn_limit, pass_args=True, filters=Filters.group, admin_ok=True) WARN_STRENGTH_HANDLER = CommandHandler("strongwarn", set_warn_strength, pass_args=True, filters=Filters.group, admin_ok=True) REMOVE_WARNS_HANDLER = CommandHandler(["rmwarn", "unwarn"], remove_warns, pass_args=True, filters=Filters.group, admin_ok=True) dispatcher.add_handler(WARN_HANDLER) dispatcher.add_handler(CALLBACK_QUERY_HANDLER) dispatcher.add_handler(RESET_WARN_HANDLER) dispatcher.add_handler(MYWARNS_HANDLER) dispatcher.add_handler(ADD_WARN_HANDLER) dispatcher.add_handler(RM_WARN_HANDLER) dispatcher.add_handler(LIST_WARN_HANDLER) dispatcher.add_handler(WARN_LIMIT_HANDLER) dispatcher.add_handler(WARN_STRENGTH_HANDLER) dispatcher.add_handler(WARN_FILTER_HANDLER, WARN_HANDLER_GROUP) dispatcher.add_handler(REMOVE_WARNS_HANDLER)
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__ = "Import/Export" __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 @HarukaAyaGroup ! """ 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)
new_cur = args[3].upper() except IndexError: update.effective_message.reply_text( "You forgot to mention the currency code to convert into.") return request_url = (f"https://www.alphavantage.co/query" f"?function=CURRENCY_EXCHANGE_RATE" f"&from_currency={orig_cur}" f"&to_currency={new_cur}" f"&apikey={CASH_API_KEY}") response = requests.get(request_url).json() try: current_rate = float(response['Realtime Currency Exchange Rate'] ['5. Exchange Rate']) except KeyError: update.effective_message.reply_text(f"Currency Not Supported.") return new_cur_amount = round(orig_cur_amount * current_rate, 5) update.effective_message.reply_text( f"{orig_cur_amount} {orig_cur} = {new_cur_amount} {new_cur}") else: update.effective_message.reply_text(__help__) __help__ = True CONVERTER_HANDLER = CommandHandler('cash', convert) dispatcher.add_handler(CONVERTER_HANDLER)
get_paste_stats, pass_args=True) UD_HANDLER = DisableAbleCommandHandler("ud", ud) SONG_HANDLER = DisableAbleCommandHandler("song", song) #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(INSULTS_HANDLER) #dispatcher.add_handler(RUNS_HANDLER) #dispatcher.add_handler(SLAP_HANDLER) dispatcher.add_handler(INFO_HANDLER) dispatcher.add_handler(ECHO_HANDLER) dispatcher.add_handler(MD_HELP_HANDLER) dispatcher.add_handler(STATS_HANDLER)
def __stats__(): return "• `{}` notes, accross `{}` chats.".format(sql.num_notes(), sql.num_chats()) def __migrate__(old_chat_id, new_chat_id): sql.migrate_chat(old_chat_id, new_chat_id) __help__ = True GET_HANDLER = CommandHandler("get", cmd_get, pass_args=True) HASH_GET_HANDLER = RegexHandler(r"^#[^\s]+", hash_get) SAVE_HANDLER = CommandHandler("save", save) REMOVE_ALL_NOTES_HANDLER = CommandHandler("clearall", remove_all_notes) 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) dispatcher.add_handler(REMOVE_ALL_NOTES_HANDLER)
log_channel = sql.stop_chat_logging(chat.id) if log_channel: try: bot.send_message( log_channel, tld(chat.id, "log_channel_unlink_success").format(chat.title)) message.reply_text(tld(chat.id, "Log channel has been un-set.")) except Exception: print("Nut") else: message.reply_text(tld(chat.id, "log_channel_unlink_none")) def __stats__(): return "• `{}` log channels set.".format(sql.num_logchannels()) def __migrate__(old_chat_id, new_chat_id): sql.migrate_chat(old_chat_id, new_chat_id) __help__ = True 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)
DEL_FED_HANDLER = CommandHandler("delfed", del_fed, pass_args=True) JOIN_FED_HANDLER = CommandHandler("joinfed", join_fed, pass_args=True) LEAVE_FED_HANDLER = CommandHandler("leavefed", leave_fed, pass_args=True) PROMOTE_FED_HANDLER = CommandHandler("fpromote", user_join_fed, pass_args=True) DEMOTE_FED_HANDLER = CommandHandler("fdemote", user_demote_fed, pass_args=True) INFO_FED_HANDLER = CommandHandler("fedinfo", fed_info, pass_args=True) BAN_FED_HANDLER = DisableAbleCommandHandler(["fban", "fedban"], fed_ban, pass_args=True) UN_BAN_FED_HANDLER = CommandHandler("unfban", unfban, pass_args=True) FED_BROADCAST_HANDLER = CommandHandler("fbroadcast", broadcast, pass_args=True) FED_SET_RULES_HANDLER = CommandHandler("setfrules", set_frules, pass_args=True) FED_GET_RULES_HANDLER = CommandHandler("frules", get_frules, pass_args=True) FED_CHAT_HANDLER = CommandHandler("chatfed", fed_chat, pass_args=True) FED_ADMIN_HANDLER = CommandHandler("fedadmins", fed_admin, pass_args=True) dispatcher.add_handler(NEW_FED_HANDLER) dispatcher.add_handler(DEL_FED_HANDLER) dispatcher.add_handler(JOIN_FED_HANDLER) dispatcher.add_handler(LEAVE_FED_HANDLER) dispatcher.add_handler(PROMOTE_FED_HANDLER) dispatcher.add_handler(DEMOTE_FED_HANDLER) dispatcher.add_handler(INFO_FED_HANDLER) dispatcher.add_handler(BAN_FED_HANDLER) dispatcher.add_handler(UN_BAN_FED_HANDLER) #dispatcher.add_handler(FED_BROADCAST_HANDLER) dispatcher.add_handler(FED_SET_RULES_HANDLER) dispatcher.add_handler(FED_GET_RULES_HANDLER) dispatcher.add_handler(FED_CHAT_HANDLER) dispatcher.add_handler(FED_ADMIN_HANDLER)
@run_async @user_admin def rhappy(bot: Bot, update: Update): message = update.effective_message rhappy = random.choice(reactionhappy) if message.reply_to_message: message.reply_to_message.reply_text(rhappy) else: message.reply_text(rhappy) @run_async @user_admin 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) 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)
def __stats__(): return "{} filters, across {} chats.".format(sql.num_filters(), sql.num_chats()) def __migrate__(old_chat_id, new_chat_id): sql.migrate_chat(old_chat_id, new_chat_id) def __import_data__(chat_id, data): # set chat filters filters = data.get('filters', {}) for trigger in filters: sql.add_to_blacklist(chat_id, trigger) __help__ = True FILTER_HANDLER = DisableAbleCommandHandler("filter", filters) STOP_HANDLER = DisableAbleCommandHandler("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)
"You should try playing snake and ladders, with real snakes and no ladders.", "Dance naked on a couple of HT wires.", "Active Volcano is the best swimming pool for you.", "You should try hot bath in a volcano.", "Try to spend one day in a coffin and it will be yours forever.", "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.", ) @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)
def check_afk(bot, update, user_id, fst_name): 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} Sedang AFK karena :\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)
admin_ok=True) KICK_HANDLER = DisableAbleCommandHandler("kick", kick, pass_args=True, filters=Filters.group, admin_ok=True) UNBAN_HANDLER = DisableAbleCommandHandler("unban", unban, pass_args=True, filters=Filters.group, admin_ok=True) KICKME_HANDLER = DisableAbleCommandHandler("kickme", kickme, filters=Filters.group) SBAN_HANDLER = DisableAbleCommandHandler("sban", sban, pass_args=True, filters=Filters.group, admin_ok=True) BANME_HANDLER = DisableAbleCommandHandler("banme", banme, 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) dispatcher.add_handler(BANME_HANDLER) dispatcher.add_handler(SBAN_HANDLER)
UNGMUTE_HANDLER = CommandHandler("ungmute", ungmute, pass_args=True, filters=CustomFilters.sudo_filter | CustomFilters.support_filter) GMUTE_LIST = CommandHandler("gmutelist", gmutelist, filters=CustomFilters.sudo_filter | CustomFilters.support_filter) GKICK_HANDLER = CommandHandler("gkick", gkick, pass_args=True, filters=CustomFilters.sudo_filter | CustomFilters.support_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)
- /unlock <item(s)>: unlock "item". Everyone can use them again. - /locks: list the lock status in the chat. - /locktypes: gets a list of all things that can be locked. (have a look at this!) eg: lock stickers with: /lock sticker """ __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) dispatcher.add_handler( MessageHandler(Filters.all & Filters.group, del_lockables), PERM_GROUP) dispatcher.add_handler( MessageHandler(Filters.all & Filters.group, rest_handler), REST_GROUP)