pronoun-o-matic/src/core/app.py

38 lines
953 B
Python

#!/usr/bin/env python
import logging
logging.getLogger().setLevel("INFO")
from typing import Tuple
import json
from flask import Flask, request
from .plugin import Plugin, load_plugins_for_config
from .pronoun_update import PronounUpdate
app = Flask(__name__)
app.config.from_prefixed_env("PRONOUNOMATIC", loads=json.loads)
plugins = load_plugins_for_config(app.config.get("PLUGINS", [{"name": "log"}]))
def trigger_update_pronouns(pronouns: str) -> None:
update = PronounUpdate(pronouns)
[plugin.update_bio(update) for plugin in plugins]
@app.route("/update_pronouns", methods=["POST"])
def update_pronouns() -> Tuple[str, int]:
pronouns = request.values.get("pronouns")
if not pronouns:
return "Please specify a pronouns parameter as a part of your request", 422
trigger_update_pronouns(pronouns)
return pronouns, 200
def main():
app.run(host="0.0.0.0", port=8080)
if __name__ == "__main__":
main()