Gank-Alfred-Workflow 项目教程
1. 项目的目录结构及介绍
Gank-Alfred-Workflow/
├── images/
├── releases/
├── source-v1/
├── source/
├── .gitignore
├── LICENSE
├── README-V1.md
├── README.md
└── workflow/
├── icon.png
├── info.plist
├── main.py
└── requirements.txt
- images/: 存放项目相关的图片资源。
- releases/: 存放项目的发布版本。
- source-v1/: 可能是项目的第一版源代码。
- source/: 当前版本的源代码。
- .gitignore: Git 忽略文件,指定哪些文件或目录不需要被 Git 管理。
- LICENSE: 项目的开源许可证文件。
- README-V1.md: 项目第一版的说明文档。
- README.md: 项目的当前说明文档。
- workflow/: 工作流的核心目录,包含主要的启动文件和配置文件。
- icon.png: 工作流的图标文件。
- info.plist: 工作流的配置文件,包含工作流的元数据和配置信息。
- main.py: 工作流的主启动文件,负责处理用户的搜索请求。
- requirements.txt: 项目依赖的 Python 包列表。
2. 项目的启动文件介绍
main.py
main.py
是 Gank-Alfred-Workflow 项目的主启动文件,负责处理用户的搜索请求。该文件的主要功能包括:
- 接收用户输入的搜索关键词。
- 调用 Gank.io 的 API 进行搜索。
- 解析 API 返回的 JSON 数据。
- 将搜索结果展示给用户。
代码示例:
import sys
import json
import requests
def search_gank(query):
url = f"https://gank.io/api/v2/search/{query}"
response = requests.get(url)
if response.status_code == 200:
return json.loads(response.text)
else:
return None
def main(query):
results = search_gank(query)
if results:
for result in results:
print(result)
else:
print("No results found.")
if __name__ == "__main__":
query = sys.argv[1]
main(query)
3. 项目的配置文件介绍
info.plist
info.plist
是 Gank-Alfred-Workflow 项目的配置文件,包含了工作流的元数据和配置信息。该文件的主要内容包括:
- Bundle ID: 工作流的唯一标识符。
- Name: 工作流的名称。
- Description: 工作流的描述。
- Author: 工作流的作者。
- Version: 工作流的版本号。
- Script Filter: 定义了工作流的脚本过滤器,指定
main.py
作为处理脚本。
配置文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>bundleid</key>
<string>com.javayhu.gank-alfred-workflow</string>
<key>name</key>
<string>Gank-Alfred-Workflow</string>
<key>description</key>
<string>An Alfred Workflow for searching ganks(干货) in gank.io</string>
<key>author</key>
<string>javayhu</string>
<key>version</key>
<string>2.0</string>
<key>scriptfilter</key>
<dict>
<key>script</key>
<string>python main.py {query}</string>
</dict>
</dict>
</plist>
通过以上配置,Alfred 工作流可以正确地调用 main.py
文件处理用户的搜索请求,并将结果展示给用户。