rss2go

command module
v0.0.0-...-aebc479 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2023 License: MIT Imports: 5 Imported by: 0

README

rss2go

wercker status

Clone of rss2email in Go that I've used to learn Go.

*Basic Architecture:

Config is stored in json format. By default the config lives in ~/.config/rss2go/config.json

List of Feeds and their state (what guids we've already seen) are kept in a SQLite database.

When started up in daemon or runone mode:

Goroutine Pool of HTTP Crawlers

  • all listen to channel of FeedCrawlRequests

One FeedWatcher goroutine per Feed

  • handles getting the feed, finding new items and sending them out for mailing

One goroutine for the mailer

One gorouting for a HTTP server that exports /feedz -> shows last poll status of each feed /debug/... -> pprof endpoint for debugging

Example usage:

go build -o rss2go main.go
mkdir -p ~/.config/rss2go
cp config_example.json ~/.config/rss2go/config.json

Edit ~/.config/rss2go/config.json to have the right addresses and paths in it.

./rss2go --config ~/.config/rss2go/config.json feeds add "FeedName" 'http://feed/url.atom'
./rss2go --config ~/.config/rss2go/config.json users add yourname your@email password 'http://feed/url.atom'
./rss2go feeds runone --send_mail=false http://localhost/test.rss

To Build a binary:

go build -o rss2go main.go

Upstart config for Ubuntu is in initscripts/upstart/rss2go.conf. Copy it to /etc/init/rss2go.conf and install a built binary where it says to have rss2go run as a service.

REST API

Rss2Go can expose a REST API which can be used to edit users and feeds in the system.

To enable it set "enableAPI" to true in the web_server section of the config:

[web_server]
listenAddress = "localhost:7000"
enableAPI = false

webui/webui.go documents the endpoints. See https://github.com/hobeone/rss2go_web for a hacky Ember.js based client.

Note: There is no authentication whatsoever on the API yet so be careful.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL