summaryrefslogtreecommitdiff
path: root/README.md
blob: 0ffb3a1ae06bd051d2e617713b5aa0f2964bab27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# slopbot

Zulip bot for [meshheads.org](https://zulip.meshheads.org) that replies with stock prices when it sees `$TICKER` patterns in messages.

## Usage

Post `$NVDA` or `$AAPL is mooning` in any stream and slopbot replies with the current price.

## Setup

```bash
pip install -r requirements.txt
cp .zuliprc.example .zuliprc
# edit .zuliprc with your bot credentials
python main.py
```

Get your `.zuliprc` from Zulip: Settings → Bots → your bot → download config.

## Architecture

- `main.py` — single-file bot, raw `zulip` event loop (no framework)
- `fetch_price(ticker)` — isolated data layer, easy to swap yfinance for a real API
- Regex: `\$([A-Z]{1,5})` — matches 1-5 uppercase letters after `$`
- Deduplicates tickers per message, replies in-place (same stream + topic)

## Extending

Future ideas:
- Swap `fetch_price` for Finnhub/Polygon for real-time data
- Add LLM commentary on price moves
- Support crypto tickers
- Add `@slopbot summarize $NVDA` command style