From a4a2236656d4bcbe5b8b2ebaa97287433f1f119f Mon Sep 17 00:00:00 2001 From: jack Date: Fri, 8 Jan 2021 13:34:38 +1100 Subject: [PATCH 1/2] added a comment to the Seasons class --- r6sapi/definitions/stores.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/r6sapi/definitions/stores.py b/r6sapi/definitions/stores.py index bb82059..74ef696 100644 --- a/r6sapi/definitions/stores.py +++ b/r6sapi/definitions/stores.py @@ -166,7 +166,7 @@ def get_rank(self, rank_id): class Seasons: """ - + Stores all seasons we know of, providing operations to fetch them based on code and id """ def __init__(self, all_seasons): self._seasons = [] From 38479fb8a59b73745ec7cb9fc2173c675c243cd8 Mon Sep 17 00:00:00 2001 From: Jack Date: Sun, 10 Jan 2021 02:56:34 +1100 Subject: [PATCH 2/2] Fixed `get_rank` to return the correct rank - Rank.rank is now (correctly) the string name of the rank. Access the raw rank object via `rank_obj`. This is for compatibility with previous API. - added a way to index into the ranked collection, handling the case were the rank was unranked - added old ranking bands to pre ember rise seasons - small tweaks to readability to rankinfo objects when printed --- r6sapi/definitions/models.py | 6 + r6sapi/definitions/seasons.py | 1339 ++++++++++++++++++++++++++++++++- r6sapi/definitions/stores.py | 18 +- r6sapi/ranks.py | 3 +- 4 files changed, 1351 insertions(+), 15 deletions(-) diff --git a/r6sapi/definitions/models.py b/r6sapi/definitions/models.py index 5b64ee9..ec7a105 100644 --- a/r6sapi/definitions/models.py +++ b/r6sapi/definitions/models.py @@ -130,6 +130,12 @@ def __init__(self, name, min_mmr, max_mmr): self.min_mmr = min_mmr self.max_mmr = max_mmr + def __repr__(self): + return "RankInfo({}, {}, {})".format(self.name, self.min_mmr, self.max_mmr) + + def __str__(self): + return repr(self) + UNRANKED = RankInfo("unranked", -1, -1) RankInfo.UNRANKED = UNRANKED diff --git a/r6sapi/definitions/seasons.py b/r6sapi/definitions/seasons.py index de49142..1695dfd 100644 --- a/r6sapi/definitions/seasons.py +++ b/r6sapi/definitions/seasons.py @@ -12,28 +12,432 @@ "id": "6Og3BZ9ZhGnWRW2fQooGVD", "season_code": "Y1S1", "startDate": "2016-02-02T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Black Ice" }, { "id": "7ApYusrB1XQ7JUqi0gKask", "season_code": "Y1S2", "startDate": "2016-05-10T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Dust Line" }, { "id": "5gXNYW4aILJ2BCwGQVU5R", "season_code": "Y1S3", "startDate": "2016-08-02T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Skull Rain" }, { "id": "3yQu0JLznw23E1RUKnnlSF", "season_code": "Y1S4", "startDate": "2016-11-17T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Red Crow" }, { @@ -47,63 +451,972 @@ "id": "3fSQAoJYWfHHibuiYYfUs3", "season_code": "Y2S2", "startDate": "2017-06-07T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + } + ], "operation_name": "Operation Operation Health" }, { "id": "5Pd0LEVFTsKfZVfAFf0yAm", "season_code": "Y2S3", "startDate": "2017-08-29T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Blood Orchid" }, { "id": "ySWfvtzFakBXwBwJL2YCP", "season_code": "Y2S4", "startDate": "2017-12-05T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation White Noise" }, { "id": "3stC4aybcJTXFJ3ARWeJCe", "season_code": "Y3S1", "startDate": "2018-03-06T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Chimera" }, { "id": "RS4Myxuf0m0Oot9OszJNZ", "season_code": "Y3S2", "startDate": "2018-06-07T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Para Bellum" }, { "id": "fONvvcWq3e5jT8TY3PkfL", "season_code": "Y3S3", "startDate": "2018-09-04T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Grim Sky" }, { "id": "1CzDGQqeeZJZbOVrkw0NGG", "season_code": "Y3S4", "startDate": "2018-12-04T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Wind Bastion" }, { "id": "5PB4pyo7Fba2uv6L9iKFls", "season_code": "Y4S1", "startDate": "2019-03-06T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Burnt Horizon" }, { "id": "5NMaoOUQwYVDL4uoWwNMrt", "season_code": "Y4S2", "startDate": "2019-06-11T07:00:00.000Z", - "season_ranks": [], + "season_ranks": [ + { + "name": "copper-4", + "min_mmr": 0, + "max_mmr": 1399 + }, + { + "name": "copper-3", + "min_mmr": 1400, + "max_mmr": 1499 + }, + { + "name": "copper-2", + "min_mmr": 1500, + "max_mmr": 1599 + }, + { + "name": "copper-1", + "min_mmr": 1600, + "max_mmr": 1699 + }, + { + "name": "bronze-4", + "min_mmr": 1700, + "max_mmr": 1799 + }, + { + "name": "bronze-3", + "min_mmr": 1800, + "max_mmr": 1899 + }, + { + "name": "bronze-2", + "min_mmr": 1900, + "max_mmr": 1999 + }, + { + "name": "bronze-1", + "min_mmr": 2000, + "max_mmr": 2099 + }, + { + "name": "silver-4", + "min_mmr": 2100, + "max_mmr": 2199 + }, + { + "name": "silver-3", + "min_mmr": 2200, + "max_mmr": 2299 + }, + { + "name": "silver-2", + "min_mmr": 2300, + "max_mmr": 2399 + }, + { + "name": "silver-1", + "min_mmr": 2400, + "max_mmr": 2499 + }, + { + "name": "gold-4", + "min_mmr": 2500, + "max_mmr": 2699 + }, + { + "name": "gold-3", + "min_mmr": 2700, + "max_mmr": 2899 + }, + { + "name": "gold-2", + "min_mmr": 2900, + "max_mmr": 3099 + }, + { + "name": "gold-1", + "min_mmr": 3100, + "max_mmr": 3299 + }, + { + "name": "platinum-3", + "min_mmr": 3300, + "max_mmr": 3699 + }, + { + "name": "platinum-2", + "min_mmr": 3700, + "max_mmr": 4099 + }, + { + "name": "platinum-1", + "min_mmr": 4100, + "max_mmr": 4499 + }, + { + "name": "diamond", + "min_mmr": 4500, + "max_mmr": 15000 + }, + ], "operation_name": "Operation Phantom Sight" }, { diff --git a/r6sapi/definitions/stores.py b/r6sapi/definitions/stores.py index 74ef696..885c8f6 100644 --- a/r6sapi/definitions/stores.py +++ b/r6sapi/definitions/stores.py @@ -163,6 +163,14 @@ def get_rank(self, rank_id): # taken from bracket_from_rank return RankInfo.UNRANKED + # 0 is unranked, 1 is copper5 or 4 and so on + # however we dont store the unranked (for now), so we need offset it by one + # the following check ensures that the data is in the correct range + if rank_id < 0 or rank_id > len(self): + raise IndexError + + return self[rank_id - 1] + class Seasons: """ @@ -219,6 +227,14 @@ def last_season(self): return self._seasons[-1] def __getitem__(self, item): - return self._seasons[item] + if item == -1: + return self.last_season + + # the seasons are numbered 1 to (len) from indexes 0 to (len - 1) + # therefore anything < 1 or > len is invalid + if item < 1 or item > len(self): + raise IndexError + + return self._seasons[item - 1] diff --git a/r6sapi/ranks.py b/r6sapi/ranks.py index 21d7cce..9ec0f2d 100644 --- a/r6sapi/ranks.py +++ b/r6sapi/ranks.py @@ -236,7 +236,8 @@ def __init__(self, data, rank_definitions): self.losses = data.get("losses") self.rank_id = data.get("rank", 0) - self.rank = rank_definitions.get_rank(self.rank_id) + self.rank_obj = rank_definitions.get_rank(self.rank_id) + self.rank = self.rank_obj.name self.max_rank = data.get("max_rank") self.next_rank_mmr = data.get("next_rank_mmr")