Quan666 / PikPakAPI

PikPak API
135 stars 42 forks source link

修改请求头修复async def offline_list()返回参数不全的问题 #27

Closed Nekohy closed 5 months ago

Nekohy commented 5 months ago

在 list_data = {}开头添加 "with": "reference_resource" 可以返回file_id等参数 不会PR就这样啦( image 同时希望作者能跟进一个转存功能,看了看pass_code_token的生成逻辑没看懂,对js不了解

Nekohy commented 5 months ago

给大家个坑这个id不是file_id也不是task_id...跑了挺久的

Quan666 commented 5 months ago

同时希望作者能跟进一个转存功能,看了看pass_code_token的生成逻辑没看懂,对js不了解

这个是什么意思

Nekohy commented 5 months ago

同时希望作者能跟进一个转存功能,看了看pass_code_token的生成逻辑没看懂,对js不了解

这个是什么意思 算了,这暂时不是很重要((就是加入转存功能,看了Alist的Pikpak模块有对应实现。。但是有一个小问题,offline_list()这里面的ID无论怎么提交都是没办法retry的。。。请问哪一个是task_id

Quan666 commented 5 months ago

你可以都试试,我也记不清了

Nekohy commented 5 months ago

你可以都试试,我也记不清了

都试了一遍,然后全部报错抛出,然后当时就懵了,用file_id来搞info也报错

Nekohy commented 5 months ago

叶叶 学习版, [2024/5/16 14:40] 还有这个 pass code token

JSON.parse(window.document.getElementById("__NUXT_DATA__").textContent)[11]

就在那个网页里面

有了这个pass_code_token就可以加入转存功能了 参数 image https://api-drive.mypikpak.com/drive/v1/share/restore 接口

Nekohy commented 5 months ago

image

Quan666 commented 5 months ago

转存功能是怎么触发的

Nekohy commented 5 months ago

JSON.parse(window.document.getElementById("NUXT_DATA").textContent)[11]

就在那个网页里面

有了这个pass_code_token就可以加入转存功能了

转存功能是怎么触发的

分享链接打开然后转存

Quan666 commented 5 months ago

pass_code_token 有两种方式得到 一个是在分享页面的网页代码里面可以找到,还有一个就是通过下面这个接口能够查询到

https://api-drive.mypikpak.com/drive/v1/share?limit=100&thumbnail_size=SIZE_LARGE&share_id={分享id}&pass_code=

其中 pass_code 不需要传值 没试过这个接口,非分享人能不能请求到对应数据 试过了可以,甚至不需要登录,但需要 x-device-id 和对应的 x-captcha-token

Nekohy commented 5 months ago

可以的,分享人也没法转存

Nekohy commented 5 months ago

会提示无法转存自身文件

Nekohy commented 5 months ago

image 我把id传入之后会提示 JSONDecodeError('Expecting value: line 1 column 1 (char 0)') 。。。

Nekohy commented 5 months ago

image image ID审计之后没什么问题就是task_id((未知报错原因

Quan666 commented 5 months ago

JSONDecodeError('Expecting value: line 1 column 1 (char 0)') 报这个错的时候,响应body是什么

Nekohy commented 5 months ago

image 哦Shit,找到原因了,这里是Post方法

Nekohy commented 5 months ago

你写的result = await self._request_get(list_url, list_data)

Nekohy commented 5 months ago

image 这个API没有返回,别用Get了(((折腾1天多才发现你那里写错了

Quan666 commented 5 months ago

噗噗