mirror of
https://github.com/StefBuwalda/dashboard_test.git
synced 2025-10-30 03:09:59 +00:00
Added an ID field to the API. Added a fetch script that updates the webpage every second.
71 lines
1.9 KiB
Python
71 lines
1.9 KiB
Python
from typing import Any, Optional
|
|
|
|
|
|
class service:
|
|
id = int
|
|
url: str
|
|
status: Optional[int]
|
|
online: bool
|
|
public: bool
|
|
error: Optional[str]
|
|
ping: Optional[int]
|
|
icon_filetype: str
|
|
|
|
def __init__(
|
|
self,
|
|
id: int,
|
|
url: str = "",
|
|
label: str = "",
|
|
public: bool = True,
|
|
icon_filetype: str = "svg",
|
|
):
|
|
self.id = id
|
|
self.url = url
|
|
self.public = public
|
|
self.label = label
|
|
|
|
self.online = False
|
|
self.status = None
|
|
self.error = None
|
|
self.ping = None
|
|
self.icon_filetype = icon_filetype
|
|
|
|
def to_dict(self) -> dict[str, Any]:
|
|
return {
|
|
"url": self.url,
|
|
"status": self.status,
|
|
"public": self.public,
|
|
"online": self.online,
|
|
"error": self.error,
|
|
"ping": self.ping,
|
|
"label": self.label,
|
|
"icon_filetype": self.icon_filetype,
|
|
"id": self.id,
|
|
}
|
|
|
|
def set_status(self, status: Optional[int]):
|
|
self.status = status
|
|
|
|
def set_online(self, b: bool):
|
|
self.online = b
|
|
|
|
def set_error(self, s: Optional[str]):
|
|
self.error = s
|
|
|
|
def set_ping(self, n: Optional[int]):
|
|
self.ping = n
|
|
|
|
|
|
services: list[service] = [
|
|
service(0, "https://git.ihatemen.uk/", "Gitea"),
|
|
service(1, "https://plex.ihatemen.uk/", "Plex"),
|
|
service(2, "https://truenas.local/", "TrueNAS", False),
|
|
service(3, "https://cloud.ihatemen.uk/", "NextCloud"),
|
|
service(4, "https://request.ihatemen.uk/", "Overseerr"),
|
|
service(5, "https://id.ihatemen.uk/", "PocketID"),
|
|
service(6, "http://tautulli.local", "Tautulli", False),
|
|
service(7, "https://transmission.local", "Transmission", False),
|
|
service(8, "https://vault.ihatemen.uk", "Vault Warden"),
|
|
service(9, "https://nginx.local", "Nginx (NPM)", False),
|
|
]
|