aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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"]