From 1a739c5dcc810c0e8e2151087f2ab7ada5f98ca9 Mon Sep 17 00:00:00 2001 From: Giacomo Sarrocco Date: Fri, 19 Jan 2024 15:41:43 +0100 Subject: [PATCH] Prefix aut nav treni with venezia (#172) * Create migration to replace in tables stations, stops, stop_times * Rename all references to aut, nav, treni --- ...5b0bb_prefix_aut_nav_treni_with_venezia.py | 48 +++++++++++++++++++ server/GTFS/source.py | 2 +- server/base/models.py | 4 +- server/base/source.py | 2 +- server/routes.py | 4 +- server/sources.py | 6 +-- server/trenitalia/source.py | 2 +- tgbot/handlers.py | 2 +- 8 files changed, 59 insertions(+), 11 deletions(-) create mode 100644 alembic/versions/dd839935b0bb_prefix_aut_nav_treni_with_venezia.py diff --git a/alembic/versions/dd839935b0bb_prefix_aut_nav_treni_with_venezia.py b/alembic/versions/dd839935b0bb_prefix_aut_nav_treni_with_venezia.py new file mode 100644 index 0000000..a3122c8 --- /dev/null +++ b/alembic/versions/dd839935b0bb_prefix_aut_nav_treni_with_venezia.py @@ -0,0 +1,48 @@ +"""Prefix aut, nav, treni with venezia + +Revision ID: dd839935b0bb +Revises: d55702afa188 +Create Date: 2024-01-19 15:11:41.149726 + +""" +from alembic import op + +# revision identifiers, used by Alembic. +revision = 'dd839935b0bb' +down_revision = 'd55702afa188' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # in stations rename aut to venezia-aut, nav to venezia-nav, treni to venezia-treni + op.execute("UPDATE stations SET source='venezia-aut' WHERE source='aut'") + op.execute("UPDATE stations SET source='venezia-nav' WHERE source='nav'") + op.execute("UPDATE stations SET source='venezia-treni' WHERE source='treni'") + + # in stops rename aut to venezia-aut, nav to venezia-nav, treni to venezia-treni + op.execute("UPDATE stops SET source='venezia-aut' WHERE source='aut'") + op.execute("UPDATE stops SET source='venezia-nav' WHERE source='nav'") + op.execute("UPDATE stops SET source='venezia-treni' WHERE source='treni'") + + # in stop_times rename aut to venezia-aut, nav to venezia-nav, treni to venezia-treni + op.execute("UPDATE stop_times SET source='venezia-aut' WHERE source='aut'") + op.execute("UPDATE stop_times SET source='venezia-nav' WHERE source='nav'") + op.execute("UPDATE stop_times SET source='venezia-treni' WHERE source='treni'") + + +def downgrade() -> None: + # in stations rename venezia-aut to aut, venezia-nav to nav, venezia-treni to treni + op.execute("UPDATE stations SET source='aut' WHERE source='venezia-aut'") + op.execute("UPDATE stations SET source='nav' WHERE source='venezia-nav'") + op.execute("UPDATE stations SET source='treni' WHERE source='venezia-treni'") + + # in stops rename venezia-aut to aut, venezia-nav to nav, venezia-treni to treni + op.execute("UPDATE stops SET source='aut' WHERE source='venezia-aut'") + op.execute("UPDATE stops SET source='nav' WHERE source='venezia-nav'") + op.execute("UPDATE stops SET source='treni' WHERE source='venezia-treni'") + + # in stop_times rename venezia-aut to aut, venezia-nav to nav, venezia-treni to treni + op.execute("UPDATE stop_times SET source='aut' WHERE source='venezia-aut'") + op.execute("UPDATE stop_times SET source='nav' WHERE source='venezia-nav'") + op.execute("UPDATE stop_times SET source='treni' WHERE source='venezia-treni'") diff --git a/server/GTFS/source.py b/server/GTFS/source.py index c3c3e58..85dd78a 100644 --- a/server/GTFS/source.py +++ b/server/GTFS/source.py @@ -199,7 +199,7 @@ def upload_stops_clusters_to_db(self, force=False) -> bool: for stop in cluster.stops: platform = get_loc_from_stop_and_cluster(stop.name) platform = platform if platform != '' else None - id_ = self.name + '_' + stop.id if self.name != 'treni' else stop.id + id_ = self.name + '_' + stop.id if self.name != 'venezia-treni' else stop.id stop = Stop(id=id_, platform=platform, lat=stop.lat, lon=stop.lon, station_id=cluster.name, source=self.name) new_stops.append(stop) diff --git a/server/base/models.py b/server/base/models.py index 2975875..f08cdfa 100644 --- a/server/base/models.py +++ b/server/base/models.py @@ -16,7 +16,7 @@ class Station(Base): lon: Mapped[Optional[float]] ids: Mapped[str] = mapped_column(server_default='') times_count: Mapped[float] = mapped_column(server_default='0') - source: Mapped[str] = mapped_column(server_default='treni') + source: Mapped[str] = mapped_column(server_default='venezia-treni') stops = relationship('Stop', back_populates='station', cascade='all, delete-orphan') active: Mapped[bool] = mapped_column(server_default='true') @@ -56,7 +56,7 @@ class StopTime(Base): dest_text: Mapped[str] number: Mapped[int] route_name: Mapped[str] - source: Mapped[str] = mapped_column(server_default='treni') + source: Mapped[str] = mapped_column(server_default='venezia-treni') stop_id: Mapped[str] = mapped_column(ForeignKey('stops.id')) stop: Mapped[Stop] = relationship('Stop', foreign_keys=stop_id) diff --git a/server/base/source.py b/server/base/source.py index 68e5d37..94b8d28 100644 --- a/server/base/source.py +++ b/server/base/source.py @@ -359,7 +359,7 @@ def upload_trip_stop_time_to_postgres(self, stop_time: TripStopTime): if stop_time.orig_dep_date > date.today() + timedelta(days=2): return - stop_id = self.name + '_' + stop_time.station.id if self.name != 'treni' else stop_time.station.id + stop_id = self.name + '_' + stop_time.station.id if self.name != 'venezia-treni' else stop_time.station.id stmt = insert(StopTime).values(stop_id=stop_id, sched_arr_dt=stop_time.arr_time, sched_dep_dt=stop_time.dep_time, platform=stop_time.platform, diff --git a/server/routes.py b/server/routes.py index 97c17e5..039f9aa 100644 --- a/server/routes.py +++ b/server/routes.py @@ -14,7 +14,7 @@ async def home(request: Request) -> Response: text_response = '' try: - sources['treni'].session.execute(text('SELECT 1')) + sources['venezia-treni'].session.execute(text('SELECT 1')) except Exception: return Response(status_code=500) else: @@ -41,7 +41,7 @@ async def search_stations(request: Request) -> Response: source = sources[only_source] all_sources = False else: - source = sources['aut'] + source = sources['venezia-aut'] all_sources = True limit = max(1, min(limit, 10)) stations, count = source.search_stops(name=query, all_sources=all_sources, limit=limit, hide_ids=hide_ids) diff --git a/server/sources.py b/server/sources.py index 4b96293..53c4dca 100644 --- a/server/sources.py +++ b/server/sources.py @@ -14,9 +14,9 @@ typesense = connect_to_typesense() sources = { - 'aut': GTFS('automobilistico', '🚌', session, typesense, dev=config.get('DEV', False)), - 'nav': GTFS('navigazione', '⛴️', session, typesense, dev=config.get('DEV', False)), - 'treni': Trenitalia(session, typesense) + 'venezia-aut': GTFS('automobilistico', '🚌', session, typesense, dev=config.get('DEV', False)), + 'venezia-nav': GTFS('navigazione', '⛴️', session, typesense, dev=config.get('DEV', False)), + 'venezia-treni': Trenitalia(session, typesense) } for source in sources.values(): diff --git a/server/trenitalia/source.py b/server/trenitalia/source.py index f3125eb..cb72b18 100644 --- a/server/trenitalia/source.py +++ b/server/trenitalia/source.py @@ -21,7 +21,7 @@ class Trenitalia(Source): def __init__(self, session, typesense, location='', force_update_stations=False): self.location = location - super().__init__('treni', '🚆', session, typesense) + super().__init__('venezia-treni', '🚆', session, typesense) if force_update_stations or self.session.query(Station).filter_by(source=self.name, active=True).count() == 0 or \ self.session.query(Stop).filter_by(source=self.name, active=True).count() == 0: diff --git a/tgbot/handlers.py b/tgbot/handlers.py index d8a01ff..01d8ba5 100644 --- a/tgbot/handlers.py +++ b/tgbot/handlers.py @@ -163,7 +163,7 @@ async def search_stop(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int trans = gettext.translation('messages', localedir, languages=[lang]) _ = trans.gettext - db_file: Source = thismodule.sources[context.user_data.get('transport_type', 'aut')] + db_file: Source = thismodule.sources[context.user_data.get('transport_type', 'venezia-aut')] limit = 4