From f63de6586b290b4cd961dc84289b0cc79d9a9447 Mon Sep 17 00:00:00 2001 From: Simon Junod Date: Tue, 31 Oct 2023 00:17:09 +0100 Subject: [PATCH] Prefixing channel names --- poetry.lock | 16 +++++++++++++++- pyproject.toml | 1 + run.py | 41 ++++++++++++++++++++++++++++++++++++----- 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index 46a5cee..6f08963 100644 --- a/poetry.lock +++ b/poetry.lock @@ -277,6 +277,20 @@ files = [ {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, ] +[[package]] +name = "emoji" +version = "2.8.0" +description = "Emoji for Python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "emoji-2.8.0-py2.py3-none-any.whl", hash = "sha256:a8468fd836b7ecb6d1eac054c9a591701ce0ccd6c6f7779ad71b66f76664df90"}, + {file = "emoji-2.8.0.tar.gz", hash = "sha256:8d8b5dec3c507444b58890e598fc895fcec022b3f5acb49497c6ccc5208b8b00"}, +] + +[package.extras] +dev = ["coverage", "coveralls", "pytest"] + [[package]] name = "frozenlist" version = "1.4.0" @@ -621,4 +635,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "5b48792862b482a79e3aa47c0bcbd4b0328067319f200a0b9e18135f59185532" +content-hash = "9242538fd34a7c862185523b7db15cde94069c1411cbda62d67ae4e196b5ed27" diff --git a/pyproject.toml b/pyproject.toml index 119d0af..a428588 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,6 +11,7 @@ unidecode = "^1.3.6" requests = "^2.31.0" bs4 = "^0.0.1" nextcord = "^2.5.0" +emoji = "^2.8.0" [build-system] diff --git a/run.py b/run.py index c34bd41..fa1fb57 100755 --- a/run.py +++ b/run.py @@ -1,9 +1,10 @@ -import sys import nextcord import hashlib import re import asyncio import random +import base64 +import emoji from datetime import datetime import cambot.codenames as codenames import cambot.wordle as wordle @@ -70,28 +71,58 @@ async def on_message(message): games_entered = [codenames_game for codenames_game in codenames_games.values() if codenames_game.get_player(message.author)] # Admin commands - print(message.author.name) if message.author.name == "biganon": if regex := re.search(r"^[sS]ay ([0-9]+) (.*)$", content): channel_id = int(regex.group(1)) to_say = regex.group(2) await bot.get_channel(channel_id).send(to_say) - if regex := re.search(r"^wordle targets?$", content_lowercase): + if regex := re.search(r"^[wW]ordle targets?$", content_lowercase): output = "" for wordle_game in wordle_games.values(): output += f"{wordle_game.channel.guild} > {wordle_game.channel.name} : {wordle_game.target}\n" await message.author.send(output) - if regex := re.search(r"^wordle reset ([0-9]+)$", content_lowercase): + if regex := re.search(r"^[wW]ordle reset ([0-9]+)$", content_lowercase): channel_id = int(regex.group(1)) await wordle_games[channel_id].reset() - if regex := re.search(r"^ephemeris$", content_lowercase): + if regex := re.search(r"^[eE]phemeris$", content_lowercase): embed = ephemeris.digest() for channel_id in EPHEMERIS_CHANNEL_IDS: await bot.get_channel(channel_id).send(embed=embed) + if regex := re.search(r"^[dD]ump ([0-9]+)$", content): + guild_id = int(regex.group(1)) + guild = bot.get_guild(guild_id) + string = ",".join(channel.name for channel in guild.text_channels) + b64 = base64.b64encode(string.encode("utf-8")).decode() + await message.author.send(string) + await message.author.send(b64) + + if regex := re.search(r"[lL]oad ([0-9]+) (.*)$", content): + guild_id = int(regex.group(1)) + guild = bot.get_guild(guild_id) + b64 = regex.group(2) + string = base64.b64decode(b64.encode("utf-8")).decode() + names = string.split(",") + if len(names) != len(guild.text_channels): + await message.author.send(f"Erreur : {len(names)} noms fournis, mais {len(guild.text_channels)} canaux trouvés") + return + for idx, channel in enumerate(guild.text_channels): + await channel.edit(name=names[idx]) + + if regex := re.search(r"[pP]refix ([0-9]+) (.*)$", content): + guild_id = int(regex.group(1)) + guild = bot.get_guild(guild_id) + prefix = regex.group(2) + for channel in guild.text_channels: + if emoji.is_emoji(channel.name[0]): + unprefixed = channel.name[1:] + else: + unprefixed = channel.name + await channel.edit(name=prefix+unprefixed) + # Codenames whispers if len(games_entered) == 1: await codenames.process_whisper(games_entered[0], message)