示例#1
0
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
示例#2
0
文件: model.py 项目: pazthor/osf.io
    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
示例#3
0
 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',
     }
示例#4
0
 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,
示例#6
0
 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