jaraco / irc

Full-featured Python IRC library for Python.
MIT License
392 stars 86 forks source link

TestBot Python3 Fails on stats command #57

Closed jaraco closed 8 years ago

jaraco commented 8 years ago

AttributeError: 'dict_keys' object has no attribute 'sort'

Full Traceback:

Traceback (most recent call last):
  File "Main.py", line 96, in <module>
    main()
  File "Main.py", line 93, in main
    bot.start()
  File "/usr/local/lib/python3.4/dist-packages/irc/bot.py", line 265, in start
    super(SingleServerIRCBot, self).start()
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 1274, in start
    self.reactor.process_forever()
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 276, in process_forever
    self.process_once(timeout)
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 257, in process_once
    self.process_data(i)
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 214, in process_data
    c.process_data()
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 583, in process_data
    self._process_line(line)
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 654, in _process_line
    self._handle_event(event)
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 677, in _handle_event
    self.reactor._handle_event(self, event)
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 396, in _handle_event
    result = handler.callback(connection, event)
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 1237, in _dispatcher
    method(connection, event)
  File "Main.py", line 23, in on_pubmsg
    self.do_command(e, a[1].strip())
  File "Main.py", line 54, in do_command
    users.sort()
AttributeError: 'dict_keys' object has no attribute 'sort'

jaraco commented 8 years ago

Also fails on private chat:

#!python

Traceback (most recent call last):
  File "Main.py", line 96, in <module>
    main()
  File "Main.py", line 93, in main
    bot.start()
  File "/usr/local/lib/python3.4/dist-packages/irc/bot.py", line 265, in start
    super(SingleServerIRCBot, self).start()
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 1274, in start
    self.reactor.process_forever()
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 276, in process_forever
    self.process_once(timeout)
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 257, in process_once
    self.process_data(i)
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 214, in process_data
    c.process_data()
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 1164, in process_data
    Event(command, prefix, target, arguments))
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 396, in _handle_event
    result = handler.callback(connection, event)
  File "/usr/local/lib/python3.4/dist-packages/irc/client.py", line 1237, in _dispatcher
    method(connection, event)
  File "Main.py", line 27, in on_dccmsg
    c.privmsg("You said: " + e.arguments[0])
TypeError: Can't convert 'bytes' object to str implicitly

Original comment by: Jordan F

jaraco commented 8 years ago

I note that Main.py is the scripts/testbot.py file (with modifications).


Original comment by: Jason R. Coombs

jaraco commented 8 years ago

Update changelog; ref #57.

→ <>


Original comment by: Jason R. Coombs

jaraco commented 8 years ago

Decode raw bytes when handling DCC message. Is this the proper fix? Ref #57.

→ <<cset 475be4eb6511>>


Original comment by: Jason R. Coombs

jaraco commented 8 years ago

Use sorted function to sort users, operators, and voiced. Fixes #57.

→ <<cset 79f3f94fa382>>


Original comment by: Jason R. Coombs