97 lines
3.2 KiB
Plaintext
97 lines
3.2 KiB
Plaintext
|
=========
|
||
|
Atomstrom
|
||
|
=========
|
||
|
|
||
|
Atomstrom is a small but flexible feed aggregator.
|
||
|
Copyright (C) 2013 Ronald Schaten <ronald@schatenseite.de>
|
||
|
|
||
|
See <https://dev.0x50.de/projects/atomstrom/> for current versions and
|
||
|
development info.
|
||
|
|
||
|
|
||
|
Idea
|
||
|
----
|
||
|
|
||
|
The idea of Atomstrom is based on the great little aggregator rss2email
|
||
|
<http://www.allthingsrss.com/rss2email/>, a small tool written in Python that
|
||
|
fetches feeds and sends the received entries via mail. It is a fine program,
|
||
|
and I used it for several years.
|
||
|
|
||
|
|
||
|
Installation
|
||
|
------------
|
||
|
|
||
|
Atomstrom doesn't need any installation. Just copy the included
|
||
|
atomstrom.conf.sample to atomstrom.conf and make the appropriate settings.
|
||
|
|
||
|
If you use MySQL, you'll have to create a database first. The database
|
||
|
structure will be created by Atomstrom on its first launch.
|
||
|
|
||
|
|
||
|
Configuration
|
||
|
-------------
|
||
|
|
||
|
Up until now, feeds are configured by making the right settings in the
|
||
|
feed-table of the database. The settings are as follows:
|
||
|
|
||
|
* id: Set automatically by the database, you don't have to change this.
|
||
|
* url: URL of the feed you'd like to fetch.
|
||
|
* frequency: Minutes between fetching the feed.
|
||
|
* keepdaysafterlastfetch: Entries are deleted if they aren't included in the
|
||
|
feed for n days.
|
||
|
* daily: Entries won't be sent immediately, they are included in the daily
|
||
|
digest.
|
||
|
* resolveredirects: Some feeds use URL-forwarders in their feeds to create
|
||
|
usage stats. Enable this if the forwarder-URL is ugly.
|
||
|
* readability: Use readability to fetch the URL and extract the part that is
|
||
|
probably the entry content.
|
||
|
* fullpage: Fetch the full page from the URL.
|
||
|
* contentcolumn: Can be one of summary, content, fullpage or readability. This
|
||
|
marks the column in which the content is found that will be sent.
|
||
|
* html2textcontent: Convert the content-text from HTML to text.
|
||
|
* html2textignorelinks: Ignore links when converting to text.
|
||
|
* html2textignoreimages: Ignore images when converting to text.
|
||
|
* enabled: Marks if this feed is enabled or not.
|
||
|
|
||
|
The on-/off-options have to be NULL to be disabled, 1 otherwise.
|
||
|
|
||
|
|
||
|
Usage
|
||
|
-----
|
||
|
|
||
|
I use two cronjobs to fetch and send feeds:
|
||
|
|
||
|
*/5 * * * * cd /atomstrom-directory/ && ./atomstrom.py -fs > /dev/null 2>&1
|
||
|
5 6 * * * cd /atomstrom-directory/ && ./atomstrom.py -d > /dev/null 2>&1
|
||
|
|
||
|
So every five minutes, all due feeds will be fetched and single mails will be
|
||
|
sent. Every day at 06:05, the daily digest will be sent.
|
||
|
|
||
|
|
||
|
Command Line Arguments
|
||
|
----------------------
|
||
|
|
||
|
The following switches can be used from the command line interface:
|
||
|
|
||
|
-h, --help show this help message and exit
|
||
|
-f, --fetch fetch all feeds
|
||
|
-s, --single send single mails
|
||
|
-d, --daily send daily digest
|
||
|
-l, --list list all configured feeds
|
||
|
-e ID, --delete ID delete feed <ID> from configuration
|
||
|
-r ID, --reset ID reset data for feed <ID>
|
||
|
|
||
|
Note that until now it's not possible to add or configure feeds from the
|
||
|
command line. Maybe this feature will be included in some future version.
|
||
|
|
||
|
|
||
|
Thanks
|
||
|
------
|
||
|
|
||
|
I'd like to thank the creators of the modules I was able to use for this
|
||
|
project:
|
||
|
|
||
|
* Universal Feed Parser: <http://code.google.com/p/feedparser/>
|
||
|
* SQLAlchemy: <http://www.sqlalchemy.org/>
|
||
|
* python-readability: <https://github.com/buriy/python-readability>
|