feat: Add desktop notification functionality with icon
Adds functionality to send desktop notifications with an icon. The `notify()` function now accepts an optional `urgency` parameter and a `timeout` parameter. The notification is sent using the `notify-send` command and includes an icon. The icon used is the "parcel-delivery-icon.webp" file located in the assets folder.
This commit is contained in:
parent
69e5023994
commit
3a36b18d65
3 changed files with 14 additions and 2 deletions
3
assets/parcel-delivery-icon.txt
Normal file
3
assets/parcel-delivery-icon.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
Icon taken from uxwing.com: https://uxwing.com/parcel-delivery-icon/
|
||||
|
||||
License for the icon: https://uxwing.com/license/
|
BIN
assets/parcel-delivery-icon.webp
Normal file
BIN
assets/parcel-delivery-icon.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.5 KiB |
13
trackbert.py
13
trackbert.py
|
@ -7,6 +7,7 @@ import subprocess
|
|||
import argparse
|
||||
import logging
|
||||
|
||||
from pathlib import Path
|
||||
from typing import Tuple, Never
|
||||
|
||||
# Print date and time and level with message
|
||||
|
@ -16,7 +17,7 @@ logging.basicConfig(
|
|||
datefmt="%Y-%m-%d %H:%M:%S",
|
||||
)
|
||||
|
||||
def notify(title: str, message: str):
|
||||
def notify(title: str, message: str, urgency: str = "normal", timeout: int = 5000):
|
||||
"""Send a desktop notification
|
||||
|
||||
If notify-send is not found, this function will do nothing.
|
||||
|
@ -32,9 +33,12 @@ def notify(title: str, message: str):
|
|||
subprocess.run(
|
||||
[
|
||||
"notify-send",
|
||||
"-a", "trackbert",
|
||||
"-u", urgency,
|
||||
"-t", str(timeout),
|
||||
"-i", str(Path(__file__).parent / "assets" / "parcel-delivery-icon.webp"),
|
||||
title,
|
||||
message,
|
||||
# TODO: Look into other options, like adding an icon
|
||||
]
|
||||
)
|
||||
|
||||
|
@ -256,9 +260,14 @@ if __name__ == "__main__":
|
|||
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
# Shipment creation arguments
|
||||
parser.add_argument("--tracking-number", "-n", type=str, required=False)
|
||||
parser.add_argument("--carrier", "-c", type=str, required=False)
|
||||
parser.add_argument("--description", "-d", type=str, required=False)
|
||||
|
||||
# Notification arguments
|
||||
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# If the user specified a tracking number and carrier, create a shipment and exit
|
||||
|
|
Loading…
Reference in a new issue