diff --git a/.github/workflows/baidupush.yml b/.github/workflows/baidupush.yml new file mode 100644 index 00000000..2541e38f --- /dev/null +++ b/.github/workflows/baidupush.yml @@ -0,0 +1,39 @@ +## 利用GitHub Actions每天定时给百度推送链接,提高收录率 ## + +name: baidupush + +# 两种触发方式:一、push代码,二、每天国际标准时间23点(北京时间+8即早上7点)运行 +on: + # push: + schedule: + - cron: '0 23 * * *' # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows#scheduled-events-schedule + workflow_dispatch: + inputs: + unconditional-invoking: + description: 'baidupush unconditionally' + type: boolean + required: true + default: true + +# on: + # schedule: + # - cron: '*/5 * * * *' # 每5分钟一次,测试用 + +jobs: + bot: + runs-on: ubuntu-latest # 运行环境为最新版的Ubuntu + steps: + - name: 'Checkout codes' # 步骤一,获取仓库代码 + uses: actions/checkout@v2 + # - name: 'Run baiduPush' # 步骤二,执行sh命令文件 + # run: npm install && npm run baiduPush # 运行目录是仓库根目录 + - name: Set up Python 3.8 + uses: actions/setup-python@v1 + with: + python-version: 3.8 + + - name: install requests + run: pip install requests + + - name: baidupush + run: npm run baidupush \ No newline at end of file diff --git a/baidupush.py b/baidupush.py new file mode 100644 index 00000000..9d0c0130 --- /dev/null +++ b/baidupush.py @@ -0,0 +1,18 @@ +import re +import ssl +import requests +import argparse + + +if __name__ == '__main__': + ssl._create_default_https_context = ssl._create_unverified_context + parser = argparse.ArgumentParser(description='parse sitemap') + parser.add_argument('url', help='The url of your website') + args = parser.parse_args() + url = f'https://{args.url}/sitemap.xml' + result = requests.get(url) + big = re.findall('(.*?)', result.content.decode('utf-8'), re.S) + for i in big: + # print(i) + op_xml_txt = open('urls.txt', 'a') + op_xml_txt.write('%s\n' % i) diff --git a/baidupush.sh b/baidupush.sh new file mode 100644 index 00000000..7901c56a --- /dev/null +++ b/baidupush.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env sh + +# 确保脚本抛出遇到的错误 +set -e + +# 解析sitemap.xml, 记得换成你自己的域名,注意检查是否包含‘www’ +python baidupush.py 'www.ghlerrix.cn' + +# 百度链接推送,换成自己的token和域名 +curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=https://www.ghlerrix.cn&token=oUldnU4HZvSTlh0e" + +rm -rf urls.txt # 删除文件 \ No newline at end of file diff --git a/package.json b/package.json index 5e87a1da..9d8e9fe9 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "start": "next start", "post-build": "next-sitemap --config next-sitemap.config.js", "export": "next build && next-sitemap --config next-sitemap.config.js && next export", - "bundle-report": "ANALYZE=true yarn build" + "bundle-report": "ANALYZE=true yarn build", + "baidupush": "bash baidupush.sh" }, "dependencies": { "@giscus/react": "^2.2.6",