2
0
mirror of https://github.com/Nick80835/microbot synced 2025-09-03 16:05:49 +00:00

add support for hiding commands from help

This commit is contained in:
Nick80835
2020-06-17 19:20:19 -04:00
parent ac28a658be
commit 7f6d519d2c
6 changed files with 47 additions and 20 deletions

View File

@@ -22,6 +22,7 @@ class Loader():
self.settings = settings self.settings = settings
self.command_handler = CommandHandler(client, logger, settings) self.command_handler = CommandHandler(client, logger, settings)
self.help_dict = {} self.help_dict = {}
self.help_hidden_dict = {}
self.aioclient = ClientSession() self.aioclient = ClientSession()
self.thread_pool = ThreadPoolExecutor() self.thread_pool = ThreadPoolExecutor()
@@ -37,6 +38,7 @@ class Loader():
self.command_handler.inline_article_commands = [] self.command_handler.inline_article_commands = []
self.command_handler.callback_queries = [] self.command_handler.callback_queries = []
self.help_dict = {} self.help_dict = {}
self.help_hidden_dict = {}
errors = "" errors = ""
@@ -55,10 +57,16 @@ class Loader():
pattern = args.get("pattern", pattern) pattern = args.get("pattern", pattern)
def decorator(func): def decorator(func):
if func.__module__.split(".")[-1] in self.help_dict: if args.get("hide_help", False):
self.help_dict[func.__module__.split(".")[-1]] += [pattern] if func.__module__.split(".")[-1] in self.help_hidden_dict:
self.help_hidden_dict[func.__module__.split(".")[-1]] += [pattern]
else:
self.help_hidden_dict[func.__module__.split(".")[-1]] = [pattern]
else: else:
self.help_dict[func.__module__.split(".")[-1]] = [pattern] if func.__module__.split(".")[-1] in self.help_dict:
self.help_dict[func.__module__.split(".")[-1]] += [pattern]
else:
self.help_dict[func.__module__.split(".")[-1]] = [pattern]
self.command_handler.incoming_commands.append({ self.command_handler.incoming_commands.append({
"pattern": pattern, "pattern": pattern,
@@ -85,10 +93,16 @@ class Loader():
def decorator(func): def decorator(func):
for pattern in pattern_list: for pattern in pattern_list:
if func.__module__.split(".")[-1] in self.help_dict: if args.get("hide_help", False):
self.help_dict[func.__module__.split(".")[-1]] += [pattern] if func.__module__.split(".")[-1] in self.help_hidden_dict:
self.help_hidden_dict[func.__module__.split(".")[-1]] += [pattern]
else:
self.help_hidden_dict[func.__module__.split(".")[-1]] = [pattern]
else: else:
self.help_dict[func.__module__.split(".")[-1]] = [pattern] if func.__module__.split(".")[-1] in self.help_dict:
self.help_dict[func.__module__.split(".")[-1]] += [pattern]
else:
self.help_dict[func.__module__.split(".")[-1]] = [pattern]
self.command_handler.incoming_commands.append({ self.command_handler.incoming_commands.append({
"pattern": pattern + pattern_extra, "pattern": pattern + pattern_extra,

View File

@@ -10,7 +10,7 @@ DAN_URL = "http://danbooru.donmai.us/posts.json"
DAN_SAUCE_URL = "https://danbooru.donmai.us/posts/" DAN_SAUCE_URL = "https://danbooru.donmai.us/posts/"
@ldr.add("danping", sudo=True) @ldr.add("danping", sudo=True, hide_help=True)
async def danbooru_ping(event): async def danbooru_ping(event):
params = {"limit": 1, params = {"limit": 1,
"random": "true"} "random": "true"}

View File

@@ -11,7 +11,7 @@ GEL_URL = "https://gelbooru.com/index.php"
GEL_SAUCE_URL = "https://gelbooru.com/index.php?page=post&s=view&id=" GEL_SAUCE_URL = "https://gelbooru.com/index.php?page=post&s=view&id="
@ldr.add("gelping", sudo=True) @ldr.add("gelping", sudo=True, hide_help=True)
async def danbooru_ping(event): async def danbooru_ping(event):
params = {"page": "dapi", params = {"page": "dapi",
"s": "post", "s": "post",

View File

@@ -10,7 +10,7 @@ SAN_URL = "https://capi-v2.sankakucomplex.com/posts"
SAN_SAUCE_URL = "https://beta.sankakucomplex.com/post/show/" SAN_SAUCE_URL = "https://beta.sankakucomplex.com/post/show/"
@ldr.add("sanping", sudo=True) @ldr.add("sanping", sudo=True, hide_help=True)
async def sankaku_ping(event): async def sankaku_ping(event):
params = {"page": 1, params = {"page": 1,
"limit": 5, "limit": 5,

View File

@@ -10,7 +10,7 @@ from ubot.micro_bot import micro_bot
ldr = micro_bot.loader ldr = micro_bot.loader
@ldr.add("reload", sudo=True) @ldr.add("reload", sudo=True, hide_help=True)
async def reload_modules(event): async def reload_modules(event):
reload_msg = await event.reply("Reloading modules…") reload_msg = await event.reply("Reloading modules…")
@@ -25,7 +25,7 @@ async def reload_modules(event):
pass pass
@ldr.add("sysd", sudo=True) @ldr.add("sysd", sudo=True, hide_help=True)
async def sysd(event): async def sysd(event):
try: try:
neo = "neofetch --stdout" neo = "neofetch --stdout"
@@ -43,7 +43,7 @@ async def sysd(event):
await event.reply("Neofetch not found!") await event.reply("Neofetch not found!")
@ldr.add("alive", sudo=True) @ldr.add("alive", sudo=True, hide_help=True)
async def alive(event): async def alive(event):
alive_format = "**Telethon version:** {0}\n" \ alive_format = "**Telethon version:** {0}\n" \
"**Python version:** {1}" "**Python version:** {1}"
@@ -51,13 +51,13 @@ async def alive(event):
await event.reply(alive_format.format(version.__version__, python_version())) await event.reply(alive_format.format(version.__version__, python_version()))
@ldr.add("shutdown", owner=True) @ldr.add("shutdown", owner=True, hide_help=True)
async def shutdown(event): async def shutdown(event):
await event.reply("Goodbye…") await event.reply("Goodbye…")
await micro_bot.stop_client() await micro_bot.stop_client()
@ldr.add("blacklist", sudo=True) @ldr.add("blacklist", sudo=True, hide_help=True)
async def add_blacklist(event): async def add_blacklist(event):
user_entity = await get_user(event) user_entity = await get_user(event)
@@ -71,7 +71,7 @@ async def add_blacklist(event):
await event.reply(f"Successfully blacklisted **{userfullname}** (`{userid}`)") await event.reply(f"Successfully blacklisted **{userfullname}** (`{userid}`)")
@ldr.add("unblacklist", sudo=True) @ldr.add("unblacklist", sudo=True, hide_help=True)
async def rem_blacklist(event): async def rem_blacklist(event):
user_entity = await get_user(event) user_entity = await get_user(event)
@@ -85,7 +85,7 @@ async def rem_blacklist(event):
await event.reply(f"Successfully unblacklisted **{userfullname}** (`{userid}`)") await event.reply(f"Successfully unblacklisted **{userfullname}** (`{userid}`)")
@ldr.add("showblacklist", sudo=True) @ldr.add("showblacklist", sudo=True, hide_help=True)
async def show_blacklist(event): async def show_blacklist(event):
blacklist_string = "" blacklist_string = ""
@@ -95,7 +95,7 @@ async def show_blacklist(event):
await event.reply(f"**Blacklisted users:**\n{blacklist_string}") await event.reply(f"**Blacklisted users:**\n{blacklist_string}")
@ldr.add("sudo", owner=True) @ldr.add("sudo", owner=True, hide_help=True)
async def add_sudo(event): async def add_sudo(event):
user_entity = await get_user(event) user_entity = await get_user(event)
@@ -109,7 +109,7 @@ async def add_sudo(event):
await event.reply(f"Successfully sudo'd **{userfullname}** (`{userid}`)") await event.reply(f"Successfully sudo'd **{userfullname}** (`{userid}`)")
@ldr.add("unsudo", owner=True) @ldr.add("unsudo", owner=True, hide_help=True)
async def rem_sudo(event): async def rem_sudo(event):
user_entity = await get_user(event) user_entity = await get_user(event)
@@ -123,7 +123,7 @@ async def rem_sudo(event):
await event.reply(f"Successfully unsudo'd **{userfullname}** (`{userid}`)") await event.reply(f"Successfully unsudo'd **{userfullname}** (`{userid}`)")
@ldr.add("showsudo", sudo=True) @ldr.add("showsudo", sudo=True, hide_help=True)
async def show_sudo(event): async def show_sudo(event):
sudo_string = "" sudo_string = ""

View File

@@ -30,7 +30,20 @@ async def help_cmd(event):
await event.reply(f"**Available commands:**\n{help_string}") await event.reply(f"**Available commands:**\n{help_string}")
@ldr.add("ping") @ldr.add("sudohelp", sudo=True)
async def sudohelp(event):
help_string = ""
for key, value in ldr.help_hidden_dict.items():
help_string += f"\n**{key}**: "
for info in value:
help_string += f"`{info}`, "
help_string = help_string.rstrip(", ")
await event.reply(f"**Available (hidden) commands:**\n{help_string}")
@ldr.add("ping", hide_help=True)
async def ping(event): async def ping(event):
start = time_ns() start = time_ns()
ping_msg = await event.reply("Ping…") ping_msg = await event.reply("Ping…")