v/GTT
1
0
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:
eeeXun 2024-02-08 22:22:30 +08:00
parent 72034636af
commit fc9009e9ff
14 changed files with 55 additions and 36 deletions

View File

@ -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

View File

@ -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 {

View File

@ -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

View File

@ -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"),

View File

@ -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"),

View File

@ -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"),

View File

@ -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"),

View File

@ -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
}

View 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
}

View File

@ -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"),

View File

@ -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")

View File

@ -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"),

View File

@ -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"),

View File

@ -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