Как ни странно, под форумными ботами на форумах чаще понимаются всевозможные служебные фичи, выводящие какую-либо информацию в сообщение (примером такого может служить форумное подсознание). Ну а также всевозможные программки, рассылающие рекламу, парсящие, или индексирующие форум.
Впрочем, и когда под форумными ботами понимают программки для общения тоже нередко бывает. Увы, почему-то какие-то готовые решения по написанию таких ботов относительно редки. Они, конечно, есть, но их мало (
вот, например, вполне себе жизнеспособный бот для общения, свободно распространяемый)... а доступных именно для этого типа форума мне и вовсе найти не удалось (в смысле тех, которые не требуется допиливать, а в идеале и вовсе отдельным модом).
В общем в результате я решил написать своего бота, совместимого с этим форумом и обучаемого.
Вкратце идея реализации такова.
Обитать он будет отдельным файликом, пользовать свою собственную базу (форумная и так уже большая, да и у обучаемого бота база может ох как разрастись), плюс к нему будет прилагаться отдельным файликом яваскрипт, крутящийся уже на форуме и дающий знать боту, что требуется его ответ.
Скорее всего, поначалу боту будут выделяться определённые темы, в которых ему будет иметь смысл общаться. Скрипт будет отлавливать нажатие на кнопку "отправить" в меню редактирования сообщений (оно же меню создания) этих тем и, запускать php файлик бота, после чего возвращать управление форуму (сиречь банальный "return true" после аджаксового запуска бота). Теоретически хитрые кулхацкеры смогут запускать бота вообще для любой темы просто-напросто, скопировав скрипт и запуская его принудительно, но оно, в общем-то, не сильно большая неприятность (если вообще может считаться неприятностью).
Дальше php файлик бота будет ждать секунд 5 (что б тема гарантированно опубликовалась) и брать из ссылки, с которой его вызвали номер темы. Потом смотреть там сообщения, которые написаны не им и анализировать их. Ну и плюс будет создаваться специальный файлик-индикатор, что бы предотвратить повторное срабатывание бота в одной и той же теме при одновременной публикации сообщений разными пользователями.
Если в сообщении упоминается одно из ключевых командных слов (и автор сообщения находится в списке доверенных) то выполнять соответствующую команду. Иначе же - пытаться выбирать сооотвествующий ответ из имеющихся в базе вариантов.
При отсутствии ответа и наличии пользователя в базе доверенных бот будет спрашивать, что ему отвечать. При получении ответа от этого пользователя - записывать себе в базу предложенный вариант ответа.
При отсутствии ответа и пользователя в списке доверенных, бот будет выдавать один из имеющихся вариантов-"заглушек".
Структура базы бота предполагается состоящей из нескольких таблиц.
1. Таблица вариантов ответов. С полями соответственно: "порядковый номер", "вариант вопроса" , "вариант ответа 1", "вариант ответа 2", "вариант ответа 3".
2. Таблица ответов/заглушек. Поля тут будут "порядковый номер", "вариант ответа".
Плюс внешний конфигурационный файлик, в котором будут содержаться в виде массивов список доверенных пользователей и количество ответов/заглушек (тем самым к базе не придётся регулярно делать запросы, с целью получения количества оных заглушек).
Пока всё. Реализовывать начну в ближайшее время, походу сюда буду делать заметки о принятых решениях и прочем.
P.S. Так как сколь-нибудь великим программистом себя не считаю, всевозможная конструктивная критика и предложения приветствуются.