import cherrypy
import os
PORT = 8080
class intelServ:
def index(self, botkey = None, userkey = None, network = None, user = None, channel = None, msg = None, step = None, **args):
# If any necessary parameters are missing, the bot should fail silently.
#if not botkey or not userkey or not network or not user or not channel or not msg:
# return 'failing'
chatLog = Chat()
chatLog.genLogfile(botkey, userkey)
return "You said: " + msg
index.exposed = True
class Chat:
def genLogfile(self, botkey, userkey):
botHome = os.path.join(os.curdir, botkey)
chatLog = os.path.join(botHome, userkey)
print botHome
print chatLog
# check if bot has a home, if not make one
if not os.path.exists(botHome):
os.mkdir(botHome)
# check if communication is already in progress, if not start it.
if not os.path.exists(chatLog):
FILE = open(chatLog, "w")
FILE.close()
FILE = open(chatLog+".step","w")
FILE.close()
# configure and start our cherrypy server
cherrypy.config.update({'server.socket_port': PORT, 'server.socket_host': '0.0.0.0'})
cherrypy.quickstart(intelServ())
此代码返回以下回溯,我无法弄清楚原因:
> 500 Internal Server Error
>
> The server encountered an unexpected
> condition which prevented it from
> fulfilling the request.
>
> Traceback (most recent call last):
> File
> "c:\python26\lib\site-packages\cherrypy\_cprequest.py",
> line 606, in respond
> cherrypy.response.body = self.handler() File
> "c:\python26\lib\site-packages\cherrypy\_cpdispatch.py",
> line 25, in __call__
> return self.callable(*self.args, **self.kwargs) File "D:\code\pycode\spam\chatbot.py",
> line 14, in index
> chatLog.genLogfile(botkey, userkey) File
> "D:\code\pycode\spampy\chatbot.py",
> line 22, in genLogfile
> botHome = os.path.join(os.curdir, botkey) File
> "c:\python26\lib\ntpath.py", line 73,
> in join
> elif isabs(b): File "c:\python26\lib\ntpath.py", line 57,
> in isabs
> s = splitdrive(s)[1] File "c:\python26\lib\ntpath.py", line 125,
> in splitdrive
> if p[1:2] == ':': TypeError: 'NoneType' object is unsubscriptable
>
> Powered by CherryPy 3.1.2
答案 0 :(得分:1)
看起来提供给intelServ.index()的参数botkey是None(因此是'NoneType')。您应取消注释输入验证码。