annot-server/utils.py
changeset 67 7db9c7ec691a
parent 66 658561ea9e65
--- a/annot-server/utils.py	Sat Oct 25 05:43:01 2014 +0200
+++ b/annot-server/utils.py	Sat Oct 25 06:44:33 2014 +0200
@@ -117,19 +117,6 @@
                 self.end_date= self.parse_date(str(end_date))
         elif self.start_date and self.duration:
             self.end_date = self.start_date + datetime.timedelta(seconds=self.duration)
-        elif self.start_date and self.base_url:
-            # get duration from api
-            content_url = self.base_url + AnnotationsSynchronizer.LDT_CONTENT_REST_API_PATH + content_id + "/?format=json"
-            self.logger.debug("get duration " + content_url) #@UndefinedVariable
-            r = requests.get(content_url, params=self.post_param)
-            self.logger.debug("get duration resp " + repr(r)) #@UndefinedVariable
-            self.duration = int(r.json()['duration'])
-            self.logger.debug("get duration " + repr(self.duration)) #@UndefinedVariable
-
-            self.end_date = self.start_date + datetime.timedelta(seconds=int(self.duration/1000))
-
-        if self.end_date and self.deltas:
-            self.end_date = self.end_date + datetime.timedelta(milliseconds=self.deltas[-1][1])
 
         self.content_file = content_file
         self.project_id = project_id
@@ -239,8 +226,8 @@
 
 
         if ensemble_parent is None:
-            self.logger.error("Can not process file") #@UndefinedVariable
-            sys.exit()
+            self.logger.error("Ensemble parent is None - Can not process file") #@UndefinedVariable
+            raise Exception("Ensemble parent is None - can not process file")
 
         if self.replace:
             for ens in ensemble_parent.iterchildren(tag=u"ensemble"):
@@ -278,6 +265,25 @@
         decoupage_id = decoupage.get('id', '') if decoupage is not None else None
 
 
+        if self.end_date is None and self.start_date and self.base_url:
+            # get duration from api
+            content_url = self.base_url + AnnotationsSynchronizer.LDT_CONTENT_REST_API_PATH + content_id + "/?format=json"
+            self.logger.debug("get duration " + content_url) #@UndefinedVariable
+            r = requests.get(content_url, params=self.post_param)
+            self.logger.debug("get duration resp " + repr(r)) #@UndefinedVariable
+            if r.status_code == requests.codes.ok:
+                self.duration = int(r.json()['duration'])
+            else:
+                self.logger.error("Can not get duration form content : %r " % r)
+                r.raise_for_status()
+            self.logger.debug("get duration " + repr(self.duration)) #@UndefinedVariable
+
+            self.end_date = self.start_date + datetime.timedelta(seconds=int(self.duration/1000))
+
+        if self.end_date and self.deltas:
+            self.end_date = self.end_date + datetime.timedelta(milliseconds=self.deltas[-1][1])
+
+
         filters = self.get_filter()