Skip to content

Commit

Permalink
add vmessconv
Browse files Browse the repository at this point in the history
  • Loading branch information
vcptr committed Jan 13, 2020
1 parent 604c382 commit 203b996
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 8 deletions.
27 changes: 21 additions & 6 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,29 @@ jobs:
run: |
go get -v -t -d ./...
- name: Build
- name: Build Vmessping
run: |
BINNAME=vmessping
GITVER=$(git describe --tags || git rev-parse --short HEAD)
CMDDIR=$(pwd)
LDFLAGS="-s -w -X main.MAINVER=${GITVER}"
pushd cmd/vmessping
GOOS=linux GOARCH=amd64 go build -ldflags="${LDFLAGS}" -v -o vmessping_amd64_linux .
GOOS=windows GOARCH=amd64 go build -ldflags="${LDFLAGS}" -v -o vmessping_amd64_windows.exe .
zip $CMDDIR/vmessping_amd64_linux.zip vmessping_amd64_linux
zip $CMDDIR/vmessping_amd64_windows.zip vmessping_amd64_windows.exe
pushd cmd/${BINNAME}
GOOS=linux GOARCH=amd64 go build -ldflags="${LDFLAGS}" -v -o ${BINNAME}_amd64_linux .
GOOS=windows GOARCH=amd64 go build -ldflags="${LDFLAGS}" -v -o ${BINNAME}_amd64_windows.exe .
zip $CMDDIR/${BINNAME}_amd64_linux.zip ${BINNAME}_amd64_linux
zip $CMDDIR/${BINNAME}_amd64_windows.zip ${BINNAME}_amd64_windows.exe
- name: Build Vmessconv
run: |
BINNAME=vmessconv
GITVER=$(git describe --tags || git rev-parse --short HEAD)
CMDDIR=$(pwd)
LDFLAGS="-s -w -X main.MAINVER=${GITVER}"
pushd cmd/${BINNAME}
GOOS=linux GOARCH=amd64 go build -ldflags="${LDFLAGS}" -v -o ${BINNAME}_amd64_linux .
GOOS=windows GOARCH=amd64 go build -ldflags="${LDFLAGS}" -v -o ${BINNAME}_amd64_windows.exe .
zip $CMDDIR/${BINNAME}_amd64_linux.zip ${BINNAME}_amd64_linux
zip $CMDDIR/${BINNAME}_amd64_windows.zip ${BINNAME}_amd64_windows.exe
- name: Release
uses: softprops/action-gh-release@v1
Expand All @@ -55,6 +68,8 @@ jobs:
files: |
vmessping_amd64_linux.zip
vmessping_amd64_windows.zip
vmessconv_amd64_linux.zip
vmessconv_amd64_windows.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

37 changes: 37 additions & 0 deletions cmd/vmessconv/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package main

import (
"flag"
"fmt"
"log"
"os"

"github.com/v2fly/vmessping/vmess"
)

var (
MAINVER = "0.0.0-src"
)

func main() {
flag.Parse()
var link string
if flag.NArg() == 0 {
if link = os.Getenv("VMESS"); link == "" {
fmt.Println(os.Args[0], "vmess://....")
flag.Usage()
os.Exit(1)
}
} else {
link = flag.Args()[0]
}

lk, err := vmess.ParseVmess(link)
if err != nil {
log.Fatalln(err)
}
fmt.Println("VmessConvert:", MAINVER)
fmt.Println("V2rayN:", lk.LinkStr("ng"))
fmt.Println("ShadowRocket:", lk.LinkStr("rk"))
fmt.Println("Quantumult:", lk.LinkStr("quan"))
}
11 changes: 9 additions & 2 deletions vmess/vmess.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func (v VmessLink) asNgLink() string {
}

func (v VmessLink) asRocketLink() string {
mhp := fmt.Sprintf("auto:%s@%s:%s", v.ID, v.Add, v.Port)
mhp := fmt.Sprintf("%s:%s@%s:%s", v.Type, v.ID, v.Add, v.Port)
qs := url.Values{}
qs.Add("remarks", v.Ps)
if v.Net == "ws" {
Expand All @@ -79,7 +79,14 @@ func (v VmessLink) asRocketLink() string {
if v.TLS == "tls" {
qs.Add("tls", "1")
}
return fmt.Sprintf("vmess://%s?%s", base64.URLEncoding.EncodeToString([]byte(mhp)), qs.Encode())

url := url.URL{
Scheme: "vmess",
Host: base64.URLEncoding.EncodeToString([]byte(mhp)),
RawQuery: qs.Encode(),
}

return url.String()
}

func (v VmessLink) asQuantumult() string {
Expand Down

0 comments on commit 203b996

Please sign in to comment.