{ "info": { "author": "Gareth Simpson", "author_email": "g@xurble.org", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "\n# Django Feed Reader\n\nThis is a simple Django module to allow you subscribe to RSS (and other) feeds.\n\nThis app has no UI, it just reads and stores the feeds for you to use as you see fit.\n\nThis app builds on top of the FeedParser library to provide feed management, storage, scheduling etc.\n\n## Features\n\n* Consumes RSS, Atom and JSONFeed feeds. \n* Parses feeds liberally to try and accomodate simple errors.\n* Will attempt to bypass Cloudflare protection of feeds \n* Supports enclosure (podcast) discovery\n* Automatic feed scheduling based on frequency of updates\n\n\n## Installation\n\n`django-feed-reader` is written in Python 3 and supports Django 2.2+\n\n1. `pip install django-feed-reader`\n2. Add `feeds` to your `INSTALLED_APPS`\n3. Setup some values in `settings.py` so that your feed reader politely announces itself to servers:\n * Set `FEEDS_USER_AGENT` to the name and (optionally version) of your service e.g. `\"ExampleFeeder/1.2\"`\n * Set `FEEDS_SERVER` to preferred web address of your service so that feed hosts can locate you if required e.g. `https://example.com`\n4. Setup a mechanism to periodically refresh the feeds (see below)\n\n## Basic Models\n\nA feed is represented by a `Source` object which has (among other things) a `feed_url`.\n\n`Source`s have `Posts` which contain the content.\n\n`Posts` may have `Enclosure`s which is what podcasts use to send their audio. The app does not download enclosures, if you want to do that you will need to it in your project using the url provided.\n\nA full description of the models and their fields is coming soon (probably). In the mean time, why not read `models.py`, it's all obvious stuff.\n\n\n## Refreshing feeds\n\nTo conserve resources with large feed lists, the app will adjust how often it polls feeds based on how often they are updated. The fastest it will poll a feed is every hour. The slowest it will poll is every 24 hours.\n\nFeeds that don't get updated are polled progressively more slowly until the 24 hour limit is reached. When a feed changes, its polling frequency increases.\n\nYou will need to decided how and when to run the poller. When the poller runs, it checks all feeds that are currently due. The ideal frequency to run it is every 5 - 10 minutes.\n\n### Polling with cron.\n\nSet up a job that calls `python manage.py refreshfeeds` on your desired schedule.\n\nBe careful to ensure you're running out of the correct directory and with the correct python environment.\n\n### Polling with celery\n\nCreate a new celery task and schedule in your app (see the celery documentation for details). Your `tasks.py` should look something like this:\n\n```python\n\nfrom celery import shared_task\nfrom feeds.utils import update_feeds\n\n@shared_task\ndef get_those_feeds():\n\n # the number is the max number of feeds to poll in one go\n update_feeds(30) \n\n```\n\n## Tracking subscribers and read/unread state of feeds\n\nThe app does not (currently) track the read/unread state of posts within a feed. That will need doing in your project according to your needs. \n\nThe app assumes that each feed only has one subscriber that is the project itself. If your project can allow personal subscriptions for individual users, you can let the app know on per feed basis how many subscribers it has by settings `num_subs` on a `Source` object.\nThe app will then report this via the user agent to the feed source for analytics purposes.\n\n\n### Dealing with Cloudflare\n\nDepending on where you run your server, you may run into problems with Cloudflare's web captcha. Plenty of sites out there set up their Cloudflare to have default security on their RSS feed and this can block server-side RSS readers.\n\nIt's a huge pain and affects lots of self-hosted RSS readers. Seriously, Google it.\n\n`django-feed-reader` will do it's utmost to get these feeds anyway through the judicious use of public proxy servers, but is haphazard and you cannot rely on the scheduling of such feeds.\n\nFeeds blocked by Cloudflare will have the `is_cloudflare` flag set on their `Source` and will update on a best-efforts basis.\n\n\n\n\n\n\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/xurble/django-feed-reader", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-feed-reader", "package_url": "https://pypi.org/project/django-feed-reader/", "platform": "", "project_url": "https://pypi.org/project/django-feed-reader/", "project_urls": { "Homepage": "https://github.com/xurble/django-feed-reader" }, "release_url": "https://pypi.org/project/django-feed-reader/0.2.1/", "requires_dist": [ "requests", "feedparser", "beautifulsoup4", "pyrfc3339", "Django (>=2.2)" ], "requires_python": "", "summary": "An RSS feed reading library for Django.", "version": "0.2.1" }, "last_serial": 5795392, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "62e3cab1d61986bbd17c5b4bebc6fa5c", "sha256": "ab3bcdf0c9fac1a899706d5430e848d4f94f0db0b0d23f0d92ec08fa38acf171" }, "downloads": -1, "filename": "django_feed_reader-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "62e3cab1d61986bbd17c5b4bebc6fa5c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12354, "upload_time": "2019-06-04T08:27:58", "url": "https://files.pythonhosted.org/packages/d2/f5/143db9ca50982934934bd04ae492a64f2cc28ab9d56da23127f9939b0fe8/django_feed_reader-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7736c08a9bda0aa705d897d40f4fa1b", "sha256": "f9b3e05aca805e396f806bbfaa75ab3ae6e1c1fc7b1dd3bba2c3b275e96c1eae" }, "downloads": -1, "filename": "django-feed-reader-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b7736c08a9bda0aa705d897d40f4fa1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9122, "upload_time": "2019-06-04T08:28:01", "url": "https://files.pythonhosted.org/packages/0c/f6/9f47ffdce479c822dd5258d025ba393877527e750dc08b74533a1b0e81bd/django-feed-reader-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "ef394680ae2d12a9d29e9e0c9349401e", "sha256": "9be3965a88d736babf65074beba716c92e9458d305609167121c453bf29b3436" }, "downloads": -1, "filename": "django_feed_reader-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ef394680ae2d12a9d29e9e0c9349401e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12351, "upload_time": "2019-06-04T08:31:49", "url": "https://files.pythonhosted.org/packages/19/7f/77670578669200aedcc0159395c02db5055b39f7b07a15f22107074b7f60/django_feed_reader-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41e729ceaac0db332b6fe2bdeae60dfd", "sha256": "ab20690415ba9390757f489eb83f80021e8139d1ea02366c1f6bd58b944ca87a" }, "downloads": -1, "filename": "django-feed-reader-0.0.2.tar.gz", "has_sig": false, "md5_digest": "41e729ceaac0db332b6fe2bdeae60dfd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9117, "upload_time": "2019-06-04T08:31:51", "url": "https://files.pythonhosted.org/packages/f0/62/998d09470d6e147da66094020526b66dd63d25681460950455577d0efeeb/django-feed-reader-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "923904dc5fe04965e1d0e0a28bdb928e", "sha256": "e59f2d067ef847d757d8f27223c226f7afd1cea37d02e1551216f1f06b56d91f" }, "downloads": -1, "filename": "django_feed_reader-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "923904dc5fe04965e1d0e0a28bdb928e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12802, "upload_time": "2019-06-04T08:58:53", "url": "https://files.pythonhosted.org/packages/53/9e/676be7974db24d2d8d09e68d0ece2a14af4d0ca0b9827eb2fb7cd9c36ac5/django_feed_reader-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dcfc81d0812d61b1775436dee5b24c8e", "sha256": "ad5f390f00c7a56c031abae53a662c7fa4d057cdcee05a1d7f2775ee7dc7bea4" }, "downloads": -1, "filename": "django-feed-reader-0.0.3.tar.gz", "has_sig": false, "md5_digest": "dcfc81d0812d61b1775436dee5b24c8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9177, "upload_time": "2019-06-04T08:58:55", "url": "https://files.pythonhosted.org/packages/6e/e8/5eb897c9618843f0c366f94fdbe1dd56887d4c9051cf45650806dcd993be/django-feed-reader-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "02cf78377f7456a999321f6b9a69a552", "sha256": "a9c3a0cf9cefc04dd2c43ac028cbe9479b09d7345827c16968fe78dc89bc8c1b" }, "downloads": -1, "filename": "django_feed_reader-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "02cf78377f7456a999321f6b9a69a552", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13483, "upload_time": "2019-06-20T09:38:56", "url": "https://files.pythonhosted.org/packages/81/33/f768d267d664d1d1c631c4e3044170d7ba847942cbe09c1840ec89e6d906/django_feed_reader-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2700c6057fb0907da0f0b8a63bf61abf", "sha256": "1edecc9d72117957cdf6be26952b5160e9b0fd8fde93db71f9ebcdb8a08fe7b3" }, "downloads": -1, "filename": "django-feed-reader-0.0.4.tar.gz", "has_sig": false, "md5_digest": "2700c6057fb0907da0f0b8a63bf61abf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9352, "upload_time": "2019-06-20T09:38:57", "url": "https://files.pythonhosted.org/packages/c9/ca/9058bad3bbfbf946065fbb09f21c268b0431577c822f99d3a34c9a5acc10/django-feed-reader-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "3d4e3732eec9dc179ba67ee8ffd13737", "sha256": "3cd4ff0d79591db9d1576e323398fb583ba73f8c1896bb907d90bbbb1a3d76e3" }, "downloads": -1, "filename": "django_feed_reader-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "3d4e3732eec9dc179ba67ee8ffd13737", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14712, "upload_time": "2019-06-21T21:01:40", "url": "https://files.pythonhosted.org/packages/70/81/7c85f829cf0806202a3a83166e2e349e8864adf33c6537884f4e7979c734/django_feed_reader-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b04529078974a5466043d7bc15d62873", "sha256": "49a0dde7d3b5b47842493048470502d1e45c5ab5d0426e9e785ebf7a25b59ae6" }, "downloads": -1, "filename": "django-feed-reader-0.0.5.tar.gz", "has_sig": false, "md5_digest": "b04529078974a5466043d7bc15d62873", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10454, "upload_time": "2019-06-21T21:01:42", "url": "https://files.pythonhosted.org/packages/d3/c3/c424d15f81fdf3276f6a856fba3ac1ed5e1d411598f8aeceda638ad02ae8/django-feed-reader-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "2f46cf7819b6c3cebed020bd1046e907", "sha256": "81c25ec788a6164884597052c77aa5f1be34445a24ddec4b86830679cbe519fe" }, "downloads": -1, "filename": "django_feed_reader-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "2f46cf7819b6c3cebed020bd1046e907", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16786, "upload_time": "2019-06-22T15:17:47", "url": "https://files.pythonhosted.org/packages/1d/9c/b1fc2239ff59992529ccca3fc8787bb9acccb41c6aa28eed156a27b95a60/django_feed_reader-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "945004b14ff9f06f26912464bf2af79a", "sha256": "3a19bac582eb935bdb59fd6a7fe8d5c7530569ae3ed84f27093786fe3d862057" }, "downloads": -1, "filename": "django-feed-reader-0.0.6.tar.gz", "has_sig": false, "md5_digest": "945004b14ff9f06f26912464bf2af79a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11946, "upload_time": "2019-06-22T15:17:49", "url": "https://files.pythonhosted.org/packages/c7/14/a0248a8737edc745f423ad29d784be23e41c5d2ca802bc7de8195538986a/django-feed-reader-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "32f61bd228e7b556edc8f3470b28abcf", "sha256": "e6213f1c6c23e699cde32943c9ee3329e5849abc983c2518a9018b198c1a779e" }, "downloads": -1, "filename": "django_feed_reader-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "32f61bd228e7b556edc8f3470b28abcf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16734, "upload_time": "2019-06-23T10:28:52", "url": "https://files.pythonhosted.org/packages/63/9c/1b96f8eb6d314944c81e0cbcab2937060a9dd282e6e31d6bd9d2eeb8ec4c/django_feed_reader-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74ae245e705b5d3836d9fcbad0365a0f", "sha256": "8691e9596790bc4dcf9b1b27a94ba150bc27152dd696bcc15d4b0c4b1dc4844b" }, "downloads": -1, "filename": "django-feed-reader-0.0.7.tar.gz", "has_sig": false, "md5_digest": "74ae245e705b5d3836d9fcbad0365a0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11909, "upload_time": "2019-06-23T10:28:54", "url": "https://files.pythonhosted.org/packages/fd/ef/bec3cafafa761ed9403a50422c3c193a89d9af80ef5477d3800b0bbd6970/django-feed-reader-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "85a73972d15c76ba30cab808918b85ca", "sha256": "283bfb18d7120b67ffb5054b3415f302fbbe96b6455a19ee19497da9cfa13e53" }, "downloads": -1, "filename": "django_feed_reader-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "85a73972d15c76ba30cab808918b85ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16725, "upload_time": "2019-06-24T15:55:48", "url": "https://files.pythonhosted.org/packages/b5/cc/e3483f617f130afef8655fc9dc83b6084038c9b72c7395e563c8cc699e8f/django_feed_reader-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e65ca0b1b68155dd80d765f60c010bf", "sha256": "353b34279ff62e059c0e546bcde23eab93dcccc9185b0e7ca454219edcd255ec" }, "downloads": -1, "filename": "django-feed-reader-0.0.8.tar.gz", "has_sig": false, "md5_digest": "2e65ca0b1b68155dd80d765f60c010bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11909, "upload_time": "2019-06-24T15:55:49", "url": "https://files.pythonhosted.org/packages/31/65/88286972d0b3cb31932defa31ee242d75f8074c62f4e5862e2d8c42a9352/django-feed-reader-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "ced1ccf0d73864ef3da5906fef78d781", "sha256": "84464182743dcd901bf4d89d6ab5264e02ae38d3aecace29a66bfefd787b1138" }, "downloads": -1, "filename": "django_feed_reader-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "ced1ccf0d73864ef3da5906fef78d781", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16783, "upload_time": "2019-07-01T12:06:13", "url": "https://files.pythonhosted.org/packages/31/3a/2e32139c6aa12ccb8bdaea90c4f5e4de699d5c1d1d8942b53578d7028875/django_feed_reader-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2dbfe56922eeac6fb68523accebe8034", "sha256": "149fc6d8a8a0377c247693e0b0f125051ea7cd9cbcaeeae80d742f39e87b80da" }, "downloads": -1, "filename": "django-feed-reader-0.0.9.tar.gz", "has_sig": false, "md5_digest": "2dbfe56922eeac6fb68523accebe8034", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11957, "upload_time": "2019-07-01T12:06:15", "url": "https://files.pythonhosted.org/packages/31/45/11e0d55728454f44d516d105bd2fd7b68f5d67cc8d0c12a4bfc5adc2c187/django-feed-reader-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "cef9760ac5f12f70d4a00b49431ff106", "sha256": "615fe5557f9b3d7f3b1cc20deef7cdd537593a3bc04643183e477006d206ae0c" }, "downloads": -1, "filename": "django_feed_reader-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cef9760ac5f12f70d4a00b49431ff106", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17434, "upload_time": "2019-08-04T21:48:10", "url": "https://files.pythonhosted.org/packages/ca/1a/0c264d090fcbafa23a693ec99cb393a816bb94df5316ba18acc05f7c0c60/django_feed_reader-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2632f53a12193d4f6bff033255b735c6", "sha256": "ce1fee6a29a51c33619051f75f6de987fb6be7ce20a50a01ecb7e22b5dcc7308" }, "downloads": -1, "filename": "django-feed-reader-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2632f53a12193d4f6bff033255b735c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12288, "upload_time": "2019-08-04T21:48:12", "url": "https://files.pythonhosted.org/packages/73/09/74866f8588cc2af15d1b9457fb5586b9dbad7784ede4f1a2ecd20a83c093/django-feed-reader-0.1.0.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "9c0a8184074d158bf519768053244f0c", "sha256": "9cea7e9196518301b7c51706c995e8a5ab20084c7028c3f82993ba70bf7088b4" }, "downloads": -1, "filename": "django_feed_reader-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9c0a8184074d158bf519768053244f0c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19524, "upload_time": "2019-08-21T20:09:38", "url": "https://files.pythonhosted.org/packages/e1/75/8966da8739e42bd082d3e0c2bbd0e225bbe25b735ea43117e442e92beb84/django_feed_reader-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d116cf42270e04b5eb1a14c736f58932", "sha256": "0d3194d6eead607961de79fad6d6fe6160f820bbc525db360a0e162665bd0cfb" }, "downloads": -1, "filename": "django-feed-reader-0.1.2.tar.gz", "has_sig": false, "md5_digest": "d116cf42270e04b5eb1a14c736f58932", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14493, "upload_time": "2019-08-21T20:09:40", "url": "https://files.pythonhosted.org/packages/bc/08/8b396f821fc7e46366bd6d7639f7f21f7886b628ab54bf18d2980502df96/django-feed-reader-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "054343d4dd782d3da5a8e16bbab963e9", "sha256": "3a7e2329659a68e45d2c7d66223eecb361cae8421029729589bd26000c18b82d" }, "downloads": -1, "filename": "django_feed_reader-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "054343d4dd782d3da5a8e16bbab963e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20480, "upload_time": "2019-09-01T16:53:10", "url": "https://files.pythonhosted.org/packages/3a/b3/e7e3242bfd9a968f33294beb13dd2d4605bb404af269159f53dd20111271/django_feed_reader-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b06ce51395c474b160bcf1c237bece15", "sha256": "b9f36661591d24366a34016e4cf1a41b1f77559a5c351a3f28ea76c8bb50bf83" }, "downloads": -1, "filename": "django-feed-reader-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b06ce51395c474b160bcf1c237bece15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14917, "upload_time": "2019-09-01T16:53:12", "url": "https://files.pythonhosted.org/packages/a1/ac/ae4a1f497183294ad9fbdd047f925bdf2286bd87224c3d95301d22fdb7d7/django-feed-reader-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "067aeba089dcc7c99f65f7e6e424e810", "sha256": "c686e81ad8688cfcc03b872aa367b5d3026905925276005c2f6aa097adb10c6c" }, "downloads": -1, "filename": "django_feed_reader-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "067aeba089dcc7c99f65f7e6e424e810", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20498, "upload_time": "2019-09-07T08:12:04", "url": "https://files.pythonhosted.org/packages/4e/c0/6c8a2941d3c26cd54cc005d194367fd50f5de9a3b1cc9eec370870929bd0/django_feed_reader-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3701254d25ac8278a9e41a50c304a13a", "sha256": "56cd468227978348ea0864fa99ac5cf9266e145844b542a72d2f580b00ff16b1" }, "downloads": -1, "filename": "django-feed-reader-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3701254d25ac8278a9e41a50c304a13a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14940, "upload_time": "2019-09-07T08:12:06", "url": "https://files.pythonhosted.org/packages/97/24/9d3d79a178e65c21c67820f8a208c6dafccca3b2e2e8121d7c85827c6c3e/django-feed-reader-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "067aeba089dcc7c99f65f7e6e424e810", "sha256": "c686e81ad8688cfcc03b872aa367b5d3026905925276005c2f6aa097adb10c6c" }, "downloads": -1, "filename": "django_feed_reader-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "067aeba089dcc7c99f65f7e6e424e810", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20498, "upload_time": "2019-09-07T08:12:04", "url": "https://files.pythonhosted.org/packages/4e/c0/6c8a2941d3c26cd54cc005d194367fd50f5de9a3b1cc9eec370870929bd0/django_feed_reader-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3701254d25ac8278a9e41a50c304a13a", "sha256": "56cd468227978348ea0864fa99ac5cf9266e145844b542a72d2f580b00ff16b1" }, "downloads": -1, "filename": "django-feed-reader-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3701254d25ac8278a9e41a50c304a13a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14940, "upload_time": "2019-09-07T08:12:06", "url": "https://files.pythonhosted.org/packages/97/24/9d3d79a178e65c21c67820f8a208c6dafccca3b2e2e8121d7c85827c6c3e/django-feed-reader-0.2.1.tar.gz" } ] }