mirror of
https://github.com/ctwj/urldb.git
synced 2025-11-25 03:15:04 +08:00
39 lines
1.2 KiB
Go
39 lines
1.2 KiB
Go
package pan
|
||
|
||
import "encoding/json"
|
||
|
||
// XunleiAccountCredentials 迅雷账号凭据结构
|
||
type XunleiAccountCredentials struct {
|
||
Username string `json:"username"` // 手机号(不包含+86前缀)
|
||
Password string `json:"password"` // 密码
|
||
RefreshToken string `json:"refresh_token"` // 当前有效的refresh_token
|
||
}
|
||
|
||
// ParseCredentialsFromCk 从ck字段解析账号凭据
|
||
func ParseCredentialsFromCk(ck string) (*XunleiAccountCredentials, error) {
|
||
var credentials XunleiAccountCredentials
|
||
if err := json.Unmarshal([]byte(ck), &credentials); err != nil {
|
||
return nil, err
|
||
}
|
||
return &credentials, nil
|
||
}
|
||
|
||
// IsAccountCredentials 检查ck是否包含账号密码信息
|
||
func IsAccountCredentials(ck string) bool {
|
||
var credentials map[string]interface{}
|
||
if err := json.Unmarshal([]byte(ck), &credentials); err != nil {
|
||
return false
|
||
}
|
||
_, hasUsername := credentials["username"]
|
||
_, hasPassword := credentials["password"]
|
||
return hasUsername && hasPassword
|
||
}
|
||
|
||
// ToJsonString 转换为JSON字符串
|
||
func (c *XunleiAccountCredentials) ToJsonString() (string, error) {
|
||
data, err := json.Marshal(c)
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
return string(data), nil
|
||
} |