modified: __pycache__/main.cpython-312.pyc

modified:   main.py
This commit is contained in:
2026-05-15 09:13:04 +08:00
parent f7bff02269
commit 0a30b46847
2 changed files with 61 additions and 82 deletions
Binary file not shown.
+61 -82
View File
@@ -80,7 +80,6 @@ class MyPlugin(Star):
paystu text not null, paystu text not null,
paybox text not null, paybox text not null,
payqd text not null payqd text not null
) )
''' '''
) )
@@ -94,6 +93,67 @@ class MyPlugin(Star):
self.sqllitaa.close() self.sqllitaa.close()
else: else:
self.sqllitaa = sqlite3.connect(f"{self.data_path}/zhangdan.db") self.sqllitaa = sqlite3.connect(f"{self.data_path}/zhangdan.db")
# 帮助
@filter.command("zdhelp")
async def mchelp(self, event: AstrMessageEvent):
logger.info(" 开始执行 zdhelp 命令 ")
helptxt = """ """
yield event.plain_result(f"{helptxt}")
# 获取解压密码冰进行下载解压
@filter.command("mm")
async def wxmm(self, event: AstrMessageEvent, wxmm: str,zfbmm: str):
# # 登录邮箱 下载文件
yield event.plain_result(f"{self.emaillog()}")
logger.info("开始解压文件")
# # 解压文件 self.data_path
file_list = os.listdir(self.data_path )
logger.info(f"{file_list}")
for aac in file_list:
self.jzip(filename=aac,mima=wxmm)
self.jzip(filename=aac,mima=zfbmm)
# 解析文件
file_list = os.listdir(f"{self.data_path}/zhangdan")
yield event.plain_result(f"解压后文件列表:{file_list}")
self.sqllitaa = sqlite3.connect(f"{self.data_path}/zhangdan.db")
cur = self.sqllitaa.cursor()
try:
for aaa in file_list:
for icc in self.exceltt(filename=str(self.data_path)+"/zhangdan/"+aaa):
cur.execute(icc)
self.sqllitaa.commit()
cur.close()
self.sqllitaa.close()
yield event.plain_result("保存完成__使用/chazhang 查询最后10条记录")
except Exception as e:
yield event.plain_result(f"保存失败{e}")
logger.info(f"{e}")
cur.close()
self.sqllitaa.close()
# 查账
@filter.command("chazhang")
async def chazhang(self, event: AstrMessageEvent):
logger.info(" 开始执行 chazhang 命令 ")
self.sqllitaa = sqlite3.connect(f"{self.data_path}/zhangdan.db")
# 创建游标对象
cursor = self.sqllitaa.cursor()
try:
cursor.execute('SELECT * FROM zhangdan ORDER BY id DESC LIMIT 10;')
jieg =cursor.fetchall()
self.sqllitaa.commit()
cursor.close()
self.sqllitaa.close()
yield event.plain_result(f"{jieg}")
except Exception as e:
yield event.plain_result(f"查询失败:{e}")
logger.info(f"查询失败{e}")
self.sqllitaa.commit()
cursor.close()
self.sqllitaa.close()
# 登录邮箱 下载文件 # 登录邮箱 下载文件
def emaillog(self): def emaillog(self):
logger.info(f" 开始执行 登录邮箱 {self.email_usr} 命令 ") logger.info(f" 开始执行 登录邮箱 {self.email_usr} 命令 ")
@@ -148,9 +208,6 @@ class MyPlugin(Star):
for part in email_message.walk(): # 递归遍历邮件所有部分 for part in email_message.walk(): # 递归遍历邮件所有部分
if part.get_content_maintype() == "multipart": # 跳过multipart容器部分 if part.get_content_maintype() == "multipart": # 跳过multipart容器部分
continue continue
# 检查是否为.zip附件
# ==================
filename = part.get_filename() # 获取附件文件名 filename = part.get_filename() # 获取附件文件名
# 获取正文 # 获取正文
maildata = part.get_payload(decode=True) maildata = part.get_payload(decode=True)
@@ -169,22 +226,11 @@ class MyPlugin(Star):
filenames += self.download_file(urlt=urlt,filenamett=f"{from_header}{mail_date}") filenames += self.download_file(urlt=urlt,filenamett=f"{from_header}{mail_date}")
except Exception as e: except Exception as e:
logger.debug(f"URl 文件下载失败:{e}") logger.debug(f"URl 文件下载失败:{e}")
content_type = part.get_content_type() # 获取内容类型
# 判断条件:
# 1. 文件名以.zip结尾,或
# 2. 内容类型是Excel文件
# if (filename and filename.lower().endswith(".zip")) or \
# (content_type == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"):
# 处理无文件名的情况 # 处理无文件名的情况
# ================ # ================
if not filename: # 如果附件没有文件名 if not filename: # 如果附件没有文件名
# 按日期发件人生成附件名 # 按日期发件人生成附件名
filename = f"{from_header}{mail_date}.zip" filename = f"{from_header}{mail_date}.zip"
# 文件名处理 # 文件名处理
# ========= # =========
# 解码邮件头中的文件名 # 解码邮件头中的文件名
@@ -206,7 +252,6 @@ class MyPlugin(Star):
new_filename = filename new_filename = filename
# 拼接完整的文件保存路径 # 拼接完整的文件保存路径
filepath = os.path.join(StarTools.get_data_dir("astrbot_bdzxb_bill"), new_filename) filepath = os.path.join(StarTools.get_data_dir("astrbot_bdzxb_bill"), new_filename)
if new_filename not in self.no_file: if new_filename not in self.no_file:
# 附件保存处理 # 附件保存处理
# =========== # ===========
@@ -220,74 +265,8 @@ class MyPlugin(Star):
with open(filepath, "wb") as f: with open(filepath, "wb") as f:
f.write(part.get_payload(decode=True)) # 解码并写入附件内容 f.write(part.get_payload(decode=True)) # 解码并写入附件内容
logger.info(f"附件已存在,覆盖: {new_filename}") logger.info(f"附件已存在,覆盖: {new_filename}")
return "获取成功:"+filenames return "获取成功:"+filenames
# 查看白名单邮件
# if from_header not in self.emcil_white: # 严格检查白名单
# logger.debug(f"跳过非白名单发件人: {from_header}")
# except Exception as e:
# logger.error(f" 邮箱登陆失败 抛出异常:{e}")
# return "邮件搜索失败"
# 帮助
@filter.command("zdhelp")
async def mchelp(self, event: AstrMessageEvent):
logger.info(" 开始执行 zdhelp 命令 ")
helptxt = """ """
yield event.plain_result(f"{helptxt}")
# 获取解压密码冰进行下载解压
@filter.command("mm")
async def wxmm(self, event: AstrMessageEvent, wxmm: str,zfbmm: str):
# # 登录邮箱 下载文件
self.emaillog()
logger.info("开始解压文件")
# # 解压文件 self.data_path
file_list = os.listdir(self.data_path )
logger.info(f"{file_list}")
for aac in file_list:
self.jzip(filename=aac,mima=wxmm)
self.jzip(filename=aac,mima=zfbmm)
# 解析文件
file_list = os.listdir(f"{self.data_path}/zhangdan")
self.sqllitaa = sqlite3.connect(f"{self.data_path}/zhangdan.db")
cur = self.sqllitaa.cursor()
try:
for aaa in file_list:
for icc in self.exceltt(filename=str(self.data_path)+"/zhangdan/"+aaa):
# logger.info(f"执行语句:{icc}")
cur.execute(icc)
self.sqllitaa.commit()
cur.close()
self.sqllitaa.close()
yield event.plain_result("保存完成__使用/chazhang 查询最后10条记录")
except Exception as e:
logger.info(f"{e}")
cur.close()
self.sqllitaa.close()
# 查账
@filter.command("chazhang")
async def chazhang(self, event: AstrMessageEvent):
logger.info(" 开始执行 chazhang 命令 ")
self.sqllitaa = sqlite3.connect(f"{self.data_path}/zhangdan.db")
# 创建游标对象
cursor = self.sqllitaa.cursor()
try:
cursor.execute('SELECT * FROM zhangdan ORDER BY id DESC LIMIT 10;')
jieg =cursor.fetchall()
self.sqllitaa.commit()
cursor.close()
self.sqllitaa.close()
yield event.plain_result(f"{jieg}")
except Exception as e:
logger.info(f"查询失败{e}")
self.sqllitaa.commit()
cursor.close()
self.sqllitaa.close()
def exceltt(self,filename): def exceltt(self,filename):
yuju = [] yuju = []
try: try: