camel.bots.discord 包#
子模块#
camel.bots.discord.discord_app 模块#
- class camel.bots.discord.discord_app.DiscordApp(channel_ids: List[int] | None = None, token: str | None = None, client_id: str | None = None, client_secret: str | None = None, redirect_uri: str | None = None, installation_store: DiscordBaseInstallationStore | None = None, intents: Intents | None = None)[来源]#
基类:
object一个表示使用discord.py库与Discord服务器交互的Discord应用程序的类。
这个机器人可以响应特定频道中的消息,并且只对提及该机器人的消息做出反应。
- channel_ids#
允许的频道ID列表。如果提供,机器人将仅在这些频道中响应消息。
- Type:
可选[List[int]]
- token#
用于身份验证的Discord机器人令牌。
- Type:
可选[str]
- property client#
- async exchange_code_for_token_response(code: str) str | None[来源]#
将授权码交换为访问令牌。
- Parameters:
code (str) – 用户授权后从Discord接收的授权码。
- Returns:
如果成功则返回访问令牌,否则返回None。
- Return type:
可选[str]
- Raises:
ValueError - 如果OAuth配置不完整或无效。
httpx.RequestError – 如果在请求过程中出现网络问题。
- async get_user_info(access_token: str) dict | None[来源]#
使用访问令牌检索用户信息。
- Parameters:
access_token (str) – 从Discord接收的访问令牌。
- Returns:
从Discord获取的用户信息。
- Return type:
字典
- async get_valid_access_token(guild_id: str) str | None[来源]#
获取指定公会的有效访问令牌。
该方法尝试获取特定公会的访问令牌。 如果当前访问令牌已过期,它将使用刷新令牌来更新令牌。
- Parameters:
guild_id (str) – 要获取访问令牌的公会ID。
- Returns:
- 如果成功则返回有效的访问令牌,
否则返回None。
- Return type:
可选[str]
- async on_message(message: Message) None[来源]#
用于处理传入消息的事件处理程序。
每当机器人接收到新消息时,都会调用此方法。它会忽略机器人自己发送的消息,只响应允许频道中的消息(如果指定了的话),并且仅响应提及该机器人的消息。
- Parameters:
message (discord.Message) – 从Discord接收到的消息对象。
- async refresh_access_token(refresh_token: str) str | None[来源]#
使用刷新令牌来更新访问令牌。
- Parameters:
refresh_token (str) – Discord颁发的刷新令牌,可用于获取新的访问令牌。
- Returns:
如果成功则返回新的访问令牌,否则返回None。
- Return type:
可选[str]
- async remove_installation(guild: Guild)[来源]#
移除指定公会的安装。
- Parameters:
guild (discord.Guild) – 机器人正在被移除的服务器。
camel.bots.discord.discord_installation 模块#
- class camel.bots.discord.discord_installation.DiscordInstallation(guild_id: str, access_token: str, refresh_token: str, installed_at: datetime, token_expires_at: datetime | None = None)[来源]#
基类:
object- Represents an installation of a Discord application in a
特定公会(服务器)。
- guild_id#
应用程序安装所在的Discord公会(服务器)的唯一标识符。
- Type:
字符串
- access_token#
用于验证已安装应用程序API请求的访问令牌。
- Type:
字符串
- refresh_token#
用于在访问令牌过期时刷新该令牌的令牌。
- Type:
字符串
- installed_at#
时间戳,表示应用程序在公会中安装的时间。
- Type:
日期时间
- token_expires_at#
可选的时间戳,表示访问令牌何时过期。如果令牌没有过期时间,则默认为None。
- Type:
可选[datetime]
camel.bots.discord.discord_store 模块#
- class camel.bots.discord.discord_store.DiscordBaseInstallationStore[来源]#
基类:
object用于管理Discord安装的抽象基类。
该类定义了与存储和检索Discord安装数据相关的数据库操作接口。子类必须实现这些方法来处理特定于数据库的逻辑。
- class camel.bots.discord.discord_store.DiscordSQLiteInstallationStore(database: str)[来源]#
基础类:
DiscordBaseInstallationStore基于SQLite的实现,用于管理Discord安装。
该类提供了使用SQLite初始化数据库、保存、检索和删除安装记录的方法。
- database#
SQLite数据库文件的路径。
- Type:
字符串
- async find_by_guild(guild_id: str) Discord安装 | None[来源]#
通过公会ID查找安装记录。
- Parameters:
guild_id (str) – 要搜索的公会ID。
- Returns:
- 如果找到安装记录,
否则为None。
- Return type:
- async save(installation: Discord安装)[来源]#
保存一个新的安装记录或更新现有的记录。
- Parameters:
installation (DiscordInstallation) – 要保存的安装数据。
模块内容#
- class camel.bots.discord.DiscordApp(channel_ids: List[int] | None = None, token: str | None = None, client_id: str | None = None, client_secret: str | None = None, redirect_uri: str | None = None, installation_store: DiscordBaseInstallationStore | None = None, intents: Intents | None = None)[来源]#
基类:
object一个表示使用discord.py库与Discord服务器交互的Discord应用程序的类。
这个机器人可以响应特定频道中的消息,并且只对提及该机器人的消息做出反应。
- channel_ids#
允许的频道ID列表。如果提供,机器人将仅在这些频道中响应消息。
- Type:
可选[List[int]]
- token#
用于身份验证的Discord机器人令牌。
- Type:
可选[str]
- property client#
- async exchange_code_for_token_response(code: str) str | None[来源]#
将授权码交换为访问令牌。
- Parameters:
code (str) – 用户授权后从Discord接收的授权码。
- Returns:
如果成功则返回访问令牌,否则返回None。
- Return type:
可选[str]
- Raises:
ValueError - 如果OAuth配置不完整或无效。
httpx.RequestError – 如果在请求过程中出现网络问题。
- async get_user_info(access_token: str) dict | None[来源]#
使用访问令牌检索用户信息。
- Parameters:
access_token (str) – 从Discord接收的访问令牌。
- Returns:
从Discord获取的用户信息。
- Return type:
字典
- async get_valid_access_token(guild_id: str) str | None[来源]#
获取指定公会的有效访问令牌。
该方法尝试获取特定公会的访问令牌。 如果当前访问令牌已过期,它将使用刷新令牌来更新令牌。
- Parameters:
guild_id (str) – 要获取访问令牌的公会ID。
- Returns:
- 如果成功则返回有效的访问令牌,
否则返回None。
- Return type:
可选[str]
- async on_message(message: Message) None[来源]#
用于处理传入消息的事件处理程序。
每当机器人接收到新消息时,都会调用此方法。它会忽略机器人自己发送的消息,只响应允许频道中的消息(如果指定了的话),并且仅响应提及该机器人的消息。
- Parameters:
message (discord.Message) – 从Discord接收到的消息对象。
- async refresh_access_token(refresh_token: str) str | None[来源]#
使用刷新令牌来更新访问令牌。
- Parameters:
refresh_token (str) – Discord颁发的刷新令牌,可用于获取新的访问令牌。
- Returns:
如果成功则返回新的访问令牌,否则返回None。
- Return type:
可选[str]
- async remove_installation(guild: Guild)[来源]#
移除指定公会的安装。
- Parameters:
guild (discord.Guild) – 机器人正在被移除的服务器。
- class camel.bots.discord.DiscordBaseInstallationStore[来源]#
基类:
object用于管理Discord安装的抽象基类。
该类定义了与存储和检索Discord安装数据相关的数据库操作接口。子类必须实现这些方法来处理特定于数据库的逻辑。
- class camel.bots.discord.DiscordInstallation(guild_id: str, access_token: str, refresh_token: str, installed_at: datetime, token_expires_at: datetime | None = None)[来源]#
基类:
object- Represents an installation of a Discord application in a
特定公会(服务器)。
- guild_id#
应用程序安装所在的Discord公会(服务器)的唯一标识符。
- Type:
字符串
- access_token#
用于验证已安装应用程序API请求的访问令牌。
- Type:
字符串
- refresh_token#
用于在访问令牌过期时刷新该令牌的令牌。
- Type:
字符串
- installed_at#
时间戳,表示应用程序在公会中安装的时间。
- Type:
日期时间
- token_expires_at#
可选的时间戳,表示访问令牌何时过期。如果令牌没有过期时间,则默认为None。
- Type:
可选[datetime]
- class camel.bots.discord.DiscordSQLiteInstallationStore(database: str)[来源]#
基础类:
DiscordBaseInstallationStore基于SQLite的实现,用于管理Discord安装。
该类提供了使用SQLite初始化数据库、保存、检索和删除安装记录的方法。
- database#
SQLite数据库文件的路径。
- Type:
字符串
- async find_by_guild(guild_id: str) Discord安装 | None[来源]#
通过公会ID查找安装记录。
- Parameters:
guild_id (str) – 要搜索的公会ID。
- Returns:
- 如果找到安装记录,
否则为None。
- Return type:
- async save(installation: Discord安装)[来源]#
保存新的安装记录或更新现有记录。
- Parameters:
安装 (DiscordInstallation) – 要保存的安装数据。