51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
import optparse
|
|
import sys
|
|
import time
|
|
import subprocess
|
|
import os
|
|
|
|
import sleekxmpp
|
|
|
|
import struct
|
|
import zlib
|
|
def chunk(t, data):
|
|
return struct.pack('>I', len(data)) + t + data
|
|
#+ struct.pack('>I', zlib.crc32(t + data))
|
|
png = b'\x89PNG\r\n\x1A\n' + chunk(b'IHDR', struct.pack('>IIBBBBB', 1, 1, 1, 0, 0, 0, 0)) + chunk(b'IDAT', zlib.compress(struct.pack('>BB', 0, 0))) + chunk(b'IEND', b'')
|
|
|
|
|
|
class Responder(sleekxmpp.ClientXMPP):
|
|
def __init__(self, jid, password, room, room_password, nick):
|
|
sleekxmpp.ClientXMPP.__init__(self, jid, password)
|
|
self.room = room
|
|
self.room_password = room_password
|
|
self.nick = nick
|
|
self.finished = False
|
|
self.add_event_handler("session_start", self.start)
|
|
self.add_event_handler("vcard_avatar_update", self.vcard_avatar_update)
|
|
|
|
self.tests = {}
|
|
self.tests["photohash"] = ["libpurple: Photo hash received in Presence", False]
|
|
|
|
def vcard_avatar_update(self, presence):
|
|
self.tests["photohash"][1] = True
|
|
self.finished = True
|
|
|
|
def start(self, event):
|
|
self.getRoster()
|
|
self.sendPresence()
|
|
|
|
class Client(sleekxmpp.ClientXMPP):
|
|
def __init__(self, jid, password, room, nick):
|
|
sleekxmpp.ClientXMPP.__init__(self, jid, password)
|
|
self.room = room
|
|
self.nick = nick
|
|
self.add_event_handler("session_start", self.start)
|
|
self.finished = False
|
|
|
|
self.tests = {}
|
|
|
|
def start(self, event):
|
|
self.getRoster()
|
|
self.sendPresence()
|
|
self['xep_0153'].set_avatar(avatar=png, mtype='image/png')
|