예제 #1
0
파일: importpack.py 프로젝트: gkonst/qsmile
def import_qip_dir(target_dir):
    log.debug("import from qip dir started...%s", target_dir)
    # TODO add validation
    pack_dir = os.path.join(target_dir, "Animated")
    pack = Pack()
    pack.name = pack_dir.rpartition(os.sep)[0].rpartition(os.sep)[2]
    log.debug(" pack name : %s", pack.name)
    content = _read_content_from_file(pack_dir, "_define.ini")
    images = filter(lambda item: item.endswith(".gif"), os.listdir(pack_dir))
    images.sort()
    for line, image_entry in zip(content.splitlines(), images):
        log.debug(" line : %s, image : %s", line, image_entry)
        icon = Icon(line.split(","), image_entry.rpartition(os.sep)[2])
        log.debug(" text : %s, image : %s", icon.text, icon.image)
        log.debug(" importing image : %s, from entry : %s", icon.image, image_entry) 
        image_content = _read_content_from_file(pack_dir, image_entry)
        fout = open(os.path.join(config.temp_dir, icon.image),  "wb")
        fout.write(image_content)
        fout.close()
        pack.add_icon(icon)
    log.debug("import from qip dir finished")
    return pack
예제 #2
0
파일: importpack.py 프로젝트: gkonst/qsmile
def import_qip_zip(target_file):
    log.debug("import from qip zip started...%s", target_file)
    # TODO add validation
    zip_file = ZipFile(target_file, "r")
    define_entry = filter(lambda item: item.endswith("_define.ini"), zip_file.namelist())[0]
    content = zip_file.read(define_entry)
    pack = Pack()
    pack.name = define_entry.partition("/")[0]
    log.debug(" pack name : %s", pack.name)
    images = filter(lambda item: item.endswith(".gif"), zip_file.namelist())
    images.sort()
    for line, image_entry in zip(content.splitlines(), images):
        log.debug(" line : %s, image : %s", line, image_entry)
        icon = Icon(line.split(","), image_entry.rpartition("/")[2])
        log.debug(" text : %s, image : %s", icon.text, icon.image)
        log.debug(" importing image : %s, from entry : %s", icon.image, image_entry) 
        image_content = zip_file.read(image_entry)
        fout = open(os.path.join(config.temp_dir, icon.image),  "wb")
        fout.write(image_content)
        fout.close()
        pack.add_icon(icon)
    log.debug("import from qip zip finished") 
    return pack
예제 #3
0
파일: importpack.py 프로젝트: gkonst/qsmile
     content = _read_content_from_zip(target_file, "icondef.xml")
 except IOError, (errno, strerror):
     log.warn("import from kopete failed : %s", strerror)
     raise ImportPackError("Error during importing : " + strerror)
 pack = Pack()
 try:
     from xml.dom.ext.reader import PyExpat
     dom = PyExpat.Reader().fromString(content)
 except ImportError:
     from xml.dom.minidom import parseString
     dom = parseString(content)
 xml_meta = dom.getElementsByTagName("meta")
 if xml_meta:
     xml_name = xml_meta[0].getElementsByTagName("name")
     if xml_name:
         pack.name = str(xml_name[0].firstChild.data)
         log.debug(" pack name : %s",  pack.name)
 xml_icons = dom.getElementsByTagName("icon")
 for xml_icon in xml_icons:
     icon = Icon([], str(xml_icon.getElementsByTagName("object")[0].firstChild.data))
     for text in xml_icon.getElementsByTagName("text"):
         icon.add_text(str(text.firstChild.data))
     log.debug(" importing image : %s ", icon.image)
     try: 
         image_content = _read_content_from_zip(target_file, icon.image)
         fout = open(os.path.join(config.temp_dir, icon.image),  "wb")
         fout.write(image_content)
         fout.close()
     except IOError, (errno, strerror):
         log.warn("error during loading image : " + strerror + " -> skipping")            
     pack.add_icon(icon)