Der Old School RuneScape API-Wrapper, der mehr kann!
Die offizielle Hiscores-API für Old School RuneScape (OSRS) kann CSV oder ein einfaches JSON-Array zurückgeben. Dieser Wrapper wandelt die Hiscore-Daten in ein besser verwendbares JSON-Objekt um und stellt zusätzliche Informationen über den jeweiligen Spieler bereit. Durch den Vergleich der Spielerinformationen werden der Spielmodus des Spielers sowie alle vorherigen Modi (nicht ultimiert, entbügelt und/oder als Hardcore-Ironman gestorben) abgeleitet.
Es werden zusätzliche Funktionen bereitgestellt, die ein Screenscraping der OSRS-Bestenlisten ermöglichen und eine Liste der Spieler als JSON zurückgeben. Bei Bedarf werden auch einfache Hilfsfunktionen bereitgestellt, um die Rohantworten von den Jagex-APIs abzurufen.
osrs-json-hiscores
bietet TypeScript-Unterstützung mit vollständigen Definitionen für alle Funktionen und benutzerdefinierten Datentypen.
Jagex stellt in seinen Antworten keine Access-Control-Allow-Origin
Header bereit. Das bedeutet, dass CORS alle Browseranfragen an seine Hiscores-API blockiert. Um dies zu umgehen, muss osrs-json-hiscores auf der Serverseite installiert und über eine einfache API dem Frontend zugänglich gemacht werden. Hier ist ein Beispiel dafür: codesandbox.io/s/osrs-json-hiscores-demo
TLDR: Sie können diese Bibliothek nicht direkt in Ihrer clientseitigen App verwenden, z. B. React oder Vue. Sie müssen einen Server einrichten, der diese Bibliothek intern verwendet, und Ihren Client Daten von Ihrem Server abrufen lassen.
Mit npm:
$ npm install osrs-json-hiscores
Mit Garn:
$ yarn add osrs-json-hiscores
Installieren Sie das Paket und importieren Sie es dann in Ihr Projekt:
import { getStatsByGamemode , getSkillPage } from 'osrs-json-hiscores' ;
Sobald Sie es importiert haben, können Sie die Funktionen asynchron aufrufen:
const stats = await getStatsByGamemode ( 'Lynx Titan' ) ;
const topPage = await getSkillPage ( 'overall' ) ;
getStats
gibt ein vollständiges Spielerobjekt mit Spielmodus zurück.
getStatsByGameMode
gibt ein Statistikobjekt zurück und akzeptiert einen Gamemode-Parameter:
Spielmodus | Param |
---|---|
Regulär | main |
Ironman | ironman |
Hardcore-Ironman | hardcore |
Ultimativer Ironman | ultimate |
Deadman-Modus | deadman |
Turnier | tournament |
Ligen | seasonal |
getSkillPage
und getActivityPage
erfordern einen Skill/eine Aktivität und optional einen Spielmodus und eine Seite:
getSkillPage ( 'attack' , 'main' , 1 )
. then ( ( res ) => console . log ( res ) )
. catch ( ( err ) => console . error ( err ) ) ;
Die Aktivitäten bestehen aus Hinweisschriftrollen aller Stufen sowie Minispielen und Bossen:
Typ | Param |
---|---|
Alle | allClues |
Anfänger | beginnerClues |
Einfach | easyClues |
Medium | mediumClues |
Hart | hardClues |
Elite | eliteClues |
Master | masterClues |
Minispiel | Param |
---|---|
Kopfgeldjäger (Legacy – Schurke) | rogueBH |
Kopfgeldjäger (Legacy – Jäger) | hunterBH |
Kopfgeldjäger (Schurke) | rogueBHV2 |
Kopfgeldjäger (Jäger) | hunterBHV2 |
LMS - Rang | lastManStanding |
PvP-Arena – Rang | pvpArena |
Soul Wars Eifer | soulWarsZeal |
Risse geschlossen | riftsClosed |
Ruhm des Kolosseums | colosseumGlory |
Aktivität | Param |
---|---|
Ligapunkte | leaguePoints |
Deadman-Punkte | deadmanPoints |
Chefname | Param |
---|---|
Abgründiger Vater | abyssalSire |
Alchemistische Hydra | alchemicalHydra |
Amoxliatl | amoxliatl |
Araxxor | araxxor |
Artio | artio |
Barrows-Truhen | barrows |
Bryophyta | bryophyta |
Callisto | callisto |
Kalvarienberg | calvarion |
Cerberus | cerberus |
Kammern von Xeric | chambersOfXeric |
Chambers Of Xeric: Herausforderungsmodus | chambersOfXericChallengeMode |
Chaoselementar | chaosElemental |
Chaos-Fanatiker | chaosFanatic |
Kommandant Zilyana | commanderZilyana |
Körperliches Biest | corporealBeast |
Verrückter Archäologe | crazyArchaeologist |
Dagannoth Prime | dagannothPrime |
Dagannoth Rex | dagannothRex |
Dagannoth Supreme | dagannothSupreme |
Geistesgestörter Archäologe | derangedArchaeologist |
Herzog Sucellus | dukeSucellus |
General Graardor | generalGraardor |
Riesenmaulwurf | giantMole |
Groteske Wächter | grotesqueGuardians |
Hespori | hespori |
Kalphite-Königin | kalphiteQueen |
König Schwarzer Drache | kingBlackDragon |
Krake | kraken |
Kreearra | kreeArra |
K'ril Tsutsaroth | krilTsutsaroth |
Mondtruhen | lunarChests |
Nachahmen | mimic |
Nex | nex |
Alptraum | nightmare |
Phosanis Albtraum | phosanisNightmare |
Obor | obor |
Phantom Muspah | phantomMuspah |
Sarachnis | sarachnis |
Skorpion | scorpia |
Scurrius | scurrius |
Skotizo | skotizo |
Sol Heredit | solHeredit |
Spindel | spindel |
Tempoross | tempoross |
Der Handschuh | gauntlet |
Der verderbte Handschuh | corruptedGauntlet |
Der Hueycoatl | hueycoatl |
Der Leviathan | leviathan |
Der Flüsterer | whisperer |
Theater des Blutes | theatreOfBlood |
Theater des Blutes: Harter Modus | theatreOfBloodHardMode |
Thermonuklearer Rauchteufel | thermonuclearSmokeDevil |
Gräber von Amascut | tombsOfAmascut |
Gräber von Amascut: Expertenmodus | tombsOfAmascutExpertMode |
TzKal-Zuk | tzKalZuk |
TzTok-Jad | tzTokJad |
Vardorvis | vardorvis |
Venenatis | venenatis |
Vetion | vetion |
Vorkath | vorkath |
Wintertodt | wintertodt |
Zalcano | zalcano |
Zulrah | zulrah |
getStats
gibt ein Player-Objekt zurück, das so aussieht:
{
name : 'Lynx Titan' ,
mode : 'main' ,
dead : false ,
deulted : false ,
deironed : false ,
main : {
skills : {
overall : { rank : 1 , level : 2277 , xp : 4600000000 } ,
attack : { } ,
defence : { } ,
// ...
} ,
clues : { } ,
leaguePoints : { } ,
bountyHunter : { } ,
lastManStanding : { } ,
pvpArena : { } ,
soulWarsZeal : { } ,
riftsClosed : { } ,
bosses : { }
}
}
getSkillPage
gibt ein Array von 25 Spielern zurück (Dies stellt eine Seite mit den Hiscores dar):
[
{ rank : 1 , name : 'Lynx Titan' , level : 2277 , xp : 4600000000 , dead : false } ,
{ } ,
{ }
// ...
] ;
Erhalten Sie den korrekt formatierten Namen einer Fertigkeit, eines Bosses, eines Hinweises oder einer anderen Aktivität:
// kril === "K'ril Tsutsaroth"
const kril = FORMATTED_BOSS_NAMES [ 'krilTsutsaroth' ] ;