Module ro_py.thumbnails
This file houses functions and classes that pertain to Roblox icons and thumbnails.
Expand source code
"""
This file houses functions and classes that pertain to Roblox icons and thumbnails.
"""
from ro_py.utilities.errors import InvalidShotTypeError
import enum
from ro_py.utilities.url import url
endpoint = url("thumbnails")
class ReturnPolicy(enum.Enum):
place_holder = "PlaceHolder"
auto_generated = "AutoGenerated"
force_auto_generated = "ForceAutoGenerated"
class ThumbnailType(enum.Enum):
avatar_full_body = 0
avatar_bust = 1
avatar_headshot = 2
class ThumbnailSize(enum.Enum):
size_30x30 = "30x30"
size_42x42 = "42x42"
size_48x48 = "48x48"
size_50x50 = "50x50"
size_60x62 = "60x62"
size_75x75 = "75x75"
size_110x110 = "110x110"
size_128x128 = "128x128"
size_140x140 = "140x140"
size_150x150 = "150x150"
size_160x100 = "160x100"
size_250x250 = "250x250"
size_256x144 = "256x144"
size_256x256 = "256x256"
size_300x250 = "300x240"
size_304x166 = "304x166"
size_384x216 = "384x216"
size_396x216 = "396x216"
size_420x420 = "420x420"
size_480x270 = "480x270"
size_512x512 = "512x512"
size_576x324 = "576x324"
size_720x720 = "720x720"
size_768x432 = "768x432"
class ThumbnailFormat(enum.Enum):
format_png = "Png"
format_jpg = "Jpeg"
format_jpeg = "Jpeg"
class GameThumbnailGenerator:
def __init__(self, requests, id):
self.requests = requests
self.id = id
async def get_game_icon(self, size=ThumbnailSize.size_50x50, file_format=ThumbnailFormat.format_png,
is_circular=False):
"""
Gets a game's icon.
Parameters
----------
size : ro_py.thumbnails.ThumbnailSize
The thumbnail size, formatted widthxheight.
file_format : ro_py.thumbnails.ThumbnailFormat
The thumbnail format
is_circular : bool
The circle thumbnail output parameter.
Returns
-------
Image URL
"""
file_format = file_format.value
size = size.value
game_icon_req = await self.requests.get(
url=endpoint + "v1/games/icons",
params={
"universeIds": str(self.id),
"returnPolicy": ReturnPolicy.place_holder.value,
"size": size,
"format": file_format,
"isCircular": is_circular
}
)
game_icon = game_icon_req.json()["data"][0]["imageUrl"]
return game_icon
class UserThumbnailGenerator:
def __init__(self, cso, roblox_id):
self.requests = cso.requests
self.id = roblox_id
async def get_avatar_image(self, shot_type=ThumbnailType.avatar_full_body, size=ThumbnailSize.size_48x48,
file_format=ThumbnailFormat.format_png, is_circular=False):
"""
Gets a full body, bust, or headshot image of the user.
Parameters
----------
shot_type : ro_py.thumbnails.ThumbnailType
Type of shot.
size : ro_py.thumbnails.ThumbnailSize
The thumbnail size.
file_format : ro_py.thumbnails.ThumbnailFormat
The thumbnail format
is_circular : bool
The circle thumbnail output parameter.
Returns
-------
Image URL
"""
shot_type = shot_type.value
file_format = file_format.value
size = size.value
shot_endpoint = endpoint + "v1/users/"
if shot_type == 0:
shot_endpoint = shot_endpoint + "avatar"
elif shot_type == 1:
shot_endpoint = shot_endpoint + "avatar-bust"
elif shot_type == 2:
shot_endpoint = shot_endpoint + "avatar-headshot"
else:
raise InvalidShotTypeError("Invalid shot type.")
shot_req = await self.requests.get(
url=shot_endpoint,
params={
"userIds": [self.id],
"size": size,
"format": file_format,
"isCircular": is_circular
}
)
return shot_req.json()["data"][0]["imageUrl"]
"""
class ThumbnailGenerator:
\"""
This object is used to generate thumbnails.
Parameters
----------
requests: Requests
Requests object.
\"""
def __init__(self, requests):
self.requests = requests
def get_group_icon(self, group, size=size_150x150, file_format=format_png, is_circular=False):
\"""
Gets a group's icon.
Parameters
----------
group: Group
The group.
size: str
The thumbnail size, formatted WIDTHxHEIGHT.
file_format: str
The thumbnail format.
is_circular: bool
Whether to output a circular version of the thumbnail.
\"""
group_icon_req = self.requests.get(
url=endpoint + "v1/groups/icons",
params={
"groupIds": str(group.id),
"size": size,
"file_format": file_format,
"isCircular": is_circular
}
)
group_icon = group_icon_req.json()["data"][0]["imageUrl"]
return group_icon
def get_game_icon(self, game, size=size_256x256, file_format=format_png, is_circular=False):
\"""
Gets a game's icon.
:param game: The game.
:param size: The thumbnail size, formatted widthxheight.
:param file_format: The thumbnail format
:param is_circular: The circle thumbnail output parameter.
:return: Image URL
\"""
game_icon_req = self.requests.get(
url=endpoint + "v1/games/icons",
params={
"universeIds": str(game.id),
"returnPolicy": PlaceHolder,
"size": size,
"file_format": file_format,
"isCircular": is_circular
}
)
game_icon = game_icon_req.json()["data"][0]["imageUrl"]
return game_icon
"""
Classes
class GameThumbnailGenerator (requests, id)-
Expand source code
class GameThumbnailGenerator: def __init__(self, requests, id): self.requests = requests self.id = id async def get_game_icon(self, size=ThumbnailSize.size_50x50, file_format=ThumbnailFormat.format_png, is_circular=False): """ Gets a game's icon. Parameters ---------- size : ro_py.thumbnails.ThumbnailSize The thumbnail size, formatted widthxheight. file_format : ro_py.thumbnails.ThumbnailFormat The thumbnail format is_circular : bool The circle thumbnail output parameter. Returns ------- Image URL """ file_format = file_format.value size = size.value game_icon_req = await self.requests.get( url=endpoint + "v1/games/icons", params={ "universeIds": str(self.id), "returnPolicy": ReturnPolicy.place_holder.value, "size": size, "format": file_format, "isCircular": is_circular } ) game_icon = game_icon_req.json()["data"][0]["imageUrl"] return game_iconMethods
async def get_game_icon(self, size=ThumbnailSize.size_50x50, file_format=ThumbnailFormat.format_png, is_circular=False)-
Gets a game's icon.
Parameters
size:ThumbnailSize- The thumbnail size, formatted widthxheight.
file_format:ThumbnailFormat- The thumbnail format
is_circular:bool- The circle thumbnail output parameter.
Returns
Image URL
Expand source code
async def get_game_icon(self, size=ThumbnailSize.size_50x50, file_format=ThumbnailFormat.format_png, is_circular=False): """ Gets a game's icon. Parameters ---------- size : ro_py.thumbnails.ThumbnailSize The thumbnail size, formatted widthxheight. file_format : ro_py.thumbnails.ThumbnailFormat The thumbnail format is_circular : bool The circle thumbnail output parameter. Returns ------- Image URL """ file_format = file_format.value size = size.value game_icon_req = await self.requests.get( url=endpoint + "v1/games/icons", params={ "universeIds": str(self.id), "returnPolicy": ReturnPolicy.place_holder.value, "size": size, "format": file_format, "isCircular": is_circular } ) game_icon = game_icon_req.json()["data"][0]["imageUrl"] return game_icon
class ReturnPolicy (value, names=None, *, module=None, qualname=None, type=None, start=1)-
An enumeration.
Expand source code
class ReturnPolicy(enum.Enum): place_holder = "PlaceHolder" auto_generated = "AutoGenerated" force_auto_generated = "ForceAutoGenerated"Ancestors
- enum.Enum
Class variables
var auto_generatedvar force_auto_generatedvar place_holder
class ThumbnailFormat (value, names=None, *, module=None, qualname=None, type=None, start=1)-
An enumeration.
Expand source code
class ThumbnailFormat(enum.Enum): format_png = "Png" format_jpg = "Jpeg" format_jpeg = "Jpeg"Ancestors
- enum.Enum
Class variables
var format_jpegvar format_jpgvar format_png
class ThumbnailSize (value, names=None, *, module=None, qualname=None, type=None, start=1)-
An enumeration.
Expand source code
class ThumbnailSize(enum.Enum): size_30x30 = "30x30" size_42x42 = "42x42" size_48x48 = "48x48" size_50x50 = "50x50" size_60x62 = "60x62" size_75x75 = "75x75" size_110x110 = "110x110" size_128x128 = "128x128" size_140x140 = "140x140" size_150x150 = "150x150" size_160x100 = "160x100" size_250x250 = "250x250" size_256x144 = "256x144" size_256x256 = "256x256" size_300x250 = "300x240" size_304x166 = "304x166" size_384x216 = "384x216" size_396x216 = "396x216" size_420x420 = "420x420" size_480x270 = "480x270" size_512x512 = "512x512" size_576x324 = "576x324" size_720x720 = "720x720" size_768x432 = "768x432"Ancestors
- enum.Enum
Class variables
var size_110x110var size_128x128var size_140x140var size_150x150var size_160x100var size_250x250var size_256x144var size_256x256var size_300x250var size_304x166var size_30x30var size_384x216var size_396x216var size_420x420var size_42x42var size_480x270var size_48x48var size_50x50var size_512x512var size_576x324var size_60x62var size_720x720var size_75x75var size_768x432
class ThumbnailType (value, names=None, *, module=None, qualname=None, type=None, start=1)-
An enumeration.
Expand source code
class ThumbnailType(enum.Enum): avatar_full_body = 0 avatar_bust = 1 avatar_headshot = 2Ancestors
- enum.Enum
Class variables
var avatar_bustvar avatar_full_bodyvar avatar_headshot
class UserThumbnailGenerator (cso, roblox_id)-
Expand source code
class UserThumbnailGenerator: def __init__(self, cso, roblox_id): self.requests = cso.requests self.id = roblox_id async def get_avatar_image(self, shot_type=ThumbnailType.avatar_full_body, size=ThumbnailSize.size_48x48, file_format=ThumbnailFormat.format_png, is_circular=False): """ Gets a full body, bust, or headshot image of the user. Parameters ---------- shot_type : ro_py.thumbnails.ThumbnailType Type of shot. size : ro_py.thumbnails.ThumbnailSize The thumbnail size. file_format : ro_py.thumbnails.ThumbnailFormat The thumbnail format is_circular : bool The circle thumbnail output parameter. Returns ------- Image URL """ shot_type = shot_type.value file_format = file_format.value size = size.value shot_endpoint = endpoint + "v1/users/" if shot_type == 0: shot_endpoint = shot_endpoint + "avatar" elif shot_type == 1: shot_endpoint = shot_endpoint + "avatar-bust" elif shot_type == 2: shot_endpoint = shot_endpoint + "avatar-headshot" else: raise InvalidShotTypeError("Invalid shot type.") shot_req = await self.requests.get( url=shot_endpoint, params={ "userIds": [self.id], "size": size, "format": file_format, "isCircular": is_circular } ) return shot_req.json()["data"][0]["imageUrl"]Methods
async def get_avatar_image(self, shot_type=ThumbnailType.avatar_full_body, size=ThumbnailSize.size_48x48, file_format=ThumbnailFormat.format_png, is_circular=False)-
Gets a full body, bust, or headshot image of the user.
Parameters
shot_type:ThumbnailType- Type of shot.
size:ThumbnailSize- The thumbnail size.
file_format:ThumbnailFormat- The thumbnail format
is_circular:bool- The circle thumbnail output parameter.
Returns
Image URL
Expand source code
async def get_avatar_image(self, shot_type=ThumbnailType.avatar_full_body, size=ThumbnailSize.size_48x48, file_format=ThumbnailFormat.format_png, is_circular=False): """ Gets a full body, bust, or headshot image of the user. Parameters ---------- shot_type : ro_py.thumbnails.ThumbnailType Type of shot. size : ro_py.thumbnails.ThumbnailSize The thumbnail size. file_format : ro_py.thumbnails.ThumbnailFormat The thumbnail format is_circular : bool The circle thumbnail output parameter. Returns ------- Image URL """ shot_type = shot_type.value file_format = file_format.value size = size.value shot_endpoint = endpoint + "v1/users/" if shot_type == 0: shot_endpoint = shot_endpoint + "avatar" elif shot_type == 1: shot_endpoint = shot_endpoint + "avatar-bust" elif shot_type == 2: shot_endpoint = shot_endpoint + "avatar-headshot" else: raise InvalidShotTypeError("Invalid shot type.") shot_req = await self.requests.get( url=shot_endpoint, params={ "userIds": [self.id], "size": size, "format": file_format, "isCircular": is_circular } ) return shot_req.json()["data"][0]["imageUrl"]