代码拉取完成,页面将自动刷新
同步操作将从 ttpc2008/BaiduPCS-Go 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package baidupcs
import (
"errors"
"github.com/iikira/BaiduPCS-Go/baidupcs/pcserror"
)
type (
// ShareOption 分享可选项
ShareOption struct {
Password string // 密码
Period int // 有效期
}
// Shared 分享信息
Shared struct {
Link string `json:"link"`
ShareID int64 `json:"shareid"`
}
// ShareRecordInfo 分享信息
ShareRecordInfo struct {
ShareID int64 `json:"shareId"`
FsIds []string `json:"fsIds"`
Passwd string `json:"passwd"`
Shortlink string `json:"shortlink"`
TypicalPath string `json:"typicalPath"`
}
sharePSetJSON struct {
*Shared
*pcserror.PanErrorInfo
}
shareListJSON struct {
List ShareRecordInfoList `json:"list"`
*pcserror.PanErrorInfo
}
)
// Clean 清理
func (sri *ShareRecordInfo) Clean() {
if sri.Passwd == "0" {
sri.Passwd = ""
}
}
// HasPasswd 是否需要提取码
func (sri *ShareRecordInfo) HasPasswd() bool {
return sri.Passwd != "" && sri.Passwd != "0"
}
// ShareRecordInfoList 分享信息列表
type ShareRecordInfoList []*ShareRecordInfo
// Clean 清理
func (sril *ShareRecordInfoList) Clean() {
for _, sri := range *sril {
if sri == nil {
continue
}
sri.Clean()
}
}
// ShareSet 分享文件
func (pcs *BaiduPCS) ShareSet(paths []string, option *ShareOption) (s *Shared, pcsError pcserror.Error) {
if option == nil {
option = &ShareOption{}
}
dataReadCloser, pcsError := pcs.PrepareSharePSet(paths, option.Period)
if pcsError != nil {
return
}
defer dataReadCloser.Close()
errInfo := pcserror.NewPanErrorInfo(OperationShareSet)
jsonData := sharePSetJSON{
Shared: &Shared{},
PanErrorInfo: errInfo,
}
pcsError = handleJSONParse(OperationShareSet, dataReadCloser, &jsonData)
if pcsError != nil {
return
}
if jsonData.Link == "" {
errInfo.ErrType = pcserror.ErrTypeOthers
errInfo.Err = errors.New("未找到分享链接")
return nil, errInfo
}
return jsonData.Shared, nil
}
// ShareCancel 取消分享
func (pcs *BaiduPCS) ShareCancel(shareIDs []int64) (pcsError pcserror.Error) {
dataReadCloser, pcsError := pcs.PrepareShareCancel(shareIDs)
if pcsError != nil {
return
}
defer dataReadCloser.Close()
pcsError = pcserror.DecodePanJSONError(OperationShareCancel, dataReadCloser)
return
}
// ShareList 列出分享列表
func (pcs *BaiduPCS) ShareList(page int) (records ShareRecordInfoList, pcsError pcserror.Error) {
dataReadCloser, pcsError := pcs.PrepareShareList(page)
if pcsError != nil {
return
}
defer dataReadCloser.Close()
errInfo := pcserror.NewPanErrorInfo(OperationShareList)
jsonData := shareListJSON{
List: records,
PanErrorInfo: errInfo,
}
pcsError = handleJSONParse(OperationShareList, dataReadCloser, &jsonData)
if pcsError != nil {
return
}
if jsonData.List == nil {
errInfo.ErrType = pcserror.ErrTypeOthers
errInfo.Err = errors.New("shared list is nil")
return nil, errInfo
}
jsonData.List.Clean()
return jsonData.List, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。