added tools and bugfix
This commit is contained in:
@@ -27,7 +27,7 @@ spec:
|
||||
spec:
|
||||
containers:
|
||||
- name: glance-helper
|
||||
image: python:3.12-slim
|
||||
image: python:3.12-bookworm
|
||||
imagePullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: IDOKEP_URL
|
||||
@@ -39,21 +39,29 @@ spec:
|
||||
- name: TANDOOR_PUBLIC_URL
|
||||
value: https://tandoor.dooplex.hu
|
||||
- name: TANDOOR_TOKEN
|
||||
value: 'tda_8a8b169c_5d1f_4962_83a2_0f2719c7d61a'
|
||||
value: tda_8a8b169c_5d1f_4962_83a2_0f2719c7d61a
|
||||
- name: GLANCE_HELPER_PUBLIC_URL
|
||||
value: https://glance-helper.dooplex.hu
|
||||
- name: DATA_DIR
|
||||
value: /data
|
||||
- name: GLANCE_HELPER_KEY
|
||||
value: 'oplQqnLnJK2vErRVYJpvVUcSDBOSbCHZSbsYY2bwSifgTMfT'
|
||||
value: oplQqnLnJK2vErRVYJpvVUcSDBOSbCHZSbsYY2bwSifgTMfT
|
||||
ports:
|
||||
- containerPort: 8000
|
||||
command:
|
||||
- /bin/sh
|
||||
- -lc
|
||||
args:
|
||||
- 'pip install --no-cache-dir fastapi uvicorn requests beautifulsoup4 prometheus-client
|
||||
&&
|
||||
- 'set -eux;
|
||||
|
||||
apt-get update;
|
||||
|
||||
apt-get install -y --no-install-recommends curl ca-certificates iputils-ping
|
||||
dnsutils;
|
||||
|
||||
rm -rf /var/lib/apt/lists/*;
|
||||
|
||||
pip install --no-cache-dir fastapi uvicorn requests beautifulsoup4 prometheus-client;
|
||||
|
||||
python -c "import uvicorn; uvicorn.run(''app:APP'', host=''0.0.0.0'', port=8000)"
|
||||
|
||||
@@ -79,24 +87,31 @@ metadata:
|
||||
namespace: glance-system
|
||||
data:
|
||||
app.py: "import os\nimport time\nimport re\nfrom typing import List, Dict, Any,\
|
||||
\ Optional\n\nimport json\nimport random\nfrom datetime import datetime\nfrom zoneinfo import ZoneInfo\nfrom pathlib import Path\nfrom urllib.parse import urlparse, urlunparse\n\nimport requests\nfrom bs4 import BeautifulSoup\nfrom fastapi import\
|
||||
\ FastAPI, Response, Request, HTTPException, Query\nfrom fastapi.responses import\
|
||||
\ JSONResponse, RedirectResponse\nfrom prometheus_client import Counter, Histogram,\
|
||||
\ Gauge, generate_latest, CONTENT_TYPE_LATEST\n\nAPP = FastAPI()\n\nIDOKEP_URL\
|
||||
\ = os.getenv(\n \"IDOKEP_URL\",\n \"https://www.idokep.hu/idojaras/Budapest%20VIII.%20ker\"\
|
||||
\ Optional\n\nimport json\nimport random\nfrom datetime import datetime\nfrom\
|
||||
\ zoneinfo import ZoneInfo\nfrom pathlib import Path\nfrom urllib.parse import\
|
||||
\ urlparse, urlunparse\n\nimport requests\nfrom bs4 import BeautifulSoup\nfrom\
|
||||
\ fastapi import FastAPI, Response, Request, HTTPException, Query\nfrom fastapi.responses\
|
||||
\ import JSONResponse, RedirectResponse\nfrom prometheus_client import Counter,\
|
||||
\ Histogram, Gauge, generate_latest, CONTENT_TYPE_LATEST\n\nAPP = FastAPI()\n\n\
|
||||
IDOKEP_URL = os.getenv(\n \"IDOKEP_URL\",\n \"https://www.idokep.hu/idojaras/Budapest%20VIII.%20ker\"\
|
||||
,\n)\nPLACE_NAME = os.getenv(\"PLACE_NAME\", \"Budapest VIII. ker\")\nSOURCE_NAME\
|
||||
\ = \"Id\u0151k\xE9p\"\n\nUA = os.getenv(\n \"USER_AGENT\",\n \"Mozilla/5.0\
|
||||
\ (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome Safari\",\n\
|
||||
)\n\n# Prometheus metrics (optional)\nSCRAPES = Counter(\"idokep_scrapes_total\"\
|
||||
, \"Total Id\u0151k\xE9p scrapes\", [\"place\", \"status\"])\nSCRAPE_SECONDS =\
|
||||
\ Histogram(\"idokep_scrape_seconds\", \"Id\u0151k\xE9p scrape duration in seconds\"\
|
||||
, [\"place\"])\nCURRENT_TEMP = Gauge(\"idokep_current_temp_c\", \"Current temperature\
|
||||
\ in Celsius\", [\"place\"])\nDAILY_TMIN = Gauge(\"idokep_daily_tmin_c\", \"Daily\
|
||||
\ minimum temperature in Celsius\", [\"place\", \"dow\"])\nDAILY_TMAX = Gauge(\"\
|
||||
idokep_daily_tmax_c\", \"Daily maximum temperature in Celsius\", [\"place\", \"\
|
||||
dow\"])\nHOURLY_TEMP = Gauge(\"idokep_hourly_temp_c\", \"Hourly temperature in\
|
||||
\ Celsius\", [\"place\", \"time\"])\n\n\ndef _abs_url(maybe_relative: Optional[str])\
|
||||
\ -> Optional[str]:\n if not maybe_relative:\n return None\n if maybe_relative.startswith(\"\
|
||||
)\n\n# Glance-helper config\nDATA_DIR = os.getenv(\"DATA_DIR\", \"/data\")\nTANDOOR_INTERNAL_URL\
|
||||
\ = os.getenv(\"TANDOOR_INTERNAL_URL\", \"\").rstrip(\"/\")\nTANDOOR_PUBLIC_URL\
|
||||
\ = os.getenv(\"TANDOOR_PUBLIC_URL\", \"\").rstrip(\"/\")\nGLANCE_HELPER_PUBLIC_URL\
|
||||
\ = os.getenv(\"GLANCE_HELPER_PUBLIC_URL\", \"\").rstrip(\"/\")\nGLANCE_HELPER_KEY\
|
||||
\ = os.getenv(\"GLANCE_HELPER_KEY\", \"\")\n\n\n# Prometheus metrics (optional)\n\
|
||||
SCRAPES = Counter(\"idokep_scrapes_total\", \"Total Id\u0151k\xE9p scrapes\",\
|
||||
\ [\"place\", \"status\"])\nSCRAPE_SECONDS = Histogram(\"idokep_scrape_seconds\"\
|
||||
, \"Id\u0151k\xE9p scrape duration in seconds\", [\"place\"])\nCURRENT_TEMP =\
|
||||
\ Gauge(\"idokep_current_temp_c\", \"Current temperature in Celsius\", [\"place\"\
|
||||
])\nDAILY_TMIN = Gauge(\"idokep_daily_tmin_c\", \"Daily minimum temperature in\
|
||||
\ Celsius\", [\"place\", \"dow\"])\nDAILY_TMAX = Gauge(\"idokep_daily_tmax_c\"\
|
||||
, \"Daily maximum temperature in Celsius\", [\"place\", \"dow\"])\nHOURLY_TEMP\
|
||||
\ = Gauge(\"idokep_hourly_temp_c\", \"Hourly temperature in Celsius\", [\"place\"\
|
||||
, \"time\"])\n\n\ndef _abs_url(maybe_relative: Optional[str]) -> Optional[str]:\n\
|
||||
\ if not maybe_relative:\n return None\n if maybe_relative.startswith(\"\
|
||||
http://\") or maybe_relative.startswith(\"https://\"):\n return maybe_relative\n\
|
||||
\ # Id\u0151k\xE9p uses /assets/... paths\n return \"https://www.idokep.hu\"\
|
||||
\ + maybe_relative\n\n\ndef _to_int_temp(s: str) -> Optional[float]:\n if not\
|
||||
|
||||
Reference in New Issue
Block a user