Beispiel #1
0
	def run(self):
		logging.debug(">>")
		selectedFiles = fileChooserDialog(title="Choose a Garmin Training Center file to import").getFiles()
		guiFlush()
		importfiles = []
		if not selectedFiles:
			return importfiles
		for filename in selectedFiles: #could be multiple files selected - currently only single selection enabled
			if self.valid_input_file(filename):
				for (sport, tracks) in self.getTracks(filename):
					logging.debug("Found %d tracks for %s sport in %s" % (len(tracks), sport, filename))
					count = 0
					for track in tracks: #can be multiple tracks
						if self.shouldImport(track):
							count += 1
							gpxfile = "%s/garminhrfile%d.gpx" % (self.tmpdir, len(importfiles))
							self.createGPXfile(gpxfile, track)
							if self.sport: #Option to overide sport is set
								importfiles.append((gpxfile, self.sport))
							else: #Use sport from file
								importfiles.append((gpxfile, sport))
					logging.debug("Importing %d of %d tracks for sport %s" % (count, len(tracks), sport) )
			else:
				logging.info("File %s failed validation" % (filename))
		logging.debug("<<")
		return importfiles
Beispiel #2
0
 def run(self):
     logging.debug(">>")
     selectedFiles = fileChooserDialog(
         title="Choose a Google Earth file (.kml) to import",
         multiple=True).getFiles()
     guiFlush()
     importfiles = []
     if not selectedFiles:
         return importfiles
     for filename in selectedFiles:
         if self.valid_input_file(filename):
             if not self.inDatabase(filename):
                 sport = self.getSport(
                     filename)  #TODO Fix sport determination
                 gpxfile = "%s/googleearth-%d.gpx" % (self.tmpdir,
                                                      len(importfiles))
                 outgps = subprocess.call([
                     "gpsbabel", "-t", "-i", "kml", "-f", filename, "-o",
                     "gpx", "-F", gpxfile
                 ])
                 #self.createGPXfile(gpxfile, filename) #TODO Fix processing so not dependant on the broken gpsbabel
                 importfiles.append((gpxfile, sport))
             else:
                 logging.debug("%s already in database. Skipping import." %
                               (filename))
         else:
             logging.info("File %s failed validation" % (filename))
     logging.debug("<<")
     return importfiles
Beispiel #3
0
 def run(self):
     logging.debug(">>")
     # able to select multiple files....
     selectedFiles = fileChooserDialog(
         title="Choose a TCX file (or files) to import",
         multiple=True).getFiles()
     guiFlush()
     importfiles = []
     if not selectedFiles:  #Nothing selected
         return importfiles
     for filename in selectedFiles:  #Multiple files
         if self.valid_input_file(
                 filename):  #TODO could consolidate tree generation here
             tree = etree.ElementTree(file=filename)
             #Possibly multiple entries in file
             activities = self.getActivities(tree)
             for activity in activities:
                 if not self.inDatabase(activity):
                     sport = self.getSport(activity)
                     gpxfile = "%s/garmin-tcxv2-%d.gpx" % (self.tmpdir,
                                                           len(importfiles))
                     self.createGPXfile(gpxfile, activity)
                     importfiles.append((gpxfile, sport))
                 else:
                     logging.debug(
                         "File:%s activity %d already in database. Skipping import."
                         % (filename, activities.index(activity)))
         else:
             logging.info("File %s failed validation" % (filename))
     logging.debug("<<")
     return importfiles
Beispiel #4
0
 def run(self):
     logging.debug(">>")
     # able to select multiple files....
     selectedFiles = fileChooserDialog(
         title="Choose a garmintools dump file (or files) to import",
         multiple=True).getFiles()
     guiFlush()
     importfiles = []
     if not selectedFiles:  #Nothing selected
         return importfiles
     for filename in selectedFiles:
         if self.valid_input_file(filename):
             #Garmin dump files are not valid xml - need to load into a xmltree
             #read file into string
             with open(filename, 'r') as f:
                 xmlString = f.read()
             fileString = BytesIO(b"<root>" + xmlString + b"</root>")
             #parse string as xml
             tree = etree.parse(fileString)
             if not self.inDatabase(tree):
                 sport = self.getSport(tree)
                 gpxfile = "%s/garmintools-%d.gpx" % (self.tmpdir,
                                                      len(importfiles))
                 self.createGPXfile(gpxfile, tree)
                 importfiles.append((gpxfile, sport))
             else:
                 logging.debug("%s already in database. Skipping import." %
                               (filename, ))
         else:
             logging.info("File %s failed validation" % (filename))
     logging.debug("<<")
     return importfiles
