mirror of
https://github.com/FAUSheppy/atlantis-event-dispatcher
synced 2025-12-09 07:48:33 +01:00
Compare commits
3 Commits
85f72290b8
...
6e2e5e73da
| Author | SHA1 | Date | |
|---|---|---|---|
| 6e2e5e73da | |||
| 2305bc9789 | |||
| cdb4a8aeb9 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,3 +5,5 @@ instance/
|
|||||||
__pycache__/
|
__pycache__/
|
||||||
signal_targets.txt
|
signal_targets.txt
|
||||||
sqlite.db
|
sqlite.db
|
||||||
|
substitutions.yaml
|
||||||
|
test.env
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ RUN python3 -m pip install --no-cache-dir --break-system-packages -r req.txt
|
|||||||
|
|
||||||
# precreate database directory for mount (will otherwise be created at before_first_request)
|
# precreate database directory for mount (will otherwise be created at before_first_request)
|
||||||
COPY ./ .
|
COPY ./ .
|
||||||
RUN mkdir /app/instance/
|
RUN mkdir -p /app/instance/
|
||||||
|
|
||||||
EXPOSE 5000/tcp
|
EXPOSE 5000/tcp
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import subprocess
|
|||||||
import os
|
import os
|
||||||
import datetime
|
import datetime
|
||||||
import secrets
|
import secrets
|
||||||
|
import yaml
|
||||||
|
|
||||||
import ldaptools
|
import ldaptools
|
||||||
import messagetools
|
import messagetools
|
||||||
@@ -27,6 +28,16 @@ db = SQLAlchemy(app)
|
|||||||
|
|
||||||
BAD_DISPATCH_ACCESS_TOKEN = "Invalid or missing dispatch-access-token parameter in URL"
|
BAD_DISPATCH_ACCESS_TOKEN = "Invalid or missing dispatch-access-token parameter in URL"
|
||||||
|
|
||||||
|
def _apply_substitution(string):
|
||||||
|
|
||||||
|
if not string:
|
||||||
|
return string
|
||||||
|
|
||||||
|
for replace, match in app.config["SUBSTITUTIONS"].items():
|
||||||
|
string = string.replace(match, replace)
|
||||||
|
|
||||||
|
return string
|
||||||
|
|
||||||
class WebHookPaths(db.Model):
|
class WebHookPaths(db.Model):
|
||||||
|
|
||||||
__tablename__ = "webhook_paths"
|
__tablename__ = "webhook_paths"
|
||||||
@@ -85,8 +96,8 @@ class DispatchObject(db.Model):
|
|||||||
"timestamp" : self.timestamp,
|
"timestamp" : self.timestamp,
|
||||||
"phone" : self.phone,
|
"phone" : self.phone,
|
||||||
"email" : self.email,
|
"email" : self.email,
|
||||||
"title" : self.title,
|
"title" : _apply_substitution(self.title),
|
||||||
"message" : self.message,
|
"message" : _apply_substitution(self.message),
|
||||||
"uuid" : self.dispatch_secret,
|
"uuid" : self.dispatch_secret,
|
||||||
"method" : self.method,
|
"method" : self.method,
|
||||||
"error" : self.dispatch_error,
|
"error" : self.dispatch_error,
|
||||||
@@ -414,6 +425,15 @@ def create_app():
|
|||||||
app.config["SETTINGS_ACCESS_TOKEN"] = os.environ["SETTINGS_ACCESS_TOKEN"]
|
app.config["SETTINGS_ACCESS_TOKEN"] = os.environ["SETTINGS_ACCESS_TOKEN"]
|
||||||
app.config["DISPATCH_ACCESS_TOKEN"] = os.environ["DISPATCH_ACCESS_TOKEN"]
|
app.config["DISPATCH_ACCESS_TOKEN"] = os.environ["DISPATCH_ACCESS_TOKEN"]
|
||||||
|
|
||||||
|
substitution_config_file = os.environ.get("SUBSTITUTION_MAP") or "substitutions.yaml"
|
||||||
|
app.config["SUBSTITUTIONS"] = {}
|
||||||
|
if os.path.isfile(substitution_config_file):
|
||||||
|
with open(substitution_config_file) as f:
|
||||||
|
app.config["SUBSTITUTIONS"] = yaml.safe_load(f)
|
||||||
|
|
||||||
|
print("Loaded subs:", substitution_config_file, app.config["SUBSTITUTIONS"], file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Simple Telegram Notification Interface',
|
parser = argparse.ArgumentParser(description='Simple Telegram Notification Interface',
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
python-ldap
|
python-ldap
|
||||||
|
pyyaml
|
||||||
flask
|
flask
|
||||||
flask-sqlalchemy
|
flask-sqlalchemy
|
||||||
sqlalchemy
|
sqlalchemy
|
||||||
|
|||||||
Reference in New Issue
Block a user