Skip to content

Releases: Jackenmen/rlapi

0.8.0b1

03 Nov 00:38
c67c93e
Compare
Choose a tag to compare

First beta release!

This release adds coverage for all of the API's endpoints along with a bunch of refactoring around the bulk endpoint.

Breaking changes:

  • The old Client.get_player() method has been split:
    • Client.get_player(player_id) (i.e. with no platform) is now fulfilled by Client.find_player(player_id)
    • Client.get_player(player_id, platform) (where platform is not None) is now fulfilled by 2 new methods:
      • Client.get_player_by_id(platform, user_id) for lookups by ID (all platforms except for Nintendo Switch support this now)
      • Client.get_player_by_name(platform, user_name) for lookups by user name (all platforms support this, consult Platform Player IDs docs for limitations)
    • Additionally, there's now a new method (Client.get_players()) for looking up multiple players at once
  • Player.player_id has been removed
    • This field used to contain the unchanged input passed to Client.get_player() but this is not really part of the API model and cannot be filled when using the bulk endpoint

Features:

  • Added a few useful constants to the library: RANKS, DIVISIONS, SEASON_REWARDS, PLAYLISTS_WITH_SEASON_REWARDS
  • Added Client.get_player_by_id(), Client.get_player_by_name(), and Client.find_player() to replace the removed Client.get_player()
  • Added Client.get_players() that allows to query multiple player profiles on a single platform at once
  • Player now includes a stats attribute with player stats (assists, goals, MVPs, etc.)
  • Added Client.get_population() that allows to query population across different platforms and playlists
  • Added Client.get_skill_leaderboard() that allows to query skill leaderboard for the playlist on the given platform
  • Added Client.get_stat_leaderboard() that allows to query leaderboard for the specified stat on the given platform
  • Added Client.get_player_titles() and Player.titles() that allow to query the API for the list of player's titles

Enhancements:

  • Added new lifetime_matches_played and placement_matches_played attributes to Playlist instances
  • Added new TIER_MAX and DIVISION_MAX class constants to Playlist
  • Added new next_level attribute to SeasonRewards instances
  • Added new MAX_LEVEL class constant to SeasonRewards
  • Epic players can now be looked up by their display name
  • PlayStation and Xbox One players can now be looked up by IDs (provided that you can get it from somewhere)
  • Platform.ps4's friendly name is now "PlayStation" rather than "PlayStation 4"

Fixes:

  • Fixed collection of tier estimates for max tier in the rlapi.ext.tier_breakdown.rlstatsnet module
  • Fixed inaccurate regex for Nintendo Switch nicknames in Client.find_player() which determined whether the library tries to query the API for the given player ID on that platform

Docs:

  • Added Platform Player IDs docs listing the identifiers that can be used to lookup a player on each platform, along with the limitations of those lookup methods

0.7.0a1

22 Oct 19:41
8c69965
Compare
Choose a tag to compare

This release focuses on supporting new Python versions (lxml bump) and replacing broken tier breakdown parsers with rlstats.net-based one.

Breaking changes:

  • Removed the rltracker and trackernetwork modules from the rlapi.ext.tier_breakdown package
  • Dropped support for Python 3.7

Features:

  • Added the rlstatsnet module to rlapi.ext.tier_breakdown package

Enhancements:

  • Library users can now install the lxml package in <4.4.2, 6.0) version range
    • This should allow installation on Python 3.13

0.6.0a1

24 Apr 21:07
2b8c2ad
Compare
Choose a tag to compare

This release focuses on migration to the new Rocket League API.

Breaking changes:

  • Removed rlapi.utils module
  • Removed Playlist.tier_max instance attribute
    • use Playlist.TIER_MAX class attribute instead
  • platform.value is now no longer the same as str(platform)
  • The library is now using the new Rocket League API which requires a client ID and secret from Epic Games Developer Portal, instead of the old token.
    As a result, following breaking changes have been made:
    • Client now has 2 required keyword arguments client_id and client_secret instead of token.
    • Client.change_token() has been removed in favor of Client.update_client_credentials()
  • Client.get_player() for Epic Games platform now requires Epic Account ID, instead of Epic Display Name.
    • This is a limitation of the new API.
  • Player.user_name is now only present for PlayStation 4, Xbox One, and Nintendo Switch players.
    This change corresponds to the platforms for which the player lookup requires the player's user name.
    • This is a limitation of the new API.
  • Player.user_id is now present for Steam and Epic Games players.
    This change corresponds to the platforms for which the player lookup requires the player's user ID.
    • This is a limitation of the new API.

Features:

  • Added Client.close() method

Enhancements:

  • Library users can now install aiohttp in <3.5.4, 4.0) version range
  • Library users can now install lxml in <4.4.2, 5.0) version range

Fixes:

  • Fixed casing of the friendly name of the PlayStation 4 platform

0.5.0a1

22 Feb 22:52
bf7c4c4
Compare
Choose a tag to compare

Features:

  • added Epic Games and Nintendo Switch platform
  • added Tournaments playlist
  • added new ranks

Enhancements:

  • lib users can now install aiohttp 3.7.x and lxml 4.6.x

Fixes:

  • Player.highest_tier now only includes the playlists that count towards season rewards
    • this also fixes the value of SeasonRewards.can_advance in relevant cases
  • due to API providing outdated value, a temporary fix for Playlist.tier_max has been included in this release
  • fixed Tracker Network provider module

Docs:

  • fixed the issue causing the license headers from rlapi's code to show in the documentation

0.4.1a1

27 Jul 17:08
251536d
Compare
Choose a tag to compare

Enhancements:

  • added representations (__repr__) to all data classes
  • Player objects are now hashable and comparable

Docs:

  • fixed usage examples

Miscellaneous:

  • project relicensed to Apache License 2.0

0.4.0a1

24 Jun 22:43
64e410c
Compare
Choose a tag to compare

This release takes an effort towards making the attribute names more consistent with the Rocket League API.

Breaking changes:

  • user_id from the payload is now in Player.user_id and the attribute can be None if the payload doesn't contain
    user_id (as is the case for non-Steam players).
  • Player.player_id now instead contains the player_id as passed to Client.get_player().

Enhancements:

  • Allow lib users to install aiohttp 3.6.x and lxml 4.5.x.
  • Change typing_extensions req to only specify minimum version.

0.3.0a1

09 Feb 15:18
014e566
Compare
Choose a tag to compare

Breaking changes:

  • loop can no longer be explicitly passed to rlapi.Client in loop kwarg

0.2.2a1

03 Feb 22:44
db21e09
Compare
Choose a tag to compare

Fixes:

  • update MANIFEST.in to include py.typed

Enhancements:

  • add py.typed to rlapi.ext.tier_breakdown for proper type hint support
  • improve breakdown type hints

0.2.1a1

28 Jan 19:43
fe564ad
Compare
Choose a tag to compare

Bug fixes:

  • fetching stats will no longer fail when API responds with some nulls

Enhancements:

  • added py.typed for proper type hinting support

0.2.0a1

06 Jan 02:18
9ffb6c9
Compare
Choose a tag to compare

Breaking changes:

  • reward_ready attribute of rlapi.SeasonRewards is now called can_advance

Enhancements:

  • Python 3.8 support

Dependency changes:

  • removed defusedxml
  • minimum version of lxml is now 4.4.2
  • added typing_extensions==3.7.4 (Python 3.7 only)

Misc:

  • docs improvements
  • we're using black code style now
  • rlapi is now typed