Skip to content

Commit 44bc74e

Browse files
committed
Quickfix. See ppy/osu-api#130 for more details
1 parent 68d063a commit 44bc74e

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

pyosu/models/beatmap.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ def __init__(self, *, api : 'OsuApi' = None, **data):
4646
self.genre_id = int(data.get('genre_id' , BeatmapGenre.Any))
4747
self.playcount = int(data.get('playcount' , 0)) # Number of times the beatmap was played
4848
self.passcount = int(data.get('passcount' , 0)) # Number of times the beatmap was passed, completed (the user didn't fail or retry)
49-
self.max_combo = int(data.get('max_combo' , 0)) # The maximum combo a user can reach playing this beatmap.
5049
self.beatmap_id = int(data.get('beatmap_id' , 0)) # beatmap_id is per difficulty
5150
self.language_id = int(data.get('language_id' , Language.Any))
5251
self.beatmapset_id = int(data.get('beatmapset_id' , 0)) # beatmapset_id groups difficulties into a set
@@ -58,8 +57,19 @@ def __init__(self, *, api : 'OsuApi' = None, **data):
5857
self.version = data.get('version' , "") # difficulty name
5958
self.creator = data.get('creator' , "")
6059
self.file_md5 = data.get('file_md5' , "") # md5 hash of the beatmap
61-
self.approved_date = datetime.datetime.strptime(data.get('approved_date' , "1970-01-01 00:00:00") , "%Y-%m-%d %H:%M:%S") # date ranked, UTC+8 for now
62-
self.last_update = datetime.datetime.strptime(data.get('last_update' , "1970-01-01 00:00:00") , "%Y-%m-%d %H:%M:%S") # last update date, timezone same as above. May be after approved_date if map was unranked and reranked.
60+
self.last_update = datetime.datetime.strptime(data.get('last_update' , "1970-01-01 00:00:00"), "%Y-%m-%d %H:%M:%S") # last update date, timezone same as above. May be after approved_date if map was unranked and reranked.
61+
62+
# Quickfix. See https://github.com/ppy/osu-api/issues/130 for more details
63+
if data.get('max_combo', 0) is None:
64+
self.max_combo = 0
65+
else:
66+
self.max_combo = int(data.get('max_combo' , 0)) # The maximum combo a user can reach playing this beatmap.
67+
68+
# Some beatmaps have never been approved so we need to take care of this
69+
if data.get('approved_date', "") is None:
70+
self.approved_date = datetime.datetime.utcfromtimestamp(0)
71+
else:
72+
self.approved_date = datetime.datetime.strptime(data.get('approved_date', "1970-01-01 00:00:00"), "%Y-%m-%d %H:%M:%S") # date ranked, UTC+8 for now
6373

6474
async def get_beatmapset(self):
6575
""" Returns a beatmap collection with every beatmap of the beatmapset """

0 commit comments

Comments
 (0)