"//" — комментарии
{
"log_level": "info",
"//": "доступны уровни: debug, info, warn, error",
"api_id": 12345,
"api_hash": "asduftr2983746yiagf23ui4ygajd",
"//": "это надо добыть по адресу https://my.telegram.org/apps",
"phone": "+792512345678",
"target": "🛡",
"//": "или \"⚔\", используется для определения цели в сообщении от @cwTortugaBot",
"caravan": 200,
"//": "как только поступает сообщение с /go, бот ждёт случайное количество секунд (распределение нормальное) 1 до этого числа, и затем шлёт /go. Если это число меньше 180, караваны пропускаться не будут",
"auto_arena": true,
"//": "случайная автоарена, если вам кажется что встроенный 'быстрый бой' слишком предсказуем",
"forwards": {
"report": -1001373368972,
"//report": 615010125,
"//": "615010125: @cwCastleBot, -1001373368972: squad chat"
"arena_result": 615010125,
"//": "куда форвардить результаты арены"
},
"handlers": [
{ "predicate": {"chat_id": 265204902, "sender_user_id": 265204902},
"handler": "Elixir.CW.Handler", "args": "chatwars",
"//": "@ChatWarsBot" },
{ "predicate": {"chat_id": 265204902, "sender_user_id": 265204902},
"handler": "Elixir.Qtd.Logger", "args": "chatwars",
"//": "@ChatWarsBot" },
{ "predicate": {"chat_id": 265204902},
"handler": "Elixir.CW.Handler", "args": "chatwars_me",
"//": "me to @ChatWarsBot" },
{ "predicate": {"chat_id": 265204902},
"handler": "Elixir.Qtd.Logger", "args": "chatwars_me",
"//": "me to @ChatWarsBot" },
{ "predicate": {"chat_id": -1001373368972, "sender_user_id": 614721671},
"handler": "Elixir.CW.Handler", "args": "command",
"//": "@cwTortugaBot at Летучий Голландец" },
{ "predicate": {"chat_id": -1001373368972, "sender_user_id": 614721671},
"handler": "Elixir.Qtd.Logger", "args": "command",
"//": "@cwTortugaBot at Летучий Голландец" }
]
}
Засунуть это в файл, например, myconfig.json, при запуске докер-контейнера — смонтировать в /app/config/config.json
Точки для монтирования:
/app/config/config.json — конфигурация
/app/db — хранилище для tdlib, в т.ч. авторизация
/app/logs — логи в файле, уровня debug
docker run -it --rm -v pwd/myconfig.json:/app/config/config.json -v pwd/db:/app/db --name qtd3 lattenwald/qtd3
docker stop qtd3
ВНИМАНИЕ авторизация новых номеров не поддерживается, потому что лень. Телефон, указанный в json-конфиге, должен уже быть зарегистрирован в телеграме.
Эту операцию требутеся провести один раз, если /app/db смонтировано в host-систему
Вскоре после первого запуска в логе появится нечто вроде
2018-06-01 13:05:22.960 application=qtd module=Qtd [warn] Waiting code
Требуется подключиться к запущенному демону и отправить код, который пришёл на телеграм или телефон.
$ docker exec -it qtd3 /app/bin/qtd3 remote_console
Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [kernel-poll:false]
Interactive Elixir (1.6.5) - press Ctrl+C to exit (type h() ENTER for help)
iex([email protected])1> 1+1
2
iex([email protected])2> Qtd.auth_code "77158"
:ok
Если у вас в телеграме установлен пароль, в логе появится строчка
2018-06-01 13:07:10.476 application=qtd module=Qtd [warn] Waiting password
Тогда в ту же remote console следует отправить пароль
iex([email protected])3> Qtd.auth_password "aslkjdfhoq237yoaisddghf3i8wr"
:ok
Когда в логе появляется строка
2018-06-01 13:07:28.591 application=qtd module=Qtd [info] Authorized successfully
Можно отключать консоль: Ctrl+c Ctrl+c или Ctrl+g q
Поддерживается возможность перезагрузить конфигурацию из config.json, не останавливая контейнер: после изменения конфига, следует выполнить
docker exec qtd3 pkill -SIGHUP beam
ВНИМАНИЕ тестов никаких нет, что отвалится — неизвестно. Если json невалидный, сломается всё. В случае непонятных проблем проще остановить и запустить заново, чем пытаться понять, в каком же именно месте старый конфиг был закэширован в памяти и не заменяется новым.
Content type
Image
Digest
Size
119.3 MB
Last updated
about 8 years ago
docker pull lattenwald/qtd3