mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-11-30 08:20:21 +00:00
fcf3b50f69
Co-authored-by: あく <alleteam@gmail.com>
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
import argparse
|
|
import logging
|
|
from firebase_admin import messaging, credentials, initialize_app
|
|
|
|
|
|
class FirebaseNotifications:
|
|
def __init__(self, service_account_file):
|
|
try:
|
|
cred = credentials.Certificate(service_account_file)
|
|
self.firebase_app = initialize_app(cred)
|
|
except Exception as e:
|
|
logging.exception(e)
|
|
raise e
|
|
|
|
def send(self, title, body, condition):
|
|
try:
|
|
message = messaging.Message(
|
|
notification=messaging.Notification(title=title, body=body),
|
|
condition=condition,
|
|
)
|
|
messaging.send(message, app=self.firebase_app)
|
|
except Exception as e:
|
|
logging.exception(e)
|
|
raise e
|
|
|
|
|
|
def parse_args():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--token_file", help="Firebase token file", required=True)
|
|
parser.add_argument(
|
|
"--version", help="Firmware version to notify with", required=True
|
|
)
|
|
args = parser.parse_args()
|
|
return args
|
|
|
|
|
|
if __name__ == "__main__":
|
|
args = parse_args()
|
|
notification = FirebaseNotifications(args.token_file)
|
|
notification.send(
|
|
title="Firmware Update Available",
|
|
body=f"New firmware version is ready to install: {args.version}",
|
|
condition="'flipper_update_firmware_release' in topics",
|
|
)
|