15 个版本 (8 个不兼容版本)
0.9.0 | 2024 年 3 月 20 日 |
---|---|
0.8.0 | 2024 年 2 月 28 日 |
0.6.1 | 2023 年 12 月 1 日 |
0.6.0 | 2023 年 11 月 30 日 |
#314 在 文本处理 中
每月 56 次下载
375KB
7.5K SLoC
Bogrep – 搜索你的书签
Bogrep 会下载并缓存你的书签(不包含图片或视频),使用 Bogrep CLI 进行全文搜索。
bogrep -i "reed-solomon code"
安装 Bogrep
从 crates.io 安装 Bogrep
# Build and install bogrep binary to ~/.cargo/bin
cargo install bogrep
要更新 bogrep 到新版本,请再次运行 cargo install bogrep
。0.x 版本将不向后兼容,并预计会有破坏性变更。如果您在运行 Bogrep 时遇到问题,请删除 Bogrep 的配置目录(参见 支持的操作系统)。
从 github.com 安装 Bogrep
git clone [email protected]:quambene/bogrep.git
cd bogrep
# Build and install bogrep binary to ~/.cargo/bin
cargo install --path .
使用方法
设置和缓存安装到配置路径,首次运行 Bogrep 后。配置路径取决于您的操作系统(参见 支持的操作系统)。
# Import bookmarks from selected sources
bogrep import
# Fetch and cache bookmarks
bogrep fetch
# Search your bookmarks in full-text search
bogrep <pattern>
要模拟书签导入,请使用 bogrep import --dry-run
。
搜索
bogrep [OPTIONS] [PATTERN]
Options:
-v, --verbose...
-m, --mode <MODE> Search the cached bookmarks in HTML or plaintext format [possible values: html, text]
-i, --ignore-case Ignore case distinctions in patterns
-l, --files-with-matches Print only URLs of bookmarks with matched lines
-h, --help Print help
-V, --version Print version
获取帮助
# Check version
bogrep --version
# Print help
bogrep --help
# Print help for subcommands
bogrep config --help
bogrep import --help
bogrep fetch --help
导入书签
以下浏览器支持从书签导入
- Firefox(JSON 和 JSONlz4 格式)
- Chromium(JSON 格式)
- Chrome(JSON 格式)
- Edge(JSON 格式)
- Safari(plist 格式)
如果书签文件没有被bogrep import
检测到,您可以通过以下方式手动配置:
bogrep config --source ~/path/to/bookmarks/file
过滤书签文件夹
过滤要导入的书签文件夹。多个文件夹用逗号分隔
bogrep config --source "my/path/to/bookmarks_file.json" --folders dev,science,articles
忽略URL
忽略特定的URL。这些URL的内容将不会被获取和缓存。
忽略视频或音乐平台的URL可能很有用,因为这些平台通常不包含grep相关的文本。
# Ignore one or more urls
bogrep config --ignore <url1> <url2> ...
获取底层 URL
获取受支持网站的底层URL
bogrep config --underlying <url1> <url2> ...
例如,如果有一个特定的URL,如https://news.ycombinator.com/item?id=00000000
被书签,则会获取并缓存其底层的文章。
支持的域名有
- news.ycombinator.com
- reddit.com
比较网站
获取多个URL的缓存和获取网站之间的差异,并显示更改
bogrep fetch --diff <url1> <url2> ...
管理内部书签
如果您需要将特定URL添加到搜索索引中,请使用bogrep add
子命令。
# Add URLs to search index
bogrep add <url1> <url2> ...
# Remove URLs from search index
bogrep remove <url1> <url2> ...
# Add URLs to search index and fetch content from URLs
bogrep fetch <url1> <url2> ...
请求节流
从同一主机获取书签的操作被保守地节流,但也可以在settings.json
中进行配置,通常位于您的家目录中的~/.config/bogrep
。
{
"cache_mode": "text",
"max_concurrent_requests": 100,
"request_timeout": 60000,
"request_throttling": 3000,
"max_idle_connections_per_host": 10,
"idle_connections_timeout": 5000
}
request_throttling
是同一主机请求之间的等待时间(毫秒)。
为了加快获取速度,将max_concurrent_requests
设置为例如1000。可用的最大套接字数量取决于您的操作系统。运行ulimit -n
以显示系统允许的最大打开套接字数量。
有关可用设置,请参阅https://docs.rs/bogrep/latest/bogrep/struct.Settings.html。
支持的操作系统
Bogrep假设并创建配置路径在
$HOME/.config/bogrep
,适用于Linux,$HOME/Library/Application Support/bogrep
,适用于macOS,C:\Users\<Username>\AppData\Roaming/bogrep
,适用于Windows,
在您的家目录中存储settings.json
、bookmarks.json
和cache
文件夹。
您可以通过环境变量BOGREP_HOME
配置配置路径。
测试
# Run unit tests and integration tests
cargo test
# Run unit tests
cargo test --lib
# Run integration tests
cargo test --test '*'
依赖关系
~19-33MB
~532K SLoC