35 lines
1.3 KiB
Plaintext
35 lines
1.3 KiB
Plaintext
from PDAPI import *
|
|
|
|
|
|
__metadata__ = {
|
|
"methods": ["GET", "POST"],
|
|
"blueprint": "Invite",
|
|
"permission": 1.0,
|
|
"attributes": [],
|
|
"limit": "1/second",
|
|
"args": [
|
|
{"Name": "InviteID", "Type": "int"}
|
|
]
|
|
}
|
|
def HandleRequest():
|
|
InviteID = flask.request.args.get("InviteID")
|
|
if not IsConversationValid(InviteID):
|
|
return flask.jsonify({"Success": False, "Message": "对话不存在或已过期"})
|
|
Conversation = InviteConversation.query.filter_by(InviteID=InviteID).first()
|
|
if not Conversation:
|
|
return flask.jsonify({"Success": False, "Message": "对话不存在"})
|
|
FilteredMessages = [Msg for Msg in Conversation.Messages if Msg.get("Role") != "System"]
|
|
ResponseData = {
|
|
"Success": True,
|
|
"Data": {
|
|
"InviteID": InviteID,
|
|
"Messages": FilteredMessages,
|
|
"MessageCount": len(FilteredMessages),
|
|
"RemainingTime": int(1800 - (time.time() - Conversation.CreateTime)) if Conversation.FinalStatus is None else 0,
|
|
"FinalStatus": Conversation.FinalStatus,
|
|
"FinalResult": json.loads(Conversation.FinalResult),
|
|
"FinalReason": Conversation.FinalReason,
|
|
"FinalMood": Conversation.FinalMood
|
|
}
|
|
}
|
|
return flask.jsonify(ResponseData) |