Discovery

The following section documents everything related to Discovery.

Discovery is a feature on Stoat, that allows users to advertise their servers.

Clients

DiscoveryClient

Methods
class stoat.DiscoveryClient(*, adapter=None, base_url=None, state, user_agent='')[source]

Represents a client that sends requests to Discover.

Parameters:
  • adapter (Optional[Union[MaybeAwaitableFunc[[DiscoveryClient], HTTPAdapter], HTTPAdapter]]) – The adapter to use when making HTTP requests.

  • base_url (Optional[str]) – The base Discover API URL.

  • state (State) – The state.

  • user_agent (str) – The HTTP user agent to use when making requests.

await fetch_build_id()[source]

This function is a coroutine.

Retrieves latest discover client build ID.

Note

This always retrieves only from official Discover instance.

Raises:
Returns:

The build ID.

Return type:

str

await use_latest_build_id()[source]

This function is a coroutine.

Retrieves latest discover client build ID and uses it.

This follows same exceptions and notes as fetch_build_id().

Returns:

The build ID.

Return type:

str

await servers()[source]

This function is a coroutine.

Retrieves servers on a main page.

Raises:

DiscoverError – Getting the servers failed.

Returns:

The servers page.

Return type:

DiscoverableServersPage

await bots()[source]

This function is a coroutine.

Retrieves bots on a main page.

Raises:

DiscoverError – Getting the bots failed.

Returns:

The bots page.

Return type:

DiscoverableBotsPage

await themes()[source]

This function is a coroutine.

Retrieves themes on a main page.

Raises:

DiscoverableError – Getting the themes failed.

Returns:

The themes page.

Return type:

DiscoverableThemesPage

await search_servers(query)[source]

This function is a coroutine.

Searches for servers.

Parameters:

query (str) – The query to search for.

Raises:

DiscoverError – Searching failed.

Returns:

The search results.

Return type:

ServerSearchResult

await search_bots(query)[source]

This function is a coroutine.

Searches for bots.

Parameters:

query (str) – The query to search for.

Raises:

DiscoverError – Searching failed.

Returns:

The search results.

Return type:

BotSearchResult

await search_themes(query)[source]

This function is a coroutine.

Searches for themes.

Parameters:

query (str) – The query to search for.

Raises:

DiscoverError – Searching failed.

Returns:

The search results.

Return type:

ThemeSearchResult

Models

DiscoverableServer

class stoat.DiscoverableServer(*, state, id, name, description, internal_icon, internal_banner, raw_flags, tags, member_count, activity)[source]

Represents a server on Stoat Discovery. The ID is an invite code.

This inherits from BaseServer.

name

The server’s name.

Type:

str

description

The server’s description.

Type:

Optional[str]

internal_icon

The stateless server icon.

Type:

Optional[StatelessAsset]

internal_banner

The stateless server banner.

Type:

Optional[StatelessAsset]

raw_flags

The server’s flags raw value.

Type:

int

tags

The server’s tags.

Type:

List[str]

member_count

The server’s member count.

Type:

int

activity

The server’s activity.

Type:

ServerActivity

property flags[source]

The server’s flags.

Type:

ServerFlags

property icon[source]

The server’s icon.

Type:

Optional[Asset]

property invite_code[source]

The server invite code. As an implementation detail, right now it returns server ID, but don’t depend on that in future.

Type:

str

property banner[source]

The server’s banner.

Type:

Optional[Asset]

DiscoverableServersPage

Attributes
class stoat.DiscoverableServersPage(*, servers, popular_tags)[source]

A data class representing results for getting all listed servers.

servers

The listed servers, up to 200 servers.

Type:

List[DiscoverableServer]

popular_tags

The popular tags used in discoverable servers.

Type:

List[str]

DiscoverableBot

class stoat.DiscoverableBot(*, state, id, name, internal_avatar, internal_profile, tags, server_count, usage)[source]

Represents a bot on Stoat Discovery.

This inherits from BaseBot.

name

The bot’s name.

Type:

str

internal_avatar

The stateless bot’s avatar.

Type:

Optional[StatelessAsset]

internal_profile

The stateless bot’s profile.

Type:

Optional[StatelessUserProfile]

tags

The bot’s tags.

Type:

List[int]

server_count

The bot’s servers count.

Type:

int

usage

How frequently is bot being used.

Type:

BotUsage

property avatar[source]

The bot’s avatar.

Type:

Optional[Asset]

property description[source]

The bot’s profile description.

Type:

str

property profile[source]

The bot’s profile.

Type:

UserProfile

DiscoverableBotsPage

Attributes
class stoat.DiscoverableBotsPage(*, bots, popular_tags)[source]

A data class representing results for getting all listed bots.

bots

The listed bots, up to 200 bots.

Type:

List[DiscoverableBot]

popular_tags

The popular tags used in discoverable bots.

Type:

List[str]

DiscoverableTheme

class stoat.DiscoverableTheme(state, *, name, description, creator, slug, tags, overrides, version, custom_css)[source]

Represents a theme on Stoat Discovery.

Themes are currently only available in Discover.

state

State that controls this theme.

Type:

State

name

The theme name.

Type:

str

description

The theme description.

Type:

str

creator

The theme creator.

Type:

str

slug

The theme slug.

Type:

str

tags

The theme tags.

Type:

List[str]

overrides

The theme overrides in format {css_class: css_color}.

Type:

Dict[ReviteThemeVariable, str]

version

The theme version.

Type:

str

custom_css

The theme CSS string.

Type:

Optional[str]

await apply(*, base_theme=UNDEFINED)[source]

This function is a coroutine.

Applies the theme to current user account.

Parameters:

base_theme (UndefinedOr[ReviteBaseTheme]) – The base theme to use, when applying theme.

DiscoverableThemesPage

Attributes
class stoat.DiscoverableThemesPage(*, themes, popular_tags)[source]

A data class representing results for getting all listed themes.

themes

The listed themes, up to 200 themes.

Type:

List[DiscoverableTheme]

popular_tags

The popular tags used in discoverable themes.

Type:

List[str]

ServerSearchResult

class stoat.ServerSearchResult(*, query, count, servers, related_tags)[source]

The server search result object.

query

The lower-cased query.

Type:

str

count

The servers count.

Type:

int

servers

The listed servers.

Type:

List[DiscoverableServer]

related_tags

All of tags that listed servers have.

Type:

List[str]

BotSearchResult

class stoat.BotSearchResult(*, query, count, bots, related_tags)[source]

The bot search result object.

query

The lower-cased query.

Type:

str

count

The bots count.

Type:

int

bots

The listed bots.

Type:

List[DiscoverableBot]

related_tags

All of tags that listed bots have.

Type:

List[str]

ThemeSearchResult

class stoat.ThemeSearchResult(*, query, count, themes, related_tags)[source]

The theme search result object.

query

The lower-cased query.

Type:

str

count

The themes count.

Type:

int

themes

The listed themes.

Type:

List[DiscoverableTheme]

related_tags

All of tags that listed themes have.

Type:

List[str]