lanzou

package
v0.0.0-...-c590095 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const DAY time.Duration = 84600000000000

Variables

View Source
var ErrFileNotExist = errors.New("file does not exist")
View Source
var ErrFileShareCancel = errors.New("file sharing cancellation")
View Source
var Name = "Lanzou"

Functions

func CalcAcwScV2

func CalcAcwScV2(html string) (string, error)

在页面被过多访问或其他情况下,有时候会先返回一个加密的页面,其执行计算出一个acw_sc__v2后放入页面后再重新访问页面才能获得正常页面 若该页面进行了js加密,则进行解密,计算acw_sc__v2,并加入cookie

func GetExpirationTime

func GetExpirationTime(url string) (etime time.Duration)

func HexXor

func HexXor(hex1, hex2 string) string

func IsNumber

func IsNumber(str string) bool

func MustParseTime

func MustParseTime(str string) time.Time

如果解析失败,则返回当前时间

func RemoveNotes

func RemoveNotes(html string) string

移除注释

func SizeStrToInt64

func SizeStrToInt64(size string) int64

解析失败返回0

func Unbox

func Unbox(hex string) string

Types

type Addition

type Addition struct {
	Type           string `json:"type" type:"select" options:"cookie,url" default:"cookie"`
	Cookie         string `json:"cookie" required:"true" help:"about 15 days valid, ignore if shareUrl is used"`
	SharePassword  string `json:"share_password"`
	BaseUrl        string `json:"baseUrl" required:"true" default:"https://pc.woozooo.com" help:"basic URL for file operation"`
	ShareUrl       string `json:"shareUrl" required:"true" default:"https://pan.lanzouo.com" help:"used to get the sharing page"`
	RepairFileInfo bool   `json:"repair_file_info" help:"To use webdav, you need to enable it"`
}

func (*Addition) IsCookie

func (a *Addition) IsCookie() bool

type FileOrFolder

type FileOrFolder struct {
	Name string `json:"name"`

	// 文件通用
	ID      string `json:"id"`
	NameAll string `json:"name_all"`
	Size    string `json:"size"`
	Time    string `json:"time"`

	// 文件夹
	FolID string `json:"fol_id"`
	// contains filtered or unexported fields
}

func (*FileOrFolder) GetID

func (f *FileOrFolder) GetID() string

func (*FileOrFolder) GetName

func (f *FileOrFolder) GetName() string

func (*FileOrFolder) GetPath

func (f *FileOrFolder) GetPath() string

func (*FileOrFolder) GetShareInfo

func (f *FileOrFolder) GetShareInfo() *FileShare

func (*FileOrFolder) GetSize

func (f *FileOrFolder) GetSize() int64

func (*FileOrFolder) IsDir

func (f *FileOrFolder) IsDir() bool

func (*FileOrFolder) ModTime

func (f *FileOrFolder) ModTime() time.Time

func (*FileOrFolder) SetShareInfo

func (f *FileOrFolder) SetShareInfo(fs *FileShare)

type FileOrFolderByShareUrl

type FileOrFolderByShareUrl struct {
	ID      string `json:"id"`
	NameAll string `json:"name_all"`

	// 文件特有
	Duan string `json:"duan"`
	Size string `json:"size"`
	Time string `json:"time"`

	// 文件夹特有
	IsFloder bool `json:"-"`

	//
	Url string `json:"-"`
	Pwd string `json:"-"`
	// contains filtered or unexported fields
}

func (*FileOrFolderByShareUrl) GetID

func (f *FileOrFolderByShareUrl) GetID() string

func (*FileOrFolderByShareUrl) GetName

func (f *FileOrFolderByShareUrl) GetName() string

func (*FileOrFolderByShareUrl) GetPath

func (f *FileOrFolderByShareUrl) GetPath() string

func (*FileOrFolderByShareUrl) GetSize

func (f *FileOrFolderByShareUrl) GetSize() int64

func (*FileOrFolderByShareUrl) IsDir

func (f *FileOrFolderByShareUrl) IsDir() bool

func (*FileOrFolderByShareUrl) ModTime

func (f *FileOrFolderByShareUrl) ModTime() time.Time

type FileOrFolderByShareUrlResp

