Files

81 lines
1.7 KiB
Python

import logging
import requests
from PyQt6 import QtCore
logger = logging.getLogger("gotify-tray")
class AttributeDict(dict):
def __init__(self, *args, **kwargs):
super(AttributeDict, self).__init__(*args, **kwargs)
self.__dict__ = self
class GotifyApplicationModel(AttributeDict):
description: str
id: int
image: str
internal: bool
name: str
token: str
class GotifyPagingModel(AttributeDict):
limit: int
next: str | None = None
since: int
size: int
class GotifyMessageModel(AttributeDict):
appid: int
date: QtCore.QDateTime
extras: dict | None = None
id: int
message: str
priority: int | None = None
title: str | None = None
def __init__(self, d: dict, *args, **kwargs):
d.update(
{"date": QtCore.QDateTime.fromString(d["date"], format=QtCore.Qt.DateFormat.ISODate).toLocalTime()}
)
super(GotifyMessageModel, self).__init__(d, *args, **kwargs)
class GotifyPagedMessagesModel(AttributeDict):
messages: list[GotifyMessageModel]
paging: GotifyPagingModel
class GotifyHealthModel(AttributeDict):
database: str
health: str
class GotifyVersionModel(AttributeDict):
buildDate: str
commit: str
version: str
class GotifyErrorModel(AttributeDict):
error: str
errorCode: int
errorDescription: str
def __init__(self, response: requests.Response, *args, **kwargs):
try:
j = response.json()
except ValueError:
j = {
"error": "unknown",
"errorCode": response.status_code,
"errorDescription": "",
}
super(GotifyErrorModel, self).__init__(j, *args, **kwargs)