Skip to main content

Simple Wrapper for osrs related api's

Project description

The project

The goal is to make a wrapper around the varius runescape related api's. i am thinking of Runelite prices api: https://prices.runescape.wiki/api/v1/osrs/ osrs api: https://secure.runescape.com/m=itemdb_oldschool/api wiki api:

Runelite

prices

Runelite prices api: https://prices.runescape.wiki/api/v1/osrs/ you must set a header, preferably with a discord tag or email

from osrs import Runelite
header = {'user-agent':'extreme4all#6456'}

api = Runelite.runelitePrices(header=header)

to get a mapping of item names, id, low & high alch values etc

print(api.items())

to get latest prices averaging over an interval or from a specific timestamp

intervals = [
    '5m',
    '10m',
    '30m',
    '1h',
    '6h',
    '24h'
]
print(api.prices(interval='24h'))
print(api.prices(interval='24h', timestamp=1628380800))

to get a timeseries of the 300 values averaged over interval by item id or item name

print(api.timeseries(interval='5m', id=2))
print(api.timeseries(interval='5m', name='Cannonball'))

to get the latest prices of items

print(api.latest())

OSRS

The osrs endpoints, these endpoints are heavily rate limited

osrsPrices

from osrs import OSRS

header = {'user-agent':'extreme4all#6456 - testing python package "osrs"'}
api = OSRS.osrsPrices(header=header)

OSRS has only one category, with all the items, here you get each alpha or letter and howmany items are in it

print(api.category())

The items endpoint is paginated and will return 12 items for each page

print(api.items(letter='a', page=0))

You can get the itemDetails for a specific item, based on item_id

print(api.itemDetail(item_id=4151))

You can get the item price as a timeseries based on item_id

print(api.timeseries(item_id=4151))

hiscores

return the hiscore for a player

from osrs import OSRS

header = {'user-agent':'extreme4all#6456 - testing python package "osrs"'}
api = OSRS.hiscores(header=header)
modes = [
    'hiscore_oldschool', 'hiscore_oldschool_ironman', 'hiscore_oldschool_hardcore_ironman',
    'hiscore_oldschool_ultimate','hiscore_oldschool_deadman','hiscore_oldschool_seasonal',
    'hiscore_oldschool_tournament'
]
    
print(api.player(player_name='extreme4all', mode='hiscore_oldschool'))

development

setup

python -m venv venv
venv\Scripts\activate
python -m pip install --upgrade pip
pip install -r requirements.txt

for admin purposes saving & upgrading

venv\Scripts\activate
call pip freeze > requirements.txt
powershell "(Get-Content requirements.txt) | ForEach-Object { $_ -replace '==', '>=' } | Set-Content requirements.txt"
call pip install -r requirements.txt --upgrade
call pip freeze > requirements.txt
powershell "(Get-Content requirements.txt) | ForEach-Object { $_ -replace '>=', '==' } | Set-Content requirements.txt"

build & publish

python -m build
python -m twine upload osrs dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

osrs-0.0.3.tar.gz (5.5 kB view hashes)

Uploaded Source

Built Distribution

osrs-0.0.3-py3-none-any.whl (6.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page