Added nise-discord bot, for now it only adds a role when users react in the #changelog channel
This commit is contained in:
parent
6d2b030383
commit
08f2346836
11
nise-discord/.dockerignore
Normal file
11
nise-discord/.dockerignore
Normal file
@ -0,0 +1,11 @@
|
||||
venv/
|
||||
.idea/
|
||||
*.pyc
|
||||
*.log
|
||||
.git/
|
||||
.pytest_cache/
|
||||
cache/
|
||||
.env
|
||||
image.png
|
||||
text_image.png
|
||||
modified_prefectures.svg
|
||||
2
nise-discord/Build.sh
Executable file
2
nise-discord/Build.sh
Executable file
@ -0,0 +1,2 @@
|
||||
docker build . -t git.gengo.tech/nuff/nise-discord:latest
|
||||
docker push git.gengo.tech/nuff/nise-discord:latest
|
||||
22
nise-discord/Dockerfile
Normal file
22
nise-discord/Dockerfile
Normal file
@ -0,0 +1,22 @@
|
||||
# Use the specified Python base image
|
||||
FROM python:3.11-slim
|
||||
|
||||
ENV version=2
|
||||
|
||||
# Set a working directory
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt update
|
||||
|
||||
# Copy only the requirements.txt file first to leverage Docker cache
|
||||
COPY requirements.txt ./requirements.txt
|
||||
|
||||
# Upgrade pip and install required python packages
|
||||
RUN pip3 install --upgrade pip && \
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
# Copy only the src directory, if you're sure all your code resides there
|
||||
COPY . ./src/
|
||||
|
||||
# Set the command to run your application
|
||||
CMD ["python", "src/bot.py"]
|
||||
79
nise-discord/bot.py
Normal file
79
nise-discord/bot.py
Normal file
@ -0,0 +1,79 @@
|
||||
import asyncio
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
|
||||
|
||||
def setup_logging() -> None:
|
||||
logging.getLogger("discord").setLevel(logging.INFO)
|
||||
logging.getLogger("discord.http").setLevel(logging.WARNING)
|
||||
|
||||
log = logging.getLogger()
|
||||
log.setLevel(logging.INFO)
|
||||
|
||||
log_format = logging.Formatter("%(asctime)s %(levelname)s - %(message)s", '%Y-%m-%d %H:%M:%S')
|
||||
|
||||
stdout_handler = logging.StreamHandler(sys.stdout)
|
||||
stdout_handler.setFormatter(log_format)
|
||||
log.addHandler(stdout_handler)
|
||||
|
||||
log.info('Done setting up logging...')
|
||||
|
||||
|
||||
class NiseBot(commands.Bot):
|
||||
def __init__(self, bot_loop):
|
||||
intents = discord.Intents.default()
|
||||
intents.members = True
|
||||
super().__init__(
|
||||
command_prefix='!',
|
||||
help_command=None,
|
||||
intents=intents
|
||||
)
|
||||
|
||||
self.loop = bot_loop
|
||||
self.log = logging.getLogger()
|
||||
|
||||
self.reaction_channel_id = 1203671883728293999
|
||||
self.reaction_emoji_id = 1211660688947417138
|
||||
|
||||
async def on_ready(self):
|
||||
self.log.info('Bot loaded!')
|
||||
|
||||
def run(self):
|
||||
super().run(os.getenv("DISCORD_TOKEN"), reconnect=True)
|
||||
|
||||
async def on_raw_reaction_add(self, payload):
|
||||
if payload.channel_id != self.reaction_channel_id or payload.emoji.id != self.reaction_emoji_id:
|
||||
return
|
||||
|
||||
role = discord.utils.get(payload.member.guild.roles, name="ping-when-update")
|
||||
await payload.member.add_roles(role)
|
||||
|
||||
async def on_raw_reaction_remove(self, payload):
|
||||
if payload.channel_id != self.reaction_channel_id or payload.emoji.id != self.reaction_emoji_id:
|
||||
return
|
||||
|
||||
guild_id = payload.guild_id
|
||||
guild = discord.utils.find(lambda g: g.id == guild_id, self.guilds)
|
||||
|
||||
user_id = payload.user_id
|
||||
member = guild.get_member(user_id)
|
||||
|
||||
role = discord.utils.get(guild.roles, name="ping-when-update")
|
||||
await member.remove_roles(role)
|
||||
|
||||
async def on_command_error(self, ctx, error):
|
||||
if isinstance(error, commands.CommandOnCooldown):
|
||||
await ctx.send('This command is currently on cooldown. Please try again in a second!')
|
||||
else:
|
||||
self.log.error(error)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
setup_logging()
|
||||
loop = asyncio.get_event_loop()
|
||||
bot = NiseBot(bot_loop=loop)
|
||||
bot.run()
|
||||
2
nise-discord/requirements.txt
Normal file
2
nise-discord/requirements.txt
Normal file
@ -0,0 +1,2 @@
|
||||
wheel
|
||||
py-cord==2.4.1
|
||||
Loading…
Reference in New Issue
Block a user