Skip to content
Snippets Groups Projects
Commit eaac5da4 authored by nimrod's avatar nimrod
Browse files

Actual implementation.

Remove runamel.yaml, json output is available and better.
parent 4b7ba4a5
No related branches found
No related tags found
No related merge requests found
Pipeline #1170 passed
"""Anonymous push notification service for Nextcloud.""" """Anonymous push notification service for Nextcloud."""
# pylint: disable=import-error # pylint: disable=import-error
import json
import os import os
import docker import docker
from flask import Flask, request from flask import Flask, request
from ruamel.yaml import YAML
app = Flask(__name__) app = Flask(__name__)
client = docker.from_env() client = docker.from_env()
yaml = YAML(typ="safe")
USERNAME = os.getenv("NC_USERNAME", "nimrod") NAME = os.getenv("NC_NAME", "Nimrod Adar")
CONTAINER_NAME = os.getenv("NC_CONTAINER", "nextcloud_nextcloud_1") CONTAINER_NAME = os.getenv("NC_CONTAINER", "nextcloud_nextcloud_1")
...@@ -35,7 +34,32 @@ def send_message(): ...@@ -35,7 +34,32 @@ def send_message():
message = data message = data
else: else:
message = request.args["message"] message = request.args["message"]
return message
# result = container.exec_run( for c in client.containers.list(): # pylint: disable=invalid-name
# f"""./occ notification:generate -- {user_id} "{message}"""") if c.name == CONTAINER_NAME:
container = c
break
else:
raise RuntimeError(f"Failed to find container {CONTAINER_NAME}.")
users = json.loads(
container.exec_run(
"./occ user:list --output json --info", user="www-data"
).output
)
for (k, v) in users.items(): # pylint: disable=invalid-name
if v["display_name"] == NAME:
uid = k
break
else:
raise RuntimeError(f"Failed to find user {NAME}.")
result = container.exec_run(
f"""./occ notification:generate -- {uid} '{message}'""",
user="www-data",
)
if result.exit_code != 0:
raise RuntimeError(result.output.decode())
return message
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment