Esempio n. 1
0
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()
Esempio n. 2
0
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()
Esempio n. 3
0
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()
Esempio n. 4
0
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()
Esempio n. 5
0
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()
Esempio n. 6
0
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