Модуль бота Python IRC поможет?

#python

#python

Вопрос:

На самом деле я создавал модуль для phenny bot
, который называется welcom.py и он приветствует каждого нового парня, который присоединяется к моему каналу
Вот код, который я использовал для этого:

 #!/usr/bin/python

def welcome_message(phenny, input):
    phenny.say('Welcome to #example channel '   input.nick   ' !')
welcome_message.event = 'JOIN'
welcome_message.rule = r'.*'
  

Этот код работает идеально, несмотря на то, что он повторяет сообщение 2 раза, вот так:

 <phenny> Welcome to #example channel visitornick !
<phenny> Welcome to #example channel visitornick !
  

Почему это происходит??
Я не думаю, что допустил какую-либо ошибку в коде..
может ли это быть ошибкой подключения??

Комментарии:

1. Это происходит каждый раз или только время от времени? Что показала вам отладочная печать? Не могли бы вы предоставить больше кода, чтобы мы могли видеть, что приводит к welcome_message() выполнению?

2. Нет, это происходит не каждый раз! вы можете найти код здесь.. Это всего лишь модуль, который я пытаюсь создать. inamidst.com/phenny/phenny.tar.bz2

Ответ №1:

Ошибка, очевидно, связана не с самой функцией, поэтому я предполагаю, что триггер выполняется дважды.

Попробуйте немного отладить: поместите print в вызов функции и посмотрите, действительно ли событие запускается дважды.

Прокомментируйте этот ответ, когда узнаете больше, и я обновлю 🙂

Комментарии:

1. Привет, Сантьяго, я не очень разбираюсь в debbuging: / Я новичок в python!

2. Просто включите print инструкцию в welcome_message() , протестируйте своего бота, а затем проверьте вывод командной строки. Если для каждого соединения действительно есть два отпечатка, событие запускается дважды. Проблема может быть в сервере или базовой платформе для бота, вызывающей проблему. Вы можете легко обойти это, протестируйте, и я вам помогу.

3. Эй, ребята, я только что проверил это, я переместил mu bot на другой сервер… и сейчас это не повторяется …. я думаю, что это было соединение

4. При отладке вы должны попытаться, в первую очередь, понять ошибку. Найдите способ повторить это, найдите модуль, в котором он находится, функцию, в которой он находится. Завершите работу над этим. Предполагалось, что вы нашли это так, как я предложил: функция запускается дважды, хорошо, почему это? Либо событие СОЕДИНЕНИЯ на самом деле происходит дважды (ошибка сервера), либо я обрабатываю его дважды (моя ошибка). Оказалось, что первое. 🙂 отладка — это просто логика и терпение

Ответ №2:

Это задокументированная ошибка. Однако, похоже, это из-за того, как ядро phenny’s обрабатывает потоки. Похоже, это еще не исправлено.