GitXplorerGitXplorer
t

go-morss

public
3 stars
0 forks
0 issues

Commits

List of commits on branch main.
Verified
b076e8f72a577cabcb5780d1ff09f0722ac77ba9

Drop invalid log message

ttraut committed 17 days ago
Verified
410ed6f43b732eda60464a417b8096e2b9f5fdcc

Adding another inspiration link

ttraut committed 19 days ago
Verified
620b234ce3f07718b9e4ee416b33a80a1a70015e

Readme tweak

ttraut committed 19 days ago
Verified
4ee95b8d8ccd05ec494bb83d8cdb8df5ae3d4968

Log messages fixes

ttraut committed 19 days ago
Verified
712f16c4d92fce9792d074459e9ec7f7f9f9bb54

Docs update

ttraut committed 19 days ago
Verified
a78e7e16c61b5c74a38267e74b868fb74af02c88

Formatting

ttraut committed 19 days ago

README

The README file for this repository.

go-morss

go-morss is a lightweight server for enriching RSS/Atom/JSON feeds by adding full content to each feed item. It fetches the content from item links, parses it for readability, and repackages the feed with the full content included. This makes it easier to consume feeds in a reader or automate content processing.

Features

  • Fetches full content for feed items using readability parsing (inspired by Readability.js by Mozilla).
  • Supports RSS, Atom, and JSON feed formats.
  • Filters items by a configurable time window and limits the number of items per feed to reduce the load.
  • Easy-to-use HTTP API for on-the-fly feed enrichment.

Installation

  1. Clone the repository:

    git clone https://github.com/traut/go-morss.git
  2. Build the binary:

    cd go-morss
    go build

Usage

Starting the Server

Run the server with default options:

./go-morss

Available flags:

  • --ip: The IP address to listen on (default: 0.0.0.0).
  • --port: The port to listen on (default: 8080).
  • --items-cap: Maximum number of items to process per feed (default: 10).

Example:

./go-morss --port 9090 --items-cap 20

API Usage

Endpoint Format

To use the API, append the feed URL (without schema) to the root endpoint:

https://<server-address>/<feed-url-without-schema>

Example:

http://localhost:8080/news.ycombinator.com/rss
  • Assumes https:// as the default schema for feed URLs.
  • The enriched feed retains the original format (RSS, Atom, or JSON).

Query Parameters

  • from_time: Only include items published/updated after this time (ISO8601 format).
  • items_cap: Override the server's item cap for the request.

Example:

http://localhost:8080/news.ycombinator.com/rss?from_time=2023-01-01T00:00:00Z&items_cap=5

Development

To run the project locally during development:

go run morss.go

Dependencies

Inspired By

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests to improve the project.

License

This project is licensed under the MIT License.


Enjoy! 🚀