Metadata-Version: 2.4
Name: osrs-hiscores-client
Version: 1.0.0
Summary: Python client for Old School RuneScape Hiscores API.
Author: Valtteri Remes
License-Expression: MIT
Project-URL: Homepage, https://github.com/vremes/osrs-hiscores
Project-URL: Documentation, https://github.com/vremes/osrs-hiscores
Project-URL: Repository, https://github.com/vremes/osrs-hiscores.git
Project-URL: Issues, https://github.com/vremes/osrs-hiscores/issues
Keywords: osrs,hiscores,runescape,api,client
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.31.0
Dynamic: license-file

# OSRS Hiscores

Simple OSRS Hiscores client for Python.

---

## Installation

```bash
pip install osrs-hiscores-client
```


## Usage

```py
from osrs_hiscores.client import HiscoresClient

rsn = "Lynx Titan"

client = HiscoresClient()

stats = client.get_player_stats(rsn)

print(f"Player {stats.rsn} has {stats.skills.agility.name} (ID: {stats.skills.agility.id}) level of {stats.skills.agility.level}, {stats.skills.agility.experience} experience and rank {stats.skills.agility.rank}.")
# Player Lynx Titan has Agility (ID: 17) level of 99, 200000000 experience and rank 24.

# You can also loop all skills if you want to!
for skill in stats.skills:
    print(f"Player {stats.rsn} has {skill.name} (ID: {skill.id}) level of {skill.level}, {skill.experience} experience and rank {skill.rank}")

# Player Lynx Titan has Overall (ID: 0) level of 2278, 4600000000 experience and rank 83146
# Player Lynx Titan has Attack (ID: 1) level of 99, 200000000 experience and rank 15
# Player Lynx Titan has Defence (ID: 2) level of 99, 200000000 experience and rank 28
# Player Lynx Titan has Strength (ID: 3) level of 99, 200000000 experience and rank 18
# Player Lynx Titan has Hitpoints (ID: 4) level of 99, 200000000 experience and rank 7
# ...

# Each object can be turn into dictionary if need.
print(stats.skills.cooking.to_dict())
# {'name': 'Cooking', 'rank': 150, 'level': 99, 'experience': 200000000}

# You can also access the activity statistics.
print(f"Player {stats.rsn} has {stats.activities.barrows_chests.name} (ID: {stats.activities.barrows_chests.id}) kill count of {stats.activities.barrows_chests.score} and rank {stats.activities.barrows_chests.rank}.")
# Player Lynx Titan has Barrows (ID: 25) kill count of -1 and rank -1.

for activity in stats.activities:
    print(f"Player {stats.rsn} has {activity.name} (ID: {activity.id}) score of {activity.score} and rank {activity.rank}")

# Player Lynx Titan has Barrows (ID: 25) score of -1 and rank -1.
# Player Lynx Titan has Grid Points (ID: 0) score of -1 and rank -1
# Player Lynx Titan has League Points (ID: 1) score of -1 and rank -1
# Player Lynx Titan has Deadman Points (ID: 2) score of -1 and rank -1
# ...
```
