TheRaven/ravensend/ravensend-daemon

42 lines
1.3 KiB
Plaintext
Raw Normal View History

2021-11-29 03:45:30 -06:00
#!/usr/bin/env python3
# File: ravensend-daemon
#
# Description: This daemon proxies Graylog-style webhooks to TheRaven
#
# Package: AniNIX/ravensend
# Copyright: WTFPL
#
# Author: DarkFeather <ircs://aninix.net:6697/DarkFeather>
# Thanks to https://towardsdatascience.com/intro-to-webhooks-and-how-to-receive-them-with-python-d5f6dd634476 for the tutorial
import socket
import yaml
from flask import Flask,request,json
app = Flask(__name__)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
configvars = []
@app.route('/',methods=['POST'])
def hello():
data = request.json
2024-04-08 00:03:30 -05:00
notification = data["event"]["message"] + ' at ' + data["event"]["timestamp"] + ' -- ' + data["event"]["key"]
2021-11-29 03:45:30 -06:00
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
try:
s.connect((configvars["server"],int(configvars["port"])))
s.settimeout(1)
2024-04-08 00:03:30 -05:00
mesg = configvars["password"] + ' #' + configvars["channel"] + ' ' + notification
2021-11-29 03:45:30 -06:00
s.send(mesg.encode())
except:
print('Could not send to TheRaven')
return data
if __name__ == '__main__':
config = open('./ravensend-daemon.yml','r')
configvars = yaml.safe_load(config)
print(configvars)
config.close()
app.run(host='0.0.0.0',port=configvars["webhookport"],debug=False)