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
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
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
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
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
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
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
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