Module runescapeapi.runemetrics.quest_list
Expand source code
import json
from dataclasses import dataclass
from typing import List
import requests
from runescapeapi.runemetrics import RUNEMETRICS_BASE
@dataclass
class Quest:
title: str
status: str
difficulty: int
members: bool
quest_points: int
user_elegible: bool
@staticmethod
def url(user_name: str) -> str:
return f"{RUNEMETRICS_BASE}quests?user={user_name}"
@staticmethod
def from_response(raw_response: str) -> List["Quest"]:
j = json.loads(raw_response)
return [
Quest(
title=q["title"],
status=q["status"],
difficulty=q["difficulty"],
members=q["members"],
quest_points=q["questPoints"],
user_elegible=q["userEligible"],
)
for q in j["quests"]
]
@classmethod
def try_fetch(cls, user_name: str) -> List["Quest"]:
r = requests.get(cls.url(user_name)).text
return cls.from_response(r)
Classes
class Quest (title: str, status: str, difficulty: int, members: bool, quest_points: int, user_elegible: bool)
-
Quest(title: str, status: str, difficulty: int, members: bool, quest_points: int, user_elegible: bool)
Expand source code
@dataclass class Quest: title: str status: str difficulty: int members: bool quest_points: int user_elegible: bool @staticmethod def url(user_name: str) -> str: return f"{RUNEMETRICS_BASE}quests?user={user_name}" @staticmethod def from_response(raw_response: str) -> List["Quest"]: j = json.loads(raw_response) return [ Quest( title=q["title"], status=q["status"], difficulty=q["difficulty"], members=q["members"], quest_points=q["questPoints"], user_elegible=q["userEligible"], ) for q in j["quests"] ] @classmethod def try_fetch(cls, user_name: str) -> List["Quest"]: r = requests.get(cls.url(user_name)).text return cls.from_response(r)
Class variables
var difficulty : int
var members : bool
var quest_points : int
var status : str
var title : str
var user_elegible : bool
Static methods
def from_response(raw_response: str) ‑> List[Quest]
-
Expand source code
@staticmethod def from_response(raw_response: str) -> List["Quest"]: j = json.loads(raw_response) return [ Quest( title=q["title"], status=q["status"], difficulty=q["difficulty"], members=q["members"], quest_points=q["questPoints"], user_elegible=q["userEligible"], ) for q in j["quests"] ]
def try_fetch(user_name: str) ‑> List[Quest]
-
Expand source code
@classmethod def try_fetch(cls, user_name: str) -> List["Quest"]: r = requests.get(cls.url(user_name)).text return cls.from_response(r)
def url(user_name: str) ‑> str
-
Expand source code
@staticmethod def url(user_name: str) -> str: return f"{RUNEMETRICS_BASE}quests?user={user_name}"