Releases: Fortnite-API/py-wrapper
v3.1.0
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 toNewDisplayAsset
.- 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
andtime_window
parameters were not respected when fetching stats. Playlist.images
now returnsNone
when no images are available, instead of an empty dict.- Bug fix for returning naive
datetime
objects in rare cases. Alldatetime
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
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
andSyncClient
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
ShopMaterialInstanceImages.offer_image_url
is now optional
Fix issue with new CosmeticCompatibleModes
- Implemented a temporary fix, to handle new values for
CosmeticCompatibleMode
New Shop Tile Sizes
- Added new
QUAD_WIDE
andPENTA_WIDE
ShopTileSize
s
Update shop tile sizes
- Update the values of the
ShopTileSize
, since with the latest shop rotation all have been changed
Fix issue with BrCosmeticType Booster value
- BrCosmeticType booster cosmetic type got an inproper enum value that has been fixed
Add support for LEGO and Car Boost cosmetics
- Add support for LEGO Builds, LEGO Decor Bundles and Car Boosts
Add new Cosmetic types and Rarities
- Added lamborghini rarity
- Added JAM_TRACK, AURA and TRAIL BrCosmeticType
- Add support for newer aiohttp versions
- Add ROCKET_RACING and FESTIVAL CosmeticCompatibleMode
- Default to NORMAL ShopTileSize. This is the case when Epic messed it up and use "nomal" instead of "normal"
- Fixed an issue, when shop is empty
Add new Cosmetics and new cosmetics endpoint
- Add support for cosmetic and new cosmetics endpoint
- Implement enum for shop material primary mode