mirror of
https://github.com/Nick80835/microbot
synced 2025-09-03 16:05:49 +00:00
what the fuck have I done
This commit is contained in:
@@ -12,8 +12,8 @@ from .fixes import inline_photos
|
||||
class CommandHandler():
|
||||
def __init__(self, client, logger, settings, loader):
|
||||
self.username = client.loop.run_until_complete(client.get_me()).username
|
||||
self.pattern_template = "(?is)^{0}{1}(?: |$|_|@{2}(?: |$|_))(.*)"
|
||||
self.inline_pattern_template = "(?is)^{0}(?: |$|_)(.*)"
|
||||
self.pattern_template = "(?is)^{0}({1})(?: |$|_|@{2}(?: |$|_))(.*)"
|
||||
self.inline_pattern_template = "(?is)^({0})(?: |$|_)(.*)"
|
||||
self.raw_pattern_template = "(?is){0}"
|
||||
self.incoming_commands = []
|
||||
self.inline_photo_commands = []
|
||||
@@ -31,11 +31,11 @@ class CommandHandler():
|
||||
|
||||
for value in self.incoming_commands:
|
||||
if value["simple_pattern"]:
|
||||
pattern_match = search(self.inline_pattern_template.format(value["pattern"]), event.raw_text)
|
||||
pattern_match = search(self.inline_pattern_template.format(value["pattern"] + value["pattern_extra"]), event.raw_text)
|
||||
elif value["raw_pattern"]:
|
||||
pattern_match = search(self.raw_pattern_template.format(value["pattern"]), event.raw_text)
|
||||
pattern_match = search(self.raw_pattern_template.format(value["pattern"] + value["pattern_extra"]), event.raw_text)
|
||||
else:
|
||||
pattern_match = search(self.pattern_template.format(f"({prefix})", value["pattern"], self.username), event.raw_text)
|
||||
pattern_match = search(self.pattern_template.format(f"({prefix})", value["pattern"] + value["pattern_extra"], self.username), event.raw_text)
|
||||
|
||||
if pattern_match:
|
||||
if self.is_blacklisted(event):
|
||||
@@ -60,7 +60,8 @@ class CommandHandler():
|
||||
|
||||
event.pattern_match = pattern_match
|
||||
event.args = pattern_match.groups()[-1].strip()
|
||||
event.other_args = pattern_match.groups()[1:-1]
|
||||
event.other_args = pattern_match.groups()[2:-1]
|
||||
event.command = pattern_match.groups()[1]
|
||||
event.extras = value["extras"]
|
||||
|
||||
try:
|
||||
@@ -137,7 +138,8 @@ class CommandHandler():
|
||||
builder = event.builder
|
||||
event.pattern_match = pattern_match
|
||||
event.args = pattern_match.groups()[-1]
|
||||
event.other_args = pattern_match.groups()[:-1]
|
||||
event.other_args = pattern_match.groups()[1:-1]
|
||||
event.command = pattern_match.groups()[0]
|
||||
|
||||
photo_list = await value["function"](event)
|
||||
|
||||
|
@@ -56,6 +56,7 @@ class Loader():
|
||||
|
||||
def add(self, pattern=None, **args):
|
||||
pattern = args.get("pattern", pattern)
|
||||
pattern_extra = args.get("pattern_extra", "")
|
||||
|
||||
def decorator(func):
|
||||
if args.get("hide_help", False):
|
||||
@@ -71,6 +72,7 @@ class Loader():
|
||||
|
||||
self.command_handler.incoming_commands.append({
|
||||
"pattern": pattern,
|
||||
"pattern_extra": pattern_extra,
|
||||
"function": func,
|
||||
"simple_pattern": args.get('simple_pattern', False),
|
||||
"raw_pattern": args.get('raw_pattern', False),
|
||||
@@ -109,7 +111,8 @@ class Loader():
|
||||
self.help_dict[func.__module__.split(".")[-1]] = [pattern]
|
||||
|
||||
self.command_handler.incoming_commands.append({
|
||||
"pattern": pattern + pattern_extra,
|
||||
"pattern": pattern,
|
||||
"pattern_extra": pattern_extra,
|
||||
"function": func,
|
||||
"simple_pattern": args.get('simple_pattern', False),
|
||||
"raw_pattern": args.get('raw_pattern', False),
|
||||
|
@@ -23,10 +23,11 @@ async def danbooru_ping(event):
|
||||
await event.reply(f"Danbooru response time -> **{time_taken_ms}**ms")
|
||||
|
||||
|
||||
@ldr.add("dan(s|x|q|)(f|)", nsfw=True, userlocking=True)
|
||||
@ldr.add_list(["dan", "danx", "danq"], pattern_extra="(f|)", nsfw=True, userlocking=True)
|
||||
@ldr.add("dans", pattern_extra="(f|)", userlocking=True)
|
||||
async def danbooru(event):
|
||||
safety_arg = event.other_args[0]
|
||||
as_file = bool(event.other_args[1])
|
||||
safety_arg = event.command[-1]
|
||||
as_file = bool(event.other_args[0])
|
||||
rating = ""
|
||||
|
||||
if safety_arg == "x":
|
||||
|
@@ -33,7 +33,7 @@ from PIL import Image, ImageEnhance
|
||||
from ubot.micro_bot import ldr
|
||||
|
||||
|
||||
@ldr.add("deepfry(f|)", userlocking=True)
|
||||
@ldr.add("deepfry", pattern_extra="(f|)", userlocking=True)
|
||||
async def deepfryer(event):
|
||||
as_file = bool(event.other_args[0])
|
||||
|
||||
|
@@ -11,7 +11,7 @@ VALID_ENDS = (".mp4", ".jpg", ".jpeg", ".png", ".gif")
|
||||
NSFW_BOARDS = ['aco', 'b', 'bant', 'd', 'e', 'f', 'gif', 'h', 'hc', 'hm', 'hr', 'i', 'ic', 'pol', 'r', 'r9k', 's', 's4s', 'soc', 't', 'trash', 'u', 'wg', 'y']
|
||||
|
||||
|
||||
@ldr.add("4c(f|)", userlocking=True, pass_nsfw=True)
|
||||
@ldr.add("4c", pattern_extra="(f|)", userlocking=True, pass_nsfw=True)
|
||||
async def fourchan(event):
|
||||
if not event.args:
|
||||
await event.reply(f"Syntax: {ldr.prefix()}4c(f|) <board name>")
|
||||
|
@@ -27,10 +27,11 @@ async def danbooru_ping(event):
|
||||
await event.reply(f"Gelbooru response time -> **{time_taken_ms}**ms")
|
||||
|
||||
|
||||
@ldr.add("gel(s|x|q|)(f|)", nsfw=True, userlocking=True)
|
||||
@ldr.add_list(["gel", "gelx", "gelq"], pattern_extra="(f|)", nsfw=True, userlocking=True)
|
||||
@ldr.add("gels", pattern_extra="(f|)", userlocking=True)
|
||||
async def gelbooru(event):
|
||||
safety_arg = event.other_args[0]
|
||||
as_file = bool(event.other_args[1])
|
||||
safety_arg = event.command[-1]
|
||||
as_file = bool(event.other_args[0])
|
||||
rating = ""
|
||||
|
||||
if safety_arg == "x":
|
||||
|
@@ -114,10 +114,10 @@ async def bodyfetcher(event, sub):
|
||||
await event.reply(f"Failed to find any valid content on **r/{sub}**!")
|
||||
|
||||
|
||||
@ldr.add("red(i|t|b)", userlocking=True, pass_nsfw=True)
|
||||
@ldr.add_list(["redi", "redb", "redt"], userlocking=True, pass_nsfw=True)
|
||||
async def redimg(event):
|
||||
sub = event.args.replace(" ", "_")
|
||||
fetch_type = event.other_args[0]
|
||||
fetch_type = event.command[-1]
|
||||
|
||||
if not sub:
|
||||
await event.reply(f"Syntax: {ldr.prefix()}red(i|t|b) <subreddit name>")
|
||||
@@ -151,14 +151,12 @@ async def todayifuckedup(event):
|
||||
await bodyfetcher(event, "TIFU")
|
||||
|
||||
|
||||
@ldr.add("jon(x|)", userlocking=True, pass_nsfw=True)
|
||||
@ldr.add_list(["jon", "jonx"], userlocking=True, pass_nsfw=True)
|
||||
async def imsorryjon(event):
|
||||
if "x" in event.other_args[0]:
|
||||
sub = "ImReallySorryJon"
|
||||
if event.command[-1] == "x":
|
||||
await imagefetcher(event, "ImReallySorryJon")
|
||||
else:
|
||||
sub = "ImSorryJon"
|
||||
|
||||
await imagefetcher(event, sub)
|
||||
await imagefetcher(event, "ImSorryJon")
|
||||
|
||||
|
||||
@ldr.add("tihi", userlocking=True, pass_nsfw=True)
|
||||
|
@@ -24,10 +24,11 @@ async def sankaku_ping(event):
|
||||
await event.reply(f"Sankaku response time -> **{time_taken_ms}**ms")
|
||||
|
||||
|
||||
@ldr.add("san(s|x|q|)(f|)", nsfw=True, userlocking=True)
|
||||
@ldr.add_list(["san", "sanx", "sanq"], pattern_extra="(f|)", nsfw=True, userlocking=True)
|
||||
@ldr.add("sans", pattern_extra="(f|)", userlocking=True)
|
||||
async def sankaku(event):
|
||||
safety_arg = event.other_args[0]
|
||||
as_file = bool(event.other_args[1])
|
||||
safety_arg = event.command[-1]
|
||||
as_file = bool(event.other_args[0])
|
||||
rating = ""
|
||||
|
||||
if safety_arg == "x":
|
||||
|
@@ -66,7 +66,7 @@ async def image_generator(event):
|
||||
return
|
||||
|
||||
|
||||
@ldr.add("pokemon(s|)")
|
||||
@ldr.add("pokemon", pattern_extra="(s|)")
|
||||
async def pokemon_image(event):
|
||||
if not event.args:
|
||||
await event.reply("Specify a Pokémon name!")
|
||||
|
@@ -15,12 +15,13 @@ async def delete_message(event):
|
||||
|
||||
@ldr.add("help")
|
||||
async def help_cmd(event):
|
||||
prefix = ldr.prefix()
|
||||
help_string = ""
|
||||
|
||||
for key, value in ldr.help_dict.items():
|
||||
help_string += f"\n**{key}**: "
|
||||
for info in value:
|
||||
help_string += f"`{info}`, "
|
||||
help_string += f"{prefix}{info}, "
|
||||
help_string = help_string.rstrip(", ")
|
||||
|
||||
await event.reply(f"**Available commands:**\n{help_string}")
|
||||
|
Reference in New Issue
Block a user