介绍
# Raindrop.io Bookmarks
通过 Raindrop.io API 管理书签。
## 设置
```bash # Get token from: https://app.raindrop.io/settings/integrations → "Create test token" echo 'RAINDROP_TOKEN="your-token"' > ~/.config/raindrop.env
# Or pass token at runtime (recommended for ephemeral use) {baseDir}/scripts/raindrop.sh --token "your-token" whoami ```
## 快速开始
```bash # Search bookmarks {baseDir}/scripts/raindrop.sh search "AI tools"
# List unsorted bookmarks {baseDir}/scripts/raindrop.sh list -1 --limit 50
# Count unsorted {baseDir}/scripts/raindrop.sh count -1
# Create collection and move bookmarks {baseDir}/scripts/raindrop.sh create-collection "AI Coding" {baseDir}/scripts/raindrop.sh move 12345 66016720
# Bulk move (efficient!) {baseDir}/scripts/raindrop.sh bulk-move "123,456,789" 66016720 ```
## 命令
### 读取
| 命令 | 描述 | |---------|-------------| | `whoami` | 显示已认证用户 | | `collections` | 列出所有集合及其 ID | | `list [ID]` | 列出书签(默认:0 = 全部) | | `count [ID]` | 统计集合中的书签数量 | | `search QUERY [ID]` | 搜索书签 | | `get ID` | 获取书签详情 | | `tags` | 列出所有标签及其计数 | | `list-untagged [ID]` | 查找无标签的书签 | | `cache ID` | 获取永久副本(仅限专业版) |
### 写入
| 命令 | 描述 | |---------|-------------| | `add URL [ID]` | 添加书签(默认:-1 = 未分类) | | `delete ID` | 删除书签 | | `create-collection NAME` | 创建新集合 | | `move ID COLLECTION` | 将书签移动到集合 | | `update ID [opts]` | 更新标签/标题/集合 | | `bulk-move IDS TARGET [SOURCE]` | 移动多个书签(源默认为 -1/未分类) | | `suggest URL` | 获取 AI 建议的标签/标题 |
### 选项
| 标志 | 描述 | |------|-------------| | `--json` | 原始 JSON 输出 | | `--limit N` | 最大结果数(默认:25) | | `--page N` | 分页(从 0 开始) | | `--delay MS` | API 调用之间的延迟(速率限制) | | `--token TOKEN` | 覆盖 API 令牌 |
### 更新选项
对于 `update` 命令:
| 标志 | 描述 | |------|-------------| | `--tags TAG1,TAG2` | 设置标签(逗号分隔) | | `--title TITLE` | 设置标题 | | `--collection ID` | 移动到集合 |
### 集合 ID
- `0` = 所有书签 - `-1` = 未分类 - `-99` = 回收站 - `N` = 特定集合(通过 `collections` 获取 ID)
## 示例
```bash # List unsorted with pagination {baseDir}/scripts/raindrop.sh list -1 --limit 50 --page 0 {baseDir}/scripts/raindrop.sh list -1 --limit 50 --page 1
# Create collection {baseDir}/scripts/raindrop.sh create-collection "AI Coding" # Output: Created: AI Coding / ID: 66016720
# Move single bookmark {baseDir}/scripts/raindrop.sh move 1234567 66016720
# Update bookmark with tags and move {baseDir}/scripts/raindrop.sh update 1234567 --tags "claude-code,workflow,tips" --collection 66016720
# Bulk move with rate limiting (100ms between calls) {baseDir}/scripts/raindrop.sh bulk-move "123,456,789,101112" 66016720 --delay 100
# Find untagged bookmarks in unsorted {baseDir}/scripts/raindrop.sh list-untagged -1 --limit 100
# Get JSON for scripting {baseDir}/scripts/raindrop.sh list -1 --json --limit 50 | jq '.items[]._id'
# Count unsorted bookmarks {baseDir}/scripts/raindrop.sh count -1 ```
## 批量操作
对于大批量操作,请使用 `bulk-move`,该命令使用 Raindrop 批量 API(每个请求最多 100 项):
```bash # Get IDs from unsorted ids=$({baseDir}/scripts/raindrop.sh list -1 --json --limit 100 | jq -r '[.items[]._id] | join(",")')
# Move all to collection {baseDir}/scripts/raindrop.sh bulk-move "$ids" 66016720 ```
## 速率限制
Raindrop API 具有速率限制。对于批量操作:
1. 使用 `--delay 100`(每次调用间隔 100 毫秒) 2. 使用 `bulk-move` 而不是单独的 `move` 调用 3. 按 50-100 的批次处理
## 直接 API
对于未涵盖的操作:
```bash source ~/.config/raindrop.env
# Update tags curl -X PUT "https://api.raindrop.io/rest/v1/raindrop/ID" \ -H "Authorization: Bearer $RAINDROP_TOKEN" \ -H "Content-Type: application/json" \ -d '{"tags": ["tag1", "tag2"]}'
# Bulk update (up to 100 IDs) curl -X PUT "https://api.raindrop.io/rest/v1/raindrops" \ -H "Authorization: Bearer $RAINDROP_TOKEN" \ -H "Content-Type: application/json" \ -d '{"ids": [123, 456, 789], "collectionId": 12345}' ```
API 文档:https://developer.raindrop.io/