我一直在编写一个IRC聊天机器人,它会检查Google Voice上的SMS消息,然后通过端口6667上的套接字将它们转发到聊天室。聊天消息处理在主子网中以无限循环运行,同时进行GV检查是在一个单独的过程中完成的。实际的检查和提取工作正常,但它是套接字不起作用;没有消息发布到频道。奇怪的是,这在OS X下完美无缺,所以我不相信问题是语音处理逻辑:
def checkVoice()
while 1:
print "Update voice!"
#voice processing... edited for brevity
sendPrivateMessage(CHANNEL,message) #This doesn't work
#more code
time.sleep(10)
#main block
if __name__ == '__main__':
sendPrivateMessage(CHANNEL,"Voice checking started") #This works
p = Process(target=checkVoice)
p.start()
我认为问题与Windows使用Python的方式有关,因为它可以与其他平台一起使用。
聊天机器人的完整代码可以在这里看到: bot.py
根据要求,这是sendPrivateMessage
方法:
def sendPrivateMessage(channel, message):#private message send function
global mute
if mute == 0:
IRC.send("PRIVMSG " + channel + " :" + message + "\r\n")