From a08c46b6aad3244f071aa40e7fc95d2900656f07 Mon Sep 17 00:00:00 2001 From: Adarsh Kumar Date: Tue, 1 Jul 2025 17:18:00 +0000 Subject: [PATCH 1/3] Update utils.py --- twikit/x_client_transaction/utils.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/twikit/x_client_transaction/utils.py b/twikit/x_client_transaction/utils.py index 9fe0131e..1d6afc30 100644 --- a/twikit/x_client_transaction/utils.py +++ b/twikit/x_client_transaction/utils.py @@ -8,12 +8,14 @@ async def handle_x_migration(session, headers): home_page = None migration_redirection_regex = re.compile( r"""(http(?:s)?://(?:www\.)?(twitter|x){1}\.com(/x)?/migrate([/?])?tok=[a-zA-Z0-9%\-_]+)+""", re.VERBOSE) + headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/128.0.0.0 Safari/537.36" response = await session.request(method="GET", url="https://x.com", headers=headers) home_page = bs4.BeautifulSoup(response.content, 'lxml') migration_url = home_page.select_one("meta[http-equiv='refresh']") migration_redirection_url = re.search(migration_redirection_regex, str( migration_url)) or re.search(migration_redirection_regex, str(response.content)) if migration_redirection_url: + headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/128.0.0.0 Safari/537.36" response = await session.request(method="GET", url=migration_redirection_url.group(0), headers=headers) home_page = bs4.BeautifulSoup(response.content, 'lxml') migration_form = home_page.select_one("form[name='f']") or home_page.select_one(f"form[action='https://x.com/x/migrate']") @@ -21,6 +23,7 @@ async def handle_x_migration(session, headers): url = migration_form.attrs.get("action", "https://x.com/x/migrate") + "/?mx=2" method = migration_form.attrs.get("method", "POST") request_payload = {input_field.get("name"): input_field.get("value") for input_field in migration_form.select("input")} + headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/128.0.0.0 Safari/537.36" response = await session.request(method=method, url=url, data=request_payload, headers=headers) home_page = bs4.BeautifulSoup(response.content, 'lxml') return home_page From 7fa8cdf067310aa005896177397651e1bf33eff6 Mon Sep 17 00:00:00 2001 From: Adarsh Kumar Date: Tue, 1 Jul 2025 17:22:56 +0000 Subject: [PATCH 2/3] Update twikit/x_client_transaction/utils.py Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- twikit/x_client_transaction/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/twikit/x_client_transaction/utils.py b/twikit/x_client_transaction/utils.py index 1d6afc30..256e53cc 100644 --- a/twikit/x_client_transaction/utils.py +++ b/twikit/x_client_transaction/utils.py @@ -8,6 +8,7 @@ async def handle_x_migration(session, headers): home_page = None migration_redirection_regex = re.compile( r"""(http(?:s)?://(?:www\.)?(twitter|x){1}\.com(/x)?/migrate([/?])?tok=[a-zA-Z0-9%\-_]+)+""", re.VERBOSE) + # Set User-Agent header once at the start headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/128.0.0.0 Safari/537.36" response = await session.request(method="GET", url="https://x.com", headers=headers) home_page = bs4.BeautifulSoup(response.content, 'lxml') @@ -15,7 +16,7 @@ async def handle_x_migration(session, headers): migration_redirection_url = re.search(migration_redirection_regex, str( migration_url)) or re.search(migration_redirection_regex, str(response.content)) if migration_redirection_url: - headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/128.0.0.0 Safari/537.36" + # No need to set User-Agent again, already set above response = await session.request(method="GET", url=migration_redirection_url.group(0), headers=headers) home_page = bs4.BeautifulSoup(response.content, 'lxml') migration_form = home_page.select_one("form[name='f']") or home_page.select_one(f"form[action='https://x.com/x/migrate']") From 015061b4ad7a775410f883a4c9828cd90e2f9eb2 Mon Sep 17 00:00:00 2001 From: Adarsh Kumar Date: Tue, 1 Jul 2025 17:33:14 +0000 Subject: [PATCH 3/3] removed multiple line of User-Agent --- twikit/x_client_transaction/utils.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/twikit/x_client_transaction/utils.py b/twikit/x_client_transaction/utils.py index 256e53cc..cb5e1de4 100644 --- a/twikit/x_client_transaction/utils.py +++ b/twikit/x_client_transaction/utils.py @@ -6,17 +6,15 @@ async def handle_x_migration(session, headers): home_page = None + headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/128.0.0.0 Safari/537.36" migration_redirection_regex = re.compile( r"""(http(?:s)?://(?:www\.)?(twitter|x){1}\.com(/x)?/migrate([/?])?tok=[a-zA-Z0-9%\-_]+)+""", re.VERBOSE) - # Set User-Agent header once at the start - headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/128.0.0.0 Safari/537.36" response = await session.request(method="GET", url="https://x.com", headers=headers) home_page = bs4.BeautifulSoup(response.content, 'lxml') migration_url = home_page.select_one("meta[http-equiv='refresh']") migration_redirection_url = re.search(migration_redirection_regex, str( migration_url)) or re.search(migration_redirection_regex, str(response.content)) if migration_redirection_url: - # No need to set User-Agent again, already set above response = await session.request(method="GET", url=migration_redirection_url.group(0), headers=headers) home_page = bs4.BeautifulSoup(response.content, 'lxml') migration_form = home_page.select_one("form[name='f']") or home_page.select_one(f"form[action='https://x.com/x/migrate']") @@ -24,7 +22,6 @@ async def handle_x_migration(session, headers): url = migration_form.attrs.get("action", "https://x.com/x/migrate") + "/?mx=2" method = migration_form.attrs.get("method", "POST") request_payload = {input_field.get("name"): input_field.get("value") for input_field in migration_form.select("input")} - headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/128.0.0.0 Safari/537.36" response = await session.request(method=method, url=url, data=request_payload, headers=headers) home_page = bs4.BeautifulSoup(response.content, 'lxml') return home_page