Skip to content

Commit 25a3f03

Browse files
committed
Remake desktop
Optimize lots of details
1 parent 0901390 commit 25a3f03

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+5060
-2028
lines changed

.github/workflows/build.yaml

Lines changed: 63 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,70 @@ on:
66
- 'v*'
77

88
jobs:
9+
changelog:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
if: ${{ !contains(github.ref, '+') }}
14+
uses: actions/checkout@v4
15+
with:
16+
fetch-depth: 0
17+
18+
- name: Generate
19+
if: ${{ !contains(github.ref, '+') }}
20+
run: |
21+
tags=($(git tag --merged $(git rev-parse HEAD) --sort=-creatordate))
22+
preTag=$(grep -oP '^## \K.*' CHANGELOG.md | head -n 1)
23+
currentTag=""
24+
for ((i = 0; i <= ${#tags[@]}; i++)); do
25+
if (( i < ${#tags[@]} )); then
26+
tag=${tags[$i]}
27+
else
28+
tag=""
29+
fi
30+
if [ -n "$currentTag" ]; then
31+
if [ "$(echo -e "$currentTag\n$preTag" | sort -V | head -n 1)" == "$currentTag" ]; then
32+
break
33+
fi
34+
fi
35+
if [ -n "$currentTag" ]; then
36+
echo "## $currentTag" >> NEW_CHANGELOG.md
37+
echo "" >> NEW_CHANGELOG.md
38+
if [ -n "$tag" ]; then
39+
git log --pretty=format:"%B" "$tag..$currentTag" | awk 'NF {print "- " $0} !NF {print ""}' >> NEW_CHANGELOG.md
40+
else
41+
git log --pretty=format:"%B" "$currentTag" | awk 'NF {print "- " $0} !NF {print ""}' >> NEW_CHANGELOG.md
42+
fi
43+
echo "" >> NEW_CHANGELOG.md
44+
fi
45+
currentTag=$tag
46+
done
47+
cat CHANGELOG.md >> NEW_CHANGELOG.md
48+
cat NEW_CHANGELOG.md > CHANGELOG.md
49+
50+
- name: Commit
51+
if: ${{ !contains(github.ref, '+') }}
52+
run: |
53+
git add CHANGELOG.md
54+
if ! git diff --cached --quiet; then
55+
echo "Commit pushing"
56+
git config --local user.email "[email protected]"
57+
git config --local user.name "chen08209"
58+
git commit -m "Update changelog"
59+
git push
60+
if [ $? -eq 0 ]; then
61+
echo "Push succeeded"
62+
else
63+
echo "Push failed"
64+
exit 1
65+
fi
66+
fi
67+
68+
env:
69+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
70+
971
build:
72+
needs: [ changelog ]
1073
runs-on: ${{ matrix.os }}
1174
strategy:
1275
matrix:
@@ -27,25 +90,6 @@ jobs:
2790
arch: arm64
2891

2992
steps:
30-
- name: Setup Mingw64
31-
if: startsWith(matrix.platform,'windows')
32-
uses: msys2/setup-msys2@v2
33-
with:
34-
msystem: mingw64
35-
install: mingw-w64-x86_64-gcc
36-
update: true
37-
38-
- name: Set Mingw64 Env
39-
if: startsWith(matrix.platform,'windows')
40-
run: |
41-
echo "${{ runner.temp }}\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
42-
43-
- name: Check Matrix
44-
run: |
45-
echo "Running on ${{ matrix.os }}"
46-
echo "Arch: ${{ runner.arch }}"
47-
gcc --version
48-
4993
- name: Checkout
5094
uses: actions/checkout@v4
5195
with:
@@ -103,7 +147,6 @@ jobs:
103147
path: ./dist
104148
overwrite: true
105149

106-
107150
upload:
108151
permissions: write-all
109152
needs: [ build ]

.github/workflows/change.yaml

Lines changed: 0 additions & 66 deletions
This file was deleted.

core/Clash.Meta

core/action.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package main
2+
3+
import (
4+
"encoding/json"
5+
)
6+
7+
const (
8+
messageMethod Method = "message"
9+
initClashMethod Method = "initClash"
10+
getIsInitMethod Method = "getIsInit"
11+
forceGcMethod Method = "forceGc"
12+
shutdownMethod Method = "shutdown"
13+
validateConfigMethod Method = "validateConfig"
14+
updateConfigMethod Method = "updateConfig"
15+
getProxiesMethod Method = "getProxies"
16+
changeProxyMethod Method = "changeProxy"
17+
getTrafficMethod Method = "getTraffic"
18+
getTotalTrafficMethod Method = "getTotalTraffic"
19+
resetTrafficMethod Method = "resetTraffic"
20+
asyncTestDelayMethod Method = "asyncTestDelay"
21+
getConnectionsMethod Method = "getConnections"
22+
closeConnectionsMethod Method = "closeConnections"
23+
closeConnectionMethod Method = "closeConnection"
24+
getExternalProvidersMethod Method = "getExternalProviders"
25+
getExternalProviderMethod Method = "getExternalProvider"
26+
updateGeoDataMethod Method = "updateGeoData"
27+
updateExternalProviderMethod Method = "updateExternalProvider"
28+
sideLoadExternalProviderMethod Method = "sideLoadExternalProvider"
29+
startLogMethod Method = "startLog"
30+
stopLogMethod Method = "stopLog"
31+
startListenerMethod Method = "startListener"
32+
stopListenerMethod Method = "stopListener"
33+
)
34+
35+
type Method string
36+
37+
type Action struct {
38+
Id string `json:"id"`
39+
Method Method `json:"method"`
40+
Data interface{} `json:"data"`
41+
}
42+
43+
func (action Action) Json() ([]byte, error) {
44+
data, err := json.Marshal(action)
45+
return data, err
46+
}
47+
48+
func (action Action) callback(data interface{}) bool {
49+
if conn == nil {
50+
return false
51+
}
52+
sendAction := Action{
53+
Id: action.Id,
54+
Method: action.Method,
55+
Data: data,
56+
}
57+
res, err := sendAction.Json()
58+
if err != nil {
59+
return false
60+
}
61+
_, err = conn.Write(append(res, []byte("\n")...))
62+
if err != nil {
63+
return false
64+
}
65+
return true
66+
}

0 commit comments

Comments
 (0)