コード例 #1
0
class WylioXMPP:
    def __init__(self):
        self.connection = None
        self.jid = ""

    def connect(self, jid, password):
        self.jid = jid
        if self.connection == None:
            self.connection = ClientXMPP(jid, password)
        register_stanza_plugin(Message, WylioStanza)
        register_stanza_plugin(WylioStanza, ValueStanza)
        self.connection.add_event_handler("connected", self.connected)
        self.connection.add_event_handler("session_start", self.start)
        self.connection.add_event_handler("failed_auth", self.failed)
        self.connection.add_event_handler("disconnected", self.disconnected)
        self.connection.add_event_handler("message", self.message)
        self.connection.connect(('talk.google.com', 5222))
        self.connection.process()

    def connected(self, event):
        log("WylioXMPP connected")

    def start(self, event):
        log("WylioXMPP start")
        self.connection.send_presence()
        log("Wylio presence")
        self.run_program("source", "[email protected]/raspy")

    def message(self, event):
        print event

    def failed(self, event):
        log("WylioXMPP failed")

    def disconnected(self, event):
        log("WylioXMPP disconnected")

    def run_program(self, name, jid):
        print "fsdafasd"
        msg = self.connection.Message(sto=jid, stype="normal")
        print msg
        msg["wylio"]["run"] = name
        #msg["wylio"]["value"]="4082374"
        msg["wylio"]["value"]["timestamp"] = "4082374"
        msg["wylio"]["value"]["signal"] = "some name"
        msg["wylio"]["value"]["value"] = "478923"
        print "message"
        print msg
        msg.send()
コード例 #2
0
ファイル: xmpp.py プロジェクト: ipworkshop/Wyliodrin-python
class WylioXMPP:
    def __init__(self, email, db):
        self.connection = None
        self.email = email
        self.db = db
        self.jid = ""

    def connect(self, jid, password):
        self.jid = jid
        if self.connection == None:
            self.connection = ClientXMPP(jid, password)
        register_stanza_plugin(Message, WylioStanza)
        register_stanza_plugin(WylioStanza, ValueStanza)
        self.connection.add_event_handler("connected", self.connected)
        self.connection.add_event_handler("session_start", self.start)
        self.connection.add_event_handler("failed_auth", self.failed)
        self.connection.add_event_handler("disconnected", self.disconnected)
        self.connection.add_event_handler("message", self.message)
        self.connection.register_handler(
            Callback("Wylio", StanzaPath("message/wylio"), self.message_wylio))
        self.connection.connect(('talk.google.com', 5222))
        self.connection.process()

    def connected(self, event):
        log("WylioXMPP connected")

    def start(self, event):
        log("WylioXMPP start")
        self.connection.send_presence()
        log("Wylio presence")
        #self.run_program ("source", "[email protected]/raspy")

    def disconnect(self):
        self.connection.disconnect()

    def message_wylio(self, msg):
        if msg["wylio"]["value"]:
            #print msg
            signal = msg["wylio"]["value"]["signal"]
            value = nr(msg["wylio"]["value"]["value"])

            #print signal, " ", value
            print self.email
            if self.db.values.find({
                    "email": self.email,
                    "signal": signal
            }).count() == 0:
                print "insert"
                self.db.values.insert({
                    "email": self.email,
                    "signal": signal,
                    "values": [value]
                })
            else:
                try:
                    self.db.values.update(
                        {
                            "email": self.email,
                            "signal": signal
                        }, {"$push": {
                            "values": value
                        }})
                    print "update"
                except:
                    traceback.print_exc()

    def message(self, event):
        print event

    def failed(self, event):
        log("WylioXMPP failed")

    def disconnected(self, event):
        log("WylioXMPP disconnected")

    def send_value(self, signal, value, jid):
        msg = self.connection.Message(sto=jid, stype="normal")
        msg["wylio"]["value"]["signal"] = signal
        msg["wylio"]["value"]["value"] = value
        print msg
        msg.send()

    def run_source(self, source, jid):
        print "fsdafasd"
        msg = self.connection.Message(sto=jid, stype="normal")
        print msg
        msg["wylio"]["run"] = source
        #msg["wylio"]["value"]="4082374"
        #msg["wylio"]["value"]["timestamp"]="4082374"
        #msg["wylio"]["value"]["signal"]="some name"
        #msg["wylio"]["value"]["value"]="478923"
        print "message"
        print msg
        msg.send()