Skip to content

Commit

Permalink
Merge pull request tangly1024#1461 from Ghlerrix/pushUrl
Browse files Browse the repository at this point in the history
优化百度推送和新增必应推送
  • Loading branch information
tangly1024 authored Aug 23, 2023
2 parents 8dabd69 + cd4661a commit 62546f4
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 37 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
## 利用GitHub Actions每天定时给百度推送链接,提高收录率 ##

name: baidupush
name: pushUrl

# 两种触发方式:一、push代码,二、每天国际标准时间23点(北京时间+8即早上7点)运行
on:
# push:
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'
description: 'push url unconditionally'
type: boolean
required: true
default: true
Expand All @@ -35,5 +35,8 @@ jobs:
- name: install requests
run: pip install requests

- name: baidupush
run: npm run baidupush
- name: baiduPush
run: python pushUrl.py ${{ secrets.URL }} --baidu_token ${{ secrets.BAIDU_TOKEN }}

- name: bingPush
run: python pushUrl.py ${{ secrets.URL }} --bing_api_key ${{ secrets.BING_API_KEY }}
18 changes: 0 additions & 18 deletions baidupush.py

This file was deleted.

12 changes: 0 additions & 12 deletions baidupush.sh

This file was deleted.

3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@
"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",
"baidupush": "bash baidupush.sh"
"bundle-report": "ANALYZE=true yarn build"
},
"dependencies": {
"@giscus/react": "^2.2.6",
Expand Down
64 changes: 64 additions & 0 deletions pushUrl.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import re
import ssl
import requests
import argparse

ssl._create_default_https_context = ssl._create_unverified_context


def parse_stiemap(site):
site = f'{site}/sitemap.xml'
result = requests.get(site)
big = re.findall('<loc>(.*?)</loc>', result.content.decode('utf-8'), re.S)
return list(big)


def push_to_bing(site, urls, api_key):
endpoint = f"https://ssl.bing.com/webmaster/api.svc/json/SubmitUrlbatch?apikey={api_key}"

payload = {
"siteUrl": site,
"urlList": urls
}

try:
response = requests.post(endpoint, json=payload)
result = response.json()
if response.status_code == 200:
print("successfully submitted to Bing.")
elif "ErrorCode" in result:
print("Error pushing URLs to Bing:", result["Message"])
except Exception as e:
print("An error occurred:", e)


def push_to_baidu(site, urls, token):
api_url = f"http://data.zz.baidu.com/urls?site={site}&token={token}"

payload = "\n".join(urls)
headers = {"Content-Type": "text/plain"}

try:
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.")
elif "error" in result:
print("Error pushing URLs to Baidu:", result["message"])
else:
print("Unknown response from Baidu:", result)
except Exception as e:
print("An error occurred:", e)


if __name__ == '__main__':
parser = argparse.ArgumentParser(description='parse sitemap')
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)

0 comments on commit 62546f4

Please sign in to comment.