51 lines
2.5 KiB
Python
51 lines
2.5 KiB
Python
from discord.ext import commands
|
|
import discord
|
|
import pymysql
|
|
import asyncio
|
|
|
|
password = open("../../../../sqlPass.txt", 'r')
|
|
|
|
con = pymysql.connect(host='localhost',
|
|
user='Bot',
|
|
password=f'{password}',
|
|
db='serverIDs',
|
|
charset='utf8mb4',
|
|
cursorclass=pymysql.cursors.DictCursor)
|
|
|
|
|
|
class NewServer(commands.Cog):
|
|
def __init__(self, client):
|
|
self.client = client
|
|
|
|
@commands.Cog.listener()
|
|
async def on_message(self, ctx):
|
|
if isinstance(ctx.channel, discord.DMChannel):
|
|
if ctx.content.lower() == "add server":
|
|
await ctx.channel.send("Send an invite to the server")
|
|
invite = await self.client.wait_for("message", check=lambda message: message.author == ctx.author and message.channel == ctx.channel)
|
|
is_invite = invite.content.find("discord.gg")
|
|
if is_invite > 0:
|
|
invite = await self.client.fetch_invite(invite.content, with_counts=True)
|
|
print(invite.max_uses)
|
|
if not (invite.max_uses is None):
|
|
await ctx.channel.send("Please send a invite with no max uses")
|
|
elif invite.inviter != ctx.author:
|
|
await ctx.channel.send("Please be the creator of the invite")
|
|
elif invite.inviter != invite.guild.owner:
|
|
await ctx.channel.send("Please be the owner of this server")
|
|
else:
|
|
await ctx.channel.send("Please send a description of the server")
|
|
description = await self.client.wait_for("message", check=lambda message: message.author == ctx.author and message.channel == ctx.channel)
|
|
await ctx.channel.send("Please send a list of tags separated by a comma(,) no spaces")
|
|
tags = await self.client.wait_for("message", check=lambda message: message.author == ctx.author and message.channel == ctx.channel)
|
|
with con:
|
|
cur = con.cursor()
|
|
cur.execute(f"INSERT INTO servers (ID, name, tags, invite, description) VALUES ({invite.guild.id},'{invite.guild.name}','{tags.content}','{invite.code}','{description.content}')")
|
|
else:
|
|
await ctx.channel.send("Invalid invite")
|
|
await self.client.process_commands(ctx)
|
|
|
|
|
|
def setup(client):
|
|
client.add_cog(NewServer(client))
|