Skip to content

Commit 7fc8b9c

Browse files
committed
fix(user_scan/): chess_com module to use re for username pre-check
1 parent 9e3a0e2 commit 7fc8b9c

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

user_scanner/user_scan/gaming/chess_com.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,27 @@
1+
import re
12
from user_scanner.core.orchestrator import generic_validate
23
from user_scanner.core.result import Result
34
from user_scanner.core.helpers import get_random_user_agent
45

56

6-
def validate_chess_com(user):
7+
def validate_chess_com(user: str) -> Result:
8+
# Length must be between 3 and 25 characters
9+
if not (3 <= len(user) <= 25):
10+
return Result.error("Length must be 3-25 characters")
11+
12+
# Only letters, numbers, underscores, and dashes allowed
13+
if not re.match(r'^[a-zA-Z0-9_-]+$', user):
14+
return Result.error("Usernames can only contain letters, numbers, underscores, and hyphens")
15+
16+
# Must start and end with an alphanumeric character
17+
if not (user[0].isalnum() and user[-1].isalnum()):
18+
return Result.error("Username must start and end with a letter or number")
19+
720
url = f"https://www.chess.com/callback/user/valid?username={user}"
821
show_url = "https://chess.com"
922

1023
headers = {
11-
'User-Agent':get_random_user_agent(),
24+
'User-Agent': get_random_user_agent(),
1225
'Accept': "application/json, text/plain, */*",
1326
'Accept-Encoding': "identity",
1427
'Accept-Language': "en-US,en;q=0.9",
@@ -37,4 +50,4 @@ def process(response):
3750
elif result == 0:
3851
print("Unavailable!")
3952
else:
40-
print("Error occurred!")
53+
print(f"Error occurred! Reason: {result.get_reason()}")

user_scanner/user_scan/gaming/osu.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ def validate_osu(user):
1717
elif result == 0:
1818
print("Unavailable!")
1919
else:
20-
print("Error occurred!")
20+
print("Error occurred!")

0 commit comments

Comments
 (0)