From 577a428de22416328c4e718a3f9b937265846d6f Mon Sep 17 00:00:00 2001 From: DevilXD Date: Thu, 8 Dec 2022 17:52:18 +0100 Subject: [PATCH] Handle 2004 login error code; add regex validation to the username --- gui.py | 6 +++++- twitch.py | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gui.py b/gui.py index 4d736c5..a071442 100644 --- a/gui.py +++ b/gui.py @@ -1,5 +1,6 @@ from __future__ import annotations +import re import sys import ctypes import asyncio @@ -474,7 +475,10 @@ class LoginForm: self._token_entry.get().strip(), ) # basic input data validation - if len(login_data.username) < 3: + if ( + 3 <= len(login_data.username) <= 25 # 3-25 characters in length + and re.match(r'^[a-zA-Z0-9_]+$', login_data.username) # only ascii and underscores + ): self.clear(login=True) continue if len(login_data.password) < 8: diff --git a/twitch.py b/twitch.py index fc21501..0e0c420 100644 --- a/twitch.py +++ b/twitch.py @@ -330,9 +330,12 @@ class _AuthState: logger.info("1000: CAPTCHA is required") use_chrome = True break - elif error_code == 3001: + elif error_code in (2004, 3001): logger.info("3001: Login failed due to incorrect username or password") gui_print(_("login", "incorrect_login_pass")) + if error_code == 2004: + # invalid username + login_form.clear(login=True) login_form.clear(password=True) continue elif error_code in (