mirror of
https://github.com/eeeXun/GTT.git
synced 2025-05-27 21:11:11 -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:
|
||||
deeplx: DEEPLX_API_KEY # <- Replace with your API Key
|
||||
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
|
||||
|
@ -156,13 +156,18 @@ func configInit() {
|
||||
uiStyle.Transparent = config.GetBool("transparent")
|
||||
uiStyle.SetSrcBorderColor(config.GetString("source.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 {
|
||||
// api key
|
||||
for _, name := range []string{"ChatGPT", "DeepL", "DeepLX"} {
|
||||
if serverConfig.Get(fmt.Sprintf("api_key.%s", name)) != nil {
|
||||
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
|
||||
if len(*srcLangArg) > 0 {
|
||||
|
@ -3,3 +3,5 @@ api_key:
|
||||
chatgpt: CHATGPT_API_KEY
|
||||
deepl: DEEPL_API_KEY
|
||||
deeplx: DEEPLX_API_KEY
|
||||
host:
|
||||
deeplx: 127.0.0.1:1188
|
||||
|
@ -16,7 +16,7 @@ const (
|
||||
)
|
||||
|
||||
type Translator struct {
|
||||
*core.APIKey
|
||||
*core.Server
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
@ -24,7 +24,7 @@ type Translator struct {
|
||||
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
APIKey: new(core.APIKey),
|
||||
Server: new(core.Server),
|
||||
Language: new(core.Language),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("Apertium"),
|
||||
|
@ -15,7 +15,7 @@ const (
|
||||
)
|
||||
|
||||
type Translator struct {
|
||||
*core.APIKey
|
||||
*core.Server
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
@ -23,7 +23,7 @@ type Translator struct {
|
||||
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
APIKey: new(core.APIKey),
|
||||
Server: new(core.Server),
|
||||
Language: new(core.Language),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("Argos"),
|
||||
|
@ -25,7 +25,7 @@ const (
|
||||
)
|
||||
|
||||
type Translator struct {
|
||||
*core.APIKey
|
||||
*core.Server
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
@ -40,7 +40,7 @@ type setUpData struct {
|
||||
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
APIKey: new(core.APIKey),
|
||||
Server: new(core.Server),
|
||||
Language: new(core.Language),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("Bing"),
|
||||
|
@ -16,7 +16,7 @@ const (
|
||||
)
|
||||
|
||||
type Translator struct {
|
||||
*core.APIKey
|
||||
*core.Server
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
@ -24,7 +24,7 @@ type Translator struct {
|
||||
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
APIKey: new(core.APIKey),
|
||||
Server: new(core.Server),
|
||||
Language: new(core.Language),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
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 {
|
||||
*core.APIKey
|
||||
*core.Server
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
@ -24,7 +24,7 @@ type Translator struct {
|
||||
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
APIKey: new(core.APIKey),
|
||||
Server: new(core.Server),
|
||||
Language: new(core.Language),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("DeepL"),
|
||||
|
@ -10,12 +10,8 @@ import (
|
||||
"github.com/eeeXun/gtt/internal/translate/core"
|
||||
)
|
||||
|
||||
const (
|
||||
textURL = "http://localhost:1188/translate"
|
||||
)
|
||||
|
||||
type Translator struct {
|
||||
*core.APIKey
|
||||
*core.Server
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
@ -23,7 +19,7 @@ type Translator struct {
|
||||
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
APIKey: new(core.APIKey),
|
||||
Server: new(core.Server),
|
||||
Language: new(core.Language),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("DeepLX"),
|
||||
@ -38,13 +34,17 @@ func (t *Translator) Translate(message string) (translation *core.Translation, e
|
||||
translation = new(core.Translation)
|
||||
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{}{
|
||||
"text": message,
|
||||
"source_lang": langCode[t.GetSrcLang()],
|
||||
"target_lang": langCode[t.GetDstLang()],
|
||||
})
|
||||
req, _ := http.NewRequest(http.MethodPost,
|
||||
textURL,
|
||||
"http://"+t.GetHost()+"/translate",
|
||||
bytes.NewBuffer(userData),
|
||||
)
|
||||
req.Header.Add("Content-Type", "application/json")
|
||||
|
@ -20,7 +20,7 @@ const (
|
||||
)
|
||||
|
||||
type Translator struct {
|
||||
*core.APIKey
|
||||
*core.Server
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
@ -28,7 +28,7 @@ type Translator struct {
|
||||
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
APIKey: new(core.APIKey),
|
||||
Server: new(core.Server),
|
||||
Language: new(core.Language),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("Google"),
|
||||
|
@ -22,7 +22,7 @@ const (
|
||||
)
|
||||
|
||||
type Translator struct {
|
||||
*core.APIKey
|
||||
*core.Server
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
@ -30,7 +30,7 @@ type Translator struct {
|
||||
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
APIKey: new(core.APIKey),
|
||||
Server: new(core.Server),
|
||||
Language: new(core.Language),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("Reverso"),
|
||||
|
@ -50,6 +50,9 @@ type Translator interface {
|
||||
// Set API Key
|
||||
SetAPIKey(key string)
|
||||
|
||||
// Set host
|
||||
SetHost(host string)
|
||||
|
||||
// Check if lock is available
|
||||
LockAvailable() bool
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user