Невозможно сделать бота оператором канала на IRC-сервере на базе InspIRCd.

Я работаю над домашним проектом, где у меня есть IRC-сервер на базе InspIRCd. У меня есть несколько ботов из внешних скриптов, которые продолжают подключаться к каналу под этим сервером и закрываются после публикации некоторых обновлений. Назовем его «вещательным каналом».

Каждый бот при подключении к каналу из скрипта имеет ник, за которым следует трехзначное случайное число, просто чтобы предотвратить одну и ту же проблему с никнеймом, которая отклоняется IRC-сервером из-за дублирования никнейма.

Иногда я вижу, что ботам не удается выйти и остаться на канале, в то время как другой бот продолжает подключаться из сценария и присоединяться к каналу. Я пробовал принудительно выйти из бота, используя некоторые таймеры, но боты все равно иногда не выходят, возможно, он где-то застрял.

Чтобы решить эту проблему, я собираюсь создать бота-администратора, который будет «выгонять» неработающих ботов из канала. Я пытаюсь использовать Weechat, а также WinIRC в качестве клиентов этого сервера на inspIRCd.

Настройки inspircd.conf выглядят следующим образом.

      <bind... and other settings>

<class name="SACommands" commands="SAJOIN SAPART SANICK SAQUIT SATOPIC SAKICK SAMODE OJOIN" usermodes="o">
<class name="ServerLink" commands="CONNECT SQUIT RCONNECT RSQUIT MKPASSWD ALLTIME SWHOIS LOCKSERV UNLOCKSERV" usermodes="*" chanmodes="*" privs="servers/auspex" snomasks="Cc">
<class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE ELINE TLINE RLINE CHECK NICKLOCK NICKUNLOCK SHUN CLONES CBAN" usermodes="*" chanmodes="*" snomasks="Xx">
<class name="OperChat" commands="WALLOPS GLOBOPS" usermodes="*" chanmodes="*" privs="users/mass-message" snomasks="Gg">
<class name="HostCloak" commands="SETHOST SETIDENT SETIDLE CHGNAME CHGHOST CHGIDENT" usermodes="*" chanmodes="*" privs="users/auspex">

<type name="GlobalOp" classes="SACommands OperChat BanControl HostCloak ServerLink" vhost="GlobalOP@xyz.com">
<type name="Helper" classes="HostCloak" vhost="helper@xyz.com">


<oper
      name="Kicker"
      password="kickerpassword"
      host="*"
      type="GlobalOp">

Из weechat я могу ввести этот пароль и стать оператором с помощью команды oper. Я вижу, что за моим ником следует (о) .. например abir(o).

Однако, когда я собираюсь выгнать другого бота из «#broadcast-channel», я получаю сообщение об ошибке «вы должны быть оператором канала» или «вы должны быть полуоператором канала». Я также получил сообщение «У вас должен быть доступ к каналу или выше, чтобы установить режим канала на o», когда я пытался изменить режим канала.

Я попытался прочитать документацию и попробовал несколько способов решения этой проблемы, но из-за отсутствия знаний в IRC я ​​не могу выгнать бота.

Любая помощь в этом вопросе будет высоко оценена.

(К вашему сведению, мои сценарии представляют собой небольшие сценарии nodejs, использующие модули irc-framework для подключения к каналу IRC. Я использую порт 6667, поэтому сейчас он незащищен, однако я сомневаюсь, что есть ли смысл защищать его через 6697. порт для подключения к серверу. Я могу предоставить больше контекста и информации, если нужно. Со временем у меня будет другой скрипт, который будет периодически выгонять неработающих ботов)

0 ответов

Другие вопросы по тегам