def get_spawnpoints_stats(self): coords = [] known = [] unknown = [] processed_fences = [] possible_fences = get_geofences(self._mapping_manager, 'mon_mitm') for possible_fence in possible_fences: for subfence in possible_fences[possible_fence]['include']: if subfence in processed_fences: continue processed_fences.append(subfence) fence = generate_coords_from_geofence(self._mapping_manager, subfence) known.clear() unknown.clear() data = json.loads(self._db.download_spawns(fence=fence)) for spawnid in data: if data[str(spawnid)]["endtime"] == None: unknown.append(spawnid) else: known.append(spawnid) coords.append({ 'fence': subfence, 'known': len(known), 'unknown': len(unknown), 'sum': len(known) + len(unknown) }) stats = {'spawnpoints': coords} return jsonify(stats)
def get_geofence(self): areas = self._mapping_manager.get_areas() areas_sorted = sorted(areas, key=lambda x: areas[x]['name']) geofences = get_geofences(self._mapping_manager, self._data_manager) geofencexport = [] for area_id in areas_sorted: fences = geofences[area_id] coordinates = [] for fname, coords in fences.get('include').items(): coordinates.append( [coords, fences.get('exclude').get(fname, [])]) geofencexport.append({ 'name': areas[area_id]['name'], 'coordinates': coordinates }) return jsonify(geofencexport)
def get_geofence(self): geofences = {} areas = self._mapping_manager.get_areas() for uri, area in areas.items(): aname = area['name'] geofence_include = {} geofence_exclude = {} geofence_name = 'Unknown' geofence_included = Path(area["geofence_included"]) if not geofence_included.is_file(): continue with geofence_included.open() as gf: for line in gf: line = line.strip() if not line: # Empty line. continue elif line.startswith("["): # Name line. geofence_name = line.replace("[", "").replace("]", "") geofence_include[geofence_name] = [] else: # Coordinate line. lat, lon = line.split(",") geofence_include[geofence_name].append( [getCoordFloat(lat), getCoordFloat(lon)]) if area['geofence_excluded']: geofence_name = 'Unknown' geofence_excluded = Path(area["geofence_excluded"]) if not geofence_excluded.is_file(): continue with geofence_excluded.open() as gf: for line in gf: line = line.strip() if not line: # Empty line. continue elif line.startswith("["): # Name line. geofence_name = line.replace("[", "").replace("]", "") geofence_exclude[geofence_name] = [] else: # Coordinate line. lat, lon = line.split(",") geofence_exclude[geofence_name].append( [getCoordFloat(lat), getCoordFloat(lon)]) geofences[aname] = { 'include': geofence_include, 'exclude': geofence_exclude } geofences = get_geofences(self._mapping_manager) geofencexport = [] for name, fences in geofences.items(): coordinates = [] for fname, coords in fences.get('include').items(): coordinates.append( [coords, fences.get('exclude').get(fname, [])]) geofencexport.append({ 'name': areas[name]['name'], 'coordinates': coordinates }) return jsonify(geofencexport)