{ "info": { "author": "jachinlin", "author_email": "linjx1000@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only" ], "description": "

\n \"\u5de6\u8033\u542c\u98ce\"\n

\n\n# \u628a\u6781\u5ba2\u65f6\u95f4\u88c5\u8fdb Kindle\n\n[![travis](https://travis-ci.org/jachinlin/geektime_dl.svg?branch=master)](https://travis-ci.org/jachinlin/geektime_dl)\n[![codecov](https://codecov.io/gh/jachinlin/geektime_dl/branch/master/graph/badge.svg)](https://codecov.io/gh/jachinlin/geektime_dl)\n[![Python versions](https://img.shields.io/pypi/pyversions/geektime-dl.svg)](https://pypi.org/project/geektime-dl/)\n[![PyPI](https://img.shields.io/pypi/v/geektime-dl.svg)](https://pypi.org/project/geektime-dl/)\n[![Actions Status](https://github.com/jachinlin/geektime_dl/workflows/Python%20package/badge.svg)](https://github.com/jachinlin/geektime_dl/actions)\n\n\u6781\u5ba2\u65f6\u95f4\u4e13\u680f\u6587\u7ae0\u7684\u8d28\u91cf\u90fd\u662f\u975e\u5e38\u9ad8\u7684\uff0c\u6bd4\u5982\u8017\u5b50\u54e5\u7684\u300a\u5de6\u8033\u542c\u98ce\u300b\u3001\u6731\u8d5f\u7684\u300a\u6731\u8d5f\u7684\u6280\u672f\u7ba1\u7406\u8bfe\u300b\u548c\u738b\u5929\u4e00\u7684\u300a\u4eba\u5de5\u667a\u80fd\u57fa\u7840\u8bfe\u300b\uff0c\u90fd\u662f\u6211\u975e\u5e38\u559c\u6b22\u7684\u4e13\u680f\u3002\u8fd9\u4e9b\u4e13\u680f\u6df1\u5165\u6d45\u51fa\uff0c\u5c06\u77e5\u8bc6\u548c\u7ecf\u9a8c\u4f20\u6388\u4e8e\u8bfb\u8005\uff0c\u90fd\u662f\u503c\u5f97\u591a\u6b21\u9605\u8bfb\u7684\u3002\n\n\u7136\u800c\uff0c\u6bcf\u5f53\u7a7a\u95f2\u65f6\u95f4\u65f6\uff0c\u90fd\u9700\u8981\u638f\u51fa\u624b\u673a\u624d\u80fd\u9605\u8bfb\u4e13\u680f\u6587\u7ae0\uff0c\u8fd9\u5728\u67d0\u79cd\u60c5\u51b5\u4e0b\u662f\u5f88\u4e0d\u4fbf\u7684\uff0c\u5c24\u5176\u5750\u5730\u94c1\u4e14\u6ca1\u6709\u7f51\u7edc\u65f6\u3002\u4f5c\u4e3a\u4e00\u4e2akindle\u515a\uff0c\u6700\u597d\u7684\u89e3\u51b3\u65b9\u6848\u5c31\u662fkindle\u7535\u5b50\u4e66\u3002\u4e8e\u662f\u6709\u4e86\u8fd9\u4e2a\u9879\u76ee\n\n>[\u628a\u6781\u5ba2\u65f6\u95f4\u88c5\u8fdbKindle](https://github.com/jachinlin/geektime_dl)\n\n\u73b0\u5728\uff0c\u8fd9\u4e2a\u9879\u76ee\u9664\u4e86\u5c06\u4e13\u680f\u5236\u4f5c\u6210`kindle`\u7535\u5b50\u4e66\uff0c\u8fd8\u63d0\u4f9b\u4e86\u4e0b\u8f7d`mp3`\u548c`mp4`\u7b49\u529f\u80fd\uff0c\u5177\u4f53\u89c1\u4e0b\u4f7f\u7528\u65b9\u6cd5\u3002\n\n\n## \u4e00\u3001\u9879\u76ee\u7ed3\u6784\n\n\n\u9879\u76ee\u4e3b\u8981\u5305\u62ec\u4e0b\u8fb9\u8fd9\u51e0\u4e2a\u90e8\u5206\uff1a\n\n- kindle_maker: \u4e00\u4e2a mobi \u7535\u5b50\u4e66\u5236\u4f5c\u5de5\u5177\u3002\u7528\u6237\u53ea\u9700\u8981\u63d0\u4f9b\u5236\u4f5c\u7535\u5b50\u4e66\u7684 html \u6587\u4ef6\uff0c\u548c\u4e00\u4e2a\u5305\u542b\u76ee\u5f55\u4fe1\u606f\u7684 toc.md \u6587\u4ef6\uff0ckindle_maker \u5373\u53ef\u5236\u4f5c\u51fa\u4e00\u672c\u7cbe\u7f8e\u7684 kindle \u7535\u5b50\u4e66\u3002\u8fd9\u90e8\u5206\u5df2\u62ce\u51fa\u6765\u653e\u5728\u5355\u72ec\u7684\u9879\u76ee\u91cc\uff0c\u5177\u4f53\u4f7f\u7528\u65b9\u5f0f\u89c1\u8be5\u9879\u76ee\u6587\u6863 [kindle_maker](https://github.com/jachinlin/kindle_maker)\n\n- utils: \u63d0\u4f9b\u4e86 mp3/mp4 \u4e0b\u8f7d\u3001\u90ae\u4ef6\u53d1\u9001\u3001html \u6587\u4ef6\u751f\u6210\u7b49\u529f\u80fd\n\n- gk_apis: \u5c01\u88c5\u4e86\u6781\u5ba2\u65f6\u95f4\u7684\u82e5\u5e72 api\n\n- store_client: \u5b58\u50a8\u6781\u5ba2\u65f6\u95f4\u4e13\u680f\u6570\u636e\u81f3\u672c\u5730 json \u6587\u4ef6\n\n- cli: \u63d0\u4f9b\u82e5\u5e72cmd \u547d\u4ee4\uff0c\u5c06\u4e0a\u9762\u8fd9\u51e0\u4e2a\u90e8\u5206\u8fde\u63a5\u5728\u4e00\u8d77\uff0c\u6700\u540e\u4f7f\u7528 kindle_maker \u5236\u4f5c\u7535\u5b50\u4e66\uff0c\u6216\u8005\u4f7f\u7528\u4e0b\u8f7d\u5668\u4e0b\u8f7d\u76f8\u5173\u97f3\u89c6\u9891\n\n\n\n## \u4e8c\u3001\u4e3b\u8981\u4f9d\u8d56\n\n- [requests](http://www.python-requests.org/en/master/): \u7f51\u7edc\u8bf7\u6c42\n\n- [Jinja2](http://jinja.pocoo.org/): html\u6a21\u677f\u5f15\u64ce\n\n- [kindle_maker](https://github.com/jachinlin/kindle_maker): \u5236\u4f5ckindle\u7535\u5b50\u4e66\n\n\n## \u4e09\u3001\u5b89\u88c5\n\n**\u865a\u62df\u73af\u5883 virtualenv**\n\n```bash\nvirtualenv -p python3 ~/venv3 && source ~/venv3/bin/activate\n```\n\n**\u4ee3\u7801**\n\n```bash\npip install -U geektime_dl\n\n# \u6216\u8005\u5b89\u88c5\u6700\u65b0\u4ee3\u7801\npip install -U git+https://github.com/jachinlin/geektime_dl.git\n```\n\n## \u56db\u3001\u4f7f\u7528\n\n\n**\u67e5\u770b\u5e2e\u52a9\u4fe1\u606f**\n\n\n1\u3001\u67e5\u770b cli subcmd\n\n```\ngeektime help\n```\n\n2\u3001\u67e5\u770b\u5177\u4f53 cli subcmd \u5e2e\u52a9\u4fe1\u606f\n\n```\ngeektime --help\n```\n\n`` \u4e3a\u5177\u4f53\u7684\u5b50\u547d\u4ee4\u540d\uff0c\u53ef\u4ee5\u4ece help \u5b50\u547d\u4ee4\u67e5\u770b\u3002\n\n\n**\u767b\u5f55**\n\n```\ngeektime login [--account=] [--password=] [--area=]\n```\n\n`[]`\u8868\u793a\u53ef\u9009\uff0c`<>`\u8868\u793a\u76f8\u5e94\u53d8\u91cf\u503c\uff0c\u4e0b\u540c\n\n- account: \u624b\u673a\u8d26\u53f7\uff0c\u4e0d\u63d0\u4f9b\u53ef\u7a0d\u540e\u624b\u52a8\u8f93\u5165\n- password: \u8d26\u53f7\u5bc6\u7801\uff0c\u4e0d\u63d0\u4f9b\u53ef\u7a0d\u540e\u624b\u52a8\u8f93\u5165\n- area: \u6ce8\u518c\u624b\u673a\u53f7\u6240\u5c5e\u5730\u533a\uff0c\u9ed8\u8ba486\n\n\n**\u67e5\u770b\u8bfe\u7a0b\u5217\u8868**\n\n\n```\ngeektime query\n```\n\n\u6267\u884c\u8be5\u547d\u4ee4\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u4e13\u680f\u3001\u89c6\u9891\u3001\u5fae\u8bfe\u7b49\u8bfe\u7a0b\u7684\u8bfe\u7a0b\u6807\u9898\u3001\u8ba2\u9605\u60c5\u51b5\u3001\u66f4\u65b0\u9891\u7387\u8fd8\u6709\u8bfe\u7a0bID\uff0c\u8fd9\u4e2a**\u8bfe\u7a0bID**\u5f88\u91cd\u8981\uff0c\u54b1\u4eec\u4e0b\u8fb9\u7684\u64cd\u4f5c\u5c31\u662f\u57fa\u4e8e\u8fd9\u4e2aID\u8fdb\u884c\u7684\u3002\n\n```\n\u4e13\u680f\n \u8bfe\u7a0bID \u5df2\u8ba2\u9605 \u8bfe\u7a0b\u6807\u9898 \u66f4\u65b0\u9891\u7387/\u8bfe\u65f6\u00b7\u65f6\u957f\n 49 \u5426 \u6731\u8d5f\u7684\u6280\u672f\u7ba1\u7406\u8bfe (\u5168\u96c6)\n 48 \u662f \u5de6\u8033\u542c\u98ce (\u5168\u96c6)\n ......\n\u5fae\u8bfe\n \u8bfe\u7a0bID \u5df2\u8ba2\u9605 \u8bfe\u7a0b\u6807\u9898 \u66f4\u65b0\u9891\u7387/\u8bfe\u65f6\u00b7\u65f6\u957f\n 75 \u662f \u6df1\u5165\u6d45\u51fagRPC (\u5168\u96c6)\n 73 \u5426 Service Mesh\u5b9e\u8df5\u6307\u5357 (\u5168\u96c6)\n ......\n\u89c6\u9891\n \u8bfe\u7a0bID \u5df2\u8ba2\u9605 \u8bfe\u7a0b\u6807\u9898 \u66f4\u65b0\u9891\u7387/\u8bfe\u65f6\u00b7\u65f6\u957f\n 138 \u662f Nginx\u6838\u5fc3\u77e5\u8bc6100\u8bb2 (100\u8bfe\u65f6\uff0c\u7ea6600\u5206\u949f)\n 130 \u5426 \u7b97\u6cd5\u9762\u8bd5\u901a\u517340\u8bb2 (40\u8bfe\u65f6\u00b7\u7ea6500\u5206\u949f)\n ......\n\u5176\u4ed6\n \u8bfe\u7a0bID \u5df2\u8ba2\u9605 \u8bfe\u7a0b\u6807\u9898 \u66f4\u65b0\u9891\u7387/\u8bfe\u65f6\u00b7\u65f6\u957f\n 69 \u5426 \u96f6\u57fa\u7840\u5165\u95e8 Python \u673a\u5668\u5b66\u4e60 (None)\n 70 \u5426 \u96f6\u57fa\u7840\u5165\u95e8 TensorFlow (None)\n```\n\n\n**\u5236\u4f5c\u7535\u5b50\u4e66**\n\n```\ngeektime ebook [--output-folder= [--comments-count=]\n```\n\n- course_id: \u8bfe\u7a0bID\uff0c\u53ef\u4ee5\u4ece query subcmd \u67e5\u770b\n- output_folder: \u7535\u5b50\u4e66\u5b58\u653e\u76ee\u5f55\uff0c\u9ed8\u8ba4`./ebook/`\n- comments_count: \u5728\u542f\u52a8\u8bc4\u8bba\u4e0b\u8f7d\u65f6\uff0c\u8bbe\u7f6e\u8bc4\u8bba\u6761\u6570\uff0c\u9ed8\u8ba40\u6761\n\nnotice: \u6b64 subcmd \u9700\u8981\u5148\u6267\u884c login subcmd\n\n**\u4e0b\u8f7dmp3**\n\n```\ngeektime mp3 [--url-only] [--output-folder=]\n```\n- course_id: \u8bfe\u7a0bID\uff0c\u53ef\u4ee5\u4ece query subcmd \u67e5\u770b\n- --url-only: \u53ea\u4fdd\u5b58\u97f3\u9891url\uff0c\u4e0d\u4e0b\u8f7d\u97f3\u9891\n- output_folder: \u97f3\u9891\u5b58\u653e\u76ee\u5f55\uff0c\u9ed8\u8ba4`./mp3/`\n\n\nnotice: \u6b64 subcmd \u9700\u8981\u5148\u6267\u884c login subcmd\n\n**\u4e0b\u8f7dmp4**\n\n```\ngeektime mp4 [--url-only] [--hd-only] [--output-folder=]\n```\n\n- course_id: \u8bfe\u7a0bID\uff0c\u53ef\u4ee5\u4ece query subcmd \u67e5\u770b\n- --url-only: \u53ea\u4fdd\u5b58\u89c6\u9891url\n- --hd-only\uff1a\u4e0b\u8f7d\u9ad8\u6e05\u89c6\u9891\uff0c\u9ed8\u8ba4\u4e0b\u8f7d\u6807\u6e05\u89c6\u9891\n- output_folder: \u89c6\u9891\u5b58\u653e\u76ee\u5f55\uff0c\u9ed8\u8ba4`./mp4/`\n\nnotice\uff1a \u6b64 subcmd \u9700\u8981\u5148\u6267\u884c login subcmd\uff1b \u63a8\u8350\u5f00\u542f`--url-only`\uff0c\u53ea\u4fdd\u5b58 mp4 url\n\n\n**\u63a8\u9001\u5230kindle**\n\n\n\u5982\u679c\u4f60\u60f3\u628a\u5236\u4f5c\u5b8c\u6210\u7684\u7535\u5b50\u4e66\u63a8\u9001\u5230kindle\u7684\u8bdd\uff0c\u9700\u8981\u63d0\u4f9b\u4ee5\u4e0b smtp \u914d\u7f6e\uff08\u4ee5qq\u90ae\u7bb1\u4e3a\u4f8b\uff09\uff1a\n\n```\nsmtp_encryption = ssl\nsmtp_host = smtp.qq.com\nsmtp_password = psd\nsmtp_port = 465\nsmtp_user = 1234@qq.com\nemail_to = xxx@kindle.cn\n\n```\n\n\u7136\u540e\u5728[\u5236\u4f5c\u7535\u5b50\u4e66](https://github.com/jachinlin/geektime_dl#%E5%88%B6%E4%BD%9C%E7%94%B5%E5%AD%90%E4%B9%A6) ebook subcmd\u540e\u6dfb\u52a0 `--push` \u4ee5\u53ca\u4e0a\u9762\u53c2\u6570\u5373\u53ef\uff0c\u4f8b\u5982\uff0c\n\n```\ngeektime ebook -c 42 --push --smtp-host=smtp.qq.com --smtp-port=465 --smtp-encryption=ssl --smtp-user=1234@qq.com --smtp-user=psd --email-to=xxx@kindle.cn\n```\n\n\u81f3\u4e8e\u90ae\u7bb1smtp\u914d\u7f6e\u548ckindle\u90ae\u7bb1\u914d\u7f6e\u5c31\u81ea\u884cgoogle\u5427\u3002\n\n\n## \u4e94\u3001Docker\n\n\u5982\u679c\u4f60\u5bf9 Python \u4e0d\u662f\u5f88\u4e86\u89e3\uff0c\u6211\u4eec\u8fd8\u63d0\u4f9b\u4e86 docker \u7248\u672c\uff0c\u53ea\u8981\u5b89\u88c5\u597d docker \uff0c\u4f9d\u6b21\u590d\u5236\u4e0b\u8fb9\u6307\u4ee4\u5e76\u6267\u884c\uff0c\n\u5c31\u80fd\u4e0b\u8f7d\u5168\u90e8\u5df2\u8d2d\u4e70\u4e13\u680f\u6587\u7ae0\u3001mp3\u3001mp4\uff0c\u5982\u679c\u4e13\u680f\u66f4\u65b0\u5b8c\u6bd5\u7684\u8bdd\uff0c\u6211\u4eec\u8fd8\u4f1a\u628a\u8be5\u4e13\u680f\u505a\u6210kindle\u7535\u5b50\u4e66\u3002\n\n```\n# \u6784\u5efa\ndocker build https://github.com/jachinlin/geektime_dl.git -t geektime\n\n# \u767b\u5f55\ndocker run -v `pwd`:/output -it --rm geektime login\n\n# \u4e0b\u8f7d\ndocker run -v `pwd`:/output -it --rm geektime ebook all\ndocker run -v `pwd`:/output --rm geektime mp4 al\ndocker run -v `pwd`:/output --rm geektime mp3 all\n```\n\n\n## \u516d\u3001Todo list\n\n- [X] MP3 and MP4\n- [X] comments\n- [X] batch download\n- [X] docker\n- [X] push to kindle\n- [ ] support mathjax\n- [ ] ...\n\n\n## \u4e03\u3001\u5176\u4ed6\n\n1. \u6ce8\u610f\u7248\u6743\uff0c\u52ff\u4f20\u64ad\u7535\u5b50\u4e66\u53ca\u97f3\u89c6\u9891\n2. pr or issue is welcome\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/jachinlin/geektime_dl", "keywords": "kindle ebook mobi geektime", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "geektime-dl", "package_url": "https://pypi.org/project/geektime-dl/", "platform": "", "project_url": "https://pypi.org/project/geektime-dl/", "project_urls": { "Homepage": "https://github.com/jachinlin/geektime_dl" }, "release_url": "https://pypi.org/project/geektime-dl/1.1.0/", "requires_dist": [ "kindle-maker", "requests", "tinydb", "termcolor", "tqdm", "pillow" ], "requires_python": "", "summary": "\u628a\u6781\u5ba2\u65f6\u95f4\u88c5\u8fdbKindle", "version": "1.1.0" }, "last_serial": 5981800, "releases": { "0.2.1": [ { "comment_text": "", "digests": { "md5": "ec55fc36388b5696f43ce7c52dfc5ae7", "sha256": "429b5444750f5fcb1a696babe4e83a265d97134ab166cb112116204d7335c550" }, "downloads": -1, "filename": "geektime_dl-0.2.1.tar.gz", "has_sig": false, "md5_digest": "ec55fc36388b5696f43ce7c52dfc5ae7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20660, "upload_time": "2019-04-05T09:37:49", "url": "https://files.pythonhosted.org/packages/ff/15/00f6672c22a7fc02301f9414712952509c059c287f639da2658d904beaca/geektime_dl-0.2.1.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "038bd6c2d594246867f624871a1d1ea2", "sha256": "b4e80f3f8ae427d962801f760d399e407abe6c9ef51698604e7d4fa950d4ea7a" }, "downloads": -1, "filename": "geektime_dl-0.3.3.tar.gz", "has_sig": false, "md5_digest": "038bd6c2d594246867f624871a1d1ea2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20973, "upload_time": "2019-07-28T13:22:49", "url": "https://files.pythonhosted.org/packages/95/2e/0d2ba514f70f14efba9f791df8f41375b440aa3893217ccaba85968dcaab/geektime_dl-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "2ef276b44c9d47d30aa05ac1b56721af", "sha256": "2d222757af96b6cf479834389c9def87a2e980bb6d1b6b1de9c30a4edf5dc807" }, "downloads": -1, "filename": "geektime_dl-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2ef276b44c9d47d30aa05ac1b56721af", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24516, "upload_time": "2019-08-03T10:27:26", "url": "https://files.pythonhosted.org/packages/c0/aa/3e956c84ba340192ad58a07f2cb494dcd36ba169d94ea92fe4cecaab4773/geektime_dl-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f4a31baa314d97a8dd5e9cefbad9f65", "sha256": "71fa82a227866c2884c4d1146d95d2a1d2bb7bfb7830355321e0fb5613866f75" }, "downloads": -1, "filename": "geektime_dl-0.3.4.tar.gz", "has_sig": false, "md5_digest": "1f4a31baa314d97a8dd5e9cefbad9f65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21232, "upload_time": "2019-08-03T10:27:28", "url": "https://files.pythonhosted.org/packages/8e/01/3f105f9ed5f19b6f7955509a879b36b4a1c0571e11c2acab6d2458ea4d84/geektime_dl-0.3.4.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "44450a43b20ef0bcb67825f6f2e40d4a", "sha256": "a4664948095a82b7ecb1e6bfbbd3b11ba2328b2571211078b7602f025346d653" }, "downloads": -1, "filename": "geektime_dl-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "44450a43b20ef0bcb67825f6f2e40d4a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27038, "upload_time": "2019-10-12T05:41:50", "url": "https://files.pythonhosted.org/packages/21/5b/42f0793d36a3a2b9095caa763e26d8579746c02ed69ae3a6bb5aaeac4cbd/geektime_dl-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3fe746469a565ab80093953387a9328", "sha256": "4af6acddc49b558c0478139baada907853660bf86210b770d7518dc9a48f47a1" }, "downloads": -1, "filename": "geektime_dl-1.0.0.tar.gz", "has_sig": false, "md5_digest": "e3fe746469a565ab80093953387a9328", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22264, "upload_time": "2019-10-12T05:41:52", "url": "https://files.pythonhosted.org/packages/8f/b3/8c6a8ed332134fea25f08655d76e36e2761a586dca3348487ed34c1acc36/geektime_dl-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "68399ba4164120d806a1c4b04a174e37", "sha256": "a9514a9d5617110240fbf6f4f94d5953e0657d6fa42ea6e47601691fd4c0fe37" }, "downloads": -1, "filename": "geektime_dl-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "68399ba4164120d806a1c4b04a174e37", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27503, "upload_time": "2019-10-16T08:02:28", "url": "https://files.pythonhosted.org/packages/a7/6c/b3152ffa2969152fb7a48209b10df0f6b984800cecd73625b10eb0889a53/geektime_dl-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64e2729e3a4e9b580bb1058b347b67af", "sha256": "7b2d5b995ebdfa34dbab31575191e1789caf1584927dd943cc42bb6ea100a0db" }, "downloads": -1, "filename": "geektime_dl-1.1.0.tar.gz", "has_sig": false, "md5_digest": "64e2729e3a4e9b580bb1058b347b67af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22727, "upload_time": "2019-10-16T08:02:30", "url": "https://files.pythonhosted.org/packages/d6/30/cef333fb1f85b20e28d782138c2589ac44a09e6ec464070e938e66bf6a6a/geektime_dl-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "68399ba4164120d806a1c4b04a174e37", "sha256": "a9514a9d5617110240fbf6f4f94d5953e0657d6fa42ea6e47601691fd4c0fe37" }, "downloads": -1, "filename": "geektime_dl-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "68399ba4164120d806a1c4b04a174e37", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27503, "upload_time": "2019-10-16T08:02:28", "url": "https://files.pythonhosted.org/packages/a7/6c/b3152ffa2969152fb7a48209b10df0f6b984800cecd73625b10eb0889a53/geektime_dl-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64e2729e3a4e9b580bb1058b347b67af", "sha256": "7b2d5b995ebdfa34dbab31575191e1789caf1584927dd943cc42bb6ea100a0db" }, "downloads": -1, "filename": "geektime_dl-1.1.0.tar.gz", "has_sig": false, "md5_digest": "64e2729e3a4e9b580bb1058b347b67af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22727, "upload_time": "2019-10-16T08:02:30", "url": "https://files.pythonhosted.org/packages/d6/30/cef333fb1f85b20e28d782138c2589ac44a09e6ec464070e938e66bf6a6a/geektime_dl-1.1.0.tar.gz" } ] }