2

在过去一周左右的时间里,我尝试了很多方法来尝试让它发挥作用。我已经设法让 Skype2IRC 在另一个脚本中工作,而不是垃圾邮件 IRC 或任何东西。这很好。只是在消息状态,发送消息到 IRC。那部分我可以轻松下来。但是,从 IRC 到 Skype 的部分是我遇到问题的地方。首先,我想我会尝试让它与多线程一起工作。出门不顺利。然后,我尝试了这个;

import os,sys,time,Skype4Py,socket,re,string
from random import choice
s = Skype4Py.Skype()
s.Attach() #Attach to Skype. Make sure to accept permissions from Skype client!
name = "Ibex"
network = "irc.myserver.net"
channel = "#Skype"
port = 6667
irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( network, port ) )
print irc.recv ( 4096 )
irc.send ( 'NICK '+name+'\r\n' )
irc.send ( 'USER '+name+' '+name+' '+name+' : IRC Bot\r\n' )
irc.send ( 'JOIN '+channel+'\r\n' )
ircusername = '' #referencing variable so it can be used before, data will change in while loop
ircmessage = '' #same as above
def Ibex(Message, Status):
    chat = Message.Chat
    members = chat.MemberObjects
    msg = Message.Body
    send = Message.Chat.SendMessage
    sAlias = Message.FromDisplayName
    sUsername = Message.FromHandle
    if Status == 'RECEIVED':
        irc.send ( 'PRIVMSG '+channel+' :<Skype - '+sUsername+'>: '+msg+'\r\n' )
    if ircusername != '':
        try:
            ircmessage = data.split(channel+" :",1)[1]
            send("<IRC - "+ircusername+">: "+ircmessage)
        except:
            print "Error getting new IRC message."
s.OnMessageStatus = Ibex
while True:
    data = irc.recv ( 4096 )
    print data
    if data.find ( 'PING' ) != -1:
        irc.send ( 'PONG ' + data.split() [ 1 ] + '\r\n' )
    if data.find ( 'KICK' ) != -1:
        irc.send ( 'JOIN '+channel+'\r\n' )
    try:
        ircusername = re.search(':(.*)!', data)
        ircusername = ircusername.group(1)
    except:
        pass

经过大量的试验和错误。而且,在 IRC 和 Skype 中有很多垃圾邮件,我设法让它将 IRC 消息发送到 Skype。但是,它是垃圾邮件。

我会在 IRC 中发送一条消息,并且不会发生任何事情。我将在 Skype 中发送一条消息(因此 s.OnMessageStatus = Ibex),它按预期发送 IRC 消息。但是,它不会停止发送它。它像疯了一样向它发送垃圾邮件。我尝试在收到消息时设置 sendMSG = True,并在发送后将 sendMSG 设置为 false,然后如果 sendMSG = true,则发送。这似乎并不顺利。

有人有什么建议吗?我只是错过了导致此错误的小东西吗?感谢任何先进的人,这已经困扰了我一段时间了。

不久前我设法让一个旧的 IRC/Skype 桥接器工作,但那个脚本早已不复存在,我不记得我是如何做到的。

4

0 回答 0