Skip to content

Commit c242ba3

Browse files
committed
Remove gateway event intent helpers
1 parent ed712a9 commit c242ba3

4 files changed

Lines changed: 2 additions & 97 deletions

File tree

docs/changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2323
- Removed Go-style and Python-style message content type aliases (`ArkKV`, `ArkObjKV`, `MessageKeyboard`, `CustomKeyboard`, `TemplateID`, `MarkdownParams`, etc.); use the concrete Rust types such as `ArkKv`, `Keyboard`, `KeyboardContent`, `KeyboardTemplateId`, and `MarkdownParam`.
2424
- Renamed Go-style error code constants (`CodeNeedReConnect`, `WSCodeBackendAuthenticationFail`, `APICodeTokenExpireOrNotExist`, etc.) to Rust-style `CODE_*`, `WS_CODE_*`, and `API_CODE_*` names.
2525
- Removed Go-style channel enum aliases and duplicate enum-value constants (`ChannelTypeText`, `ChannelSubTypeChat`, `ChannelPrivateTypePublic`, `SpeakPermissionTypePublic`, `CHANNEL_TYPE_TEXT`, etc.); use enum variants such as `ChannelType::Text`.
26-
- Removed Go-style gateway opcode/event aliases (`OPCode`, `WSDispatchEvent`, `WSIdentity`, `HTTPCallbackAck`, `EventMessageCreate`, `OPMeans`, etc.); use `OpCode`, `WS_DISPATCH_EVENT`, `WS_IDENTIFY`, `HTTP_CALLBACK_ACK`, `EVENT_MESSAGE_CREATE`, and `op_meaning`.
26+
- Removed Go-style gateway opcode/event aliases (`OPCode`, `WSDispatchEvent`, `WSIdentity`, `HTTPCallbackAck`, `EventMessageCreate`, `OPMeans`, etc.); use `OpCode`, `WS_DISPATCH_EVENT`, `WS_IDENTIFY`, `HTTP_CALLBACK_ACK`, and `EVENT_MESSAGE_CREATE`.
2727
- Removed redundant Rust alias methods (`BotApi::me`, `BotApi::me_guilds`, `BotApi::get_ws_url`, `BotApi::get_permissions`, `BotApi::patch_message`, and matching `Context` wrappers); use `get_bot_info`, `get_guilds`, `get_gateway`, `get_api_permissions`, and `edit_message`.
2828
- Removed Python-style duplicate methods (`BotApi::create_dms`, `Context::create_dms`, `BotApi::get_delete_member`, and `Context::get_delete_member`); use `create_direct_message` and `delete_member`.
2929
- Removed redundant `Context` alias methods (`add_reaction`, `remove_reaction`, `pin_message`, `unpin_message`, `add_guild_role_member`, and `remove_guild_role_member`); use `put_reaction`, `delete_reaction`, `put_pin`, `delete_pin`, `create_guild_role_member`, and `delete_guild_role_member`.

docs/zh/changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ BotRS 的所有重要更改都将记录在此文件中。
2323
- 移除 Go 风格和 Python 风格消息内容类型别名(`ArkKV``ArkObjKV``MessageKeyboard``CustomKeyboard``TemplateID``MarkdownParams` 等);请使用具体 Rust 类型,例如 `ArkKv``Keyboard``KeyboardContent``KeyboardTemplateId``MarkdownParam`
2424
- 将 Go 风格错误码常量(`CodeNeedReConnect``WSCodeBackendAuthenticationFail``APICodeTokenExpireOrNotExist` 等)改名为 Rust 风格 `CODE_*``WS_CODE_*``API_CODE_*`
2525
- 移除 Go 风格 channel enum 别名和重复 enum-value 常量(`ChannelTypeText``ChannelSubTypeChat``ChannelPrivateTypePublic``SpeakPermissionTypePublic``CHANNEL_TYPE_TEXT` 等);请使用 `ChannelType::Text` 这类枚举 variant。
26-
- 移除 Go 风格 gateway opcode/event 别名(`OPCode``WSDispatchEvent``WSIdentity``HTTPCallbackAck``EventMessageCreate``OPMeans` 等);请使用 `OpCode``WS_DISPATCH_EVENT``WS_IDENTIFY``HTTP_CALLBACK_ACK``EVENT_MESSAGE_CREATE``op_meaning`
26+
- 移除 Go 风格 gateway opcode/event 别名(`OPCode``WSDispatchEvent``WSIdentity``HTTPCallbackAck``EventMessageCreate``OPMeans` 等);请使用 `OpCode``WS_DISPATCH_EVENT``WS_IDENTIFY``HTTP_CALLBACK_ACK``EVENT_MESSAGE_CREATE`
2727
- 移除冗余 Rust 方法别名(`BotApi::me``BotApi::me_guilds``BotApi::get_ws_url``BotApi::get_permissions``BotApi::patch_message` 及对应 `Context` wrapper);请使用 `get_bot_info``get_guilds``get_gateway``get_api_permissions``edit_message`
2828
- 移除 Python 风格重复方法(`BotApi::create_dms``Context::create_dms``BotApi::get_delete_member``Context::get_delete_member`);请使用 `create_direct_message``delete_member`
2929
- 移除冗余 `Context` 方法别名(`add_reaction``remove_reaction``pin_message``unpin_message``add_guild_role_member``remove_guild_role_member`);请使用 `put_reaction``delete_reaction``put_pin``delete_pin``create_guild_role_member``delete_guild_role_member`

