# fortnitepy
[![Supported py versions](https://img.shields.io/pypi/pyversions/fortnitepy.svg)](https://pypi.org/project/fortnitepy/)
[![Current pypi version](https://img.shields.io/pypi/v/fortnitepy.svg)](https://pypi.org/project/fortnitepy/)
[![Donate link](https://img.shields.io/badge/paypal-donate-blue.svg)](https://www.paypal.me/terbau)
Asynchronous library for interacting with Fortnite and EpicGames' API and XMPP services.
**Note:** This library is still under developement so breaking changes might happen at any time.
**Some key features:**
- Full support for Friends.
- Support for XMPP events including friend and party messages + many more.
- Support for Parties.
- Support for Battle Royale stats.
# Documentation
https://fortnitepy.readthedocs.io/en/latest/
# Installing
```
# windows
py -3 -m pip install -U fortnitepy
# linux
python3 -m pip install -U fortnitepy
```
# Basic usage
```py
import fortnitepy
import json
import os
from fortnitepy.ext import commands
email = 'email@email.com'
password = 'password1'
filename = 'device_auths.json'
def get_device_auth_details():
if os.path.isfile(filename):
with open(filename, 'r') as fp:
return json.load(fp)
return {}
def store_device_auth_details(email, details):
existing = get_device_auth_details()
existing[email] = details
with open(filename, 'w') as fp:
json.dump(existing, fp)
device_auth_details = get_device_auth_details().get(email, {})
bot = commands.Bot(
command_prefix='!',
auth=fortnitepy.AdvancedAuth(
email=email,
password=password,
prompt_authorization_code=True,
prompt_code_if_invalid=True,
delete_existing_device_auths=True,
**device_auth_details
)
)
@bot.event
async def event_device_auth_generate(details, email):
store_device_auth_details(email, details)
@bot.event
async def event_ready():
print('----------------')
print('Bot ready as')
print(bot.user.display_name)
print(bot.user.id)
print('----------------')
@bot.event
async def event_friend_request(request):
await request.accept()
@bot.command()
async def hello(ctx):
await ctx.send('Hello!')
bot.run()
```
# Authorization
How to get a one time authorization code:
1. Log into the epic games account of your choice [here](https://www.epicgames.com/id/logout?redirectUrl=https%3A//www.epicgames.com/id/login%3FredirectUrl%3Dhttps%253A%252F%252Fwww.epicgames.com%252Fid%252Fapi%252Fredirect%253FclientId%253D3446cd72694c4a4485d81b77adbb2141%2526responseType%253Dcode).
2. Copy the hex part from the url that shows up as showcased by the image below:
![Authorization Code](https://raw.githubusercontent.com/Terbau/fortnitepy/dev/docs/resources/images/authorization_code.png)
# Credit
Thanks to [Kysune](https://github.com/SzymonLisowiec), [iXyles](https://github.com/iXyles), [Vrekt](https://github.com/Vrekt) and [amrsatrio](https://github.com/Amrsatrio) for ideas and/or work that this library is built upon.
Also thanks to [discord.py](https://github.com/Rapptz/discord.py) for much inspiration code-wise.
# Need help?
If you need more help feel free to join this [discord server](https://discord.gg/rnk869s).