feat: init

This commit is contained in:
Rogee
2024-09-30 11:02:26 +08:00
parent 679759846b
commit 694dfd2a4f
90 changed files with 6046 additions and 15 deletions

BIN
cmd/proxy/apps.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

34
cmd/proxy/ca.crt Normal file
View File

@@ -0,0 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIF9DCCA9ygAwIBAgIJAODqYUwoVjJkMA0GCSqGSIb3DQEBCwUAMIGOMQswCQYD
VQQGEwJJTDEPMA0GA1UECAwGQ2VudGVyMQwwCgYDVQQHDANMb2QxEDAOBgNVBAoM
B0dvUHJveHkxEDAOBgNVBAsMB0dvUHJveHkxGjAYBgNVBAMMEWdvcHJveHkuZ2l0
aHViLmlvMSAwHgYJKoZIhvcNAQkBFhFlbGF6YXJsQGdtYWlsLmNvbTAeFw0xNzA0
MDUyMDAwMTBaFw0zNzAzMzEyMDAwMTBaMIGOMQswCQYDVQQGEwJJTDEPMA0GA1UE
CAwGQ2VudGVyMQwwCgYDVQQHDANMb2QxEDAOBgNVBAoMB0dvUHJveHkxEDAOBgNV
BAsMB0dvUHJveHkxGjAYBgNVBAMMEWdvcHJveHkuZ2l0aHViLmlvMSAwHgYJKoZI
hvcNAQkBFhFlbGF6YXJsQGdtYWlsLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
ADCCAgoCggIBAJ4Qy+H6hhoY1s0QRcvIhxrjSHaO/RbaFj3rwqcnpOgFq07gRdI9
3c0TFKQJHpgv6feLRhEvX/YllFYu4J35lM9ZcYY4qlKFuStcX8Jm8fqpgtmAMBzP
sqtqDi8M9RQGKENzU9IFOnCV7SAeh45scMuI3wz8wrjBcH7zquHkvqUSYZz035t9
V6WTrHyTEvT4w+lFOVN2bA/6DAIxrjBiF6DhoJqnha0SZtDfv77XpwGG3EhA/qoh
hiYrDruYK7zJdESQL44LwzMPupVigqalfv+YHfQjbhT951IVurW2NJgRyBE62dLr
lHYdtT9tCTCrd+KJNMJ+jp9hAjdIu1Br/kifU4F4+4ZLMR9Ueji0GkkPKsYdyMnq
j0p0PogyvP1l4qmboPImMYtaoFuYmMYlebgC9LN10bL91K4+jLt0I1YntEzrqgJo
WsJztYDw543NzSy5W+/cq4XRYgtq1b0RWwuUiswezmMoeyHZ8BQJe2xMjAOllASD
fqa8OK3WABHJpy4zUrnUBiMuPITzD/FuDx4C5IwwlC68gHAZblNqpBZCX0nFCtKj
YOcI2So5HbQ2OC8QF+zGVuduHUSok4hSy2BBfZ1pfvziqBeetWJwFvapGB44nIHh
WKNKvqOxLNIy7e+TGRiWOomrAWM18VSR9LZbBxpJK7PLSzWqYJYTRCZHAgMBAAGj
UzBRMB0GA1UdDgQWBBR4uDD9Y6x7iUoHO+32ioOcw1ICZTAfBgNVHSMEGDAWgBR4
uDD9Y6x7iUoHO+32ioOcw1ICZTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
CwUAA4ICAQAaCEupzGGqcdh+L7BzhX7zyd7yzAKUoLxFrxaZY34Xyj3lcx1XoK6F
AqsH2JM25GixgadzhNt92JP7vzoWeHZtLfstrPS638Y1zZi6toy4E49viYjFk5J0
C6ZcFC04VYWWx6z0HwJuAS08tZ37JuFXpJGfXJOjZCQyxse0Lg0tuKLMeXDCk2Y3
Ba0noeuNyHRoWXXPyiUoeApkVCU5gIsyiJSWOjhJ5hpJG06rQNfNYexgKrrraEin
o0jmEMtJMx5TtD83hSnLCnFGBBq5lkE7jgXME1KsbIE3lJZzRX1mQwUK8CJDYxye
i6M/dzSvy0SsPvz8fTAlprXRtWWtJQmxgWENp3Dv+0Pmux/l+ilk7KA4sMXGhsfr
bvTOeWl1/uoFTPYiWR/ww7QEPLq23yDFY04Q7Un0qjIk8ExvaY8lCkXMgc8i7sGY
VfvOYb0zm67EfAQl3TW8Ky5fl5CcxpVCD360Bzi6hwjYixa3qEeBggOixFQBFWft
8wrkKTHpOQXjn4sDPtet8imm9UYEtzWrFX6T9MFYkBR0/yye0FIh9+YPiTA6WB86
NCNwK5Yl6HuvF97CIH5CdgO+5C7KifUtqTOL8pQKbNwy0S3sNYvB+njGvRpR7pKV
BUnFpB/Atptqr4CUlTXrc5IPLAqAfmwk5IKcwy3EXUbruf9Dwz69YA==
-----END CERTIFICATE-----

BIN
cmd/proxy/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

15
cmd/proxy/proxy.manifest Normal file
View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly>
</dependency>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True</dpiAware>
</windowsSettings>
</application>
</assembly>

24
cmd/proxy/proxy_linux.go Normal file
View File

@@ -0,0 +1,24 @@
package main
import (
"log"
"dyproxy/modules/proxy"
"github.com/spf13/cobra"
)
func main() {
cmd := &cobra.Command{
Use: "proxy",
Short: "serve proxy",
RunE: proxy.ServeE,
}
cmd.Flags().StringP("host", "H", "https://f.jdwan.com", "default post data to host")
cmd.Flags().BoolP("debug", "D", false, "debug mode")
cmd.Flags().IntP("duration", "d", 10, "fans fetch duration")
if err := cmd.Execute(); err != nil {
log.Fatal(err)
}
}

114
cmd/proxy/proxy_windows.go Normal file
View File

@@ -0,0 +1,114 @@
package main
import (
_ "embed"
"fmt"
"os"
"os/exec"
"strings"
"time"
"dyproxy/modules/proxy"
"github.com/lxn/walk"
. "github.com/lxn/walk/declarative"
"github.com/sirupsen/logrus"
)
var (
outTE *walk.TextEdit
wnd *walk.MainWindow
btnService *walk.PushButton
err error
pr *proxy.Proxy
)
//go:embed ca.crt
var ca []byte
func init() {
// if go os is windows
if strings.ToLower(os.Getenv("GOOS")) == "windows" {
// get tmp path
tmpPath := os.TempDir()
// write ca.crt to tmp path
err := os.WriteFile(tmpPath+"/ca.crt", ca, 0o644)
if err != nil {
logrus.Fatal(err)
}
logrus.Info("import root cert")
// run certutil.exe -addstore root tmpPath+"/ca.crt"
cmd := exec.Command("certutil.exe", "-addstore", "root", tmpPath+"/ca.crt")
err = cmd.Run()
if err != nil {
logrus.Fatal(err)
}
}
}
func main() {
MainWindow{
AssignTo: &wnd,
Title: "粉丝代理服务",
Size: Size{300, 300},
Layout: VBox{},
Children: []Widget{
PushButton{
Text: "开启服务",
MinSize: Size{300, 50},
AssignTo: &btnService,
OnClicked: func() {
errChan := make(chan error)
if btnService.Text() == "开启服务" {
btnService.SetEnabled(false)
outTE.AppendText("服务启动中...\r\n")
if pr == nil {
pr = proxy.NewProxy("https://f.jdwan.com", false, 10)
go func() {
errChan <- pr.Serve(29999)
}()
}
select {
case err := <-errChan:
outTE.AppendText(err.Error() + "\r\n")
case <-time.After(2 * time.Second):
outTE.AppendText("服务启动成功\r\n")
btnService.SetText("停止服务")
go func() {
err = <-errChan
outTE.AppendText("[ERR] " + err.Error() + "\r\n")
btnService.SetText("开启服务")
btnService.SetEnabled(true)
}()
}
btnService.SetEnabled(true)
} else {
btnService.SetEnabled(false)
outTE.AppendText("服务停止中...\r\n")
pr.Shutdown()
outTE.AppendText("服务停止成功\r\n")
btnService.SetText("开启服务")
btnService.SetEnabled(true)
}
},
},
TextEdit{AssignTo: &outTE, ReadOnly: true},
},
}.Create()
wnd.Closing().Attach(func(canceled *bool, reason walk.CloseReason) {
fmt.Println("Application closing.")
if pr != nil {
outTE.AppendText("服务停止中...\r\n")
pr.Shutdown()
outTE.AppendText("服务停止成功\r\n")
}
})
wnd.Disposing().Attach(func() {
fmt.Println("Application has exited.")
})
wnd.Run()
}

BIN
cmd/proxy/rsrc.syso Normal file

Binary file not shown.