def get_mendeley_session(): mendeley_client = mendeley_lib.Mendeley( client_id=os.getenv("MENDELEY_OAUTH2_CLIENT_ID"), client_secret=os.getenv("MENDELEY_OAUTH2_SECRET")) auth = mendeley_client.start_client_credentials_flow() session = auth.authenticate() return session
def _get_client(self, credentials): if not self._client: partial = mendeley.Mendeley( client_id=self.client_id, client_secret=self.client_secret, redirect_uri=web_url_for('oauth_callback', service_name='mendeley', _absolute=True), ) self._client = APISession(partial, credentials) return self._client
def setUp(self): super(MendeleyApiTestCase, self).setUp() self.provider = model.Mendeley() self.mock_partial = mendeley.Mendeley( client_id='1234567890', client_secret='1a2s3d4f5g', redirect_uri='/api/v1/some/fake/url/mendeley' ) self.mock_credentials = { 'access_token': '1234567890987654321', 'refresh_token': 'asdfghjklkjhgfdsa', 'expires_at': time.mktime((datetime.datetime.utcnow() + datetime.timedelta(days=10)).timetuple()), 'token_type': 'bearer', }
def _get_client(self, credentials=None): partial = mendeley.Mendeley( client_id=self.client_id, client_secret=self.client_secret, redirect_uri=web_url_for( 'oauth_callback', service_name='mendeley', _absolute=True) if has_app_context() else None, ) credentials = credentials or { 'access_token': self.account.oauth_key, 'refresh_token': self.account.refresh_token, 'expires_at': time.mktime(self.account.expires_at.timetuple()), 'token_type': 'bearer', } return APISession(partial, credentials)
def main(*, papers_details_path: str) -> Tuple[str, ...]: papers_details = pandas.read_csv(papers_details_path, index_col=0) papers_details['mendeley keywords'] = None papers_details['publication ids'] = None papers_details['mendeley keywords'] = papers_details[ 'mendeley keywords'].astype('object') papers_details['publication ids'] = papers_details[ 'publication ids'].astype('object') mendeley_client = mendeley.Mendeley("10572", client_secret="egcetJherqDH0tJ5") auth = mendeley_client.start_client_credentials_flow() session = auth.authenticate() progress_bar = tqdm.tqdm(papers_details.iterrows(), desc='getting details from Mendeley', unit='paper', total=len(papers_details.index)) for index, paper in progress_bar: doi = paper["doi"] if doi != '': try: mendeley_paper = session.catalog.by_identifier(doi=doi) except mendeley.exception.MendeleyException: mendeley_paper = get_similar_paper(paper, session) else: mendeley_paper = get_similar_paper(paper, session) if mendeley_paper is not None: papers_details.loc[index, 'mendeley id'] = mendeley_paper.id papers_details.at[index, 'mendeley keywords'] = tuple( mendeley_paper.keywords ) if mendeley_paper.keywords is not None else tuple() papers_details.at[index, 'publication ids'] = tuple( mendeley_paper.identifiers.items( )) if mendeley_paper.identifiers is not None else None papers_details_mendeley_path = os.path.join('phase1_2', 'generated', 'papers_details.mendeley.csv') papers_details.drop_duplicates().to_csv(papers_details_mendeley_path) return papers_details_mendeley_path,
def _connect(self): mendeley = mendeley_lib.Mendeley( client_id=os.getenv("MENDELEY_OAUTH2_CLIENT_ID"), client_secret=os.getenv("MENDELEY_OAUTH2_SECRET")) session = mendeley.start_client_credentials_flow().authenticate() return session