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.
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