代码拉取完成,页面将自动刷新
package pcsconfig
import (
"errors"
"fmt"
"github.com/iikira/BaiduPCS-Go/baidupcs"
"github.com/iikira/BaiduPCS-Go/pcstable"
"github.com/iikira/baidu-tools/tieba"
"github.com/olekukonko/tablewriter"
"path/filepath"
"strconv"
"strings"
)
var (
//ErrNoSuchBaiduUser 未登录任何百度帐号
ErrNoSuchBaiduUser = errors.New("no such baidu user")
//ErrBaiduUserNotFound 未找到百度帐号
ErrBaiduUserNotFound = errors.New("baidu user not found")
)
//BaiduBase Baidu基
type BaiduBase struct {
UID uint64 `json:"uid"` // 百度ID对应的uid
Name string `json:"name"` // 真实ID
}
// Baidu 百度帐号对象
type Baidu struct {
BaiduBase
Sex string `json:"sex"` // 性别
Age float64 `json:"age"` // 帐号年龄
BDUSS string `json:"bduss"`
PTOKEN string `json:"ptoken"`
STOKEN string `json:"stoken"`
Workdir string `json:"workdir"` // 工作目录
}
// BaiduPCS 初始化*baidupcs.BaiduPCS
func (baidu *Baidu) BaiduPCS() *baidupcs.BaiduPCS {
pcs := baidupcs.NewPCS(Config.appID, baidu.BDUSS)
pcs.SetHTTPS(Config.enableHTTPS)
pcs.SetUserAgent(Config.userAgent)
return pcs
}
// GetSavePath 根据提供的网盘文件路径 path, 返回本地储存路径,
// 返回绝对路径, 获取绝对路径出错时才返回相对路径...
func (baidu *Baidu) GetSavePath(path string) string {
dirStr := fmt.Sprintf("%s/%d_%s%s/.",
Config.saveDir,
baidu.UID,
baidu.Name,
path,
)
dir, err := filepath.Abs(dirStr)
if err != nil {
dir = filepath.Clean(dirStr)
}
return dir
}
// BaiduUserList 百度帐号列表
type BaiduUserList []*Baidu
// NewUserInfoByBDUSS 检测BDUSS有效性, 同时获取百度详细信息 (无法获取 ptoken 和 stoken)
func NewUserInfoByBDUSS(bduss string) (b *Baidu, err error) {
t, err := tieba.NewUserInfoByBDUSS(bduss)
if err != nil {
return nil, err
}
b = &Baidu{
BaiduBase: BaiduBase{
UID: t.Baidu.UID,
Name: t.Baidu.Name,
},
Sex: t.Baidu.Sex,
Age: t.Baidu.Age,
BDUSS: t.Baidu.Auth.BDUSS,
Workdir: "/",
}
return b, nil
}
// String 格式输出百度帐号列表
func (bl *BaiduUserList) String() string {
builder := &strings.Builder{}
tb := pcstable.NewTable(builder)
tb.SetColumnAlignment([]int{tablewriter.ALIGN_DEFAULT, tablewriter.ALIGN_RIGHT, tablewriter.ALIGN_CENTER, tablewriter.ALIGN_CENTER, tablewriter.ALIGN_CENTER})
tb.SetHeader([]string{"#", "uid", "用户名", "性别", "age"})
for k, baiduInfo := range *bl {
tb.Append([]string{strconv.Itoa(k), strconv.FormatUint(baiduInfo.UID, 10), baiduInfo.Name, baiduInfo.Sex, fmt.Sprint(baiduInfo.Age)})
}
tb.Render()
return builder.String()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。