From 669ca7646e4ada94e5f0230ab0cdc3d526d49c1e Mon Sep 17 00:00:00 2001 From: Ghlerrix Date: Thu, 24 Aug 2023 09:46:08 +0800 Subject: [PATCH 1/4] =?UTF-8?q?[fix]=20=E4=BF=AE=E5=A4=8D=E6=9C=AA?= =?UTF-8?q?=E9=85=8D=E7=BD=AEAction=20Secrets=E6=AF=8F=E6=97=A5=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E6=8E=A8=E9=80=81=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当用户未配置Action Secrets中的URL时每日定时推送会报错,github会发送一条邮件,可能会带来一些不便。 修复后,未配置Action Secrets则相关代码就不会执行。 具体如下: 未配置URL:则啥也不干 未配置Bing API KEY:则不推送至Bing 未配置Baidu Token:则不推送至百度 --- .github/workflows/pushUrl.yml | 4 ++-- pushUrl.py | 33 +++++++++++++++++++++++---------- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/.github/workflows/pushUrl.yml b/.github/workflows/pushUrl.yml index e71f7ec2..f8c2f60d 100644 --- a/.github/workflows/pushUrl.yml +++ b/.github/workflows/pushUrl.yml @@ -36,7 +36,7 @@ jobs: run: pip install requests - name: baiduPush - run: python pushUrl.py ${{ secrets.URL }} --baidu_token ${{ secrets.BAIDU_TOKEN }} + run: python pushUrl.py --url ${{ secrets.URL }} --baidu_token ${{ secrets.BAIDU_TOKEN }} - name: bingPush - run: python pushUrl.py ${{ secrets.URL }} --bing_api_key ${{ secrets.BING_API_KEY }} \ No newline at end of file + run: python pushUrl.py --url ${{ secrets.URL }} --bing_api_key ${{ secrets.BING_API_KEY }} \ No newline at end of file diff --git a/pushUrl.py b/pushUrl.py index dc6e73bf..e25f86c5 100644 --- a/pushUrl.py +++ b/pushUrl.py @@ -8,8 +8,11 @@ ssl._create_default_https_context = ssl._create_unverified_context def parse_stiemap(site): site = f'{site}/sitemap.xml' + print('解析站点地图中,请稍后……') result = requests.get(site) big = re.findall('(.*?)', result.content.decode('utf-8'), re.S) + print('当前已有url:') + print(list(big)) return list(big) @@ -25,9 +28,9 @@ def push_to_bing(site, urls, api_key): response = requests.post(endpoint, json=payload) result = response.json() if response.status_code == 200: - print("successfully submitted to Bing.") + print("成功推送到Bing.") elif "ErrorCode" in result: - print("Error pushing URLs to Bing:", result["Message"]) + print("推送到Bing出现错误,错误信息为:", result["Message"]) except Exception as e: print("An error occurred:", e) @@ -42,9 +45,9 @@ def push_to_baidu(site, urls, token): response = requests.post(api_url, data=payload, headers=headers) result = response.json() if "success" in result and result["success"]: - print("URLs successfully pushed to Baidu.") + print("成功推送到百度.") elif "error" in result: - print("Error pushing URLs to Baidu:", result["message"]) + print("推送到百度出现错误,错误信息为:", result["message"]) else: print("Unknown response from Baidu:", result) except Exception as e: @@ -53,12 +56,22 @@ def push_to_baidu(site, urls, token): if __name__ == '__main__': parser = argparse.ArgumentParser(description='parse sitemap') - parser.add_argument('url', type=str, help='The url of your website') + parser.add_argument('--url', type=str, help='The url of your website') parser.add_argument('--bing_api_key', type=str, default=None, help='your bing api key') parser.add_argument('--baidu_token', type=str, default=None, help='Your baidu push token') args = parser.parse_args() - urls = parse_stiemap(args.url) - if args.bing_api_key: - push_to_bing(args.url, urls, args.bing_api_key) - if args.baidu_token: - push_to_baidu(args.url, urls, args.baidu_token) + if args.url: + urls = parse_stiemap(args.url) + if args.bing_api_key: + push_to_bing(args.url, urls, args.bing_api_key) + else: + print('未配置 Bing API Key') + print('详情参见: https://ghlcode.cn/fe032806-5362-4d82-b746-a0b26ce8b9d9') + if args.baidu_token: + push_to_baidu(args.url, urls, args.baidu_token) + else: + print('未配置 Baidu Token') + print('详情参见: https://ghlcode.cn/fe032806-5362-4d82-b746-a0b26ce8b9d9') + else: + print('请前往 Github Action Secrets 配置 URL') + print('详情参见: https://ghlcode.cn/fe032806-5362-4d82-b746-a0b26ce8b9d9') From 9113feb7c365765cb95ef712b9a5694181199fe8 Mon Sep 17 00:00:00 2001 From: Ghlerrix Date: Thu, 24 Aug 2023 10:14:07 +0800 Subject: [PATCH 2/4] =?UTF-8?q?[fix]=20=E4=BF=AE=E5=A4=8D=E6=9C=AA?= =?UTF-8?q?=E9=85=8D=E7=BD=AEAction=20Secrets=E6=AF=8F=E6=97=A5=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E6=8E=A8=E9=80=81=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当用户未配置Action Secrets中的URL时每日定时推送会报错,github会发送一条邮件,可能会带来一些不便。 修复后,未配置Action Secrets则相关代码就不会执行。 具体如下: 未配置URL:则啥也不干 未配置Bing API KEY:则不推送至Bing 未配置Baidu Token:则不推送至百度 --- .github/workflows/pushUrl.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pushUrl.yml b/.github/workflows/pushUrl.yml index f8c2f60d..14a05b90 100644 --- a/.github/workflows/pushUrl.yml +++ b/.github/workflows/pushUrl.yml @@ -32,11 +32,8 @@ jobs: with: python-version: 3.8 - - name: install requests + - name: Install requests run: pip install requests - - name: baiduPush - run: python pushUrl.py --url ${{ secrets.URL }} --baidu_token ${{ secrets.BAIDU_TOKEN }} - - - name: bingPush - run: python pushUrl.py --url ${{ secrets.URL }} --bing_api_key ${{ secrets.BING_API_KEY }} \ No newline at end of file + - name: Push + run: python pushUrl.py --url ${{ secrets.URL }} --baidu_token ${{ secrets.BAIDU_TOKEN }} --bing_api_key ${{ secrets.BING_API_KEY }} \ No newline at end of file From eec1db02c1df1d552576f86b3f5668f6d0af3990 Mon Sep 17 00:00:00 2001 From: Ghlerrix Date: Sat, 26 Aug 2023 22:13:53 +0800 Subject: [PATCH 3/4] =?UTF-8?q?[fix]=20=E4=BF=AE=E5=A4=8D=E6=9C=AA?= =?UTF-8?q?=E9=85=8D=E7=BD=AEAction=20Secrets=E6=AF=8F=E6=97=A5=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E6=8E=A8=E9=80=81=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - URL配置异常捕获,若URL配置错误会给出提示信息 - 未配置相关信息处理方式 - 未配置URL:则啥也不干 - 未配置Bing API KEY:则不推送至Bing - 未配置Baidu Token:则不推送至百度 --- pushUrl.py | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/pushUrl.py b/pushUrl.py index e25f86c5..7a66c57e 100644 --- a/pushUrl.py +++ b/pushUrl.py @@ -9,11 +9,18 @@ ssl._create_default_https_context = ssl._create_unverified_context def parse_stiemap(site): site = f'{site}/sitemap.xml' print('解析站点地图中,请稍后……') - result = requests.get(site) - big = re.findall('(.*?)', result.content.decode('utf-8'), re.S) - print('当前已有url:') - print(list(big)) - return list(big) + try: + result = requests.get(site) + big = re.findall('(.*?)', result.content.decode('utf-8'), re.S) + print('当前已有url:') + print(list(big)) + return list(big) + except: + print('请检查你的url是否有误。') + print('正确的应是完整的域名,包含https://,且不包含‘sitemap.xml’, 如下所示:') + print('正确的示例: https://ghlcode.cn') + print('详情参见: https://ghlcode.cn/fe032806-5362-4d82-b746-a0b26ce8b9d9') + def push_to_bing(site, urls, api_key): @@ -62,16 +69,17 @@ if __name__ == '__main__': args = parser.parse_args() if args.url: urls = parse_stiemap(args.url) - if args.bing_api_key: - push_to_bing(args.url, urls, args.bing_api_key) - else: - print('未配置 Bing API Key') - print('详情参见: https://ghlcode.cn/fe032806-5362-4d82-b746-a0b26ce8b9d9') - if args.baidu_token: - push_to_baidu(args.url, urls, args.baidu_token) - else: - print('未配置 Baidu Token') - print('详情参见: https://ghlcode.cn/fe032806-5362-4d82-b746-a0b26ce8b9d9') + if urls is not None: + if args.bing_api_key: + push_to_bing(args.url, urls, args.bing_api_key) + else: + print('未配置 Bing API Key') + print('详情参见: https://ghlcode.cn/fe032806-5362-4d82-b746-a0b26ce8b9d9') + if args.baidu_token: + push_to_baidu(args.url, urls, args.baidu_token) + else: + print('未配置 Baidu Token') + print('详情参见: https://ghlcode.cn/fe032806-5362-4d82-b746-a0b26ce8b9d9') else: print('请前往 Github Action Secrets 配置 URL') print('详情参见: https://ghlcode.cn/fe032806-5362-4d82-b746-a0b26ce8b9d9') From 79225e132f8c7f32887b3609f30135443ca6c226 Mon Sep 17 00:00:00 2001 From: Ghlerrix Date: Wed, 30 Aug 2023 15:11:41 +0800 Subject: [PATCH 4/4] =?UTF-8?q?[update]=20=E6=AF=8F=E6=97=A5=E9=9A=8F?= =?UTF-8?q?=E6=9C=BA=E5=8F=96100=E4=B8=AAurl=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 大部分朋友的提交限额是100,因此为了尽可能的覆盖所有url,每天随机取100个进行推送 --- pushUrl.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pushUrl.py b/pushUrl.py index 7a66c57e..af01535f 100644 --- a/pushUrl.py +++ b/pushUrl.py @@ -1,11 +1,18 @@ +import random import re import ssl +import time + import requests import argparse ssl._create_default_https_context = ssl._create_unverified_context +# 每日推送限额,可根据实际情况修改 +QUOTA = 100 + + def parse_stiemap(site): site = f'{site}/sitemap.xml' print('解析站点地图中,请稍后……') @@ -67,14 +74,25 @@ if __name__ == '__main__': parser.add_argument('--bing_api_key', type=str, default=None, help='your bing api key') parser.add_argument('--baidu_token', type=str, default=None, help='Your baidu push token') args = parser.parse_args() + + # 获取当前的时间戳作为随机种子 + current_timestamp = int(time.time()) + random.seed(current_timestamp) + if args.url: + # 解析urls urls = parse_stiemap(args.url) if urls is not None: + # 判断当前urls数量是否超过额度,若超过则取当日最大值,默认为100,可根据实际情况修改 + if len(urls) > QUOTA: + urls = random.sample(urls, QUOTA) + # 推送bing if args.bing_api_key: push_to_bing(args.url, urls, args.bing_api_key) else: print('未配置 Bing API Key') print('详情参见: https://ghlcode.cn/fe032806-5362-4d82-b746-a0b26ce8b9d9') + # 推送百度 if args.baidu_token: push_to_baidu(args.url, urls, args.baidu_token) else: