aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2025-04-23 20:56:53 +0200
committerDaniel Schadt <kingdread@gmx.de>2025-04-23 20:56:53 +0200
commit7d1a1de773f0d0746003e58507898beafb18c57a (patch)
tree56d729f527634a86dc7157172f2253f141ce078f
parenteb5d296021b5857682bb45cb7144531e08ed8ec4 (diff)
downloadfietsboek-7d1a1de773f0d0746003e58507898beafb18c57a.tar.gz
fietsboek-7d1a1de773f0d0746003e58507898beafb18c57a.tar.bz2
fietsboek-7d1a1de773f0d0746003e58507898beafb18c57a.zip
fix types for trackmap
-rw-r--r--fietsboek/scripts/fietscron.py3
-rw-r--r--fietsboek/trackmap.py10
-rw-r--r--fietsboek/views/tileproxy.py2
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