Skip to main content

botrs/
lib.rs

1// the api indeed have a lot of arguments
2#![allow(clippy::too_many_arguments)]
3#![doc = include_str!("../README.md")]
4
5#[macro_use]
6mod macros;
7
8#[path = "api/mod.rs"]
9mod api_impl;
10mod audio;
11pub mod client;
12mod constant;
13pub mod error;
14mod event;
15pub mod forum;
16pub mod gateway;
17pub mod http;
18pub mod intents;
19pub mod interaction;
20pub mod manage;
21pub mod models;
22mod reaction;
23pub mod session_manager;
24pub mod signature;
25#[path = "token/mod.rs"]
26mod token_impl;
27pub mod webhook;
28
29// Re-export main types for convenience
30pub use api_impl::BotApi;
31pub use audio::{Audio, AudioControl, AudioStatus, PublicAudio, PublicAudioType};
32pub use client::{Client, Context, EventHandler};
33pub use error::{BotError, Result};
34pub use intents::Intents;
35pub use models::gateway::Ready;
36pub use models::*;
37pub use reaction::{
38    Emoji as ReactionEmoji, MessageReaction, MessageReactionPager, Reaction, ReactionTarget,
39    ReactionTargetType, ReactionUsers,
40};
41pub use signature::{HEADER_SIGNATURE, HEADER_TIMESTAMP, generate, verify};
42pub use token_impl::{Token, start_access_token_refresh};
43pub use webhook::{dispatch_ack, handle_http_callback, heartbeat_ack, validation_ack};
44
45/// The current version of the library
46pub const VERSION: &str = env!("CARGO_PKG_VERSION");
47
48/// Default timeout for HTTP requests in seconds
49pub const DEFAULT_TIMEOUT: u64 = 30;
50
51/// Default WebSocket URL for QQ Guild API
52pub const DEFAULT_WS_URL: &str = "wss://api.sgroup.qq.com/websocket";
53
54/// Default API base URL for QQ Guild API
55pub const DEFAULT_API_URL: &str = "https://api.sgroup.qq.com";
56
57/// Sandbox API base URL for testing
58pub const SANDBOX_API_URL: &str = "https://sandbox.api.sgroup.qq.com";