{
"info": {
"author": "Engine Bai",
"author_email": "enginebai@gmail.com",
"bugtrack_url": null,
"classifiers": [],
"description": "PyMedium - Unofficial Medium API\n================================\n\n|License: MIT| |PyPI|\n\n.. figure:: https://raw.githubusercontent.com/enginebai/PyMedium/master/art/graphic.png\n :alt: PyMedium\n\n PyMedium\n\n*PyMedium* is an unofficial Medium API written in python flask. It\nprovides developers to access to user, post list and detail information\nfrom `Medium `__ website. This is a read-only API\nto access public information from Medium, you can customize this API to\nfit your requirements and deploy on your own server.\n\nNow we provide another way: python client SDK to let you integrate into\nyour application. More detail go to `wiki\npage `__.\n\nInstallation\n------------\n\nBefore running PyMedium API, you have to clone the code from this\nrepository, install requirements at first.\n\n.. code:: shell\n\n $ git clone git@github.com:enginebai/PyMedium.git\n $ cd PyMedium\n $ pip install -r requirements.txt\n\nThen download web driver to ``driver`` folder from\n`Selenium `__ or via the\ncommand-line with ``curl`` (update ``{VERSION}`` with the latest version\ncode and ``{OS}`` with your server operating system.\n\n.. code:: shell\n\n $ mkdir driver | cd driver\n $ curl -O https://chromedriver.storage.googleapis.com/{VERSION}/chromedriver_{OS}.zip\n $ unzip chromedriver_{OS}.zip\n\nUsage\n-----\n\nTo run this API application, use the ``flask`` command as same as `Flask\nQuickstart `__\n\n.. code:: shell\n\n $ export FLASK_APP=./pymedium/api.py\n $ export FLASK_DEBUG=1 ## if you run in debug mode.\n $ flask run\n * Running on http://localhost:5000/\n\nDocumentation\n-------------\n\nUsers\n~~~~~\n\n- ``GET /@{username}`` - Get user profile\n\nResponse\n^^^^^^^^\n\n.. code:: json\n\n {\n \"avatar\": \"1*Y7zH0UM975YmchIO86uIGA.jpeg\",\n \"bio\": \"Mixtape of developer, designer and startup. Cofounder and developer of DualCores Studio. Follow my technical blog: http://enginebai.logdown.com/\",\n \"display_name\": \"Engine Bai\",\n \"facebook\": \"789985027713671\",\n \"followedby_count\": 445,\n \"following_count\": 238,\n \"publications\": [\n {\n \"creator_user_id\": \"3301d32a6bba\",\n \"description\": \"Stories from the mix of designer and developer. \u8a2d\u8a08\u8207\u5de5\u7a0b\u7684\u4ea4\u7e54\uff0c\u6df7\u642d\u6fc0\u76ea\u51fa\u4e0d\u540c\u7684\u60f3\u50cf\u3002\",\n \"display_name\": \"DualCores Studio\",\n \"follower_count\": 302,\n \"image\": {\n \"image_id\": \"1*DLixNgsMpK5B74na3EDucQ.png\",\n \"original_height\": 591,\n \"original_width\": 591\n },\n \"logo\": {\n \"image_id\": \"1*DLixNgsMpK5B74na3EDucQ.png\",\n \"original_height\": 591,\n \"original_width\": 591\n },\n \"name\": \"dualcores-studio\",\n \"post_count\": 0,\n \"publication_id\": \"275e26e7c1b2\",\n \"url\": \"https://medium.com/dualcores-studio\"\n },\n ...more\n ],\n \"twitter\": \"enginebai\",\n \"user_id\": \"3301d32a6bba\",\n \"username\": \"enginebai\"\n }\n\nPublication\n~~~~~~~~~~~\n\n- ``GET /{publication_name}`` - Get publication profile\n\n.. code:: json\n\n {\n \"creator_user_id\": \"3301d32a6bba\",\n \"description\": \"Stories from the mix of designer and developer. \u8a2d\u8a08\u8207\u5de5\u7a0b\u7684\u4ea4\u7e54\uff0c\u6df7\u642d\u6fc0\u76ea\u51fa\u4e0d\u540c\u7684\u60f3\u50cf\u3002\",\n \"display_name\": \"DualCores Studio\",\n \"follower_count\": 302,\n \"image\": {\n \"image_id\": \"1*DLixNgsMpK5B74na3EDucQ.png\",\n \"original_height\": 591,\n \"original_width\": 591\n },\n \"logo\": {\n \"image_id\": \"1*DLixNgsMpK5B74na3EDucQ.png\",\n \"original_height\": 591,\n \"original_width\": 591\n },\n \"name\": \"dualcores-studio\",\n \"post_count\": 0,\n \"publication_id\": \"275e26e7c1b2\",\n \"url\": \"https://medium.com/dualcores-studio\"\n }\n\nPost\n~~~~\n\n- ``GET /@{username}/posts`` - Get user latest posts\n- ``GET /{publication_name}/posts`` - Get publication latest posts\n- ``GET /top`` - Get most popular today posts\n- ``GET /tag/{tag}`` - Get tagged in popular posts\n- ``GET /tag/{tag}/latest`` - Get tagged in latest posts\n\nParameters\n^^^^^^^^^^\n\n+--------+-----------+------------------------------------------------+\n| Name | Type | Description |\n+========+===========+================================================+\n| n | integer | The count of posts to return. Default is 10. |\n+--------+-----------+------------------------------------------------+\n\nResponse\n^^^^^^^^\n\n.. code:: json\n\n [\n {\n \"image_count\": 14,\n \"post_date\": 1478533474858,\n \"post_id\": \"99a3d86df228\",\n \"preview_image\": {\n \"image_id\": \"1*zhnQJhNzp-Oal1-GU1EUKw.png\",\n \"original_height\": 412,\n \"original_width\": 608\n },\n \"read_time\": 7.74811320754717,\n \"recommend_count\": 351,\n \"response_count\": 10,\n \"title\": \"Make an android custom view, publish and open source.\",\n \"url\": \"https://medium.com/dualcores-studio/make-an-android-custom-view-publish-and-open-source-99a3d86df228\",\n \"word_count\": 1669\n },\n ...more\n ]\n\nPost detail\n~~~~~~~~~~~\n\n- ``GET /post`` - Get the post content\n\nParameters\n^^^^^^^^^^\n\n+------+------+------+\n| Name | Type | Desc |\n| | | ript |\n| | | ion |\n+======+======+======+\n| u | stri | The |\n| | ng | post |\n| | | url |\n| | | to |\n| | | pars |\n| | | e |\n| | | cont |\n| | | ent. |\n+------+------+------+\n| form | stri | (opt |\n| at | ng | iona |\n| | | l) |\n| | | The |\n| | | form |\n| | | at |\n| | | of |\n| | | resp |\n| | | onse |\n| | | , |\n| | | the |\n| | | valu |\n| | | e |\n| | | coul |\n| | | d |\n| | | be |\n| | | ``te |\n| | | xt`` |\n| | | , |\n| | | ``ht |\n| | | ml`` |\n| | | , |\n| | | ``md |\n| | | ``, |\n| | | ``js |\n| | | on`` |\n| | | , |\n| | | defa |\n| | | ult |\n| | | is |\n| | | ``te |\n| | | xt`` |\n| | | . |\n+------+------+------+\n\nResponse\n^^^^^^^^\n\n::\n\n ## Simple text, json, html, markdown format\n\nIssues\n------\n\nFeel free to submit bug reports or feature requests and make sure you\nread the contribution guideline before opening any issue.\n\nContributing\n------------\n\n1. Check the open/close issues or open a fresh issue for feature request\n or bug report with different labels (``feature``/``bug``).\n2. Fork this `repository `__ on\n GitHub to start customizing on master or new branch.\n3. Write a test which shows that the feature works as expected or the\n bug was fixeed.\n4. Send a pull request and wait for code review.\n\n`Read more on contributing <./CONTRIBUTING.md>`__.\n\nLicense\n-------\n\nCopyright (c) 2017 Engine Bai Licensed under the `MIT\nlicense `__.\n\n.. |License: MIT| image:: https://img.shields.io/badge/License-MIT-yellow.svg\n :target: https://opensource.org/licenses/MIT\n.. |PyPI| image:: https://badge.fury.io/py/PyMedium.svg\n :target: https://badge.fury.io/py/PyMedium\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/enginebai/PyMedium",
"keywords": "",
"license": "The MIT License (MIT) Copyright \u00a9 2017 Engine Bai.",
"maintainer": "",
"maintainer_email": "",
"name": "PyMedium",
"package_url": "https://pypi.org/project/PyMedium/",
"platform": "",
"project_url": "https://pypi.org/project/PyMedium/",
"project_urls": {
"Homepage": "https://github.com/enginebai/PyMedium"
},
"release_url": "https://pypi.org/project/PyMedium/1.0.3/",
"requires_dist": null,
"requires_python": "",
"summary": "PyMedium - Unofficial Medium API",
"version": "1.0.3"
},
"last_serial": 2871079,
"releases": {
"1.0.0": [],
"1.0.1": [
{
"comment_text": "",
"digests": {
"md5": "256fe4725b88e5ee769e531e7ca3d38c",
"sha256": "fead6d1b594ecfe4887450650aee9300f3eebf5f5cd4f46927ffd1ed5e589dee"
},
"downloads": -1,
"filename": "PyMedium-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "256fe4725b88e5ee769e531e7ca3d38c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10471,
"upload_time": "2017-05-13T01:59:33",
"url": "https://files.pythonhosted.org/packages/e0/f0/23760ec1a27e9c27aa9fd06af43fac848eb6a0bff0f0c006a4cc5f4adeaa/PyMedium-1.0.1.tar.gz"
}
],
"1.0.3": [
{
"comment_text": "",
"digests": {
"md5": "4751a2c0c83a0eea162678e000ffcc1c",
"sha256": "9a55398401e2871bb5ddbe788e52ede0ba65287ccd2f460b4c9022e400f0a0a7"
},
"downloads": -1,
"filename": "PyMedium-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "4751a2c0c83a0eea162678e000ffcc1c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10478,
"upload_time": "2017-05-13T06:42:22",
"url": "https://files.pythonhosted.org/packages/26/89/368ca438bb7a24b34edc5dea9913c18fea6aaa1edb84a48ce0b38857bcf3/PyMedium-1.0.3.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "4751a2c0c83a0eea162678e000ffcc1c",
"sha256": "9a55398401e2871bb5ddbe788e52ede0ba65287ccd2f460b4c9022e400f0a0a7"
},
"downloads": -1,
"filename": "PyMedium-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "4751a2c0c83a0eea162678e000ffcc1c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10478,
"upload_time": "2017-05-13T06:42:22",
"url": "https://files.pythonhosted.org/packages/26/89/368ca438bb7a24b34edc5dea9913c18fea6aaa1edb84a48ce0b38857bcf3/PyMedium-1.0.3.tar.gz"
}
]
}