Каликовыбиратель -- специальный бот, созданный для определения того, кто же будет первым курить кальян, а также узнать последовательность курения.
Здесь описана полная инструкция того, как правильно установить у себя на удалённом сервере этого бота. Также это сделано для меня самого, когда я в очередной раз переустановлю сервер:)
Тут нам нужно разобраться, где ты. Поэтому перейди в домашнюю папку и скачай бота
$ cd
$ git clone https://github.com/Plintes/hookahrobot.git
$ cd ~/hookahrobotНичего сложного, просто сертификаты для вэбхуков. Если хочется подробнее узнать о том, как они работают, то можно прочитать эту статью про вэбхуки.
$ sudo apt-get install openssl
$ openssl genrsa -out webhook_pkey.pem 2048После следующей команды нам предложат ввести некоторую информацию о себе: двухбуквенный код страны, имя организации и т.д. Если не хотите ничего вводить, ставьте точку.
ВАЖНО! Когда дойдете до предложения ввести Common Name, следует написать IP адрес сервера, на котором будет запущен бот.
$ openssl req -new -x509 -days 3650 -key webhook_pkey.pem -out webhook_cert.pemВ конце получаем два сертификата, которые будут лежать вместе с ботом.
По умолчанию, например, на Ubuntu стоит python 3.5.2. Для работы бота необходим python 3.6 В Ubuntu 16.04 новая версия Python 3.6 не поставляется. Поэтому вы можете собрать ее из исходников или же использовать PPA.
$ sudo add-apt-repository ppa:jonathonf/python-3.6Высветится предупреждение о том, что python 3.5 удалять нельзя. Соглашаемся с этим, нажав Enter.
A plain backport of *just* Python 3.6. System extensions/Python libraries may or may not work.
Don`t remove Python 3.5 from your system - it will break.
More info: https://launchpad.net/~jonathonf/+archive/ubuntu/python-3.6
Press [ENTER] to continue or ctrl-c to cancel adding it После этого ввести
$ sudo apt updateУстановка Python 3.6 Ubuntu 16.04 выполняется командой:
$ sudo apt install python3.6После установки можно назначить запуск python 3.6 при вводе команды python3, так как сейчас по умолчанию запускается python 3.5
$ sudo ln -fs /usr/bin/python3.6 /usr/bin/python3Проверить версию python можно с помощью этой команды:
$ python3 -Vpip является системой управления пакетами и используется для установки и управления пакетами программного обеспечения, написанные на Python.
ВАЖНО!
Не советую устанавливать pip3 с помощью команды apt-get, так как она устанавливает старую версию и если обновить её до новой версии при помощи внутренних средств pip, то он в итоге выйдет из строя.
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.pyПроверить версию pip можно с помощью команды
$ pip3 -VВзаимодействие ботов с людьми основано на HTTP-запросах. Библиотека pyTelegramBotAPI - это такой “конструктор”, в котором содержатся все необходимые нам компоненты-“кубики”.
$ sudo pip install pyTelegramBotAPIВэб-фреймворк Flask же предназначен для обработки сообщений от веб-сервера. Нужно это для работы вэбхуков, сертификаты на которые были созданы на первом шагу.
$ sudo pip install FlaskПосле проведения всех операций выше, нужно изменить некоторые параметры в боте
token - выдаётся в боте @BotFather
WEBHOOK_HOST - ip адрес вашего сервера
WEBHOOK_PORT - порт, через который будет работать бот.
ВАЖНО!
Обязательно проверьте настройки фаервола и добавьте порт, который вы указали в пункте выше
$ nano ~/hookahrobot/webHookahRobot.pyЭто была последняя настройка.
Настал момент истины. Запуск бота
$ nohup python3 ~/hookahrobot/webHookahRobot.py &Команда nohup перенаправляет внутренние сообщения скомпилированного бота в отдельный файл nohup.out. В случае возникновения проблем, очень удобно изучить этот файл.
& -- амперсанд в конце запускает бота в фоне на сервере.
Ну а теперь пора выяснить, кто же будет первым курить калик?