From 4dc84885619c7a606c4a2711bd3aee5c2fb0c2fa Mon Sep 17 00:00:00 2001 From: YuCat-OVO <66810215+YuCat-OVO@users.noreply.github.com> Date: Fri, 1 Mar 2024 16:22:33 +0800 Subject: [PATCH] version --- .github/workflows/build.yml | 1 + .github/workflows/version.yml | 40 ++++++++++++++++++++++ get_version.py | 64 +++++++++++++++++++++-------------- info.json | 20 ----------- requirements.txt | 2 ++ url.json | 9 ----- 6 files changed, 81 insertions(+), 55 deletions(-) create mode 100644 .github/workflows/version.yml delete mode 100644 info.json create mode 100644 requirements.txt delete mode 100644 url.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3c5562d..b3aa593 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,6 +5,7 @@ on: push: branches: - "main" + - "info" paths-ignore: - '.github/**' - 'docs/**' diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml new file mode 100644 index 0000000..1034b63 --- /dev/null +++ b/.github/workflows/version.yml @@ -0,0 +1,40 @@ +name: Get BaiduNetdisk Version + +on: + workflow_dispatch: + schedule: + - cron: "0 3 * * 0" + +jobs: + get-version: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set variables + id: set-vars + run: | + RELEASE_NAME="Released on $(date +%Y%m%d%H%M)" + + echo "RELEASE_NAME=${RELEASE_NAME}" >> $GITHUB_OUTPUT + + - name: Set up Python + uses: actions/setup-python@v5 + + - name: Run Script + run: | + pip install -r requirements.txt + python get_version.py + + - name: Git push assets to "main" branch + run: | + if ! ([ -f "info.json" ] && [ -f "url.json" ]); then exit 1; else mkdir info; mv {info,url}.json info; cd info; fi + git init + git config --local user.name "github-actions[bot]" + git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" + git checkout -b info + git add . + git commit -m "${{ steps.set-vars.outputs.RELEASE_NAME }}" + git remote add origin "https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}" + git push -f -u origin info diff --git a/get_version.py b/get_version.py index abb73b3..b7a95d7 100644 --- a/get_version.py +++ b/get_version.py @@ -1,7 +1,8 @@ -import requests -import re import json +import re import time + +import requests from lxml import etree GLOBAL_HEADER = { @@ -16,7 +17,7 @@ max_version = [4, 20, 0] GLOBAL_REQUEST_DELAY = 0.5 -def get_js_url(): +def get_js_url() -> str: """请求百度网盘下载页,获取存在下载链接的js文件""" r = requests.get( "https://pan.baidu.com/download", @@ -36,14 +37,18 @@ def get_js_url(): def append_json(json_file_name: str, add): """为Json添加并且去重""" file = None - with open(json_file_name, "r") as f: - file = json.load(f) - # print("file=", file) + try: + with open(json_file_name, "r") as f: + file = json.load(f) + # print("file=", file) - u_file = [] - for i in file: - if i not in u_file: - u_file.append(i) + u_file = [] + for i in file: + if i not in u_file: + u_file.append(i) + + except FileNotFoundError: + file = json.loads("[]") u_file.append(add) @@ -54,10 +59,13 @@ def append_json(json_file_name: str, add): return -def parse_url_from_json(): +def parse_url_from_json() -> list: l = "" - with open("url.json", "r") as f: - l = json.load(f) + try: + with open("url.json", "r") as f: + l = json.load(f) + except FileNotFoundError: + l = [] return l @@ -87,7 +95,6 @@ def parse_url_from_js(): with open("url.json", "w") as f: f.write(json.dumps(u_url, sort_keys=True, indent=4)) - return @@ -114,23 +121,28 @@ def make_info_json(urls: list): def make_url_temple(): l = "" - with open("url.json", "r") as f: - l = json.load(f) - url = "" - for i in l: - if re.search("amd64", i) != None and re.search("deb", i) != None: - url = i - break - # print(url) - url = re.sub("amd64", "arm64", url) - url = re.sub("(?<=[_/])((?:[0-9]{1,2}(?:\\.)?){1,3})(?=[_/])", "{0}", url) - # print(url) - return url + url_temple = "" + try: + with open("url.json", "r") as f: + l = json.load(f) + for i in l: + if re.search("amd64", i) != None and re.search("deb", i) != None: + url_temple = re.sub("amd64", "arm64", i) + url_temple = re.sub( + "(?<=[_/])((?:[0-9]{1,2}(?:\\.)?){1,3})(?=[_/])", "{0}", url_temple + ) + break + # print(url_temple) + except FileNotFoundError: + url_temple = "https://issuepcdn.baidupcs.com/issue/netdisk/LinuxGuanjia/{0}/baidunetdisk_{0}_arm64.deb" + # print(url_temple) + return url_temple def check_version(version): """检测指定版本号是否可用""" url = make_url_temple().format(".".join(str(v) for v in version)) + # url = "https://httpbin.org/status/200" print("Getting {0}".format(url)) response = requests.get( url, diff --git a/info.json b/info.json deleted file mode 100644 index fa20d6c..0000000 --- a/info.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "arch": "x86_64", - "pak": "rpm", - "url": "https://issuepcdn.baidupcs.com/issue/netdisk/LinuxGuanjia/4.11.5/baidunetdisk-4.11.5.x86_64.rpm", - "version": "4.11.5" - }, - { - "arch": "amd64", - "pak": "deb", - "url": "https://issuepcdn.baidupcs.com/issue/netdisk/LinuxGuanjia/4.11.5/baidunetdisk_4.11.5_amd64.deb", - "version": "4.11.5" - }, - { - "arch": "arm64", - "pak": "deb", - "url": "https://issuepcdn.baidupcs.com/issue/netdisk/LinuxGuanjia/4.17.7/baidunetdisk_4.17.7_arm64.deb", - "version": "4.17.7" - } -] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4687fcd --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +lxml==5.1.0 +requests==2.31.0 \ No newline at end of file diff --git a/url.json b/url.json deleted file mode 100644 index 39a6446..0000000 --- a/url.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - "https://issuepcdn.baidupcs.com/issue/netdisk/yunguanjia/BaiduNetdisk_7.19.0.18.exe", - "https://issuepcdn.baidupcs.com/issue/netdisk/yunguanjia/BaiduNetdisk_6.9.10.1.exe", - "https://issuepcdn.baidupcs.com/issue/netdisk/MACguanjia/BaiduNetdisk_mac_4.11.0.dmg", - "https://issuepcdn.baidupcs.com/issue/netdisk/MACguanjia/BaiduNetdisk_mac_4.11.0_arm64.dmg", - "https://issuepcdn.baidupcs.com/issue/netdisk/LinuxGuanjia/4.11.5/baidunetdisk-4.11.5.x86_64.rpm", - "https://issuepcdn.baidupcs.com/issue/netdisk/LinuxGuanjia/4.11.5/baidunetdisk_4.11.5_amd64.deb", - "https://issuepcdn.baidupcs.com/issue/netdisk/LinuxGuanjia/4.17.7/baidunetdisk_4.17.7_arm64.deb" -] \ No newline at end of file