mirror of
https://github.com/OwO-Network/DeepLX.git
synced 2025-07-25 20:03:24 +00:00
- Renamed makeRequest to makeRequestWithBody for clarity. - Introduced new TextItem and TextResponse types for better structure in translation requests and responses. - Updated translation logic to handle multiple texts and alternatives. - Enhanced error handling for blocked requests and translation failures. - Adjusted timestamp and random number generation for improved request uniqueness.
60 lines
1.5 KiB
Go
60 lines
1.5 KiB
Go
/*
|
|
* @Author: Vincent Young
|
|
* @Date: 2024-09-16 11:59:24
|
|
* @LastEditors: Vincent Yang
|
|
* @LastEditTime: 2025-04-08 14:27:21
|
|
* @FilePath: /DeepLX/translate/utils.go
|
|
* @Telegram: https://t.me/missuo
|
|
* @GitHub: https://github.com/missuo
|
|
*
|
|
* Copyright © 2024 by Vincent, All Rights Reserved.
|
|
*/
|
|
|
|
package translate
|
|
|
|
import (
|
|
"encoding/json"
|
|
"math/rand"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// getICount returns the number of 'i' characters in the text
|
|
func getICount(translateText string) int64 {
|
|
return int64(strings.Count(translateText, "i"))
|
|
}
|
|
|
|
// getRandomNumber generates a random number for request ID
|
|
func getRandomNumber() int64 {
|
|
src := rand.NewSource(time.Now().UnixNano())
|
|
rng := rand.New(src)
|
|
num := rng.Int63n(99999) + 100000
|
|
return num * 1000
|
|
}
|
|
|
|
// getTimeStamp generates timestamp for request based on i count
|
|
func getTimeStamp(iCount int64) int64 {
|
|
ts := time.Now().UnixMilli()
|
|
if iCount != 0 {
|
|
iCount = iCount + 1
|
|
return ts - (ts % iCount) + iCount
|
|
}
|
|
return ts
|
|
}
|
|
|
|
// formatPostString formats the request JSON string with specific spacing rules
|
|
func formatPostString(postData *PostData) string {
|
|
postBytes, _ := json.Marshal(postData)
|
|
postStr := string(postBytes)
|
|
return postStr
|
|
}
|
|
|
|
// handlerBodyMethod manipulates the request body based on random number calculation
|
|
func handlerBodyMethod(random int64, body string) string {
|
|
calc := (random+5)%29 == 0 || (random+3)%13 == 0
|
|
if calc {
|
|
return strings.Replace(body, `"method":"`, `"method" : "`, 1)
|
|
}
|
|
return strings.Replace(body, `"method":"`, `"method": "`, 1)
|
|
}
|