Skip to content

feat: Telegram Bot for New Bounty Notifications (Bounty #847)#1310

Open
Ikalus1988 wants to merge 1 commit into
SolFoundry:mainfrom
Ikalus1988:feature/telegram-bounty-notifications
Open

feat: Telegram Bot for New Bounty Notifications (Bounty #847)#1310
Ikalus1988 wants to merge 1 commit into
SolFoundry:mainfrom
Ikalus1988:feature/telegram-bounty-notifications

Conversation

@Ikalus1988
Copy link
Copy Markdown

Bounty T2: Telegram Bot for New Bounty Notifications

Reward: 500K FNDRY | Closes #847


✅ Acceptance Criteria

Criteria Implementation
Real-time bounty posting to Telegram 60s polling loop + webhook support
Rich embed format HTML embeds with tier emoji, reward, body preview
Inline buttons for details and claiming Details + I want this buttons
/leaderboard command GitHub GraphQL + SolFoundry API fallback
Customizable notification filters Tier, type, min reward, keyword filters

Commands

Command Description
/start Welcome message
/bounty N Bounty #N detail with inline buttons
/leaderboard 🏆 Top 20 contributors
/filters View current filters
/filter tier:2,3 min:500 Set filter rules
/subscribe Subscribe to all bounties
/unsubscribe Unsubscribe

Filter Syntax

/filter tier:1,2 type:feature min:500 keyword:api

Architecture

telegram-bot/
├── bot/
│   ├── config.py             # ENV config
│   ├── models.py             # Bounty, UserFilter, LeaderboardEntry
│   ├── github_client.py      # GitHub REST + GraphQL API
│   ├── subscription_store.py # Redis-backed per-user filter persistence
│   ├── formatters.py         # Rich Telegram HTML message formatters
│   ├── handlers.py           # Command + callback handlers
│   └── app.py                # Polling loop + FastAPI webhook
├── main.py                   # Entry point
├── pyproject.toml
└── tests/                    # 12 unit tests passing

Setup

cd telegram-bot
cp .env.example .env  # fill in TELEGRAM_BOT_TOKEN, TELEGRAM_CHANNEL_ID
uv venv && source .venv/bin/activate
uv pip install -e .
python main.py  # polling dev mode

SolFoundry Bounty #847 | 500K FNDRY

Implements Bounty T2 SolFoundry#847 — Telegram Bot for New Bounty Notifications

Features:
- Real-time bounty posting to Telegram with rich HTML embeds
- Inline keyboard buttons for bounty details and claiming
- /leaderboard command (GitHub GraphQL + API fallback)
- Per-user customizable notification filters (tier, type, min reward)
- Redis-backed subscription persistence
- Polling mode (dev) and webhook mode (production)
- FastAPI webhook server for production deployment
- 12 unit tests passing

Commands: /start, /help, /bounty N, /leaderboard, /filters,
/filter, /subscribe, /unsubscribe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

missing-wallet PR is missing a Solana wallet for bounty payout

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🏭 Bounty T2: Telegram Bot for New Bounty Notifications

1 participant