modulepackage
0.0.0-20241223123511-9466fe8e5f3e
Repository: https://github.com/dhar01/gator.git
Documentation: pkg.go.dev
# README
Aggre-GATOR
GATOR (beware 🐊) is an RSS feed aggregator for command line, written in Go! Features include:
- Add RSS feeds from across the internet to be collected
- Store the collected posts in a PostgreSQL database
- Follow and unfollow RSS feeds that other users have added
- View summaries of the aggregated posts in the terminal, with a link to the full post.
Install
This project uses Go and PostgresSQL. Please ensure to set them up before proceeding.
-
Install Go
- Download and install Go from the official Go website.
- Verify installation:
go version
-
Install PostgreSQL
- Install PostgreSQL from the official PostgreSQL website.
- Verify Installation:
psql --version
-
Install via
go install
go install github.com/Dhar01/Gator@latest
-
After installation, run the program using:
Gator ...
Config
Create a .gatorconfig.json
file in home directory. Example:
{
"db_url": "postgres://username:@localhost:5432/database?sslmode=disable"
}
Replace the values with your database connection string.
Usage
$ gator <command> <arguments>
# gator login user
# gator addfeed "Its Foss" https://itsfoss.com/rss/
Available commands
Command | Usage | Description |
---|---|---|
login | login <username> | login |
register | register <username> | register |
reset | DANGER | DO NOT USE |
users | users | get available users list |
agg | agg <time> | |
addfeed | addfeed <name> <url> | add a feed with name and URL |
feeds | feeds | get available feeds list |
follow | follow <url> | follow a feed using URL |
following | following | get a list of current feed follows |
browse | ||
search | N/A | N/A |
help | N/A | N/A |
TO-DO / Plan
- Add sorting and filtering options to the
browse
command - Add pagination to
browse
command - Add concurrency to the
agg
command so that it can fetch more frequently - Add a
search
command that allows for fuzzy searching of posts - Add bookmarking or liking posts
- Add a TUI that allows you to select a post in the terminal and view it in a more readable format (either in the terminal or open in a browser)
- Add an HTTP API (and authentication/authorization) that allows other users to interact with the service remotely
- Write a service manager that keeps the
agg
command running in the background and restarts it if it crashes
🤝 Contributing
Submit a pull request
If you'd like to contribute, please fork the repository and open a pull request to the main
branch.