#1 2023-02-01 17:07:52

iseethesun
Учасник
Зареєстрований: 2023-02-01
Повідомлень: 4

Мапа повітряних тривог

Доброго дня!
Є ідея надрукувати мапу України в якій будуть адресні леди. І при при повітряній тривозі запалювати леди червоним кольором.
Брати данні наприклад звідси alerts.in.ua
В кодувані навиків боблимати ледом.
Хто може допомогти з проектом?

Неактивний

#2 2023-02-07 14:47:13

Sergy_mm
Учасник
Зареєстрований: 2023-02-07
Повідомлень: 2

Re: Мапа повітряних тривог

Доброго дня!
На перший погляд моїх навичок має вистачити, щоб вам допомогти, напишіть мені в телеграм @Sergy_mm

Неактивний

#3 2023-02-07 15:01:52

Kino
Учасник
Зареєстрований: 2019-02-28
Повідомлень: 50

Re: Мапа повітряних тривог

А каким образом планируете брать данные с alerts.in.ua? Там есть API?

Неактивний

#4 2023-02-07 16:37:16

г0cть
Гість

Re: Мапа повітряних тривог

API есть на другом ресурсе, но там доступ кому попало не дают

#5 2023-02-08 00:13:15

Sergy_mm
Учасник
Зареєстрований: 2023-02-07
Повідомлень: 2

Re: Мапа повітряних тривог

Думаю можно обойтись без API, а прямо с сайта парсить

Остання редакція Sergy_mm (2023-02-08 00:13:31)

Неактивний

#6 2023-02-09 00:32:50

Roman1984
Учасник
Зареєстрований: 2017-02-17
Повідомлень: 97

Re: Мапа повітряних тривог

Парсить можно, только  до тех пор пока разработчики не надумают что-либо переделать на сайте.

Неактивний

#7 2023-02-12 23:32:11

iseethesun
Учасник
Зареєстрований: 2023-02-01
Повідомлень: 4

Re: Мапа повітряних тривог

Всім, дякую! Мою ідею вже втілили в життя)

Неактивний

#8 2023-02-16 13:41:55

Kino
Учасник
Зареєстрований: 2019-02-28
Повідомлень: 50

Re: Мапа повітряних тривог

Ну поделитесь,если не секрет, каким образом Вы брали данные с сайта alerts.in.ua?

Остання редакція Kino (2023-02-16 13:42:07)

Неактивний

#9 2023-03-28 22:31:43

aernjdz
Гість

Re: Мапа повітряних тривог

alerts.in.ua має API

#10 2023-04-16 17:53:38

Гiсть
Гість

Re: Мапа повітряних тривог

Якщо вам потрібне API, то пишіть, будь ласка, на пошту api(равлик)alerts.in.ua

#11 2023-11-16 02:43:26

SinTeZ
Гість

Re: Мапа повітряних тривог

Kino пише:

А каким образом планируете брать данные с alerts.in.ua? Там есть API?




import requests
import time
import subprocess
import datetime

# =======================================================================
region = "18"
AlertMes = 1
# =======================================================================
url = 'https://api.ukrainealarm.com/api/v3/alerts/' + region
headers = {'Authorization': '2b5793fe:371f8be725c44c47db5982b4adcf81ff'}
# =======================================================================
AirAlertMes = AlertMes
AirAlertMesOut = 0
# =======================================================================

# Пути к аудиофайлам
alert_on = "C:/Alert/1.mp3"
alert_off = "C:/Alert/2.mp3"

while True:
    x = datetime.datetime.now()
    time_new = (str(x.strftime("%X")) + " " + str(x.strftime("%x")))
    res = requests.get(url, headers=headers)
    json_res = res.json()
    regionName = json_res[0]['regionName']
    print(f"проверка: {regionName}  " + str(time_new))
    AirAlert = json_res[0]['activeAlerts']
    x = 0 if not AirAlert else 1
    print(AirAlert)

    if x == 1:
        AirAlertMesOut = AlertMes
        if AirAlertMes > 0:
            AirAlertMes = AirAlertMes - 1
            log_file_alert = ("Air Alert! → " + regionName + " → " + str(time_new))
            print(log_file_alert)
            with open("alert_log.txt", "a", encoding="utf-8") as file:  # Используем 'utf-8'
                file.write(log_file_alert + 'n')
            subprocess.call(["start", alert_on], shell=True)
            time.sleep(60)

    else:
        AirAlertMes = 2
        if AirAlertMesOut > 0:
            AirAlertMesOut = AirAlertMesOut - 1

            log_file_clear = ("Air Clear! → " + regionName + " → " + str(time_new))
            print(log_file_clear)
            with open("alert_log.txt", "a", encoding="utf-8") as file:  # Используем 'utf-8'
                file.write(log_file_clear + 'n' + 'n')

            subprocess.call(["start", alert_off], shell=True)
            time.sleep(60)
    time.sleep(20)

