feat: add Bluesky, Lemmy, Odysee, and Archive.org alert backends
Bluesky (bs) searches public post API, constructs bsky.app URLs from at:// URIs. Lemmy (ly) queries 4 instances (lemmy.ml, lemmy.world, programming.dev, infosec.pub) with cross-instance dedup. Odysee (od) uses LBRY JSON-RPC claim_search for video, audio, and documents with lbry:// to odysee.com URL conversion. Archive.org (ia) searches via advanced search API sorted by date. All routed through SOCKS5 proxy via _urlopen. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -345,12 +345,13 @@ No API credentials needed (uses public GQL endpoint).
|
||||
!alert history <name> [n] # Show recent results (default 5)
|
||||
```
|
||||
|
||||
Searches keywords across 10 backends: YouTube (yt), Twitch (tw), SearXNG (sx),
|
||||
Searches keywords across 14 backends: YouTube (yt), Twitch (tw), SearXNG (sx),
|
||||
Reddit (rd), Mastodon (ft), DuckDuckGo (dg), Google News (gn), Kick (kk),
|
||||
Dailymotion (dm), PeerTube (pt). Names: lowercase alphanumeric + hyphens, 1-20
|
||||
chars. Keywords: 1-100 chars. Max 20 alerts/channel. Polls every 5min.
|
||||
Format: `[name/yt] Title -- URL`, etc. No API credentials needed. Persists across
|
||||
restarts. History stored in `data/alert_history.db`.
|
||||
Dailymotion (dm), PeerTube (pt), Bluesky (bs), Lemmy (ly), Odysee (od),
|
||||
Archive.org (ia). Names: lowercase alphanumeric + hyphens, 1-20 chars. Keywords:
|
||||
1-100 chars. Max 20 alerts/channel. Polls every 5min. Format: `[name/yt] Title -- URL`,
|
||||
etc. No API credentials needed. Persists across restarts. History stored in
|
||||
`data/alert_history.db`.
|
||||
|
||||
## SearX
|
||||
|
||||
|
||||
@@ -692,13 +692,17 @@ Platforms searched:
|
||||
- **Kick** (`kk`) -- Public search API: channels and livestreams (no auth required)
|
||||
- **Dailymotion** (`dm`) -- Public video API, sorted by recent (no auth required)
|
||||
- **PeerTube** (`pt`) -- Federated video search across 4 instances (no auth required)
|
||||
- **Bluesky** (`bs`) -- Public post search API via SOCKS5 proxy (no auth required)
|
||||
- **Lemmy** (`ly`) -- Federated post search across 4 instances (no auth required)
|
||||
- **Odysee** (`od`) -- LBRY JSON-RPC claim search: video, audio, documents (no auth required)
|
||||
- **Archive.org** (`ia`) -- Internet Archive advanced search, sorted by date (no auth required)
|
||||
|
||||
Polling and announcements:
|
||||
|
||||
- Alerts are polled every 5 minutes by default
|
||||
- On `add`, existing results are recorded without announcing (prevents flood)
|
||||
- New results announced as `[name/<tag>] Title -- URL` where tag is `yt`, `tw`,
|
||||
`sx`, `rd`, `ft`, `dg`, `gn`, `kk`, `dm`, or `pt`
|
||||
- New results announced as `[name/<tag>] Title -- URL` where tag is one of:
|
||||
`yt`, `tw`, `sx`, `rd`, `ft`, `dg`, `gn`, `kk`, `dm`, `pt`, `bs`, `ly`, `od`, `ia`
|
||||
- Titles are truncated to 80 characters
|
||||
- Each platform maintains its own seen list (capped at 200 per platform)
|
||||
- 5 consecutive errors doubles the poll interval (max 1 hour)
|
||||
|
||||
Reference in New Issue
Block a user