Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
vp-webdev
6 лет назад

Вытаскиваем материалы блокчейна в режиме реального времени


Сегодня мы продолжим цикл статей про анализ статей на голосе. Приведем код в более менее порядок и получим текст материала на голосе.

Первым делом был создан скрипт, я назвал его get.py, в него перенесём функции on_open, on_message, on_error и on_close. Теперь обращаться к ним будем так:

get.on_message

Пример создания соединения:

import get

 ws = websocket.WebSocketApp("wss://ws18.golos.io/",
                                on_message=get.on_message,
                                on_error=get.on_error,
                                on_close=get.on_close)

Далее получим статьи и выведем их текст:
Для этого создадим функцию-обработчик, я назвал ее handler_mes, принимать будет объект, приходящий из блокчейна.

Вызывать ее будем, если id в запросе данных будет равно 2:

elif jsons.get('id') == 2:

Реализуем функцию:

def handler_mes(datas):
    if len(datas) > 0:
        for data in datas:
            if data.get('op')[0] == 'comment' and data.get('op')[1].get('title') != '':
                print(data.get('op')[1].get('body'))
  • Первым делом проверяем не пуст ли блок.
  • Проходимся по нему циклом
  • Проверяем тип данных, нам нужен 'comment' и не пустое ли поле title
  • Выводим текст

Результат работы.
Imgur

Листинг main.py
Листинг get.py

В следующей статье будем добавлять статьи в базу данных.

Материал подготовлен автором @zheev

2
247.926 GOLOS
На Golos с August 2017
Комментарии (1)
Сортировать по:
Сначала старые