Empty file (GPS.Sport storage backend failure) handling.
[pyrungps.git] / pyrungps / pyrungps_sync.py
index 420994b8d54f6054e718babc3e40dcb6c0692790..67362156ea82d66235aeccc78f1dc826017a84fe 100644 (file)
@@ -15,6 +15,7 @@ from datetime import date,datetime
 from dateutil.parser import isoparse
 from pyrungps.parsegpx import write_parsed_to_db,check_db_for_training
 from pyrungps.pygpx import GPX
+from io import BytesIO
 
 from tempfile import NamedTemporaryFile
 
@@ -36,7 +37,8 @@ def get_page(uname,year,month):
     if attribute == "href":
       if link.startswith("/trainings/"):
         dummy, dummy, link = link.split('/')
-        name, id, *_ = link.split('_')
+        name, *ids = link.split('_')
+        id = ids[-1]
         trainings.append([ unquote(name), id ])
       
   return trainings      
@@ -46,6 +48,7 @@ def get_gpx_track(trid,name):
   print("trid=",trid)
 
   req = requests.get("http://www.gps-sport.net/services/trainingGPX.jsp?trainingID=%s&tz=-180" % (trid), verify=False)
+  
   xml = etree.fromstring(req.text.encode('utf-8'))
 
   return xml
@@ -186,6 +189,10 @@ def sync_db(dbx,username,year,month,dir=".",verbose=False,force=False):
 
         sport = training['sport']
         timestamp = gpx.tracks[0].start_time()
+                
+        if not(timestamp):
+          print("Empty training found, skipping...")
+          continue
         
         print(sport, timestamp)