From 987e9831f98d0efdc4070a4f5947c6ff1837f820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr> Date: Wed, 13 Jun 2018 14:42:14 +0200 Subject: [PATCH] download patent info from Google instead of EPO EPO REST API v3.1 is deprecated (see http://www.epo.org/service-support/updates/2018/20180104.html) This fixes #72 Former-commit-id: 574d12295d9bb6b82c9741d9094963f8a51151f9 --- ippisite/ippidb/models.py | 4 ++-- ippisite/ippidb/ws.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py index 66299eea..ca8c46d5 100644 --- a/ippisite/ippidb/models.py +++ b/ippisite/ippidb/models.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.db import models from django.db.models import Max -from .ws import get_pubmed_info, get_epo_info, get_uniprot_info, get_taxonomy_info, get_go_info, get_pfam_info +from .ws import get_pubmed_info, get_google_patent_info, get_uniprot_info, get_taxonomy_info, get_go_info, get_pfam_info class AutoFillableModel(models.Model): @@ -56,7 +56,7 @@ class Bibliography(AutoFillableModel): if self.source == 'PM': info = get_pubmed_info(self.id_source) else: - info = get_epo_info(self.id_source) + info = get_google_patent_info(self.id_source) self.title = info['title'] self.journal_name = info['journal_name'] self.authors_list = info['authors_list'] diff --git a/ippisite/ippidb/ws.py b/ippisite/ippidb/ws.py index 7f699d49..03fc0ff1 100644 --- a/ippisite/ippidb/ws.py +++ b/ippisite/ippidb/ws.py @@ -44,6 +44,24 @@ def get_epo_info(patent_number): 'biblio_year': biblio_year, 'authors_list': authors} +def get_google_patent_info(patent_number): + url = 'https://encrypted.google.com/patents/{}.ris'.format(patent_number) + resp = requests.get(url) + title = None + authors = [] + biblio_year = None + for line_str in resp.text.split("\n"): + line = line_str.strip().split(" - ") + if line[0] == "A1": + authors.append(line[1]) + elif line[0] == "T1": + title = line[1] + elif line[0] == "Y1": + biblio_year = line[1].split("/")[0] + return {'title': title, + 'journal_name': None, + 'biblio_year': biblio_year, + 'authors_list': authors} def get_uniprot_info(uniprot_id): uniprot_client = UniProt() -- GitLab