From 18c7efebc30ab67e5017a47bd329561f98823e0e Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Thu, 1 Oct 2026 19:50:52 +0200 Subject: find climb names in cronjob --- fietsboek/scripts/fietscron.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/fietsboek/scripts/fietscron.py b/fietsboek/scripts/fietscron.py index ea05f15..da8bf0c 100644 --- a/fietsboek/scripts/fietscron.py +++ b/fietsboek/scripts/fietscron.py @@ -13,7 +13,7 @@ from sqlalchemy.engine import Engine from sqlalchemy.orm import Session from .. import config as mod_config -from .. import hittekaart, models, trackmap +from .. import hittekaart, models, osm, trackmap from ..config import Config from ..data import DataManager from ..models.user import TOKEN_LIFETIME @@ -35,6 +35,7 @@ def cli(config): * Rebuilds the cache for missing tracks. * Builds preview images for tracks. * (optional) Runs ``hittekaart`` to generate heatmaps + * Finds names for climbs not yet named """ logging.config.fileConfig(config) settings = pyramid.paster.get_appsettings(config) @@ -55,6 +56,7 @@ def cli(config): remove_old_tokens(engine) rebuild_cache(engine) build_previews(engine, data_manager, redis, config) + name_climbs(engine) redis = mod_redis.from_url(config.redis_url) if config.hittekaart_autogenerate: @@ -194,4 +196,19 @@ def refill_queue(session: Session, redis: Redis): redis.sadd("hittekaart:queue:low", user.id) +def name_climbs(engine: Engine): + """Attempts to find names for climbs that have no name assigned yet.""" + session = Session(engine) + LOGGER.debug("Naming climbs") + query = select(models.Climb).where(models.Climb.automatic_name.is_(None)) + for climb in session.execute(query).scalars(): + LOGGER.debug("Attempting climb %s", climb.id) + path = climb.path() + name = osm.find_name(path) + if name is not None: + climb.automatic_name = name + session.add(climb) + session.commit() + + __all__ = ["cli"] -- cgit v1.2.3