def add_user(arg_guild, arg_user): # Prep session session = Session() guild = session.query(Guild).filter(Guild.guild_id == arg_guild.id).first() new_user = User(arg_user.name, arg_user.id) guild.users.append(new_user) session.add(new_user) session.commit() session.close()
def add_channel(arg_guild_id, arg_channel): session = Session() guild = session.query(Guild).filter(Guild.guild_id == arg_guild_id).first() # Check if channel already exists for guild if sum(str(x.channel_id) == str(arg_channel.id) for x in guild.channels) is 0: # Create new channel object for db new_channel = Channel(arg_channel.id) guild.channels.append(new_channel) session.add(new_channel) session.commit() session.close()
def add_role(arg_guild_id, arg_role, arg_message_req, arg_point_req, arg_karma_req, arg_token_req): session = Session() guild = session.query(Guild).filter(Guild.guild_id == arg_guild_id).first() # Check if role already exists for guild if sum(str(x.role_id) == str(arg_role.id) for x in guild.roles) is 0: # Create new role object for db new_role = Role(arg_role.id, arg_message_req, arg_point_req, arg_karma_req, arg_token_req) guild.roles.append(new_role) session.add(new_role) session.commit() session.close()
def guild_add_users(arg_guild): # Prep session session = Session() users = arg_guild.members guild = session.query(Guild).filter(Guild.guild_id == arg_guild.id).first() # Create new users and add them to guild for user in users: if not user.bot: # Check if user already exists for guild if sum(str(x.user_id) == str(user.id) for x in guild.users) is 0: new_user = User(user.name, user.id) guild.users.append(new_user) session.add(new_user) session.commit() session.close()
def guild_add(arg_guild): session = Session() guilds = session.query(Guild).all() # If new guild if sum(str(x.guild_id) == str(arg_guild.id) for x in guilds) is 0: new_guild = Guild(arg_guild.name, arg_guild.id) session.add(new_guild) # If guild still attached (Matched against bot id) elif sum(int(x.id) == cfg.bot_id for x in arg_guild.members) is 1: guild = session.query(Guild).filter( Guild.guild_id == arg_guild.id).first() guild.attached = True # If guild left while bot offline else: guild = session.query(Guild).filter( Guild.guild_id == arg_guild.id).first() guild.attached = False session.commit() session.close()
def set_karma_event(arg_channel, arg_user_giving, arg_user_receiving, arg_guild_id): session = Session() # Retrieve required data guild = session.query(Guild).filter(Guild.guild_id == arg_guild_id).first() giving_user = next( (x for x in guild.users if int(x.user_id) == int(arg_user_giving.id)), None) receiving_user = next( (x for x in guild.users if int(x.user_id) == int(arg_user_receiving.id)), None) # Check if pre-existing matching karma event event_check = session.query(KarmaEvents).filter( (KarmaEvents.user_giving_id == giving_user.id) & (KarmaEvents.user_receiving_id == receiving_user.id)).order_by( desc(KarmaEvents.datetime)).first() if event_check: # The event already exists, check datetime if event_check.datetime != datetime.today().date(): session.add( KarmaEvents(giving_user.id, receiving_user.id, arg_channel.id)) check = True else: check = False else: # The event doesn't exist, make a new one! session.add( KarmaEvents( giving_user.id, receiving_user.id, arg_channel.id, )) check = True session.commit() session.close() return check