Skip to content
17 changes: 9 additions & 8 deletions .github/workflows/release_docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@ name: release_docker
on:
push:
tags:
- 'v*'
- "v*"
branches:
- main
- feat/123pan
pull_request:
branches:
- main
Expand All @@ -15,11 +16,11 @@ concurrency:
cancel-in-progress: true

env:
REGISTRY: 'xhofe/alist'
REGISTRY_USERNAME: 'xhofe'
REGISTRY: "alliot/alist"
REGISTRY_USERNAME: "alliot"
REGISTRY_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
ARTIFACT_NAME: 'binaries_docker_release'
RELEASE_PLATFORMS: 'linux/amd64,linux/arm64,linux/arm/v7,linux/386,linux/arm/v6,linux/s390x,linux/ppc64le,linux/riscv64'
ARTIFACT_NAME: "binaries_docker_release"
RELEASE_PLATFORMS: "linux/amd64,linux/arm64"
IMAGE_PUSH: ${{ github.event_name == 'push' }}
IMAGE_IS_PROD: ${{ github.ref_type == 'tag' }}
IMAGE_TAGS_BETA: |
Expand All @@ -39,7 +40,7 @@ jobs:

- uses: actions/setup-go@v5
with:
go-version: 'stable'
go-version: "stable"

- name: Cache Musl
id: cache-musl
Expand Down Expand Up @@ -98,7 +99,7 @@ jobs:
- uses: actions/download-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
path: 'build/'
path: "build/"

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
Expand Down Expand Up @@ -134,4 +135,4 @@ jobs:
build-args: ${{ matrix.build_arg }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: ${{ env.RELEASE_PLATFORMS }}
platforms: ${{ env.RELEASE_PLATFORMS }}
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ BuildDockerMultiplatform() {
docker_lflags="--extldflags '-static -fpic' $ldflags"
export CGO_ENABLED=1

OS_ARCHES=(linux-amd64 linux-arm64 linux-386 linux-s390x linux-riscv64 linux-ppc64le)
OS_ARCHES=(linux-amd64 linux-arm64)
CGO_ARGS=(x86_64-linux-musl-gcc aarch64-linux-musl-gcc i486-linux-musl-gcc s390x-linux-musl-gcc riscv64-linux-musl-gcc powerpc64le-linux-musl-gcc)
for i in "${!OS_ARCHES[@]}"; do
os_arch=${OS_ARCHES[$i]}
Expand Down
66 changes: 57 additions & 9 deletions drivers/123/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -194,19 +194,67 @@ func (d *Pan123) login() error {
// return &authKey, nil
//}

// 初始化随机数种子
func init() {
rand.Seed(time.Now().UnixNano())
}

// 生成随机HTTP头函数
func generateRandomHeaders() (map[string]string, error) {
// 定义操作系统和版本
deviceOS := []struct {
brand string
os string
versions []string
}{
{"Apple", "iOS", []string{"12.0", "13.4", "14.0", "15.0"}},
{"Xiaomi", "Android", []string{"13.0.3", "14.0.0", "14.0.5"}},
{"Samsung", "Android", []string{"13.0.3", "14.0.0", "14.0.5"}},
{"Google", "Android", []string{"13.0.3", "14.0.0", "14.0.5"}},
{"Oneplus", "Android", []string{"13.0.3", "14.0.0", "14.0.5"}},
{"Vivo", "Android", []string{"13.0.3", "14.0.0", "14.0.5"}},
{"Oppo", "Android", []string{"13.0.3", "14.0.0", "14.0.5"}},
}

// 定义应用版本
appXVersions := []string{"2.4.7", "2.5.0", "2.5.2", "2.5.3", "2.5.4", "2.5.5"}
appVersions := []string{"62", "76", "77", "78"}

// 随机选择应用版本
appXVer := appXVersions[rand.Intn(len(appXVersions))]
appVer := appVersions[rand.Intn(len(appVersions))]

// 随机选择设备品牌和操作系统
selectedDevice := deviceOS[rand.Intn(len(deviceOS))]
osVersion := selectedDevice.versions[rand.Intn(len(selectedDevice.versions))]

// 生成 User-Agent 字符串
userAgent := fmt.Sprintf("123pan/v%s (%s_%s;%s)", appXVer, selectedDevice.os, osVersion, selectedDevice.brand)

// 返回 HTTP 请求头
headers := map[string]string{
"origin": "https://www.123pan.com",
"referer": "https://www.123pan.com/",
"user-agent": userAgent,
"app-version": appVer,
"platform": strings.ToLower(selectedDevice.os),
"x-app-version": appXVer,
}

return headers, nil
}


func (d *Pan123) Request(url string, method string, callback base.ReqCallback, resp interface{}) ([]byte, error) {
isRetry := false
do:
req := base.RestyClient.R()
req.SetHeaders(map[string]string{
"origin": "https://www.123pan.com",
"referer": "https://www.123pan.com/",
"authorization": "Bearer " + d.AccessToken,
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) alist-client",
"platform": "web",
"app-version": "3",
//"user-agent": base.UserAgent,
})
headers, err := generateRandomHeaders()
if err != nil {
return nil, err
}
headers["authorization"] = "Bearer " + d.AccessToken
req.SetHeaders(headers)
if callback != nil {
callback(req)
}
Expand Down
Loading