Add the /plain hook

This commit is contained in:
Théophile Bastian 2023-08-14 09:21:49 +02:00
parent f880feccb3
commit 46a83d1c23
2 changed files with 22 additions and 1 deletions

View file

@ -53,3 +53,24 @@ def alertmanager(recipient=None):
signal.signal_send(recipient_nums, msg) signal.signal_send(recipient_nums, msg)
return "OK", 200 return "OK", 200
@app.route("/plain", methods=["POST"])
def plain():
"""Send a message through Signal, plain POST args.
Expects:
* message: plaintext message to be sent;
* recipient: ID of recipient. If absent, default recipient is used.
"""
if "message" not in request.form:
return "Missing message", 400
recipient = request.form.get("recipient", configuration.DEFAULT_RECIPIENT)
try:
recipient_num = configuration.RECIPIENTS[recipient]
except KeyError:
return "Unauthorized recipient", 400
signal.signal_send(recipient_num, request.form["message"])
return "OK", 200

View file

@ -5,7 +5,7 @@ from gi.repository.GLib import GError
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def signal_send(recipients, message): def signal_send(recipients: list[str], message: str) -> None:
try: try:
bus = SystemBus() bus = SystemBus()
signal_bus = bus.get("org.asamk.Signal") signal_bus = bus.get("org.asamk.Signal")