Змінюй хід війни! Допомагай ЗСУ!

Кто шарит в Питоне?

🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада

Dimoks

Адмін
Статус: Offline
Реєстрація: 15.08.2003
Повідом.: 70568
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #1
На форуме есть отображение воздушной тревоги, которая работает через Телеграмм, что не совсем по феншуй...

Год назад конторы типа api.ukrainealarm.com не давали API Key да и кода я не находил в открытом доступе...
Сейчас API Key они дали. Код я нашел. Например
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


Э... как понять вообще принцип работы всего этого? Он рабочий вообще и как запускать...
Как добавить mysql запрос чтобы в делалась запись в базу, из которой мы забираем текст для отображения на форуме.

Спасибо :пиво:
 
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #2
На форуме есть отображение воздушной тревоги, которая работает через Телеграмм, что не совсем по феншуй...

Год назад конторы типа api.ukrainealarm.com не давали API Key да и кода я не находил в открытом доступе...
Сейчас API Key они дали. Код я нашел. Например
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


Э... как понять вообще принцип работы всего этого? Он рабочий вообще и как запускать...
Как добавить mysql запрос чтобы в делалась запись в базу, из которой мы забираем текст для отображения на форуме.

Спасибо :пиво:

setuptools.setup(
name="ukrainealarm",
use_scm_version=True,
author="Pavlo Annekov",
author_email="[email protected]",
Чому б тебе не спитати
як воно повинно працювати? :)
 
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #3
Для того чтобы добавить запись в базу данных MySQL из Python, вы можете использовать библиотеку mysql-connector-python, которая предоставляет удобный способ взаимодействия с MySQL из Python. Вот пример того, как это можно сделать:

  1. Установите библиотеку mysql-connector-python, если у вас ещё нет её установленной, с помощью команды:
bashCopy code
pip install mysql-connector-python

  1. Подключитесь к вашей базе данных MySQL и выполните запрос на добавление записи. Вот пример кода:
pythonCopy code
import mysql.connector

# Устанавливаем соединение с базой данных
connection = mysql.connector.connect(
host="ваш_хост",
user="ваш_пользователь",
password="ваш_пароль",
database="ваша_база_данных"
)

# Создаем объект "курсора" для выполнения SQL-запросов
cursor = connection.cursor()

# Ваш SQL-запрос для добавления записи в базу данных
insert_query = "INSERT INTO ваша_таблица (поле1, поле2) VALUES (%s, %s)"

# Значения, которые нужно вставить в запрос (замените их на ваши значения)
values = ("значение1", "значение2")

# Выполняем запрос с передачей значений
cursor.execute(insert_query, values)

# Подтверждаем изменения в базе данных
connection.commit()

# Закрываем соединение
cursor.close()
connection.close()

В этом примере ваша_таблица - это таблица в вашей базе данных, в которую вы хотите добавить запись, а поле1 и поле2 - это поля в этой таблице, в которые вы хотите вставить значения.

Не забудьте заменить ваш_хост, ваш_пользователь, ваш_пароль, ваша_база_данных, значение1 и значение2 на соответствующие значения из вашей собственной конфигурации и данных, которые вы хотите вставить.
 
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #4
Там є приклад як ним користуватись.

import asyncio import aiohttp from ukrainealarm.client import Client async def main(): async with aiohttp.ClientSession() as session: client = Client(session, "[YOUR_API_KEY]") # All response formats are available here: https://api.ukrainealarm.com/swagger/index.html regions = await client.get_regions() print("regions list", regions) all_alerts = await client.get_alerts() print("all alerts", all_alerts) region_alerts = await client.get_alerts(16) print("alerts of region 16", region_alerts) last_alert_index = await client.get_last_alert_index() print("last alert index", last_alert_index) asyncio.run(main())

Як інтегрувати тобі в форум - не маю уяви, бо я не знаю як він працює :)
 
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #5
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #6
Бард ось що радить:
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
 
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #7
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #8
Похоже клиент под винды заточен - я попытался запустить клиента на линухе, получил ошибку -
ModuleNotFoundError: No module named 'winsound' , этот модуль только под винды, под линух надо править.

