Exemplo n.º 1
0
class MendeleyImporter:
	#parameters are OAuth keys
	def __init__(self, consumer_key, secret_key):
		self.mendeley = MendeleyClient(consumer_key, secret_key)
	
	#fetches URL for authenticating tokens
	def get_auth_url(self):
		self.mendeley.request_token = self.mendeley.mendeley.request_token()
		return(self.mendeley.mendeley.authorize(self.mendeley.request_token))
	
	#loads authenticated OAuth tokens
	def load_keys(self, api_keys_pkl_dir):
		#dirty hack
		tmp_cwd = os.getcwd()
		os.chdir(api_keys_pkl_dir)
		self.mendeley.load_keys()
		os.chdir(tmp_cwd)
	#dumps authenticated OAuth tokens to file
	def save_keys(self, api_keys_pkl_dir):
		#same dirty hack as before
		tmp_cwd = os.getcwd()
		os.chdir(api_keys_pkl_dir)
		self.mendeley.save_keys()
		os.chdir(tmp_cwd)
	
	#get dictionary with folder IDs and names
	def get_folders(self):
		return self.mendeley.folders()
	
	#get list of dictionarys with document details from given folder, or all documents if folder_id is 0
	def get_documents(self, folder_id):
		list_result = []
		#get document_ids for docs in given folder
		if folder_id == 0:
			#all documents
			fold = self.mendeley.library()
		else:
			fold = self.mendeley.folder_documents(folder_id)
		#get details for document_ids
		for doc in fold['document_ids']:
			doc_details = self.mendeley.document_details(doc)
			if not 'citation_key' in doc_details:
				#awkward, mendeley did not give citation_key
				#let's be creative and generate one
				doc_details['citation_key'] = ''
				if doc_details['authors']!=[]:
					doc_details['citation_key'] += doc_details['authors'][0]['surname']
				if 'year' in doc_details:
					doc_details['citation_key'] += doc_details['year']+'_'
				doc_details['citation_key'] += doc_details['id']
			list_result.append(doc_details)
		return list_result
	
	# parses serialized request token and the verifier that was given by user
	def set_verified_token(self, token_string, verifier):
		self.mendeley.request_token = oauth2.Token.from_string(token_string)
		self.mendeley.mendeley.authorize(self.mendeley.request_token)
		self.mendeley.request_token.set_verifier(verifier)
		self.mendeley.access_token = self.mendeley.mendeley.access_token(self.mendeley.request_token)
-----------------------------------------------------"""
folders = mendeley.folders()
pprint(folders)

folderid = raw_input('Enter folder id: ')
pprint(folderid)

response = mendeley.create_folder(folder=json.dumps({
    'name': 'Recent Docs to Review',
    'parent': folderid
}))
# pprint(response)
print "Created Review Child Folder"
reviewchildfolderid = response['folder_id']

docs = mendeley.folder_documents(folderid)
pprint(docs)
print "Retrieving documents from selected folder"
pub_list = []
pprint(pub_list)

# from wikiradar.py

# Dictionary mapping uuid's to a dictionary with keys: authors, title, year, count
related_doc_dict = dict()

details = mendeley.document_details(documents['document_ids'][0])

print "Looking up suggestions for related docs."
print ""
for pub_item in pub_list:
Exemplo n.º 3
0
    sys.exit(1)

# create a client and load tokens from the pkl file
mendeley = MendeleyClient(config.api_key, config.api_secret)
tokens_store = MendeleyTokensStore()

# configure the client to use a specific token
# if no tokens are available, prompt the user to authenticate
access_token = tokens_store.get_access_token("test_account")
if not access_token:
    mendeley.interactive_auth()
    tokens_store.add_account("test_account",mendeley.get_access_token())
else:
    mendeley.set_access_token(access_token)


documents = mendeley.folder_documents(34240081)['document_ids']

for document_id in documents:
    document = mendeley.document_details(document_id)
    theFile = config.reading_list + '/' + document['title'] + '.pdf'
    theMendeleyFile = config.mendeley_library + '/' + document['year'] + '/' + document['title'] + '.pdf'
    if os.path.exists(theFile):
        if (os.path.getmtime(theFile) < os.path.getmtime(theMendeleyFile)):
            shutil.copy2(theMendeleyFile, theFile)
        elif (os.path.getmtime(theFile) > os.path.getmtime(theMendeleyFile)):
            shutil.copy2(theFile, theMendeleyFile)
    else:
        shutil.copy2(theMendeleyFile, theFile)

-----------------------------------------------------
List folders
-----------------------------------------------------"""
folders = mendeley.folders()
pprint(folders)

folderid = raw_input('Enter folder id: ')
pprint(folderid)

response = mendeley.create_folder(folder=json.dumps({'name': 'Recent Docs to Review', 'parent':folderid}))
# pprint(response)
print "Created Review Child Folder"
reviewchildfolderid = response['folder_id']

docs = mendeley.folder_documents(folderid)
pprint(docs)
print "Retrieving documents from selected folder"
pub_list = []
pprint(pub_list)

# from wikiradar.py

# Dictionary mapping uuid's to a dictionary with keys: authors, title, year, count
related_doc_dict = dict()

details = mendeley.document_details(documents['document_ids'][0])

print "Looking up suggestions for related docs."
print ""
for pub_item in pub_list: