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,
|
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:
|
||||||
|
|||||||
Reference in New Issue
Block a user