billiard/show.py

156 lines
4.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import cv2
import json
import time
import logging
import requests
import supervision as sv
from datetime import datetime
from ultralytics import YOLO
from flask import Flask,request,Response
from multiprocessing import Process, Event
app = Flask(__name__)
@app.route('/show',methods=['POST'])
def show():
# print(request.json)
data = request.json["content"]
balls = data["balls"]
table = data["table"]
text = f"table:{table:>3} "
for i in range(16):
ball = "#" if "ball"+str(i) in balls else " "
text += f"| {i} : {ball} "
print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'),text)
return 'ok'
import re
@app.route('/mj',methods=['POST'])
def mj():
print(request.json)
return 'ok'
@app.route('/cq',methods=['POST'])
def cq():
# print(request.json)
if request.json["post_type"] != "message":
return 'ok'
if request.json["message_type"] != "group":
return 'ok'
if request.json["group_id"] != "116277572":
return 'ok'
print(request.json['raw_message'])
# 正则表达式来匹配URL
url_pattern = re.compile(r'url=(.*?)\]')
# 使用findall来找到所有的URL
urls = re.findall(url_pattern, request.json['raw_message'])
base64Array = []
# 输出找到的URL
for url in urls:
print(url)
# 从URL下载图片
response = requests.get(url)
response.raise_for_status() # 如果请求失败,此处将引发异常
# 将图片数据转换为Base64编码的字节数组
image_base64_bytes = base64.b64encode(response.content)
# 如果您需要将其转换为字符串,您可以使用.decode('utf-8')将字节数组转换为字符串
image_base64_str = image_base64_bytes.decode('utf-8')
# 打印Base64编码的字节数组
# print(image_base64_bytes)
base64Array.append('data:image/jpeg;base64,'+image_base64_str)
if len(base64Array) == 0:
return 'ok'
# 示例调用
params = {
'base64Array':base64Array,
'notifyHook': 'http://hk.luanhailiang.cn:5000/mj',
'prompt': 'game assets, game ui, animal, plant, cute, soft, baby, magical, forest, spirit, fairy',
'state': ''
}
response = imagine(params)
print(response.json())
return 'ok'
import base64
import requests
def imagine(params):
"""
提交Imagine任务
:param params: imagineDTO一个字典包含以下键:
- base64Array: 垫图base64数组
- notifyHook: 回调地址, 为空时使用全局notifyHook
- prompt: 提示词
- state: 自定义参数
:return: 返回服务器的响应
"""
# API端点
url = 'http://127.0.0.1:8080/mj/submit/imagine'
# 发送POST请求
response = requests.post(url, json=params)
# 如果需要,处理响应(例如,检查响应状态,解析响应主体等)
return response
if __name__ == '__main__':
# # 这是包含URL的示例文本
# text = '[CQ:image,file=42c93be3dbe10bfa79ad93ce1baed561.image,subType=1,url=https://gchat.qpic.cn/gchatpic_new/1183464602/691534145-2408237736-42C93BE3DBE10BFA79AD93CE1BAED561/0?term=2&is_origin=0][CQ:image,file=42c93be3dbe10bfa79ad93ce1baed561.image,subType=1,url=https://gchat.qpic.cn/gchatpic_new/1183464602/691534145-2408237736-42C93BE3DBE10BFA79AD93CE1BAED561/0?term=2&is_origin=0]'
# # 正则表达式来匹配URL
# url_pattern = re.compile(r'url=(.*?)\]')
# # 使用findall来找到所有的URL
# urls = re.findall(url_pattern, text)
# # 输出找到的URL
# for url in urls:
# print(url)
# # 从URL下载图片
# response = requests.get(url)
# response.raise_for_status() # 如果请求失败,此处将引发异常
# # 将图片数据转换为Base64编码的字节数组
# image_base64_bytes = base64.b64encode(response.content)
# # 如果您需要将其转换为字符串,您可以使用.decode('utf-8')将字节数组转换为字符串
# image_base64_str = image_base64_bytes.decode('utf-8')
# # 打印Base64编码的字节数组
# # print(image_base64_bytes)
# # 示例调用
# params = {
# 'base64Array': ['data:image/jpeg;base64,'+image_base64_str],
# 'notifyHook': 'http://hk.luanhailiang.cn:5000/mj',
# 'prompt': 'character design, game assets, game ui, cute, soft',
# 'state': ''
# }
# response = imagine(params)
# print(response.json())
app.logger.setLevel(logging.ERROR)
app.run("0.0.0.0",port=8000,threaded=True)