async def grant_deny_role_to_member(role_mapping, member, balances): """ Determine if the rally_id and balance for a role is still valid for a particular member Update status in database. Parameters __________ channel_mapping (list) - list of information for the channel mapped to the member member (discord.Member) - The discord member to check balances (list) - The amount allocated to this member per coin """ rally_id = data.get_rally_id(member.id) if rally_id is None or balances is None: return role_to_assign = get(member.guild.roles, name=role_mapping[data.ROLE_NAME_KEY]) if (rally_api.find_balance_of_coin(role_mapping[data.COIN_KIND_KEY], balances) >= role_mapping[data.REQUIRED_BALANCE_KEY]): if role_to_assign is not None: await member.add_roles(role_to_assign) print("Assigned role to member") else: print("Can't find role") print(role_mapping["role"]) else: if role_to_assign in member.roles: await member.remove_roles(role_to_assign) print("Removed role to member")
async def grant_deny_channel_to_member(channel_mapping, member, balances): print("Checking channel") rally_id = data.get_rally_id(member.id) if rally_id is None: return matched_channels = [ channel for channel in member.guild.channels if channel.name == channel_mapping[data.CHANNEL_NAME_KEY] ] if len(matched_channels) == 0: return channel_to_assign = matched_channels[0] if channel_to_assign is not None: if ( rally_api.find_balance_of_coin( channel_mapping[data.COIN_KIND_KEY], balances ) >= channel_mapping[data.REQUIRED_BALANCE_KEY] ): perms = channel_to_assign.overwrites_for(member) perms.send_messages = True perms.read_messages = True perms.read_message_history = True await channel_to_assign.set_permissions(member, overwrite=perms) print("Assigned channel to member") else: perms = channel_to_assign.overwrites_for(member) perms.send_messages = False perms.read_messages = False perms.read_message_history = False await channel_to_assign.set_permissions(member, overwrite=perms) print("Removed channel to member") else: print("Channel not found")
async def grant_deny_role_to_member(role_mapping, member, balances): rally_id = data.get_rally_id(member.id) if rally_id is None: return role_to_assign = get(member.guild.roles, name=role_mapping[data.ROLE_NAME_KEY]) print("Checking for coin " + role_mapping[data.COIN_KIND_KEY]) print(rally_api.find_balance_of_coin(role_mapping[data.COIN_KIND_KEY], balances)) if ( rally_api.find_balance_of_coin(role_mapping[data.COIN_KIND_KEY], balances) >= role_mapping[data.REQUIRED_BALANCE_KEY] ): if role_to_assign is not None: await member.add_roles(role_to_assign) print("Assigned role to member") else: print("Can't find role") print(role_mapping["role"]) else: if role_to_assign in member.roles: await member.remove_roles(role_to_assign) print("Removed role to member")
async def grant_deny_channel_to_member(channel_mapping, member, balances): """ Determine if the rally_id and balance for a channel is still valid for a particular member Update status in database. Parameters __________ channel_mapping (list) - list of information for the channel mapped to the member member (discord.Member) - The discord member to check balances (list) - The amount of coin allocated to this member per coin """ print("Checking channel") rally_id = data.get_rally_id(member.id) if rally_id is None or balances is None: return matched_channels = [ channel for channel in member.guild.channels if channel.name == channel_mapping[data.CHANNEL_NAME_KEY] ] if len(matched_channels) == 0: return channel_to_assign = matched_channels[0] if channel_to_assign is not None: if (rally_api.find_balance_of_coin(channel_mapping[data.COIN_KIND_KEY], balances) >= channel_mapping[data.REQUIRED_BALANCE_KEY]): perms = channel_to_assign.overwrites_for(member) perms.send_messages = True perms.read_messages = True perms.read_message_history = True await channel_to_assign.set_permissions(member, overwrite=perms) print("Assigned channel to member") else: perms = channel_to_assign.overwrites_for(member) perms.send_messages = False perms.read_messages = False perms.read_message_history = False await channel_to_assign.set_permissions(member, overwrite=perms) print("Removed channel to member") else: print("Channel not found")