feat: Add support for setting DNS record onchain
All checks were successful
Build Docker / Build Image (push) Successful in 2m50s
All checks were successful
Build Docker / Build Image (push) Successful in 2m50s
This commit is contained in:
24
shaker.py
24
shaker.py
@@ -5,6 +5,7 @@ import dns.exception
|
||||
import dns.message
|
||||
import discord
|
||||
import json
|
||||
import requests
|
||||
|
||||
load_dotenv()
|
||||
|
||||
@@ -33,7 +34,22 @@ def check_name(user_id: int, name: str) -> bool:
|
||||
except dns.exception.DNSException as e:
|
||||
print("DNS Exception")
|
||||
print(e)
|
||||
pass
|
||||
|
||||
# Alternatively check via hsd.hns.au
|
||||
try:
|
||||
response = requests.get(f"https://hsd.hns.au/api/v1/nameresource/{name}")
|
||||
if response.status_code == 200:
|
||||
data = response.json()
|
||||
if 'records' not in data:
|
||||
return False
|
||||
for record in data['records']:
|
||||
if record['type'] == 'TXT' and str(user_id) in record['txt']:
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print("HTTP Exception")
|
||||
print(e)
|
||||
|
||||
return False
|
||||
|
||||
async def handle_role(member: discord.Member, shouldHaveRole: bool):
|
||||
@@ -59,7 +75,7 @@ async def handle_role(member: discord.Member, shouldHaveRole: bool):
|
||||
async def check_member(member: discord.Member) -> bool:
|
||||
if member.display_name[-1] != "/":
|
||||
await handle_role(member, False)
|
||||
return
|
||||
return False
|
||||
|
||||
if check_name(member.id, member.display_name[0:-1]):
|
||||
await handle_role(member, True)
|
||||
@@ -71,3 +87,7 @@ async def check_member(member: discord.Member) -> bool:
|
||||
print(e)
|
||||
await handle_role(member, False)
|
||||
return False
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Try to check name
|
||||
print(check_name(481051831083073536,"xn--tya"))
|
||||
Reference in New Issue
Block a user