Skip to content

Commit

Permalink
feat(pcs): 增加使用客户端下载功能
Browse files Browse the repository at this point in the history
ref #3
  • Loading branch information
zacksleo committed Apr 23, 2021
1 parent e355161 commit 4f37502
Show file tree
Hide file tree
Showing 5 changed files with 156 additions and 13 deletions.
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,6 @@ venv.bak/
dmypy.json

# Pyre type checker
.pyre/
token.json
*.alfredworkflow
pyre/
token.json
*.alfredworkflow
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,17 @@

![登录截图](.github/screenshot/pcs-login.png)

## 下载配置

如何使用下载功能, 安装成功后, 在对应的 Workflow Enviroment Variables 中, 配置以下环境变量:

| Name | Value |
| --------- | ----- |
| browserId | - |
| uk_unique | - |

上面两个值可以在百度网盘网页中的 LocalStorage 中找到 (打开开发者工具, 依次找到Application-Storage-Local Storage)

## 浏览目录

`pcs`
Expand All @@ -32,11 +43,14 @@

![搜索文件](.github/screenshot/pcs-search.png)

## 使用客户端下载

## 快捷键

1. 使用 Cmd, 在浏览器中打开
2. 使用 Alt(Option), 在上级目录中打开
3. 使用 Shift, 打开客户端
4. 使用 Ctrl, 使用客户端下载

## 参考

Expand Down
28 changes: 28 additions & 0 deletions src/download.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import requests
import json
import sys
import os

def get_seq(obj):
params = {
'browserId': os.getenv("browserId"),
'downloadInfo': '{"method":"DownloadSelfOwnItems","uk":"'+os.getenv('uk_unique')+'","filelist":[{"isdir":"'+obj['isdir']+'","md5":"'+obj['md5']+'","size":"'+obj['size']+'","server_path":"'+obj['server_path']+'","fs_id":'+obj['fs_id']+'}]}',
}
# print(params)
response = requests.post('https://pan.baidu.com/api/invoker/send', data=params)
return response.json()['seq']


def run():
params = {
"fs_id": os.getenv("fs_id"),
"isdir": os.getenv("isdir"),
"md5": os.getenv("md5"),
"server_path": os.getenv("server_path"),
"size": os.getenv("size"),
"uk": os.getenv("uk"),
}
print(get_seq(params))

if __name__ == '__main__':
sys.exit(run())
106 changes: 97 additions & 9 deletions src/info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,37 @@
</dict>
<dict>
<key>destinationuid</key>
<string>9E10FEF8-493A-41E7-9988-B01DDF14DE82</string>
<string>5D4887E2-1F46-4A3B-A63D-DE4C7B6A3C0F</string>
<key>modifiers</key>
<integer>131072</integer>
<key>modifiersubtext</key>
<string></string>
<key>vitoclose</key>
<false/>
</dict>
<dict>
<key>destinationuid</key>
<string>4A035457-8AE0-4B16-80A8-3F76DF8B6AD4</string>
<key>modifiers</key>
<integer>262144</integer>
<key>modifiersubtext</key>
<string></string>
<key>vitoclose</key>
<false/>
</dict>
</array>
<key>4A035457-8AE0-4B16-80A8-3F76DF8B6AD4</key>
<array>
<dict>
<key>destinationuid</key>
<string>9E10FEF8-493A-41E7-9988-B01DDF14DE82</string>
<key>modifiers</key>
<integer>0</integer>
<key>modifiersubtext</key>
<string></string>
<key>vitoclose</key>
<false/>
</dict>
</array>
<key>E29D4F1E-0744-47C0-BBD9-739FB5A8B824</key>
<array/>
Expand Down Expand Up @@ -141,6 +164,25 @@
<key>version</key>
<integer>1</integer>
</dict>
<dict>
<key>config</key>
<dict>
<key>browser</key>
<string></string>
<key>spaces</key>
<string></string>
<key>url</key>
<string>baiduyunguanjia://guanjia/noui</string>
<key>utf8</key>
<true/>
</dict>
<key>type</key>
<string>alfred.workflow.action.openurl</string>
<key>uid</key>
<string>5D4887E2-1F46-4A3B-A63D-DE4C7B6A3C0F</string>
<key>version</key>
<integer>1</integer>
</dict>
<dict>
<key>config</key>
<dict>
Expand Down Expand Up @@ -198,7 +240,7 @@
<key>spaces</key>
<string></string>
<key>url</key>
<string>baiduyunguanjia://evoked-download/?browserId={query}</string>
<string>baiduyunguanjia://evoked-download/?browserId={var:browserId}&amp;seq={query}</string>
<key>utf8</key>
<true/>
</dict>
Expand All @@ -209,6 +251,29 @@
<key>version</key>
<integer>1</integer>
</dict>
<dict>
<key>config</key>
<dict>
<key>concurrently</key>
<false/>
<key>escaping</key>
<integer>102</integer>
<key>script</key>
<string>/usr/local/bin/python3 download.py "{allvars}"</string>
<key>scriptargtype</key>
<integer>1</integer>
<key>scriptfile</key>
<string></string>
<key>type</key>
<integer>0</integer>
</dict>
<key>type</key>
<string>alfred.workflow.action.script</string>
<key>uid</key>
<string>4A035457-8AE0-4B16-80A8-3F76DF8B6AD4</string>
<key>version</key>
<integer>2</integer>
</dict>
</array>
<key>readme</key>
<string>Keywords are one of Alfred's most commonly used and most useful ways of launching actions. Set a keyword and connect it to the action(s) you want to perform.
Expand All @@ -219,7 +284,7 @@ Type your keyword into Alfred, followed by your input text if needed, and you'll
<key>0F1BD418-FE4A-4E30-9E85-F131E03B0251</key>
<dict>
<key>xpos</key>
<integer>380</integer>
<integer>385</integer>
<key>ypos</key>
<integer>70</integer>
</dict>
Expand All @@ -233,25 +298,48 @@ Type your keyword into Alfred, followed by your input text if needed, and you'll
<key>1C64A086-7EC8-4811-9E10-97EA7853D255</key>
<dict>
<key>xpos</key>
<integer>55</integer>
<integer>70</integer>
<key>ypos</key>
<integer>140</integer>
<integer>230</integer>
</dict>
<key>9E10FEF8-493A-41E7-9988-B01DDF14DE82</key>
<key>4A035457-8AE0-4B16-80A8-3F76DF8B6AD4</key>
<dict>
<key>xpos</key>
<integer>380</integer>
<key>ypos</key>
<integer>380</integer>
<integer>505</integer>
</dict>
<key>5D4887E2-1F46-4A3B-A63D-DE4C7B6A3C0F</key>
<dict>
<key>xpos</key>
<integer>385</integer>
<key>ypos</key>
<integer>365</integer>
</dict>
<key>9E10FEF8-493A-41E7-9988-B01DDF14DE82</key>
<dict>
<key>xpos</key>
<integer>645</integer>
<key>ypos</key>
<integer>505</integer>
</dict>
<key>E29D4F1E-0744-47C0-BBD9-739FB5A8B824</key>
<dict>
<key>xpos</key>
<integer>55</integer>
<integer>70</integer>
<key>ypos</key>
<integer>305</integer>
<integer>410</integer>
</dict>
</dict>
<key>variables</key>
<dict>
<key>browserId</key>
<string>browserId</string>
<key>uk_unique</key>
<string>uk_unique</string>
</dict>
<key>variablesdontexport</key>
<array/>
<key>version</key>
<string>1.0</string>
<key>webaddress</key>
Expand Down
15 changes: 14 additions & 1 deletion src/search.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,23 @@ def handleFiles(query, files):
"autocomplete": file.path if file.is_dir else '',
"icon": getIcon(file),
"mods": {
"ctrl": {
"valid": "true",
"arg": str(file.fs_id),
"subtitle": '使用客户端下载',
"variables": {
"fs_id": file.fs_id,
"isdir": file.is_dir,
"md5": file.md5 if file.md5 else '',
"size": file.size,
"server_path": file.path,
"uk": file.user_id
}
},
"shift": {
"valid": "true",
"arg": str(file.fs_id),
"subtitle": '在客户端中打开'
"subtitle": '在客户端中打开',
},
"alt": {
"valid": "true",
Expand Down

0 comments on commit 4f37502

Please sign in to comment.