From e8db9ba72c675c00e868f0f4836986a9fa6d47a9 Mon Sep 17 00:00:00 2001 From: fa0311 Date: Tue, 8 Sep 2026 00:02:44 +0900 Subject: [PATCH] Route session through proxy to bypass Cloudflare challenge on CI Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01APx9vSHUuvhWfb9FoYUvi5 --- .github/workflows/legacy.yml | 1 + .github/workflows/main.yml | 2 ++ lib/twitter.py | 7 +++++++ 3 files changed, 10 insertions(+) diff --git a/.github/workflows/legacy.yml b/.github/workflows/legacy.yml index d6ed7c5b6af..27752c63ce6 100644 --- a/.github/workflows/legacy.yml +++ b/.github/workflows/legacy.yml @@ -50,3 +50,4 @@ jobs: REPOSITORY: ${{ github.repository }} REF_BRANCH: "legacy-twitter" READ_SCRIPT_JSON: "True" + PROXY_LIST: ${{ secrets.PROXY_LIST }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7409693c1d9..1db21bbff27 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -48,6 +48,7 @@ jobs: REPOSITORY: ${{ github.repository }} BASE_BRANCH: "master" REF_BRANCH: "develop" + PROXY_LIST: ${{ secrets.PROXY_LIST }} - name: Run Python (Deck) run: python generator.py env: @@ -58,3 +59,4 @@ jobs: REF_BRANCH: "develop" CLIENT_TYPE: Deck OUTPUT_DIR: docs/deck + PROXY_LIST: ${{ secrets.PROXY_LIST }} diff --git a/lib/twitter.py b/lib/twitter.py index 5581cda0d0a..848701cb31b 100644 --- a/lib/twitter.py +++ b/lib/twitter.py @@ -1,3 +1,5 @@ +import os +import random import re import requests @@ -14,6 +16,11 @@ class TwitterHome: def __init__(self): self.session = requests.session() + proxies = [x.strip() for x in os.environ.get("PROXY_LIST", "").splitlines() if x.strip()] + if proxies: + host, port, username, password = random.choice(proxies).split(":") + proxy = f"http://{username}:{password}@{host}:{port}" + self.session.proxies = {"http": proxy, "https": proxy} self.user_agent = self.session.get( self.LATEST_USER_AGENT, timeout=self.TIMEOUT ).json()["chrome"]