6 个版本

0.5.2 2024年5月20日
0.5.1 2024年5月18日
0.4.0 2024年5月12日
0.3.3 2024年5月8日

#2079 in 网页编程

32 每月下载量

MIT 许可协议

51KB
910

Quality Gate Status Coverage Status Crates.io Version Crates.io License docs.rs Stand With Ukraine

ralertsinua-http

Rust 异步 API 包装器 (reqwest) 和 TUI (ratatui) 用于 alerts.in.ua

screencast

简介

Alerts.in.ua API 客户端是一个 Rust 库,简化了对 alerts.in.ua API 服务的访问。它提供有关空袭警报和其他潜在威胁的实时信息。

安装

要在终端中安装 Alerts.in.ua API 客户端,请运行以下命令

cargo add ralertsinua-http

用法

⚠️ 在您可以使用此库之前,您需要通过提交 API 请求表单 获取 API 令牌。

以下是一个基本示例,说明如何使用库获取活动警报列表

异步

use ralertsinua_http::{AlertsInUaClient, API_BASE_URL}

#[tokio::main]
async fn main() -> Result<()> {
    # Initialize the client with your token
    alerts_client = AlertsInUaClient(API_BASE_URL, "your_token");

    # Get the active alerts
    active_alerts = await alerts_client.get_active_alerts();

    print!("active_alerts: {}", active_alerts.into());
}

警报

Alerts 类是一个警报集合,并提供各种方法来过滤和访问这些警报。

当用户调用 client.get_active_alerts() 时,它返回 Alerts 类。

方法

filter(*args: str) -> Vec

此方法根据给定的参数过滤警报。

filtered_alerts = active_alerts.filter('location_oblast', 'Донецька область','alert_type','air_raid')

在此示例中,filtered_alerts 将包含所有具有 'Донецька область' 作为位置区域的空袭警报。

get_alerts_by_location_title(location_title: str) -> Vec

此方法返回指定位置的警报。

kyiv_alerts = active_alerts.get_alerts_by_location_title(. Київ')

get_air_raid_alerts() -> Vec

此方法返回所有类型为 'air_raid' 的警报。

air_raid_alerts = active_alerts.get_air_raid_alerts()

get_oblast_alerts() -> Vec

此方法返回所有类型为 'oblast' 的警报。

oblast_alerts = active_alerts.get_oblast_alerts()

get_raion_alerts() -> Vec

此方法返回所有类型为 'raion' 的警报。

raion_alerts = active_alerts.get_raion_alerts()

get_hromada_alerts() -> Vec

此方法返回所有类型为 'hromada' 的警报。

hromada_alerts = active_alerts.get_hromada_alerts()

get_city_alerts() -> Vec

此方法返回所有类型为 'city' 的警报。

city_alerts = active_alerts.get_city_alerts()

get_alerts_by_alert_type(alert_type: str) -> Vec

此方法返回所有类型为给定警报类型的警报。

artillery_shelling_alerts = active_alerts.get_alerts_by_alert_type('artillery_shelling')

get_alerts_by_location_type(location_type: str) -> Vec

此方法返回所有类型为给定位置类型的警报。

urban_location_alerts = active_alerts.get_alerts_by_location_type('raion')

get_alerts_by_oblast(oblast_title: str) -> Vec

此方法返回所有标题为给定区域的警报。

donetsk_oblast_alerts = active_alerts.get_alerts_by_oblast('Донецька область')

get_alerts_by_location_uid(location_uid: str) -> Vec

此方法返回所有具有给定位置uid的警报。

location_uid_alerts = active_alerts.get_alerts_by_location_uid('123456')

get_artillery_shelling_alerts() -> Vec

此方法返回所有类型为 'artillery_shelling' 的警报。

artillery_shelling_alerts = active_alerts.get_artillery_shelling_alerts()

get_urban_fights_alerts() -> Vec

此方法返回所有类型为 'urban_fights' 的警报。

urban_fights_alerts = active_alerts.get_urban_fights_alerts()

get_nuclear_alerts() -> Vec

此方法返回所有类型为 'nuclear' 的警报。

nuclear_alerts = active_alerts.get_nuclear_alerts()

get_chemical_alerts() -> Vec

此方法返回所有类型为 'chemical' 的警报。

chemical_alerts = active_alerts.get_chemical_alerts()

get_all_alerts() -> Vec

此方法返回所有警报。

all_alerts = active_alerts.get_all_alerts()

或者您可以使用快捷方式

for alert in active_alerts:
    print!(alert)

get_last_updated_at() -> datetime.datetime

此方法返回表示警报信息上次更新时间的datetime对象(基辅时区)。

last_updated_at = alerts.get_last_updated_at()

get_disclaimer() -> str

此方法返回与警报信息相关的免责声明。

disclaimer = alerts.get_disclaimer()

许可证

MIT 2024

*[TUI]: 终端用户界面

依赖项

~7–18MB
~262K SLoC