diff --git a/qqbot/31-4/bot.py b/qqbot/31-4/bot.py new file mode 100755 index 0000000..a10b4f1 --- /dev/null +++ b/qqbot/31-4/bot.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +# # -*- coding: utf-8 -*- + +import sys +from bottle import post, run, request, static_file, route + +sys.path.append("../../data/convert/31-4") +from db import * + +db.bind(provider="sqlite", filename="../../data/clean/31-4/data.sqlite3") +db.generate_mapping() + + +@route("/pics/") +def server_static(filepath): + return static_file(filepath, root="../../data/render/31-4/output") + + +@post("/") +def recv_msg(): + data = request.json + if ( + data["post_type"] == "message" + and data["message_type"] == "group" + and data["group_id"] in [346058845, 512621194] + ): + name = data["raw_message"] + with db_session: + query = select(m for m in Melee if m.name == name) + if query.count() == 0: + query = select(m for m in Shield if m.name == name) + if query.count() == 0: + query = select(m for m in Ranged if m.name == name) + if query.count() == 0: + query = Outfit.select(name=name) + if query.count() > 0: + return { + "reply": f"[CQ:image,file=http://localhost:7000/pics/{name}.png,cache=0]", + "at_sender": False, + } + return "OK" + + +run(host="localhost", port=7000)