Skip to content

Releases: Fortnite-API/py-wrapper

v3.2.1

16 Dec 23:40
Compare
Choose a tag to compare

Bugfixes

  • Fixed an issue due a change from Epic that causes VariantBean to not have a CustomGender. It now uses CustomGender.UNKNOWN in such case instead of raising an exception.
  • Fixed typo within fallback system for TileSize as raise keyword was used instead of return.
  • Fixed an issue that caused a KeyError to be raised when using Client.search_br_cosmetics or SyncClient.search_br_cosmetics without multiple parameter.

v3.2.0

25 Nov 10:42
Compare
Choose a tag to compare

This version introduces support for new Shoes cosmetic type, drops support for Python 3.8, and adds safeguards and future proofing against potential API changes.

Breaking Changes

  • Drop support for Python 3.8. The minimum supported Python version is now 3.9.
  • CreatorCode.status and CreatorCode.disabled have been removed, since both returned a static value. Disabled creator codes always raise NotFound when trying to fetch them.
  • CreatorCode.verified has been removed, since it isn't used within the affiliate system. It always returns False.
  • All enums now use an internal "Enum-like" class to handle unknown values, instead of the built-in enum.Enum. This potentially breaks type checks, but does not break core functionality or change the enum interface; you can use them the same.

New Features

  • Added support for CosmeticType.SHOES.

Documentation

  • Document Forbidden to be raised by Client.fetch_br_stats and SyncClient.fetch_br_stats.

Miscellaneous

  • Add safeguards against Epic Games' API changing or providing invalid values in API responses.
    • All enums now can handle unknown values via an internally defined "Enum-like" class. If the API returns a value not in the enum, it will be stored as an attribute on the enum object. The interface for using this class is the same as using enum.Enum.
    • TileSize no longer raises ValueError when an unknown value is passed to it. Instead, it now has a fallback value of -1 for both width and height.

v3.1.0

23 Oct 17:34
efe345b
Compare
Choose a tag to compare

This version introduces new data for shop-related objects, reflecting the updated shop layouts and the Fortnite webshop. Additionally, it includes functions that were omitted in version v3.0.0 and addresses a design decision that results in a breaking change.

Breaking Changes

  • ShopEntryNewDisplayAsset has been renamed to NewDisplayAsset.
  • Alias BannerColor.colour has been removed for consistency. The API does not use aliases, use BannerColor.color instead.

New Features

  • Added new object ProductTag.
  • Added attribute MaterialInstance.product_tag.
  • Added new object ShopEntryOfferTag.
  • Added new object ShopEntryColors.
  • Added new object RenderImage.
  • Added attribute ShopEntryLayout.rank.
  • Added attribute NewDisplayAsset.render_images.
  • Added attribute ShopEntry.offer_tag.
  • Added attribute ShopEntry.colors.

Bug Fixes

  • Fixed an issue where type and time_window parameters were not respected when fetching stats.
  • Playlist.images now returns None when no images are available, instead of an empty dict.
  • Bug fix for returning naive datetime objects in rare cases. All datetime objects are UTC aware.

Documentation

  • Added response flags documentation to explain how to use the ResponseFlags class, how to enable response flags, which response flags are available, and when you should enable them.
  • Added opt-in directive in the documentation on attributes that require a specific response flag to be set. This ensures users know of the response flags required to access certain attributes when using the API.

Miscellaneous

  • Previously, fetching specific game mode news raised ServiceUnavailable due to improper handling from Fortnite-API.com. This has been fixed within the API. Now, when no news is available, NotFound is raised instead. This change is also reflected in the documentation.

v3.0 Wrapper Rewrite

30 Aug 14:01
Compare
Choose a tag to compare

This release encompasses the Version 3.0 bump of the Fortnite API Python wrapper. This major transition gives the library a complete facelift, focusing on asynchronous functionality while still supporting the synchronous library you've come to know.

Features and Additions

  • Complete overhaul of every object, method, and property in the library. Now, fetching information from the API is done through methods on a Client and SyncClient class. This is to make the library easier to use and maintain, while still being welcoming for new programmers.
  • Complete overhaul of documentation. This includes a major shift to readthedocs powered by Sphinx for easier documentation.
  • Speed improvements for large endpoints, such as fetching all available game cosmetics at once.
  • Strictly type hinted with high code standards.

Migration & Getting started

Version 3.0 introduces breaking changes, so existing projects will need updates. To assist you, we've created a migration guide, to help make the transition as smooth as possible.

For new users, the new documentation provides everything you need to get started. Visit it at https://fortnite-api.readthedocs.io/.

Here's a quick example of how the new Client works:

import asyncio
import fortnite_api 

async def main() -> None:
    async with fortnite_api.Client() as client:
        all_cosmetics: fortnite_api.CosmeticsAll = await client.fetch_cosmetics_all()

        for br_cosmetic in all_cosmetics.br:
            print(br_cosmetic.name) 

if __name__ == "__main__":
    asyncio.run(main())

Fix offer image being optional

08 Aug 22:44
Compare
Choose a tag to compare
  • ShopMaterialInstanceImages.offer_image_url is now optional

Fix issue with new CosmeticCompatibleModes

24 May 14:14
Compare
Choose a tag to compare
  • Implemented a temporary fix, to handle new values for CosmeticCompatibleMode

New Shop Tile Sizes

03 May 19:47
Compare
Choose a tag to compare
  • Added new QUAD_WIDE and PENTA_WIDE ShopTileSizes

Update shop tile sizes

18 Apr 07:52
Compare
Choose a tag to compare
  • Update the values of the ShopTileSize, since with the latest shop rotation all have been changed

Fix issue with BrCosmeticType Booster value

29 Mar 11:38
Compare
Choose a tag to compare
  • BrCosmeticType booster cosmetic type got an inproper enum value that has been fixed

Add support for LEGO and Car Boost cosmetics

25 Mar 18:42
Compare
Choose a tag to compare
  • Add support for LEGO Builds, LEGO Decor Bundles and Car Boosts