remove python-dateutil dependency in favor of QDateTime
This commit is contained in:
@@ -1,20 +1,13 @@
|
|||||||
import datetime
|
|
||||||
from dateutil.parser import isoparse
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
from PyQt6 import QtCore
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger("gotify-tray")
|
logger = logging.getLogger("gotify-tray")
|
||||||
|
|
||||||
|
|
||||||
try:
|
|
||||||
local_timezone = datetime.datetime.utcnow().astimezone().tzinfo
|
|
||||||
except Exception as e:
|
|
||||||
logger.error(f"gotify.models.local_timezone error: {e}")
|
|
||||||
local_timezone = None
|
|
||||||
|
|
||||||
|
|
||||||
class AttributeDict(dict):
|
class AttributeDict(dict):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(AttributeDict, self).__init__(*args, **kwargs)
|
super(AttributeDict, self).__init__(*args, **kwargs)
|
||||||
@@ -39,7 +32,7 @@ class GotifyPagingModel(AttributeDict):
|
|||||||
|
|
||||||
class GotifyMessageModel(AttributeDict):
|
class GotifyMessageModel(AttributeDict):
|
||||||
appid: int
|
appid: int
|
||||||
date: datetime.datetime
|
date: QtCore.QDateTime
|
||||||
extras: dict | None = None
|
extras: dict | None = None
|
||||||
id: int
|
id: int
|
||||||
message: str
|
message: str
|
||||||
@@ -48,7 +41,7 @@ class GotifyMessageModel(AttributeDict):
|
|||||||
|
|
||||||
def __init__(self, d: dict, *args, **kwargs):
|
def __init__(self, d: dict, *args, **kwargs):
|
||||||
d.update(
|
d.update(
|
||||||
{"date": isoparse(d["date"]).astimezone(local_timezone)}
|
{"date": QtCore.QDateTime.fromString(d["date"], format=QtCore.Qt.DateFormat.ISODate).toLocalTime()}
|
||||||
)
|
)
|
||||||
super(GotifyMessageModel, self).__init__(d, *args, **kwargs)
|
super(GotifyMessageModel, self).__init__(d, *args, **kwargs)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import getpass
|
import getpass
|
||||||
import locale
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
@@ -407,8 +406,6 @@ def start_gui():
|
|||||||
|
|
||||||
init_logger(logger)
|
init_logger(logger)
|
||||||
|
|
||||||
locale.setlocale(locale.LC_TIME, "")
|
|
||||||
|
|
||||||
# prevent multiple instances
|
# prevent multiple instances
|
||||||
if (app.acquire_lock() or "--no-lock" in sys.argv) and verify_server():
|
if (app.acquire_lock() or "--no-lock" in sys.argv) and verify_server():
|
||||||
app.init_ui()
|
app.init_ui()
|
||||||
|
|||||||
@@ -38,7 +38,12 @@ class MessageWidget(QtWidgets.QWidget, Ui_Form):
|
|||||||
|
|
||||||
# Display message contents
|
# Display message contents
|
||||||
self.label_title.setText(message.title)
|
self.label_title.setText(message.title)
|
||||||
self.label_date.setText(message.date.strftime("%x, %X" if settings.value("locale", type=bool) else "%Y-%m-%d, %H:%M"))
|
|
||||||
|
if settings.value("locale", type=bool):
|
||||||
|
date_str = QtCore.QLocale.system().toString(message.date, QtCore.QLocale.FormatType.ShortFormat)
|
||||||
|
else:
|
||||||
|
date_str = message.date.toString("yyyy-MM-dd, hh:mm")
|
||||||
|
self.label_date.setText(date_str)
|
||||||
|
|
||||||
if message.get("extras", {}).get("client::display", {}).get("contentType") == "text/markdown":
|
if message.get("extras", {}).get("client::display", {}).get("contentType") == "text/markdown":
|
||||||
self.label_message.setTextFormat(QtCore.Qt.TextFormat.MarkdownText)
|
self.label_message.setTextFormat(QtCore.Qt.TextFormat.MarkdownText)
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
requests==2.31.0
|
requests==2.31.0
|
||||||
websocket-client==1.5.2
|
websocket-client==1.5.2
|
||||||
pyqt6==6.5.1
|
pyqt6==6.5.1
|
||||||
python-dateutil==2.8.2
|
|
||||||
|
|||||||
2
setup.py
2
setup.py
@@ -15,7 +15,7 @@ with open("version.txt", "r") as f:
|
|||||||
|
|
||||||
# What packages are required for this module to be executed?
|
# What packages are required for this module to be executed?
|
||||||
REQUIRED = [
|
REQUIRED = [
|
||||||
'requests==2.31.0', 'pyqt6==6.5.1', 'websocket-client==1.5.2', 'python-dateutil==2.8.2'
|
'requests==2.31.0', 'pyqt6==6.5.1', 'websocket-client==1.5.2'
|
||||||
]
|
]
|
||||||
|
|
||||||
# What packages are optional?
|
# What packages are optional?
|
||||||
|
|||||||
Reference in New Issue
Block a user