from datetime import datetime from dateutil import parser from dotenv import load_dotenv from flask import Flask, request, abort import os app = Flask(__name__) load_dotenv() CHATLOG_FILE = os.getenv('CHATLOG_FILE', '/tmp/chat.txt') @app.route('/webhook', methods=['POST']) def webhook(): if request.method == 'POST': message = request.json.get('eventData').get('body') user = request.json.get('eventData').get('user').get('displayName') timestamp = request.json.get('eventData').get('timestamp') formatted = datetime.strftime(parser.isoparse(timestamp), '%H:%M:%S') if user and message and timestamp: write_out_chatlog(formatted, user, message) return 'success', 200 else: abort(400) def write_out_chatlog(timestamp, user, message): with open(CHATLOG_FILE, mode='a') as chatlog: chatlog.write(f"{timestamp} {user}: {message}\n") if __name__ == "__main__": app.run(host='0.0.0.0')