mirror of
https://github.com/zoriya/Nemo.git
synced 2025-12-06 02:46:10 +00:00
Finishing the event creation
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
.idea/
|
.idea/
|
||||||
venv/
|
venv/
|
||||||
__pycache__/
|
__pycache__/
|
||||||
|
run.sh
|
||||||
@@ -58,5 +58,5 @@ SETUP_MSG = """**Pour finaliser la création de l'event, faite l'une des command
|
|||||||
Ouvrir l'event a tous le monde:
|
Ouvrir l'event a tous le monde:
|
||||||
```!open [message]```
|
```!open [message]```
|
||||||
Faire un event privé et inviter les personnes individuellement:
|
Faire un event privé et inviter les personnes individuellement:
|
||||||
```!private```");
|
```!private```
|
||||||
"""
|
"""
|
||||||
8
main.py
8
main.py
@@ -40,12 +40,12 @@ async def help_msg(channel: discord.TextChannel):
|
|||||||
|
|
||||||
@nemo.reaction(lambda reaction, member: reaction.message.author.bot and config.CREATE_KEY in reaction.message.content)
|
@nemo.reaction(lambda reaction, member: reaction.message.author.bot and config.CREATE_KEY in reaction.message.content)
|
||||||
async def create_event(reaction: discord.Reaction, message: discord.Message, member: discord.Member, guild: discord.Guild, **_):
|
async def create_event(reaction: discord.Reaction, message: discord.Message, member: discord.Member, guild: discord.Guild, **_):
|
||||||
list_msg: discord.Message = next(x async for x in message.channel.history() if config.LIST_KEY in x.content)
|
list_msg: discord.Message = [x async for x in message.channel.history() if config.LIST_KEY in x.content][0]
|
||||||
index = get_new_event_index(list_msg)
|
index = get_new_event_index(list_msg)
|
||||||
await edit_event_status(index, config.CONFIGURING_EVENT, list_msg)
|
await edit_event_status(index, config.CONFIGURING_EVENT.replace("@User", f"<@{member.id}>"), list_msg)
|
||||||
await reaction.remove(member)
|
await reaction.remove(member)
|
||||||
|
|
||||||
org_role = await guild.create_role(name=f"{config.ORGANIZER_PREFIX}{index}", color=discord.Color.purple)
|
org_role = await guild.create_role(name=f"{config.ORGANIZER_PREFIX}{index}", color=discord.Color.purple())
|
||||||
await member.add_roles(org_role)
|
await member.add_roles(org_role)
|
||||||
user_role = await guild.create_role(name=f"{config.PARTICIPANT_PREFIX}{index}")
|
user_role = await guild.create_role(name=f"{config.PARTICIPANT_PREFIX}{index}")
|
||||||
await member.add_roles(user_role)
|
await member.add_roles(user_role)
|
||||||
@@ -54,7 +54,7 @@ async def create_event(reaction: discord.Reaction, message: discord.Message, mem
|
|||||||
guild.me: discord.PermissionOverwrite(read_messages=True),
|
guild.me: discord.PermissionOverwrite(read_messages=True),
|
||||||
org_role: discord.PermissionOverwrite(read_messages=True, manage_messages=True),
|
org_role: discord.PermissionOverwrite(read_messages=True, manage_messages=True),
|
||||||
user_role: discord.PermissionOverwrite(read_messages=True)
|
user_role: discord.PermissionOverwrite(read_messages=True)
|
||||||
}, category=next(x.name == config.CATEGORY_NAME and x.type == discord.ChannelType.category for x in guild.channels))
|
}, category=message.channel.category)
|
||||||
await list_msg.add_reaction(number_emojis[index - 1])
|
await list_msg.add_reaction(number_emojis[index - 1])
|
||||||
await channel.send(config.SETUP_MSG)
|
await channel.send(config.SETUP_MSG)
|
||||||
|
|
||||||
|
|||||||
14
nemo.py
14
nemo.py
@@ -39,11 +39,21 @@ class Nemo(discord.Client):
|
|||||||
if handler is None:
|
if handler is None:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
await handler[1](reaction=reaction, member=member, message=reaction.message)
|
await handler[1](reaction=reaction, member=member, message=reaction.message, guild=reaction.message.guild)
|
||||||
except Exception:
|
except Exception:
|
||||||
await reaction.message.channel.send(f"Fatal error: {traceback.format_exc()}")
|
await reaction.message.channel.send(f"Fatal error: {traceback.format_exc()}")
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
async def on_raw_reaction_add(self, payload: discord.RawReactionActionEvent):
|
||||||
|
if payload.event_type != "REACTION_ADD":
|
||||||
|
return
|
||||||
|
|
||||||
|
channel: discord.TextChannel = self.get_channel(payload.channel_id)
|
||||||
|
message: discord.Message = await channel.fetch_message(payload.message_id)
|
||||||
|
key = f"{payload.emoji.name}:{payload.emoji.id}" if payload.emoji.id else payload.emoji.name
|
||||||
|
reaction = discord.utils.get(message.reactions, emoji=key)
|
||||||
|
await self.on_reaction_add(reaction, payload.member)
|
||||||
|
|
||||||
def reaction(self, predicate: Callable[[discord.Reaction, discord.Member], bool]):
|
def reaction(self, predicate: Callable[[discord.Reaction, discord.Member], bool]):
|
||||||
def wrapper(f):
|
def wrapper(f):
|
||||||
self.reactions.append((predicate, f))
|
self.reactions.append((predicate, f))
|
||||||
|
|||||||
Reference in New Issue
Block a user