Module ro_py.badges
This file houses functions and classes that pertain to game-awarded badges.
Expand source code
"""
This file houses functions and classes that pertain to game-awarded badges.
"""
from ro_py.utilities.clientobject import ClientObject
from ro_py.bases.baseasset import BaseAsset
from ro_py.utilities.url import url
endpoint = url("badges")
class BadgeStatistics:
"""
Represents a badge's statistics.
"""
def __init__(self, past_date_awarded_count, awarded_count, win_rate_percentage):
self.past_date_awarded_count = past_date_awarded_count
self.awarded_count = awarded_count
self.win_rate_percentage = win_rate_percentage
class Badge(ClientObject, BaseAsset):
"""
Represents a game-awarded badge.
Parameters
----------
cso : ro_py.utilities.clientobject.ClientSharedObject
ClientSharedObject.
badge_id
ID of the badge.
"""
def __init__(self, cso, badge_id):
ClientObject.__init__(self)
BaseAsset.__init__(self)
self.id = badge_id
self.cso = cso
self.requests = cso.requests
self.name = None
self.description = None
self.display_name = None
self.display_description = None
self.enabled = None
self.statistics = None
async def update(self):
"""
Updates the badge's information.
"""
badge_info_req = await self.requests.get(endpoint + f"v1/badges/{self.id}")
badge_info = badge_info_req.json()
self.name = badge_info["name"]
self.description = badge_info["description"]
self.display_name = badge_info["displayName"]
self.display_description = badge_info["displayDescription"]
self.enabled = badge_info["enabled"]
statistics_info = badge_info["statistics"]
self.statistics = BadgeStatistics(
statistics_info["pastDayAwardedCount"],
statistics_info["awardedCount"],
statistics_info["winRatePercentage"]
)
async def owned_by(self, user):
"""
Checks if a user was awarded this badge and grabs the time that they were awarded it.
Functionally identical to ro_py.users.User.has_badge.
Parameters
----------
user: ro_py.users.BaseUser
User to check badge ownership.
Returns
-------
tuple[bool, datetime.datetime]
"""
return await user.has_badge(self)
Classes
class Badge (cso, badge_id)
-
Represents a game-awarded badge.
Parameters
cso
:ClientSharedObject
- ClientSharedObject.
badge_id
- ID of the badge.
Expand source code
class Badge(ClientObject, BaseAsset): """ Represents a game-awarded badge. Parameters ---------- cso : ro_py.utilities.clientobject.ClientSharedObject ClientSharedObject. badge_id ID of the badge. """ def __init__(self, cso, badge_id): ClientObject.__init__(self) BaseAsset.__init__(self) self.id = badge_id self.cso = cso self.requests = cso.requests self.name = None self.description = None self.display_name = None self.display_description = None self.enabled = None self.statistics = None async def update(self): """ Updates the badge's information. """ badge_info_req = await self.requests.get(endpoint + f"v1/badges/{self.id}") badge_info = badge_info_req.json() self.name = badge_info["name"] self.description = badge_info["description"] self.display_name = badge_info["displayName"] self.display_description = badge_info["displayDescription"] self.enabled = badge_info["enabled"] statistics_info = badge_info["statistics"] self.statistics = BadgeStatistics( statistics_info["pastDayAwardedCount"], statistics_info["awardedCount"], statistics_info["winRatePercentage"] ) async def owned_by(self, user): """ Checks if a user was awarded this badge and grabs the time that they were awarded it. Functionally identical to ro_py.users.User.has_badge. Parameters ---------- user: ro_py.users.BaseUser User to check badge ownership. Returns ------- tuple[bool, datetime.datetime] """ return await user.has_badge(self)
Ancestors
Methods
async def owned_by(self, user)
-
Checks if a user was awarded this badge and grabs the time that they were awarded it. Functionally identical to ro_py.users.User.has_badge.
Parameters
user
:ro_py.users.BaseUser
- User to check badge ownership.
Returns
tuple[bool, datetime.datetime]
Expand source code
async def owned_by(self, user): """ Checks if a user was awarded this badge and grabs the time that they were awarded it. Functionally identical to ro_py.users.User.has_badge. Parameters ---------- user: ro_py.users.BaseUser User to check badge ownership. Returns ------- tuple[bool, datetime.datetime] """ return await user.has_badge(self)
async def update(self)
-
Updates the badge's information.
Expand source code
async def update(self): """ Updates the badge's information. """ badge_info_req = await self.requests.get(endpoint + f"v1/badges/{self.id}") badge_info = badge_info_req.json() self.name = badge_info["name"] self.description = badge_info["description"] self.display_name = badge_info["displayName"] self.display_description = badge_info["displayDescription"] self.enabled = badge_info["enabled"] statistics_info = badge_info["statistics"] self.statistics = BadgeStatistics( statistics_info["pastDayAwardedCount"], statistics_info["awardedCount"], statistics_info["winRatePercentage"] )
class BadgeStatistics (past_date_awarded_count, awarded_count, win_rate_percentage)
-
Represents a badge's statistics.
Expand source code
class BadgeStatistics: """ Represents a badge's statistics. """ def __init__(self, past_date_awarded_count, awarded_count, win_rate_percentage): self.past_date_awarded_count = past_date_awarded_count self.awarded_count = awarded_count self.win_rate_percentage = win_rate_percentage