forked from LAION-AI/Open-Assistant
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathverify-lobby.py
executable file
·54 lines (39 loc) · 1.53 KB
/
verify-lobby.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""This file is for moderators to verify new users in the lobby.
First, moderators read the brief introduction people write in the lobby.
If all people's introductions are acceptable, moderators run this script.
Needs BOT_TOKEN environment variable to be set to the bot token.
"""
import discord
import pydantic
import tqdm.asyncio as tqdm
class Settings(pydantic.BaseSettings):
bot_token: str
settings = Settings()
intents = discord.Intents.default()
intents.message_content = True
intents.members = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
lobby_channel = discord.utils.get(client.get_all_channels(), name="lobby")
# obtain the role object for the verified role
verified_role = discord.utils.get(lobby_channel.guild.roles, name="verified")
async for message in tqdm.tqdm(lobby_channel.history(limit=None)):
if not isinstance(message.author, discord.Member):
print(f"{message.author} is not a member")
continue
for role in message.author.roles:
if role.name == "unverified":
print(f"{message.author} has the unverified role.")
break
else:
continue
# un-assign the unverified role
await message.author.remove_roles(role)
# assign the verified role
await message.author.add_roles(verified_role)
print(f"Assigned verified role to {message.author}")
await client.close()
client.run(settings.bot_token)