Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
A basic wrapper for the [Brawl Stars API](https://developer.brawlstars.com/#/).

## Features
* Easy to use with OOP design
* Easy to use with OOP design and Context Manager
* Get a player's profile and battle log by just a tag
* Get a club and all its member
* Get the top 200 clubs , players, or a specific brawler in the world or a region
* Get Information about a map, event, brawler!!!
* Get the top 200 clubs, players, or a specific brawler in the world or a region
* Get Information about a map, event, brawler!

## Installation
To install the library run the following command:
Expand All @@ -22,7 +22,7 @@ pip install brawlpy
```
To install the development version run the following command:
```
pip install git+https://github.com/PyStarr/BrawlPy
pip install git+https://github.com/BrandoDev/BrawlPy
```

## Example
Expand All @@ -34,7 +34,8 @@ import asyncio
client = brawlpy.Client('your_api_key_here') # Enter your api key here

async def main():
player = await client.get_player("JP20RUR2")
async with client:
player = await client.get_player("JP20RUR2")

print(player)

Expand All @@ -51,7 +52,8 @@ import asyncio
client = brawlpy.Client('your_api_key_here') # Enter your api key here

async def brawlPy():
club = await client.get_club("PVQ0RP90")
async with client:
club = await client.get_club("PVQ0RP90")

print(club)

Expand Down
9 changes: 3 additions & 6 deletions brawlpy/API.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
from .errors import *

class API:
def __init__(self,version=1) -> None:

self.BASE = 'https://api.brawlstars.com/v{}'.format(version)
def __init__(self, version=1) -> None:
self.BASE = "https://api.brawlstars.com/v{}".format(version)
self.PLAYER = self.BASE + "/players/{playerTag}"
self.CLUB = self.BASE + "/clubs/{clubTag}"
self.RANKINGS = self.BASE + "/rankings/{countryCode}"
self.BRAWLERS = self.BASE + "/brawlers"
self.BRAWLER = self.BASE + "/brawlers/{id}"
self.EVENTS = self.BASE + "/events/rotation"
self.EVENTS = self.BASE + "/events/rotation"
42 changes: 36 additions & 6 deletions brawlpy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,40 @@

from .API import API
from .main import Client
from .objects import *
from .objects import (
Player,
Club,
ClubMember,
ClubRanking,
PlayerRanking,
BrawlerRanking,
Event,
Brawler,
PlayerBrawler,
Gadget,
StarPower,
Gear,
)

__title__ = 'brawlpy'
__author__ = 'PyStarr'
__license__ = 'MIT'
__copyright__ = 'Copyright 2022-Present PyStarr'
__version__ = '1.2.5'
__all__ = [
"API",
"Client",
"Player",
"Club",
"ClubMember",
"ClubRanking",
"PlayerRanking",
"BrawlerRanking",
"Event",
"Brawler",
"PlayerBrawler",
"Gadget",
"StarPower",
"Gear",
]

__title__ = "brawlpy"
__author__ = "PyStarr"
__license__ = "MIT"
__copyright__ = "Copyright 2022-Present PyStarr"
__version__ = "1.3.0"
35 changes: 22 additions & 13 deletions brawlpy/errors.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
class Errors(Exception):
"""The Base Class for all errors"""

def __init__(self,code,message):
def __init__(self, code, message):
pass

def __str__(self):
return self.message


class Forbidden(Errors):
"""Raised If you API key is invalid"""

Expand All @@ -16,63 +17,71 @@ def __init__(self, code, url, message):
self.message = message
super().__init__(self.code, self.message)


class TagNotFoundError(Errors):
"""Raised when a invalid player or club tag is passed"""

def __init__(self, code, **kwargs):
self.code = code
self.message = "An Invalid Tag has been passed!"
self.reason = kwargs.pop('reason',None)
self.invalid_characters = kwargs.pop('invalid_characters', [])
self.reason = kwargs.pop("reason", None)
self.invalid_characters = kwargs.pop("invalid_characters", [])
if self.reason:
self.message += ''.join(f"\n Reason : {self.reason}")
self.message += "".join(f"\n Reason : {self.reason}")
elif self.invalid_characters:
self.message += ''.join(f"\n Invalid characters : {self.invalid_characters}")
self.message += "".join(
f"\n Invalid characters : {self.invalid_characters}"
)
super().__init__(self.code, self.message)


class RateLimitError(Errors):
"""Raised when the rate limit is reached."""

def __init__(self, code, url):
self.code = code
self.url = url
self.message = 'The rate limit has been reached.'
self.message = "The rate limit has been reached."
super().__init__(self.code, self.message)


class UnexpectedError(Errors):
"""Raised if an unknown error has occured."""

def __init__(self, url, code, text):
self.code = code
self.url = url
self.message = f'An unexpected error has occured.\n{text}'
self.message = f"An unexpected error has occured.\n{text}"
super().__init__(self.code, self.message)


class ServerError(Errors):
"""Raised if the API is down."""

def __init__(self, code, url):
self.code = code
self.url = url
self.message = 'The API is down. Please be patient and try again later.'
self.message = "The API is down. Please be patient and try again later."
super().__init__(self.code, self.message)


class BrawlerNotFound(Errors):
"""Raised when Invalid brawlerID has been passed"""

def __init__(self,code,id = None):
def __init__(self, code, id=None):
self.code = code
if id:
self.message = 'Invalid ID passed! {}'.format(id)
self.message = "Invalid ID passed! {}".format(id)

super().__init__(self.code, self.message)


class CountryNotFound(Errors):
"""Raised when Invalid countryCode has been passed"""

def __init__(self,code,countryCode = None):
def __init__(self, code, countryCode=None):
self.code = code
if id:
self.message = 'Invalid countryCode passed! {}'.format(countryCode)
self.message = "Invalid countryCode passed! {}".format(countryCode)

super().__init__(self.code, self.message)
super().__init__(self.code, self.message)
108 changes: 54 additions & 54 deletions brawlpy/icons.py
Original file line number Diff line number Diff line change
@@ -1,56 +1,56 @@
brawlers = {
"16000000" : "https://drive.google.com/uc?export=view&id=1dAvFR908593LzntFYVsJXr_um4qiFRwz",
"16000001" : "https://drive.google.com/uc?export=view&id=1xHmMCxksAd3KWuifEpGKMVzLugYhmFvD",
"16000002" : "https://drive.google.com/uc?export=view&id=1SOMlveroyDJEXULdJ8_WkEKWtDp74kxa",
"16000003" : "https://drive.google.com/uc?export=view&id=10e3izEMpLRq5S_1g9REZZYFv6a_Lszg3",
"16000004" : "https://drive.google.com/uc?export=view&id=1WqsVnqCp5BhMSaXEAdVJMFhodl4x1c6S",
"16000005" : "https://drive.google.com/uc?export=view&id=1aW9_LnZYGbfIIAEMeRD-OUBUJ2o8zdCy",
"16000006" : "https://drive.google.com/uc?export=view&id=14Ln4niaVoZQS5U-kxHbjb_M3FeJQ4fcv",
"16000007" : "https://drive.google.com/uc?export=view&id=1i_XawzubrMsTwibnCleEGgILkZWJLPeJ",
"16000008" : "https://drive.google.com/uc?export=view&id=1rob9jd_cMT1Dj_qt7RRjWegwGQca1AKX",
"16000009" : "https://drive.google.com/uc?export=view&id=18ygqoJ2FKeKY5EqmhcBRTG5UQxry2qN_",
"16000010" : "https://drive.google.com/uc?export=view&id=17xoy5Aw4dpJJID97eKbcX_IcaG6OA9I7",
"16000011" : "https://drive.google.com/uc?export=view&id=1H0MZlrGvntFduEcqaSHm0TYgx5DE-Wlc",
"16000012" : "https://drive.google.com/uc?export=view&id=16tLAAVvb_KwhrEOqPRsFTG01D_E8lKye",
"16000013" : "https://drive.google.com/uc?export=view&id=1aQlEFbymNtxn0nkDP2GoZFDiKsMR9D4f",
"16000014" : "https://drive.google.com/uc?export=view&id=1Fkct5iCvdjMWi-g3KwdCck1_OXs3sHlC",
"16000015" : "https://drive.google.com/uc?export=view&id=15HiIxoF9194HOIFuxqUTQ-h5-YQSEoVG",
"16000016" : "https://drive.google.com/uc?export=view&id=1GeRdbB_T6QH4q77V5DZq_vkXnvfkZpYk",
"16000017" : "https://drive.google.com/uc?export=view&id=1LjGfus6pXt9A2hYEeOfBIcrcTSgiAN1_",
"16000018" : "https://drive.google.com/uc?export=view&id=1UTB7mep0PrUT9p1MsgW25YhNjda5gsg0",
"16000019" : "https://drive.google.com/uc?export=view&id=1EWAOzE0kNc3cw3DH7RfM-_6Jz-D9ALoo",
"16000020" : "https://drive.google.com/uc?export=view&id=1nQVBdJb6PkdwaV566CGM21uA7ttJDhvY",
"16000021" : "https://drive.google.com/uc?export=view&id=1mbICcY_h1YdUxvoSZIToS14JUaZvbE2l",
"16000022" : "https://drive.google.com/uc?export=view&id=1udUF9M8ino0A3ZIGw8ptSaZC0lh9LTWs",
"16000023" : "https://drive.google.com/uc?export=view&id=1Q2-FHGHUoNfmovn1ZObRjr_i6KJh610Q",
"16000024" : "https://drive.google.com/uc?export=view&id=1qfWtCalsrYzQckKFOIBvNY7nDKO8IuM9",
"16000025" : "https://drive.google.com/uc?export=view&id=1YNQMCne024WiNwklnhGsYXizuli7uoMl",
"16000026" : "https://drive.google.com/uc?export=view&id=1X0Fp62TTlIQ6PX8gipq0XuN9MCAdFlpa",
"16000027" : "https://drive.google.com/uc?export=view&id=1xLRF0bCblZkukyfM2h0p_N6NcPNOY77a",
"16000028" : "https://drive.google.com/uc?export=view&id=1Hzk5vLYHSb0TVGf0LjrX0G2TRyQqaIvc",
"16000029" : "https://drive.google.com/uc?export=view&id=14X3DhdU2XzzFU3sxOK2mIyfuqeuGIdO5",
"16000030" : "https://drive.google.com/uc?export=view&id=1qv2PjG2e-AU2Qhe0IGm7M7F0-urKN998",
"16000031" : "https://drive.google.com/uc?export=view&id=1U3neaBogNuy9oGY9EJqJ6wWnG_h4NRLk",
"16000032" : "https://drive.google.com/uc?export=view&id=1XjQA6HwUkQuJMLNKyT2Drcu8xtpKYz6m",
"16000034" : "https://drive.google.com/uc?export=view&id=1xsmR6sM71s7wwZThypyESVjvjBrN4c50",
"16000035" : "https://drive.google.com/uc?export=view&id=15NspTtmz6xrfr7lY-ewl7-686s64Xpaf",
"16000036" : "https://drive.google.com/uc?export=view&id=1xLvjeONLrU-wOUhxvv_FHZAqFCf03gtk",
"16000037" : "https://drive.google.com/uc?export=view&id=1rVLeFZpVz5Mi2-1d6smUHXVSvvWJzjFU",
"16000038" : "https://drive.google.com/uc?export=view&id=16jHS2sqJlDjy0byy4Rr3LZsWQJdfMHqJ",
"16000039" : "https://drive.google.com/uc?export=view&id=1K7Ah2vU0BbEn1AlYeMaynqUXdHxWNfgC",
"16000040" : "https://drive.google.com/uc?export=view&id=1V9rczuRWlZWcM-lTkNmQiPlGoAo-TkZK",
"16000041" : "https://drive.google.com/uc?export=view&id=1PRKXASBnSw1Z6Dg9UcVn9JhLq1guZQf6",
"16000042" : "https://drive.google.com/uc?export=view&id=1WP3X8pH_THrfXarX1gWUxyivV2h3uz3v",
"16000043" : "https://drive.google.com/uc?export=view&id=1-AA3rab9yKtXvtiU1HW3S-vwLNjPZofO",
"16000044" : "https://drive.google.com/uc?export=view&id=1ovyRjUNZGczg2KNIdvf-CkSjnMLdcgpL",
"16000045" : "https://drive.google.com/uc?export=view&id=12VBQqRTEDydB6DvUHTt6EZQAoci2pGe6",
"16000046" : "https://drive.google.com/uc?export=view&id=1idOjVsdgILT4ZFZ1Of7veixGNQYLcoEJ",
"16000047" : "https://drive.google.com/uc?export=view&id=1O6wdsVcUsB8-sLcfodAV5xRmwVaVo9eD",
"16000048" : "https://drive.google.com/uc?export=view&id=14Y-4BYVo2l2sn_3NEji_48FOCLNbeOKk",
"16000049" : "https://drive.google.com/uc?export=view&id=1EBqNyrgq2-RPVYIHXTgWjOfCevsCzGfA",
"16000050" : "https://drive.google.com/uc?export=view&id=1AQ32wTsnKM564EnGa1wEZ6n7dNnQ_L0A",
"16000051" : "https://drive.google.com/uc?export=view&id=1XbbWDTLTs5Ms3ogqLpKyOqfEwg6k7ED0",
"16000052" : "https://drive.google.com/uc?export=view&id=18dg1sJLDZc-pTBaKj4HTsSDkxypHfqNQ",
"16000053" : "https://drive.google.com/uc?export=view&id=1lQ_mZd65ctx6YuhstrUBclptIvoAS6yl",
"16000054" : "https://drive.google.com/uc?export=view&id=1Ujkutn8ovAs_9uEu9F590jhwNGCZRK-_"
"16000000": "https://drive.google.com/uc?export=view&id=1dAvFR908593LzntFYVsJXr_um4qiFRwz",
"16000001": "https://drive.google.com/uc?export=view&id=1xHmMCxksAd3KWuifEpGKMVzLugYhmFvD",
"16000002": "https://drive.google.com/uc?export=view&id=1SOMlveroyDJEXULdJ8_WkEKWtDp74kxa",
"16000003": "https://drive.google.com/uc?export=view&id=10e3izEMpLRq5S_1g9REZZYFv6a_Lszg3",
"16000004": "https://drive.google.com/uc?export=view&id=1WqsVnqCp5BhMSaXEAdVJMFhodl4x1c6S",
"16000005": "https://drive.google.com/uc?export=view&id=1aW9_LnZYGbfIIAEMeRD-OUBUJ2o8zdCy",
"16000006": "https://drive.google.com/uc?export=view&id=14Ln4niaVoZQS5U-kxHbjb_M3FeJQ4fcv",
"16000007": "https://drive.google.com/uc?export=view&id=1i_XawzubrMsTwibnCleEGgILkZWJLPeJ",
"16000008": "https://drive.google.com/uc?export=view&id=1rob9jd_cMT1Dj_qt7RRjWegwGQca1AKX",
"16000009": "https://drive.google.com/uc?export=view&id=18ygqoJ2FKeKY5EqmhcBRTG5UQxry2qN_",
"16000010": "https://drive.google.com/uc?export=view&id=17xoy5Aw4dpJJID97eKbcX_IcaG6OA9I7",
"16000011": "https://drive.google.com/uc?export=view&id=1H0MZlrGvntFduEcqaSHm0TYgx5DE-Wlc",
"16000012": "https://drive.google.com/uc?export=view&id=16tLAAVvb_KwhrEOqPRsFTG01D_E8lKye",
"16000013": "https://drive.google.com/uc?export=view&id=1aQlEFbymNtxn0nkDP2GoZFDiKsMR9D4f",
"16000014": "https://drive.google.com/uc?export=view&id=1Fkct5iCvdjMWi-g3KwdCck1_OXs3sHlC",
"16000015": "https://drive.google.com/uc?export=view&id=15HiIxoF9194HOIFuxqUTQ-h5-YQSEoVG",
"16000016": "https://drive.google.com/uc?export=view&id=1GeRdbB_T6QH4q77V5DZq_vkXnvfkZpYk",
"16000017": "https://drive.google.com/uc?export=view&id=1LjGfus6pXt9A2hYEeOfBIcrcTSgiAN1_",
"16000018": "https://drive.google.com/uc?export=view&id=1UTB7mep0PrUT9p1MsgW25YhNjda5gsg0",
"16000019": "https://drive.google.com/uc?export=view&id=1EWAOzE0kNc3cw3DH7RfM-_6Jz-D9ALoo",
"16000020": "https://drive.google.com/uc?export=view&id=1nQVBdJb6PkdwaV566CGM21uA7ttJDhvY",
"16000021": "https://drive.google.com/uc?export=view&id=1mbICcY_h1YdUxvoSZIToS14JUaZvbE2l",
"16000022": "https://drive.google.com/uc?export=view&id=1udUF9M8ino0A3ZIGw8ptSaZC0lh9LTWs",
"16000023": "https://drive.google.com/uc?export=view&id=1Q2-FHGHUoNfmovn1ZObRjr_i6KJh610Q",
"16000024": "https://drive.google.com/uc?export=view&id=1qfWtCalsrYzQckKFOIBvNY7nDKO8IuM9",
"16000025": "https://drive.google.com/uc?export=view&id=1YNQMCne024WiNwklnhGsYXizuli7uoMl",
"16000026": "https://drive.google.com/uc?export=view&id=1X0Fp62TTlIQ6PX8gipq0XuN9MCAdFlpa",
"16000027": "https://drive.google.com/uc?export=view&id=1xLRF0bCblZkukyfM2h0p_N6NcPNOY77a",
"16000028": "https://drive.google.com/uc?export=view&id=1Hzk5vLYHSb0TVGf0LjrX0G2TRyQqaIvc",
"16000029": "https://drive.google.com/uc?export=view&id=14X3DhdU2XzzFU3sxOK2mIyfuqeuGIdO5",
"16000030": "https://drive.google.com/uc?export=view&id=1qv2PjG2e-AU2Qhe0IGm7M7F0-urKN998",
"16000031": "https://drive.google.com/uc?export=view&id=1U3neaBogNuy9oGY9EJqJ6wWnG_h4NRLk",
"16000032": "https://drive.google.com/uc?export=view&id=1XjQA6HwUkQuJMLNKyT2Drcu8xtpKYz6m",
"16000034": "https://drive.google.com/uc?export=view&id=1xsmR6sM71s7wwZThypyESVjvjBrN4c50",
"16000035": "https://drive.google.com/uc?export=view&id=15NspTtmz6xrfr7lY-ewl7-686s64Xpaf",
"16000036": "https://drive.google.com/uc?export=view&id=1xLvjeONLrU-wOUhxvv_FHZAqFCf03gtk",
"16000037": "https://drive.google.com/uc?export=view&id=1rVLeFZpVz5Mi2-1d6smUHXVSvvWJzjFU",
"16000038": "https://drive.google.com/uc?export=view&id=16jHS2sqJlDjy0byy4Rr3LZsWQJdfMHqJ",
"16000039": "https://drive.google.com/uc?export=view&id=1K7Ah2vU0BbEn1AlYeMaynqUXdHxWNfgC",
"16000040": "https://drive.google.com/uc?export=view&id=1V9rczuRWlZWcM-lTkNmQiPlGoAo-TkZK",
"16000041": "https://drive.google.com/uc?export=view&id=1PRKXASBnSw1Z6Dg9UcVn9JhLq1guZQf6",
"16000042": "https://drive.google.com/uc?export=view&id=1WP3X8pH_THrfXarX1gWUxyivV2h3uz3v",
"16000043": "https://drive.google.com/uc?export=view&id=1-AA3rab9yKtXvtiU1HW3S-vwLNjPZofO",
"16000044": "https://drive.google.com/uc?export=view&id=1ovyRjUNZGczg2KNIdvf-CkSjnMLdcgpL",
"16000045": "https://drive.google.com/uc?export=view&id=12VBQqRTEDydB6DvUHTt6EZQAoci2pGe6",
"16000046": "https://drive.google.com/uc?export=view&id=1idOjVsdgILT4ZFZ1Of7veixGNQYLcoEJ",
"16000047": "https://drive.google.com/uc?export=view&id=1O6wdsVcUsB8-sLcfodAV5xRmwVaVo9eD",
"16000048": "https://drive.google.com/uc?export=view&id=14Y-4BYVo2l2sn_3NEji_48FOCLNbeOKk",
"16000049": "https://drive.google.com/uc?export=view&id=1EBqNyrgq2-RPVYIHXTgWjOfCevsCzGfA",
"16000050": "https://drive.google.com/uc?export=view&id=1AQ32wTsnKM564EnGa1wEZ6n7dNnQ_L0A",
"16000051": "https://drive.google.com/uc?export=view&id=1XbbWDTLTs5Ms3ogqLpKyOqfEwg6k7ED0",
"16000052": "https://drive.google.com/uc?export=view&id=18dg1sJLDZc-pTBaKj4HTsSDkxypHfqNQ",
"16000053": "https://drive.google.com/uc?export=view&id=1lQ_mZd65ctx6YuhstrUBclptIvoAS6yl",
"16000054": "https://drive.google.com/uc?export=view&id=1Ujkutn8ovAs_9uEu9F590jhwNGCZRK-_",
}
Loading