Releases: tybug/ossapi
v5.1.1
v5.1.0
- add new
api.scores
endpoint - fix some
OssapiAsync
methods not actually being async - add many attributes to
MultiplayerScore
- fix
MultiplayerScore.rank
type - mark
BeatmapsetEvent.comment
as optional - mark
BeatmapsetEventType.DISQUALIFY
andBeatmapsetEventType.NOMINATION_RESET
as acceptingstr
- mark
BeatmapsetDiscussion.last_post_at
as optional - mark
Room.ends_at
as optional
v5.0.4
v5.0.3
v5.0.2
v5.0.1
v5.0.0
This release implements the x-api-version
header of the osu api. It adds a new parameter api_version
to Ossapi
, which allows you to specify which version of the api your code supports. The attributes in the returned models may be different for certain endpoints depending on the passed api_version
. For instance, by setting api_version=20220705
or higher, endpoints will start returning the new score format. This contains lazer-specific information such as settings for mods, correct accuracy for lazer scores, etc.
This is a major release bump for ossapi because I have set api_version
to default to 20241024
(the current date as of time of release). This means that if your code relied on the previous structure score structure, it may break. It also means that by upgrading you will start using the newest structures by default. If you want to upgrade but want to continue using the old model structure, pass api_version=0
(or some sufficiently small version like api_version=20200101
is very likely to also work). You can change to the new structure at any time by setting a higher api_version
.
I recommend that you hardcod a version string regardless, to be explicit about which api version you are using. You can choose the current date if you are happy with the current models you are receiving from the api.
Changes
- add
api_version
parameter toOssapi
- add new
Ossapi.users_lookup
endpoint - add
beatmapset_id
parameter toapi.beatmapet_events
endpoint - add
Nominations.eligible_main_rulesets
- add
UserStatistics.rank_change_since_30_days
- add
RoomCategory.DAILY_CHALLENGE
- add
User.{profile_hue, daily_challenge_stats}
- add
BeatmapsetEventCommentWithNominators.beatmap_ids
- change
Nominations.required
toNominations.required_meta
- mark
Rankings.total
as optional - mark
UserStatistics.{play_time, pp}
as optional
v5.0.0b1
This release implements the x-api-version
header of the osu api. It adds a new parameter api_version
to Ossapi
, which allows you to specify which version of the api your code supports. The attributes in the returned models may be different for certain endpoints depending on the passed api_version
. For instance, by setting api_version=20220705
or higher, endpoints will start returning the new score format. This contains lazer-specific information such as settings for mods, correct accuracy for lazer scores, etc.
This is a major release bump for ossapi because I have set api_version
to default to 20241024
(the current date as of time of release). This means that if your code relied on the previous structure score structure, it may break. It also means that by upgrading you will start using the newest structures by default. If you want to upgrade but want to continue using the old model structure, pass api_version=0
(or some sufficiently small version like api_version=20200101
is very likely to also work). You can opt-in to the new structure at any time by setting a higher api version.
I recommend that you hardcod a version string regardless, to be explicit about which api version you are using. You can choose the current date if you are happy with the current models you are receiving from the api.
Changes
- add
api_version
parameter toOssapi
- add new
Ossapi.users_lookup
endpoint - add
beatmapset_id
parameter toapi.beatmapet_events
endpoint - add
Nominations.eligible_main_rulesets
- add
UserStatistics.rank_change_since_30_days
- add
RoomCategory.DAILY_CHALLENGE
- add
User.{profile_hue, daily_challenge_stats}
- add
BeatmapsetEventCommentWithNominators.beatmap_ids
- change
Nominations.required
toNominations.required_meta
- mark
Rankings.total
as optional - mark
UserStatistics.{play_time, pp}
as optional
v4.0.0
The big change in this release is to account for the migration from old score ids (https://osu.ppy.sh/scores/osu/3772000814) to new score ids (https://osu.ppy.sh/scores/1312718771). The former requires the gamemode while the latter does not. Endpoints which previously took both a gamemode and a score id have been changed to take just a score id (new format), while the previous endpoint behavior was kept under a different method name.
Breaking changes
- rename
api.score
toapi.score_mode
- add a new
api.score
method which takes the new score id format - rename
api.download_score
toapi.download_score_mode
- rename
BeatmapScores.userScore
toBeatmapScores.user_score
- add a new
api.download_score
method which takes the new score id format - rename
before
andafter
parameters ofapi.match
tobefore_id
andafter_id
, to better reflect that the api filters by id and not something like time - remove
Domain.LAZER
- lazer.ppy.sh was decommissioned in the past few months, so this parameter has no effect and in fact causes errors. Lazer data is now live on the main site and you do not need to pass a
Domain
to access it
- lazer.ppy.sh was decommissioned in the past few months, so this parameter has no effect and in fact causes errors. Lazer data is now live on the main site and you do not need to pass a
Migration guide
- change any
api.score
calls toapi.score_mode
(and consider migrating to the newapi.score
, to use the new score ids without gamemodes) - change any
api.download_score
calls toapi.download_score_mode
(and consider migrating to the newapi.download_score
, for the same reason) - rename any
api.match(before=..., after=...)
calls toapi.match(before_id=..., after_id=...)
Non-breaking changes
- add
legacy_only
parameter to applicable endpoints - make
Statistics
counts optional - correctly type
cursor_string
as optional
v4.0.0beta1
This is a beta release. You can install it with pip install -U --pre ossapi
. I may make breaking changes based on feedback before releasing 4.0.0 final (though I don't expect to).
The big change in this release is to account for the migration from old score ids (https://osu.ppy.sh/scores/osu/3772000814) to new score ids (https://osu.ppy.sh/scores/1312718771). The former requires the gamemode while the latter does not. Endpoints which previously took both a gamemode and a score id have been changed to take just a score id (new format), while the previous endpoint behavior was kept under a different method name.
Breaking changes
- rename
api.score
toapi.score_mode
- add a new
api.score
method which takes the new score id format - rename
api.download_score
toapi.download_score_mode
- add a new
api.download_score
method which takes the new score id format - rename
before
andafter
parameters ofapi.match
tobefore_id
andafter_id
, to better reflect that the api filters by id and not something like time - remove
Domain.LAZER
- lazer.ppy.sh was decommissioned in the past few months, so this parameter has no effect and in fact causes errors. Lazer data is now live on the main site and you do not need to pass a
Domain
to access it
- lazer.ppy.sh was decommissioned in the past few months, so this parameter has no effect and in fact causes errors. Lazer data is now live on the main site and you do not need to pass a
Migration guide
- change any
api.score
calls toapi.score_mode
(and consider migrating to the newapi.score
, to use the new score ids without gamemodes) - change any
api.download_score
calls toapi.download_score_mode
(and consider migrating to the newapi.download_score
, for the same reason) - rename any
api.match(before=..., after=...)
calls toapi.match(before_id=..., after_id=...)
Non-breaking changes
- make
Statistics
counts optional - correctly type
cursor_string
as optional