#search #productivity #search-query #cli #bookmarking

bin+lib roo_engine

Roo 是一款智能书签和生产力工具,它作为您浏览器的自定义搜索引擎运行

1 个不稳定版本

0.1.0 2022年12月20日

#270数据库实现

MIT 许可证

180KB
245

Roo - 为您的浏览器提供智能书签搜索引擎

Dall-E 2 generated logo

简介

Roo(代表“袋鼠”)是一个智能书签和生产力 CLI 工具,它作为您浏览器的自定义搜索引擎运行,允许您在浏览器的搜索栏中快速发出命令。它是一个简单的服务器,接受搜索查询,并根据一组预定义(并可自定义)的规则重定向到适当的 URI。

Roo 对个人生产力很有用,但许多用户在公司的服务器上运行它,以便所有员工都能以快速访问内部和外部工具、维基、文档和资源的方式共享。

Roo 受到 Facebook 在 2012 年创建并开源的bunny1 书签工具的极大启发。它用 Rust 编写,并按照 MIT 许可证 发布。

内置命令

Roo 随附一组默认命令,这些命令可以完全自定义。

工具 描述 命令 示例
Google 搜索 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 搜索 Pinterest pin<搜索查询> pin ideas
Reddit 搜索 Reddit redd<搜索查询> redd Rust 语言
Twitter 转到 Twitter 个人资料 tw<handle> tw@marcocampana
Twitter 搜索 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运行。

  1. 安装Rust和Cargo

  2. 从GitHub检出仓库

    git checkout [email protected]:marcocampana/roo_engine.git
    
  3. 使用Cargo运行

    cargo run
    

如何

启动服务器

如果您已安装二进制文件,可以通过在终端中执行roo_engine二进制文件来启动服务器

roo_engine

或者如果您使用cargo,可以运行

cargo run

这将在127.0.0.1:3030上启动roo_engine

您可以使用--help参数来打印您可以使用以运行roo的所有可用参数。

roo --help

roo_engine添加为Chrome中的默认搜索引擎

  1. 转到chrome://settings/searchEngines
  2. Search engines下的Add处点击,并使用此URL http://127.0.0.1:3030/?q=%s
  3. 可选地将此设置为默认搜索引擎以实现最大生产力™

定义您自己的命令

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

  1. ~/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>
  1. 加载配置以启动服务器
launchctl load ~/Library/LaunchAgents/com.marcocampana.roo_engine.plist

如何贡献

从本仓库分叉并发送拉取请求。确保为任何新功能编写单元测试

使用以下命令运行测试

cargo test

依赖关系

~18–52MB
~845K SLoC