sidequest_common.models.guild ============================= .. py:module:: sidequest_common.models.guild .. autoapi-nested-parse:: Per-guild configuration. Attributes ---------- .. autoapisummary:: sidequest_common.models.guild.DEFAULT_LEVEL_UP_MESSAGE sidequest_common.models.guild.DEFAULT_WELCOME_MESSAGE Classes ------- .. autoapisummary:: sidequest_common.models.guild.GuildConfig Module Contents --------------- .. py:class:: GuildConfig Bases: :py:obj:`advanced_alchemy.base.UUIDAuditBase` Settings for one Discord guild. Created with defaults the first time the bot asks for it. .. py:attribute:: announcement_channel_id :type: sqlalchemy.orm.Mapped[int | None] Where the bot posts pending ``GuildAnnouncement`` rows queued for Discord; officers set it. .. py:attribute:: auto_role_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: automod_block_invites :type: sqlalchemy.orm.Mapped[bool] .. py:attribute:: automod_block_links :type: sqlalchemy.orm.Mapped[bool] .. py:attribute:: automod_enabled :type: sqlalchemy.orm.Mapped[bool] .. py:attribute:: automod_exempt_channel_ids :type: sqlalchemy.orm.Mapped[list[int]] .. py:attribute:: automod_exempt_role_ids :type: sqlalchemy.orm.Mapped[list[int]] .. py:attribute:: automod_max_mentions :type: sqlalchemy.orm.Mapped[int] .. py:attribute:: automod_spam_messages :type: sqlalchemy.orm.Mapped[int] .. py:attribute:: automod_spam_seconds :type: sqlalchemy.orm.Mapped[int] .. py:attribute:: automod_timeout_seconds :type: sqlalchemy.orm.Mapped[int] .. py:attribute:: away_role_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: badge_channel_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: badge_role_ids :type: sqlalchemy.orm.Mapped[dict[str, int]] Discord role id per badge id, created and kept by the bot's badges plugin. .. py:attribute:: battlenet_role_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: events_forum_channel_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: forever_feed_channel_id :type: sqlalchemy.orm.Mapped[int | None] Where the bot posts WoW: Forever blue posts and Wowhead news; officers set it. .. py:attribute:: gate_role_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: guild_id :type: sqlalchemy.orm.Mapped[int] .. py:attribute:: level_roles_stack :type: sqlalchemy.orm.Mapped[bool] .. py:attribute:: level_up_channel_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: level_up_message :type: sqlalchemy.orm.Mapped[str] .. py:attribute:: leveling_enabled :type: sqlalchemy.orm.Mapped[bool] .. py:attribute:: linked_role_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: log_channel_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: no_xp_channel_ids :type: sqlalchemy.orm.Mapped[list[int]] .. py:attribute:: no_xp_role_ids :type: sqlalchemy.orm.Mapped[list[int]] .. py:attribute:: roster_role_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: signup_notice_channel_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: weekly_board_channel_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: weekly_board_last_week :type: sqlalchemy.orm.Mapped[str | None] ISO date (``YYYY-MM-DD``) of the Monday whose board was last posted; prevents double-posting. .. py:attribute:: welcome_channel_id :type: sqlalchemy.orm.Mapped[int | None] .. py:attribute:: welcome_message :type: sqlalchemy.orm.Mapped[str] .. py:attribute:: xp_cooldown_seconds :type: sqlalchemy.orm.Mapped[int] .. py:attribute:: xp_max :type: sqlalchemy.orm.Mapped[int] .. py:attribute:: xp_min :type: sqlalchemy.orm.Mapped[int] .. py:data:: DEFAULT_LEVEL_UP_MESSAGE :value: 'GG {mention}, you just advanced to level {level}!' .. py:data:: DEFAULT_WELCOME_MESSAGE :value: 'Welcome to **{guild}**, {mention}! Pull up a seat by the fire, adventurer.'