Categorygithub.com/Dhar01/Gator
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.

  1. Install Go

    go version
    
  2. Install PostgreSQL

    psql --version
    
  3. Install via go install

    go install github.com/Dhar01/Gator@latest
    
  4. 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

CommandUsageDescription
loginlogin <username>login
registerregister <username>register
resetDANGERDO NOT USE
usersusersget available users list
aggagg <time>
addfeedaddfeed <name> <url>add a feed with name and URL
feedsfeedsget available feeds list
followfollow <url>follow a feed using URL
followingfollowingget a list of current feed follows
browse
searchN/AN/A
helpN/AN/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.

# Packages

No description provided by the author
No description provided by the author