""" Module """ # -*- coding: utf-8 -*- import ConfigParser import json import os # Workaround for crashes seen with localename setting print os.environ["LANG"] os.environ["LANG"]="C.UTF-8" print os.environ["LANG"] import string import sys import jsbridge from zot4rst.util import unquote DEFAULT_CITATION_FORMAT = "http://www.zotero.org/styles/chicago-author-date" # placeholder for global bridge to Zotero zotero_conn = None; # verbose flag verbose_flag = False class ZoteroConn(object): def __init__(self, format, **kwargs): # connect & setup self.back_channel, self.bridge = jsbridge.wait_and_create_network("127.0.0.1", 24242) self.back_channel.timeout = self.bridge.timeout = 60 self.methods = jsbridge.JSObject(self.bridge, "Components.utils.import('resource://csl/export.js')") if zotero_conn is None: zotero_conn = ZoteroConn(DEFAULT_CITATION_FORMAT) zotero_conn.methods.instantiateCiteProc(DEFAULT_CITATION_FORMAT) print "======== KEYS ========" key1 = "I4AUIZ4S" key2 = "AKJZBHRW" print key1 print key2 print "======== ITEM_IDs ========" itemid1 = int(zotero_conn.methods.getItemId(key1)) itemid2 = int(zotero_conn.methods.getItemId(key2)) itemids = [] itemids.append(itemid1) itemids.append(itemid2) print itemids zotero_conn.methods.registerItemIds(itemids) print "======== BIBDATA ========" bibdata = unquote(json.loads(zotero_conn.methods.getBibliographyData())) print bibdata[1] print "===== CITATION REFERENCE ===== " from xciterst import CitationInfo citation = CitationInfo(); citation.id = "40"; citation.prefix="This"; citation.suffix="That"; citation = { 'citationItems' : [citation], 'properties' : { 'index' : 0, # zotero_conn.get_index(cluster) 'noteIndex': 0 # note_index }} res = zotero_conn.methods.getCitationBlock(citation) print unquote(res)