type FileOrFolderByShareUrlResp struct {
	Text []FileOrFolderByShareUrl `json:"text"`
}

分享类型为文件夹

type FileShare

type FileShare struct {
	Pwd    string `json:"pwd"`
	Onof   string `json:"onof"`
	Taoc   string `json:"taoc"`
	IsNewd string `json:"is_newd"`

	// 文件
	FID string `json:"f_id"`

	// 文件夹
	NewUrl string `json:"new_url"`
	Name   string `json:"name"`
	Des    string `json:"des"`
}

通过ID获取文件/文件夹分享信息

type FileShareInfoAndUrlResp

type FileShareInfoAndUrlResp[T string | int] struct {
	Dom string `json:"dom"`
	URL string `json:"url"`
	Inf T      `json:"inf"`
}

获取下载链接的响应

func (*FileShareInfoAndUrlResp[T]) GetBaseUrl

func (u *FileShareInfoAndUrlResp[T]) GetBaseUrl() string

func (*FileShareInfoAndUrlResp[T]) GetDownloadUrl

func (u *FileShareInfoAndUrlResp[T]) GetDownloadUrl() string

type LanZou

type LanZou struct {
	RootFolderID string
	Addition
	// contains filtered or unexported fields
}

func New

func New() *LanZou

func (*LanZou) Config

func (d *LanZou) Config() driver.Config

func (*LanZou) Copy

func (l *LanZou) Copy(ctx context.Context, srcObj, dstDir driver.AbstractDriverFile) error

func (*LanZou) Drop

func (d *LanZou) Drop(ctx context.Context) error

func (*LanZou) GetAddition

func (d *LanZou) GetAddition() driver.Additional

func (*LanZou) GetAllFiles

func (d *LanZou) GetAllFiles(folderID string) ([]driver.AbstractDriverFile, error)

获取文件和文件夹,获取到的文件大小、更改时间不可信

func (*LanZou) GetFileOrFolderByShareUrl

func (d *LanZou) GetFileOrFolderByShareUrl(shareID, pwd string) ([]driver.AbstractDriverFile, error)

通过分享链接获取文件或文件夹

func (*LanZou) GetFiles

func (d *LanZou) GetFiles(folderID string) ([]FileOrFolder, error)

通过ID获取文件

func (*LanZou) GetFilesByShareUrl

func (d *LanZou) GetFilesByShareUrl(shareID, pwd string) (file *FileOrFolderByShareUrl, err error)

通过分享链接获取文件(下载链接也使用此方法) FileOrFolderByShareUrl 包含 pwd 和 url 字段 参考 https://github.com/zaxtyson/LanZouCloud-API/blob/ab2e9ec715d1919bf432210fc16b91c6775fbb99/lanzou/api/core.py#L440

func (*LanZou) GetFolderByShareUrl

func (d *LanZou) GetFolderByShareUrl(shareID, pwd string) ([]FileOrFolderByShareUrl, error)

通过分享链接获取文件夹 似乎子目录和文件不会加密 参考 https://github.com/zaxtyson/LanZouCloud-API/blob/ab2e9ec715d1919bf432210fc16b91c6775fbb99/lanzou/api/core.py#L1089

func (*LanZou) GetFolders

func (d *LanZou) GetFolders(folderID string) ([]FileOrFolder, error)

通过ID获取文件夹

func (*LanZou) Init

func (d *LanZou) Init(ctx context.Context) error

func (*LanZou) List

获取的大小和时间不准确

func (*LanZou) MakeDir

func (d *LanZou) MakeDir(ctx context.Context, parentDir driver.AbstractDriverFile, dirName string) error

func (*LanZou) Move

func (d *LanZou) Move(ctx context.Context, srcObj, dstDir driver.AbstractDriverFile) error

func (*LanZou) Put

func (*LanZou) Remove

func (d *LanZou) Remove(ctx context.Context, obj driver.AbstractDriverFile) error

func (*LanZou) Rename

func (d *LanZou) Rename(ctx context.Context, srcObj driver.AbstractDriverFile, newName string) error

type RespInfo

type RespInfo[T any] struct {
	Info T `json:"info"`
}

type RespText

type RespText[T any] struct {
	Text T `json:"text"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL