1#![allow(clippy::too_many_arguments)]
3#![doc = include_str!("../README.md")]
4
5#[macro_use]
6mod macros;
7
8pub mod api;
9pub mod audio;
10pub mod client;
11pub mod connection;
12pub mod constant;
13pub mod error;
14pub mod event;
15pub mod facade;
16pub mod forum;
17pub mod gateway;
18pub mod http;
19pub mod intents;
20pub mod interaction;
21pub mod log;
22pub mod manage;
23pub mod models;
24pub mod openapi;
25pub mod options;
26pub mod reaction;
27pub mod remote;
28pub mod search;
29pub mod session_manager;
30pub mod signature;
31pub mod token;
32pub mod version;
33pub mod webhook;
34pub mod websocket;
35
36pub use api::BotApi;
38pub use audio::{Audio, AudioControl, AudioStatus, PublicAudio, PublicAudioType};
39pub use client::{Client, Context, EventHandler};
40pub use connection::{ConnectionSession, ConnectionState, Session};
41pub use constant::*;
42pub use error::{BotError, Result};
43pub use event::{
44 ATMessageEventHandler, AudioEventHandler, C2CFriendEventHandler, C2CMessageEventHandler,
45 ChannelEventHandler, DirectMessageDeleteEventHandler, DirectMessageEventHandler,
46 EnterAIOEventHandler, ErrorNotifyHandler, ForumAuditEventHandler, GroupATMessageEventHandler,
47 GuildEventHandler, GuildMemberEventHandler, InteractionEventHandler, MessageAuditEventHandler,
48 MessageDeleteEventHandler, MessageEventHandler, MessageReactionEventHandler, ParseAndHandle,
49 ParseData, PlainEventHandler, PostEventHandler, PublicMessageDeleteEventHandler, ReadyHandler,
50 RegisterHandler, RegisterHandlers, ReplyEventHandler, SubscribeMsgStatusEventHandler,
51 ThreadEventHandler,
52};
53pub use facade::{
54 DefaultImpl, NewOpenAPI, NewSandboxOpenAPI, RegisterDispatchEventHandler, SelectOpenAPIVersion,
55 SetLogger, SetOpenAPIClient, SetSessionManager, SetWebsocketClient,
56};
57pub use forum::{
58 Content, Format, ForumAuditResult, OpenThread, Post, PostInfo, Reply, ReplyInfo, Thread,
59 ThreadInfo, Title,
60};
61pub use intents::Intents;
62pub use interaction::{
63 Interaction, InteractionData, InteractionDataType, InteractionType, SearchInputResolved,
64 SearchLayout, SearchRecord, SearchRsp,
65};
66pub use log::{
67 Debug, Debugf, DefaultLogger, Error as LogError, Errorf, Info, Infof, Logger, Sync, Warn, Warnf,
68};
69pub use manage::{
70 C2CManageEvent, EnterAioEvent, GroupManageEvent, ManageEventType, SubscribeMessageStatusData,
71 SubscribeMsgTemplateResult,
72};
73pub use models::gateway::Ready;
74pub use models::*;
75pub use openapi::{
76 APIPermissionsAPI, AnnouncesAPI, AudioAPI, Base, ChannelAPI, ChannelPermissionsAPI,
77 DirectMessageAPI, DoReqFilterChains, DoRespFilterChains, FilterContext, GuildAPI, HTTPFilter,
78 InteractionAPI, IsSuccessStatus, MemberAPI, MessageAPI, MessageReactionAPI, MessageSettingAPI,
79 OpenAPI, PinsAPI, Register as RegisterOpenAPI, RegisterReqFilter, RegisterRespFilter, RoleAPI,
80 ScheduleAPI, UserAPI, WebhookAPI, WebsocketAPI,
81};
82pub use options::{OpenApiOption, Options, WithHideTip, WithURL};
83pub use reaction::{
84 Emoji as ReactionEmoji, MessageReaction, MessageReactionPager, MessageReactionUsers, Reaction,
85 ReactionTarget, ReactionTargetType, ReactionUsers,
86};
87pub use remote::{
88 ErrGotLockFailed, ErrProduceFailed, ErrSessionMarshalFailed, ErrorNotOk, Lock,
89 Option as RemoteOption, RedisManager, WithClusterKey,
90};
91pub use search::{Config as SearchConfig, SimulateSearch};
92pub use session_manager::{
93 CalcInterval, CanNotIdentify, CanNotIdentifyErrSet, CanNotResume, CanNotResumeErrSet,
94 ChanManager, CheckSessionLimit, NewSessionManager, Session as ManagedSession, SessionManager,
95 calc_interval, new_session_manager, set_session_manager_factory,
96};
97pub use signature::{Generate, HeaderSig, HeaderTimestamp, Verify};
98pub use token::{
99 NewQQBotTokenSource, QQBotCredentials, QQBotTokenSource, StartRefreshAccessToken, Token,
100 TypeBearer, TypeQQBot,
101};
102pub use version::version_string;
103pub use webhook::{
104 DefaultGetSecretFunc, GenDispatchACK, GenHeartbeatACK, GenValidationACK, HTTPHandler,
105};
106pub use websocket::{
107 ClientImpl, DefaultQueueSize, PanicBufLen, PanicHandler, Register as RegisterWebSocket,
108 RegisterHandlers as RegisterWebSocketHandlers, RegisterResumeSignal, ResumeSignal, WebSocket,
109};
110
111pub const VERSION: &str = env!("CARGO_PKG_VERSION");
113
114pub const DEFAULT_TIMEOUT: u64 = 30;
116
117pub const DEFAULT_WS_URL: &str = "wss://api.sgroup.qq.com/websocket";
119
120pub const DEFAULT_API_URL: &str = "https://api.sgroup.qq.com";
122
123pub const SANDBOX_API_URL: &str = "https://sandbox.api.sgroup.qq.com";