Libraries: Python: Add Notifications class

pull/28/head
Marc Egerton 2021-04-08 16:48:40 +01:00
parent ee88990297
commit e78d0adc03
No known key found for this signature in database
GPG Key ID: A11F9CA36DF845E0
2 changed files with 44 additions and 0 deletions

View File

@ -0,0 +1 @@
from pineapple.notifications.notifications import Notifications

View File

@ -0,0 +1,43 @@
import socket
from pineapple.helpers import json_to_bytes
class Notifications:
INFO = 0
WARN = 1
ERROR = 2
OTHER = 3
SUCCESS = 4
def send_notification(self, level: int, message: str, module_name: str) -> bool:
"""
Send a notification over the WiFi Pineapples notification socket
:param level: Notification level
:param message: Notification message
:return: bool
"""
notify_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
notify_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
notify_socket_path = '/tmp/notifications.sock'
module_notification = {'level': level, 'message': message, 'module_name': module_name}
socket_message = json_to_bytes(module_notification)
status = True
try:
notify_socket.connect(notify_socket_path)
except ValueError:
return False
try:
notify_socket.sendall(socket_message)
except ValueError:
status = False
notify_socket.close()
return status