From af6a0a8c11333d17ca8575d34a1013085ccfa751 Mon Sep 17 00:00:00 2001 From: Ivan Habunek Date: Thu, 19 Jan 2023 16:13:55 +0100 Subject: [PATCH] Add pulapromet --- lib/triglav/public_transport.ex | 4 ++++ lib/triglav/public_transport/import_gtfs.ex | 8 ++++++++ lib/triglav/public_transport/operators.ex | 9 +++++++++ 3 files changed, 21 insertions(+) diff --git a/lib/triglav/public_transport.ex b/lib/triglav/public_transport.ex index 64faa0d..791b8d4 100644 --- a/lib/triglav/public_transport.ex +++ b/lib/triglav/public_transport.ex @@ -15,6 +15,7 @@ defmodule Triglav.PublicTransport do defdelegate import_gpp_osijek(opts \\ []), to: Triglav.PublicTransport.ImportGtfs defdelegate import_hzpp(opts \\ []), to: Triglav.PublicTransport.ImportGtfs defdelegate import_jadrolinija(opts \\ []), to: Triglav.PublicTransport.ImportGtfs + defdelegate import_pulapromet(opts \\ []), to: Triglav.PublicTransport.ImportGtfs defdelegate import_zet(opts \\ []), to: Triglav.PublicTransport.ImportGtfs @doc """ @@ -64,6 +65,8 @@ defmodule Triglav.PublicTransport do {:ok, {feed, true}} <- fun.(opts) do generate_mappings(feed.id) generate_errors(feed.id) + else + error -> Logger.error("Failed updating #{operator.name()}: #{inspect(error)}") end end @@ -74,6 +77,7 @@ defmodule Triglav.PublicTransport do "zet" -> {:ok, &import_zet/1} "gpp_osijek" -> {:ok, &import_gpp_osijek/1} "jadrolinija" -> {:ok, &import_jadrolinija/1} + "pulapromet" -> {:ok, &import_pulapromet/1} _ -> {:error, :unknown_operator} end end diff --git a/lib/triglav/public_transport/import_gtfs.ex b/lib/triglav/public_transport/import_gtfs.ex index ad70dde..33d3920 100644 --- a/lib/triglav/public_transport/import_gtfs.ex +++ b/lib/triglav/public_transport/import_gtfs.ex @@ -48,6 +48,14 @@ defmodule Triglav.PublicTransport.ImportGtfs do import_from_archive(operator, target, opts) end + def import_pulapromet(opts \\ []) do + operator = Operators.pulapromet() + url = "https://b2b.promet-info.hr/dc/b2b.gtfs.pulapromet" + target = Triglav.tmp_dir!() <> "/#{operator.slug}.zip" + Npt.download!(url, target) + import_from_archive(operator, target, opts) + end + defp import_from_url(operator, url, opts) do target = Triglav.tmp_dir!() path = Http.download!(url, target, overwrite: true, filename: "#{operator.slug}.zip") diff --git a/lib/triglav/public_transport/operators.ex b/lib/triglav/public_transport/operators.ex index 31893ae..da25965 100644 --- a/lib/triglav/public_transport/operators.ex +++ b/lib/triglav/public_transport/operators.ex @@ -40,6 +40,15 @@ defmodule Triglav.PublicTransport.Operators do }) end + def pulapromet() do + get_or_insert!(%Operator{ + name: "Pulapromet", + ref: "Pulapromet", + slug: "pulapromet", + wikidata_id: "Q12640747" + }) + end + def zet() do get_or_insert!(%Operator{ name: "Zagrebački električni tramvaj", -- 2.38.4