pywmapi


Namepywmapi JSON
Version 1.2.0 PyPI version JSON
download
home_page
SummaryAPI for warframe market.
upload_time2023-10-16 08:29:19
maintainer
docs_urlNone
author
requires_python>=3.7
licenseMIT License Copyright (c) 2022 AyajiLin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords warframe warframe market
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pywmapi

[![github action packaging test badge](https://img.shields.io/github/actions/workflow/status/leonardodalinky/pywmapi/python-package-test-main.yml?branch=main)](https://github.com/leonardodalinky/pywmapi/tree/main)
[![pypi package version badge](https://img.shields.io/pypi/v/pywmapi)](https://pypi.org/project/pywmapi/)
![python version badge](https://img.shields.io/badge/python-%3E%3D3.7-blue)
[![license badge](https://img.shields.io/github/license/leonardodalinky/pywmapi)](https://github.com/leonardodalinky/pywmapi/blob/main/LICENSE)
[![star badge](https://img.shields.io/github/stars/leonardodalinky/pywmapi?style=social)](https://github.com/leonardodalinky/pywmapi)


**PY**thon **W**arframe **M**arket **API**(pywmapi)

πŸ”₯ API for warframe market, implemented in Python.

> *"Thank you tinsuit, a fine trade. Transaction complete, haha!" -- Maroo*

For now, the implemented function is listed below:

* auth
  * βœ… sign in
  * πŸ†– register
  * πŸ†– restore password
* profile
  * βœ… get current user's profile
  * πŸ”² manage current user profile
  * βœ… get a user's profile
  * πŸ”² get all of a user's achievements
  * πŸ”² get all of a user's reviews
  * βœ… set current user's online/offline status
* items
  * βœ… list all tradable items
  * βœ… get info about an item
* statistics
  * βœ… get statistics of an item
  * πŸ”² get global market statistics
* orders
  * βœ… get orders of a single item
  * πŸ”² get orders for the last 4 hours
  * βœ… update a single order on the current profile
  * βœ… delete a single order on the current profile
  * βœ… add a new order for the current profile
  * πŸ”² get user's sale statistics(closed orders)
  * βœ… get all of a user's orders
* liches
  * βœ… list all lich weapons
  * βœ… list all lich ephemeras
  * βœ… list all lich quirks
* rivens
  * βœ… list all riven items
  * βœ… get a list of riven attributes
* misc
  * πŸ”² get a list of all known game locations
  * πŸ”² get a list of all known npcs
  * πŸ”² get a list of all known missions
* auctions
  * βœ… create auction ⚠️
  * πŸ”² get a list of riven auctions by given search params
  * πŸ”² get a list of lich auctions by given search params
* auction entry️
  * πŸ”² get info about auction by auction id
  * πŸ”² get auction bids by auction id

Symbols:
* βœ…: implemented
* πŸ†–: unavailable due to some intractable problem
* πŸ”²: not implemented yet
* ⚠️: *experimental* and unstable

There are more APIs that are not recorded in the official documentation. Once all the above APIs are done, we would get on these undocumented APIs ASAP.

**According to the official API documentation, there's a limit on the API that could only be called 3 times per sec. Otherwise, the request may be blocked by the cloudflare.**

## Installation

```
pip install pywmapi
```

The version of Python **MUST >= 3.7** since `dataclasses` is used.

## Guidance

package of pywmapi is structured as:
```
.
β”œβ”€β”€ auth
β”œβ”€β”€ common
β”œβ”€β”€ exceptions
β”œβ”€β”€ experimental
β”‚   └── auctions
β”œβ”€β”€ items
β”œβ”€β”€ lang
β”œβ”€β”€ liches
β”œβ”€β”€ orders
β”œβ”€β”€ profile
β”œβ”€β”€ rivens
β”œβ”€β”€ statistics
└── utils.py
```

* `auth`: authentication such as signin
* `experimental`: experimental functionalities
  * `auctions`: auctions related
* `items`: item related
* `liches` lich related
* `orders`: orders manipulation
* `profile`: user profile manipulation
* `rivens`: riven related
* `statistics`: statistics of items

πŸ’ͺ *More functionalities is coming!*

πŸ—οΈ *Better documentation is under construction!*

The param `url_name` of some functions is regarded as the unique name for each item. For instance, if I search for the item *Chroma Prime Systems* on warframe market, the url for this page become *https://warframe.market/items/chroma_prime_systems*. And the last part of this url string is exactly the `url_name` for this item, i.e. `chroma_prime_systems`!

Another way to get `url_name` for an item is through the `items.list_items()` function.

### Examples

First, we import the package as:
```python
import pywmapi as wm
```

To list all of the tradable items:
```python
wm.items.list_items()
```

To get the info for any item with its `url_name`:
```python
wm.items.get_item("chroma_prime_systems")
```

To get the orders of a specific item:
```python
wm.items.get_orders("chroma_prime_systems")
```

To create order:
```python
sess = wm.auth.signin("your_account", "your_password")
# new selling order item of "Flame Gland" for 1000 platinum, quantity 1, rank 0 and invisible
new_item = wm.orders.OrderNewItem(
    item_id="5be5f5a23ffcc7038857f119",
    order_type=wm.common.OrderType.sell,
    platinum=1000,
    quantity=1,
    rank=0,
    visible=False,
)
new_order = wm.orders.add_order(sess, new_item)
```

To get the statistics of historical prices of any item:
```python
wm.statistics.get_statistic("chroma_prime_systems")
```

Signin & get current orders:
```python
sess = wm.auth.signin("your_account", "your_password")
sell_orders, buy_orders = wm.orders.get_current_orders(sess)
```

To get all rivens templates:
```python
wm.rivens.list_items()
```

Some of these function may have various optional params, such as `platform`, `lang`, `include`, etc.

More APIs and docs could be found in corresponding packages and docstrings.

## Reference

[Warframe market official API documentation](https://warframe.market/api_docs)

[WFCD/market-api-spec](https://github.com/WFCD/market-api-spec)

[Public WM API](https://docs.google.com/document/d/1121cjBNN4BeZdMBGil6Qbuqse-sWpEXPpitQH5fb_Fo)

## Changelog

See [CHANGELOG.md](CHANGELOG.md).

## Contributing
Check out [CONTRIBUTE.md](CONTRIBUTE.md) for more information.

Feel free to make any issue or PR! 😊

*Or contact me in game!*

## Donating

Any sort of donation in game would be appreciated.

Contact me in game:
```
/w AyajiLin Hi! ${Your words here}.
```

🀣 *Relics or 5 platinums would be enough.*

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pywmapi",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "warframe,warframe market",
    "author": "",
    "author_email": "leonardodalink <linkyy2000313@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/81/03/7a7966067530878ffed5847d7f8758f96b8c52fbc4bc6fbb55d3c0ca13c2/pywmapi-1.2.0.tar.gz",
    "platform": null,
    "description": "# pywmapi\n\n[![github action packaging test badge](https://img.shields.io/github/actions/workflow/status/leonardodalinky/pywmapi/python-package-test-main.yml?branch=main)](https://github.com/leonardodalinky/pywmapi/tree/main)\n[![pypi package version badge](https://img.shields.io/pypi/v/pywmapi)](https://pypi.org/project/pywmapi/)\n![python version badge](https://img.shields.io/badge/python-%3E%3D3.7-blue)\n[![license badge](https://img.shields.io/github/license/leonardodalinky/pywmapi)](https://github.com/leonardodalinky/pywmapi/blob/main/LICENSE)\n[![star badge](https://img.shields.io/github/stars/leonardodalinky/pywmapi?style=social)](https://github.com/leonardodalinky/pywmapi)\n\n\n**PY**thon **W**arframe **M**arket **API**(pywmapi)\n\n\ud83d\udd25 API for warframe market, implemented in Python.\n\n> *\"Thank you tinsuit, a fine trade. Transaction complete, haha!\" -- Maroo*\n\nFor now, the implemented function is listed below:\n\n* auth\n  * \u2705 sign in\n  * \ud83c\udd96 register\n  * \ud83c\udd96 restore password\n* profile\n  * \u2705 get current user's profile\n  * \ud83d\udd32 manage current user profile\n  * \u2705 get a user's profile\n  * \ud83d\udd32 get all of a user's achievements\n  * \ud83d\udd32 get all of a user's reviews\n  * \u2705 set current user's online/offline status\n* items\n  * \u2705 list all tradable items\n  * \u2705 get info about an item\n* statistics\n  * \u2705 get statistics of an item\n  * \ud83d\udd32 get global market statistics\n* orders\n  * \u2705 get orders of a single item\n  * \ud83d\udd32 get orders for the last 4 hours\n  * \u2705 update a single order on the current profile\n  * \u2705 delete a single order on the current profile\n  * \u2705 add a new order for the current profile\n  * \ud83d\udd32 get user's sale statistics(closed orders)\n  * \u2705 get all of a user's orders\n* liches\n  * \u2705 list all lich weapons\n  * \u2705 list all lich ephemeras\n  * \u2705 list all lich quirks\n* rivens\n  * \u2705 list all riven items\n  * \u2705 get a list of riven attributes\n* misc\n  * \ud83d\udd32 get a list of all known game locations\n  * \ud83d\udd32 get a list of all known npcs\n  * \ud83d\udd32 get a list of all known missions\n* auctions\n  * \u2705 create auction \u26a0\ufe0f\n  * \ud83d\udd32 get a list of riven auctions by given search params\n  * \ud83d\udd32 get a list of lich auctions by given search params\n* auction entry\ufe0f\n  * \ud83d\udd32 get info about auction by auction id\n  * \ud83d\udd32 get auction bids by auction id\n\nSymbols:\n* \u2705: implemented\n* \ud83c\udd96: unavailable due to some intractable problem\n* \ud83d\udd32: not implemented yet\n* \u26a0\ufe0f: *experimental* and unstable\n\nThere are more APIs that are not recorded in the official documentation. Once all the above APIs are done, we would get on these undocumented APIs ASAP.\n\n**According to the official API documentation, there's a limit on the API that could only be called 3 times per sec. Otherwise, the request may be blocked by the cloudflare.**\n\n## Installation\n\n```\npip install pywmapi\n```\n\nThe version of Python **MUST >= 3.7** since `dataclasses` is used.\n\n## Guidance\n\npackage of pywmapi is structured as:\n```\n.\n\u251c\u2500\u2500 auth\n\u251c\u2500\u2500 common\n\u251c\u2500\u2500 exceptions\n\u251c\u2500\u2500 experimental\n\u2502   \u2514\u2500\u2500 auctions\n\u251c\u2500\u2500 items\n\u251c\u2500\u2500 lang\n\u251c\u2500\u2500 liches\n\u251c\u2500\u2500 orders\n\u251c\u2500\u2500 profile\n\u251c\u2500\u2500 rivens\n\u251c\u2500\u2500 statistics\n\u2514\u2500\u2500 utils.py\n```\n\n* `auth`: authentication such as signin\n* `experimental`: experimental functionalities\n  * `auctions`: auctions related\n* `items`: item related\n* `liches` lich related\n* `orders`: orders manipulation\n* `profile`: user profile manipulation\n* `rivens`: riven related\n* `statistics`: statistics of items\n\n\ud83d\udcaa *More functionalities is coming!*\n\n\ud83c\udfd7\ufe0f *Better documentation is under construction!*\n\nThe param `url_name` of some functions is regarded as the unique name for each item. For instance, if I search for the item *Chroma Prime Systems* on warframe market, the url for this page become *https://warframe.market/items/chroma_prime_systems*. And the last part of this url string is exactly the `url_name` for this item, i.e. `chroma_prime_systems`!\n\nAnother way to get `url_name` for an item is through the `items.list_items()` function.\n\n### Examples\n\nFirst, we import the package as:\n```python\nimport pywmapi as wm\n```\n\nTo list all of the tradable items:\n```python\nwm.items.list_items()\n```\n\nTo get the info for any item with its `url_name`:\n```python\nwm.items.get_item(\"chroma_prime_systems\")\n```\n\nTo get the orders of a specific item:\n```python\nwm.items.get_orders(\"chroma_prime_systems\")\n```\n\nTo create order:\n```python\nsess = wm.auth.signin(\"your_account\", \"your_password\")\n# new selling order item of \"Flame Gland\" for 1000 platinum, quantity 1, rank 0 and invisible\nnew_item = wm.orders.OrderNewItem(\n    item_id=\"5be5f5a23ffcc7038857f119\",\n    order_type=wm.common.OrderType.sell,\n    platinum=1000,\n    quantity=1,\n    rank=0,\n    visible=False,\n)\nnew_order = wm.orders.add_order(sess, new_item)\n```\n\nTo get the statistics of historical prices of any item:\n```python\nwm.statistics.get_statistic(\"chroma_prime_systems\")\n```\n\nSignin & get current orders:\n```python\nsess = wm.auth.signin(\"your_account\", \"your_password\")\nsell_orders, buy_orders = wm.orders.get_current_orders(sess)\n```\n\nTo get all rivens templates:\n```python\nwm.rivens.list_items()\n```\n\nSome of these function may have various optional params, such as `platform`, `lang`, `include`, etc.\n\nMore APIs and docs could be found in corresponding packages and docstrings.\n\n## Reference\n\n[Warframe market official API documentation](https://warframe.market/api_docs)\n\n[WFCD/market-api-spec](https://github.com/WFCD/market-api-spec)\n\n[Public WM API](https://docs.google.com/document/d/1121cjBNN4BeZdMBGil6Qbuqse-sWpEXPpitQH5fb_Fo)\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md).\n\n## Contributing\nCheck out [CONTRIBUTE.md](CONTRIBUTE.md) for more information.\n\nFeel free to make any issue or PR! \ud83d\ude0a\n\n*Or contact me in game!*\n\n## Donating\n\nAny sort of donation in game would be appreciated.\n\nContact me in game:\n```\n/w AyajiLin Hi! ${Your words here}.\n```\n\n\ud83e\udd23 *Relics or 5 platinums would be enough.*\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2022 AyajiLin  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "API for warframe market.",
    "version": "1.2.0",
    "project_urls": {
        "Repository": "https://github.com/leonardodalinky/pywmapi",
        "Tracker": "https://github.com/leonardodalinky/pywmapi/issues"
    },
    "split_keywords": [
        "warframe",
        "warframe market"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "032131aa0147bf6ac307a8dc7867386939929bcf58837db4353146841b6ed849",
                "md5": "2199a6eb825499b1ab3edc9176b65d6d",
                "sha256": "a6eb2892e3513791df7147addfad8afe6bfdd954bac3913b16892b968eb450fb"
            },
            "downloads": -1,
            "filename": "pywmapi-1.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2199a6eb825499b1ab3edc9176b65d6d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 23926,
            "upload_time": "2023-10-16T08:29:17",
            "upload_time_iso_8601": "2023-10-16T08:29:17.599624Z",
            "url": "https://files.pythonhosted.org/packages/03/21/31aa0147bf6ac307a8dc7867386939929bcf58837db4353146841b6ed849/pywmapi-1.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "81037a7966067530878ffed5847d7f8758f96b8c52fbc4bc6fbb55d3c0ca13c2",
                "md5": "6c8a4a819ec447053d948213939e84fd",
                "sha256": "924fc2fa5979d5cfd174d228683f92709b36a85046438545eb8e610be0b154b8"
            },
            "downloads": -1,
            "filename": "pywmapi-1.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6c8a4a819ec447053d948213939e84fd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 18023,
            "upload_time": "2023-10-16T08:29:19",
            "upload_time_iso_8601": "2023-10-16T08:29:19.358097Z",
            "url": "https://files.pythonhosted.org/packages/81/03/7a7966067530878ffed5847d7f8758f96b8c52fbc4bc6fbb55d3c0ca13c2/pywmapi-1.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-16 08:29:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "leonardodalinky",
    "github_project": "pywmapi",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "pywmapi"
}
        
Elapsed time: 0.12986s