fix: Emoji domains cause issues
All checks were successful
Build Docker / Build Image (push) Successful in 39s
All checks were successful
Build Docker / Build Image (push) Successful in 39s
This commit is contained in:
28
bot.py
28
bot.py
@@ -11,6 +11,7 @@ import dns.message
|
||||
import shaker
|
||||
import re
|
||||
import datetime
|
||||
import time
|
||||
|
||||
|
||||
load_dotenv()
|
||||
@@ -107,7 +108,19 @@ async def setverifiedrole(ctx,role:discord.Role):
|
||||
await ctx.response.send_message("Verified role set to " + role.name + " for server " + ctx.guild.name,ephemeral=True)
|
||||
|
||||
@tree.command(name="verify", description="Verifies your ownership of a Handshake name and sets your nickname.")
|
||||
async def verify(ctx, domain:str):
|
||||
async def verify(ctx:discord.Interaction, domain:str):
|
||||
# Verify not a DM
|
||||
if ctx.guild is None:
|
||||
await ctx.response.send_message("You can not verify in DMs")
|
||||
return
|
||||
|
||||
# Reply to user to stop timeout
|
||||
await ctx.response.defer(ephemeral=True, thinking=True)
|
||||
|
||||
# Sleep for 5 seconds to simulate processing
|
||||
time.sleep(5)
|
||||
|
||||
|
||||
name_idna = domain.strip().rstrip("/").encode("idna")
|
||||
name_ascii = name_idna.decode("ascii")
|
||||
|
||||
@@ -115,7 +128,7 @@ async def verify(ctx, domain:str):
|
||||
|
||||
for part in parts:
|
||||
if not re.match(r'[A-Za-z0-9-_]+$', part):
|
||||
return await ctx.response.send_message("Invalid domain",ephemeral=True)
|
||||
return await ctx.followup.send("Invalid domain",ephemeral=True)
|
||||
|
||||
|
||||
try:
|
||||
@@ -125,12 +138,12 @@ async def verify(ctx, domain:str):
|
||||
|
||||
if shaker.check_name(ctx.user.id, name_ascii):
|
||||
try:
|
||||
await ctx.user.edit(nick=name_rendered + "/")
|
||||
await ctx.user.edit(nick=name_rendered + "/") # type: ignore
|
||||
# Set role
|
||||
await shaker.handle_role(ctx.user, True)
|
||||
return await ctx.response.send_message("Your nickname has been set to " + name_rendered + "/",ephemeral=True)
|
||||
await shaker.handle_role(ctx.user, True) # type: ignore
|
||||
return await ctx.followup.send("Your nickname has been set to " + name_rendered + "/",ephemeral=True)
|
||||
except discord.errors.Forbidden:
|
||||
return await ctx.response.send_message("I don't have permission to do that",ephemeral=True)
|
||||
return await ctx.followup.send("I don't have permission to do that",ephemeral=True)
|
||||
|
||||
records = [{
|
||||
"type": 'TXT',
|
||||
@@ -150,8 +163,7 @@ async def verify(ctx, domain:str):
|
||||
message += f"Once the record is set (this may take a few minutes) you can run this command again or manually set your nickname to `{name_rendered}/`."
|
||||
message += f"\n\nAlternatively, you can set the TXT record onchain, this will take longer to propagate.\n\n"
|
||||
|
||||
await ctx.response.send_message(message,ephemeral=True)
|
||||
|
||||
await ctx.followup.send(message,ephemeral=True)
|
||||
|
||||
|
||||
# When the bot is ready
|
||||
|
||||
Reference in New Issue
Block a user