Compare commits

..

17 Commits

Author SHA1 Message Date
QAQ
4a4f151e64 Merge pull request 'master' (#43) from master into QAQ
Reviewed-on: #43
2025-05-24 10:54:53 +08:00
71ee4c7bf8 Merge pull request '更新 main.py' (#42) from ruler229-patch-6 into master
Reviewed-on: #42
2025-05-23 15:26:04 +08:00
f1bc92f73f 更新 main.py 2025-05-23 15:25:58 +08:00
979eb197d6 Merge pull request '更新 main.py' (#41) from ruler229-patch-5 into master
Reviewed-on: #41
2025-05-23 15:03:11 +08:00
9391193e27 更新 main.py 2025-05-23 15:03:05 +08:00
35d1939d0b Merge pull request '更新 main.py' (#40) from ruler229-patch-4 into master
Reviewed-on: #40
2025-05-23 14:55:50 +08:00
49e1bb15a9 更新 main.py 2025-05-23 14:55:44 +08:00
0be461c61e Merge pull request '更新 main.py' (#39) from ruler229-patch-3 into master
Reviewed-on: #39
2025-05-23 14:27:13 +08:00
f4f40cd4aa 更新 main.py 2025-05-23 14:27:05 +08:00
6ff728b21f Merge pull request '在折现上显示数据' (#38) from saipo_test into master
Reviewed-on: #38
2025-05-23 12:32:37 +08:00
08f05ccaf9 在折现上显示数据 2025-05-23 12:32:07 +08:00
f827007657 Merge pull request '修改绘图bug' (#37) from saipo_test into master
Reviewed-on: #37
2025-05-23 12:28:16 +08:00
87a2ef7a1e 修改绘图bug 2025-05-23 12:27:36 +08:00
60ae392ae3 Merge pull request 'saipo_test' (#36) from saipo_test into master
Reviewed-on: #36
2025-05-23 12:19:51 +08:00
31f82db044 绘制日产量折线图 2025-05-23 12:19:13 +08:00
612115f7fc Merge pull request 'master' (#35) from master into saipo_test
Reviewed-on: #35
2025-05-23 12:02:39 +08:00
QAQ
895da59df9 Merge pull request '修改try' (#34) from QAQ into master
Reviewed-on: #34
2025-05-22 22:07:54 +08:00

57
main.py
View File

@ -5,6 +5,8 @@ from astrbot.api import logger
import random import random
from .back import time_long, volume, isUserExist, insertUser, seconds_to_hms, ml_to_l_ml, get_user_name from .back import time_long, volume, isUserExist, insertUser, seconds_to_hms, ml_to_l_ml, get_user_name
import pymysql import pymysql
import matplotlib
import matplotlib.pyplot as plt
from .Tool import get_tool_name from .Tool import get_tool_name
import astrbot.api.message_components as Comp import astrbot.api.message_components as Comp
from astrbot.core.utils.session_waiter import ( from astrbot.core.utils.session_waiter import (
@ -60,11 +62,11 @@ class MyPlugin(Star):
time = [];V = [];a = [];b = [] time = [];V = [];a = [];b = []
for i in range(0,10): for i in range(0,10):
time.append(round(random.uniform(1, 600), 2)) time.append(round(random.uniform(1, 600), 2))
V.append(round(random.uniform(0.01,100), 2)) V.append(round(random.uniform(0.01,100), 2)) if i==0 else V.append(round(random.uniform(1, V[i-1]+1), 2))
a.append(time_long(time[i])) a.append(time_long(time[i]))
b.append(volume(V[i])) b.append(volume(V[i]))
sql = "INSERT INTO dajiao (openid, timelong, volume) VALUES (%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s)" sql = "INSERT INTO dajiao (openid, timelong, volume) VALUES (%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s),(%s, %s, %s)"
values = (user_name,time[0],V[0]),(user_name,time[1],V[1]),(user_name,time[2],V[2]),(user_name,time[3],V[3]),(user_name,time[4],V[4]),(user_name,time[5],V[5]),(user_name,time[6],V[6]),(user_name,time[7],V[7]),(user_name,time[8],V[8]),(user_name,time[9],V[9]) values = (user_name,time[0],V[0],user_name,time[1],V[1],user_name,time[2],V[2],user_name,time[3],V[3],user_name,time[4],V[4],user_name,time[5],V[5],user_name,time[6],V[6],user_name,time[7],V[7],user_name,time[8],V[8],user_name,time[9],V[9])
cur.execute(sql,values) cur.execute(sql,values)
conn.commit() conn.commit()
cur.close() cur.close()
@ -304,6 +306,56 @@ class MyPlugin(Star):
cur.close() cur.close()
conn.close() conn.close()
@filter.command("我的日产量")
async def mydayvolume(self, event: AstrMessageEvent):
if isUserExist(event.get_sender_id()) != True:
insertUser(event.get_sender_id())
conn=pymysql.connect(host = '192.168.31.9' # 连接名称,默认
,user = 'saipo'
,passwd='Grasste0403' # 密码
,port= 3306 # 端口默认为3306
,db='saipo' # 数据库名称
,charset='utf8' # 字符编码
)
cur = conn.cursor()
sql = "SELECT DAY(eventTime),round(sum(volume),2) FROM dajiao WHERE openid = %s and DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(eventTime) GROUP BY DAY(eventTime);"
openid = event.get_sender_id()
cur.execute(sql,(openid,))
date = cur.fetchall()
if len(date) == 0:
cur.close()
conn.close()
yield event.plain_result(f"没有找到数据哦!")
day = []
volume = []
for i in range(len(date)):
day.append(date[i][0])
volume.append(date[i][1])
plt.plot(day, volume)
plt.title('dayvolume')
plt.xlabel('day')
plt.ylabel('volume')
plt.xticks(day)
#设置显示数据
for x, y in zip(day, volume):
plt.text(x, y, f'{y}', ha='center', va='bottom', fontsize=10)
plt.grid()
plt.savefig('dayvolume.png')
plt.close()
with open('dayvolume.png', 'rb') as f:
image_data = f.read()
image = Comp.Image.fromBytes(image_data)
chain = [
Comp.At(qq=event.get_sender_id()),
Comp.Plain("日产量折线图:"),
image,
]
yield event.chain_result(chain)
cur.close()
conn.close()
testNumber = 0 testNumber = 0
@filter.command("测试") @filter.command("测试")
@ -347,7 +399,6 @@ class MyPlugin(Star):
else: else:
yield "获取骚话失败" yield "获取骚话失败"
@filter.command("部署") @filter.command("部署")
async def bushutest(self, event: AstrMessageEvent): async def bushutest(self, event: AstrMessageEvent):
yield event.plain_result("自动部署成功!!") yield event.plain_result("自动部署成功!!")