jquast / x84

A python telnet/ssh server for modern terminals. In spirit of classic software such as ami/x, teleguard, renegade, iniquity.

Home Page:http://x84.readthedocs.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

x84 2.0.15 enabling nodechat extra triggers AttributeError: 'int' object has no attribute 'code'

ExileInParadise opened this issue · comments

commented

I could really use an experienced Python guru's advice on how to modify nodechat.py to work with x/84 2.0.15 - currently it tries to work then runs into an exception I can't interpret.

BEHAVIOR
Entering the 'nodechat' module from the main menu, the node chat displays.
Entering regular text works.
Hitting ENTER, or hitting special keys, or entering / commands generates the following exception:

ERROR MESSAGE
Sun-05-13 10:25AM INFO session.py:674 sysop[ssh] runscript 'nodechat'
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] File "/home/bbs/lib/python2.7/site-packages/x84/bbs/session.py", line 363, in run
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] self.runscript(self._script_stack.pop())
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh]
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] File "/home/bbs/lib/python2.7/site-packages/x84/bbs/session.py", line 705, in runscript
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] value = module.main(*script.args, **script.kwargs)
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh]
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] File "/home/bbs/default/main.py", line 224, in main
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] gosub(item.script, *item.args, **item.kwargs)
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh]
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] File "/home/bbs/lib/python2.7/site-packages/x84/bbs/session.py", line 70, in gosub
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] return getsession().runscript(script)
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh]
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] File "/home/bbs/lib/python2.7/site-packages/x84/bbs/session.py", line 705, in runscript
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] value = module.main(*script.args, **script.kwargs)
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh]
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] File "/home/bbs/default/nodechat.py", line 369, in main
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] otxt = readline.process_keystroke(inp)
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh]
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] File "/home/bbs/lib/python2.7/site-packages/x84/bbs/editor.py", line 399, in process_keystroke
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] keystroke.code in self.keyset['refresh']):
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh]
Sun-05-13 10:25AM ERROR session.py:389 sysop[ssh] AttributeError: 'int' object has no attribute 'code'
Sun-05-13 10:25AM ERROR session.py:342 sysop[ssh] resume main after general exception in nodechat

NOTES
It appears blessed (and terminal which wrap it) have a code object, so it seems that the keystroke.code is referring to an underlying int, rather than the keystroke itself?
Python noob so I am not sure I am interpreting this stack dump correctly.

ENVIRONMENT:
x/84 2.0.15 on Python 2.7 from pip install in a virtualenv
$ python --version
Python 2.7.14
$ pip list
Package Version
asn1crypto 0.24.0
bcrypt 1.1.0
blessed 1.9.5
cffi 1.7.0
CherryPy 3.6.0
cryptography 2.2.2
ecdsa 0.11
enum34 1.0.4
feedparser 5.1.3
html2text 2014.12.29
idna 2.6
ipaddress 1.0.22
irc 11.0.1
jaraco.timing 1.1
jaraco.util 10.6
more-itertools 2.2
paramiko 1.18.3
pip 10.0.1
pyasn1 0.1.7
pycparser 2.10
pycrypto 2.6.1
pyOpenSSL 17.5.0
python-dateutil 2.3
requests 2.5.1
sauce 1.1
setuptools 39.1.0
six 1.9.0
sqlitedict 1.1.0
wcwidth 0.1.7
web.py 0.37
wheel 0.31.0
x84 2.0.15
xmodem 0.3.2

That is not core x84, and so it will be handled in the x84-extras repository's issues.

x84-extras/nodechat#1