{ "info": { "author": "Ramon Saraiva", "author_email": "ramonsaraiva@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Utilities" ], "description": "# pubg-python\n\n![Python 3.6](https://img.shields.io/badge/python-3.6-blue.svg)\n![CircleCI](https://img.shields.io/circleci/project/github/ramonsaraiva/pubg-python/master.svg)\n\nA python wrapper for the PUBG Developer API\n\n[PUBG Developer API Official Documentation](https://documentation.playbattlegrounds.com/en/introduction.html)\n\n## Installation\n\nTo install the wrapper, simply use `pip`\n\n```\npip install pubg-python\n```\n\nor `pipenv`\n\n\n```\npipenv install pubg-python\n```\n\n## Usage\n\n### Specifying a shard\n\nThe PUBG API shards data by platform and region, and therefore requires a shard to be specified in the URL for most requests.\n\n```python\nfrom pubg_python import PUBG, Shard\n\napi = PUBG('', Shard.PC_NA)\n```\n\nA list of shards can be found [here](https://documentation.playbattlegrounds.com/en/making-requests.html#regions) and the wrapper constants [here](https://github.com/ramonsaraiva/pubg-python/blob/master/pubg_python/domain/base.py)\n\n\n## Samples\n\n* Samples\n * [Official docs](https://documentation.playbattlegrounds.com/en/samples.html)\n * [Data structure](https://github.com/ramonsaraiva/pubg-python/blob/master/pubg_python/domain/base.py)\n\n### A sample of matches can be retrieved as a starting point\n\n```python\nsample = api.samples().get()\nfor match in sample.matches:\n print(match.id)\n```\n\n### Samples can also be filtered by a creation date\n\n```python\nsample = api.samples().filter(created_at_start='2018-01-01T00:00:00Z').get()\nfor match in sample.matches:\n print(match.id)\n```\n\n\n## Players\n\n* Players\n * [Official docs](https://documentation.playbattlegrounds.com/en/players.html)\n * [Data structure](https://github.com/ramonsaraiva/pubg-python/blob/master/pubg_python/domain/base.py)\n\n### Retrieving a single player\n\n```python\nplayer = api.players().get('account.3654e255b77b409e87b10dcb086ab00d')\n\nfor match in player.matches:\n match_data = api.matches().get(match.id)\n```\n\n### Retrieving a list of players filtering by names\n\n```python\nplayers = api.players().filter(player_names=['Name1', 'Name2'])\n\nfor player in players:\n player_id = player.id\n```\n\n### Retrieving a list of players filtering by ids\n\n```python\nplayers = api.players().filter(player_ids=['account.3654e255b77b409e87b10dcb086ab00d'])\n\nfor player in players:\n player_name = player.name\n```\n\n## Matches\n\n* Matches\n * [Official docs](https://documentation.playbattlegrounds.com/en/matches.html)\n * [Data structure](https://github.com/ramonsaraiva/pubg-python/blob/master/pubg_python/domain/base.py)\n\n### Retrieving a single match\n\n```python\nmatch = api.matches().get('276f5bcb-a831-4e8c-a610-d2073692069e')\n```\n\n### Retrieving a list of matches filtering by ids\n\n**Still unavailable in the API**\n\n```python\nmatch_ids = [\n '276f5bcb-a831-4e8c-a610-d2073692069e',\n 'fasf9082-21de-dkle-13ke-qlamd13nab3a',\n]\nmatches = api.matches().filter(match_ids=match_ids)\nfor match in matches:\n print(match)\n```\n\n## Telemetry\n\n* Telemetry events\n * [Official docs](https://documentation.playbattlegrounds.com/en/telemetry-events.html)\n * [Data structure](https://github.com/ramonsaraiva/pubg-python/blob/master/pubg_python/domain/telemetry/events.py)\n* Event objects\n * [Official docs](https://documentation.playbattlegrounds.com/en/telemetry-objects.html)\n * [Data structure](https://github.com/ramonsaraiva/pubg-python/blob/master/pubg_python/domain/telemetry/objects.py)\n\n### Processing a match Telemetry data\n\n```python\nmatch = api.matches().get('276f5bcb-a831-4e8c-a610-d2073692069e')\nasset = match.assets[0]\ntelemetry = api.telemetry(asset.url)\n\nprint(len(telemetry.events))\n>> 16871\n```\n\n### Filtering specific events in a telemetry object\n\nSometimes you're interested in a set of very specific events, so there is a helper function to filter those for you:\n\n```python\nmatch = api.matches().get('276f5bcb-a831-4e8c-a610-d2073692069e')\nasset = match.assets[0]\ntelemetry = api.telemetry(asset.url)\n\nplayer_kill_events = telemetry.events_from_type('LogPlayerKill')\nplayer_position_events = telemetry.events_from_type('LogPlayerPosition')\n```\n\n### Loading a local Telemetry file\n\nIf you want to load a previously downloaded telemetry file, there is a helper\nmethod to create a Telemetry object from it:\n\n```python\nfrom pubg_python import Telemetry\n\ntelemetry = Telemetry.from_json('telemetry.json', shard='pc')\n```\n\n`shard` defaults to `pc` but you need to specify if you're loading a `xbox` telemetry file.\n\n## Matches\n\n* Matches\n * [Official docs](https://documentation.playbattlegrounds.com/en/tournaments-endpoint.html)\n * [Data structure](https://github.com/ramonsaraiva/pubg-python/blob/master/pubg_python/domain/base.py)\n\n\n### Retrieving a single tournament\n\n```python\ntournament = api.tournaments().get('na-ppc')\n```\n\n### Retrieving a list of tournaments\n\n```python\ntournaments = api.tournaments()\nfor tournament in tournaments:\n print(tournament)\n```\n\n## Playing around with data\n\nAn example of how you can manipulate the data:\nThe domain is all specified [here](https://github.com/ramonsaraiva/pubg-python/blob/master/pubg_python/domain/base.py)\n\n```python\nplayers = api.players().filter(player_names=['epickitten'])\nplayer = players[0]\n\nplayer.matches\n>> [, , ..]\n\nmatch = api.matches().get(player.matches[0].id)\n\nmatch.game_mode\n>> 'solo'\n\nmatch.duration\n>> 1899\n\nmatch.rosters\n>> [, , ..]\n\nroster = match.rosters[0]\n\nroster.participants\n>> []\n\nparticipant = roster.participans[0]\n\nparticipant.name\n>> 'urdaddyYO'\n\nparticipant.damage_dealt\n>> 291.08\n\nparticipant.kills\n>> 2\n\nparticipant.ride_distance\n>> 3204.53467\n\nparticipant.walk_distance\n>> 2262.81714\n\nparticipant.time_survived\n>> 1367\n\nparticipant.player_id\n>> account.edb9910f1e9c4f3b9addb87d9329b57c\n\nplayer = api.players().get(participant.player_id)\n\nplayer\n>> account.edb9910f1e9c4f3b9addb87d9329b57c\n\nplayer.matches\n>> [, , ..]\n```\n\n### Limits and Offsets\n\n**Currently disabled from the official API**\n\nOffsetting 5 matches and limitting by 10\n\n```python\nmatches = api.matches().limit(10).offset(5)\n```\n\n### Sorting\n\n**Currently disabled from the official API**\n\n`sort` defaults to ascending, you can use `ascending=False` for a descending sort\n\n```python\nmatches = api.matches().limit(10).sort('createdAt')\nmatches = api.matches().limit(10).sort('createdAt', ascending=False)\n```\n\n### Filtering\n\nSome endpoints allow you to apply filters, for example, filtering players by names:\n\n```python\nplayers = api.players().filter(player_names=['Name1', 'Name2'])\n```\n\nOr filtering players by ids:\n\n```python\nplayers = api.players().filter(player_ids=['account.3654e255b77b409e87b10dcb086ab00d'])\n```\n\n### Pagination\n\nUse `next()` for the next page and `prev()` for the previous one:\n\n```python\nmatches = api.matches()\nnext_matches = matches.next()\nprevious_matches = matches.prev()\n```\n\n## Changelog\n\n[CHANGELOG.md](https://github.com/ramonsaraiva/pubg-python/blob/master/CHANGELOG.md)\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/ramonsaraiva/pubg-python", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "back-pubg-python", "package_url": "https://pypi.org/project/back-pubg-python/", "platform": "", "project_url": "https://pypi.org/project/back-pubg-python/", "project_urls": { "Homepage": "https://github.com/ramonsaraiva/pubg-python" }, "release_url": "https://pypi.org/project/back-pubg-python/0.5.2/", "requires_dist": [ "requests (>=2.18.4)", "furl (>=1.0.1)", "enum34 (>=1.1.6) ; python_version<='3.4'" ], "requires_python": "", "summary": "A python wrapper for the PUBG developer API", "version": "0.5.2" }, "last_serial": 4780321, "releases": { "0.5.0": [ { "comment_text": "", "digests": { "md5": "616b20d649881130b103ce931bc914e2", "sha256": "4998dca7aa5f25b03fe52c34b67bef50f54d3fa29db32282c48d8cf34bc505c3" }, "downloads": -1, "filename": "back_pubg_python-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "616b20d649881130b103ce931bc914e2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17030, "upload_time": "2019-02-03T04:55:19", "url": "https://files.pythonhosted.org/packages/a2/0b/506a709f1df9d6f7dc6dbd99e0a54b9dc299f250c01cd3ed4fc9381a8452/back_pubg_python-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d8d6016665b6c47912e59548aa10f9a", "sha256": "3b13d1fdef002c340340fda9f154314a9fa1de98efbdf1c043e1cffa080a24ba" }, "downloads": -1, "filename": "back-pubg-python-0.5.0.tar.gz", "has_sig": false, "md5_digest": "0d8d6016665b6c47912e59548aa10f9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12902, "upload_time": "2019-02-03T04:55:21", "url": "https://files.pythonhosted.org/packages/32/38/d7916bf8127049a230de5d50dc9924f68fd60529364a472f57d8b8bcd25f/back-pubg-python-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "4a1e2626d6cdf0de507e7add677af58a", "sha256": "3b1c7cdf770628adfce8d36c6c294a370e5eeb9524104bac8362f09d399135ca" }, "downloads": -1, "filename": "back_pubg_python-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4a1e2626d6cdf0de507e7add677af58a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17067, "upload_time": "2019-02-05T00:54:31", "url": "https://files.pythonhosted.org/packages/ce/0f/b4394aa4e4ef87ef145fe875c6cf760600a8159f23071131ea5d4c8be28f/back_pubg_python-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f02316544200cad07eb76470bc2dcf6", "sha256": "e682d0d1f16c8536e96529d88e243f4321abc93e21dcc20d692a674c885ccc2c" }, "downloads": -1, "filename": "back-pubg-python-0.5.1.tar.gz", "has_sig": false, "md5_digest": "4f02316544200cad07eb76470bc2dcf6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12940, "upload_time": "2019-02-05T00:54:32", "url": "https://files.pythonhosted.org/packages/ad/62/380e36b0d279be1ceb5f61d296169734a180ba1de4cbb257d164f4d3a377/back-pubg-python-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "f564ec52dc006c6b850177a30b20a227", "sha256": "a2f3e3b7d51da267314d546fd9367c74f5ee7cd79e90862fa5ab5e4ab88fdb2e" }, "downloads": -1, "filename": "back_pubg_python-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f564ec52dc006c6b850177a30b20a227", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17062, "upload_time": "2019-02-05T01:28:41", "url": "https://files.pythonhosted.org/packages/30/a1/785745fe91f6cb8ddb7f86f2e07a82238f58250febdde79cbc89b85d0e45/back_pubg_python-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "607e2ad52cbad3c7254b17ffb3a0d6cd", "sha256": "3e3be8c987596b739a7918194f713e09dc8748714ae23de9726645ef6e462775" }, "downloads": -1, "filename": "back-pubg-python-0.5.2.tar.gz", "has_sig": false, "md5_digest": "607e2ad52cbad3c7254b17ffb3a0d6cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12940, "upload_time": "2019-02-05T01:28:42", "url": "https://files.pythonhosted.org/packages/0f/a2/9de12cbecef4591ac5a020b46948de0b69c67b6c1dd4ff9bf53e838d9f14/back-pubg-python-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f564ec52dc006c6b850177a30b20a227", "sha256": "a2f3e3b7d51da267314d546fd9367c74f5ee7cd79e90862fa5ab5e4ab88fdb2e" }, "downloads": -1, "filename": "back_pubg_python-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f564ec52dc006c6b850177a30b20a227", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17062, "upload_time": "2019-02-05T01:28:41", "url": "https://files.pythonhosted.org/packages/30/a1/785745fe91f6cb8ddb7f86f2e07a82238f58250febdde79cbc89b85d0e45/back_pubg_python-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "607e2ad52cbad3c7254b17ffb3a0d6cd", "sha256": "3e3be8c987596b739a7918194f713e09dc8748714ae23de9726645ef6e462775" }, "downloads": -1, "filename": "back-pubg-python-0.5.2.tar.gz", "has_sig": false, "md5_digest": "607e2ad52cbad3c7254b17ffb3a0d6cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12940, "upload_time": "2019-02-05T01:28:42", "url": "https://files.pythonhosted.org/packages/0f/a2/9de12cbecef4591ac5a020b46948de0b69c67b6c1dd4ff9bf53e838d9f14/back-pubg-python-0.5.2.tar.gz" } ] }