{ "info": { "author": "Cathal Garvey", "author_email": "cathalgarvey@cathalgarvey.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing", "Topic :: Utilities" ], "description": "# RSSFilter - Fetch, Parse, Filter and Re-Feed RSS\nby Cathal Garvey, Copyright 2015, licensed under the [GNU Affero GPL](https://gnu.org/licenses/agpl.txt).\n\n## What it does\nRSSFilter lets you take an RSS feed, apply regex queries (or custom-defined functions)\nto the feed, and then present the result as a new RSS feed ready for consumption by a\nfeed reader. It has an entry point for terminal usage, and is well suited (indeed,\ndeveloped for) for integration in a simple web-app relay.\n\n## Why I wrote it\nI'm mulling the problem of mass-data-funnelling a lot lately and this is just one experiment\nas part of a much broader thing. Specifically this was inspired by the annoying discovery\nof a news website that provided an RSS feed for *all* news but not for topic-specific\nnews. Thankfully, the topics had appropriate URL paths, so the science news could\nbe filtered by selecting articles containing \"/science/\" in them. So was born RSSFilter.\n\n## Usage\nInstall: `sudo pip install rssfilter` (or sudo python3 setup.py install)\n\nInstallation gives you the rssfilter module, and also the rssfilter terminal\ntool.\n\nIncluded in the git repo is a trivial example usage for a Flask webapp, but this\nis not installed with rssfilter when pip-installed or similar.\n\nAs currently written the entry-points accept up to two filters which may contain\narbitrary regex expressions. As there are only two built-in filter-classes this\ntwo-filter limit isn't really a limit at all. There is an option whether to combine\nthe given two filters by boolean AND or OR.\n\nIn module usage you can define your own filters; they should accept a feed in\na format as returned by feedparser (but with all elements converted to native\ntypes!) and return one in the same format.\n\n## Example Terminal Usage:\n\nFetching recent articles on the Marriage Equality referendum in Ireland (May 2015) from\nthe Irish Times RSS feed:\n\n rssfilter https://www.irishtimes.com/cmlink/the-irish-times-news-1.1319192 -t '([Gg]ay|[Hh]omosexual|[Mm]arriage|[Rr]eferend)'\n\n(Use 'rssfilter --help' for more information)\n \nImporting and using the module to achieve the same result:\n\n import rssfilter\n it_feed = \"https://www.irishtimes.com/cmlink/the-irish-times-news-1.1319192\"\n f = rssfilter.filter_feed(it_feed, rssfilter.in_title_filter('([Gg]ay|[Hh]omosexual|[Mm]arriage|[Rr]eferend)'))\n print(f)\n\nTo learn more, read the source code docstrings or use iPython to explore with the \"?\"\nappellation.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/cathalgarvey/rssfilter", "keywords": "rss,atom,feed,subscription,filter,regex,web,news", "license": "AGPL", "maintainer": null, "maintainer_email": null, "name": "rssfilter", "package_url": "https://pypi.org/project/rssfilter/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rssfilter/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/cathalgarvey/rssfilter" }, "release_url": "https://pypi.org/project/rssfilter/0.0.1/", "requires_dist": null, "requires_python": null, "summary": "Fetch, filter, and re-render RSS feeds for more useful consumption.", "version": "0.0.1" }, "last_serial": 1550396, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c81e61f07bc7929d9364671f92e94e1d", "sha256": "43a44d259a8b9534deacf00c173c47bb3a55be3fea5e04a628c5b44f81d4a6ad" }, "downloads": -1, "filename": "rssfilter-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c81e61f07bc7929d9364671f92e94e1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5268, "upload_time": "2015-05-17T12:28:39", "url": "https://files.pythonhosted.org/packages/c6/07/ffbbfa3d0d4ec6f4fd64dfe55b6d7d2dc72ccb9b1c90fe78e8f8ed9900e5/rssfilter-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c81e61f07bc7929d9364671f92e94e1d", "sha256": "43a44d259a8b9534deacf00c173c47bb3a55be3fea5e04a628c5b44f81d4a6ad" }, "downloads": -1, "filename": "rssfilter-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c81e61f07bc7929d9364671f92e94e1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5268, "upload_time": "2015-05-17T12:28:39", "url": "https://files.pythonhosted.org/packages/c6/07/ffbbfa3d0d4ec6f4fd64dfe55b6d7d2dc72ccb9b1c90fe78e8f8ed9900e5/rssfilter-0.0.1.tar.gz" } ] }