Module aethersprite.common
Common functions module
Global variables
var DATETIME_FORMAT
-
Formatting string for datetime objects
var DAY
-
One day in seconds
var FIFTEEN_MINS
-
15 minutes in seconds
var HOUR
-
One hour in seconds
var MINUTE
-
One minute in seconds
Functions
def get_channel_for_id(guild, id: int) ‑> str | None
-
Expand source code
def get_channel_for_id(guild, id: int) -> str | None: """ Return channel name for given guild and channel ID. Args: guild: The guild object to search id: The channel ID to search for Returns: The name of the channel """ chans = [c.name for c in guild.channels if c.id == id] return chans[0] if len(chans) else None
Return channel name for given guild and channel ID.
Args
guild
- The guild object to search
id
- The channel ID to search for
Returns
The name of the channel
def get_id_for_channel(guild, channel: str) ‑> int | None
-
Expand source code
def get_id_for_channel(guild, channel: str) -> int | None: """ Return channel ID for given guild and channel name. Args: guild: The guild object to search channel: The channel to search for Returns: The ID of the channel """ channel = channel.lower() if channel is not None else channel ids = [c.id for c in guild.channels if c.name.lower() == channel] return ids[0] if len(ids) else None
Return channel ID for given guild and channel name.
Args
guild
- The guild object to search
channel
- The channel to search for
Returns
The ID of the channel
def get_id_for_role(guild, role: str) ‑> int | None
-
Expand source code
def get_id_for_role(guild, role: str) -> int | None: """ Return role ID for given guild and role name. Args: guild: The guild object to search role: The role to search for Returns: The ID of the role """ role = role.lower() if role is not None else role ids = [c.id for c in guild.roles if c.name.lower() == role] return ids[0] if len(ids) else None
Return role ID for given guild and role name.
Args
guild
- The guild object to search
role
- The role to search for
Returns
The ID of the role
def get_mixed_channels(value: str) ‑> list[typing.Any]
-
Expand source code
def get_mixed_channels(value: str) -> list[Any]: """ Return a series of group pairs matched from the provided value. The first element in each pair will be the channel ID if the match was a mention; it will be empty otherwise. The second element in each pair will be the plain text of the string token; it will be empty otherwise. Args: value: The value to match against Returns: A series of group pairs (channel ID, channel text) """ return re.findall(r"<#(\d+)> ?|([-_a-zA-Z0-9]+)[, ]*", value.strip())
Return a series of group pairs matched from the provided value. The first element in each pair will be the channel ID if the match was a mention; it will be empty otherwise. The second element in each pair will be the plain text of the string token; it will be empty otherwise.
Args
value
- The value to match against
Returns
A series of group pairs (channel ID, channel text)
def get_mixed_roles(value: str) ‑> list[typing.Any]
-
Expand source code
def get_mixed_roles(value: str) -> list[Any]: """ Return a series of group pairs matched from the provided value. The first element in each pair will be the role ID if the match was a mention; it will be empty otherwise. The second element in each pair will be the plain text of the string token; it will be empty otherwise. Args: value: The value to match against Returns: A series of group pairs (role ID, role text) """ return re.findall(r"<@&(\d+)> ?|([^,]+)[, ]*", value.strip())
Return a series of group pairs matched from the provided value. The first element in each pair will be the role ID if the match was a mention; it will be empty otherwise. The second element in each pair will be the plain text of the string token; it will be empty otherwise.
Args
value
- The value to match against
Returns
A series of group pairs (role ID, role text)
def get_role_for_id(guild, id: int) ‑> str | None
-
Expand source code
def get_role_for_id(guild, id: int) -> str | None: """ Return role name for given guild and role ID. Args: guild: The guild object to search id: The role ID to search for Returns: The name of the role """ roles = [c.name for c in guild.roles if c.id == id] return roles[0] if len(roles) else None
Return role name for given guild and role ID.
Args
guild
- The guild object to search
id
- The role ID to search for
Returns
The name of the role
def get_timespan_chunks(string: str) ‑> tuple
-
Expand source code
def get_timespan_chunks(string: str) -> tuple: """ Search string for chunks of timespan parameters, like 5d 10h 15m, etc. Args: string: The string to search Returns: A tuple in the form: `(days: int, hours: int, minutes: int)` """ s = re.search(r".*?(-?\d+)d.*", string) days = int(s.groups()[0]) if s else 0 s = re.search(r".*?(-?\d+)h.*", string) hours = int(s.groups()[0]) if s else 0 s = re.search(r".*?(-?\d+)m.*", string) minutes = int(s.groups()[0]) if s else 0 return (days, hours, minutes)
Search string for chunks of timespan parameters, like 5d 10h 15m, etc.
Args
string
- The string to search
Returns
A tuple in the form
(days: int, hours: int, minutes: int)
def seconds_to_str(ts)
-
Expand source code
def seconds_to_str(ts): """ Convert a span of seconds into a human-readable format (e.g. "5 days 8 hours 1 minute 36 seconds"). Args: ts: The span to convert Returns: The human-readable representation """ seconds = ceil(ts) until = [] if seconds >= DAY: days = floor(seconds / DAY) until.append(f"{days} day{'s' if days > 1 else ''}") seconds = seconds % DAY if seconds >= HOUR: hours = floor(seconds / HOUR) until.append(f"{hours} hour{'s' if hours > 1 else ''}") seconds = seconds % HOUR if seconds >= MINUTE: minutes = floor(seconds / MINUTE) until.append(f"{minutes} minute{'s' if minutes > 1 else ''}") seconds = seconds % MINUTE if seconds > 0: until.append(f"{seconds} second{'s' if seconds > 1 else ''}") return ", ".join(until)
Convert a span of seconds into a human-readable format (e.g. "5 days 8 hours 1 minute 36 seconds").
Args
ts
- The span to convert
Returns
The human-readable representation
Classes
class FakeContext (guild)
-
FakeContext(guild,)
Ancestors
- builtins.tuple
Instance variables
var guild
-
Alias for field number 0