diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2021-04-25 23:02:49 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2021-04-25 23:02:49 +0300 |
commit | 7d4f8da59d60156c2d45dc4a44891eea48082315 (patch) | |
tree | 81f46df8a796d7e1b85e4aac97926350fbdbf466 /ch1p/functions.py |
initial
Diffstat (limited to 'ch1p/functions.py')
-rw-r--r-- | ch1p/functions.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ch1p/functions.py b/ch1p/functions.py new file mode 100644 index 0000000..c4f9c99 --- /dev/null +++ b/ch1p/functions.py @@ -0,0 +1,34 @@ +import os, requests + +from typing import List, Tuple, AnyStr + + +def _get_vars(params: List[Tuple], kw: dict) -> List[AnyStr]: + result = [] + + for kw_name, env_name in params: + env_name = f'MY_{env_name}' + if kw_name in kw: + result.append(kw[kw_name]) + elif env_name in os.environ: + result.append(os.environ[env_name]) + else: + raise RuntimeError("missing parameter %s or variable %s" % (kw_name, env_name)) + + return result + + +def telegram_notify(text: str, parse_mode: str = 'html', **kwargs): + token, chat_id = _get_vars([ + ('chat_id', 'TELEGRAM_NOTIFY_CHAT_ID'), + ('token', 'TELEGRAM_NOTIFY_TOKEN') + ], kwargs) + + r = requests.post('https://api.telegram.org/bot%s/sendMessage' % token, data={ + 'chat_id': chat_id, + 'text': text, + 'parse_mode': parse_mode + }) + + if r.status_code != 200: + raise RuntimeError("telegram returned %d" % r.status_code) |