handle the new global names

This commit is contained in:
Matt Venn
2023-09-11 15:30:05 +02:00
parent 90035c4525
commit 3aa985f89b
+28 -11
View File
@@ -47,28 +47,45 @@ async def on_ready():
stream = open(info_file, 'r')
data = yaml.load(stream, Loader=yaml.FullLoader)
stream.close()
dname = data['documentation']
if 'discord' in dname:
dname = dname['discord']
parts = dname.split('#')
if len(parts) != 2 or len(parts[0]) == 0 or not re.match('^[0-9]{4}$', parts[1]):
print(f'Invalid format for discord username {dname} in project {project}. Skipping.')
else:
participants.append({'name': parts[0], 'discriminator': parts[1]})
if 'discord' in data['documentation']:
dname = data['documentation']['discord']
if len(dname):
if '#' in dname:
dname = dname.split('#')[0]
# print(f'adding {dname}')
participants.append(dname)
else:
print(f'Project {project} has no discord username listed. Skipping.')
except Exception as ex:
print(f'Error parsing info.yaml for project {project}. Skipping.')
print(f'Error was: {ex}')
members = []
for p in participants:
for m in server.members:
a = [d for d in participants if d['name'] == m.name and d['discriminator'] == m.discriminator]
if len(a) != 0:
if m.name == p:
members.append(m)
break
if m.global_name == p:
members.append(m)
break
else:
print(f'{p} not found in members')
new_role_members = []
for m in members:
if len([d for d in m.roles if d.id == role.id]) == 0:
print(f'Giving the role to {m.name}#{m.discriminator}')
print(f'Giving the role to {m.name}')
new_role_members.append(m.name)
await m.add_roles(role, reason='Automatic role assignment by GitHub actions pipeline.')
else:
print(f'{m.name} already has role')
print('All done!')
print("gave new role to:")
print('@' + ' @'.join(new_role_members))
await client.close()
except Exception as ex:
print('Exception was thrown!')