Выкатываю промежуточную версию бот-клиента для платформы голос - GKit.
Почему промежуточная?
Сейчас идет работа над значительным мажорным релизом с принципиально новыми фишками, и он пока не готов. Начальная же версия имеет некоторые изъяны, которые необходимо исправить.
Функция у бот-клиента по-прежнему пока только одна - автовот по списку. Изменения данной версии:
- Переведена на клиент-серверную архитектуру. Отдельный репозиторий - https://github.com/kv-gits/gkit-server Поддержка электрона (десктопной версии) пока под вопросом. Скорее всего - после реализации глобальных задумок
- Добавлена поддержка Steemit. Теперь можно автовотить и стимит и голос одновременно
- Данные хранятся в домашней директории пользователя APPDATA/GKit на винде и HOME/.config/GKit на линуксе
- Добавлена функция ожидания восстановления силы голоса. Если СГ ниже 97%, бот ждет некоторое время, прежде чем апвотить
Почему клиент-сервер?
Впечатления от десктопного фрэймворка electron неоднозначные. С одной стороны - очень легкая и приятная разработка и широкие возможности. С другой - просто адово вырвиглазные деплой, архитектура, и оптимизация ресурсов. Под МИНИМУМ 100 мб оперативы для одного приложения не так уж и много по современным меркам, но эстет внутри меня воет волком от такой архитектуры. И все-таки считаю, что десктоп голосу нужен. Скорее всего, электрон вернется с мажорным релизом.
Установка и запуск
Стало чуть сложнее, чем версию на электроне, но ничего в этом страшного нет. Для запуска нужен npm/yarn и nodejs.
Ноду качаем отсюда https://nodejs.org/en/
git clone https://github.com/kv-gits/gkit-server
cd ./gkit-server
npm install
export PORT = 3003
node app.js
Переменная окружения PORT указывает номер порта для доступа к клиенту. По умолчанию - 3003
Внимание, осторожно!
В данной версии отстутсвует проверка запросов к серверу на валидность. Не рекомендуется запускать на сервере с публичным айпи. Либо настройте файрвол должным образом. В ином случае ваш wif могут скоммуниздить. Не фатально, но может оказаться неприятным.
Пара технических моментов
Серверная часть на node Express.js. Особо сказать и нечего. Работает. Асинхронно, что местами приятно, а местами напрягает. Промисы выручают.
БД - nedb. Дабы упростить пользователю развертку, от классической PG/MySQL отказался. А вот встроенных бд для ноды выбор не так уж и велик. Nedb работает нормально, хоть уже олго и не поддерживается мэйнтейнером.
Для отрисовки интерфейса - Mithril.js. Радует однозначно! Облегченный React.js. Ничего лишнего, быстрее реакта, легко осваивается и никакого "magic code".
Попробовал тесты на Jest. Не сказать, что в полном восторге, но удобная вещь. Связь между клиентом и сервером только через вебсокеты. Не пойму, зачем люди еще сидят на HTTP requests?
Обратная связь
С вопросами, предложениями, багрепортами можно обращаться сюда https://t.me/joinchat/AsAZwkOY5U1vWB4w2egpUg
все внимательно прочитала. могли бы вы сделать короткое описание, емкое, что делает этот бот - языком для простых пользователей, какая от него выгода и помощь. в чем его удобство. и - как его поставить. я поняла, здесь надо разбираться в программировании чтобы им пользоваться? если он доступен всем пользователям, и его несложно настроить, мы добавим его в обзор. как сделаете, скиньте плиз инфу в группу Лиги и мне в личку, чтобы не потерялось )
А как вам в личку написать? В телеграмм?
да, конечно, ник такой же как на голосе! )
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
boddhisattva, on1x, kvg, dmitrijv, anr
Поэтому я тоже проголосовал за него!
Если Вы проголосуете за этот комментарий, то поможете сделать "Доброго Кита" сильнее!