def menbib_get_export(node_addon, *args, **kwargs): node = node_addon.owner user_settings = node_addon.user_settings client = get_node_addon_client(node_addon) client.from_settings(user_settings) client.refresh_access_token() library = parse_library(client) if node: keys = request.args.getlist('allKeys') format = request.args.get('format') if format not in menbib_settings.EXPORT_FORMATS: raise HTTPError(http.BAD_REQUEST), "Export format not recognized" if keys: export = _get_citation(library, keys, format) export = export.encode('utf-8') print export else: export = 'No Items specified' strIO = StringIO.StringIO() strIO.write(str(export)) strIO.seek(0) return send_file(strIO, attachment_filename="menbib_export_"+format+".txt", as_attachment=True) else: raise HTTPError(http.BAD_REQUEST)
def menbib_get_citation(node_addon, *args, **kwargs): node = node_addon.owner user_settings = node_addon.user_settings client = get_node_addon_client(node_addon) client.from_settings(user_settings) client.refresh_access_token() library = parse_library(client) if node: keys = request.json.get('allKeys') style = request.json.get('style') if style not in menbib_settings.CITATION_STYLES: raise HTTPError(http.BAD_REQUEST), "Export format not recognized" else: style = menbib_settings.CITATION_STYLES[style] if keys: citations = _get_citation(library, keys, style) else: citations = '<span>No Items specified</span>' citations = citations.replace(' .', '.<br>') return citations else: raise HTTPError(http.BAD_REQUEST)
def test_get_node_addon_client(self): client = get_node_addon_client(self.node_settings) assert_true(isinstance(client, Mendeley))
def menbib_get_page_info(node_addon, auth, **kwargs): folder = request.args.get('folder') if node_addon.user_settings is None: flash('Authorize Mendeley add-on in Settings', 'warning') raise HTTPError(http.FORBIDDEN) node = node_addon.owner user_settings = node_addon.user_settings client = get_node_addon_client(node_addon) client.from_settings(user_settings) client.refresh_access_token() user_folders = client.folders() user_library = client.library() user_folders_id = [] user_folders_name = [] for idx in range(0, len(user_folders)): user_folders_id.append(user_folders[idx]['id']) user_folders_name.append(user_folders[idx]['name']) if folder is not None: idx = user_folders_name.index(folder) folder_documentId = client.folder_details(user_folders_id[idx]) documentId = folder_documentId['document_ids'] else: documentId = user_library['document_ids'] doc_meta = [] for idx in range(0, len(documentId)): meta = client.document_details(documentId[idx]) author = [] second_line = '' for idy in range(0,len(meta['authors'])): author.append({ 'family':meta['authors'][idy]['surname'], 'given': meta['authors'][idy]['forename'], }) second_line = second_line + meta['authors'][idy]['forename'] + ' ' \ + meta['authors'][idy]['surname'] + ', ' second_line = second_line[:-2] second_line = second_line + ' (' + str(meta.get('year','0')) + ')' third_line = meta['published_in'] + ' ' \ + meta.get('volume', '') + ' ' \ + '(' + meta.get('issue', '') + ')' + ' p. ' + \ meta.get('pages', '') doc_meta.append({ "author": author, "id": meta['id'], "issued": { "date-parts": [ [ meta.get('year','0'), meta.get('month','0'), meta.get('day','0'), ] ] }, "title": meta.get('title',"").replace('.',''), "type": meta.get('type',"").lower(), "abstract": meta.get('abstract',""), "publisher": meta.get('published_in',""), "volume": meta.get('volume',""), "page": meta.get('pages',""), "url": meta.get('url'," "), "second_line": second_line, "third_line": third_line.replace('()', '').strip(' p. '), }) data = _view_project(node, auth, primary=True) rv = _page_content(node, node_addon) rv.update({ 'addon_page_js': user_settings.config.include_js.get('page'), 'addon_page_css': user_settings.config.include_css.get('page'), 'items': doc_meta, 'citation_styles': menbib_settings.CITATION_STYLES, 'export_formats': menbib_settings.EXPORT_FORMATS, 'folder_names': user_folders_name, }) rv.update(user_settings.config.to_json()) rv.update(data) return rv