1 个不稳定版本
0.1.0 | 2022年12月20日 |
---|
#270 在 数据库实现
180KB
245 行
Roo - 为您的浏览器提供智能书签搜索引擎
简介
Roo
(代表“袋鼠”)是一个智能书签和生产力 CLI 工具,它作为您浏览器的自定义搜索引擎运行,允许您在浏览器的搜索栏中快速发出命令。它是一个简单的服务器,接受搜索查询,并根据一组预定义(并可自定义)的规则重定向到适当的 URI。
Roo
对个人生产力很有用,但许多用户在公司的服务器上运行它,以便所有员工都能以快速访问内部和外部工具、维基、文档和资源的方式共享。
Roo 受到 Facebook 在 2012 年创建并开源的bunny1 书签工具的极大启发。它用 Rust 编写,并按照 MIT 许可证 发布。
内置命令
Roo 随附一组默认命令,这些命令可以完全自定义。
工具 | 描述 | 命令 | 示例 |
---|---|---|---|
搜索 Google.com | g<搜索查询> |
g Rust 语言 |
|
Google 日历 | 转到 Google 日历 | cal |
cal |
Google 文档 | 创建新的 GDoc | newdoc |
newdoc |
Gmail | 在 Gmail 中创建新邮件 | newmail |
newmail |
Youtube | 转到 youtube | y |
y |
Youtube 搜索 | 搜索 youtube.com | y<搜索查询> |
y Rust 视频 |
Google 地图 | 转到 Google 地图 | maps |
maps |
Google 地图搜索 | 搜索 Google 地图 | maps<搜索查询> |
maps rome colosseum |
Google Drive | 转到 Google Drive | drive |
drive |
Google Drive 搜索 | 搜索 Google Drive | drive<搜索查询> |
drive blog post |
GitHub | 转到 Github | gh |
gh |
GitHub 搜索 | 搜索 Github | gh<搜索查询> |
gh hello world! |
GitHub 搜索代码 | 搜索 Github 代码 | ghc<搜索查询> |
ghc hello world! |
GitHub 搜索问题 | 搜索 Github 问题 | ghi<搜索查询> |
ghi 运行时异常 |
搜索 Pinterest | pin<搜索查询> |
pin ideas |
|
搜索 Reddit | redd<搜索查询> |
redd Rust 语言 |
|
转到 Twitter 个人资料 | tw<handle> |
tw@marcocampana |
|
搜索 | tw<搜索查询> |
tw rust lang |
|
Amazon | 搜索 Amazon.com | a<搜索查询> |
4K电视 |
AWS EC2 | 转到EC2实例页面 | i-<实例ID> |
i-123 |
AWS VPC | 转到VPC页面 | vpc-<VPC ID> |
vpc-123 |
安装
从Crates.io安装
如果您是Rust程序员,可以使用roo_engine
配合cargo
进行安装
cargo install roo_engine
使用Homebrew(Mac)安装
brew tap marcocampana/tap
brew install roo_engine
查看仓库
如果您使用MacOs,使用Homebrew是推荐的选择。但是,您也可以在您的机器上查看仓库并使用cargo
运行。
-
从GitHub检出仓库
git checkout [email protected]:marcocampana/roo_engine.git
-
使用Cargo运行
cargo run
如何
启动服务器
如果您已安装二进制文件,可以通过在终端中执行roo_engine
二进制文件来启动服务器
roo_engine
或者如果您使用cargo
,可以运行
cargo run
这将在127.0.0.1:3030
上启动roo_engine
。
您可以使用--help
参数来打印您可以使用以运行roo
的所有可用参数。
roo --help
将roo_engine
添加为Chrome中的默认搜索引擎
- 转到
chrome://settings/searchEngines
- 在
Search engines
下的Add
处点击,并使用此URLhttp://127.0.0.1:3030/?q=%s
- 可选地将此设置为默认搜索引擎以实现最大生产力™
定义您自己的命令
roo_engine
将您的搜索查询与定义的命令列表进行匹配。与roo_engine
一起提供的内置命令位于parser.rs文件中。您可以创建自己的规则文件,并在启动时告诉roo
它在哪
roo --path ~/my_file.toml
roo_engine
命令看起来是这样的
[[command]]
input = "g (.+)"
output = "https://www.google.com/search?q={}"
输入字符串是一个与浏览器搜索栏输入进行匹配的正则表达式。如果找到匹配项,则正则表达式捕获的分组将在浏览器重定向到的输出字符串中的{}
中替换。在上面的例子中,我们定义了一个命令g
,它将匹配字符串g <search query>
并重定向到Google搜索以搜索<search query>
。
有关示例命令,请参阅rules.toml。
示例:JIRA任务
如果您是JIRA用户,您知道JIRA任务ID的格式为<PROJECT_PREFIX>-<TASK_NUMBER>
。您可以编写一个自定义命令,允许您在浏览器搜索栏中输入任务ID,并将其重定向到任务详细信息。例如,假设您的项目前缀是MP
,您可以定义以下规则
[[command]]
input = "(MP-.+)"
output = "https://marcocampana.atlassian.net/browse/{}"
在后台运行
在MacOs上,您可以设置 launchd
以自动在后台运行 roo_engine
。
- 在
~/Library/LaunchAgents
文件夹中创建一个plist
文件(请确保指定机器中代码的绝对路径,而不是/Users/myuser
)
<?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>Label</key>
<string>com.marcocampana.roo_engine</string>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/User/myuser/code/roo_engine</string>
<key>ProgramArguments</key>
<array>
<string><PATH_TO>/User/myuser/.cargo/bin/cargo</string>
<string>run</string>
</array>
</dict>
</plist>
- 加载配置以启动服务器
launchctl load ~/Library/LaunchAgents/com.marcocampana.roo_engine.plist
如何贡献
从本仓库分叉并发送拉取请求。确保为任何新功能编写单元测试
使用以下命令运行测试
cargo test
依赖关系
~18–52MB
~845K SLoC