Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/olegsu/rss-sync
Sync RSS feed to targets
https://github.com/olegsu/rss-sync
open-intergration rss rss-sync trello
Last synced: 18 days ago
JSON representation
Sync RSS feed to targets
- Host: GitHub
- URL: https://github.com/olegsu/rss-sync
- Owner: olegsu
- Created: 2020-05-04T15:21:55.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-11-17T04:46:17.000Z (about 4 years ago)
- Last Synced: 2024-11-12T04:41:06.821Z (3 months ago)
- Topics: open-intergration, rss, rss-sync, trello
- Language: Go
- Size: 73.2 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RSS-Sync
RSS-Sync will sync you rss feed into support targets (Trello atm).
I use it as to sync my favourite podcasts and add them to my Trello board so I dont forget to listen.* The input to the program is `feed.yaml` file that describes the rss, targets and the binding between them [FEED].
* It uses go template as templat engine together with [gomplate](https://docs.gomplate.ca/) to extend the functionality
* {{ .feed }} - to access the feed tol level properties as it parsed using [gofeed](github.com/mmcdole/gofeed) (items are removed)
* {{ .item }} - to access the current rss item that matched to the filters
* {{ .source }} - to access the current source from `feed.yaml`
* {{ .binding }} - to access the current binding from `feed.yaml`
* {{ .target }} - to access the current target from `feed.yaml`
* open-integration pipeline - [read more](https://dev.to/olegsu/continuous-automation-with-open-integration-4f5a) about open-intergrationFor example:
```yaml
targets:
# Unique name of the target
- name: This Week List
trello:
# Trello API token - https://trello.com/app-key
token: '{{ env.Getenv "TRELLO_TOKEN" }}'
# Trello application ID - https://trello.com/app-key
application-id: '{{ env.Getenv "TRELLO_APP_ID" }}'
# Trello board id - get it from the URL
board-id: '{{ env.Getenv "TRELLO_BOARD_ID" }}'
# Trello list id - get if from https://trello.com/b/{board-id}.json
list-id: '{{ env.Getenv "TRELLO_LIST_ID" }}'
# Data about the card to be created
card:
title: '[{{ .source.name }}] Listen to: {{ .item.title }}'
description: "{{ .feed.title }}\nLink: {{ .item.link }}\nDescription: {{ .item.description }}"
# Lables ID's
labels: []sources:
# Unique name of the target
- name: Making History
# RSS feed url
url: https://www.ranlevi.com/feed/mh_network_feed
# set of filter to run on each RSS item
# all the filter must to pass in order to pass the item to the target
filter:
# name of the filter can be anything
# the value must be "true" at the end of the templating process in order to consider the filter as successful
# only items that been released in the last 24 hours
just-released: '{{ ((time.Now).Add (time.Hour -24)).Before (time.Parse "Mon, 02 Jan 2006 15:04:05 -0700" .item.published) }}'# In some cased the RSS feed is username-password protected
# auth:
# username: '{{ env.Getenv "USERNAME" }}'
# password: '{{ env.Getenv "PASSWORD" }}'# binding between rss and target
bindings:
- name: Making History
rss: Making History
target: This Week List
```