{ "info": { "author": "Arcady Usov", "author_email": "itcrab@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "|Build Status| |Coverage Status| |Code Climate| |license|\n\nDark Keeper\n===========\n\nDark Keeper is open source simple web-parser for podcast-sites.\n\nGoal idea\n=========\n\nI like listen IT-podcasts and learn something new. For really good\npodcasts I want download all episodes. Goal idea is create simple tool\nfor this.\n\nFeatures\n========\n\n- [x] simple web-spider walking on site\n- [x] cache for all downloaded pages\n- [x] parse any information from pages\n- [x] export parsed data to MongoDB\n\nQuick start\n===========\n\n``$ mkvirtualenv keeper``\n\n``(keeper)$ pip install dark-keeper``\n\n``(keeper)$ cat app.py``\n\n.. code:: python\n\n from collections import OrderedDict\n\n from dark_keeper import DarkKeeper\n\n\n class PodcastKeeper(DarkKeeper):\n base_url = 'https://radio-t.com/archives/'\n mongo_uri = 'mongodb://localhost/podcasts/radio-t.com'\n\n def parse_urls(self, content):\n urls = content.parse_urls('#blog-archives h1 a', self.base_url)\n\n return urls\n\n def parse_data(self, content):\n data = OrderedDict()\n data['title'] = content.parse_text('.hentry .entry-title')\n data['desc'] = content.parse_text('.hentry .entry-content')\n data['mp3'] = content.parse_attr('.hentry audio', 'src')\n\n if data['title'] and data['mp3']:\n return data\n\n\n if __name__ == '__main__':\n pk = PodcastKeeper()\n pk.run()\n\n.. |Build Status| image:: https://travis-ci.org/itcrab/dark-keeper.svg?branch=master\n :target: https://travis-ci.org/itcrab/dark-keeper\n.. |Coverage Status| image:: https://coveralls.io/repos/github/itcrab/dark-keeper/badge.svg?branch=master\n :target: https://coveralls.io/github/itcrab/dark-keeper?branch=master\n.. |Code Climate| image:: https://codeclimate.com/github/itcrab/dark-keeper/badges/gpa.svg\n :target: https://codeclimate.com/github/itcrab/dark-keeper\n.. |license| image:: https://img.shields.io/github/license/mashape/apistatus.svg\n :target: https://github.com/itcrab/dark-keeper", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/itcrab/dark-keeper", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "dark-keeper", "package_url": "https://pypi.org/project/dark-keeper/", "platform": "", "project_url": "https://pypi.org/project/dark-keeper/", "project_urls": { "Homepage": "https://github.com/itcrab/dark-keeper" }, "release_url": "https://pypi.org/project/dark-keeper/0.2.7/", "requires_dist": null, "requires_python": "", "summary": "Dark Keeper is open source simple web-parser for podcast-sites", "version": "0.2.7" }, "last_serial": 3162159, "releases": { "0.2.6": [ { "comment_text": "", "digests": { "md5": "a4f904e7cf56763fb66e3240ed12a130", "sha256": "f427c325dcff95081bb837a24588ae0e0ee66744c5c18ec9339fa13bd7827764" }, "downloads": -1, "filename": "dark-keeper-0.2.6.tar.gz", "has_sig": false, "md5_digest": "a4f904e7cf56763fb66e3240ed12a130", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4464, "upload_time": "2017-07-08T20:57:55", "url": "https://files.pythonhosted.org/packages/3f/22/09619a0b781899ca3157ba472ec397bf4bdbb88327d7ae787550eb3c54c7/dark-keeper-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "d5dbe1a464d81ba0e22c0032c6e1aa05", "sha256": "bdc3cf438e04b09532837fc8662e8a5f469a20f5d792a2f1e4f0c97fc46b81b1" }, "downloads": -1, "filename": "dark-keeper-0.2.7.tar.gz", "has_sig": false, "md5_digest": "d5dbe1a464d81ba0e22c0032c6e1aa05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4616, "upload_time": "2017-09-09T19:31:05", "url": "https://files.pythonhosted.org/packages/a2/12/975b6f4af983006622e4ecfaf9ecbc7a51712ee1b40ee0fa4ac86c541f76/dark-keeper-0.2.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d5dbe1a464d81ba0e22c0032c6e1aa05", "sha256": "bdc3cf438e04b09532837fc8662e8a5f469a20f5d792a2f1e4f0c97fc46b81b1" }, "downloads": -1, "filename": "dark-keeper-0.2.7.tar.gz", "has_sig": false, "md5_digest": "d5dbe1a464d81ba0e22c0032c6e1aa05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4616, "upload_time": "2017-09-09T19:31:05", "url": "https://files.pythonhosted.org/packages/a2/12/975b6f4af983006622e4ecfaf9ecbc7a51712ee1b40ee0fa4ac86c541f76/dark-keeper-0.2.7.tar.gz" } ] }