-
Notifications
You must be signed in to change notification settings - Fork 115
0x04 获取文件(夹)信息
ZaxTyson edited this page Oct 7, 2020
·
4 revisions
v2.4.0
开始不再使用隐藏后缀到文件名的方式绕过官方限制。格式不支持的文件,真实信息写入文件本身,后缀随机,下载完成之前无法得知真实后缀。大文件被切片上传,文件名、文件大小、后缀随机。文件名和后缀下载完成都能自动恢复。
通过 id 获取文件夹的绝对路径
参数 | 类型 | 说明 | 必填 | 备注 |
---|---|---|---|---|
folder_id | int | 文件夹id | N | 默认-1 (根目录) |
# 网盘路径: /test/txt ("txt"文件夹 id 为 1388997)
>>> path = lzy.get_full_path(1388997)
>>> path
<List FolderId(name='LanZouCloud', id=-1), FolderId(name='test', id=835602), FolderId(name='txt', id=1388997)>
>>> path[-1]
FolderId(name='txt', id=1388997)
>>> path[-1].name
'txt'
>>> path.all_name
['LanZouCloud', 'test', 'txt']
>>> path.name_id
{'LanZouCloud': -1, 'test': 835602, 'txt': 1388997}
获取网盘全部文件夹(用于移动文件)
示例 :
>>> folders = lzy.get_move_folders()
>>> folders
<List FolderId(name='LanZouCloud', id=-1), FolderId(name='aaa', id=831474), FolderId(name='aaa', id=835475), FolderId(name='test', id=835602), FolderId(name='github', id=837574), FolderId(name='share', id=879591), FolderId(name='hnyz', id=910991), FolderId(name='lanzoucloud', id=1074753), FolderId(name='777', id=1282695), FolderId(name='AnimeSearcher', id=1327639), FolderId(name='网易云', id=1387302), FolderId(name='Music', id=1387639), FolderId(name='mtest', id=1388176), FolderId(name='txt', id=1388997), FolderId(name='some_file', id=1440156)>
>>> folders.find_by_id(1387302)
FolderId(name='网易云', id=1387302)
>>> folders.find_by_name('github')
FolderId(name='github', id=837574)
>>> folders.pop_by_id(835602)
FolderId(name='test', id=835602)
获取子文件夹列表
参数 | 类型 | 说明 | 必填 | 备注 |
---|---|---|---|---|
folder_id | int | 文件夹id | N | 默认-1 (根目录) |
示例 :
>>> dirs = lzy.get_dir_list() # 根目录
>>> dirs
<List Folder(name='test', id=835602, has_pwd=False, desc='测试文件夹'), Folder(name='github', id=837574, has_pwd=False, desc='Github Download'), Folder(name='share', id=879591, has_pwd=False, desc='文件分享'), Folder(name='Music', id=1387639, has_pwd=False, desc='网易云音乐')>
>>> dirs.name_id
{'test': 835602, 'github': 837574, 'share': 879591, 'Music': 1387639}
>>> dirs.update_by_id(837574, desc='新的描述', has_pwd=True)
>>> dirs
<List ... Folder(name='github', id=837574, has_pwd=True, desc='新的描述') ...>
获取某文件夹下的文件列表
参数 | 类型 | 说明 | 必填 | 备注 |
---|---|---|---|---|
folder_id | int | 文件夹id | N | 默认-1 (根目录) |
示例 :
>>> files = lzy.get_file_list(835602)
>>> files
<List File(name='HashTab_v6.0.0.34_Setup.exe', id=18345368, time='2020-03-03', size='1.1 M', type='exe', downs=0, has_pwd=False, has_des=False), File(name='新建文本文档.ppt', id=18344819, time='2020-03-03', size='1.4 K', type='ppt', downs=1, has_pwd=False, has_des=False), File(name='download20200202194154.ppt', id=18344813, time='2020-03-03', size='272.0 K', type='ppt', downs=1, has_pwd=False, has_des=False), File(name='Craig David - Insomnia.mp3', id=17651728, time='2020-02-19', size='3.6 M', type='mp3', downs=15, has_pwd=True, has_des=False)>
>>> files.filter(lambda f: f.type == 'mp3')
[File(name='Craig David - Insomnia.mp3', id=17651728, time='2020-02-19', size='3.6 M', type='mp3', downs=15, has_pwd=True, has_des=False)]
获取文件(夹)分享信息
参数 | 类型 | 说明 | 必填 | 备注 |
---|---|---|---|---|
fid | int | 文件(夹)id | Y | - |
is_file | bool | 是否为文件id | N | 默认True
|
示例 :
>>> lzy.get_share_info(18345368)
ShareInfo(code=0, name='HashTab_v6.0.0.34_Setup', url='https://www.lanzous.com/i9w6cji', pwd='', desc='')
>>> lzy.get_share_info(1387639, is_file=False)
ShareInfo(code=0, name='Music', url='https://www.lanzous.com/b0f1b6gyj', pwd='', desc='网易云音乐')
状态码(code):
- 获取成功:
LanZouCloud.SUCCESS
- 获取失败:
LanZouCloud.FAILED
- fid 错误:
LanZouCloud.ID_ERROR
- 网络异常:
LanZouCloud.NETWORK_ERROR
通过分享链接获取文件的信息
参数 | 类型 | 说明 | 必填 | 备注 |
---|---|---|---|---|
share_url | str | 文件分享链接 | Y | |
pwd | str | 提取码 | N | 默认''
|
示例 :
>>> lzy.get_file_info_by_url('https://www.lanzous.com/i6zgwnc')
FileDetail(code=3, name='', size='', type='', time='', desc='', pwd='', url='', durl='')
>>> lzy.get_file_info_by_url('https://www.lanzous.com/i6zgwnc', 'haha')
FileDetail(code=0, name='Craig David - Insomnia.mp3', size='3.6 M', type='mp3', time='2019-10-25', desc='', pwd='haha', url='https://www.lanzous.com/i6zgwnc', durl='https://developer23a.baidupan.com/030319bb/2019/10/25/e8bb4480ffddf99037b636dc7305902f.mp3?st=GinkBzaetCPK69FAgYNu9A&e=1583237842&b=CRhcLgBhUT1VZ1MlV0MHYgIhCTwMaVF3VSsLJlQaUz8HJgxjVzoCaQI_bVmEEegduBiMKZQ_c_c&fi=13460172&up=')
状态码(code):
- 一切正常:
LanZouCloud.SUCCESS
- URL 错误:
LanZouCloud.URL_INVALID
- 网络异常:
LanZouCloud.NETWORK_ERROR
- 文件已取消:
LanZouCloud.FILE_CANCELLED
- 缺少提取码:
LanZouCloud.LACK_PASSWORD
- 提取码错误:
LanZouCloud.PASSWORD_ERROR
- 验证码错误:
LanZouCloud.CAPTCHA_ERROR
通过 id 获取文件的信息
参数 | 类型 | 说明 | 必填 | 备注 |
---|---|---|---|---|
file_id | int | 文件id | Y | - |
返回值 : 同 .get_file_info_by_url()
通过分享链接获取文件夹的信息
参数 | 类型 | 说明 | 必填 | 备注 |
---|---|---|---|---|
share_url | str | 文件夹分享链接 | Y | |
dir_pwd | str | 提取码 | N | 默认''
|
示例 :
>>> folder_info = lzy.get_folder_info_by_url("https://www.lanzous.com/b034jwrpg") # vip分享的文件夹允许包含子文件夹
>>> folder_info.folder # 当前文件夹信息
Folder(name='【人工精选软件推荐】', id='1239706', pwd='', time='2020-10-07', desc='这里均是人工精心挑选的热门软件!陆续更新中...所有软件永久免费提供!【注意:所有软件都是根据官方接口写的,很多具有时效性,如果哪个软件失效了只能说明已被官方修复,非我司问题。打个比方10年后腾讯关闭了,你再去玩QQ发现无法使用,然后就说腾讯是个假的公司,您觉得合理吗?拒绝回答无脑问题!感谢支持】', url='https://www.lanzous.com/b034jwrpg')
>>> folder_info.files # 当前文件夹下文件信息
<List FileInFolder(name='特价屋(淘宝查优惠券).apk', time='2020-07-26', size='33.4 M', type='apk', url='https://www.lanzous.com/igcQvf08cbg'), FileInFolder(name='微信抢红包.apk', time='2020-01-23', size='3.9 M', type='apk', url='https://www.lanzous.com/i8tyguh'), FileInFolder(name='WIFI万能钥匙显密码版.apk', time='2020-01-20', size='6.5 M', type='apk', url='https://www.lanzous.com/i8rzi5i')>
>>> folder_info.sub_folders # 子文件夹信息
<List Folder(name='『精选』QQ玩网必备', id='', pwd='', time='2020-10-07', desc='此类:这里都是一些玩QQ必备的软件!比如:QQ动态头像 百变气泡等等', url='https://www.lanzous.com/b034jwrta'), Folder(name='『精选』游戏辅助类', id='', pwd='', time='2020-10-07', desc='此类:这里都是关于游戏的软件!如;刺激战场除草 游戏美化 游戏语音包等等', url='https://www.lanzous.com/b034jwrub')>
>>> folder_info.sub_folders[1].url # 第二个子文件夹的链接
'https://www.lanzous.com/b034jwrub'
通过 id 获取文件夹的信息
参数 | 类型 | 说明 | 必填 | 备注 |
---|---|---|---|---|
folder_id | int | 文件夹id | Y | - |
返回值 : 同 .get_folder_info_by_url()
通过分享链接获取文件下载直链
参数 | 类型 | 说明 | 必填 | 备注 |
---|---|---|---|---|
share_url | str | 文件分享链接 | Y | - |
pwd | str | 提取码 | N | 默认''
|
说明 : 本方法实际上是调用 get_file_info_by_url()
,截取了其中文件下载直链的信息
示例 :
>>> lzy.get_durl_by_url('https://www.lanzous.com/i6zgwnc')
DirectUrlInfo(code=3, name='', durl='')
>>> lzy.get_durl_by_url('https://www.lanzous.com/i6zgwnc', 'haha')
DirectUrlInfo(code=0, name='Craig David - Insomnia.mp3', durl='https://developer23a.baidupan.com/030319bb/2019/10/25/e8bb4480ffddf99037b636dc7305902f.mp3?st=6LmArYWOAVRdmQpCyo9xpg&e=1583238762&b=VEVeLAdmWTVTYVEnBxNUMVFyDjsNaFZwCHZad1QaBWlSc1s0UD1ZMgQ4BDMFewVsUncKZQ_c_c&fi=13460172&up=')
通过 id 获取文件下载直链
参数 | 类型 | 说明 | 必填 | 备注 |
---|---|---|---|---|
fid | int | 文件id | Y | - |
返回值 : 同 .get_durl_by_url()