diff --git a/ext/libcal.py b/ext/libcal.py index 6f13c5b..141e53d 100644 --- a/ext/libcal.py +++ b/ext/libcal.py @@ -10,7 +10,7 @@ from typing import Optional from lib.config import load_config from lib.gcal import GoogleCalendarAPI from lib.room import Room -from lib.ocr import get_room_data, NoMatchException, get_image_string +from lib.ocr import get_room_data, NoMatchException plugin = lightbulb.Plugin("LibCal") config = load_config() @@ -82,15 +82,8 @@ async def book_error_handler(event: lightbulb.CommandErrorEvent): print("ERROR TYPE:", type(event.exception)) if isinstance(event.exception.__cause__, NoMatchException): embed = hikari.Embed(title="Huh, I can't read that", - description="Could you try another picture?\nI'll send a notice to the bot's maintainer. :)") + description="Could you try another picture?") await event.context.respond(embed=embed) - embed.title = "Image match failed!" - embed.description = f"I failed to find any bookings in the attached image." - embed.add_field("Image text", get_image_string(await event.context.options.img.read())) - embed.set_image(event.context.options.img) - owners = await event.context.bot.fetch_owner_ids() - for user_id in owners: - await (await event.context.bot.rest.fetch_user(user_id)).send(embed) else: embed = hikari.Embed( title="Booking Error", description="Whelp, better luck next time I guess... the images used are attached.") diff --git a/ext/profile.py b/ext/profile.py deleted file mode 100644 index 03e5051..0000000 --- a/ext/profile.py +++ /dev/null @@ -1,39 +0,0 @@ -import hikari -import lightbulb - -plugin = lightbulb.Plugin("ProfilePlugin") - - -@plugin.command -@lightbulb.option("img", "image to set as new avatar", type=hikari.Attachment, required=True) -@lightbulb.add_checks(lightbulb.owner_only) -@lightbulb.command("avatar", "set the bot avatar.", ephemeral=True) -@lightbulb.implements(lightbulb.SlashCommand) -async def set_avatar(ctx: lightbulb.Context) -> None: - await ctx.bot.rest.edit_my_user(avatar=ctx.options.img) - embed = hikari.Embed(title="New avatar set!") - embed.set_image(ctx.options.img) - await ctx.respond(embed) - - -@plugin.command -@lightbulb.option("text", "text to set as custom status", type=str, required=True) -@lightbulb.option("type", "type of status, 0 is Playing, 1 is Watching, 2 is Streaming, 3 is Listening, 4 is Competing", type=int, default=0) -@lightbulb.add_checks(lightbulb.owner_only) -@lightbulb.command("status", "set the bot status.", ephemeral=True) -@lightbulb.implements(lightbulb.SlashCommand) -async def set_status(ctx: lightbulb.Context) -> None: - choices = [hikari.ActivityType.PLAYING, hikari.ActivityType.WATCHING, - hikari.ActivityType.STREAMING, hikari.ActivityType.LISTENING, hikari.ActivityType.COMPETING] - await ctx.bot.update_presence(activity=hikari.Activity(name=ctx.options.text, type=choices[ctx.options.type])) - embed = hikari.Embed(title="New status set!", - description=f"New Status: {ctx.options.text}") - await ctx.respond(embed) - - -def load(bot: lightbulb.BotApp): - bot.add_plugin(plugin) - - -def unload(bot: lightbulb.BotApp): - bot.remove_plugin(plugin) diff --git a/lib/ocr.py b/lib/ocr.py index 9bcaa85..343f66e 100644 --- a/lib/ocr.py +++ b/lib/ocr.py @@ -14,10 +14,10 @@ __all__ = ["get_room_data"] config = load_config() -RE_STRING = re.compile( # https://regex101.com/r/OkWfkC/1 +RE_STRING = re.compile( # https://regex101.com/r/ELsqrO/1 r"(L-[0-9]{4}): " # room number (group 1) # time-slot (group 2,3,4 - group 5,6,7) - r"([1-9]{1,2}):([0,3]{2})(am|pm) - ([1-9]{1,2}):([0,3]{2})(am|pm), " + r"([1-12]{1,2}):([0,3]{2})(am|pm) - ([1-12]{1,2}):([0,3]{2})(am|pm), " # weekday (group 8) r"(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), " # month (group 9) @@ -67,7 +67,7 @@ def get_room_data(img: bytes) -> list[Room]: rooms: list[Room] = [] start_time: datetime | None = None end_time: datetime | None = None - img_string = get_image_string(img) + img_string = image_to_string(Image.open(BytesIO(img))) img_string = correct_newlines(img_string) img_string = correct_commas(img_string) matches = re.finditer(RE_STRING, img_string) @@ -85,9 +85,3 @@ def get_room_data(img: bytes) -> list[Room]: if len(rooms) == 0: raise NoMatchException return rooms - -def get_image_string(img: bytes) -> str: - img_string = image_to_string(Image.open(BytesIO(img))) - img_string = correct_newlines(img_string) - img_string = correct_commas(img_string) - return img_string \ No newline at end of file