github.com/qjfoidnh/BaiduPCS-Go@v0.0.0-20231011165705-caa18a3765f3/internal/pcsconfig/export.go (about) 1 package pcsconfig 2 3 import ( 4 "fmt" 5 "github.com/olekukonko/tablewriter" 6 "github.com/qjfoidnh/BaiduPCS-Go/baidupcs" 7 "github.com/qjfoidnh/BaiduPCS-Go/pcstable" 8 "github.com/qjfoidnh/BaiduPCS-Go/pcsutil/converter" 9 "github.com/qjfoidnh/BaiduPCS-Go/requester" 10 "os" 11 "strconv" 12 ) 13 14 // ActiveUser 获取当前登录的用户 15 func (c *PCSConfig) ActiveUser() *Baidu { 16 if c.activeUser == nil { 17 return &Baidu{} 18 } 19 return c.activeUser 20 } 21 22 // ActiveUserBaiduPCS 获取当前登录的用户的baidupcs.BaiduPCS 23 func (c *PCSConfig) ActiveUserBaiduPCS() *baidupcs.BaiduPCS { 24 if c.pcs == nil { 25 c.pcs = c.ActiveUser().BaiduPCS() 26 } 27 return c.pcs 28 } 29 30 func (c *PCSConfig) httpClientWithUA(ua string) *requester.HTTPClient { 31 client := requester.NewHTTPClient() 32 client.SetHTTPSecure(c.EnableHTTPS) 33 client.SetUserAgent(ua) 34 return client 35 } 36 37 // HTTPClient 返回设置好的 HTTPClient 38 func (c *PCSConfig) HTTPClient() *requester.HTTPClient { 39 return c.httpClientWithUA(c.UserAgent) 40 } 41 42 // PCSHTTPClient 返回设置好的 PCS HTTPClient 43 func (c *PCSConfig) PCSHTTPClient() *requester.HTTPClient { 44 return c.httpClientWithUA(c.PCSUA) 45 } 46 47 // PanHTTPClient 返回设置好的 Pan HTTPClient 48 func (c *PCSConfig) PanHTTPClient() *requester.HTTPClient { 49 return c.httpClientWithUA(c.PanUA) 50 } 51 52 // NumLogins 获取登录的用户数量 53 func (c *PCSConfig) NumLogins() int { 54 return len(c.BaiduUserList) 55 } 56 57 // AverageParallel 返回平均的下载最大并发量 58 func (c *PCSConfig) AverageParallel() int { 59 return AverageParallel(c.MaxParallel, c.MaxDownloadLoad) 60 } 61 62 // PrintTable 输出表格 63 func (c *PCSConfig) PrintTable() { 64 tb := pcstable.NewTable(os.Stdout) 65 tb.SetHeader([]string{"名称", "值", "建议值", "描述"}) 66 tb.SetHeaderAlignment(tablewriter.ALIGN_LEFT) 67 tb.SetColumnAlignment([]int{tablewriter.ALIGN_DEFAULT, tablewriter.ALIGN_LEFT, tablewriter.ALIGN_LEFT, tablewriter.ALIGN_LEFT}) 68 tb.AppendBulk([][]string{ 69 []string{"appid", fmt.Sprint(c.AppID), "", "百度 PCS 应用ID"}, 70 []string{"cache_size", converter.ConvertFileSize(int64(c.CacheSize), 2), "1KB ~ 256KB", "下载缓存, 如果硬盘占用高或下载速度慢, 请尝试调大此值"}, 71 []string{"max_parallel", strconv.Itoa(c.MaxParallel), "1 ~ 14", "下载总最大并发量"}, 72 []string{"max_upload_parallel", strconv.Itoa(c.MaxUploadParallel), "1 ~ 100", "上传单文件最大并发量"}, 73 []string{"max_download_load", strconv.Itoa(c.MaxDownloadLoad), "1 ~ 5", "同时进行下载文件的最大数量"}, 74 []string{"max_download_rate", showMaxRate(c.MaxDownloadRate), "", "限制最大下载速度, 0代表不限制"}, 75 []string{"max_upload_rate", showMaxRate(c.MaxUploadRate), "", "限制最大上传速度, 0代表不限制"}, 76 []string{"max_upload_load", strconv.Itoa(c.MaxUploadLoad), "1-4", "同时进行上传文件的最大数量"}, 77 []string{"savedir", c.SaveDir, "", "下载文件的储存目录"}, 78 []string{"enable_https", fmt.Sprint(c.EnableHTTPS), "true", "启用 https"}, 79 []string{"force_login_username", fmt.Sprint(c.ForceLogin), "留空", "强制登录指定用户名, 适用于tieba用户信息接口不可用的情况, 如登录正常请留空"}, 80 []string{"no_check", fmt.Sprint(c.NoCheck), "true", "关闭下载文件md5校验"}, 81 []string{"ignore_illegal", fmt.Sprint(c.IgnoreIllegal), "false", "关闭上传文件的文件名非法字符检查"}, 82 []string{"upload_policy", fmt.Sprint(c.UPolicy), "fail", "上传遇到重名文件时的处理策略, fail(默认,直接返回失败)、newcopy(重命名文件)、overwrite(覆盖)、skip(跳过)、rsync(仅跳过大小未变化的文件)"}, 83 []string{"user_agent", c.UserAgent, requester.DefaultUserAgent, "浏览器标识"}, 84 []string{"pcs_ua", c.PCSUA, "", "PCS 浏览器标识"}, 85 []string{"pcs_addr", c.PCSAddr, "pcs.baidu.com", "PCS 服务器地址"}, 86 []string{"pan_ua", c.PanUA, baidupcs.NetdiskUA, "Pan 浏览器标识"}, 87 []string{"proxy", c.Proxy, "", "设置代理, 支持 http/socks5 代理"}, 88 []string{"local_addrs", c.LocalAddrs, "", "设置本地网卡地址, 多个地址用逗号隔开"}, 89 }) 90 tb.Render() 91 }