diff options
-rw-r--r-- | fietsboek/scripts/fietscron.py | 3 | ||||
-rw-r--r-- | fietsboek/trackmap.py | 10 | ||||
-rw-r--r-- | fietsboek/views/tileproxy.py | 2 |
3 files changed, 9 insertions, 6 deletions
diff --git a/fietsboek/scripts/fietscron.py b/fietsboek/scripts/fietscron.py index 621821b..68b731f 100644 --- a/fietsboek/scripts/fietscron.py +++ b/fietsboek/scripts/fietscron.py @@ -112,6 +112,9 @@ def build_previews( layer = config.public_tile_layers()[0] tracks = select(models.Track) for track in session.execute(tracks).scalars(): + if track.id is None: + continue + track_dir = data_manager.open(track.id) if track_dir.preview_path().exists(): continue diff --git a/fietsboek/trackmap.py b/fietsboek/trackmap.py index c433ad0..b5fc62b 100644 --- a/fietsboek/trackmap.py +++ b/fietsboek/trackmap.py @@ -36,15 +36,15 @@ class TrackMapRenderer: self.color = (0, 0, 255) self.line_width = 5 - def render(self) -> Image: + def render(self) -> Image.Image: zoom, bbox = self._find_zoom() image = Image.new("RGB", self.size) start_x, start_y = self._draw_base(image, zoom, bbox) self._draw_lines(image, zoom, start_x, start_y) return image - def _find_zoom(self) -> int: - for zoom in range(self.maxzoom, 0, -1): + def _find_zoom(self) -> tuple[int, tuple[int, int, int, int]]: + for zoom in range(self.maxzoom or 19, 0, -1): min_x, max_x = 2**zoom * TILE_SIZE, 0 min_y, max_y = 2**zoom * TILE_SIZE, 0 @@ -78,7 +78,7 @@ class TrackMapRenderer: return start_x, start_y - def _load_tile(self, zoom, x, y) -> Image: + def _load_tile(self, zoom, x, y) -> Image.Image: tile_data = self.requester.load_tile(self.layer, zoom, x, y) if not tile_data: return Image.new("RGB", (TILE_SIZE, TILE_SIZE)) @@ -96,5 +96,5 @@ class TrackMapRenderer: draw.line(coords, fill=self.color, width=self.line_width, joint="curve") -def render(track: GPX, layer: TileLayerConfig, requester: TileRequester) -> Image: +def render(track: GPX, layer: TileLayerConfig, requester: TileRequester) -> Image.Image: return TrackMapRenderer(track, requester, (300, 300), layer).render() diff --git a/fietsboek/views/tileproxy.py b/fietsboek/views/tileproxy.py index df76f25..b52d974 100644 --- a/fietsboek/views/tileproxy.py +++ b/fietsboek/views/tileproxy.py @@ -408,7 +408,7 @@ def tile_proxy(request): # We already tried the cache, so bypass it here resp = loader.load_tile(tile_sources[provider], z, x, y, headers=headers, use_cache=False) except ReadTimeout: - LOGGER.debug("Proxy timeout when accessing %r", url) + LOGGER.debug("Proxy timeout when accessing z:%s/x:%s/y:%s from %s", z, x, y, provider) request.redis.incr(timeout_tracker) request.redis.expire(timeout_tracker, PUNISHMENT_TTL) raise HTTPGatewayTimeout(f"No response in time from {provider}") from None |