Недавно начал писать бота с использованием этой замечательной библиотеки, но к несчастью столкнулся с некоторыми недоработками.
Поэтому решено было доработать библиотеку imodem и вот что из этого получилось:
Обновление для библиотеки imodem
Теперь imodem может обрабатывать личные сообщения (раньше просто игнорил их). Говорим спасибо @Bit
Добавлена авторизация ника
Все данные по именам/каналам лежат в файле конфигурации по адресу /etc/imodem.cfg
Возможен запуск по данным пользователя из Shell
Добавлено логирование
Добавлено переподключение если отключится интернет
Итак, поясняю. Немного изменился порядок приема сообщения. Теперь входные данные выглядят так:
modem_message ник_imodem ник_говорящего 0 #канал/ник_imodem сообщение
Если сообщение идет с канала, то указывается канал, если личное сообщение, то ник imodem.
Чтобы не лазить по библиотеке, ради изменения ника, канала, сервера было решено перенести все эти данные в файл конфигурации.
Библиотека автоматически проверяет файл конфигурации, и в случае если его не найдет, самостоятельно его восстановит.
Данные хранятся в следующем виде:
nick = "Тут ник"
pass = "Пароль (0)"
server = "irc.esper.net:6667"
channel = "#канал"
log = "Записывать логи (1/0)"
Чтобы не заморачиваться с настройкой ника/канала/сервера/логов можно передать все эти данные одной командой:
imodem [server[:port]] <nickname> <password> <channel> <save(1/0)> <log(1/0)>
Ну а если все настроено и вас устраивает, можете напрямую imodem запускать и по сохраненным данным все запустится.
Логирование сделано больше для отладки, логи можно найти по адресу /IMODEMLOG.txt
Для того чтобы imodem мог переподключаться, через каждые 60 секунд оправляется пингование на сервер. И если в течении 30 секунд не придет ответ, imodem автоматически переподключится. Это лучше чем словить кратковременный сбой в доступе к интернету и потом вручную перезагружать библиотеку.
Скачать библиотеку можно по команде
pastebin get -f MvR7FTGS /lib/imodem.lua
Выражаю благодарность за помощь в улучшении @Bit, @Doob, @vladimir, @Fingercomp