#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. Просто включите
welcome_message()
, протестируйте своего бота, а затем проверьте вывод командной строки. Если для каждого соединения действительно есть два отпечатка, событие запускается дважды. Проблема может быть в сервере или базовой платформе для бота, вызывающей проблему. Вы можете легко обойти это, протестируйте, и я вам помогу.3. Эй, ребята, я только что проверил это, я переместил mu bot на другой сервер… и сейчас это не повторяется …. я думаю, что это было соединение
4. При отладке вы должны попытаться, в первую очередь, понять ошибку. Найдите способ повторить это, найдите модуль, в котором он находится, функцию, в которой он находится. Завершите работу над этим. Предполагалось, что вы нашли это так, как я предложил: функция запускается дважды, хорошо, почему это? Либо событие СОЕДИНЕНИЯ на самом деле происходит дважды (ошибка сервера), либо я обрабатываю его дважды (моя ошибка). Оказалось, что первое. 🙂 отладка — это просто логика и терпение
Ответ №2:
Это задокументированная ошибка. Однако, похоже, это из-за того, как ядро phenny’s обрабатывает потоки. Похоже, это еще не исправлено.