src/models/gateway/events.rs

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/// Gateway opcode constants.
2-
use super::OpCode;
3-
41
pub mod opcodes {
52
/// Dispatch event
63
pub const DISPATCH: u8 = 0;
@@ -19,66 +16,3 @@ pub mod opcodes {
1916
/// Heartbeat ACK
2017
pub const HEARTBEAT_ACK: u8 = 11;
2118
}
22-
23-
/// Returns a human-readable name for a gateway opcode.
24-
pub fn op_meaning(op: OpCode) -> &'static str {
25-
match op {
26-
opcodes::DISPATCH => "Event",
27-
opcodes::HEARTBEAT => "Heartbeat",
28-
opcodes::IDENTIFY => "Identify",
29-
opcodes::RESUME => "Resume",
30-
opcodes::RECONNECT => "Reconnect",
31-
opcodes::INVALID_SESSION => "InvalidSession",
32-
opcodes::HELLO => "Hello",
33-
opcodes::HEARTBEAT_ACK => "HeartbeatAck",
34-
_ => "unknown",
35-
}
36-
}
37-
38-
pub fn event_to_intent(
39-
events: impl IntoIterator<Item = impl AsRef<str>>,
40-
) -> crate::intents::Intent {
41-
events
42-
.into_iter()
43-
.fold(0, |intents, event| intents | event_intent(event.as_ref()))
44-
}
45-
46-
fn event_intent(event: &str) -> crate::intents::Intent {
47-
match event {
48-
"GUILD_CREATE" | "GUILD_UPDATE" | "GUILD_DELETE" | "CHANNEL_CREATE" | "CHANNEL_UPDATE"
49-
| "CHANNEL_DELETE" => crate::intents::Intents::GUILDS,
50-
"GUILD_MEMBER_ADD" | "GUILD_MEMBER_UPDATE" | "GUILD_MEMBER_REMOVE" => {
51-
crate::intents::Intents::GUILD_MEMBERS
52-
}
53-
"MESSAGE_CREATE" | "MESSAGE_DELETE" => crate::intents::Intents::GUILD_MESSAGES,
54-
"GROUP_AT_MESSAGE_CREATE"
55-
| "C2C_MESSAGE_CREATE"
56-
| "SUBSCRIBE_MESSAGE_STATUS"
57-
| "FRIEND_ADD"
58-
| "FRIEND_DEL" => crate::intents::Intents::PUBLIC_MESSAGES,
59-
"MESSAGE_REACTION_ADD" | "MESSAGE_REACTION_REMOVE" => {
60-
crate::intents::Intents::GUILD_MESSAGE_REACTIONS
61-
}
62-
"AT_MESSAGE_CREATE" | "PUBLIC_MESSAGE_DELETE" => {
63-
crate::intents::Intents::PUBLIC_GUILD_MESSAGES
64-
}
65-
"DIRECT_MESSAGE_CREATE" | "DIRECT_MESSAGE_DELETE" => {
66-
crate::intents::Intents::DIRECT_MESSAGE
67-
}
68-
"AUDIO_START" | "AUDIO_FINISH" | "AUDIO_ON_MIC" | "AUDIO_OFF_MIC" => {
69-
crate::intents::Intents::AUDIO_ACTION
70-
}
71-
"MESSAGE_AUDIT_PASS" | "MESSAGE_AUDIT_REJECT" => crate::intents::Intents::MESSAGE_AUDIT,
72-
"FORUM_THREAD_CREATE"
73-
| "FORUM_THREAD_UPDATE"
74-
| "FORUM_THREAD_DELETE"
75-
| "FORUM_POST_CREATE"
76-
| "FORUM_POST_DELETE"
77-
| "FORUM_REPLY_CREATE"
78-
| "FORUM_REPLY_DELETE"
79-
| "FORUM_PUBLISH_AUDIT_RESULT" => crate::intents::Intents::FORUMS,
80-
"INTERACTION_CREATE" => crate::intents::Intents::INTERACTION,
81-
"ENTER_AIO" => crate::intents::Intents::ENTER_AIO,
82-
_ => 0,
83-
}
84-
}

src/models/gateway/tests.rs

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,6 @@
11
use super::*;
22
use crate::intents::Intents;
33

4-
#[test]
5-
fn test_event_to_intent_matches_expected_mapping() {
6-
let intent = event_to_intent([
7-
EVENT_GUILD_CREATE,
8-
EVENT_CHANNEL_DELETE,
9-
EVENT_GUILD_MEMBER_ADD,
10-
EVENT_MESSAGE_CREATE,
11-
EVENT_GROUP_AT_MESSAGE_CREATE,
12-
EVENT_C2C_FRIEND_DEL,
13-
EVENT_ENTER_AIO,
14-
"UNKNOWN_EVENT",
15-
]);
16-
17-
assert_eq!(intent & Intents::GUILDS, Intents::GUILDS);
18-
assert_eq!(intent & Intents::GUILD_MEMBERS, Intents::GUILD_MEMBERS);
19-
assert_eq!(intent & Intents::GUILD_MESSAGES, Intents::GUILD_MESSAGES);
20-
assert_eq!(intent & Intents::PUBLIC_MESSAGES, Intents::PUBLIC_MESSAGES);
21-
assert_eq!(intent & Intents::ENTER_AIO, Intents::ENTER_AIO);
22-
assert_eq!(event_to_intent(["UNKNOWN_EVENT"]), 0);
23-
}
24-
25-
#[test]
26-
fn test_event_to_intent_maps_public_and_forum_events() {
27-
assert_eq!(
28-
event_to_intent([EVENT_AT_MESSAGE_CREATE, EVENT_FORUM_AUDIT_RESULT]),
29-
Intents::PUBLIC_GUILD_MESSAGES | Intents::FORUMS
30-
);
31-
}
32-
334
#[test]
345
fn websocket_payload_keeps_session_out_of_json() {
356
let mut payload = WSPayload::from(GatewayEvent {

0 commit comments

Comments
 (0)