Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[enhancement] 没有decompress接口 Q-Q #15

Open
ZHLONG-CN opened this issue Aug 27, 2023 · 3 comments
Open

[enhancement] 没有decompress接口 Q-Q #15

ZHLONG-CN opened this issue Aug 27, 2023 · 3 comments
Labels
enhancement New feature or request

Comments

@ZHLONG-CN
Copy link

查看压缩文件列表和解压压缩文件 API 接口

查看压缩文件列表

#  请求
POST https://api-drive.mypikpak.com/decompress/v1/list

{"gcid":"<file_hash>","path":"<path, 可空>","file_id":"<file_id>,"password":"<password, 可空>"}

# 以上 file_hash 由 GET https://api-drive.mypikpak.com/drive/v1/files/<file_id> 后 response.json()['hash'] 获得.

# 响应
{"status":"OK","status_text":"","task_id":"","current_path":"<path>","title":"<file_name>","file_size":"<file_size_bytes>","gcid":"<file_hash>","files":[
    {'filename': ...
     'filesize': ...
     'gcid': ...  # 为空
     'icon_lik': ...
     'index': ...
     'kind': ...
     'mine_type': ...
     'path': ...  # 相对于压缩包文件的绝对路径
    }, ...
]}

解压所有文件

# 请求
POST https://api-drive.mypikpak.com/decompress/v1/decompress

{"gcid":"<file_hash>","password":"<password, 可空>","file_id":"<file_id>","files":[],"default_parent":true}

# 响应
{"status":"OK","status_text":"","task_id":"<task_id>","files_num":<files_num>,"redirect_link":""}

通过 task_id 使用 progress API 可以获得解压进度

# 请求
GET https://api-drive.mypikpak.com/decompress/v1/progress?task_id=<task_id>

# 响应1
{"progress":7,"expires_in":1,"phase":"PHASE_TYPE_RUNNING", "file_id":""...}

# 响应2
{"progress":100,"expires_in":999,"phase":"PHASE_TYPE_COMPLETE","file_id":"<解压完成的文件夹id>", ...}

另外想请教 client_id 如何获取才能不需要附上x-device-idx-captcha-token的header. 我自己电脑上登录时有生成client_id和其余两个字段, 但是登录后使用其jwt需要附上两两匹配的x-device-idx-captcha-token, 否则响应400/401错误.

没有 x-device-id header
{"error":"invalid_argument","error_code":3,"error_url":"","error_description":"Request parameter error","error_details":[{"@type":"type.googleapis.com/google.rpc.DebugInfo","stack_entries":[],"detail":"device_id is empty"}]}

没有 x-captcha-token header
{"error":"captcha_invalid","error_code":9,"error_url":"","error_description":"Verification code is invalid","error_details":[{"@type":"type.googleapis.com/google.rpc.DebugInfo","stack_entries":[],"detail":"captcha_token is empty"}]}

x-captcha-token header 乱填
{"error":"captcha_invalid","error_code":9,"error_url":"","error_description":"验证码无效","error_details":[{"@type":"type.googleapis.com/google.rpc.DebugInfo","stack_entries":[],"detail":"no client info found"}]}

仅更换 x-device-id 但不更换 x-captcha-token
{"error":"captcha_invalid","error_code":9,"error_url":"","error_description":"验证码无效","error_details":[{"@type":"type.googleapis.com/google.rpc.DebugInfo","stack_entries":[],"detail":"device not match"}]}

x-device-id 生成算法似乎使用了随机数. 如下.

_.prototype._uuidv4 = function() {
                return "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function(r) {
                    var e = Math.random() * 16 | 0
                      , t = r == "x" ? e : e & 3 | 8;
                    return t.toString(16)
                })
            }
@Quan666 Quan666 added the enhancement New feature or request label Aug 30, 2023
@Quan666
Copy link
Owner

Quan666 commented May 28, 2024

不用 x-device-id 和 x-captcha-token 不能调用这个接口吗?

@ZHLONG-CN
Copy link
Author

不用 x-device-id 和 x-captcha-token 不能调用这个接口吗?

这两个字段不影响调用这个接口.

x-device-id 和 x-captcha-token 是用于获取 client_id 进行登录的.

我看到很多个项目的 client_id 都是用一个静态值 CLIENT_ID = "YNxT9w7GMdWvEOKa" . 我尝试过根据我自己抓包的结果, 发现他获取了一个新的 client_id, 请求头用了 x-device-id和x-captcha-token字段.

@Quan666
Copy link
Owner

Quan666 commented Jul 6, 2024

不用 x-device-id 和 x-captcha-token 不能调用这个接口吗?

这两个字段不影响调用这个接口.

x-device-id 和 x-captcha-token 是用于获取 client_id 进行登录的.

我看到很多个项目的 client_id 都是用一个静态值 CLIENT_ID = "YNxT9w7GMdWvEOKa" . 我尝试过根据我自己抓包的结果, 发现他获取了一个新的 client_id, 请求头用了 x-device-id和x-captcha-token字段.

那就简单咯

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants