mirror of
https://github.com/wassname/Open-Assistant.git
synced 2026-06-27 16:10:30 +08:00
added verify-lobby script
This commit is contained in:
Executable
+54
@@ -0,0 +1,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)
|
||||
Reference in New Issue
Block a user