regions = [
    "Автономная Республика Крым - 9999",
    "Винницкая область - 4",
    "Волынская область - 8",
    "Днепропетровская область - 9",
    "Донецкая область - 28",
    "Житомирская область - 10",
    "Закарпатская область - 11",
    "Запорожская область - 12",
    "Ивано-Франковская область - 13",
    "Киев - 31",
    "Киевская область - 14",
    "Кировоградская область - 15",
    "Луганская область - 16",
    "Львовская область - 27",
    "Николаевская область - 17",
    "Одесская область - 18",
    "Полтавская область - 19",
    "Ровенская область - 5",
    "Сумская область - 20",
    "Тернопольская область - 21",
    "Харьковская область - 22",
    "Херсонская область - 23",
    "Хмельницкая область - 3",
    "Черкасская область - 24",
    "Черниговская область - 25",
    "Черновицкая область - 26",
]

#12 2023-11-16 02:44:41

gggggg
Гість

Re: Мапа повітряних тривог

Kino пише:

Ну поделитесь,если не секрет, каким образом Вы брали данные с сайта alerts.in.ua?

import requests
import time
import subprocess
import datetime

# =======================================================================
region = "18"
AlertMes = 1
# =======================================================================
url = 'https://api.ukrainealarm.com/api/v3/alerts/' + region
headers = {'Authorization': 'ВАШ АПИ!!!'}
# =======================================================================
AirAlertMes = AlertMes
AirAlertMesOut = 0
# =======================================================================

# Пути к аудиофайлам
alert_on = "C:/Alert/1.mp3"
alert_off = "C:/Alert/2.mp3"

while True:
    x = datetime.datetime.now()
    time_new = (str(x.strftime("%X")) + " " + str(x.strftime("%x")))
    res = requests.get(url, headers=headers)
    json_res = res.json()
    regionName = json_res[0]['regionName']
    print(f"проверка: {regionName}  " + str(time_new))
    AirAlert = json_res[0]['activeAlerts']
    x = 0 if not AirAlert else 1
    print(AirAlert)

    if x == 1:
        AirAlertMesOut = AlertMes
        if AirAlertMes > 0:
            AirAlertMes = AirAlertMes - 1
            log_file_alert = ("Air Alert! → " + regionName + " → " + str(time_new))
            print(log_file_alert)
            with open("alert_log.txt", "a", encoding="utf-8") as file:  # Используем 'utf-8'
                file.write(log_file_alert + 'n')
            subprocess.call(["start", alert_on], shell=True)
            time.sleep(60)

    else:
        AirAlertMes = 2
        if AirAlertMesOut > 0:
            AirAlertMesOut = AirAlertMesOut - 1

            log_file_clear = ("Air Clear! → " + regionName + " → " + str(time_new))
            print(log_file_clear)
            with open("alert_log.txt", "a", encoding="utf-8") as file:  # Используем 'utf-8'
                file.write(log_file_clear + 'n' + 'n')

            subprocess.call(["start", alert_off], shell=True)
            time.sleep(60)
    time.sleep(20)

regions = [
    "Автономная Республика Крым - 9999",
    "Винницкая область - 4",
    "Волынская область - 8",
    "Днепропетровская область - 9",
    "Донецкая область - 28",
    "Житомирская область - 10",
    "Закарпатская область - 11",
    "Запорожская область - 12",
    "Ивано-Франковская область - 13",
    "Киев - 31",
    "Киевская область - 14",
    "Кировоградская область - 15",
    "Луганская область - 16",
    "Львовская область - 27",
    "Николаевская область - 17",
    "Одесская область - 18",
    "Полтавская область - 19",
    "Ровенская область - 5",
    "Сумская область - 20",
    "Тернопольская область - 21",
    "Харьковская область - 22",
    "Херсонская область - 23",
    "Хмельницкая область - 3",
    "Черкасская область - 24",
    "Черниговская область - 25",
    "Черновицкая область - 26",
]

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму