From 728b537daea155a69e85e9e92cda8397e819a83e Mon Sep 17 00:00:00 2001
From: Boris Ponsioen <b.g.t.ponsioen@uva.nl>
Date: Mon, 16 Apr 2018 15:29:14 +0200
Subject: [PATCH] Readds error handling in get_crossref_test temporarily

---
 metacore/services.py | 39 +++++++++++++++++++++------------------
 1 file changed, 21 insertions(+), 18 deletions(-)

diff --git a/metacore/services.py b/metacore/services.py
index 0bb08a22d..bd12be201 100644
--- a/metacore/services.py
+++ b/metacore/services.py
@@ -28,31 +28,34 @@ def get_crossref_test(cursor='*'):
         print("Last cursor: ", last_cursor)
         print("Current cursor: ", cursor)
 
-        params = {'cursor': cursor, 'rows': rows, 'mailto': 'b.g.t.ponsioen@uva.nl'}
-        r = requests.get(url, params=params)
-        r_json = r.json()
-
-        citables_json = r_json['message']['items']
-        last_cursor = cursor
-        cursor = r_json['message']['next-cursor']
-        number_of_results = len(r_json['message']['items'])
-
-        citables = [parse_crossref_citable(it) for it in citables_json]
-        citables = [citable for citable in citables if citable is not None]
+        for j in range(0,2):
+            params = {'cursor': cursor, 'rows': rows, 'mailto': 'b.g.t.ponsioen@uva.nl'}
+            r = requests.get(url, params=params)
+            r_json = r.json()
+
+            citables_json = r_json['message']['items']
+            last_cursor = cursor
+            cursor = r_json['message']['next-cursor']
+            number_of_results = len(r_json['message']['items'])
+
+            citables = [parse_crossref_citable(it) for it in citables_json]
+            citables = [citable for citable in citables if citable is not None]
+
+            # Mass insert in database (will fail on encountering existing documents
+            # with same DOI
+            if citables:
+                Citable.objects.insert(citables)
+                break
+            else:
+                print("Trying again")
 
-        # Mass insert in database (will fail on encountering existing documents
-        # with same DOI
-        if citables:
-            Citable.objects.insert(citables)
+            citable = []
 
         if number_of_results < rows:
             print(number_of_results)
             print('End reached.')
             break
 
-        citable = []
-
-
 def convert_doi_to_lower_case():
     # If you accidentally import 100.000+ records that have random uppercase characters
     # in their reference DOI list
-- 
GitLab