@@ -58,7 +58,7 @@ Sends two categories of GraphQL queries to `https://api.meetup.com/gql-ext`:
5858Responses are filtered by city (default: Oklahoma City), excluded keywords
5959(e.g., "Tulsa", "Bitcoin"), and a configurable time window (` DAYS ` , default 7).
6060Results are deduplicated, sorted by date, and exported to a JSON file. HTTP responses
61- are cached with ` requests-cache ` to reduce API calls.
61+ are cached with ` hishel ` (SQLite-backed) to reduce API calls.
6262
6363### slackbot.py -- Slack Message Delivery
6464
@@ -96,7 +96,7 @@ The central web server that wires everything together.
9696
9797** Authentication:** Dual-layer. API routes require OAuth2 Bearer tokens (HS256 JWT
9898via ` python-jose ` ). Requests from whitelisted IPs (localhost, 127.0.0.1) bypass
99- auth. A ` UserInfo ` PonyORM entity stores bcrypt-hashed credentials in PostgreSQL .
99+ auth. A ` UserInfo ` PonyORM entity stores bcrypt-hashed credentials in SQLite .
100100
101101### scheduler.py -- Background Job Runner
102102
@@ -192,7 +192,7 @@ See `.env.example` for the full list. Key groups:
192192| ------- | ---- |
193193| FastAPI + uvicorn + gunicorn | Web framework and server |
194194| PonyORM | ORM (SQLite provider) |
195- | requests + requests-cache | HTTP client with caching |
195+ | httpx + hishel | HTTP client with caching |
196196| slack-sdk | Slack Web API client |
197197| PyJWT + cryptography | RS256 JWT signing for Meetup auth |
198198| python-jose | HS256 JWT for application auth |
0 commit comments