Пример #1
0
    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)
Пример #2
0
 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)
Пример #3
0
    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)