parent
5c36ca16c1
commit
9515303ce4
28
.github/workflows/build.yml
vendored
28
.github/workflows/build.yml
vendored
@ -47,13 +47,17 @@ jobs:
|
|||||||
xz -z -9 -k dlc.dat
|
xz -z -9 -k dlc.dat
|
||||||
sha256sum dlc.dat.xz > dlc.dat.xz.sha256sum
|
sha256sum dlc.dat.xz > dlc.dat.xz.sha256sum
|
||||||
|
|
||||||
|
- name: Generate gfwlist.txt sha256 hash
|
||||||
|
run: |
|
||||||
|
sha256sum gfwlist.txt > gfwlist.txt.sha256sum
|
||||||
|
|
||||||
- name: Git push assets to "release" branch
|
- name: Git push assets to "release" branch
|
||||||
run: |
|
run: |
|
||||||
git init
|
git init
|
||||||
git config --local user.name "actions"
|
git config --local user.name "actions"
|
||||||
git config --local user.email "action@github.com"
|
git config --local user.email "action@github.com"
|
||||||
git checkout -b release
|
git checkout -b release
|
||||||
git add *.txt dlc.dat dlc.dat.sha256sum dlc.dat.zip dlc.dat.zip.sha256sum dlc.dat.xz dlc.dat.xz.sha256sum
|
git add *.txt dlc.dat dlc.dat.sha256sum dlc.dat.zip dlc.dat.zip.sha256sum dlc.dat.xz dlc.dat.xz.sha256sum gfwlist.txt gfwlist.txt.sha256sum
|
||||||
git commit -m "${{ env.RELEASE_NAME }}"
|
git commit -m "${{ env.RELEASE_NAME }}"
|
||||||
git remote add origin "https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}"
|
git remote add origin "https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}"
|
||||||
git push -f -u origin release
|
git push -f -u origin release
|
||||||
@ -119,7 +123,7 @@ jobs:
|
|||||||
asset_name: dlc.dat.xz
|
asset_name: dlc.dat.xz
|
||||||
asset_content_type: application/octet-stream
|
asset_content_type: application/octet-stream
|
||||||
|
|
||||||
- name: Upload dlc.dat sha256sum
|
- name: Upload dlc.dat.xz sha256sum
|
||||||
uses: actions/upload-release-asset@v1
|
uses: actions/upload-release-asset@v1
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@ -127,4 +131,24 @@ jobs:
|
|||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
asset_path: ./dlc.dat.xz.sha256sum
|
asset_path: ./dlc.dat.xz.sha256sum
|
||||||
asset_name: dlc.dat.xz.sha256sum
|
asset_name: dlc.dat.xz.sha256sum
|
||||||
|
asset_content_type: text/plain
|
||||||
|
|
||||||
|
- name: Upload gfwlist.txt
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: ./gfwlist.txt
|
||||||
|
asset_name: gfwlist.txt
|
||||||
|
asset_content_type: text/plain
|
||||||
|
|
||||||
|
- name: Upload gfwlist.txt sha256sum
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: ./gfwlist.txt.sha256sum
|
||||||
|
asset_name: gfwlist.txt.sha256sum
|
||||||
asset_content_type: text/plain
|
asset_content_type: text/plain
|
42
main.go
42
main.go
@ -2,6 +2,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
|
"encoding/base64"
|
||||||
"errors"
|
"errors"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
@ -107,6 +108,39 @@ func exportPlainTextList(list []string, refName string, pl *ParsedList) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func exportGfwList(pl *ParsedList) error {
|
||||||
|
var entryBytes []byte
|
||||||
|
entryBytes = append(entryBytes, []byte("[AutoProxy 0.2.9]\n")...)
|
||||||
|
for _, entry := range pl.Entry {
|
||||||
|
switch entry.Type {
|
||||||
|
case "domain":
|
||||||
|
entryBytes = append(entryBytes, []byte("||"+entry.Value+"\n")...)
|
||||||
|
case "full":
|
||||||
|
entryBytes = append(entryBytes, []byte("|http://"+entry.Value+"\n")...)
|
||||||
|
entryBytes = append(entryBytes, []byte("|https://"+entry.Value+"\n")...)
|
||||||
|
case "keyword":
|
||||||
|
entryBytes = append(entryBytes, []byte(entry.Value+"\n")...)
|
||||||
|
case "regexp":
|
||||||
|
entryBytes = append(entryBytes, []byte("/"+entry.Value+"/\n")...)
|
||||||
|
default:
|
||||||
|
return errors.New("unknown domain type: " + entry.Type)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
f, err := os.OpenFile("gfwlist.txt", os.O_RDWR|os.O_CREATE, 0644)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
encoder := base64.NewEncoder(base64.StdEncoding, f)
|
||||||
|
if _, err = encoder.Write(entryBytes); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err = encoder.Close(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func removeComment(line string) string {
|
func removeComment(line string) string {
|
||||||
idx := strings.Index(line, "#")
|
idx := strings.Index(line, "#")
|
||||||
if idx == -1 {
|
if idx == -1 {
|
||||||
@ -374,6 +408,14 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Export GfwList
|
||||||
|
if refName == "GEOLOCATION-!CN" {
|
||||||
|
if err := exportGfwList(pl); err != nil {
|
||||||
|
fmt.Println("Failed: ", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protoBytes, err := proto.Marshal(protoList)
|
protoBytes, err := proto.Marshal(protoList)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user