Написан на фрибейсике. Можно скомпилировать как обычное консольное приложение и как службу Windows. Изначально разрабатывается для каналов #freebasic-ru и #s2ch, в настоящее время можно использовать для любых каналов и сетей.
!справка
Псевдонимы: !help, !помощь.
!статистика
Бот отправит файл с количеством сказанных фраз всех пользователей текущего канала.
!з <текст>
Бот отправит текст «в ВиДе ЗаБоРа» для издевательства над другими пользователями.
Достаточно отправиь в чат точку:
.
Бот ответит какова задержка сообщений между тобой и ботом в микросекундах.
Полный вариант:
Чат, скажи: <а> или <б>?
Сокращённый вариант:
Чат, <а> или <б>?
В ответ бот отправит один из вариантов с рекомендацией.
!жуйк <фраза>
В ответ бот скажет, что отправит на жуйкочан (на самом деле нет).
!таймер <время в секундах> <текст сообщения>
Бот установит таймер на определённое число секунд, после чего скажет в чату фразу.
!покажи <рисунок>
В ответ бот отправит один из рисунков. Фраза должна быть в родительном падеже. Доступные рисунки:
- синего кита
- дом с трубой
- сову
- котэ с рыбой
- стоящего котэ
!кто
Бот отправит сообщение «WHOIS ник» на сервер и проверит аутентификацию. Бот не сообщает результат прохождения аутентификации.
!пенис [ник]
Бот отправит в чат длину пениса пользователя.
!guid
Бот создаст уникальный идентификатор типа GUID и отправит результат в чат.
!сгинь [причина выхода]
!ник <новый ник>
!зайди <канал>
!выйди <канал> [причина]
!тема <новая тема>
!скажи <кому> <что>
!ну <текст>
!делай <исполняемый файл> <параметры>
!пароль <пароль>
!вопрос <фраза>
!ответ <номер вопроса> <фраза>
!вопросы
!ответы <номер вопроса>
Настройки бота лежат в файле Qubick.ini рядом с исполняемым файлом. Файл настроек считывается единожды при запуске программы. Примерный вариант файла настроек:
[Connection]
Server=chat.freenode.net
Port=6667
LocalAddress=0.0.0.0
LocalPort=0
[IrcBot]
ServerPassword=
Nick=Qubick
UserString=Qubick
RealName=John Doe
Description=Irc bot written in FreeBASIC
Channels=#freebasic-ru,#s2ch
MainChannel=#freebasic-ru
AdminNick1=writed
AdminNick2=PERDOLIKS
- Server
- Доменное имя сервера или IP‐адрес.
- Port
- Порт для соединения с сервером.
- LocalAddress
- IP‐адрес сетевой карты, с которой будет идти соединение с сервером.
- LocalPort
- Локальный порт для соединения с сервером, по умолчанию 0.
- ServerPassword
- Пароль на сервер, часто не требуется.
- Nick
- Имя бота.
- UserString
- USER‐строка.
- RealName
- Настоящее имя владельца бота.
- Description
- Описание бота.
- Channels
- Список каналов, на которых будет сидеть бот. Каналы разделяются запятыми без пробелов.
- MainChannel
- Главный канал, на нмё будет запрашиваться информация о версии входящих пользователей.
- AdminNick1
- Главный ник и учётная запись администратора. К этому нику можно привязать запасной.
- AdminNick2
- Запасной ник администратора.
Для компиляции потребуется статическая библиотека libIRC, взять её можно отсюда https://github.com/BatchedFiles/IrcClientLibrary
Обычное приложение:
fbc -i "C:\Programming\FreeBASIC Projects\IrcClientLibrary\trunk" -l IRC -l Mswsock Main.bas Bot.bas MainLoop.bas BotEvents.bas BotCommands.bas ProcessCommands.bas ProcessCreateGuidCommand.bas ProcessCtcpPingCommand.bas ProcessFenceCommand.bas ProcessGetLogsCommand.bas ProcessHelpCommand.bas ProcessAsciiGraphicsCommand.bas ProcessChooseFromTwoOptionsCommand.bas ProcessChannelStatisticsCommand.bas ProcessUserWhoIsCommand.bas ProcessTimerCommand.bas ProcessPenisCommand.bas ProcessExecuteCommand.bas Logging.bas AnswerToChat.bas QuestionToChat.bas WriteLine.bas DateTimeToString.bas Settings.bas StringFunctions.bas DccSendServer.bas Network.bas
Служба Windows:
fbc -d service=true -i "C:\Programming\FreeBASIC Projects\IrcClientLibrary\trunk" -l IRC -l Mswsock Service.bas Bot.bas MainLoop.bas BotEvents.bas BotCommands.bas ProcessCommands.bas ProcessCreateGuidCommand.bas ProcessCtcpPingCommand.bas ProcessFenceCommand.bas ProcessGetLogsCommand.bas ProcessHelpCommand.bas ProcessAsciiGraphicsCommand.bas ProcessChooseFromTwoOptionsCommand.bas ProcessChannelStatisticsCommand.bas ProcessUserWhoIsCommand.bas ProcessTimerCommand.bas ProcessPenisCommand.bas ProcessExecuteCommand.bas Logging.bas AnswerToChat.bas QuestionToChat.bas WriteLine.bas DateTimeToString.bas Settings.bas StringFunctions.bas DccSendServer.bas Network.bas