diff --git a/Makefile b/Makefile deleted file mode 100644 index 926a23b..0000000 --- a/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -init: - pip install -r requirements.txt - -install: - mkdir logs - cp jeevesbot/env.py.dist jeevesbot/env.py - cp jeevesbot/secret.json.dist jeevesbot/secret.json - -clearlog: - rm logs/jeeves.log* - -clean: - rm logs/jeeves.log* - rm jeevesbot/env.py - rm jeevesbot/secret.json - rm -rf cogs/__pycache__/ - rm -rf jeevesbot/__pycache__/ - rm -rf __pycache__/ \ No newline at end of file diff --git a/README.md b/README.md index 7770d40..f27abaf 100644 --- a/README.md +++ b/README.md @@ -1 +1,10 @@ # discord-jeeves + +## Installation +- Clone this repository to a directory you want the bot to run from +- `pip3 install -r requirements.txt` +- Copy `jeevesbot/env.py.dist` to `jeevesbot/env.py` and change the variables. +- Copy `jeevesbot/secret.json.dist` to `jeevesbot/secret.json` and add your Google Drive API secret.json +- `cp scripts/jeeves.service /etc/systemd/system/jeeves.service` and change the variables to suit your environment. +- `systemctl daemon-reload` +- `systemctl start jeeves.service` \ No newline at end of file diff --git a/cogs/admin.py b/cogs/admin.py index ae31731..1f5ea92 100644 --- a/cogs/admin.py +++ b/cogs/admin.py @@ -9,9 +9,6 @@ from discord import User, errors, TextChannel, Forbidden log = getLogger(__name__) -embed = discord.Embed() - - class Admin(commands.Cog): """ Admin Commands, Use at own risk. """ def __init__(self, bot): diff --git a/cogs/flair.py b/cogs/flair.py deleted file mode 100644 index 15b92c5..0000000 --- a/cogs/flair.py +++ /dev/null @@ -1,65 +0,0 @@ -import discord -from discord.ext import commands -from logging import getLogger -from jeevesbot import env - -# setup logging -log = getLogger(__name__) -e = discord.Embed() - - -class Flair(commands.Cog): - """ This part of the bot is responsible for giving users roles! """ - def __init__(self, bot): - self.bot = bot - self.message_id = 1084937456819908679 - self.reactions = { - '1️⃣' : env.FLAIRROLES[0], - '2️⃣' : env.FLAIRROLES[1], - '3️⃣' : env.FLAIRROLES[2], - '4️⃣' : env.FLAIRROLES[3], - '5️⃣' : env.FLAIRROLES[4], - '6️⃣' : env.FLAIRROLES[5], - '👍' : env.FLAIRROLES[6], - '👎' : env.FLAIRROLES[7], - '🔞' : env.FLAIRROLES[8], - } - - - @commands.Cog.listener() - async def on_raw_reaction_add(self, payload): - try: - if payload.message_id == self.message_id and str(payload.emoji) in self.reactions: - guild = self.bot.get_guild(payload.guild_id) - member = guild.get_member(payload.user_id) - role_id = self.reactions[str(payload.emoji)] - role = guild.get_role(role_id) - flairrole = guild.get_role(env.FLAIRROLE[0]) - await member.add_roles(flairrole) - await member.add_roles(role) - log.info(f'Added role "{role}" to {member}') - except: - log.debug("Reaction not found.") - - - @commands.Cog.listener() - async def on_raw_reaction_remove(self, payload): - try: - if payload.message_id == self.message_id and str(payload.emoji) in self.reactions: - guild = self.bot.get_guild(payload.guild_id) - member = guild.get_member(payload.user_id) - role_id = self.reactions[str(payload.emoji)] - role = guild.get_role(role_id) - await member.remove_roles(role) - log.info(f'Removed role "{role}" from {member}') - except: - log.debug("Could not remove role") - - - @commands.Cog.listener() - async def on_ready(self): - log.info(f'module active') - - -async def setup(bot): - await bot.add_cog(Flair(bot)) diff --git a/cogs/setup.py b/cogs/setup.py deleted file mode 100644 index 9cadaa3..0000000 --- a/cogs/setup.py +++ /dev/null @@ -1,63 +0,0 @@ -import discord -from discord.ext import commands -from logging import getLogger -from jeevesbot import env - - -# setup logging -log = getLogger(__name__) - -embed = discord.Embed() - -class BotSetup(commands.Cog): - """ Admin Commands, Use at own risk. """ - def __init__(self, bot): - self.bot = bot - self.botchannel = int(env.BOTCHANNEL[0]) - - - @commands.command(hidden=True) - @commands.is_owner() - async def flairsetup(self, ctx): - """ Setup reaction post as embed. """ - await ctx.message.delete() - channel_id = ctx.channel.id - if (channel_id) == (self.botchannel): - embed = discord.Embed(title="Kies je rollen!", - description="Klik op de emoji onder het bericht om de rol te krijgen.") - embed.add_field(name="", value="", inline=False) - embed.add_field(name="Voornaamwoorden:", value="", inline=False) - embed.add_field(name=":one:", value="hij/hem") - embed.add_field(name=":two:", value="zij/haar") - embed.add_field(name=":three:", value="hen/hun") - embed.add_field(name=":four:", value="die/hun") - embed.add_field(name=":five:", value="die/diens") - embed.add_field(name=":six:", value="iedere/all") - embed.add_field(name="Sta je open voor Direct Messages van andere serverleden?", value="", inline=False) - embed.add_field(name=":thumbsup:", value="DM: ja") - embed.add_field(name=":thumbsdown:", value="DM: nee") - embed.add_field(name="Rollen voor toegang tot opt-in kanalen.", value="", inline=False) - embed.add_field(name=":underage:", value="serieuze-onderwerpen") - embed.set_footer(text="Mis je een voornaamwoord of heb je ideeën voor een andere rol? Laat het de mods weten in de #ideeënbus!\nJe kan zelf je rollen verwijderen door opnieuw op de emoji te drukken.") - message = await ctx.send(embed=embed) - await message.add_reaction("1️⃣") - await message.add_reaction("2️⃣") - await message.add_reaction("3️⃣") - await message.add_reaction("4️⃣") - await message.add_reaction("5️⃣") - await message.add_reaction("6️⃣") - await message.add_reaction("👍") - await message.add_reaction("👎") - await message.add_reaction("🔞") - log.warn(f'{ctx.message.author} reset the flair embed, new message_id = {message.id}') - else: - log.warn(f'{ctx.message.author} tried setting up the flair in the wrong channel') - - - @commands.Cog.listener() - async def on_ready(self): - log.info(f'module active') - - -async def setup(bot): - await bot.add_cog(BotSetup(bot)) \ No newline at end of file diff --git a/help/adminhelp.md b/help/adminhelp.md index a129657..80cefbe 100644 --- a/help/adminhelp.md +++ b/help/adminhelp.md @@ -14,9 +14,4 @@ All purge commands also delete their own message. --- -`!flairsetup` - Can be used to reset the flair embed for Jeeves. Needs manual steps to fix the bot giving out roles. Don't use unless you know what you're doing. - ---- - *To easily copy IDs of discord items, turn on Developer Mode in Advanced settings in your profile. After this, you can right click on almost all items in discord to get the "Copy ID" option.* \ No newline at end of file diff --git a/help/info.md b/help/info.md index da4a574..cf96c08 100644 --- a/help/info.md +++ b/help/info.md @@ -1,6 +1,5 @@ ** GIFs ** -** Flair ** ** Extra informatie voor het !roll commando ** diff --git a/scripts/jeeves.service b/scripts/jeeves.service new file mode 100644 index 0000000..b87e463 --- /dev/null +++ b/scripts/jeeves.service @@ -0,0 +1,12 @@ +[Unit] +Description=Jeeves Discord Bot +After=network.target + +[Service] +User= +WorkingDirectory=/path/to/bot/directory +ExecStart=/usr/bin/python3 /path/to/bot/directory/bot.py +Restart=always + +[Install] +WantedBy=multi-user.target \ No newline at end of file