PandoraNext被项目放弃,本文作废。

最近半年经常通过API方式使用ChatGPT,ChatGPT好用是好用,但这是以我干瘪的钱包为代价。前几天,不良林大佬介绍了PandoraNext项目,很符合我免费使用ChatGPT的要求,只是在更新PandoraNext Pool Token时要在VPS上进行,但我想用GitHub Actions进行PandoraNext Pool Token更新。这是我倒腾的成果,希望不会是滥用GitHub Actions。

教程

前期准备,不良林大佬的视频文档PandoraNext 项目,请详细多次观看阅读这三项,接下来的内容都是假设已经理解不良林大佬的视频和文档,并且成功运行Proxy模式。

准备

1.赋予GitHub Actions读写项目权限。在GitHub上创建私人项目,在刚刚创建的私人项目中点击Settings–>点击Actions下的General–>找到Workflow permissions,选中Read and write permissions并保存。
2.修改运行脚本pandora-get-token.py如下:

import sys
import requests
import os
import json
import time

# 使用环境变量中的POOL_TOKEN和API_ENDPOINT
pool_token = os.environ.get("POOL_TOKEN")
api_endpoint = os.environ.get("API_ENDPOINT")

users_file = "users.txt"
session_tokens_file = "session_tokens.txt"
tokens_file = "tokens.txt"
... ...
 

3.设置环境变量。环境变量有两个,分别是API_ENDPOINT(必须设置)和POOL_TOKEN
4.创建session\_tokens.txt文件并写入内容。
5.创建GitHub Actions脚本。文件位置为.github/workflows/get-token.yml

name: 获取 Pandora 令牌

on:
  push:
    branches:
      - main  # 根据你的实际分支设置
  schedule:
    - cron: "20 1 */8 * *" #根据自己的实际需求调整

jobs:
  get_token:
    runs-on: ubuntu-latest

    env:
      API_ENDPOINT: ${{ secrets.API_ENDPOINT }}
      POOL_TOKEN: ${{ secrets.POOL_TOKEN }}

    steps:
    - name: 检出仓库
      uses: actions/checkout@v2

    - name: 配置 Python 环境
      uses: actions/setup-python@v2
      with:
        python-version: 3.9  # 选择你的 Python 版本

    - name: 安装依赖
      run: |
        python3 -m pip install --upgrade pip
        pip install requests

    - name: 从GitHub中获取所需要的环境变量
      run: |
        echo "API_ENDPOINT=${{ secrets.API_ENDPOINT }}" >> $GITHUB_ENV
        echo "POOL_TOKEN=${{ secrets.POOL_TOKEN }}" >> $GITHUB_ENV

    - name: 运行10秒 pandora-get-token.py
      run: |
        timeout 10 python3 pandora-get-token.py || echo "运行 pandora-get-token.py 时间到。退出码: $?" 

    - name: 提交并推送更改,包含北京时间
      run: |
        git config --global user.email "[email protected]"
        git config --global user.name "GitHub Actions"

        current_time=$(TZ='Asia/Shanghai' date "+%Y-%m-%d %H:%M:%S")
        git add .
        git commit -m "更新令牌 - 北京时间: $current_time"
        git push -u origin main
 

注意事项

API_ENDPOINT链接在GitHub Actions时不要用CF代理,因为CF会拦截GitHub Actions。