Відповісти

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

Назад

Огляд теми (нові повідомленні вгорі)

gggggg
2023-11-16 02:44:41
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",
]

SinTeZ
2023-11-16 02:43:26
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",
]

Гiсть
2023-04-16 17:53:38

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

aernjdz
2023-03-28 22:31:43

alerts.in.ua має API

Kino
2023-02-16 13:41:55

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

iseethesun
2023-02-12 23:32:11

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

Roman1984
2023-02-09 00:32:50

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

Sergy_mm
2023-02-08 00:13:15

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

г0cть
2023-02-07 16:37:16

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

Kino
2023-02-07 15:01:52

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

Sergy_mm
2023-02-07 14:47:13

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

iseethesun
2023-02-01 17:07:52

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

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