Package: alerts-in-ua.py
Alerts_in_ua.pyБібліотека для користування API сайтуalerts.in.ua.Бібліотека досі в розробці, якщо ви знайшли помилку або у вас є ідея щодо бібліотеки,
вертайтесь до розробника!Telegram:@FOUREX_dot_py.Розробники сайтуalerts.in.uaвипустилиофіційну бібліотеку.Встановленняpipinstallalerts-in-ua.pyПриклад використання:fromalerts_in_ua.alerts_clientimportAlertsClient# Імпортуємо клієнтalerts_client=AlertsClient("token")# Ініціалізуємо клієнтdefmain():locations=alerts_client.get_active()# Отримуємо список місць з тривогою# Фільтруємо список місць залишаючи місця з ПОВІТРЯНОЮ тривогоюair_raid_locations=locations.filter(alert_type="air_raid")forlocationinair_raid_locations:# Виводимо назву та час початку тривоги кожного місця зі спискуprint(location.location_title,location.started_at)if__name__=="__main__":main()Приклад використання асинхронного клієнта:Рекомендовано використовувати для ботівimportasynciofromalerts_in_ua.async_alerts_clientimportAsyncAlertsClientalerts_client=AsyncAlertsClient("token")# Ініціалізуємо клієнтasyncdefmain():locations=awaitalerts_client.get_active()# Отримуємо список місць з тривогою# Фільтруємо список місць залишаючи місця з ПОВІТРЯНОЮ тривогоюair_raid_locations=locations.filter(alert_type="air_raid")forlocationinair_raid_locations:# Виводимо назву та час початку тривоги кожного місця зі спискуprint(location.location_title,location.started_at)if__name__=="__main__":loop=asyncio.new_event_loop()loop.run_until_complete(main())Приклад використання рендера мапи тривог:Для телеграм боту написаного з допомогою бібліотекиaiogramfromaiogramimportBot,Dispatcher,executorfromaiogram.typesimportMessagefromalerts_in_ua.async_alerts_clientimportAsyncAlertsClientbot=Bot("telegram_bot_token")dp=Dispatcher(bot)alerts_client=AsyncAlertsClient("api_alerts_in_ua_token")@dp.message_handler(commands=["alerts"])asyncdefyep(message:Message):locations=awaitalerts_client.get_active()alerts_map=locations.render_map()message_text="\n".join(locations.location_title)awaitmessage.reply_photo(alerts_map,message_text)if__name__=="__main__":executor.start_polling(dispatcher=dp)Результат:Використання фільтрів:Спосіб 1locations=alerts_client.get_active()air_raid=locations.filter(alert_type="air_raid")oblast=locations.filter(location_type="oblast")air_raid_and_oblast=locations.filter(alert_type="air_raid",location_type="oblast")print(air_raid)# Місця лише з повітряною тривогоюprint(oblast)# Лише областіprint(air_raid_and_oblast)# Лише області з повітряною тривогоюСпосіб 2locations=alerts_client.get_active()air_raid_filter={"alert_type":"air_raid"}oblast_filter={"location_type":"oblast"}air_raid_and_oblast_filter={"alert_type":"air_raid","location_type":"oblast"}air_raid=locations.filter(**air_raid_filter)oblast=locations.filter(**oblast_filter)air_raid_and_oblast=locations.filter(**air_raid_and_oblast_filter)print(air_raid)# Місця лише з повітряною тривогоюprint(oblast)# Лише областіprint(air_raid_and_oblast)# Лише області з повітряною тривогоюОтримання значень атрибутів місць через список місць:locations=alerts_client.get_active()print(list(zip(locations.location_title,locations.location_uid)))# [('Луганська область', '16'), ('Автономна Республіка Крим', '29'), ('Нікопольська територіальна громада', '351'), ('м. Нікополь', '5351')]Перевірка наявності місця в списку:За його UID (location_uid) або назвою (location_title)locations=alerts_client.get_active()print("Автономна Республіка Крим"inlocations)