{ "info": { "author": "Mehrab Hoque", "author_email": "mehrabhoque@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "

\n\n## An Introduction\n\nThe [Official MyAnimeList API](http://myanimelist.net/modules.php?go=api) needs lots of work and is pretty annoying to use. Here are some of the many issues:\n* Some of the documentation is just straight up incorrect (perhaps it was correct sometime ago).\n* There are MySQL bugs on MAL's end that must be circumvented.\n* There are severe limitations in what the API allows you to do, forcing the programmer's hand to write ugly scraping code.\n* Some of the ways to do simple things like updating an anime on a user's list requires an esoteric knowledge of MAL URLs/queries that are no where on the documentation.\n* The Official MAL API fails to provide consistent behavior.\n\t- e.g. When sending too many requests, the Official MAL API has unpredictable\n\tbehavior.\n\nWork and/or further development on it seems like a lost cause, since the developer(s) have far more pressing concerns with the site.\n\nThis API aims to provide an easy to use Python API that wraps around MAL's\nREST-API so that you don't have to experience any headaches.\n\nName inspired by [Horo/Holo](http://myanimelist.net/character/7373/Holo) from [Spice and Wolf](http://myanimelist.net/anime/2966/Ookami_to_Koushinryou?q=Spice%20and%20Wolf).\n\nAPI inspired by other attempts (which made their own REST API wrapper, while this one uses a pure Python implementation), such as [crobert22](https://github.com/croberts22)'s [Railgun](https://github.com/croberts22/railgun) and [chuyeow](https://github.com/chuyeow)'s [myanimelist-api](https://github.com/chuyeow/myanimelist-api).\n\n## Install\n\n```bash\n$ pip install spice_api\n```\n\n## Here's How to Use It \n\n```python\nimport spice_api as spice\n\ndef main():\n\tcreds = spice.load_auth_from_file('auth') #or spice.init_auth(username, pw)\n\tsearch_results = spice.search('Spice and Wolf', spice.get_medium('anime'), creds)\n\tprint(results[0].title) # > Ookami to Koushinryou\n\tsaw_id = results[0].id # > 2966\n\t\n\t#mal sees everything as anime or manga, so novels are considered manga.\n\tsaw_novel = spice.search_id(saw_id, spice.get_medium('manga'), creds)\n\tprint(saw_novel.title) # > Ookami to Koushinryou\n\tprint(saw_novel.chapters) # > 0\n\tprint(saw_novel.volumes) # > 18\n\t\n\t#get a fresh anime data object to fill in, and then push to your list\n\tsaw_data = spice.get_blank(spice.get_medium('anime'))\n\tsaw_data.episodes = 10 #you've watched 10 eps\n\tsaw_data.status = spice.get_status('watching') #you're still watching\n\tsaw_data.score = 9 #your rating\n\tsaw_data.tags = ['Holo is the best.'] #tags\n\t#there are many other fields you can fill in, but this is enough.\n\tspice.update(saw_data, saw_id, spice.get_medium('anime'), creds) #update your list.\n\n\tyour_list = spice.get_list(spice.get_medium('anime'), creds) #get your list (no args)\n\tother_anime_list = spice.get_list(spice.get_medium('anime'), 'Pickleplatter', creds) #someone else's list\n\t\n\tprint(your_list.avg_score()) # > mean \n\tprint(your_list.p_var()) # > variance\n\t# there are A LOT more methods for analyzing lists. Check them out in the source code in objects.py!\n\tprint(your_list.get_num_status(spice.get_status_num('watching'))) #number of shows you're watching\n\tprint(your_list.compatibility(other_anime_list)) # > you and your friend's compatibility score\n\n```\n\n## What's Left\n* Add more information to Anime() and Manga() objects through webscraping.\n* Add more list comparison methods.\n* Make some documentation for christ's sake.\n* Make README even more pretty.", "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/Utagai/spice", "keywords": "spice,MyAnimeList,API", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "spice-api", "package_url": "https://pypi.org/project/spice-api/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/spice-api/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/Utagai/spice" }, "release_url": "https://pypi.org/project/spice-api/1.0.4/", "requires_dist": null, "requires_python": null, "summary": "spice is a pure Python API that wraps around MALs Official API and makes it much better.", "version": "1.0.4" }, "last_serial": 2375408, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "4c71cdbe322a0817b2f826cd03281001", "sha256": "a2e7bdaaa86f57031f421108f2ce487f7003163e3f03f5bf8956b8e1b222aa05" }, "downloads": -1, "filename": "spice_api-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4c71cdbe322a0817b2f826cd03281001", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22302, "upload_time": "2016-07-16T04:56:43", "url": "https://files.pythonhosted.org/packages/f9/8e/2f8f802a19723818753e3a601f41e4d9edb153cd17559e9fb3e1ec5f3817/spice_api-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "726b4701f21f4b7e4f84ac3c35981cd7", "sha256": "acb0f8a6a859662d680e7611f54ee90d6931b57ae26730043cbcbb5122fe037d" }, "downloads": -1, "filename": "spice_api-1.0.0.tar.gz", "has_sig": false, "md5_digest": "726b4701f21f4b7e4f84ac3c35981cd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14047, "upload_time": "2016-07-16T04:56:41", "url": "https://files.pythonhosted.org/packages/1b/6a/6330e19a9e667236632f83a2ad2096760c20cd7bbed33f7ed21a7e7e3810/spice_api-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "a4c4809fe48da37e254e442b230441f0", "sha256": "50d926dfad5cbcfd100d1bdb5bb96e44022cb6e05900efb5a6d9eb44076c46b5" }, "downloads": -1, "filename": "spice_api-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a4c4809fe48da37e254e442b230441f0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22269, "upload_time": "2016-07-16T05:26:46", "url": "https://files.pythonhosted.org/packages/b2/9e/be5cd6ddf623ba78fc19cbf72f9d2f16800c7fb85307524145c767af285e/spice_api-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f20efdc5c4002670ff44922f99bb985", "sha256": "c02d90ccd04c02e903227fa98beda364e51f5cb07cad034720267eaf3e87a460" }, "downloads": -1, "filename": "spice_api-1.0.1.tar.gz", "has_sig": false, "md5_digest": "9f20efdc5c4002670ff44922f99bb985", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14037, "upload_time": "2016-07-16T05:26:44", "url": "https://files.pythonhosted.org/packages/07/64/c82758026896ec457f3a4cdfec63db39f77cbd5f7cd1641da8d7c7fd0d21/spice_api-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d977efe61c6f6d0ef08378f094ddeac4", "sha256": "769dd2bc25f1cb93ac5494e7edc89d7a85abc4dd38a8673c64d3f1e5d12512f9" }, "downloads": -1, "filename": "spice_api-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d977efe61c6f6d0ef08378f094ddeac4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22256, "upload_time": "2016-07-20T22:12:18", "url": "https://files.pythonhosted.org/packages/61/ac/4c161f8e3c247851fca96a7651855fdaa03c507d7c7a79b0afd2b9768a8e/spice_api-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6d7b60dd6acdb2fde911f192a6acf34", "sha256": "47c86925f885ad12f5250a4e5c50421b9195177fba2e6a3c55c15e7bda5fb7c6" }, "downloads": -1, "filename": "spice_api-1.0.2.tar.gz", "has_sig": false, "md5_digest": "b6d7b60dd6acdb2fde911f192a6acf34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14150, "upload_time": "2016-07-20T22:12:16", "url": "https://files.pythonhosted.org/packages/2e/28/d4d8670db115fae857d169bd4bdf2bdcf3d30abf6396bfdee2588f57de4d/spice_api-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "6fc3bc278ba090cc251c86638a1059e7", "sha256": "efe203dcb69957a8cb7934cb2632c7c00aad8438d55910f0c7c440701c5fc76e" }, "downloads": -1, "filename": "spice_api-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6fc3bc278ba090cc251c86638a1059e7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22369, "upload_time": "2016-09-03T22:09:32", "url": "https://files.pythonhosted.org/packages/cd/07/36f18f6e9c6c793a81e4bc2786b59c3afab52f513e9dc9db2252786348e2/spice_api-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "72c575371ae343457c9c95f280b27100", "sha256": "a035dbea4cc630b37ce84c8c1508ee739eff86bb42a038ab4c718e899018c794" }, "downloads": -1, "filename": "spice_api-1.0.3.tar.gz", "has_sig": false, "md5_digest": "72c575371ae343457c9c95f280b27100", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15142, "upload_time": "2016-09-03T22:09:30", "url": "https://files.pythonhosted.org/packages/be/2d/5e95d8f8714ab40f05ab70c2d2586d810797b8b9a73c0bacccc3d177750a/spice_api-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "75debbe5014f9b83eabd34e5e761cc67", "sha256": "881593f301b5b0eee1dc974e62d430fa87788360c288942d1adee24c0a1a4582" }, "downloads": -1, "filename": "spice_api-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "75debbe5014f9b83eabd34e5e761cc67", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22486, "upload_time": "2016-10-01T23:37:15", "url": "https://files.pythonhosted.org/packages/21/12/56fe215b35084ba9b4fe249a90927a62a08cb90138dd268648d8ea7aec5a/spice_api-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee70b5d625259357d3b31c48a8e3e58e", "sha256": "8053ba19860fa753f1049fcdc12cc08c1187c2f24c8cb562a5f1b9a056476adf" }, "downloads": -1, "filename": "spice_api-1.0.4.tar.gz", "has_sig": false, "md5_digest": "ee70b5d625259357d3b31c48a8e3e58e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15252, "upload_time": "2016-10-01T23:37:13", "url": "https://files.pythonhosted.org/packages/88/dc/8a4b44e970ad766520ec2742ce7be7ab619a22f584f1a36a8288ad747a69/spice_api-1.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "75debbe5014f9b83eabd34e5e761cc67", "sha256": "881593f301b5b0eee1dc974e62d430fa87788360c288942d1adee24c0a1a4582" }, "downloads": -1, "filename": "spice_api-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "75debbe5014f9b83eabd34e5e761cc67", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 22486, "upload_time": "2016-10-01T23:37:15", "url": "https://files.pythonhosted.org/packages/21/12/56fe215b35084ba9b4fe249a90927a62a08cb90138dd268648d8ea7aec5a/spice_api-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee70b5d625259357d3b31c48a8e3e58e", "sha256": "8053ba19860fa753f1049fcdc12cc08c1187c2f24c8cb562a5f1b9a056476adf" }, "downloads": -1, "filename": "spice_api-1.0.4.tar.gz", "has_sig": false, "md5_digest": "ee70b5d625259357d3b31c48a8e3e58e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15252, "upload_time": "2016-10-01T23:37:13", "url": "https://files.pythonhosted.org/packages/88/dc/8a4b44e970ad766520ec2742ce7be7ab619a22f584f1a36a8288ad747a69/spice_api-1.0.4.tar.gz" } ] }