Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qsniyg/rssit
RSS Feed Generator
https://github.com/qsniyg/rssit
Last synced: 15 days ago
JSON representation
RSS Feed Generator
- Host: GitHub
- URL: https://github.com/qsniyg/rssit
- Owner: qsniyg
- License: mit
- Created: 2016-07-30T11:35:16.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-03-06T02:51:10.000Z (over 2 years ago)
- Last Synced: 2024-10-13T05:37:24.644Z (about 1 month ago)
- Language: Python
- Size: 461 KB
- Stars: 61
- Watchers: 10
- Forks: 24
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# RSSit
RSS/Atom feed generator for various (mainly social media) websites, including Twitter and Instagram.## Supported websites
As of the time of writing:
* Flickr
* Instagram (images, videos, albums, stories, livestreams/replays, messages, news)
* Livedoor
* Naver blogs (posts, search)
* Various news websites (posts, search, but it's a mess at the moment)
* Reddit (messages only)
* Soundcloud
* Tistory (posts, search, categories, tags)
* Tumblr
* Vine (deprecated due to vine's closure)
* XDG Notifications (requires `notifications_server` to be set to `true`)
* XE (search only)This list may change. Check https://github.com/qsniyg/rssit/tree/master/rssit/generators to see the full list.
## Requirements
RSSit requires Python 3, and various packages outlined in requirements.txt.
You can install them automatically via:`$ pip install -r requirements.txt`
RSSit optionally requires `dbus-python` and `PyGObject` for desktop notifications support.
## Installation
None required.
## Usage
`$ python rssit.py`
By default, it will serve at `http://localhost:8123/`.
Access it via your web browser, and submit the URL you wish to generate a feed for.
If it's supported, it will return a link to the feed.You can also run rssit as a command-line application by submitting a URL path directly (without the leading http://...):
`$ python rssit.py '/f/twitter/u/Support'`
## Configuration
### Intro
Configuration is primarily done at `~/.config/rssit/config.ini`. Here is a sample configuration:
```ini
[core]
hostname = localhost
port = 8123[default]
output = rss
```You can also add specific configurations for any generator and feed.
```ini
[twitter]
output = atom[twitter/u/Support]
title = Support from Twitter
description = Twitter's Support User
```Since configuration is applied from parent folders to children,
with the configuration above, http://localhost:8123/f/twitter/u/Support will result in this configuration:```ini
title = Support from Twitter
description = Twitter's Support User
output = atom
```Configuration is lazily applied, so the following entry is perfectly acceptable,
and would modify the previous URL's configuration accordingly:```ini
[twitter/u]
output = rss
```If you only wish to modify the configuration per-request, you can do so via standard GET request parameters:
http://localhost:8123/f/twitter/u/Support?title=Support&output=atom
You can also modify the configuration on the command-line:
`$ python rssit.py '/f/twitter/u/Support' output=rss "title=Support from Twitter"`
### Hooks
Other applications can be hooked to run at any stage of the feed generation process.
One such application is [download.py](https://github.com/qsniyg/dlscripts/blob/master/download.py),
which uses data from the "social" output format to download media.To use download.py, clone the [dlscripts repo](https://github.com/qsniyg/dlscripts/) somewhere,
and add the following to your configuration:```ini
social_hooks = python path/to/download.py
```RSSit will then send the data to the program's stdin.
To disable hooks entirely (useful for one-off usages):
```ini
nohooks = true
```### Common options
While each generator can have their own options, these options will modify most generators' behaviour
* `output` - Output format. Possible options:
* `social` - Simple format used to describe most social media-like posts (represented in JSON)
* `feed` - General format used to describe a feed (every generator must generate to this directly
or to a format such as social that supports generating to this)
* `rss` - RSS
* `atom` - Atom
* `count` - Minimum amount of entries to return. Currently not all generators support this. Possible values:
* `-1` - All entries (can be very slow)
* `0` - No entries
* `1` - Minimum possible number of entries (fastest)
* `n` - Minimum of `n` entries
* `brackets` - Adds the generator's name in brackets to the title of the feed, e.g. '[Twitter] TwitterDev'
* `title` - Title of the feed
* `description` - Description of the feed
* `timeout` - Timeout for downloads submitted by the generator
* `proxy` - Proxy for downloads
* `httpheaders_[...]` - Sets an HTTP header for downloads, for example `httpheaders_Cookie = ...`
(useful for at least Instagram and Weibo)### Core options
Options that affect the core engine for RSSit
* `hostname` - Network hostname. This is used for self-referencing URLs within RSSit
* `port` - Port to run RSSit