Don't mess with frame if it can't be parsed.
This commit is contained in:
		@@ -90,35 +90,36 @@ def main():
 | 
			
		||||
        for frame in ki.read(min_frames=1):
 | 
			
		||||
            try:
 | 
			
		||||
                a = aprslib.parse(str(frame))
 | 
			
		||||
            except:
 | 
			
		||||
                a = dict()
 | 
			
		||||
            a['station_call'] = config['Settings']['station_call']
 | 
			
		||||
            a['station_lat'] = config['Settings']['station_lat']
 | 
			
		||||
            a['station_lon'] = config['Settings']['station_lon']
 | 
			
		||||
            print(a)
 | 
			
		||||
            # Make this a string and deal with it later (probably a mistake)
 | 
			
		||||
            a['path'] = str(a['path'])
 | 
			
		||||
            # Store true/false as 1/0
 | 
			
		||||
            if 'alive' in a:
 | 
			
		||||
                if a['alive'] == True:
 | 
			
		||||
                    a['alive'] = 1
 | 
			
		||||
                else:
 | 
			
		||||
                    a['alive'] = 0
 | 
			
		||||
            # Build an INSERT statement based on the fields we have from the frame
 | 
			
		||||
            attrib_names = ', '.join('"%s"' % w for w in a.keys())
 | 
			
		||||
            attrib_values = ", ".join("?" * len(a.keys()))
 | 
			
		||||
            sql = "INSERT INTO frames ("+attrib_names+") VALUES ("+attrib_values+")"
 | 
			
		||||
            try:
 | 
			
		||||
                # Insert data
 | 
			
		||||
                conn.execute(sql, list(a.values()))
 | 
			
		||||
                conn.commit()
 | 
			
		||||
                a['station_call'] = config['Settings']['station_call']
 | 
			
		||||
                a['station_lat'] = config['Settings']['station_lat']
 | 
			
		||||
                a['station_lon'] = config['Settings']['station_lon']
 | 
			
		||||
                print(a)
 | 
			
		||||
                # Make this a string and deal with it later (probably a mistake)
 | 
			
		||||
                a['path'] = str(a['path'])
 | 
			
		||||
                # Store true/false as 1/0
 | 
			
		||||
                if 'alive' in a:
 | 
			
		||||
                    if a['alive'] == True:
 | 
			
		||||
                        a['alive'] = 1
 | 
			
		||||
                    else:
 | 
			
		||||
                        a['alive'] = 0
 | 
			
		||||
                # Build an INSERT statement based on the fields we have from the frame
 | 
			
		||||
                attrib_names = ', '.join('"%s"' % w for w in a.keys())
 | 
			
		||||
                attrib_values = ", ".join("?" * len(a.keys()))
 | 
			
		||||
                sql = "INSERT INTO frames ("+attrib_names+") VALUES ("+attrib_values+")"
 | 
			
		||||
                try:
 | 
			
		||||
                    # Insert data
 | 
			
		||||
                    conn.execute(sql, list(a.values()))
 | 
			
		||||
                    conn.commit()
 | 
			
		||||
 | 
			
		||||
                # TODO remove packets that are older ('created') than a limit set in config.ini
 | 
			
		||||
                # "5 minutes" also works
 | 
			
		||||
                conn.execute("DELETE FROM frames WHERE created < DATETIME('now', '"+config['Settings']['keep_time']+"')")
 | 
			
		||||
                conn.commit()
 | 
			
		||||
                    # TODO remove packets that are older ('created') than a limit set in config.ini
 | 
			
		||||
                    # "5 minutes" also works
 | 
			
		||||
                    conn.execute("DELETE FROM frames WHERE created < DATETIME('now', '"+config['Settings']['keep_time']+"')")
 | 
			
		||||
                    conn.commit()
 | 
			
		||||
                except:
 | 
			
		||||
                    print("Error with SQLite!")
 | 
			
		||||
            except:
 | 
			
		||||
                print("Error with SQLite!")
 | 
			
		||||
                print("Frame could not be parsed.")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        conn.close()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user