webhook_server 1.0.1__tar.gz → 1.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {webhook_server-1.0.1 → webhook_server-1.0.2}/PKG-INFO +1 -1
- {webhook_server-1.0.1 → webhook_server-1.0.2}/pyproject.toml +1 -1
- {webhook_server-1.0.1 → webhook_server-1.0.2}/webhook_server/datadog.py +4 -2
- {webhook_server-1.0.1 → webhook_server-1.0.2}/webhook_server/webhooks.py +3 -6
- {webhook_server-1.0.1 → webhook_server-1.0.2}/README.md +0 -0
- {webhook_server-1.0.1 → webhook_server-1.0.2}/webhook_server/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "webhook_server"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.2"
|
|
4
4
|
description = "Create a webhook server with Flask to forward Datadog alerts to Telegram"
|
|
5
5
|
authors = [{ name = "daisukixci", email = "piquenot.gaetan+pip@gmail.com" }]
|
|
6
6
|
requires-python = ">=3.10,<4"
|
|
@@ -35,10 +35,12 @@ At {datetime.fromtimestamp(int(self._alert.date), tz=UTC).strftime("%Y/%m/%d %H:
|
|
|
35
35
|
{_clean_msg(self._alert.body)}"""
|
|
36
36
|
return message
|
|
37
37
|
|
|
38
|
+
|
|
38
39
|
def _markdown_to_html_links(markdown_text):
|
|
39
|
-
pattern = r
|
|
40
|
+
pattern = r"\[([^\]]+)\]\(([^)]+)\)"
|
|
40
41
|
html_text = re.sub(pattern, r'<a href="\2">\1</a>', markdown_text)
|
|
41
42
|
return html_text
|
|
42
43
|
|
|
44
|
+
|
|
43
45
|
def _clean_msg(msg: str) -> str:
|
|
44
|
-
return _markdown_to_html_links(msg.strip(
|
|
46
|
+
return _markdown_to_html_links(msg.strip("%"))
|
|
@@ -3,12 +3,9 @@ from flask.typing import ResponseReturnValue
|
|
|
3
3
|
import requests
|
|
4
4
|
|
|
5
5
|
from flask import request, jsonify
|
|
6
|
-
import logger
|
|
7
6
|
from . import app, basic_auth
|
|
8
7
|
from .datadog import DatadogAlert, DatadogAlertContent
|
|
9
8
|
|
|
10
|
-
webhookLogger = logger.get_json_logger(__name__)
|
|
11
|
-
|
|
12
9
|
|
|
13
10
|
@app.route("/")
|
|
14
11
|
def ping() -> ResponseReturnValue:
|
|
@@ -21,13 +18,13 @@ def webhookHandler(chat_id) -> ResponseReturnValue:
|
|
|
21
18
|
try:
|
|
22
19
|
content = request.get_json()
|
|
23
20
|
except requests.exceptions.RequestException:
|
|
24
|
-
|
|
21
|
+
app.logger.exception("failed to parse request payload")
|
|
25
22
|
return jsonify({"message": "Bad request"}), HTTPStatus.BAD_REQUEST
|
|
26
23
|
|
|
27
24
|
try:
|
|
28
25
|
alert = DatadogAlert(DatadogAlertContent(**content))
|
|
29
26
|
except TypeError:
|
|
30
|
-
|
|
27
|
+
app.logger.exception("failed to build DatadogAlert")
|
|
31
28
|
return jsonify({"message": "Bad request"}), HTTPStatus.BAD_REQUEST
|
|
32
29
|
|
|
33
30
|
url = (
|
|
@@ -46,5 +43,5 @@ def webhookHandler(chat_id) -> ResponseReturnValue:
|
|
|
46
43
|
telegram_response = req.json()
|
|
47
44
|
return jsonify(telegram_response)
|
|
48
45
|
except requests.exceptions.RequestException:
|
|
49
|
-
|
|
46
|
+
app.logger.exception("failed to post to Telegram")
|
|
50
47
|
return jsonify({"message": "Bad request"}), HTTPStatus.BAD_REQUEST
|
|
File without changes
|
|
File without changes
|