68 lines
1.8 KiB
Python
Executable File
68 lines
1.8 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: UTF-8 -*-
|
|
import sys
|
|
import json
|
|
|
|
class Sender(object):
|
|
@classmethod
|
|
def send_email(cls, payload):
|
|
# already done in go code
|
|
pass
|
|
|
|
@classmethod
|
|
def send_wecom(cls, payload):
|
|
# already done in go code
|
|
pass
|
|
|
|
@classmethod
|
|
def send_dingtalk(cls, payload):
|
|
# already done in go code
|
|
pass
|
|
|
|
@classmethod
|
|
def send_feishu(cls, payload):
|
|
# already done in go code
|
|
pass
|
|
|
|
@classmethod
|
|
def send_sms(cls, payload):
|
|
users = payload.get('event').get("notify_users_obj")
|
|
phones = {}
|
|
for u in users:
|
|
if u.get("phone"):
|
|
phones[u.get("phone")] = 1
|
|
if phones:
|
|
print("send_sms not implemented, phones: {}".format(phones.keys()))
|
|
|
|
@classmethod
|
|
def send_voice(cls, payload):
|
|
users = payload.get('event').get("notify_users_obj")
|
|
phones = {}
|
|
for u in users:
|
|
if u.get("phone"):
|
|
phones[u.get("phone")] = 1
|
|
if phones:
|
|
print("send_voice not implemented, phones: {}".format(phones.keys()))
|
|
|
|
def main():
|
|
payload = json.load(sys.stdin)
|
|
with open(".payload", 'w') as f:
|
|
f.write(json.dumps(payload, indent=4))
|
|
for ch in payload.get('event').get('notify_channels'):
|
|
send_func_name = "send_{}".format(ch.strip())
|
|
if not hasattr(Sender, send_func_name):
|
|
print("function: {} not found", send_func_name)
|
|
continue
|
|
send_func = getattr(Sender, send_func_name)
|
|
send_func(payload)
|
|
|
|
def hello():
|
|
print("hello nightingale")
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) == 1:
|
|
main()
|
|
elif sys.argv[1] == "hello":
|
|
hello()
|
|
else:
|
|
print("I am confused") |