mirror of
https://github.com/OwO-Network/DeepLX.git
synced 2025-04-19 06:03:25 +00:00
feat: support tag_handling
This commit is contained in:
parent
0d73552773
commit
e9b5dedc43
27
main.go
27
main.go
@ -2,7 +2,7 @@
|
|||||||
* @Author: Vincent Yang
|
* @Author: Vincent Yang
|
||||||
* @Date: 2023-07-01 21:45:34
|
* @Date: 2023-07-01 21:45:34
|
||||||
* @LastEditors: Vincent Yang
|
* @LastEditors: Vincent Yang
|
||||||
* @LastEditTime: 2024-06-18 02:41:55
|
* @LastEditTime: 2024-09-15 02:00:23
|
||||||
* @FilePath: /DeepLX/main.go
|
* @FilePath: /DeepLX/main.go
|
||||||
* @Telegram: https://t.me/missuo
|
* @Telegram: https://t.me/missuo
|
||||||
* @GitHub: https://github.com/missuo
|
* @GitHub: https://github.com/missuo
|
||||||
@ -106,10 +106,20 @@ func main() {
|
|||||||
sourceLang := req.SourceLang
|
sourceLang := req.SourceLang
|
||||||
targetLang := req.TargetLang
|
targetLang := req.TargetLang
|
||||||
translateText := req.TransText
|
translateText := req.TransText
|
||||||
|
tagHandling := req.TagHandling
|
||||||
|
|
||||||
authKey := cfg.AuthKey
|
authKey := cfg.AuthKey
|
||||||
proxyURL := cfg.Proxy
|
proxyURL := cfg.Proxy
|
||||||
|
|
||||||
result, err := translateByDeepLX(sourceLang, targetLang, translateText, authKey, proxyURL)
|
if tagHandling != "" && tagHandling != "html" && tagHandling != "xml" {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{
|
||||||
|
"code": http.StatusBadRequest,
|
||||||
|
"message": "Invalid tag_handling value. Allowed values are 'html' and 'xml'.",
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := translateByDeepLX(sourceLang, targetLang, translateText, tagHandling, authKey, proxyURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Translation failed: %s", err)
|
log.Fatalf("Translation failed: %s", err)
|
||||||
}
|
}
|
||||||
@ -141,10 +151,19 @@ func main() {
|
|||||||
sourceLang := req.SourceLang
|
sourceLang := req.SourceLang
|
||||||
targetLang := req.TargetLang
|
targetLang := req.TargetLang
|
||||||
translateText := req.TransText
|
translateText := req.TransText
|
||||||
|
tagHandling := req.TagHandling
|
||||||
proxyURL := cfg.Proxy
|
proxyURL := cfg.Proxy
|
||||||
|
|
||||||
dlSession := cfg.DlSession
|
dlSession := cfg.DlSession
|
||||||
|
|
||||||
|
if tagHandling != "" && tagHandling != "html" && tagHandling != "xml" {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{
|
||||||
|
"code": http.StatusBadRequest,
|
||||||
|
"message": "Invalid tag_handling value. Allowed values are 'html' and 'xml'.",
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
cookie := c.GetHeader("Cookie")
|
cookie := c.GetHeader("Cookie")
|
||||||
if cookie != "" {
|
if cookie != "" {
|
||||||
dlSession = strings.Replace(cookie, "dl_session=", "", -1)
|
dlSession = strings.Replace(cookie, "dl_session=", "", -1)
|
||||||
@ -164,7 +183,7 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
result, err := translateByDeepLXPro(sourceLang, targetLang, translateText, dlSession, proxyURL)
|
result, err := translateByDeepLXPro(sourceLang, targetLang, translateText, tagHandling, dlSession, proxyURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Translation failed: %s", err)
|
log.Fatalf("Translation failed: %s", err)
|
||||||
}
|
}
|
||||||
@ -225,7 +244,7 @@ func main() {
|
|||||||
targetLang = jsonData.TargetLang
|
targetLang = jsonData.TargetLang
|
||||||
}
|
}
|
||||||
|
|
||||||
result, err := translateByDeepLX("", targetLang, translateText, authKey, proxyURL)
|
result, err := translateByDeepLX("", targetLang, translateText, "", authKey, proxyURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Translation failed: %s", err)
|
log.Fatalf("Translation failed: %s", err)
|
||||||
}
|
}
|
||||||
|
12
translate.go
12
translate.go
@ -111,7 +111,7 @@ func translateByOfficialAPI(text string, sourceLang string, targetLang string, a
|
|||||||
return sb.String(), nil
|
return sb.String(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func translateByDeepLX(sourceLang string, targetLang string, translateText string, authKey string, proxyURL string) (DeepLXTranslationResult, error) {
|
func translateByDeepLX(sourceLang string, targetLang string, translateText string, tagHandling string, authKey string, proxyURL string) (DeepLXTranslationResult, error) {
|
||||||
id := getRandomNumber()
|
id := getRandomNumber()
|
||||||
if sourceLang == "" {
|
if sourceLang == "" {
|
||||||
lang := whatlanggo.DetectLang(translateText)
|
lang := whatlanggo.DetectLang(translateText)
|
||||||
@ -142,6 +142,10 @@ func translateByDeepLX(sourceLang string, targetLang string, translateText strin
|
|||||||
postData.Params.Texts = append(postData.Params.Texts, text)
|
postData.Params.Texts = append(postData.Params.Texts, text)
|
||||||
postData.Params.Timestamp = getTimeStamp(getICount(translateText))
|
postData.Params.Timestamp = getTimeStamp(getICount(translateText))
|
||||||
|
|
||||||
|
if tagHandling == "html" || tagHandling == "xml" {
|
||||||
|
postData.Params.TagHandling = tagHandling
|
||||||
|
}
|
||||||
|
|
||||||
// Marshalling the request data to JSON and making necessary string replacements
|
// Marshalling the request data to JSON and making necessary string replacements
|
||||||
post_byte, _ := json.Marshal(postData)
|
post_byte, _ := json.Marshal(postData)
|
||||||
postStr := string(post_byte)
|
postStr := string(post_byte)
|
||||||
@ -288,7 +292,7 @@ func translateByDeepLX(sourceLang string, targetLang string, translateText strin
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func translateByDeepLXPro(sourceLang string, targetLang string, translateText string, dlSession string, proxyURL string) (DeepLXTranslationResult, error) {
|
func translateByDeepLXPro(sourceLang string, targetLang string, translateText string, tagHandling string, dlSession string, proxyURL string) (DeepLXTranslationResult, error) {
|
||||||
id := getRandomNumber()
|
id := getRandomNumber()
|
||||||
if sourceLang == "" {
|
if sourceLang == "" {
|
||||||
lang := whatlanggo.DetectLang(translateText)
|
lang := whatlanggo.DetectLang(translateText)
|
||||||
@ -319,6 +323,10 @@ func translateByDeepLXPro(sourceLang string, targetLang string, translateText st
|
|||||||
postData.Params.Texts = append(postData.Params.Texts, text)
|
postData.Params.Texts = append(postData.Params.Texts, text)
|
||||||
postData.Params.Timestamp = getTimeStamp(getICount(translateText))
|
postData.Params.Timestamp = getTimeStamp(getICount(translateText))
|
||||||
|
|
||||||
|
if tagHandling == "html" || tagHandling == "xml" {
|
||||||
|
postData.Params.TagHandling = tagHandling
|
||||||
|
}
|
||||||
|
|
||||||
// Marshalling the request data to JSON and making necessary string replacements
|
// Marshalling the request data to JSON and making necessary string replacements
|
||||||
post_byte, _ := json.Marshal(postData)
|
post_byte, _ := json.Marshal(postData)
|
||||||
postStr := string(post_byte)
|
postStr := string(post_byte)
|
||||||
|
17
types.go
17
types.go
@ -2,7 +2,7 @@
|
|||||||
* @Author: Vincent Yang
|
* @Author: Vincent Yang
|
||||||
* @Date: 2024-03-20 15:43:57
|
* @Date: 2024-03-20 15:43:57
|
||||||
* @LastEditors: Vincent Yang
|
* @LastEditors: Vincent Yang
|
||||||
* @LastEditTime: 2024-06-18 02:38:48
|
* @LastEditTime: 2024-09-15 01:54:05
|
||||||
* @FilePath: /DeepLX/types.go
|
* @FilePath: /DeepLX/types.go
|
||||||
* @Telegram: https://t.me/missuo
|
* @Telegram: https://t.me/missuo
|
||||||
* @GitHub: https://github.com/missuo
|
* @GitHub: https://github.com/missuo
|
||||||
@ -37,6 +37,7 @@ type Params struct {
|
|||||||
Lang Lang `json:"lang"`
|
Lang Lang `json:"lang"`
|
||||||
Timestamp int64 `json:"timestamp"`
|
Timestamp int64 `json:"timestamp"`
|
||||||
CommonJobParams CommonJobParams `json:"commonJobParams"`
|
CommonJobParams CommonJobParams `json:"commonJobParams"`
|
||||||
|
TagHandling string `json:"tag_handling"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Text struct {
|
type Text struct {
|
||||||
@ -52,15 +53,17 @@ type PostData struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type PayloadFree struct {
|
type PayloadFree struct {
|
||||||
TransText string `json:"text"`
|
TransText string `json:"text"`
|
||||||
SourceLang string `json:"source_lang"`
|
SourceLang string `json:"source_lang"`
|
||||||
TargetLang string `json:"target_lang"`
|
TargetLang string `json:"target_lang"`
|
||||||
|
TagHandling string `json:"tag_handling"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type PayloadAPI struct {
|
type PayloadAPI struct {
|
||||||
Text []string `json:"text"`
|
Text []string `json:"text"`
|
||||||
TargetLang string `json:"target_lang"`
|
TargetLang string `json:"target_lang"`
|
||||||
SourceLang string `json:"source_lang"`
|
SourceLang string `json:"source_lang"`
|
||||||
|
TagHandling string `json:"tag_handling"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Translation struct {
|
type Translation struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user