turned it into a cog

made admin id a single list of ids now
This commit is contained in:
phixxy 2024-01-24 23:43:43 -08:00
parent 97dfc90d75
commit fd68dd1718

View file

@ -2,60 +2,56 @@
import os import os
import sys import sys
import subprocess import subprocess
import asyncssh
from discord.ext import commands from discord.ext import commands
async def upload_sftp(local_filename, server_folder, server_filename): class Admin(commands.Cog):
remotepath = server_folder + server_filename
async with asyncssh.connect(os.getenv('ftp_server'), username=os.getenv('ftp_username'), password=os.getenv('ftp_password')) as conn:
async with conn.start_sftp_client() as sftp:
await sftp.put(local_filename, remotepath=remotepath)
@commands.command( def __init__(self, bot):
description="Kill", self.bot = bot
help="Kills the bot in event of an emergency. Only special users can do this! Usage: !kill", self.admin_ids = [242018983241318410]
brief="Kill the bot",
hidden=True
)
async def kill(ctx):
"Kills the bot"
if ctx.author.id == 242018983241318410:
exit()
else:
await ctx.channel.send("You don't have permission to do that.")
@commands.command( @commands.command(
description="Reset", description="Kill",
help="Resets the bot in event of an emergency. Only special users can do this! Usage: !reset", help="Kills the bot in event of an emergency. Only special users can do this! Usage: !kill",
brief="Reset the bot", brief="Kill the bot",
hidden=True hidden=True
) )
async def reset(ctx): async def kill(self, ctx):
if ctx.author.id == 242018983241318410: "Kills the bot"
python = sys.executable if ctx.author.id in self.admin_ids:
os.execl(python, python, *sys.argv) exit()
else:
await ctx.channel.send("You don't have permission to do that.")
@commands.command(
description="Update",
help="This will update sparkytron to the most recent version on github. Only privileged users can run this command! Usage: !update",
brief="Runs git pull",
hidden=True
)
async def update(ctx):
if ctx.author.id == 242018983241318410:
output = subprocess.run(["git","pull"],capture_output=True)
if output.stderr:
await ctx.send("Update Attempted")
await ctx.send(output.stderr.decode('utf-8'))
else: else:
await ctx.send(output.stdout.decode('utf-8')) await ctx.channel.send("You don't have permission to do that.")
else:
await ctx.send("You don't have permission to do this.") @commands.command(
description="Reset",
help="Resets the bot in event of an emergency. Only special users can do this! Usage: !reset",
brief="Reset the bot",
hidden=True
)
async def reset(self, ctx):
if ctx.author.id in self.admin_ids:
python = sys.executable
os.execl(python, python, *sys.argv)
else:
await ctx.channel.send("You don't have permission to do that.")
@commands.command(
description="Update",
help="This will update sparkytron to the most recent version on github. Only privileged users can run this command! Usage: !update",
brief="Runs git pull",
hidden=True
)
async def update(self, ctx):
if ctx.author.id in self.admin_ids:
output = subprocess.run(["git","pull"],capture_output=True)
if output.stderr:
await ctx.send("Update Attempted")
await ctx.send(output.stderr.decode('utf-8'))
else:
await ctx.send(output.stdout.decode('utf-8'))
else:
await ctx.send("You don't have permission to do this.")
async def setup(bot): async def setup(bot):
bot.add_command(update) await bot.add_cog(Admin(bot))
bot.add_command(reset)
bot.add_command(kill)