{ "info": { "author": "Jess Unrein", "author_email": "j.l.unrein@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "BetterReads\n===========\n\n|Build Status| |Coverage Status| |Documentation Status| |Primary Code Style| |Secondary Code Style|\n\n.. image:: http://s.gr-assets.com/assets/icons/goodreads_icon_50x50-823139ec9dc84278d3863007486ae0ac.png\n :target: https://goodreads.com\n :width: 100px\n\nThis package provides a Python interface for the `Goodreads\nAPI `__. Using it, you can do pretty much\nanything that Goodreads allows through their public API.\n\nThis package is largely Python 2 compatible, but is only officially supported for Python 3.\n\nWhy BetterReads?\n----------------\n\nBetterReads is an expansion of the goodreads2 package available on PyPi. That package is no longer maintained\nand needed some updates to be usable. The name is just cheeky and cute, and not to imply that this project is\nsubstantially better than any other project. Someday I hope it's succeeded by a Python package called BestReads.\n\nMajor updates in this new project:\n\n- Use https for Oauth - goodreads now requires this and previous packages' Oauth requests always fail\n- Add convenience method to get all of a user's reviews for a specific shelf\n- Some opinionated development changes. For example\n - No longer making live API calls in unit tests\n - Using `black code style `__ across the board\n - More robust `documentation `__\n\nDependencies\n------------\n\nThis package depends on the following packages:\n\n- xmltodict\n- requests\n- rauth\n- backports-datetime-fromisoformat\n\nThey can be installed using ``pip``.\n\n::\n\n sudo pip install -r requirements.txt\n\nIf you want to contribute to this package, you will need to install the packages\nin ``requirements-dev.txt`` as well.\n\nInstallation\n------------\n\nTo install, run the following command from the top-level package\ndirectory.\n\n::\n\n sudo python setup.py install\n\nYou can also install BetterReads using pip. The current version on PyPi is 0.4.1.\n\n::\n\n pip install betterreads\n\n\nGetting Started\n---------------\n\nThe first thing is to request an API key from Goodreads\n`here `__. Once you have it, you can\ncreate a client instance to query Goodreads.\n\n.. code:: python\n\n from goodreads import client\n gc = client.GoodreadsClient(, )\n\nTo access some of the methods, you need `OAuth `__\nfor authorization.\n\n.. code:: python\n\n gc.authenticate(, )\n\nNote that ``access_token`` and ``access_token_secret`` are different\nfrom developer key and secret. For the development step, you can call\nthe same function with no parameters to get authorization. It will open\na URL pointing a Goodreads page for OAuth permission. For your\napplication, you can direct the user to that particular URL, ask them\nto authorize your app and save the returning ``access_token`` and\n``access_token_secret`` in your database.\n\nExamples\n--------\n\nThis package provides a Python interface for most Goodreads API methods.\nHere are a few examples demonstrating how to access data on Goodreads.\n\nBooks\n~~~~~\n\nLet's access the first book added to Goodreads! It is the book with id\n1.\n\n.. code:: python\n\n book = gc.book(1)\n\nOnce you have the ``GoodreadsBook`` instance for the book, you can\naccess data for the queried book.\n\n.. code:: python\n\n >>> book.title\n u'Harry Potter and the Half-Blood Prince (Harry Potter, #6)'\n >>> authors = book.authors\n >>> authors[0].name\n u'J.K. Rowling'\n >>> book.average_rating\n u'4.49'\n\nAuthors\n~~~~~~~\n\nYou can get information about an author as well.\n\n.. code:: python\n\n >>> author = gc.author(2617)\n >>> author.name\n u'Jonathan Safran Foer'\n >>> author.works_count\n u'13'\n >>> author.books\n [Extremely Loud and Incredibly Close, Everything Is Illuminated, Eating Animals, Tree of Codes, Everything is Illuminated & Extremely Loud and Incredibly Close, The unabridged pocketbook of lightning, The Future Dictionary of America, A Convergence of Birds: Original Fiction and Poetry Inspired by Joseph Cornell, New American Haggadah, The Sixth Borough]\n\nUsers\n~~~~~\n\nUser data can be retrieved by user id or username.\n\n.. code:: python\n\n >>> user = gc.user(1)\n >>> user.name\n u'Otis Chandler'\n >>> user.user_name\n u'otis'\n >>> user.small_image_url\n u'http://d.gr-assets.com/users/1189644957p2/1.jpg'\n\nGroups\n~~~~~~\n\nLet's find a group discussing Python and get more information about it.\n\n.. code:: python\n\n >>> g = gc.find_groups(\"Python\")\n >>> g = groups[0]\n >>> g['title']\n u'The Computer Scientists'\n >>> group = gc.group(g['id'])\n >>> group.description\n u'Only for Committed Self Learners and Computer Scientists Who are Starving for\n Information, and Want to Advance their Skills Through: Reading, Practicing and\n Discussion Computer Science and Programming Books.'\n\nEvents\n~~~~~~\n\nGoodreads API also allows to list events happening in an area.\n\n.. code:: python\n\n >>> events = gc.list_events(21229)\n >>> event = events[0]\n >>> event.title\n u'Books and Cocktails'\n >>> event.address\n u'120 N. Front St.'\n >>> event.city\n u'Wrightsville'\n\nDocumentation\n-------------\n\nRead more about this package\n`here `__.\n\nContribution\n------------\n\nIf you find an API method that is not supported by this package, feel\nfree to create a Github issue. Also, you are more than welcome to submit\na pull request for a bug fix or additional feature. For more detail on\ncontributing to this project and setting up your local dev environment,\ncheck out `our contribution guide `__.\n\nLicense\n-------\n\n`MIT License `__\n\nAcknowledgment\n--------------\n\nThanks to `Paul Shannon `__ and `Sefa Kilic `__\nfor providing 'goodreads' package at PyPI, and to `Tatiana `__ and\n`Rehan Khwaja `__ for continuing the project as goodreads2. BetterReads couldn't exist\nwithout all of you.\n\n.. |Build Status| image:: https://travis-ci.org/thejessleigh/betterreads.svg?branch=master\n :target: https://travis-ci.org/thejessleigh/betterreads\n :alt: Build Status\n.. |Coverage Status| image:: https://coveralls.io/repos/github/thejessleigh/betterreads/badge.svg?branch=master\n :target: https://coveralls.io/github/thejessleigh/betterreads?branch=master\n :alt: Coverage Status\n.. |Documentation Status| image:: https://readthedocs.org/projects/betterreads/badge/?version=latest\n :target: http://betterreads.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n.. |Primary Code Style| image:: https://camo.githubusercontent.com/28a51fe3a2c05048d8ca8ecd039d6b1619037326/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64652532307374796c652d626c61636b2d3030303030302e737667\n :target: https://github.com/ambv/black\n :alt: Primary Code Style - Black\n.. |Secondary Code Style| image:: https://img.shields.io/badge/code_style-prettier-ff69b4.svg\n :target: https://github.com/prettier/prettier\n :alt: Secondary Code Style - Prettier\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/thejessleigh/betterreads", "keywords": "goodreads API", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "betterreads", "package_url": "https://pypi.org/project/betterreads/", "platform": "", "project_url": "https://pypi.org/project/betterreads/", "project_urls": { "Homepage": "https://github.com/thejessleigh/betterreads" }, "release_url": "https://pypi.org/project/betterreads/0.4.2/", "requires_dist": [ "backports-datetime-fromisoformat", "rauth", "requests", "xmltodict" ], "requires_python": "", "summary": "Python 3 wrapper for Goodreads API", "version": "0.4.2" }, "last_serial": 5194578, "releases": { "0.4.1": [ { "comment_text": "", "digests": { "md5": "5b48d8f86f42d2259e1a7ccd601c6447", "sha256": "a1910e92658913873fd9ab4f5352e2f9e3a1916aacb2bb105bc0cb87801f2a46" }, "downloads": -1, "filename": "betterreads-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5b48d8f86f42d2259e1a7ccd601c6447", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15688, "upload_time": "2019-04-24T21:35:04", "url": "https://files.pythonhosted.org/packages/fb/89/bf01433be08ab023698fd9a0db7a9b82f83b687b733f70e762abfdcf42f5/betterreads-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "876042a6d0cfe53c77b09b238694ac7a", "sha256": "f247a1271c66acdb95b331d7f088afec70d3adab342c5bf701dcb44cc5f39690" }, "downloads": -1, "filename": "betterreads-0.4.1.tar.gz", "has_sig": false, "md5_digest": "876042a6d0cfe53c77b09b238694ac7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14846, "upload_time": "2019-04-24T21:35:06", "url": "https://files.pythonhosted.org/packages/3d/49/65a2483f48634e3f428b02027f7d3c5b0d29b0cfd682cb301463c03a1ad8/betterreads-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "faee13aed2c8396c6cccbe5a89963773", "sha256": "5121487eab82b1a4401910760b0d333637123338bb85eb46282633c1d4f79cea" }, "downloads": -1, "filename": "betterreads-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "faee13aed2c8396c6cccbe5a89963773", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16279, "upload_time": "2019-04-26T19:23:59", "url": "https://files.pythonhosted.org/packages/9d/c4/ed83eca2bc0dfcaa5f0b25f8ba250587eb156734a05516340d7ad81d3f87/betterreads-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b5dfbd8aaecb3ff6da4b65e88dab1a0c", "sha256": "3340a44549fd1b9564d8093b9965d9382ba3c505ea113e51e1471d8d739cd4f6" }, "downloads": -1, "filename": "betterreads-0.4.2.tar.gz", "has_sig": false, "md5_digest": "b5dfbd8aaecb3ff6da4b65e88dab1a0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15281, "upload_time": "2019-04-26T19:24:01", "url": "https://files.pythonhosted.org/packages/d8/bc/b35b484fb139e7bfc5ab8f5c5c246c62b205a26720e1fc7ed1f379f87243/betterreads-0.4.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "faee13aed2c8396c6cccbe5a89963773", "sha256": "5121487eab82b1a4401910760b0d333637123338bb85eb46282633c1d4f79cea" }, "downloads": -1, "filename": "betterreads-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "faee13aed2c8396c6cccbe5a89963773", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16279, "upload_time": "2019-04-26T19:23:59", "url": "https://files.pythonhosted.org/packages/9d/c4/ed83eca2bc0dfcaa5f0b25f8ba250587eb156734a05516340d7ad81d3f87/betterreads-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b5dfbd8aaecb3ff6da4b65e88dab1a0c", "sha256": "3340a44549fd1b9564d8093b9965d9382ba3c505ea113e51e1471d8d739cd4f6" }, "downloads": -1, "filename": "betterreads-0.4.2.tar.gz", "has_sig": false, "md5_digest": "b5dfbd8aaecb3ff6da4b65e88dab1a0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15281, "upload_time": "2019-04-26T19:24:01", "url": "https://files.pythonhosted.org/packages/d8/bc/b35b484fb139e7bfc5ab8f5c5c246c62b205a26720e1fc7ed1f379f87243/betterreads-0.4.2.tar.gz" } ] }