All Projects → skx → rss2hook

skx / rss2hook

Licence: GPL-2.0 license
POST to webhook(s) when new feed-items appear.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
HCL
1544 projects

Projects that are alternatives of or similar to rss2hook

Feed-on-Feeds
FeedOnFeeds is a lightweight server-based RSS feed aggregator and reader
Stars: ✭ 52 (+57.58%)
Mutual labels:  rss, rss-feed-scraper
goeland
An alternative to rss2email written in golang with many filters
Stars: ✭ 78 (+136.36%)
Mutual labels:  rss, rss-feed-scraper
html2rss-web
🕸 Generates and delivers RSS feeds via HTTP. Create your own feeds or get started quickly with the included configs.
Stars: ✭ 36 (+9.09%)
Mutual labels:  rss, rss-feed-scraper
eventsourcing-go
Event Sourcing + CQRS using Golang Tutorial
Stars: ✭ 75 (+127.27%)
Mutual labels:  rss, golang-application
HungryHippo
🦛 scrapes websites and generates rss feeds
Stars: ✭ 33 (+0%)
Mutual labels:  rss, rss-feed-scraper
rss2email
Convert RSS feeds to emails
Stars: ✭ 72 (+118.18%)
Mutual labels:  rss, golang-application
Download Webhook
🍰 Download files through webhook
Stars: ✭ 131 (+296.97%)
Mutual labels:  rss, webhook
Homura
Homura RSS Reader
Stars: ✭ 195 (+490.91%)
Mutual labels:  rss
Rss
Library for serializing the RSS web content syndication format
Stars: ✭ 223 (+575.76%)
Mutual labels:  rss
Gorss
Go Terminal Feed Reader
Stars: ✭ 191 (+478.79%)
Mutual labels:  rss
Morss
Get full text RSS feeds
Stars: ✭ 184 (+457.58%)
Mutual labels:  rss
Blogetc
Easily add a full Laravel blog (with built in admin panel and public views) to your laravel project with this simple package.
Stars: ✭ 198 (+500%)
Mutual labels:  rss
Hackernews Daily
Hacker News daily top 10 posts
Stars: ✭ 236 (+615.15%)
Mutual labels:  rss
Podcast Rss Editor
A simple Podcast RSS editor in PHP
Stars: ✭ 193 (+484.85%)
Mutual labels:  rss
V2
Minimalist and opinionated feed reader
Stars: ✭ 3,239 (+9715.15%)
Mutual labels:  rss
Feedek
FeedEk jQuery RSS/ATOM Feed Plugin
Stars: ✭ 190 (+475.76%)
Mutual labels:  rss
django-yaturbo
Reusable Django app to enable Yandex Turbo Pages for your site
Stars: ✭ 13 (-60.61%)
Mutual labels:  rss
Dasblog Core
The original DasBlog reimagined with ASP.NET Core
Stars: ✭ 252 (+663.64%)
Mutual labels:  rss
Webmonitor
实时监控网页变化,并发送通知(Monitor web page changes in real time and send notifications)
Stars: ✭ 212 (+542.42%)
Mutual labels:  rss
Noderssbot
Another Telegram RSS bot but in Node.js Telegram RSS 机器人
Stars: ✭ 212 (+542.42%)
Mutual labels:  rss

Go Report Card license Release

RSS2Hook

This project is a self-hosted utility which will make HTTP POST requests to remote web-hooks when new items appear in an RSS feed.

Rational

I have a couple of webhooks in-place already which will take incoming HTTP submissions and "do stuff" with them, for example:

  • Posting to my alerting system.
    • Which is called purppura and is pretty neat.
  • Posting to IRC.
    • IRC was mattermost before slack before born.

I also have a bunch of RSS feeds that I follow, typically these include github releases of projects. For example my git-host runs gitbucket so I subscribe to the release feed of that, to ensure I'm always up to date:

Installation

There are two ways to install this project from source, which depend on the version of the go version you're using.

If you prefer you can fetch a binary from our release page. Currently there is only a binary for Linux (amd64) due to the use of cgo in our dependencies.

Build without Go Modules (Go before 1.11)

go get -u github.com/skx/rss2hook

Build with Go Modules (Go 1.11 or higher)

git clone https://github.com/skx/rss2hook ;# make sure to clone outside of GOPATH
cd rss2hook
go install

Setup

There are two parts to the setup:

  • Configure the list of feeds and the corresponding hooks to POST to.
  • Ensure the program is running.

For the first create a configuration-file like so:

http://example.com/feed.rss = https://webhook.example.com/notify/me

(There is a sample configuration file sample.cfg which will demonstrate this more verbosely.)

You can use your favourite supervision tool to launch the deamon, but you can test interactively like so:

 $ rss2hook -config ./sample.cfg

Sample Webhook Receiver

There is a simple webserver located beneath webhook/ which will listen upon http://localhost:8080, and dump any POST submission to the console.

You can launch it like so:

 cd webhook/
 go run webhook.go

Testing it via curl would look like this:

  $ curl --header "Content-Type: application/json"  \
  --request POST \
  --data '{"username":"blah","password":"blah"}' \
  http://localhost:8080/

The sample.cfg file will POST to this end-point so you can see how things work:

$ rss2hook --config=sample.cfg

Implementation Notes

  • By default the server will poll all configured feeds immediately upon startup.
    • It will look for changes every five minutes.
  • To ensure items are only announced once state is kept on the filesystem.
    • Beneath the directory ~/.rss2hook/seen/.
  • Feed items are submitted to the webhook as JSON.

Github Setup

This repository is configured to run tests upon every commit, and when pull-requests are created/updated. The testing is carried out via .github/run-tests.sh which is used by the github-action-tester action.

Releases are automated in a similar fashion via .github/build, and the github-action-publish-binaries action.

Steve

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].