Add custom primary color and color scheme Add linux nad windows arm release Optimize requests and logs page
113 lines
3.8 KiB
Go
113 lines
3.8 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"github.com/metacubex/mihomo/adapter/provider"
|
|
"github.com/metacubex/mihomo/config"
|
|
"time"
|
|
)
|
|
|
|
type InitParams struct {
|
|
HomeDir string `json:"home-dir"`
|
|
Version int `json:"version"`
|
|
}
|
|
|
|
type ConfigExtendedParams struct {
|
|
IsPatch bool `json:"is-patch"`
|
|
IsCompatible bool `json:"is-compatible"`
|
|
SelectedMap map[string]string `json:"selected-map"`
|
|
TestURL *string `json:"test-url"`
|
|
OverrideDns bool `json:"override-dns"`
|
|
OverrideRule bool `json:"override-rule"`
|
|
}
|
|
|
|
type GenerateConfigParams struct {
|
|
ProfileId string `json:"profile-id"`
|
|
Config config.RawConfig `json:"config" `
|
|
Params ConfigExtendedParams `json:"params"`
|
|
}
|
|
|
|
type ChangeProxyParams struct {
|
|
GroupName *string `json:"group-name"`
|
|
ProxyName *string `json:"proxy-name"`
|
|
}
|
|
|
|
type TestDelayParams struct {
|
|
ProxyName string `json:"proxy-name"`
|
|
TestUrl string `json:"test-url"`
|
|
Timeout int64 `json:"timeout"`
|
|
}
|
|
|
|
type ExternalProvider struct {
|
|
Name string `json:"name"`
|
|
Type string `json:"type"`
|
|
VehicleType string `json:"vehicle-type"`
|
|
Count int `json:"count"`
|
|
Path string `json:"path"`
|
|
UpdateAt time.Time `json:"update-at"`
|
|
SubscriptionInfo *provider.SubscriptionInfo `json:"subscription-info"`
|
|
}
|
|
|
|
const (
|
|
messageMethod Method = "message"
|
|
initClashMethod Method = "initClash"
|
|
getIsInitMethod Method = "getIsInit"
|
|
forceGcMethod Method = "forceGc"
|
|
shutdownMethod Method = "shutdown"
|
|
validateConfigMethod Method = "validateConfig"
|
|
updateConfigMethod Method = "updateConfig"
|
|
getProxiesMethod Method = "getProxies"
|
|
changeProxyMethod Method = "changeProxy"
|
|
getTrafficMethod Method = "getTraffic"
|
|
getTotalTrafficMethod Method = "getTotalTraffic"
|
|
resetTrafficMethod Method = "resetTraffic"
|
|
asyncTestDelayMethod Method = "asyncTestDelay"
|
|
getConnectionsMethod Method = "getConnections"
|
|
closeConnectionsMethod Method = "closeConnections"
|
|
closeConnectionMethod Method = "closeConnection"
|
|
getExternalProvidersMethod Method = "getExternalProviders"
|
|
getExternalProviderMethod Method = "getExternalProvider"
|
|
getCountryCodeMethod Method = "getCountryCode"
|
|
getMemoryMethod Method = "getMemory"
|
|
updateGeoDataMethod Method = "updateGeoData"
|
|
updateExternalProviderMethod Method = "updateExternalProvider"
|
|
sideLoadExternalProviderMethod Method = "sideLoadExternalProvider"
|
|
startLogMethod Method = "startLog"
|
|
stopLogMethod Method = "stopLog"
|
|
startListenerMethod Method = "startListener"
|
|
stopListenerMethod Method = "stopListener"
|
|
updateDnsMethod Method = "updateDns"
|
|
setStateMethod Method = "setState"
|
|
getAndroidVpnOptionsMethod Method = "getAndroidVpnOptions"
|
|
getRunTimeMethod Method = "getRunTime"
|
|
getCurrentProfileNameMethod Method = "getCurrentProfileName"
|
|
getProfileMethod Method = "getProfile"
|
|
)
|
|
|
|
type Method string
|
|
|
|
type MessageType string
|
|
|
|
type Delay struct {
|
|
Url string `json:"url"`
|
|
Name string `json:"name"`
|
|
Value int32 `json:"value"`
|
|
}
|
|
|
|
type Message struct {
|
|
Type MessageType `json:"type"`
|
|
Data interface{} `json:"data"`
|
|
}
|
|
|
|
const (
|
|
LogMessage MessageType = "log"
|
|
DelayMessage MessageType = "delay"
|
|
RequestMessage MessageType = "request"
|
|
LoadedMessage MessageType = "loaded"
|
|
)
|
|
|
|
func (message *Message) Json() (string, error) {
|
|
data, err := json.Marshal(message)
|
|
return string(data), err
|
|
}
|