{ "info": { "author": "Maurits van Rees", "author_email": "m.van.rees@zestsoftware.nl", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 3.3", "Framework :: Plone :: 4.0", "Framework :: Plone :: 4.1", "Framework :: Plone :: 4.2", "Framework :: Plone :: 4.3", "Programming Language :: Python", "Programming Language :: Python :: 2.4", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "Introduction\n============\n\nYou have enabled commenting in your Plone Site. Now you wake up and\nsee that during the night some spammer has added 1337 comments in your\nsite. What do you do now? Sure, you first shoot him and then you\nintegrate some captcha solution, but you still have those 1337\ncomments. You do not want to click 1337 times on a delete button.\nHave no fear: ``zest.commentcleanup`` will rescue you! Or at least\nit will help you get rid of those spam comments faster.\n\n\nHow does it work?\n-----------------\n\nJust add ``zest.commentcleanup`` to the eggs parameter of the\ninstance section of your buildout.cfg. On Plone 3.2 or earlier add it\nto the zcml parameter as well.\n\nThe package simply works by registering some browser views. Start\nyour instance, go to the root of your site and add\n``/@@cleanup-comments-overview`` to the url. This will give you an\noverview of which items in your site have comments. It is sorted so\nthe item with the most comments is at the top.\n\nNote that the overview works on other contexts as well, for example on\na folder.\n\nIn the overview click on the ``manage`` link of an item with comments.\nThis takes you to the ``cleanup-comments-details`` page of that item.\nThis lists all comments, ordered by creation date. From there you can\ndelete single items.\n\nBut the biggest thing you can do there is: select a comment and delete\nthis **and all following comments**. The idea is that the first three\ncomments may be valid comments, then there are a gazillion spam\ncomments, and very likely no actual human has added a valid comment\nsomewhere in that spam flood anymore. So you keep the first few\ncomments and delete the rest without having to buy a new mouse because\nyou have clicked too much.\n\nFrom the overview page you can also go to the\n``@@cleanup-comments-list`` page. Here you see the latest comments,\nwhich you can remove one at a time. This is handier when you have\ndone the big cleanup already and only need to check the new comments\nof the last few days.\n\nAll the used views are only available if you have the ``Manage\nportal`` permission.\n\n\nRequirements\n------------\n\nThis has been tested on Plone 3.3.5 with the standard comments. It\nmight or might not work with packages like\n``quintagroup.plonecomments`` or ``plone.app.discussion``. It\nprobably works on Plone 2.5 and 4 as well, but I have not checked.\nHey, it might even work in a default CMF site.\n\nChangelog\n=========\n\n1.6 (2013-05-13)\n----------------\n\n- Support plone.app.discussion.\n [maurits]\n\n\n1.5 (2012-09-12)\n----------------\n\n- Moved to github.\n [maurits]\n\n\n1.4 (2011-01-26)\n----------------\n\n- Also catch AttributeError in @@find-catalog-comments, which may\n happen for objects in portal_skins/custom.\n [maurits]\n\n\n1.3 (2011-01-26)\n----------------\n\n- Moved the remove-buttons more the the left, so they do not hop\n around after deleting an item with a long title, or that causes a\n new long title to appear.\n [maurits]\n\n- On the overview page offer to also index comments in objects that\n currently do not allow comments but may have done so in the past.\n [maurits]\n\n- When switching comments off for an object, uncatalog its existing\n comments.\n [maurits]\n\n- When turning comments on for an object, catalog its possibly\n already existing comments, when needed.\n [maurits]\n\n- On the details page, also show number of actual comments, instead of\n only the comments in the catalog.\n [maurits]\n\n- Added @@find-catalog-comments page (linked from the overview page)\n that finds and catalogs all comments for objects that currently\n allow commenting. This is needed after a clear and rebuild of the\n portal_catalog, as the catalog then loses all info about comments.\n [maurits]\n\n\n1.2 (2011-01-04)\n----------------\n\n- Sort the cleanup-comments-list on creation date.\n [maurits]\n\n\n1.1 (2011-01-04)\n----------------\n\n- Handle redirection in the same way everywhere, so you also get to\n the same batched page using a came_from parameter.\n [maurits]\n\n- Added '@@cleanup-comments-list' page that lists the latest comments.\n [maurits]\n\n\n1.0 (2010-12-21)\n----------------\n\n- Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/zestsoftware/zest.commentcleanup", "keywords": "spam comments replies", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "zest.commentcleanup", "package_url": "https://pypi.org/project/zest.commentcleanup/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/zest.commentcleanup/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/zestsoftware/zest.commentcleanup" }, "release_url": "https://pypi.org/project/zest.commentcleanup/1.6/", "requires_dist": null, "requires_python": null, "summary": "Quickly remove lots of spam comments from your Plone Site", "version": "1.6" }, "last_serial": 630698, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "1860d7c1b9e6436ea2a45466d5e9486c", "sha256": "b095d22e577fa1785e49653da5867cc2db3e4e0335166d5fea224396599aa0af" }, "downloads": -1, "filename": "zest.commentcleanup-1.0.zip", "has_sig": false, "md5_digest": "1860d7c1b9e6436ea2a45466d5e9486c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22698, "upload_time": "2010-12-21T16:21:10", "url": "https://files.pythonhosted.org/packages/7a/7b/3cb1cff05fac08f4b76ba8f33cc374811780523e7b829050fa39666e5dac/zest.commentcleanup-1.0.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "12d84873157ec893561896d8b8582f07", "sha256": "7ed711dba9d84e634f7bfa77a6786f7b8d30a688612a199f8c9fb9409046439d" }, "downloads": -1, "filename": "zest.commentcleanup-1.1.zip", "has_sig": false, "md5_digest": "12d84873157ec893561896d8b8582f07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24817, "upload_time": "2011-01-04T15:47:41", "url": "https://files.pythonhosted.org/packages/4c/b9/5929d5c903e42461cc8bee754371ae3b2096665d02ba73aa8fa038a8e83e/zest.commentcleanup-1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "aa5a9abc09eb88aad9d8a63192749b22", "sha256": "3ebb323ddf272563655d977bc47663f19a37a930e7668beb95a4c789477097a5" }, "downloads": -1, "filename": "zest.commentcleanup-1.2.zip", "has_sig": false, "md5_digest": "aa5a9abc09eb88aad9d8a63192749b22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24951, "upload_time": "2011-01-04T16:12:30", "url": "https://files.pythonhosted.org/packages/44/71/131e3adea5d0cb8e4b3adf01911f988d9222a12baf92e90d120b98c7a893/zest.commentcleanup-1.2.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "9a5db0453acb39a5d0bb17e12e316d0e", "sha256": "43520ddfa375eae520e5bf683bd5e6d38a64fa7fad536f0ac29d364f784f863e" }, "downloads": -1, "filename": "zest.commentcleanup-1.3.zip", "has_sig": false, "md5_digest": "9a5db0453acb39a5d0bb17e12e316d0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27826, "upload_time": "2011-01-26T16:52:24", "url": "https://files.pythonhosted.org/packages/a7/5e/95eee1988f93fc6f633158bad89045121c1967353712af67bf578f433584/zest.commentcleanup-1.3.zip" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "51186caca2b33667a0fdc45538bc88c8", "sha256": "d150bf4c06dfc9320673f193df7c332f4dc6548facf1ee88489fe10edf14aebf" }, "downloads": -1, "filename": "zest.commentcleanup-1.4.zip", "has_sig": false, "md5_digest": "51186caca2b33667a0fdc45538bc88c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28030, "upload_time": "2011-01-26T20:17:35", "url": "https://files.pythonhosted.org/packages/48/93/3b845a2e81ce48d51baae468ec029a2cfe6026e406a5935b9a0dc0c4745f/zest.commentcleanup-1.4.zip" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "5d657de2d791682e66a129cf5cea6f53", "sha256": "a3fc558ab8ab3cf8eb4204363046dce01ba3e5d4481ecbb95ba313de0dfdbc1e" }, "downloads": -1, "filename": "zest.commentcleanup-1.5.zip", "has_sig": false, "md5_digest": "5d657de2d791682e66a129cf5cea6f53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29879, "upload_time": "2012-09-12T15:16:38", "url": "https://files.pythonhosted.org/packages/25/35/fc17ab7f3116345236056f66ccede72e2e993c8ca46c5d455a9d1b034cf9/zest.commentcleanup-1.5.zip" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "3ab858e463762e3a012aad6a6991257b", "sha256": "e99202b782119942260d18773c5a717a1cc34d5ed7578ace308ecb893d9cf6d1" }, "downloads": -1, "filename": "zest.commentcleanup-1.6.zip", "has_sig": false, "md5_digest": "3ab858e463762e3a012aad6a6991257b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32418, "upload_time": "2013-05-13T12:56:13", "url": "https://files.pythonhosted.org/packages/9b/4d/e8534255f92087d93f6802f8938be7ee79d667b175d9271d594783a998f6/zest.commentcleanup-1.6.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3ab858e463762e3a012aad6a6991257b", "sha256": "e99202b782119942260d18773c5a717a1cc34d5ed7578ace308ecb893d9cf6d1" }, "downloads": -1, "filename": "zest.commentcleanup-1.6.zip", "has_sig": false, "md5_digest": "3ab858e463762e3a012aad6a6991257b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32418, "upload_time": "2013-05-13T12:56:13", "url": "https://files.pythonhosted.org/packages/9b/4d/e8534255f92087d93f6802f8938be7ee79d667b175d9271d594783a998f6/zest.commentcleanup-1.6.zip" } ] }