async def Backup(message): args = comms.ParseArguments(message.content) table = args["t"].split('"')[1] backup = GetBackup(table) if (backup == None): await message.channel.send("Tabela inexistente") else: await message.channel.send(f"Backup da tabela {table}", file=File(backup))
async def SetWelcome(message): args = comms.ParseArguments(message.content) text = args["t"].split('"')[1] text = text.replace("¬", "-") db.custom_insert(f"""UPDATE ServerConfigs SET welcome_channel={message.channel.id}, welcome_message='{text}' WHERE id = {message.guild.id} """) await message.channel.send( f"""A partir de agora este é o canal de recepção,com a seguinte mensagem: `{text}`""" )
async def SetAutorole(message): args = comms.ParseArguments(message.content) role_id = int(args["r"]) role = message.guild.get_role(role_id) if (role == None): await message.channel.send("ID inválido") return role_id = int(args["r"]) db.custom_insert(f"""UPDATE ServerConfigs SET role = {role_id} WHERE id = {message.guild.id} """) await message.channel.send( f"A partir de agora todos os novos membros receberão o cargo {role.name}" )
async def UpdateMessages(message): args = comms.ParseArguments(message.content) date = datetime.strptime(args["d"], '%d/%m/%Y').date() if (date) > datetime.now().date(): await message.channel.send( "Não é possível definir a quantidade de mensagens do futuro") return if (int(args["a"]) < 0): await message.channel.send( "Não é possível definir a quantidade de mensagens como negativa") return db.insert_value( "Messages", [message.guild.id, date, args['a']], additional=f"ON CONFLICT(Date,Server) DO UPDATE SET Num = {args['a']}") await message.channel.send( f"O número de mensagens do dia {args['d']} foi atualizado com sucesso para {args['a']}" )
async def getRankByWeek(message, client): args = comms.ParseArguments(message.content) d_ago = 0 points = "messages" if args != None: if ("c" in args.keys()): points = "chars" if ("b" in args.keys()): d_ago = int(args["b"]) if (d_ago) < 0: await message.channel.send("Não há registros do futuro") return date = datetime.now().date() date -= timedelta(days=date.weekday() + (d_ago * 7)) data = db.custom_retrieve(f""" SELECT user_id,{points} FROM Rank WHERE date = '{date}' AND server_id = {message.guild.id} ORDER BY {points} DESC LIMIT 20""") if len(data) == 0: await message.channel.send( f"Não há registro do ranking de {d_ago} semanas atrás") return if (points == "messages"): points = "mensagens" elif (points == "chars"): points = "caracteres" table = GenTableRank(data, message.guild, client) embed = utils.genEmbed( "Ranking", table, descp=f"Ranking de membros por {points} \nenviadas na semana") await message.channel.send(embed=embed, content=None)