{ "info": { "author": "SamR1", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Flask", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP" ], "description": "# python-twootfeed\n**generate a rss feed from parsed Twitter or Mastodon search and Mastodon favorites** \n\n[![PyPI version](https://img.shields.io/pypi/v/twootfeed.svg)](https://pypi.org/project/twootfeed/)\n[![Downloads](https://pepy.tech/badge/twootfeed)](https://pepy.tech/project/twootfeed)\n[![Python Version](https://img.shields.io/badge/python-3.6+-brightgreen.svg)](https://python.org) \n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/14d1c00121c04cd2b81453c597639ca6)](https://www.codacy.com/app/SamR1/python-twootfeed) \n[![Coverage Status](https://coveralls.io/repos/github/SamR1/python-twootfeed/badge.svg?branch=master)](https://coveralls.io/github/SamR1/python-twootfeed?branch=master) \n[![Build Status](https://travis-ci.org/SamR1/python-twootfeed.svg?branch=master)](https://travis-ci.org/SamR1/python-twootfeed)\n\n---\n\nThe RSS feed displays only the original tweets (not the retweets) and toots, with:\n- links to : \n - the tweet on Twitter or toot on Mastodon \n - hashtags \n - usernames \n- URLs \n- images\n- source\n- location (only for Twitter)\n- numbers of retweets and likes for tweets and boosts and favourites for toots \n(see examples below). \n\n## Requirements\n\n- Python 3.6+\n- API keys Twitter and/or Mastodon \n\n\n## Installation and configuration\n\n- Install from pip\n\n```bash\n$ pip install twootfeed\n```\n\n- Initialize the configuration file\n```bash\n$ twootfeed_init\n```\n\n- Fill in fields for the client(s) you will use in **'~/.config/twootfeed/config.yml'** :\n - for **Twitter** : see https://apps.twitter.com \n copy/paste the Twitter API key values in **config.yml** file ('_consumerKey_' and '_consumerSecret_')\n - for **Mastodon** : see [Python wrapper for the Mastodon API](https://mastodonpy.readthedocs.io/) \n use the included script which will register your app and prompt you to log in, creating the credential files for you.\n ```bash\n $ twootfeed_create_mastodon_cli\n ```\n Update the [feed and app parameters](https://github.com/SamR1/python-twootfeed/wiki/Application-parameters).\n\n\n- The files location can be changed with the following environment variables:\n\n| variable | description | app default value |\n|------------------------|-----------------------------------------------| ------------------------------------------------------------------------------------------|\n| `TWOOTFEED_CONFIG_DIR` | configuration and credentials files directory | **'~/.config/twootfeed/'** |\n| `TWOOTFEED_CONFIG_FILE`| config file full path | config dir + **'config.yml'** => with default value: **'~/.config/twootfeed/config.yml'** |\n| `TWOOTFEED_LOG` | application log file | _no default value (log printed on the console)_ |\n\n- Start the app\n```bash\n$ twootfeed\n```\n\n## Usage \n\nThe RSS feeds are available on these urls: \n - for Twitter: http://localhost:8080/ or http://localhost:8080/tweets/\n - for Mastodon: \n - search:\n - keyword as a hashtag: http://localhost:8080/toots/ (without the leading #)\n - query: http://localhost:8080/toot_search/\n - connected user favourites: http://localhost:8080/toot_favorites\n\n\n## Examples \n\n### Search on Twitter \n\n![Twitter search](https://raw.githubusercontent.com/SamR1/python-twootfeed/master/images/twitter.png) \n\nResults in RSS Feed: \n![RSS Feed](https://raw.githubusercontent.com/SamR1/python-twootfeed/master/images/RSSFeed.png) \n\nDisplay on FreshRSS, a great free self-hosted aggregator (https://github.com/FreshRSS/FreshRSS): \n![FreshRSS](https://raw.githubusercontent.com/SamR1/python-twootfeed/master/images/FreshRSS.png) \n\n### Search on Mastodon\n\n![Mastodon search](https://raw.githubusercontent.com/SamR1/python-twootfeed/master/images/mastodon.png)\n\nResults in RSS Feed: \n![Mastodon Feed](https://raw.githubusercontent.com/SamR1/python-twootfeed/master/images/MastodonRSSFeed.png) \n\nDisplay on FreshRSS: \n![Mastodon FreshRSS](https://raw.githubusercontent.com/SamR1/python-twootfeed/master/images/MastodonFreshRSS.png) \n\n\n## Contribute\nsee [Quick start for developers](https://github.com/SamR1/python-twootfeed/wiki/Quick-start-for-developers)\n\n\n## Contributors\nThanks to:\n- [georgedorn](https://github.com/georgedorn) for adding:\n - rss feed generation with authenticated user's favorites\n - script to register the app and generate credentials for Mastodon\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/SamR1/python-twootfeed", "keywords": "rss,twitter,mastodon,search", "license": "The MIT License (MIT)", "maintainer": "", "maintainer_email": "", "name": "twootfeed", "package_url": "https://pypi.org/project/twootfeed/", "platform": "linux", "project_url": "https://pypi.org/project/twootfeed/", "project_urls": { "Homepage": "https://github.com/SamR1/python-twootfeed" }, "release_url": "https://pypi.org/project/twootfeed/0.6.6/", "requires_dist": [ "beautifulsoup4 (==4.8.1)", "feedgenerator (==1.9)", "Flask (==1.1.1)", "gunicorn (==19.9.0)", "Mastodon.py (==1.5.0)", "pytz (==2019.3)", "PyYAML (==5.1.2)", "tweepy (==3.8.0)", "pytest-cov ; extra == 'test'", "pytest-flake8 ; extra == 'test'", "pytest-isort ; extra == 'test'" ], "requires_python": "", "summary": "generate a rss feed from Twitter or Mastodon search", "version": "0.6.6" }, "last_serial": 6002226, "releases": { "0.6.0": [ { "comment_text": "", "digests": { "md5": "06e412634844509f69ae3f16427daf0c", "sha256": "54a608fa2df4846f44ddcbd1f19f7c9e4a698b1f6637a9dc42d13096867fa5fc" }, "downloads": -1, "filename": "twootfeed-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "06e412634844509f69ae3f16427daf0c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12190, "upload_time": "2019-01-23T15:12:08", "url": "https://files.pythonhosted.org/packages/cf/46/278c0c1d2e866372ecf43d890a619417c4ab29d2519512b7a2e6a3a0b015/twootfeed-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5d367cb293417189b4abc660f7305fc", "sha256": "ccdc6825f94287cae318e0dc2a4f6c4de676e6d556af80d9d323985011ea0b2d" }, "downloads": -1, "filename": "twootfeed-0.6.0.tar.gz", "has_sig": false, "md5_digest": "f5d367cb293417189b4abc660f7305fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9849, "upload_time": "2019-01-23T15:12:10", "url": "https://files.pythonhosted.org/packages/80/7b/07a131bbd46072b8e8282fec52b3ce4b49ac2a730db260a7b48a3809ddd3/twootfeed-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "1f1ad7ef5e88bea2fcd4c82222422418", "sha256": "a3fc4cd520e8603d349f0df27fb99a1452b318b7ff0fae1dedbfd1834fc7d9da" }, "downloads": -1, "filename": "twootfeed-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1f1ad7ef5e88bea2fcd4c82222422418", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12808, "upload_time": "2019-01-25T10:01:57", "url": "https://files.pythonhosted.org/packages/b6/54/c516fea8e9178a5a4d31311404ee33195a10e676956ab93fc9becf8a0ea9/twootfeed-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b9ad7d4cbaac916c34858678c0f90e2", "sha256": "de72b2df80c3a1edeafec495f0725c8f5ab558a9d4722dea582918534d3b2307" }, "downloads": -1, "filename": "twootfeed-0.6.1.tar.gz", "has_sig": false, "md5_digest": "2b9ad7d4cbaac916c34858678c0f90e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10706, "upload_time": "2019-01-25T10:01:59", "url": "https://files.pythonhosted.org/packages/7d/02/a50b33fe843684dc4dcefaebbccbf16135f9aa07352764f46d3c690c24b5/twootfeed-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "d80a442386e5ee6e39a4ec57b05f2a46", "sha256": "803603dfcf886deed3098b356a2f31bd58a650c1a44aff3c8dbf926cfaf8aa30" }, "downloads": -1, "filename": "twootfeed-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d80a442386e5ee6e39a4ec57b05f2a46", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13165, "upload_time": "2019-01-26T14:29:02", "url": "https://files.pythonhosted.org/packages/38/ed/884b2bb1675e69ee62b2da84ce3b4dc52a9378f78af4333a9ffe2e0284b9/twootfeed-0.6.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cdf88540c93cb062e80db73ead5f825", "sha256": "b4da38098345b6c51ccd595ab38a60ee220969879de2f6d4f555824ce0f8175a" }, "downloads": -1, "filename": "twootfeed-0.6.2.tar.gz", "has_sig": false, "md5_digest": "4cdf88540c93cb062e80db73ead5f825", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11147, "upload_time": "2019-01-26T14:29:04", "url": "https://files.pythonhosted.org/packages/81/20/1664d5686698204c99c0867b20441d58de8d5c51a0534e9319b87c32d79f/twootfeed-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "24a69fb858881155251b9c7342c35301", "sha256": "8db1fc82883ef90f958c70dc96cc64ffdc166a9521d0cbd37d373ecf158a03b5" }, "downloads": -1, "filename": "twootfeed-0.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "24a69fb858881155251b9c7342c35301", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13257, "upload_time": "2019-05-05T17:06:42", "url": "https://files.pythonhosted.org/packages/f4/03/f42c98442ad333ea5aabd3fd1e2133d6493f9c131aa6d7b3fcecf92bfdb4/twootfeed-0.6.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9976660b51a3abfceae0cc6275505bd", "sha256": "d1eaf1f37d551db64c6b009b8e03728a9319944648c30044b78dcf8ba86041d3" }, "downloads": -1, "filename": "twootfeed-0.6.3.tar.gz", "has_sig": false, "md5_digest": "b9976660b51a3abfceae0cc6275505bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11311, "upload_time": "2019-05-05T17:06:44", "url": "https://files.pythonhosted.org/packages/f6/41/e101425c4cf06e28881eed293072897e547e0419f12e3c8f21a53798841c/twootfeed-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "c5aaa75a90e85c4b16f8768cfc845180", "sha256": "aae09d9cc7a4c8a53e6789c34bd743e4f9e0d1a192572b987a0fc17b33745699" }, "downloads": -1, "filename": "twootfeed-0.6.4-py3-none-any.whl", "has_sig": false, "md5_digest": "c5aaa75a90e85c4b16f8768cfc845180", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13258, "upload_time": "2019-08-31T08:42:45", "url": "https://files.pythonhosted.org/packages/1a/f3/1d6a6176c2424330e8400a24e4a8827f66b276d0c6c76f5ef535da535261/twootfeed-0.6.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f566f8ae0b017e8d5447348f4d059152", "sha256": "c7543c60ce8413f69bbd39498b6da6da5ab32411a1bb9c3f00f69f3a2a6a24d6" }, "downloads": -1, "filename": "twootfeed-0.6.4.tar.gz", "has_sig": false, "md5_digest": "f566f8ae0b017e8d5447348f4d059152", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11277, "upload_time": "2019-08-31T08:42:47", "url": "https://files.pythonhosted.org/packages/78/43/7518fb1deb7cf05e3539451ceda75dc3e65276cbfbe8f413979cf15b3877/twootfeed-0.6.4.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "f4da6d8c71baf56732b8ac2db2275278", "sha256": "aa72cd2a389aeb3821fb55a434d6a8d54f078142d8905c31d05de8e95ff1b7c1" }, "downloads": -1, "filename": "twootfeed-0.6.5-py3-none-any.whl", "has_sig": false, "md5_digest": "f4da6d8c71baf56732b8ac2db2275278", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13253, "upload_time": "2019-09-23T07:06:35", "url": "https://files.pythonhosted.org/packages/e1/41/e5ca4faeb548920dc5b65e755746d10c6990924b664ec0400fa065154ab3/twootfeed-0.6.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2aef9096a8261fbc0cf37ae30e403d95", "sha256": "90c3b2566ec2115ba9023c6a5017acacea7692c64835975d1b4d40a63c2b3795" }, "downloads": -1, "filename": "twootfeed-0.6.5.tar.gz", "has_sig": false, "md5_digest": "2aef9096a8261fbc0cf37ae30e403d95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9488, "upload_time": "2019-09-23T07:06:37", "url": "https://files.pythonhosted.org/packages/fb/d4/717c5d3644065d59addea199b7d720af5a48e609203057fd6f9908b95f19/twootfeed-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "2c62efbc70b1aacb87e6f8d04d211dd8", "sha256": "379e10d8e3dbc4dd4baf2745a8c14abb26dfe5eec5ce24ffdf917e1b769abc14" }, "downloads": -1, "filename": "twootfeed-0.6.6-py3-none-any.whl", "has_sig": false, "md5_digest": "2c62efbc70b1aacb87e6f8d04d211dd8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13257, "upload_time": "2019-10-20T07:50:04", "url": "https://files.pythonhosted.org/packages/33/7d/f795e8b838d19a8a0c9d792f166f321f49959a32556c4c6568e1704e62eb/twootfeed-0.6.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59fdb3ecddd75d38a88df4bc75eb04ea", "sha256": "11539b3960e2d7d717cd6af24a3b833bf1123cb3551a814e79bc9dca96aa4f73" }, "downloads": -1, "filename": "twootfeed-0.6.6.tar.gz", "has_sig": false, "md5_digest": "59fdb3ecddd75d38a88df4bc75eb04ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11279, "upload_time": "2019-10-20T07:50:06", "url": "https://files.pythonhosted.org/packages/c3/77/7d301b381f907c7b928f06021d8ee20cb8385eb9e11a43df55d60d622afc/twootfeed-0.6.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2c62efbc70b1aacb87e6f8d04d211dd8", "sha256": "379e10d8e3dbc4dd4baf2745a8c14abb26dfe5eec5ce24ffdf917e1b769abc14" }, "downloads": -1, "filename": "twootfeed-0.6.6-py3-none-any.whl", "has_sig": false, "md5_digest": "2c62efbc70b1aacb87e6f8d04d211dd8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13257, "upload_time": "2019-10-20T07:50:04", "url": "https://files.pythonhosted.org/packages/33/7d/f795e8b838d19a8a0c9d792f166f321f49959a32556c4c6568e1704e62eb/twootfeed-0.6.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59fdb3ecddd75d38a88df4bc75eb04ea", "sha256": "11539b3960e2d7d717cd6af24a3b833bf1123cb3551a814e79bc9dca96aa4f73" }, "downloads": -1, "filename": "twootfeed-0.6.6.tar.gz", "has_sig": false, "md5_digest": "59fdb3ecddd75d38a88df4bc75eb04ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11279, "upload_time": "2019-10-20T07:50:06", "url": "https://files.pythonhosted.org/packages/c3/77/7d301b381f907c7b928f06021d8ee20cb8385eb9e11a43df55d60d622afc/twootfeed-0.6.6.tar.gz" } ] }