python-wechaty icon indicating copy to clipboard operation
python-wechaty copied to clipboard

🐛🐛 Bug Report: a large number of repeated messages appear in the log When if-elif statement is used in the on_message method

Open coderwithai opened this issue 3 years ago • 5 comments

requirements

  • token type(one of web protocol, padlocal, paimon, wxwork, and more ...) [required]

wbe[uos]

  • version of python-wechaty [required]

wechaty 0.8.24 wechaty-grpc 0.20.19 wechaty-plugin-contrib 0.0.12 wechaty-puppet 0.3.dev10 wechaty-puppet-hostie 0.2.16 wechaty-puppet-service 0.8.5

  • version of wechaty docker image [optional]

wechaty/wechaty 0.65

Describe your problem

a large number of repeated messages appear in the log When if-elif statement is used in the on_message method what is wrong with my code?

Reproduce your problem

import os
import asyncio
from typing import List, Optional, Union
from wechaty import Wechaty, Contact
from wechaty.user import Message, Room

class MyBot(Wechaty):
    async def on_message(self, msg: Message):
        """
        listen for message event
        """
        from_contact: Optional[Contact] = msg.talker()
        text = msg.text()
        room: Optional[Room] = msg.room()
        # print(from_contact.get_id() ,from_contact.payload.name,text)
        conversation: Union[Room, Contact] = from_contact if room is None else room
        
        if text.startswith('hi'):
            await conversation.ready()
            await conversation.say(' hello')
        elif text.startswith('say'):
            await conversation.ready()
            await conversation.say('say what?')

asyncio.run(MyBot().start())

Error info

# 2021-09-27 10:26:20,936 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@643c8491a29cae9eeba30b1471bef373f28f50e5216c70ca15f53fc226exxx> <Anr>       say>
2021-09-27 10:26:21,105 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:21,210 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:21,339 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:21,546 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:21,702 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:21,784 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:21,866 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:21,960 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:22,066 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:22,151 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:22,318 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:22,578 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:22,738 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:22,886 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:22,965 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:23,074 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:23,159 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:23,236 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:23,333 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:23,408 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:23,498 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:23,590 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:23,774 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:23,855 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:23,955 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,056 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,136 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,213 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,282 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,360 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,434 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,502 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,577 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,656 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,727 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,806 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,880 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:24,954 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:25,053 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>
2021-09-27 10:26:25,160 - Wechaty - INFO - receive message <Message#message_type_text[🗣 Contact <@d88ca815db85e1391de68daee93ace0d75742f8d044014f9b29fe1f102xxx> <nickname>        say what?>


Your experiments

please tell us your experiments and ideas about this issue. It's valuable for us to help you find the solution.

coderwithai avatar Sep 27 '21 04:09 coderwithai

I have met the same problem. Use padlocal protocol can sovle the problem

lyleshaw avatar Sep 27 '21 05:09 lyleshaw

I have met the same problem. Use padlocal protocol can sovle the problem

thanks!

but I don't hava a padlocal token

coderwithai avatar Sep 27 '21 07:09 coderwithai

I have met the same problem. Use padlocal protocol can sovle the problem

thanks!

but I don't hava a padlocal token

You can get a develop token here: https://wechaty.js.org/docs/contributor-program/ Or waiting for https://github.com/wechaty/python-wechaty-puppet-itchat's completion

lyleshaw avatar Sep 27 '21 07:09 lyleshaw

I have met the same problem. Use padlocal protocol can sovle the problem

thanks! but I don't hava a padlocal token

You can get a develop token here: https://wechaty.js.org/docs/contributor-program/ Or waiting for https://github.com/wechaty/python-wechaty-puppet-itchat's completion

thanks a lot finally I ran it in another way without using elif or else

coderwithai avatar Sep 27 '21 10:09 coderwithai

Just a supplement, although I see this was posted on 2020.9.27

I think you may forget to determine whether the message is sent by the Bot, when you start sending the say what?, the bot will also receive messages sent by itself, so it becomes

Receive from Sender : text = say

text.startswith('say') -> True Then bot send say what?

Next

Receive from Bot : text = say what?

text.startswith('say') True Then bot send say what?

Receive from Bot : text = say what?

text.startswith('say') True Then bot send say what?

......

Now it becomes an endless loop, make a judge on msg.is_self() or msg.talker().self() will solve the problem

GaryDu0123 avatar Jan 06 '22 05:01 GaryDu0123