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)
    def __str__(self):
        return "(Mendeley Paper Object: %s)" % self.uuid

    def __repr__(self):
        return "(Mendeley Paper Object: %s)" % self.uuid

    def __ne__(self, other):
        return not self.__eq__(other)


print """

-----------------------------------------------------
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)
Exemplo n.º 3
0
print """

-----------------------------------------------------
Create new folder
-----------------------------------------------------"""
response = mendeley.create_folder(folder=json.dumps({'name': 'Test folder creation'}))
pprint(response)
folderId = response['folder_id']

print """

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

print """

-----------------------------------------------------
Delete folder
-----------------------------------------------------"""
response = mendeley.delete_folder(folderId)
pprint(response)

print """

-----------------------------------------------------
Create public invite only group
-----------------------------------------------------"""