tool for finding RSS/Atom feeds for pages
Go to file
0x80 05d844b337
(formatting) Shift table over.
2021-12-30 00:00:00 +00:00
docs Bump version. 2021-12-30 00:00:00 +00:00
scripts Add Podbay support. 2021-12-30 00:00:00 +00:00
tests Add Podbay support. 2021-12-30 00:00:00 +00:00
.gitignore Initial commit. 2021-07-17 00:00:00 +00:00
COPYING Correct license declaration. 2021-12-29 00:00:00 +00:00
GPLv2 Relicense to GPLv2+ 2021-11-08 00:00:00 +00:00
GPLv3 Relicense to GPLv2+ 2021-11-08 00:00:00 +00:00
README.md (formatting) Shift table over. 2021-12-30 00:00:00 +00:00
rsstube Initial code push. 2021-07-23 00:00:00 +00:00
rsstube-gtk.py Add very basic GUI. 2021-07-25 00:00:00 +00:00

README.md

rsstube

Some website provide RSS/Atom feeds. rsstube tries to find the URLs for those feeds.

This is a work-in-progress. It's missing some features I want like proxy support and a way to deal with Cloudflare sites.

That said, if you download this code and run it, it should work for the features and sites that have been implemented.

Installing

rsstube is written in Python, an interpreted language. There's no need to compile it.

Dependencies

  • Python 3
  • PycURL

Arch Linux:

sudo pacman -S python python-pycurl

Debian:

sudo apt install python3 python3-pycurl

Fedora:

sudo dnf install python3 python3-pycurl

Pip:

(Assuming python and pip are already installed...)

pip install --user pycurl

Optional Dependencies

  • Git (for updating via git)
  • GitPython (for updating via git)
  • PyGObject (for the GUI)

Arch Linux:

sudo pacman -S git python-gitpython python-gobject

Debian:

sudo apt install git python3-git python3-gi

Fedora:

sudo dnf install git python3-GitPython python3-gobject

Pip:

(Assuming git is already installed...)

pip install --user GitPython PyGObject

Sample Installation

git clone https://negativezero.link/code/0x80/rsstube.git

sudo ln -s "$(pwd)/rsstube/rsstube" /usr/local/bin/rsstube

Updating

If you installed rsstube with git, and you have GitPython installed, use rsstube -U or rsstube --update.

If you installed rsstube another way (manual download, package manager), update rsstube that same way.

Usage

rsstube <link>

Here are the options that work right now.

Informational

    -h, --help                      Print help text and exit.

    --license                       Print license declaration and exit.

    --sites                         Print list of supported sites and exit.

    --version                       Print version and exit.

General Options

    -n, --non-network               (Offline mode.) Only return feed URL if
                                    it can be determined without downloading
                                    any pages.

    -o, --output FILENAME           Output results to FILENAME rather than
                                    console. (If FILENAME is an empty
                                    string, rsstube will output to the
                                    console.)

    --output-format [opml|url]      Specify which output format to use.
                                    [Default: url]

    --unbreak                       Attempt to work with hostile websites
                                    (e.g., those that use Cloudflare).

    -U, --update                    Update rsstube (only works if
                                    downloaded with git).

Verbosity

                                    | MESSAGE TYPE | REQUIRED VERBOSITY |
                                    | ------------ | ------------------ |
                                    |     Debug    |         4          |
                                    |     Notify   |         3          |
                                    |     Warn     |         2          |
                                    |     Error    |         1          |

    --verbosity [0-4]               Specify how much output you want.
                                    [Default: 3]

    -v, --verbose                   Show: all.
                                    Same as --verbosity 4.

    -q, --quiet                     Show: Error.
                                    Suppress: Warn, Notify, Debug.
                                    Same as --verbosity 1.

    --suppress-errors               Suppress: all.
                                    Same as --verbosity 0.

Networking (PycURL args)

    -A, --user-agent UA_STRING      Specify custom user-agent string.

    -H, --header HEADER             Add a header. Use it multiple times to
                                    add multiple headers.

Scope

rsstube is not a tool for generating new feeds where they don't already exist. It is a tool for locating official feed URLs provided by the site.

I will not register an API key with any service just to get a feed. rsstube only gets feeds which are publicly available.

Site-specific extractors should only be added to rsstube when the site in question requires special logic. If the logic is generally applicable to many sites, it should go in the generic extractor.

License

GPLv2 or later