自定义 geosite

This commit is contained in:
Larvan2
2023-03-21 07:19:30 +00:00
parent 921e09d1ad
commit 5546986db5
3 changed files with 103 additions and 455 deletions

View File

@@ -1,4 +1,4 @@
name: Build V2Ray rules dat files
name: Build rules dat files
on:
workflow_dispatch:
schedule:
@@ -21,7 +21,7 @@ jobs:
run: |
echo "RELEASE_NAME=Released on $(date +%Y%m%d%H%M)" >> $GITHUB_ENV
echo "TAG_NAME=$(date +%Y%m%d%H%M)" >> $GITHUB_ENV
echo "CHINA_DOMAINS_URL=https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf" >> $GITHUB_ENV
echo "CHINA_DOMAINS_URL=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/ChinaMax/ChinaMax_Domain.txt" >> $GITHUB_ENV
echo "GOOGLE_DOMAINS_URL=https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/google.china.conf" >> $GITHUB_ENV
echo "APPLE_DOMAINS_URL=https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/apple.china.conf" >> $GITHUB_ENV
echo "EASYLISTCHINA_EASYLIST_REJECT_URL=https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt" >> $GITHUB_ENV
@@ -73,7 +73,7 @@ jobs:
- name: Get and add direct domains into temp-direct.txt file
run: |
curl -sSL $CHINA_DOMAINS_URL | perl -ne '/^server=\/([^\/]+)\// && print "$1\n"' > temp-direct.txt
curl -sSL ${CHINA_DOMAINS_URL} | sed '/^[^\.]/d' | sed '/^\s*#/d' | sed 's/^\.\([^\.]*\)\./\1\./g' > temp-direct.txt
curl -sSL ${CUSTOM_DIRECT} | perl -ne '/^(domain):([^:]+)(\n$|:@.+)/ && print "$2\n"' >> temp-direct.txt
- name: Get and add proxy domains into temp-proxy.txt file
@@ -153,27 +153,29 @@ jobs:
- name: Create `google-cn`、`apple-cn`、`gfw` lists
run: |
curl -sSL $GOOGLE_DOMAINS_URL | perl -ne '/^server=\/([^\/]+)\// && print "full:$1\n"' > ./community/data/google-cn
curl -sSL $GOOGLE_DOMAINS_URL | perl -ne '/^server=\/([^\/]+)\// && print "full:$1\n"' > google-cn.txt
curl -sSL $APPLE_DOMAINS_URL | perl -ne '/^server=\/([^\/]+)\// && print "full:$1\n"' > ./community/data/apple-cn
curl -sSL $APPLE_DOMAINS_URL | perl -ne '/^server=\/([^\/]+)\// && print "full:$1\n"' > apple-cn.txt
cat ./gfwlist2dnsmasq/temp-gfwlist.txt | perl -ne '/^((?=^.{3,255})[a-zA-Z0-9][-_a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-_a-zA-Z0-9]{0,62})+)/ && print "$1\n"' >> ./community/data/gfw
cat ./community/data/gfw | sort --ignore-case -u > gfw.txt
curl -sSL $WIN_SPY | grep "0.0.0.0" | awk '{print $2}' > ./community/data/win-spy
curl -sSL $WIN_SPY | grep "0.0.0.0" | awk '{print $2}' > win-spy.txt
curl -sSL $WIN_UPDATE | grep "0.0.0.0" | awk '{print $2}' > ./community/data/win-update
curl -sSL $WIN_UPDATE | grep "0.0.0.0" | awk '{print $2}' > win-update.txt
curl -sSL $WIN_EXTRA | grep "0.0.0.0" | awk '{print $2}' > ./community/data/win-extra
curl -sSL $WIN_EXTRA | grep "0.0.0.0" | awk '{print $2}' > win-extra.txt
- name: Add `meta` modification
env:
SED: sed '/^\s*#/d' | sed 's/DOMAIN,//g' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/DOMAIN-KEYWORD,/keyword:/g'
run: |
curl -sSL https://raw.githubusercontent.com/xishang0128/rules/main/biliintl.list > ./community/data/biliintl
curl -sSL https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/SteamCN/SteamCN.list | ${{ env.SED }} > ./community/data/steam-cn
curl -sSL https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/PrivateTracker/PrivateTracker.list | ${{ env.SED }} > ./community/data/tracker
- name: Build geosite.dat file
run: |
cd custom || exit 1
go run ./ --datapath=../community/data
- name: Checkout CHIZI-0618/sing-geosite
- name: Checkout SagerNet/sing-geosite
uses: actions/checkout@v3
with:
repository: CHIZI-0618/sing-geosite
repository: SagerNet/sing-geosite
path: sing-geosite
- name: Build geosite.db file
@@ -181,8 +183,10 @@ jobs:
NO_SKIP: true
run: |
cd sing-geosite || exit 1
cp ../custom/publish/geosite.dat ./
go run -v . geosite.dat geosite.db
sed -i 's/geosite-v2fly\.db/geosite.db/g' main.go
sed -i 's/v2fly\/domain-list-community/Loyalsoldier\/v2ray-rules-dat/g' main.go
sed -i 's/dlc/geosite/g' main.go
go run -v .
- name: Checkout SagerNet/sing-geoip
uses: actions/checkout@v3
@@ -198,29 +202,29 @@ jobs:
sed -i 's/Dreamacro\/maxmind-geoip/Loyalsoldier\/geoip/g' main.go
go run -v .
- name: Move and zip files and generate sha256 hash
- name: Move and zip files
run: |
mkdir -p ./publish/
wget https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb -O ./publish/Country.mmdb
wget https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb -O ./publish/country.mmdb
install -Dp ./geoip.dat ./publish/
install -Dp ./geoip.dat.sha256sum ./publish/
install -Dp ./custom/publish/geosite.dat ./publish/
install -Dp ./sing-geosite/geosite.db ./publish/
install -Dp ./sing-geosite/geosite-v2fly.db ./publish/
install -Dp ./sing-geoip/geoip.db ./publish/
install -p {proxy,direct,reject}-tld-list.txt ./publish/
install -p {proxy,direct,reject}-list.txt ./publish/
install -p hosts ./publish/
install -p apple-cn.txt ./publish/
cd ./publish || exit 1
zip rules.zip {proxy,direct,reject}-list.txt geoip.dat geosite.dat geosite.db geosite-v2fly.db geoip.db
- name: Delete current release assets
uses: andreaswilli/delete-release-assets-action@v2.0.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
tag: latest
deleteOnlyFromDrafts: false
- name: Release and upload assets
uses: softprops/action-gh-release@v0.1.6
with:
name: ${{ env.RELEASE_NAME }}
tag_name: ${{ env.TAG_NAME }}
name: latest
tag_name: latest
draft: false
prerelease: false
files: |