Beispiel #5
0
	def run(self):
		logging.debug(">>")
		# able to select multiple files....
		selectedFiles = fileChooserDialog(title="Choose a garmintools dump file (or files) to import", multiple=True).getFiles()
		guiFlush()
		importfiles = []
		if not selectedFiles: #Nothing selected
			return importfiles
		for filename in selectedFiles:
			if self.valid_input_file(filename):
				#Garmin dump files are not valid xml - need to load into a xmltree
				#read file into string
				with open(filename, 'r') as f:
					xmlString = f.read()
				fileString = BytesIO(b"<root>" + xmlString + b"</root>")
				#parse string as xml
				tree = etree.parse(fileString)
				if not self.inDatabase(tree):
					sport = self.getSport(tree)
					gpxfile = "%s/garmintools-%d.gpx" % (self.tmpdir, len(importfiles))
					self.createGPXfile(gpxfile, tree)
					importfiles.append((gpxfile, sport))
				else:
					logging.debug("%s already in database. Skipping import." % (filename,) )
			else:
				logging.info("File %s failed validation" % (filename))
		logging.debug("<<")
		return importfiles
Beispiel #6
0
	def run(self):
		logging.debug(">>")
		# able to select multiple files....
		selectedFiles = fileChooserDialog(title="Choose a TCX file (or files) to import", multiple=True).getFiles()
		guiFlush()
		importfiles = []
		if not selectedFiles: #Nothing selected
			return importfiles
		for filename in selectedFiles: #Multiple files
			if self.valid_input_file(filename): #TODO could consolidate tree generation here
				tree = etree.ElementTree(file=filename)
				#Possibly multiple entries in file
				activities = self.getActivities(tree)
				for activity in activities:
					if not self.inDatabase(activity):
						sport = self.getSport(activity)
						gpxfile = "%s/garmin-tcxv2-%d.gpx" % (self.tmpdir, len(importfiles))
						self.createGPXfile(gpxfile, activity)
						importfiles.append((gpxfile, sport))
					else:
						logging.debug("File:%s activity %d already in database. Skipping import." % (filename, activities.index(activity)) )
			else:
				logging.info("File %s failed validation" % (filename))
		logging.debug("<<")
		return importfiles
Beispiel #7
0
	def run(self):
		logging.debug(">>")
		selectedFiles = fileChooserDialog(title="Choose a GPX file (or files) to import", multiple=True).getFiles()
		guiFlush()
		importfiles = []
		if not selectedFiles:
			return importfiles
		for filename in selectedFiles:
			if self.valid_input_file(filename):
				if not self.inDatabase(filename):
					sport = self.getSport(filename)
					gpxfile = "%s/garmin-gpx-%d.gpx" % (self.tmpdir, len(importfiles))	
					shutil.copy(filename, gpxfile)
					importfiles.append((gpxfile, sport))
				else:
					logging.debug("%s already in database. Skipping import." % (filename) )
			else:
				logging.info("File %s failed validation" % (filename))
		logging.debug("<<")
		return importfiles
Beispiel #8
0
	def run(self):
		logging.debug(">>")
		selectedFiles = fileChooserDialog(title="Choose a Google Earth file (.kml) to import", multiple=True).getFiles()
		guiFlush()
		importfiles = []
		if not selectedFiles:
			return importfiles
		for filename in selectedFiles:
			if self.valid_input_file(filename):
				if not self.inDatabase(filename):
					sport = self.getSport(filename) #TODO Fix sport determination
					gpxfile = "%s/googleearth-%d.gpx" % (self.tmpdir, len(importfiles))
					outgps = commands.getstatusoutput("gpsbabel -t -i kml -f %s -o gpx -F %s" % (filename, gpxfile) )
					#self.createGPXfile(gpxfile, filename) #TODO Fix processing so not dependant on the broken gpsbabel
					importfiles.append((gpxfile, sport))
				else:
					logging.debug("%s already in database. Skipping import." % (filename) )
			else:
				logging.info("File %s failed validation" % (filename))
		logging.debug("<<")
		return importfiles
 def run(self):
     logging.debug(">>")
     selectedFiles = fileChooserDialog(
         title="Choose a GPX file (or files) to import",
         multiple=True).getFiles()
     guiFlush()
     importfiles = []
     if not selectedFiles:
         return importfiles
     for filename in selectedFiles:
         if self.valid_input_file(filename):
             if not self.inDatabase(filename):
                 sport = self.getSport(filename)
                 gpxfile = "%s/garmin-gpx-%d.gpx" % (self.tmpdir,
                                                     len(importfiles))
                 shutil.copy(filename, gpxfile)
                 importfiles.append((gpxfile, sport))
             else:
                 logging.debug("%s already in database. Skipping import." %
                               (filename))
         else:
             logging.info("File %s failed validation" % (filename))
     logging.debug("<<")
     return importfiles