74 lines
2.9 KiB
Python
74 lines
2.9 KiB
Python
import json
|
|
import os
|
|
|
|
|
|
def env(name, default=None):
|
|
value = os.getenv(name)
|
|
return default if value is None or value == "" else value
|
|
|
|
|
|
def env_float(name, default):
|
|
try:
|
|
return float(env(name, default))
|
|
except (TypeError, ValueError):
|
|
return float(default)
|
|
|
|
|
|
def env_int(name, default):
|
|
try:
|
|
return int(env(name, default))
|
|
except (TypeError, ValueError):
|
|
return int(default)
|
|
|
|
|
|
def env_json(name, default):
|
|
raw = env(name)
|
|
if raw is None:
|
|
return default
|
|
try:
|
|
return json.loads(raw)
|
|
except json.JSONDecodeError:
|
|
return default
|
|
|
|
|
|
class Config:
|
|
SECRET_KEY = env("SECRET_KEY", "dev-secret")
|
|
SQLALCHEMY_DATABASE_URI = env("DATABASE_URL", "sqlite:///fueltrack.db")
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
|
|
HTTP_TIMEOUT_SECONDS = env_float("HTTP_TIMEOUT_SECONDS", 30)
|
|
ORLEN_TIMEOUT_SECONDS = env_float("ORLEN_TIMEOUT_SECONDS", 15)
|
|
URE_TIMEOUT_SECONDS = env_float("URE_TIMEOUT_SECONDS", 45)
|
|
|
|
ORLEN_WHOLESALE_URL = env("ORLEN_WHOLESALE_URL", "https://tool.orlen.pl/api/wholesalefuelprices/ByProduct")
|
|
ORLEN_LPG_URL = env("ORLEN_LPG_URL", "https://tool.orlen.pl/api/autogasprices")
|
|
ORLEN_LPG_BY_DATE_URL = env("ORLEN_LPG_BY_DATE_URL", "https://tool.orlen.pl/api/autogasprices/ByDate")
|
|
URE_STATIONS_URL = env("URE_STATIONS_URL", "https://api.ure.gov.pl/api/InfrastructureFuelStation")
|
|
|
|
BOOTSTRAP_JS_URL = env("BOOTSTRAP_JS_URL", "https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js")
|
|
CHOICES_CSS_URL = env("CHOICES_CSS_URL", "https://cdn.jsdelivr.net/npm/choices.js@11.1.0/public/assets/styles/choices.min.css")
|
|
CHOICES_JS_URL = env("CHOICES_JS_URL", "https://cdn.jsdelivr.net/npm/choices.js@11.1.0/public/assets/scripts/choices.min.js")
|
|
CHART_JS_URL = env("CHART_JS_URL", "https://cdn.jsdelivr.net/npm/chart.js@4.5.0/dist/chart.umd.min.js")
|
|
SOCKET_IO_JS_URL = env("SOCKET_IO_JS_URL", "https://cdn.socket.io/4.8.1/socket.io.min.js")
|
|
|
|
THEME_BOOTSTRAP_URL = env("THEME_BOOTSTRAP_URL", "https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css")
|
|
THEME_FLATLY_URL = env("THEME_FLATLY_URL", "https://cdn.jsdelivr.net/npm/bootswatch@5.3.7/dist/flatly/bootstrap.min.css")
|
|
THEME_DARKLY_URL = env("THEME_DARKLY_URL", "https://cdn.jsdelivr.net/npm/bootswatch@5.3.7/dist/darkly/bootstrap.min.css")
|
|
THEME_PULSE_URL = env("THEME_PULSE_URL", "https://cdn.jsdelivr.net/npm/bootswatch@5.3.7/dist/pulse/bootstrap.min.css")
|
|
|
|
STATION_BRAND_ALIASES = env_json("STATION_BRAND_ALIASES_JSON", {
|
|
"ORLEN": "ORLEN",
|
|
"HIL-GAZ": "HIL-GAZ",
|
|
"HILL-GAZ": "HIL-GAZ",
|
|
"BP ": "BP",
|
|
"BP EUROPA": "BP",
|
|
"SHELL": "Shell",
|
|
"MOL POLSKA": "MOL",
|
|
"CIRCLE K": "Circle K",
|
|
"ANWIM": "MOYA",
|
|
"AMIC": "AMIC Energy",
|
|
"LOTOS": "LOTOS",
|
|
"AVIA": "AVIA",
|
|
"PIEPRZYK": "Pieprzyk",
|
|
})
|