mirror of
https://github.com/eeeXun/GTT.git
synced 2025-05-29 05:50:17 -07:00
feat: make host of DeepLX configurable
This commit is contained in:
parent
72034636af
commit
fc9009e9ff
@ -38,7 +38,7 @@ See the example in [server.yaml](example/server.yaml) file.
|
|||||||
api_key:
|
api_key:
|
||||||
deeplx: DEEPLX_API_KEY # <- Replace with your API Key
|
deeplx: DEEPLX_API_KEY # <- Replace with your API Key
|
||||||
host:
|
host:
|
||||||
deeplx: 127.0.0.1:1188 # <- Replace with your DeepLX server IP address and port
|
deeplx: 127.0.0.1:1188 # <- Replace with your server IP address and port
|
||||||
```
|
```
|
||||||
|
|
||||||
## ScreenShot
|
## ScreenShot
|
||||||
|
@ -156,13 +156,18 @@ func configInit() {
|
|||||||
uiStyle.Transparent = config.GetBool("transparent")
|
uiStyle.Transparent = config.GetBool("transparent")
|
||||||
uiStyle.SetSrcBorderColor(config.GetString("source.border_color")).
|
uiStyle.SetSrcBorderColor(config.GetString("source.border_color")).
|
||||||
SetDstBorderColor(config.GetString("destination.border_color"))
|
SetDstBorderColor(config.GetString("destination.border_color"))
|
||||||
// Import api key if file exists
|
// Import api key and host if file exists
|
||||||
if err := serverConfig.ReadInConfig(); err == nil {
|
if err := serverConfig.ReadInConfig(); err == nil {
|
||||||
|
// api key
|
||||||
for _, name := range []string{"ChatGPT", "DeepL", "DeepLX"} {
|
for _, name := range []string{"ChatGPT", "DeepL", "DeepLX"} {
|
||||||
if serverConfig.Get(fmt.Sprintf("api_key.%s", name)) != nil {
|
if serverConfig.Get(fmt.Sprintf("api_key.%s", name)) != nil {
|
||||||
translators[name].SetAPIKey(serverConfig.GetString(fmt.Sprintf("api_key.%s", name)))
|
translators[name].SetAPIKey(serverConfig.GetString(fmt.Sprintf("api_key.%s", name)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// host
|
||||||
|
if serverConfig.Get("host.deeplx") != nil {
|
||||||
|
translators["DeepLX"].SetHost(serverConfig.GetString("host.deeplx"))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Set argument language
|
// Set argument language
|
||||||
if len(*srcLangArg) > 0 {
|
if len(*srcLangArg) > 0 {
|
||||||
|
@ -3,3 +3,5 @@ api_key:
|
|||||||
chatgpt: CHATGPT_API_KEY
|
chatgpt: CHATGPT_API_KEY
|
||||||
deepl: DEEPL_API_KEY
|
deepl: DEEPL_API_KEY
|
||||||
deeplx: DEEPLX_API_KEY
|
deeplx: DEEPLX_API_KEY
|
||||||
|
host:
|
||||||
|
deeplx: 127.0.0.1:1188
|
||||||
|
@ -16,7 +16,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Translator struct {
|
type Translator struct {
|
||||||
*core.APIKey
|
*core.Server
|
||||||
*core.Language
|
*core.Language
|
||||||
*core.TTSLock
|
*core.TTSLock
|
||||||
core.EngineName
|
core.EngineName
|
||||||
@ -24,7 +24,7 @@ type Translator struct {
|
|||||||
|
|
||||||
func NewTranslator() *Translator {
|
func NewTranslator() *Translator {
|
||||||
return &Translator{
|
return &Translator{
|
||||||
APIKey: new(core.APIKey),
|
Server: new(core.Server),
|
||||||
Language: new(core.Language),
|
Language: new(core.Language),
|
||||||
TTSLock: core.NewTTSLock(),
|
TTSLock: core.NewTTSLock(),
|
||||||
EngineName: core.NewEngineName("Apertium"),
|
EngineName: core.NewEngineName("Apertium"),
|
||||||
|
@ -15,7 +15,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Translator struct {
|
type Translator struct {
|
||||||
*core.APIKey
|
*core.Server
|
||||||
*core.Language
|
*core.Language
|
||||||
*core.TTSLock
|
*core.TTSLock
|
||||||
core.EngineName
|
core.EngineName
|
||||||
@ -23,7 +23,7 @@ type Translator struct {
|
|||||||
|
|
||||||
func NewTranslator() *Translator {
|
func NewTranslator() *Translator {
|
||||||
return &Translator{
|
return &Translator{
|
||||||
APIKey: new(core.APIKey),
|
Server: new(core.Server),
|
||||||
Language: new(core.Language),
|
Language: new(core.Language),
|
||||||
TTSLock: core.NewTTSLock(),
|
TTSLock: core.NewTTSLock(),
|
||||||
EngineName: core.NewEngineName("Argos"),
|
EngineName: core.NewEngineName("Argos"),
|
||||||
|
@ -25,7 +25,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Translator struct {
|
type Translator struct {
|
||||||
*core.APIKey
|
*core.Server
|
||||||
*core.Language
|
*core.Language
|
||||||
*core.TTSLock
|
*core.TTSLock
|
||||||
core.EngineName
|
core.EngineName
|
||||||
@ -40,7 +40,7 @@ type setUpData struct {
|
|||||||
|
|
||||||
func NewTranslator() *Translator {
|
func NewTranslator() *Translator {
|
||||||
return &Translator{
|
return &Translator{
|
||||||
APIKey: new(core.APIKey),
|
Server: new(core.Server),
|
||||||
Language: new(core.Language),
|
Language: new(core.Language),
|
||||||
TTSLock: core.NewTTSLock(),
|
TTSLock: core.NewTTSLock(),
|
||||||
EngineName: core.NewEngineName("Bing"),
|
EngineName: core.NewEngineName("Bing"),
|
||||||
|
@ -16,7 +16,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Translator struct {
|
type Translator struct {
|
||||||
*core.APIKey
|
*core.Server
|
||||||
*core.Language
|
*core.Language
|
||||||
*core.TTSLock
|
*core.TTSLock
|
||||||
core.EngineName
|
core.EngineName
|
||||||
@ -24,7 +24,7 @@ type Translator struct {
|
|||||||
|
|
||||||
func NewTranslator() *Translator {
|
func NewTranslator() *Translator {
|
||||||
return &Translator{
|
return &Translator{
|
||||||
APIKey: new(core.APIKey),
|
Server: new(core.Server),
|
||||||
Language: new(core.Language),
|
Language: new(core.Language),
|
||||||
TTSLock: core.NewTTSLock(),
|
TTSLock: core.NewTTSLock(),
|
||||||
EngineName: core.NewEngineName("ChatGPT"),
|
EngineName: core.NewEngineName("ChatGPT"),
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
package core
|
|
||||||
|
|
||||||
type APIKey struct {
|
|
||||||
key string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (k *APIKey) SetAPIKey(key string) {
|
|
||||||
k.key = key
|
|
||||||
}
|
|
||||||
|
|
||||||
func (k *APIKey) GetAPIKey() string {
|
|
||||||
return k.key
|
|
||||||
}
|
|
22
internal/translate/core/server.go
Normal file
22
internal/translate/core/server.go
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
type Server struct {
|
||||||
|
host string
|
||||||
|
apiKey string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Server) SetHost(host string) {
|
||||||
|
s.host = host
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Server) GetHost() string {
|
||||||
|
return s.host
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Server) SetAPIKey(key string) {
|
||||||
|
s.apiKey = key
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Server) GetAPIKey() string {
|
||||||
|
return s.apiKey
|
||||||
|
}
|
@ -16,7 +16,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Translator struct {
|
type Translator struct {
|
||||||
*core.APIKey
|
*core.Server
|
||||||
*core.Language
|
*core.Language
|
||||||
*core.TTSLock
|
*core.TTSLock
|
||||||
core.EngineName
|
core.EngineName
|
||||||
@ -24,7 +24,7 @@ type Translator struct {
|
|||||||
|
|
||||||
func NewTranslator() *Translator {
|
func NewTranslator() *Translator {
|
||||||
return &Translator{
|
return &Translator{
|
||||||
APIKey: new(core.APIKey),
|
Server: new(core.Server),
|
||||||
Language: new(core.Language),
|
Language: new(core.Language),
|
||||||
TTSLock: core.NewTTSLock(),
|
TTSLock: core.NewTTSLock(),
|
||||||
EngineName: core.NewEngineName("DeepL"),
|
EngineName: core.NewEngineName("DeepL"),
|
||||||
|
@ -10,12 +10,8 @@ import (
|
|||||||
"github.com/eeeXun/gtt/internal/translate/core"
|
"github.com/eeeXun/gtt/internal/translate/core"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
textURL = "http://localhost:1188/translate"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Translator struct {
|
type Translator struct {
|
||||||
*core.APIKey
|
*core.Server
|
||||||
*core.Language
|
*core.Language
|
||||||
*core.TTSLock
|
*core.TTSLock
|
||||||
core.EngineName
|
core.EngineName
|
||||||
@ -23,7 +19,7 @@ type Translator struct {
|
|||||||
|
|
||||||
func NewTranslator() *Translator {
|
func NewTranslator() *Translator {
|
||||||
return &Translator{
|
return &Translator{
|
||||||
APIKey: new(core.APIKey),
|
Server: new(core.Server),
|
||||||
Language: new(core.Language),
|
Language: new(core.Language),
|
||||||
TTSLock: core.NewTTSLock(),
|
TTSLock: core.NewTTSLock(),
|
||||||
EngineName: core.NewEngineName("DeepLX"),
|
EngineName: core.NewEngineName("DeepLX"),
|
||||||
@ -38,13 +34,17 @@ func (t *Translator) Translate(message string) (translation *core.Translation, e
|
|||||||
translation = new(core.Translation)
|
translation = new(core.Translation)
|
||||||
var data map[string]interface{}
|
var data map[string]interface{}
|
||||||
|
|
||||||
|
if len(t.GetHost()) <= 0 {
|
||||||
|
return nil, errors.New("Please write your host in config file for " + t.GetEngineName())
|
||||||
|
}
|
||||||
|
|
||||||
userData, _ := json.Marshal(map[string]interface{}{
|
userData, _ := json.Marshal(map[string]interface{}{
|
||||||
"text": message,
|
"text": message,
|
||||||
"source_lang": langCode[t.GetSrcLang()],
|
"source_lang": langCode[t.GetSrcLang()],
|
||||||
"target_lang": langCode[t.GetDstLang()],
|
"target_lang": langCode[t.GetDstLang()],
|
||||||
})
|
})
|
||||||
req, _ := http.NewRequest(http.MethodPost,
|
req, _ := http.NewRequest(http.MethodPost,
|
||||||
textURL,
|
"http://"+t.GetHost()+"/translate",
|
||||||
bytes.NewBuffer(userData),
|
bytes.NewBuffer(userData),
|
||||||
)
|
)
|
||||||
req.Header.Add("Content-Type", "application/json")
|
req.Header.Add("Content-Type", "application/json")
|
||||||
|
@ -20,7 +20,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Translator struct {
|
type Translator struct {
|
||||||
*core.APIKey
|
*core.Server
|
||||||
*core.Language
|
*core.Language
|
||||||
*core.TTSLock
|
*core.TTSLock
|
||||||
core.EngineName
|
core.EngineName
|
||||||
@ -28,7 +28,7 @@ type Translator struct {
|
|||||||
|
|
||||||
func NewTranslator() *Translator {
|
func NewTranslator() *Translator {
|
||||||
return &Translator{
|
return &Translator{
|
||||||
APIKey: new(core.APIKey),
|
Server: new(core.Server),
|
||||||
Language: new(core.Language),
|
Language: new(core.Language),
|
||||||
TTSLock: core.NewTTSLock(),
|
TTSLock: core.NewTTSLock(),
|
||||||
EngineName: core.NewEngineName("Google"),
|
EngineName: core.NewEngineName("Google"),
|
||||||
|
@ -22,7 +22,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Translator struct {
|
type Translator struct {
|
||||||
*core.APIKey
|
*core.Server
|
||||||
*core.Language
|
*core.Language
|
||||||
*core.TTSLock
|
*core.TTSLock
|
||||||
core.EngineName
|
core.EngineName
|
||||||
@ -30,7 +30,7 @@ type Translator struct {
|
|||||||
|
|
||||||
func NewTranslator() *Translator {
|
func NewTranslator() *Translator {
|
||||||
return &Translator{
|
return &Translator{
|
||||||
APIKey: new(core.APIKey),
|
Server: new(core.Server),
|
||||||
Language: new(core.Language),
|
Language: new(core.Language),
|
||||||
TTSLock: core.NewTTSLock(),
|
TTSLock: core.NewTTSLock(),
|
||||||
EngineName: core.NewEngineName("Reverso"),
|
EngineName: core.NewEngineName("Reverso"),
|
||||||
|
@ -50,6 +50,9 @@ type Translator interface {
|
|||||||
// Set API Key
|
// Set API Key
|
||||||
SetAPIKey(key string)
|
SetAPIKey(key string)
|
||||||
|
|
||||||
|
// Set host
|
||||||
|
SetHost(host string)
|
||||||
|
|
||||||
// Check if lock is available
|
// Check if lock is available
|
||||||
LockAvailable() bool
|
LockAvailable() bool
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user