コード例 #1
0
    async def set_announcement_role(
        cls,
        session: AsyncSession,
        guild_id: t.Union[str, int, discord.Guild],
        role_id: t.Union[str, int, discord.Role],
    ) -> None:
        guild_id = get_datatype_int(guild_id)
        role_id = get_datatype_int(role_id)

        await on_conflict(
            session,
            cls,
            conflict_columns=["guild_id"],
            values={"guild_id": guild_id, "role_id": role_id},
        )
        await session.commit()
コード例 #2
0
    async def set_announcement_channel(
        cls,
        session: AsyncSession,
        guild_id: t.Union[str, int, discord.Guild],
        channel_id: t.Union[str, int, discord.TextChannel],
    ) -> None:
        guild_id = get_datatype_int(guild_id)
        channel_id = get_datatype_int(channel_id)

        await on_conflict(
            session,
            cls,
            conflict_columns=["guild_id"],
            values={"guild_id": guild_id, "channel_id": channel_id},
        )
        await session.commit()
コード例 #3
0
    async def set_role(
        cls,
        session: AsyncSession,
        guild_id: t.Union[str, int, discord.Guild],
        role: t.List[t.Union[str, int, discord.Role]],
    ) -> None:
        guild_id = get_datatype_int(guild_id)
        role = [get_datatype_int(r) for r in role]

        await on_conflict(
            session,
            cls,
            conflict_columns=["guild_id"],
            values={
                "guild_id": guild_id,
                "auto_roles": role
            },
        )
        await session.commit()
コード例 #4
0
    async def remove_feed_channel(
            cls, session: AsyncSession,
            guild_id: t.Union[str, int, discord.Guild]) -> None:
        guild_id = get_datatype_int(guild_id)

        row = await session.run_sync(lambda session: session.query(cls).
                                     filter_by(guild_id=guild_id).first())
        await session.run_sync(lambda session: session.delete(row))

        await session.commit()
コード例 #5
0
    async def set_role(
        cls,
        session: AsyncSession,
        role_type: str,
        guild_id: t.Union[str, int, discord.Guild],
        role: t.Union[str, int, discord.Role, t.List[discord.Role]],
    ) -> None:
        guild_id = get_datatype_int(guild_id)
        role = get_datatype_int(role)

        await on_conflict(
            session,
            cls,
            conflict_columns=["guild_id"],
            values={
                "guild_id": guild_id,
                role_type: role
            },
        )
        await session.commit()
コード例 #6
0
    async def get_roles(
            cls, session: AsyncSession,
            guild_id: t.Union[str, int, discord.Guild]) -> t.Optional[dict]:
        guild_id = get_datatype_int(guild_id)

        try:
            row = await session.run_sync(lambda session: session.query(cls).
                                         filter_by(guild_id=guild_id).first())
        except NoResultFound:
            return None

        if row is not None:
            return row.dict()
コード例 #7
0
    async def set_prefix(cls, session: AsyncSession,
                         context_id: t.Union[int, str], prefix: str) -> None:
        context_id = get_datatype_int(context_id)

        await on_conflict(
            session,
            cls,
            conflict_columns=["context_id"],
            values={
                "context_id": context_id,
                "prefix": prefix
            },
        )
        await session.commit()
コード例 #8
0
    async def get_next_id(
        cls, session: AsyncSession, guild: t.Union[int, Guild]
    ) -> int:
        guild_id = get_datatype_int(guild)

        row = await session.run_sync(
            lambda session: session.query(
                cls).filter_by(guild_id=guild_id).first()
        )

        row.next_id += 1
        next_id = row.next_id

        await session.commit()
        return next_id
コード例 #9
0
    async def set_notification(
        cls,
        session: AsyncSession,
        guild_id: t.Union[str, int, discord.Guild],
        mode: bool,
    ):
        guild_id = get_datatype_int(guild_id)

        await on_conflict(
            session,
            cls,
            conflict_columns=["guild_id"],
            values={
                "guild_id": guild_id,
                "notification": mode
            },
        )
        await session.commit()
コード例 #10
0
    async def set_words(
        cls,
        session: AsyncSession,
        guild_id: t.Union[str, int, discord.Guild],
        words: t.List[str],
    ) -> None:
        guild_id = get_datatype_int(guild_id)

        await on_conflict(
            session,
            cls,
            conflict_columns=["guild_id"],
            values={
                "guild_id": guild_id,
                "words": words
            },
        )
        await session.commit()