How kwasos/gator works
Gator is a terminal RSS aggregator: users register or log in, manage feeds and follows, the periodic aggregator fetches feeds and stores posts, and browse displays recent posts from followed feeds. The command router in main.go dispatches CLI commands to handlers; handlers own database operations through sqlc-generated queries. README capabilities are represented, but RSS parsing and config are only sampled in part, so uncertain internal details are omitted.
Main entry points: db.go Query API · main.go Command router · commands.go User commands · handler_agg.go Periodic aggregator
Components 15
CLI workflow
- Command router
main.go - User commands
commands.go - Feed commands
handler_feed.go - Browse posts
handler_browse.go - User config
internal/config/config.go
Feed collection
- Periodic aggregator
handler_agg.go - RSS fetch
rss_feed.go
Persistence
- Query API
internal/database/db.go - User queries
internal/database/users.sql.go - Feed queries
internal/database/feeds.sql.go - Follow queries
internal/database/feed_follow.sql.go - Post queries
internal/database/posts.sql.go
Other components
- CLI user
- PostgreSQL
- RSS sources
Connections 21
- CLI user → Command router: runs commands
- Command router → User commands: dispatches
- Command router → Feed commands: dispatches
- Command router → Browse posts: dispatches
- Command router → Periodic aggregator: dispatches
- Command router → User config: reads config
- User commands → User config: sets user
- User commands → Query API: calls queries
- Feed commands → Query API: calls queries
- Browse posts → Query API: calls queries
- Periodic aggregator → Query API: calls queries
- Periodic aggregator → RSS fetch: fetches feed
- RSS fetch → RSS sources: requests RSS
- Query API → User queries: uses
- Query API → Feed queries: uses
- Query API → Follow queries: uses
- Query API → Post queries: uses
- User queries → PostgreSQL: reads/writes
- Feed queries → PostgreSQL: reads/writes
- Follow queries → PostgreSQL: reads/writes
- Post queries → PostgreSQL: reads/writes