1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import atexit
- from logging.config import dictConfig
- from threading import Thread
- from flask import Flask, request, render_template, jsonify
- import db
- from config import BOTS_LOOKUP, GLOBAL_ADMINS, GROUP_ADMINS, get_config
- from command_system import RollbotMessage, RollbotResponse, RollbotFailure
- from rollbot import Rollbot
- from util import post_message
- dictConfig({
- "version": 1,
- "formatters": {"default": {
- "format": "[%(asctime)s] %(levelname)s in %(module)s: %(message)s",
- }},
- "handlers": {"wsgi": {
- "class": "logging.StreamHandler",
- "stream": "ext://flask.logging.wsgi_errors_stream",
- "formatter": "default"
- }},
- "root": {
- "level": "INFO",
- "handlers": ["wsgi"]
- }
- })
- app = Flask(__name__)
- app.config["PROPAGATE_EXCEPTIONS"] = True
- rollbot = Rollbot(
- app.logger,
- plugins=get_config("plugins"),
- aliases=get_config("aliases"),
- responses=get_config("responses"),
- lookup=BOTS_LOOKUP,
- sleep_time=float(get_config("sleep_time"))
- )
- app.logger.info("Initializing database tables")
- db.init_db()
- app.logger.info("Finished initializing database")
- rollbot.start_plugins()
- atexit.register(rollbot.shutdown_plugins)
- @app.route("/teamspeak", methods=["GET"])
- def teamspeak():
- response = rollbot.run_command(RollbotMessage("MANUAL", None, None, None, None, "!teamspeak", False))
- if response.is_success:
- response = response.txt
- else:
- response = response.failure_msg
- return render_template("teamspeak.html", r=response, scrolling=get_config("teamspeak.scrolling"))
- @app.route("/rollbot", methods=["POST"])
- def execute():
- json = request.get_json()
- msg = RollbotMessage.from_groupme(json, global_admins=GLOBAL_ADMINS, group_admins=GROUP_ADMINS)
- rollbot.handle_command_threaded(msg)
- return "", 204
- if __name__ == "__main__":
- app.run(host="0.0.0.0", port=6070)
|