Если вопрос в том как вообще его запустить, то :
- проверить есть ли есть питон3 - python3 --version , если нет то поставить
apt install python3 python3.11-venv python3-pip

- проверить есть ли есть git - git --version , если нет поставить apt install git
- склонировать клиентский репо - git clone
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

- зайти внутрь - cd ukrainealarm-python-client
- создать виртуальный енвайрмент - python3 -m venv .venv
- активировать его - source .venv/bin/activate
- установить нужные модули - pip install -r requirments.txt
- запустить - python3 runner.py
 
Останнє редагування:
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #9
Там в исходниках просто вызовы, которые можно await для асинхронщины :)

Код в базу надо свой.

Я вообще по шарпу, но навреняка и в питоне ничего нет сложного.

А скинь мне что именно надо в базу, и ключ потестить - на неделе поиграю
 
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #10
Я запустил клиента (ukrainealarm-python-client) похоже - падает теперь на респонсах, что без Api Key вообщем-то логично.
- закомментил использование winsound
- поправил runner.py , добавил "config.yaml" параметром в load_config, а то не находил его
Мне кажется проще с готового клиента начать - там уже есть обертка- готовый конфиг , скедулер, единственно что надо добавить запись в БД и под линух переделать, а то он там себя пытается как Windows Service запустить .
 
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #11
Идут питоні
 
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #12
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #13
Ось переклав на php якщо запрацює можливо пару строчок кода добавити конект к бд, Необхідно вказати $access_token
Код:
<?php
  function getData($method){
      $url = 'https://api.ukrainealarm.com/api/v3/';
      $access_token = '';
      $data = [];
      $ch = curl_init($url.$method);
      $http_headers = ['Content-Type:application/json','authorization:'.$access_token];
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_TIMEOUT, 10000);
      curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers);
      $result = curl_exec($ch);
      $info = curl_getinfo($ch);
      if($info["http_code"] == 200){
        $data = json_decode($result, true);
      }
      return $data;
  }
  //ід регіона потім він не потрібен
  $res = getData('regions');
  var_dump($res);
 
  //можлиіо усі регіони вибрать чи указать сві ід
  //$res = getData('alerts/{region_id}');
  //var_dump($res);
 
Останнє редагування:
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #14
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #15
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #16
Ось переклав на php якщо запрацює можливо пару строчок кода добавити конект к бд, Необхідно вказати $access_token
Код:
<?php
  function getData($method){
      $url = 'https://api.ukrainealarm.com/api/v3/';
      $access_token = '';
      $data = [];
      $ch = curl_init($url.$method);
      $http_headers = ['Content-Type:application/json','authorization:'.$access_token];
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_TIMEOUT, 10000);
      curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers);
      $result = curl_exec($ch);
      $info = curl_getinfo($ch);
      if($info["http_code"] == 200){
        $data = json_decode($result, true);
      }
      return $data;
  }
  //ід регіона потім він не потрібен
  $res = getData('regions');
  var_dump($res);
 
  //можлиіо усі регіони вибрать чи указать сві ід
  //$res = getData('alerts/{region_id}');
  //var_dump($res);
Дякую!!!

Все працює!
 
Останнє редагування:
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #17
Теперь ХФ ещё и про воздушные тревоги в Харькове будет объявлять?
 
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #18
Там є приклад як ним користуватись.
Як інтегрувати тобі в форум - не маю уяви, бо я не знаю як він працює :)
а точно так же, как и существующий клиент пишет, "контрол-ц - контрол-в кусок с инсёртом в таблицу" :)
 
Останнє редагування:
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #19
Теперь ХФ ещё и про воздушные тревоги в Харькове будет объявлять?
год уже объявляет (с недавним небольшим перерывом в почти месяц). Хотя.... если ты отключил показ рекламы - то ты и не видишь.


Screenshot_20231009_183314.png
 
Останнє редагування:
  • 🟢 12:14 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #20
а точно так же, как и существующий клиент пишет, "контрол-ц - контрол-в кусок с инсёртом в таблицу" :)
Я від цього не почав знати - куди там саме в форумі треба контралве ото контролце.
 
Назад
Зверху Знизу