def get_roles(guild_id, limit_to_joinable=True): cnx.commit() if limit_to_joinable: query = "SELECT * FROM `gssp`.`roles` WHERE `guild_id` = %s AND `is_joinable` = 1" else: query = "SELECT * FROM `gssp`.`roles` WHERE `guild_id` = %s" query = "{query} ORDER BY role_name".format(query=query) cursor.execute(query, (guild_id, )) return cursor.fetchall()
def get_role(guild_id, role_name): cnx.commit() query = "SELECT * FROM `gssp`.`roles` WHERE `role_name` = %s AND `guild_id` = %s" cursor.execute(query, (role_name, guild_id)) members = [] try: a = cursor.fetchall()[0] members += json.loads(a['role_assignees']) except IndexError: return None a['members'] = members return a
async def get_message_count(self, user_id=None): """ Get number of messages sent You can specify user_id to get messages from only one user """ if user_id is None: query = "SELECT COUNT(*) as message_count FROM messages_detailed" cursor_dict.execute(query) else: query = "SELECT COUNT(*) as message_count FROM messages_detailed WHERE user_id = %s" cursor_dict.execute(query, (user_id, )) res = cursor_dict.fetchall()[0] return int(res['message_count'])
async def output_toggle_public_ping(self, ctx): user_settings = get_user(ctx.author.id) if user_settings['ping_public'] == 1: query = "UPDATE `gssp`.`ping_settings` SET `ping_public`='0' WHERE `user_id`='%s';" return_msg = "You will now be pinged over DM" else: query = "UPDATE `gssp`.`ping_settings` SET `ping_public`='1' WHERE `user_id`='%s';" return_msg = "You will now be pinged publicly" cursor.execute(query, (ctx.author.id, )) cnx.commit() await ctx.channel.send(embed=discord.Embed( title="Success", description=return_msg, color=green))
def save_members(self): members_j = json.dumps(self.members) cursor_dict.execute(update_query, (members_j, self.role_id)) cnx.commit()
def get_user(user_id): cnx.commit() # we run this just to make sure we have nothing pending query = "SELECT * FROM gssp.ping_settings WHERE user_id = %s" cursor.execute(query, (user_id, )) return cursor.fetchone()