diff options
author | Daniel Schadt <kingdread@gmx.de> | 2023-11-10 22:11:36 +0100 |
---|---|---|
committer | Daniel Schadt <kingdread@gmx.de> | 2023-11-10 22:11:36 +0100 |
commit | 40779bcfea8fce9a23c552cf449d25a0971ee329 (patch) | |
tree | 3e6e42758c0928d791848e3cb6a7d2789abbd3d0 | |
parent | a6b724b2f52923171b829a7a2c9f5902857f8fbf (diff) | |
download | fietsboek-40779bcfea8fce9a23c552cf449d25a0971ee329.tar.gz fietsboek-40779bcfea8fce9a23c552cf449d25a0971ee329.tar.bz2 fietsboek-40779bcfea8fce9a23c552cf449d25a0971ee329.zip |
fix wrong tile URL being requested
This was a leftover from the pydantic migration, which now uses a custom
URL type that is no longer just an "alias" for str. Therefore, the {x}
placeholders got escaped, which we now need to revert.
I'm not super happy with the way this works, but it works so far I
guess.
-rw-r--r-- | fietsboek/views/tileproxy.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fietsboek/views/tileproxy.py b/fietsboek/views/tileproxy.py index 999b04f..0264284 100644 --- a/fietsboek/views/tileproxy.py +++ b/fietsboek/views/tileproxy.py @@ -8,10 +8,10 @@ Additionally, this protects the users' IP, as only fietsboek can see it. """ import datetime import logging -import random import threading from itertools import chain from typing import List, Optional +from urllib.parse import quote import requests from pydantic import AnyUrl, TypeAdapter @@ -331,7 +331,13 @@ def tile_proxy(request): LOGGER.debug("Aborted attempt to contact %s due to previous timeouts", provider) raise HTTPGatewayTimeout(f"Avoiding request to {provider}") - url = tile_sources[provider].url.unicode_string().format(x=x, y=y, z=z, s=random.choice("abc")) + url = ( + tile_sources[provider] + .url.unicode_string() + .replace(quote("{x}"), str(x)) + .replace(quote("{y}"), str(y)) + .replace(quote("{z}"), str(z)) + ) # Avoid doing actual requests during tests if url.startswith("http://localhost:0"): LOGGER.debug("Skipping tile proxy request for testing URL") |