Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions twikit/x_client_transaction/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,22 @@ 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']")
if migration_form:
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
Expand Down