1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
use ;
use ;
static GLOBAL_BASE_URL: = new;
static GLOBAL_MAX_RPS: AtomicUsize = new;
/// Устанавливает глобальный базовый URL API для всех клиентов.
///
/// По умолчанию используется `"https://platform-api.max.ru"`. Вызов этой функции
/// переопределяет URL для всех существующих и будущих экземпляров [`MaxClient`][crate::MaxClient],
/// если они не задали собственный базовый URL через [`MaxClient::set_base_url`].
///
/// # Аргументы
///
/// * `url` - новый базовый URL (например, `"https://custom.max.api"`).
///
/// # Примеры
///
/// ```
/// use maxbot::config::set_global_base_url;
///
/// set_global_base_url("https://sandbox-api.max.ru");
/// ```
/// Возвращает текущий глобальный базовый URL.
///
/// Значение по умолчанию — `"https://platform-api.max.ru"`.
/// Устанавливает глобальное ограничение частоты запросов (RPS).
///
/// Это значение используется всеми клиентами, у которых не задан собственный лимит
/// (см. [`MaxClient::set_max_rps`][crate::MaxClient::set_max_rps]).
///
/// # Аргументы
///
/// * `rps` - количество запросов в секунду. Значение `0` отключает ограничение.
///
/// # Примеры
///
/// ```
/// use maxbot::config::set_global_max_rps;
///
/// set_global_max_rps(50); // 50 запросов в секунду
/// set_global_max_rps(0); // без ограничений
/// ```
///
/// Примечание: в документации MAX рекомендуется не превышать 30 rps для стабильной
/// работы бота, но по факту иногда не выдерживает и 10 rps. По наблюдениям, лучше
/// вообще отправлять не чаще одного раза в секунду.
/// Возвращает текущее глобальное ограничение RPS.
///
/// Значение по умолчанию — `30`.