{ "info": { "author": "Zest Software", "author_email": "m.van.rees@zestsoftware.nl", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.0", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Feedfeeder\n==========\n\nFeedfeeder has just a few things it needs to do:\n\n- Read in a few ATOM feeds (not too many).\n\n- Create FeedFeederItems out of the entries pulled from the ATOM feeds.\n Any feed items that contain enclosures will have the enclosures\n pulled down and added as File items to the feed item.\n\n- This means figuring out which items are new, which also means having\n a good ID generating mechanism.\n\n\nWait, no existing product?\n--------------------------\n\nThere's a whole slew of RSS/ATOM reading products for zope and\nplone. None of them seemed to be a good fit. There was only one\nproduct that actually stored the entries in the zope database, but\nthat was aimed at a lot of users individually adding a lot of feeds,\nso it needed either a separate ZEO process (old version) or a\nstandalone mysql database (new version).\n\nAll the other products didn't store the entries in the database, were\nold/unmaintained/etc.\n\nIn a sense, we're using an existing product as we use Mark Pilgrim's\nexcellent feedparser (http://feedparser.org) that'll do the actual\nATOM reading for us.\n\n\nProduct name\n------------\n\nThe product feeds the content of ATOM feeds to plone as document/file\ncontent types. So \"feedfeeder\" sort of suggested itself as a funny\nname. Fun is important :-)\n\n\nProduct structure\n-----------------\n\nI'm using archgenxml to generate the boiler plate stuff. There's a\n'generate.sh' shell script that'll call archgenxml for you. Nothing\nfancy.\n\nThe feedfeeder's content types are:\n - folder.FeedfeederFolder\n - item.FeedFeederItem\n\n\nHow it works\n------------\n\nA feedfeeder is a folder which contains all the previously-added feed\nentries as documents or files. It has a 'feeds' attribute that\ncontains a list of feeds to read.\n\nFeedparser is called periodically (through a cron job?) to parse the\nfeeds. The UID of the items in the feed are converted to a suitable\nfilename (md5 hex hash of the atom id of the entry), that way you can\ndetect whether there are new items.\n\nNew items are turned into feed items.\nFeed data are filled into feed items (see field named objectInfo).\n\nScheduled updates for feed folders\n\nZope can be configured to periodically trigger a url call.\nIn zope.conf you can use the directive to define a schedule and url\nwith the following data::\n\n \n method /path_to_feedfolder/update_feed_items\n period 3600 # seconds\n user admin\n password 123\n host localhost:8080\n \n\nUpdating all feeds once\n+++++++++++++++++++++++\n\nIf your site has several feed folders and you\nwant update them all once you can do::\n\n \n method /yoursiteid/feed-mega-update\n period 3600 # seconds\n user admin\n password 123\n host localhost:8080\n \n\n\nRemoving old feed items\n+++++++++++++++++++++++\n\nYou can periodically remove feed items older than a specific number of days. For example, to remove once a week feed items older than 90 days you can do::\n\n \n method /yoursiteid/feed-mega-cleanup?days=90\n period 604800 # seconds\n user admin\n password 123\n host localhost:8080\n \n\n\nDependencies\n------------\n\nSince version 3 we need Plone 4.3 or 5.0.\n\nPlone 5: in the add-ons control panel you also need to install\n'Archetypes Content Types for Plone'. Otherwise, if you try to add a\nFeedfeederFolder, you will get a 404 Not Found error because the\n``createObject`` script is not found.\n\nFor earlier Plone 4 versions, use version 2.x. The current latest is 2.8.\n\nIf you use Plone 3, please use a Products.feedfeeder version from the\n2.0 line. The current latest is 2.0.9.\n\n\n\nUpgrade notes\n-------------\n\nIf you have installed Products.feedfeeder 2.1.x in Plone 4.0 or 4.1\nand you upgrade to Plone 4.2 or higher, then you will be missing some\nfunctionality for listing or ordering feedfeeder items in new style\ncollections. To solve this, you should go to ``portal_setup`` in the\nZope Management Interface, visit the Import tab, select the\n\"Feedfeeder registry\" profile and import all steps.\n\n\nTests\n-----\n\nThe look-here-first test is the doctest at 'doc/feedfeeder-integration.txt'.\n\nAssuming you have a buildout, testing is best done with a propely set up ``bin/test`` command::\n\n bin/test -s Products.feedfeeder\n\nWe are now testing with Travis:\n\n.. image:: https://secure.travis-ci.org/collective/Products.feedfeeder.png\n :target: http://travis-ci.org/collective/Products.feedfeeder\n\nHistory of feedfeeder\n=====================\n\n\n3.0.1 (2016-09-05)\n------------------\n\n- Bug fix: really call ``getObjectInfo()`` when checking if an entry was updated.\n This avoids unnecessary updates to ``FeedFeederItems``.\n [tiberiuichim]\n\n\n3.0.0 (2016-02-22)\n------------------\n\n- Compatible with Plone 4.3 and 5.0. [maurits]\n\n- Removed separate registry profile that was only needed for\n compatibility with Plone 4.1 and lower. Moved ``registry.xml`` to\n the default profile. [maurits]\n\n- Disabled CSRF protection on our update/clean feed views. Otherwise\n you would have to add\n ``?_authenticator=user_specific_authentication_string`` to the urls\n in your cronjobs. Fixes issue\n https://github.com/collective/Products.feedfeeder/issues/13\n [maurits]\n\n- Use ``main_template/macros/master``, instead of strange old\n ``@@standard-macros/view`` which would show only the core content on\n Plone 5. [maurits]\n\n\n2.8 (2015-05-16)\n----------------\n\n- Prevent UnicodeEncodeError in logging messages .\n [ulisdd]\n\n\n2.7 (2014-12-26)\n----------------\n\n- Updated Spanish translations.\n [Manuel Gualda Caballero]\n\n\n2.6 (2014-11-27)\n----------------\n\n- Add option to prefix feed link titles using a pipe ``|`` as\n separator (``My place: |http://myplace/feed``)\n [jbofill]\n\n\n2.5 (2014-01-18)\n----------------\n\n- Reindex feed item when setting the description.\n [jbofill]\n\n- Solve `KeyError u'+0000'` in some DateTime objects. Related to\n https://github.com/collective/Products.feedfeeder/issues/7\n [jbofill]\n\n- Update to beautifulsoup4 and use python's built-in HTML parser.\n [jbofill]\n\n\n2.4 (2013-11-12)\n----------------\n\n- Depend on ``feedparser`` instead of ``FeedParser``. Issue #6.\n [maurits]\n\n\n2.3 (2013-11-11)\n----------------\n\n- Add maximum size to 10 MB for enclosures. This avoids downloading\n gigabytes of iso files, for example.\n [jbofill]\n\n\n2.2 (2013-10-01)\n----------------\n\n- Take the title as basis for the uid of an item if both guid and link\n are not found. They are optional in rss.\n [maurits]\n\n- Update permissions. Protect updating a feed with the \"feedfeeder:\n Update feed\" permission. Protect updating all feeds in a mega\n update with the \"feedfeeder: Update all feeds\" permission. We give\n these to the Manager and Site Administrator roles in an upgrade step.\n Fixes https://github.com/collective/Products.feedfeeder/issues/4\n [maurits]\n\n\n2.1 (2012-12-27)\n----------------\n\n- Use locales instead of an i18n directory.\n [maurits]\n\n- Support our criterion in new style collections. Add new profile for\n this. Make sure not to fail on Plone 4.0 or 4.1 where this is not\n needed at all.\n [maurits]\n\n- Update feed folder after its creation\n i18n for untranslated strings\n Added div#content in feed folder template\n Fixed tests\n Lots of cleanup (old content type definitions in content/folder.py and content/item.py)\n Removed double for \"update feed items\" action\n French translations\n [cedricmessiant]\n\n- Source is open in a new page.\n [thomasdesvenain]\n\n- Use png icons.\n Use icon_expr instead of content_icon.\n [thomasdesvenain]\n\n- Support only Plone 4.\n [maurits]\n\n\n2.0.9 (2012-11-12)\n------------------\n\n- Fixed possible TypeError when updating feed items.\n Fixes https://plone.org/products/feedfeeder/issues/42\n [maurits]\n\n\n2.0.8 (2012-10-14)\n------------------\n\n- Moved to https://github.com/collective/Products.feedfeeder\n [maurits]\n\n\n2.0.7 (2011-12-27)\n------------------\n\n- Avoid BadRequest error when an entry has two enclosures with the\n same href; we ignore all subsequent ones.\n Fixes http://plone.org/products/feedfeeder/issues/41\n [maurits]\n\n- Try to avoid possible ExpatError for some feeds.\n Fixes http://plone.org/products/feedfeeder/issues/40\n [maurits]\n\n- Cleaned up our type info, removing some cruft from Plone 2.5.\n Added upgrade step for this.\n [maurits]\n\n- protect against UnicodeDecode errors in getting the UID\n of an entry.\n [vangheem]\n\n\n2.0.6 (2011-10-03)\n------------------\n\n- Guard against links (enclosures) not having a type.\n Fixes http://plone.org/products/feedfeeder/issues/39\n [maurits]\n\n\n2.0.5 (2011-09-03)\n------------------\n\n- Use feed-item.pt on Plone 4, filling the content-core slot, and\n feed-item3.pt on Plone 3, filling the body slot as before.\n Fixes http://plone.org/products/feedfeeder/issues/36\n [maurits]\n\n- Register our own documentbyline viewlet for feed items, which\n displays the feed item author as creator.\n Refs http://plone.org/products/feedfeeder/issues/36\n [Maurits]\n\n- Fixed possible UnicodeDecodeError when updating feed items.\n Refs http://plone.org/products/feedfeeder/issues/37\n [maurits]\n\n- Fixed Plone 4.1 compatibility\n [iElectric]\n\n\n2.0.4 (2011-03-24)\n------------------\n\n- Avoid DeprecationWarning on python2.6 by preferring hashlib over md5\n when available.\n [maurits]\n\n- Do not reindex the feed item when nothing has changed. Only update\n the objectInfo field when there has been a change.\n Fixes http://plone.org/products/feedfeeder/issues/34\n [maurits]\n\n\n2.0.3 (2011-01-17)\n------------------\n\n- Respect the Plone setting on the 'about' information: only show the\n document byline if the user is logged in or anonymous users are\n allowed to view the about information.\n [markvl]\n\n\n2.0.2 (2010-12-17)\n------------------\n\n- Modified import RSS and added a new field on feed items named\n objectInfo. All feed data will be stored on this field,\n as a python dict.\n Just changing the remote RSS template, you will able to memoize\n additional info without having to modify the feed item schema.\n [dmoro]\n\n- Added an option on feed folder that let you choose to redirect\n automatically to remote resources. If you have modify permissions\n on feed items there will not be any redirect\n [dmoro]\n\n- Added new tests\n [sithmel]\n\n\n2.0.1 (2010-11-26)\n------------------\n\n- Added @@feed-mega-update view so you can update all feed folders at\n once, for example in a clock server.\n [miohtoma]\n\n- Import HTMLParseError from the standard python HTMLParser instead of\n BeautifulSoup. This makes feedfeeder compatible with BeautifulSoup\n 3.0.x again.\n [maurits]\n\n\n2.0 (2010-07-05)\n----------------\n\n- Solve some Plone 4 compatibility issues.\n [sureshvv]\n\n- Ignore unidentifiable entries without id or link, instead of\n throwing an AttributeError.\n Fixes http://plone.org/products/feedfeeder/issues/26\n [maurits]\n\n\n1.0.1 (2010-04-02)\n------------------\n\n- Fix errors when viewing a folder or item on Plone 4, while still\n keeping Plone 2.5 and Plone 3 compatibility.\n Refs http://plone.org/products/feedfeeder/issues/25\n [maurits]\n\n\n1.0 (2009-12-23)\n----------------\n\n- Some summaries are a snippet from the full content, and then they\n can contain broken html; in this case we are now saving the raw\n broken html, parsing it only when possible.\n [lucmult]\n\n\n1.0rc7 (2009-11-06)\n-------------------\n\n- Improved the translations stuffs\n [lucmult]\n\n- Changed the way to translate xml/html entities from summary, now\n using BeautifulSoup. Old way was breaking with some non ascii\n characters.\n [lucmult]\n\n- When setting the text of a feed item during updating, store the\n mimetype as well if it is a supported one.\n Refs http://plone.org/products/feedfeeder/issues/24\n [maurits]\n\n\n1.0rc6 (2009-09-21)\n-------------------\n\n- Bug fix: curly quotes getting mangled when Descriptions are built.\n Fixes http://plone.org/products/feedfeeder/issues/7\n (Merged branch maurits-cleaner-entityrefs-in-description.)\n [maurits]\n\n\n1.0rc5 (2009-07-02)\n-------------------\n\n- Do not add our skin layer to Plone Default and certainly not to\n Plone Tableless, but just to all (*). [maurits]\n\n\n1.0rc4 (2009-06-18)\n-------------------\n\n- When both the updated and published date of an item is not known,\n take today as the date when first adding it. When updating, do not\n change the original item.\n Fixes http://plone.org/products/feedfeeder/issues/21\n [maurits]\n\n- Read tags/categories/keywords of feed items and store them on the\n created content item. No Archetypes field, just a simple getter and\n setter called feed_tags. Idea: Robin Harms Oredsson.\n [maurits]\n\n- DateTime.SyntaxError is thrown with some very common US\n Daylight Saving zones, such as EDT. We now wrap the DateTime parsing\n of feeds, to try to recognise those zones before politely giving up, using\n maurits' fix, below.\n [russf]\n\n- Catch DateTime.SyntaxError when parsing the updated and published\n dates of an entry and continue with the next entry.\n Fixes http://plone.org/products/feedfeeder/issues/18\n [maurits]\n\n- Avoid swallowing too much exceptions when applying our GenericSetup\n profile.\n Fixes http://plone.org/products/feedfeeder/issues/19\n [maurits]\n\n1.0rc3 (2008-10-04)\n-------------------\n\n- Moved profile definition from python to GenericSetup. Profile is\n now not 'profile-feedfeeder:default' but\n 'profile-Products.feedfeeder:default'. [maurits]\n\n- In the Extensions/ dir: removed Install.py and renamed AppInstall.py\n to install.py. [maurits]\n\n- Made feed item updated date available for Collections/Smart Folders.\n [maurits]\n\n- Extensions/AppInstall.py: first try installing our own profile in\n the Plone 3 way and when that fails try the Plone 2.5 way.\n [maurits]\n\n- Removed own feedparser.py. Instead added an install_requires\n dependency on FeedParser in setup.py. [maurits]\n\n- Moved fix for feeds starting with 'feed:' instead of 'http:' from\n feedparser.py to utilities.py, so we use an unchanged feedparser.py\n again. [maurits]\n\n\n1.0 rc 2 (2008-07-23)\n---------------------\n\n- Re-release of rc1: rc1 was missing all .txt files, making install impossible\n as setup.py reads version.txt. [reinout]\n\n\n1.0 rc 1 (2008-07-15)\n---------------------\n\n- Accept entries without a title, which is allowed in rss.\n See http://cyber.law.harvard.edu/rss/rss.html#hrelementsOfLtitemgt\n [maurits]\n\n\n1.0 beta 4 (2008-05-20)\n-----------------------\n\n- Eggification: you can now install it as the Products.feedfeeder\n egg. [maurits]\n\n\n1.0 beta 3 (2008-05-13)\n-----------------------\n\n- In the tests, use plone_workflow explicitly, so it is easier to test\n on both Plone 2.5 and 3.0. [maurits]\n\n- Make update_feed_items available in the object_buttons for Plone 3,\n using new small @@is_feedcontainer as condition. [maurits]\n\n- Avoid deprecation warnings for events and interfaces. [maurits]\n\n- Remove semicolon in page template that broke in Plone 3. [maurits]\n\n- Fix imports so they work in Plone 3 as well, without deprecation\n warnings. [derstappenit]\n\n\n1.0 beta 2 (2008-01-02)\n-----------------------\n\n- History begins.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/Products.feedfeeder", "keywords": "feed rss atom", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "Products.feedfeeder", "package_url": "https://pypi.org/project/Products.feedfeeder/", "platform": "", "project_url": "https://pypi.org/project/Products.feedfeeder/", "project_urls": { "Homepage": "https://github.com/collective/Products.feedfeeder" }, "release_url": "https://pypi.org/project/Products.feedfeeder/3.0.1/", "requires_dist": null, "requires_python": "", "summary": "Turn external feed entries into content items", "version": "3.0.1" }, "last_serial": 2325882, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "4bc8ee2e4d7dc2fa69ef0040763dd983", "sha256": "9413684f530310cc6c36bdebc11dcd1c306bf17c6126f823ccdc2f493db9b56a" }, "downloads": -1, "filename": "Products.feedfeeder-1.0.tar.gz", "has_sig": false, "md5_digest": "4bc8ee2e4d7dc2fa69ef0040763dd983", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41952, "upload_time": "2009-12-23T22:39:03", "url": "https://files.pythonhosted.org/packages/74/c1/128fae18a091962bda3a2243b04ce287195c6118dc6ec9061aa5605976f1/Products.feedfeeder-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "44ad0f82c1b57bb6ca2059ef0c5b1167", "sha256": "fa4ff72564080163818a23f7546bea53583021e738248f4b1b3d54256397e3d0" }, "downloads": -1, "filename": "Products.feedfeeder-1.0.1.zip", "has_sig": false, "md5_digest": "44ad0f82c1b57bb6ca2059ef0c5b1167", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76538, "upload_time": "2010-04-02T23:24:43", "url": "https://files.pythonhosted.org/packages/e3/94/f52688f392418f4ac46b3fc919fc036d3962e836c2e04cae381913655471/Products.feedfeeder-1.0.1.zip" } ], "1.0beta4": [ { "comment_text": "", "digests": { "md5": "4313426ee32c8a8451714e071a324514", "sha256": "7c3bee426991da7784f54df8fb24df3fbfcb8d6175064e1af2d51d2d1e5ec04c" }, "downloads": -1, "filename": "Products.feedfeeder-1.0beta4.tar.gz", "has_sig": false, "md5_digest": "4313426ee32c8a8451714e071a324514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70423, "upload_time": "2008-05-20T20:05:36", "url": "https://files.pythonhosted.org/packages/ee/44/e3a88d19ab9d6a7a75a0b15f37b51cd2958e5fa63dcf3c15d5b2c21e9dfa/Products.feedfeeder-1.0beta4.tar.gz" } ], "1.0rc1": [ { "comment_text": "", "digests": { "md5": "9c3ee49337db7210b1aab6188c5952fa", "sha256": "6700672a43548939f9fa57ebfebb1ba08d8162ba3a884d66dd54f75e2364a443" }, "downloads": -1, "filename": "Products.feedfeeder-1.0rc1.tar.gz", "has_sig": false, "md5_digest": "9c3ee49337db7210b1aab6188c5952fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50639, "upload_time": "2008-07-15T22:03:49", "url": "https://files.pythonhosted.org/packages/df/f1/17b24f210382fae84b1d7938b799954b13282981055af4152cd82536fed0/Products.feedfeeder-1.0rc1.tar.gz" } ], "1.0rc2": [ { "comment_text": "", "digests": { "md5": "317b3329ae85a8c1ec0a5deeea0df8f1", "sha256": "1dc91bed088bc52724db28fd1bc46c8d0c41e8f41068b980f9130685a19b57f9" }, "downloads": -1, "filename": "Products.feedfeeder-1.0rc2.tar.gz", "has_sig": false, "md5_digest": "317b3329ae85a8c1ec0a5deeea0df8f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70834, "upload_time": "2008-07-23T07:53:27", "url": "https://files.pythonhosted.org/packages/7c/50/f756a91dfdcc686e3f094ee99de06f40c5e3e44124c9c47db9aaa6727a66/Products.feedfeeder-1.0rc2.tar.gz" } ], "1.0rc3": [ { "comment_text": "", "digests": { "md5": "a21f86a6ed95909a86d2286fdddca93e", "sha256": "9bfe1e52ae6236b455b9d3577df972074808a0b2ee87442b1b46ea2d0cfe102e" }, "downloads": -1, "filename": "Products.feedfeeder-1.0rc3.tar.gz", "has_sig": false, "md5_digest": "a21f86a6ed95909a86d2286fdddca93e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36239, "upload_time": "2008-10-04T02:23:50", "url": "https://files.pythonhosted.org/packages/d7/cc/64fa163d446789cd38fd5863365329961c48c34d5397dccc48d6fa4b3fbe/Products.feedfeeder-1.0rc3.tar.gz" } ], "1.0rc4": [ { "comment_text": "", "digests": { "md5": "f181eb7b240e1398e305776c5db524fd", "sha256": "55d81527ebf352e6802af6b4ffe01f23e6dfa41e04b7fa9c921073444a37f211" }, "downloads": -1, "filename": "Products.feedfeeder-1.0rc4.tar.gz", "has_sig": false, "md5_digest": "f181eb7b240e1398e305776c5db524fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39580, "upload_time": "2009-06-18T12:35:26", "url": "https://files.pythonhosted.org/packages/08/82/22afd537c85e4330c8784f0ac22f6dbab1cdcbb12f7ddf6a82d24ed90000/Products.feedfeeder-1.0rc4.tar.gz" } ], "1.0rc5": [ { "comment_text": "", "digests": { "md5": "f1a05a3c34687dc336816d0cef6d28f4", "sha256": "b5119c17a4e4edd2322ad5541225d79931bfb2ee3e1029ec724d1a73f56ee271" }, "downloads": -1, "filename": "Products.feedfeeder-1.0rc5.tar.gz", "has_sig": false, "md5_digest": "f1a05a3c34687dc336816d0cef6d28f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39792, "upload_time": "2009-07-02T16:09:03", "url": "https://files.pythonhosted.org/packages/74/64/53b916a6b3936ae021fc7c63ced574eaa9f2ffca8127491733bad7156cb3/Products.feedfeeder-1.0rc5.tar.gz" } ], "1.0rc6": [ { "comment_text": "", "digests": { "md5": "5d74b2cd0038096a860d5df5b3569084", "sha256": "6e0b1dfb67bc76034bd15f56155545208158cf2b1b6e6f08cf6e850da535d3c9" }, "downloads": -1, "filename": "Products.feedfeeder-1.0rc6.tar.gz", "has_sig": false, "md5_digest": "5d74b2cd0038096a860d5df5b3569084", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40323, "upload_time": "2009-09-21T22:45:52", "url": "https://files.pythonhosted.org/packages/66/7c/da427856f0a5309972487e74b9c772eaa0b306d420abaf61690e8c36ec8d/Products.feedfeeder-1.0rc6.tar.gz" } ], "1.0rc7": [ { "comment_text": "", "digests": { "md5": "227e1b5539c212c17ab0da782bf0d549", "sha256": "2936036418128def80de288dc6c5d2b9a54a544e8cf7612aafe9bd4a3da5feac" }, "downloads": -1, "filename": "Products.feedfeeder-1.0rc7.tar.gz", "has_sig": false, "md5_digest": "227e1b5539c212c17ab0da782bf0d549", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41573, "upload_time": "2009-11-06T02:24:41", "url": "https://files.pythonhosted.org/packages/ac/1b/bc3b9a0346661a1c39e2160075bd6f9ad529e562dfbc52d3f9b4684039fd/Products.feedfeeder-1.0rc7.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "a84d3e0c14dd6e53cd40a2dacd132c0d", "sha256": "4320a945212b2413f6b8a98ad807d23093dec831337f996f061b9382962656bc" }, "downloads": -1, "filename": "Products.feedfeeder-2.0.zip", "has_sig": false, "md5_digest": "a84d3e0c14dd6e53cd40a2dacd132c0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76764, "upload_time": "2010-07-05T15:21:35", "url": "https://files.pythonhosted.org/packages/bb/5a/b828f411de49c8ef4aa79b4545172270de23c4c0a82366fa6136a24dff75/Products.feedfeeder-2.0.zip" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "328ea84cf7d7467ab0c4446711952224", "sha256": "32bae5d001972731d33ad1471876c664810747bae1a73a6593208fb7a4bdcf2b" }, "downloads": -1, "filename": "Products.feedfeeder-2.0.1.zip", "has_sig": false, "md5_digest": "328ea84cf7d7467ab0c4446711952224", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78817, "upload_time": "2010-11-26T19:35:41", "url": "https://files.pythonhosted.org/packages/7e/17/54f2023c6fb51fa1582c6ac7c2db835cf78d8b9737675aee274b56af80d8/Products.feedfeeder-2.0.1.zip" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "ae8ec9a00c3bf223b33f0767b9288a19", "sha256": "13b66d13859fac03c13571247bd09830828a9d370bee5e4c2af74054ab31a2b4" }, "downloads": -1, "filename": "Products.feedfeeder-2.0.2.zip", "has_sig": false, "md5_digest": "ae8ec9a00c3bf223b33f0767b9288a19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82450, "upload_time": "2010-12-17T17:20:14", "url": "https://files.pythonhosted.org/packages/19/c2/638495d41c59f91a38d2393d25831bb015126e521b0e94cc54af16c4a275/Products.feedfeeder-2.0.2.zip" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "647fbb2afe9350ab068c3b37b06941b3", "sha256": "b9b5f448f6cfdd9d63c505bf459b5c23318ba83ee004d33c3b341afa31d9f844" }, "downloads": -1, "filename": "Products.feedfeeder-2.0.3.zip", "has_sig": false, "md5_digest": "647fbb2afe9350ab068c3b37b06941b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82947, "upload_time": "2011-01-17T11:54:42", "url": "https://files.pythonhosted.org/packages/d5/33/31f15992a4fb0091656758b077b8c3eed0431b8b60375de6141d11e6ae34/Products.feedfeeder-2.0.3.zip" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "17de5f504063a311f21b34c138aacd3e", "sha256": "b7b32272817632957e92a3a5258a010786dce29deb65507c05d0278a3c2bc9a7" }, "downloads": -1, "filename": "Products.feedfeeder-2.0.4.zip", "has_sig": false, "md5_digest": "17de5f504063a311f21b34c138aacd3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83454, "upload_time": "2011-03-24T10:53:15", "url": "https://files.pythonhosted.org/packages/ef/a2/ad9b750d4da45b8dd988fb7ca03e3cb2968144badd677a83265914381cd4/Products.feedfeeder-2.0.4.zip" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "8690162b0c7117c1f86e96e020383518", "sha256": "f8f4478fa2f3bf4737e3b23018cda2a1108f86169926511e601dc23af4dbacec" }, "downloads": -1, "filename": "Products.feedfeeder-2.0.5.zip", "has_sig": false, "md5_digest": "8690162b0c7117c1f86e96e020383518", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85414, "upload_time": "2011-09-03T03:50:28", "url": "https://files.pythonhosted.org/packages/65/55/a90d39441a46b26440ac40e7c5535c47093df19e77a3e551f0f56baf1670/Products.feedfeeder-2.0.5.zip" } ], "2.0.6": [ { "comment_text": "", "digests": { "md5": "26656a91e9a03eca30dad3155c1b878f", "sha256": "c9d4ad62ea5f81cd4b4cc52aa44821f8ae92bdec5b95fee4f2a97455545de8e9" }, "downloads": -1, "filename": "Products.feedfeeder-2.0.6.zip", "has_sig": false, "md5_digest": "26656a91e9a03eca30dad3155c1b878f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85611, "upload_time": "2011-10-03T11:37:47", "url": "https://files.pythonhosted.org/packages/13/33/2b20b9fe4407640421fc69f909308095bc2684fb690ba9ea7026f1a07d6a/Products.feedfeeder-2.0.6.zip" } ], "2.0.7": [ { "comment_text": "", "digests": { "md5": "146331ab8d005537d921e3fbfa3641df", "sha256": "8f36ed70f226340c05818c4f2a9fd8cd504244022d5d8f3fb78750a9e9210371" }, "downloads": -1, "filename": "Products.feedfeeder-2.0.7.tar.gz", "has_sig": false, "md5_digest": "146331ab8d005537d921e3fbfa3641df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44406, "upload_time": "2011-12-27T23:09:15", "url": "https://files.pythonhosted.org/packages/e8/d1/3a9ceaf63f068a9b75cdc9e5dece88722c86b25922aba9233f2e49e9b497/Products.feedfeeder-2.0.7.tar.gz" } ], "2.0.8": [ { "comment_text": "", "digests": { "md5": "748d35d2ae829cc653038d76985cf4b4", "sha256": "63d87c1ca8b14c40bc7c6a906ebc4688b4e2371dac9f646cc314aa151325c6b3" }, "downloads": -1, "filename": "Products.feedfeeder-2.0.8.zip", "has_sig": false, "md5_digest": "748d35d2ae829cc653038d76985cf4b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88369, "upload_time": "2012-10-14T00:30:10", "url": "https://files.pythonhosted.org/packages/4c/e8/63897eb8bbf01b3d6a9c3315b790da103d16e8c4ae9fc598f9592ee73130/Products.feedfeeder-2.0.8.zip" } ], "2.0.9": [ { "comment_text": "", "digests": { "md5": "8c3b45391391cdf4c3b4653d4cde03d3", "sha256": "3cdca8283c8fe5863db0e31f35b985460b0ae55b83b3963a1fd140818f5f6b46" }, "downloads": -1, "filename": "Products.feedfeeder-2.0.9.zip", "has_sig": false, "md5_digest": "8c3b45391391cdf4c3b4653d4cde03d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88909, "upload_time": "2012-11-12T11:11:34", "url": "https://files.pythonhosted.org/packages/1e/11/bd96e45ab2f0aaca086919b9b76ab5e4d9a49a3ef7f0073e389cafcf6425/Products.feedfeeder-2.0.9.zip" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "fd9001508a291b039d2f6165764213c0", "sha256": "a25ba1b9ca4713bbbabeefaad65b06e3d6d96e2b28cac9a9ddc64982df17fd7a" }, "downloads": -1, "filename": "Products.feedfeeder-2.1.zip", "has_sig": false, "md5_digest": "fd9001508a291b039d2f6165764213c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101438, "upload_time": "2012-12-27T12:17:53", "url": "https://files.pythonhosted.org/packages/09/fc/a4faea0018edf946c68da7cc2becb83e5e23919d61e5e870cf9e14a839d8/Products.feedfeeder-2.1.zip" } ], "2.2": [ { "comment_text": "", "digests": { "md5": "fac27797a2a60104a73975eeb76c276a", "sha256": "f17bf3116d16467d74aeed5236c15312c2348d986ee17f5bbdf004b3bfa0452e" }, "downloads": -1, "filename": "Products.feedfeeder-2.2.zip", "has_sig": false, "md5_digest": "fac27797a2a60104a73975eeb76c276a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104853, "upload_time": "2013-10-01T10:45:46", "url": "https://files.pythonhosted.org/packages/11/12/fa6b5ee5abe5d44fc3719723db73176d6a1b036adc1c03fb5a08d625b3c0/Products.feedfeeder-2.2.zip" } ], "2.3": [ { "comment_text": "", "digests": { "md5": "6b007964efaf217756be2020cfffa76b", "sha256": "f27fdb785338c63c481e88a71f4e5a468185c648b771153eed0f6fb4b73f9120" }, "downloads": -1, "filename": "Products.feedfeeder-2.3.zip", "has_sig": false, "md5_digest": "6b007964efaf217756be2020cfffa76b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 105231, "upload_time": "2013-11-11T17:39:12", "url": "https://files.pythonhosted.org/packages/06/c9/1514bf8c0218edbdd2db44e5c8d406ae1169bf43d89d233709a9125f44e1/Products.feedfeeder-2.3.zip" } ], "2.4": [ { "comment_text": "", "digests": { "md5": "065047729b9343c3ed4a94e3bef4c629", "sha256": "81de8eb3e3ac39dbef51ed0f9c45c05315ad78ce68eb2beb1689436bf019e9e2" }, "downloads": -1, "filename": "Products.feedfeeder-2.4.zip", "has_sig": false, "md5_digest": "065047729b9343c3ed4a94e3bef4c629", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 105518, "upload_time": "2013-11-12T09:21:13", "url": "https://files.pythonhosted.org/packages/d6/bf/a5df802b4c9a50f60ee86f332c1ddf725f11fda14d195abfcf3923489f45/Products.feedfeeder-2.4.zip" } ], "2.5": [ { "comment_text": "", "digests": { "md5": "8873e06d246188e447dbdbd6eae3a80e", "sha256": "288c38bdd8b5bf9d7839a7d9542655eed9283da70770838a7edbeeca830e3432" }, "downloads": -1, "filename": "Products.feedfeeder-2.5.zip", "has_sig": false, "md5_digest": "8873e06d246188e447dbdbd6eae3a80e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107459, "upload_time": "2014-01-17T23:44:59", "url": "https://files.pythonhosted.org/packages/3a/51/68d284a541dddc20d23634b64eaec655fa68a838d3ecbdcac22892c1f72e/Products.feedfeeder-2.5.zip" } ], "2.6": [ { "comment_text": "", "digests": { "md5": "6a484c06a1510a668cedaedc773d42d9", "sha256": "a85a7ac24223c2639af48196533e34128c7e0d8b4e2771492d6de443b887d7e5" }, "downloads": -1, "filename": "Products.feedfeeder-2.6.zip", "has_sig": false, "md5_digest": "6a484c06a1510a668cedaedc773d42d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102363, "upload_time": "2014-11-27T21:42:40", "url": "https://files.pythonhosted.org/packages/65/e1/78acdd0528d2a99fcd889df43136064f3833f70a49a789de8c48dea2caa6/Products.feedfeeder-2.6.zip" } ], "2.7": [ { "comment_text": "", "digests": { "md5": "6ea08a1c9b6145a004efc2c8f6d43bd1", "sha256": "b223b1dde2911afa5cd4eec280cea802b36d42e86902860bf0d6fa6f0461c28d" }, "downloads": -1, "filename": "Products.feedfeeder-2.7.zip", "has_sig": false, "md5_digest": "6ea08a1c9b6145a004efc2c8f6d43bd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 103750, "upload_time": "2014-12-26T15:27:51", "url": "https://files.pythonhosted.org/packages/4d/91/9e620b91d0f52614b864405f3cc9b41f10a8bb4a0b479a673dc31739dbd2/Products.feedfeeder-2.7.zip" } ], "2.8": [ { "comment_text": "", "digests": { "md5": "d7341d01ea03f57e05c0b8170d554521", "sha256": "9ade2dd0cb6b92e6c84a6f270ca1d5a3af07b5fe892f1a94218737720b92ba99" }, "downloads": -1, "filename": "Products.feedfeeder-2.8.tar.gz", "has_sig": false, "md5_digest": "d7341d01ea03f57e05c0b8170d554521", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55967, "upload_time": "2015-05-15T22:24:11", "url": "https://files.pythonhosted.org/packages/36/0f/275d408cfedeecf56a92c1d17fe932f349046a80a49356042c8e71072020/Products.feedfeeder-2.8.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "6b46a2e1cc65130e6c8ff9b91c60a872", "sha256": "2b4ad4fa1c0027390e41e3f24f780f1227c5faf20e9fbe4be8e370e87df2a44b" }, "downloads": -1, "filename": "Products.feedfeeder-3.0.0.tar.gz", "has_sig": false, "md5_digest": "6b46a2e1cc65130e6c8ff9b91c60a872", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56978, "upload_time": "2016-02-22T09:01:12", "url": "https://files.pythonhosted.org/packages/cf/21/5b851e7bc4b047bb1599c9875cf9c1a69725ce45383b116219c6f05e4dbb/Products.feedfeeder-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "0f386f61513a7099eba8901a86bb171a", "sha256": "6cd8d7656371605376673dde8df83749c009ceb4d48e301a4a0832735b6250bc" }, "downloads": -1, "filename": "Products.feedfeeder-3.0.1.tar.gz", "has_sig": false, "md5_digest": "0f386f61513a7099eba8901a86bb171a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57170, "upload_time": "2016-09-05T16:07:58", "url": "https://files.pythonhosted.org/packages/92/3e/19f1da663157199f745dcc717ce2c5a33613521725bc0f27459e74f2c3b8/Products.feedfeeder-3.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0f386f61513a7099eba8901a86bb171a", "sha256": "6cd8d7656371605376673dde8df83749c009ceb4d48e301a4a0832735b6250bc" }, "downloads": -1, "filename": "Products.feedfeeder-3.0.1.tar.gz", "has_sig": false, "md5_digest": "0f386f61513a7099eba8901a86bb171a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57170, "upload_time": "2016-09-05T16:07:58", "url": "https://files.pythonhosted.org/packages/92/3e/19f1da663157199f745dcc717ce2c5a33613521725bc0f27459e74f2c3b8/Products.feedfeeder-3.0.1.tar.gz" } ] }