modified: __pycache__/main.cpython-312.pyc
modified: main.py
This commit is contained in:
Binary file not shown.
@@ -80,7 +80,6 @@ class MyPlugin(Star):
|
||||
paystu text not null,
|
||||
paybox text not null,
|
||||
payqd text not null
|
||||
|
||||
)
|
||||
'''
|
||||
)
|
||||
@@ -94,6 +93,67 @@ class MyPlugin(Star):
|
||||
self.sqllitaa.close()
|
||||
else:
|
||||
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):
|
||||
logger.info(f" 开始执行 登录邮箱 {self.email_usr} 命令 ")
|
||||
@@ -148,9 +208,6 @@ class MyPlugin(Star):
|
||||
for part in email_message.walk(): # 递归遍历邮件所有部分
|
||||
if part.get_content_maintype() == "multipart": # 跳过multipart容器部分
|
||||
continue
|
||||
|
||||
# 检查是否为.zip附件
|
||||
# ==================
|
||||
filename = part.get_filename() # 获取附件文件名
|
||||
# 获取正文
|
||||
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}")
|
||||
except Exception as 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: # 如果附件没有文件名
|
||||
# 按日期发件人生成附件名
|
||||
|
||||
filename = f"{from_header}{mail_date}.zip"
|
||||
|
||||
# 文件名处理
|
||||
# =========
|
||||
# 解码邮件头中的文件名
|
||||
@@ -206,7 +252,6 @@ class MyPlugin(Star):
|
||||
new_filename = filename
|
||||
# 拼接完整的文件保存路径
|
||||
filepath = os.path.join(StarTools.get_data_dir("astrbot_bdzxb_bill"), new_filename)
|
||||
|
||||
if new_filename not in self.no_file:
|
||||
# 附件保存处理
|
||||
# ===========
|
||||
@@ -220,74 +265,8 @@ class MyPlugin(Star):
|
||||
with open(filepath, "wb") as f:
|
||||
f.write(part.get_payload(decode=True)) # 解码并写入附件内容
|
||||
logger.info(f"附件已存在,覆盖: {new_filename}")
|
||||
|
||||
|
||||
|
||||
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):
|
||||
yuju = []
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user