38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
from dataclasses import dataclass, field
|
|
|
|
URL = str
|
|
|
|
|
|
@dataclass
|
|
class NotificationAction:
|
|
# A unique identifier for the action
|
|
action: str
|
|
# The title to show with the action
|
|
title: str
|
|
# Where to navigate to when clicked.
|
|
navigate: URL | None = None
|
|
|
|
|
|
@dataclass
|
|
class Notification:
|
|
"""
|
|
Details to show in a notification
|
|
|
|
Much of the data here is intended to match the arguments to the [showNotification](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification)
|
|
Web API, but this content is ideally displayable in other contexts (for example in Email or RSS)
|
|
"""
|
|
|
|
# The main title content to show
|
|
title: str
|
|
# The content of the notification
|
|
content: str
|
|
|
|
# The UNIX timestamp in milliseconds since the epoch associated with this notification
|
|
timestamp: int
|
|
# A list of actions included with this notification
|
|
actions: list[NotificationAction] = field(default_factory=list)
|
|
# The location of an icon to show as the icon for this notification
|
|
icon: URL | None = None
|
|
|
|
# The location of an image associated with this notification
|
|
image: URL | None = None
|