コード例 #1
0
def create_user_metadata(calibre, all_user_metadata):
    from calibre.utils.config import to_json
    from calibre.ebooks.metadata.book.json_codec import object_to_unicode, encode_is_multiple

    s = calibre.makeelement(expand('calibre:custom_metadata'))
    calibre.append(s)
    bag = s.makeelement(expand('rdf:Bag'))
    s.append(bag)
    for name, fm in iteritems(all_user_metadata):
        try:
            fm = copy.copy(fm)
            encode_is_multiple(fm)
            fm = object_to_unicode(fm)
            fm = json.dumps(fm, default=to_json, ensure_ascii=False)
        except:
            prints('Failed to write user metadata:', name)
            import traceback
            traceback.print_exc()
            continue
        li = bag.makeelement(expand('rdf:li'))
        li.set(expand('rdf:parseType'), 'Resource')
        bag.append(li)
        n = li.makeelement(expand('calibreCC:name'))
        li.append(n)
        n.text = name
        val = li.makeelement(expand('rdf:value'))
        val.text = fm
        li.append(val)
コード例 #2
0
ファイル: xmp.py プロジェクト: harrywright/calibre
def create_user_metadata(calibre, all_user_metadata):
    from calibre.utils.config import to_json
    from calibre.ebooks.metadata.book.json_codec import object_to_unicode, encode_is_multiple

    s = calibre.makeelement(expand('calibre:custom_metadata'))
    calibre.append(s)
    bag = s.makeelement(expand('rdf:Bag'))
    s.append(bag)
    for name, fm in all_user_metadata.iteritems():
        try:
            fm = copy.copy(fm)
            encode_is_multiple(fm)
            fm = object_to_unicode(fm)
            fm = json.dumps(fm, default=to_json, ensure_ascii=False)
        except:
            prints('Failed to write user metadata:', name)
            import traceback
            traceback.print_exc()
            continue
        li = bag.makeelement(expand('rdf:li'))
        li.set(expand('rdf:parseType'), 'Resource')
        bag.append(li)
        n = li.makeelement(expand('calibreCC:name'))
        li.append(n)
        n.text = name
        val = li.makeelement(expand('rdf:value'))
        val.text = fm
        li.append(val)
コード例 #3
0
ファイル: opf3.py プロジェクト: zhibimohai/calibre
def serialize_user_metadata(val):
    return json.dumps(object_to_unicode(val),
                      ensure_ascii=False,
                      default=to_json,
                      indent=2,
                      sort_keys=True)
コード例 #4
0
ファイル: opf3.py プロジェクト: zhibimohai/calibre
def dump_dict(cats):
    return json.dumps(object_to_unicode(cats or {}),
                      ensure_ascii=False,
                      skipkeys=True)
コード例 #5
0
ファイル: opf3.py プロジェクト: MarioJC/calibre
def serialize_user_metadata(val):
    return json.dumps(object_to_unicode(val), ensure_ascii=False, default=to_json, indent=2, sort_keys=True)
コード例 #6
0
ファイル: opf3.py プロジェクト: MarioJC/calibre
def dump_dict(cats):
    return json.dumps(object_to_unicode(cats or {}), ensure_ascii=False, skipkeys=True)