aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2026-10-01 19:50:52 +0200
committerDaniel Schadt <kingdread@gmx.de>2026-10-01 19:50:52 +0200
commit18c7efebc30ab67e5017a47bd329561f98823e0e (patch)
tree619e5b83a43611b0c457423a63daa8a2a46bdbef
parentf7768419f4fc39f0332066e4654ef026e2c5be9e (diff)
downloadfietsboek-18c7efebc30ab67e5017a47bd329561f98823e0e.tar.gz
fietsboek-18c7efebc30ab67e5017a47bd329561f98823e0e.tar.bz2
fietsboek-18c7efebc30ab67e5017a47bd329561f98823e0e.zip
find climb names in cronjob
-rw-r--r--fietsboek/scripts/fietscron.py19
1 files changed, 18 insertions, 1 deletions
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"]