Compare commits

..

12 Commits

8 changed files with 1142 additions and 563 deletions

View File

@@ -1,10 +1,10 @@
name: Auto Generate Release
on:
workflow_dispatch:
push:
paths:
- 'gfw.pac' # 替换为你要监控的文件路径
- 'gfw.pac'
workflow_dispatch:
jobs:
generate-release:
@@ -12,23 +12,32 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
env:
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
with:
fetch-depth: 0
- name: Set up Git
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
- name: Get commit count for today
- name: Generate Release Name
id: commit_count
env:
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
run: |
today=$(date +%Y%m%d)
commit_count=$(git log --since="$today 00:00:00" --until="$today 23:59:59" --pretty=format: --name-only | grep -c '^gfw.pac$')
commit_count=$(TZ=Asia/Shanghai git log --date=local --since="$today 00:00:00" --until="$today 23:59:59" --pretty=format: --name-only | grep -c '^gfw.pac$')
echo "COMMIT_COUNT=$commit_count" >> $GITHUB_ENV
echo "RELEASE_NAME=v$(TZ='Asia/Shanghai' date +%Y%m%d).$commit_count" >> $GITHUB_ENV
echo "COMMIT_MESSAGE=$(git log -1 --pretty=%B)" >> $GITHUB_ENV
- name: Create Tag
id: create_tag
env:
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
run: |
git tag "${{ env.RELEASE_NAME }}"
git push origin ${{ env.RELEASE_NAME }}
@@ -36,14 +45,12 @@ jobs:
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v2
env:
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
with:
tag_name: "${{ env.RELEASE_NAME }}"
name: "${{ env.RELEASE_NAME }}"
body: "Automatically generated release for pac file update"
body: "${{ env.COMMIT_MESSAGE }}"
draft: false
prerelease: false
files: gfw.pac # 替换为你要上传的文件路径
- name: Verify Release
run: |
echo "Release created with name ${{ env.RELEASE_NAME }}"
files: gfw.pac

View File

@@ -2,7 +2,7 @@ name: GFW PAC Update
on:
schedule:
- cron: '0 0 */14 * *'
- cron: '0 0 */7 * *'
workflow_dispatch:
jobs:
@@ -10,23 +10,29 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
env:
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
uses: actions/checkout@v4
- name: Download delegated-apnic-latest
- name: Download cn.txt
run: curl https://raw.githubusercontent.com/Loyalsoldier/geoip/refs/heads/release/text/cn.txt -o cidrs-cn.txt
- name: Run gfw-pac.py script
run: ./gfw-pac.py -f gfw.pac -p "PROXY 127.0.0.1:3128" --proxy-domains=proxy-domains.txt --direct-domains=direct-domains.txt --localtld-domains=local-tlds.txt --ip-file=cidrs-cn.txt
- name: Commit gfw.pac
- name: Commit changes
env:
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add .
git commit -a -m "自动更新 gfw.pac"
git commit -a -m "自动更新 cidrs-cn.txt 和 gfw.pac"
- name: Push changes
uses: ad-m/github-push-action@master
env:
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
with:
github_token: ${{ secrets.PUSH_TOKEN }}
github_token: ${{ secrets.PERSONAL_TOKEN }}
branch: master

View File

@@ -2,7 +2,7 @@
科学上网 PAC 文件以及生成器。通过自定义域名和 CNIP 地址生成 PAC(Proxy auto-config) 文件。对存在于自定义域名和解析出的IP不是CNIP的域名使用代理支持IPv6。
**此仓库每 14 天自动通过 GitHub Action 从 `Loyalsoldier/geoip` 获取国内地址段并更新 `gfw.pac` 文件**
**此仓库每 7 天自动通过 GitHub Action 从 `Loyalsoldier/geoip` 获取国内地址段并更新 `gfw.pac` 文件**
## 特性
* 开箱即用,直接可用的 `gfw.pac` 包含了常用的直连域名和代理域名以及国内IPv4/IPv6地址段

View File

File diff suppressed because it is too large Load Diff

View File

@@ -80,67 +80,35 @@ meituan.com
meituan.net
sogou.com
dianping.com
o.pki.goog
www.googletagmanager.com
www.google-analytics.com
pagead2.googlesyndication.com
adservice.google.com
fonts.googleapis.com
fonts.gstatic.com
www.gstatic.com
ssl.gstatic.com
quark.cn
push.apple.com
time-ios.apple.com
time.apple.com
time-macos.apple.com
setup.icloud.com
www.apple.com.cn
play.itunes.apple.com
appldnld.apple.com
configuration.apple.com
mesu.apple.com
oscdn.apple.com
osrecovery.apple.com
skl.apple.com
swcdn.apple.com
swdist.apple.com
swdownload.apple.com
swscan.apple.com
updates-http.cdn-apple.com
updates.cdn-apple.com
xp.apple.com
audiocontentdownload.apple.com
devimages-cdn.apple.com
devstreaming-cdn.apple.com
icloud.cdn-apple.com
iosdm-cn.cdn-apple.com
js-cdn.music.apple.com
oscdn.apple.com
speed-test-cnc.cdn-apple.com
download.developer.apple.com
playgrounds-assets-cdn.apple.com
sylvan.apple.com
diagassets.apple.com
doh.dns.apple.com
certs.apple.com
crl.apple.com
ocsp.apple.com
ocsp2.apple.com
valid.apple.com
appleid.cdn-apple.com
apzones.com
icloud.com.cn
guzzoni.apple.com
app-site-association.cdn-apple.com
smp-device-content.apple.com
idv.cdn-apple.com
weatherkit.apple.com
adcdownload.apple.com
alpdownloadit.cdn-apple.com
bricks.cdn-apple.com
pancake.apple.com
storage.live.com
blob.core.windows.net
self.events.data.microsoft.com
mobile.events.data.microsoft.com

View File

@@ -1,12 +1,10 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import urllib.parse
import json
import urllib.request, urllib.error, urllib.parse
from argparse import ArgumentParser
import ipaddress
import json
def parse_args():
parser = ArgumentParser()
@@ -22,7 +20,7 @@ def parse_args():
help='直连的域名文件,每行一个')
parser.add_argument('--localtld-domains', dest='localtld_rule',
help='本地 TLD 规则文件, 不走代理, 每行一个,以 . 开头')
parser.add_argument('--ip-file', dest='ip_file',
parser.add_argument('--ip-file', dest='ip_file', required=True,
help='中国IP地址段文件')
return parser.parse_args()

View File

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +1,5 @@
google.com
google.com.hk
googleapis.com
gstatic.com
ggpht.com
googleusercontent.com
ent.com
youtube.com
googlevideo.com
ytimg.com