Пример #1
0
    def parse(client, xml_data):
        data = StringIO.StringIO(xml_data)
        try:
            element = ElementTree.parse(data).getroot().attrib
        except:
            raise ParseError('Invalid MSNObject')

        try:
            creator = client.address_book.contacts.\
                search_by_account(element["Creator"]).\
                search_by_network_id(NetworkID.MSN)[0]
        except IndexError:
            creator = None

        size = int(element["Size"])
        type = int(element["Type"])
        location = xml.unescape(element["Location"])
        friendly = base64.b64decode(xml.unescape(element["Friendly"]))
        shad = element.get("SHA1D", None)
        if shad is not None:
            shad = base64.b64decode(shad)
        shac = element.get("SHA1C", None)
        if shac is not None:
            shac = base64.b64decode(shac)

        result = MSNObject(creator, size, type, location, \
                             friendly, shad, shac)
        result._repr = xml_data
        return result
Пример #2
0
    def parse(client, xml_data):
        data = StringIO.StringIO(xml_data)
        try:
            element = ElementTree.parse(data).getroot().attrib
        except:
            raise ParseError('Invalid MSNObject')

        creator = element["Creator"]
        size = int(element["Size"])
        type = int(element["Type"])
        location = xml.unescape(element["Location"])
        friendly = base64.b64decode(xml.unescape(element["Friendly"]))
        shad = element.get("SHA1D", None)
        if shad is not None:
            shad = _decode_shad(shad)
        shac = element.get("SHA1C", None)
        if shac is not None:
            try:
                shac = base64.b64decode(shac)
            except TypeError:
                logger.warning("Invalid SHA1C in MSNObject: %s" % shac)
                shac = None

        result = MSNObject(creator, size, type, location, friendly, shad, shac)
        result._repr = xml_data
        return result
Пример #3
0
    def parse(client, xml_data):
        data = StringIO.StringIO(xml_data)
        try:
            element = ElementTree.parse(data).getroot().attrib
        except:
            raise MSNObjectParseError(xml_data)

        creator = element["Creator"]
        size = int(element["Size"])
        type = int(element["Type"])

        if "Location" in element:
            location = xml.unescape(element["Location"])
        else:
            location = "0"

        if "Friendly" in element:
            friendly = b64_decode(xml.unescape(element["Friendly"]))
        else:
            friendly = '\x00\x00'

        shad = element.get("SHA1D", None)
        if shad is not None:
            try:
                shad = b64_decode(shad)
            except TypeError:
                logger.warning("Invalid SHA1D in MSNObject: %s" % shad)
                shad = None

        shac = element.get("SHA1C", None)
        if shac is not None:
            try:
                shac = b64_decode(shac)
            except TypeError:
                logger.warning("Invalid SHA1C in MSNObject: %s" % shac)
                shac = None

        try:
            result = MSNObject(creator, size, type, location, friendly, shad,
                               shac)
            result._repr = xml_data
        except ValueError:
            raise MSNObjectParseError(xml_data)

        return result
Пример #4
0
    def parse(client, xml_data):
        data = StringIO.StringIO(xml_data)
        try:
            element = ElementTree.parse(data).getroot().attrib
        except:
            raise MSNObjectParseError(xml_data)

        creator = element["Creator"]
        size = int(element["Size"])
        type = int(element["Type"])

        if "Location" in element:
            location = xml.unescape(element["Location"])
        else:
            location = "0"

        if "Friendly" in element:
            friendly = b64_decode(xml.unescape(element["Friendly"]))
        else:
            friendly = '\x00\x00'

        shad = element.get("SHA1D", None)
        if shad is not None:
            try:
                shad = b64_decode(shad)
            except TypeError:
                logger.warning("Invalid SHA1D in MSNObject: %s" % shad)
                shad = None

        shac = element.get("SHA1C", None)
        if shac is not None:
            try:
                shac = b64_decode(shac)
            except TypeError:
                logger.warning("Invalid SHA1C in MSNObject: %s" % shac)
                shac = None

        try:
            result = MSNObject(creator, size, type, location, friendly, shad, shac)
            result._repr = xml_data
        except ValueError:
            raise MSNObjectParseError(xml_data)

        return result
Пример #5
0
    def parse(client, xml_data):
        data = StringIO.StringIO(xml_data)
        try:
            element = ElementTree.parse(data).getroot().attrib
        except:
            raise ParseError('Invalid MSNObject')

        creator = element["Creator"]
        size = int(element["Size"])
        type = int(element["Type"])
        location = xml.unescape(element["Location"])
        friendly = base64.b64decode(xml.unescape(element["Friendly"]))
        shad = element.get("SHA1D", None)
        if shad is not None:
            shad = base64.b64decode(shad)
        shac = element.get("SHA1C", None)
        if shac is not None:
            shac = base64.b64decode(shac)

        result = MSNObject(creator, size, type, location, friendly, shad, shac)
        result._repr = xml_data
        return result
Пример #6
0
 def _parse(self, data):
     data = StringIO.StringIO(data)
     return ElementTree.parse(data)
Пример #7
0
 def _parse(self, data):
     data = StringIO.StringIO(data)
     return ElementTree.parse(data)