{ "info": { "author": "Kartik Talwar", "author_email": "hi@kartikt.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Duolingo\n\n\nUnofficial Duolingo API Written in Python. This is mostly a collection of functions that give you common data\ndirectly from the api resource dictionary. More methods to come.\n\n\n#### TODO\n\n- Integrate authenticated data\n- Add user activity stream\n\n\n### Usage\n\n\n```py\nimport duolingo\n\nlingo = duolingo.Duolingo('kartik')\n```\n\n### Methods\n\n\n#### Summary\n\n- lingo **.get_user_info()**\n- lingo **.get_user_settings()**\n- lingo **.get_languages()**\n- lingo **.get_friends()**\n- lingo **.get_language_details(language_name)**\n- lingo **.get_language_progress(language_abbr)**\n- lingo **.get_known_topics(language_abbr)**\n- lingo **.get_known_words(language_abbr)**\n- lingo **.get_learned_skills(lang)**\n\n\n#### get_user_info()\n\n```py\nimport duolingo\n\nlingo = duolingo.Duolingo('kartik')\n# or\nlingo = duolingo.Duolingo('kartik', 'my optional password')\n```\n\n- if you want to get information on your learning progress, then you must be logged in\n\n\n```\n{'admin': False,\n 'avatar': u'https://s3.amazonaws.com/duolingo-images/avatars/22524/PALdVtqnHa',\n 'bio': u'',\n 'cohort': 17,\n 'contribution_points': 0,\n 'created': u'1 year ago',\n 'fullname': u'Kartik',\n 'gplus_id': None,\n 'id': 22524,\n 'invites_left': 3,\n 'learning_language_string': u'French',\n 'location': u'Toronto',\n 'num_followers': 3,\n 'num_following': 4,\n 'twitter_id': None,\n 'username': u'kartik',\n 'ui_language': u'en'}\n```\n\n#### get_user_settings()\n\n```py\nlingo = duolingo.Duolingo('kartik')\nprint lingo.get_user_settings()\n```\n\n```\n{'deactivated': False,\n 'is_follower_by': False,\n 'is_following': False,\n 'notify_comment': True}\n```\n\n#### get_languages()\n\n```py\nlingo = duolingo.Duolingo('kartik')\nprint lingo.get_languages()\n```\n\n```\n[u'French', u'German', u'Spanish']\n```\n\n#### get_friends()\n\n```py\nlingo = duolingo.Duolingo('kartik')\nprint lingo.get_friends()\n```\n\n```\n[{'languages': [u'French', u'Spanish', u'German', u'Italian'],\n 'points': 4791,\n 'username': u'apmechev'},\n {'languages': [u'French', u'Spanish'],\n 'points': 1810,\n 'username': u'jlfwong'},\n {'languages': [u'French', u'German', u'Spanish'],\n 'points': 754,\n 'username': u'kartik'},\n {'languages': [u'Spanish', u'French'], 'points': 718, 'username': u'vhisko'},\n {'languages': [u'French', u'German'],\n 'points': 579,\n 'username': u'warrench04'}]\n```\n\n#### get_language_details(language_name)\n\n```py\nlingo = duolingo.Duolingo('kartik')\nprint lingo.get_language_details('French')\n```\n\n```\n{u'current_learning': True,\n u'language': u'fr',\n u'language_string': u'French',\n u'learning': True,\n u'level': 6,\n u'points': 604,\n u'streak': 0}\n```\n\n#### get_language_progress(language_abbr)\n\n```py\nlingo = duolingo.Duolingo('kartik')\nprint lingo.get_language_progress()\n```\n\n```\n{'language': u'fr',\n 'language_string': u'French',\n 'level_left': 146,\n 'level_percent': 51,\n 'level_points': 300,\n 'level_progress': 154,\n 'next_level': 7,\n 'num_skills_learned': 15,\n 'points': 604,\n 'points_rank': 3,\n 'streak': 0}\n```\n\n#### get_known_words(language_abbr)\n\n```py\nlingo = duolingo.Duolingo('kartik')\nprint lingo.get_known_words()\n```\n\n```\n[u'absolument',\nu'acier',\nu'actuellement',\nu'affirme',\nu'agissant',\nu'agit',\nu'ai',\nu'aient',\nu'ailes',\nu'aime',\nu'aimerais']\n```\n\n#### get_known_topics(language_abbr)\n\n```py\nlingo = duolingo.Duolingo('kartik')\nprint lingo.get_known_topics()\n```\n\n```\n[u'Colors',\n u'Basics 2',\n u'Animals',\n u'Possessives',\n u'Clothing',\n u'Food',\n u'Questions',\n u'Basics',\n u'Verbs: Present 1',\n u'Plurals',\n u'Common Phrases',\n u'Adjectives 1']\n```\n\n#### get_learned_skills(language_abbr)\n\n```py\nlingo = duolingo.Duolingo('kartik')\nprint lingo.get_learned_skills('fr')\n```\n\n```\n[u'Basics',\n u'Basics 2',\n u'Colors',\n u'Animals',\n u'Possessives',\n u'Verbs: Present 1',\n u'Clothing',\n u'Food',\n u'Questions',\n u'Plurals',\n u'Common Phrases',\n u'Adjectives 1']\n```", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/KartikTalwar/duolingo", "keywords": "duolingo,duolingo api,language", "license": "Apache", "maintainer": null, "maintainer_email": null, "name": "duolingo-api", "package_url": "https://pypi.org/project/duolingo-api/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/duolingo-api/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/KartikTalwar/duolingo" }, "release_url": "https://pypi.org/project/duolingo-api/0.3/", "requires_dist": null, "requires_python": null, "summary": "Unofficial API for duolingo.com", "version": "0.3" }, "last_serial": 1828663, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "e762c9e9a4c59923bc53b351c69299af", "sha256": "8b9cc53594fed8ff50f5f6e6f539c64056cd9c0c421798212a97ae3bceb1c8e0" }, "downloads": -1, "filename": "duolingo-api-0.1.tar.gz", "has_sig": false, "md5_digest": "e762c9e9a4c59923bc53b351c69299af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4821, "upload_time": "2015-05-11T01:02:48", "url": "https://files.pythonhosted.org/packages/1b/73/26dd0c22722f186c68d1ecea216a4ca2bf3f8ec36c1fa20e1d484035ba4f/duolingo-api-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "4ac22e3870651d948cf97805305bb349", "sha256": "a543a99f71be82c6b0da6aa3a38c99fc0ac793113c63d1ce038a8932e33c68f2" }, "downloads": -1, "filename": "duolingo-api-0.2.zip", "has_sig": false, "md5_digest": "4ac22e3870651d948cf97805305bb349", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5781, "upload_time": "2014-10-25T02:35:42", "url": "https://files.pythonhosted.org/packages/f5/dc/14efdfb90106470527ec6dec40046467a042478634363cc8787951f5aec1/duolingo-api-0.2.zip" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "c26cf121c027e25af3673b8f5a2ca61a", "sha256": "6290f502aa9207707d475d2d56f5cb50f8e127591f28d1fe402bf92bc0bb15c6" }, "downloads": -1, "filename": "duolingo-api-0.3.tar.gz", "has_sig": false, "md5_digest": "c26cf121c027e25af3673b8f5a2ca61a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5989, "upload_time": "2015-11-22T23:41:38", "url": "https://files.pythonhosted.org/packages/d7/6c/3422e7a171aa32120b0872e8ecca52ef03d605d113d62e23fcaa12b3157a/duolingo-api-0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c26cf121c027e25af3673b8f5a2ca61a", "sha256": "6290f502aa9207707d475d2d56f5cb50f8e127591f28d1fe402bf92bc0bb15c6" }, "downloads": -1, "filename": "duolingo-api-0.3.tar.gz", "has_sig": false, "md5_digest": "c26cf121c027e25af3673b8f5a2ca61a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5989, "upload_time": "2015-11-22T23:41:38", "url": "https://files.pythonhosted.org/packages/d7/6c/3422e7a171aa32120b0872e8ecca52ef03d605d113d62e23fcaa12b3157a/duolingo-api-0.3.tar.gz" } ] }