fix Sql执行器 v1.3

修复执行delete锁表失败的bug
This commit is contained in:
thsrite
2024-07-29 15:08:22 +08:00
parent 5bb86a2320
commit ed0556f3bc
3 changed files with 29 additions and 18 deletions

View File

@@ -40,7 +40,7 @@ MoviePilot三方插件市场https://github.com/thsrite/MoviePilot-Plugins/
- 热门媒体订阅 v1.7
- [HomePage v1.2](docs%2FHomePage.md)
- 目录监控(统一入库消息增强版) v1.0
- Sql执行器 v1.2
- Sql执行器 v1.3
- 命令执行器 v1.2
- CloudDrive2助手 v1.6
- 软连接重定向 v1.1

View File

@@ -519,11 +519,12 @@
"name": "Sql执行器",
"description": "自定义MoviePilot数据库Sql执行。",
"labels": "工具",
"version": "1.2",
"version": "1.3",
"icon": "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/sqlite.png",
"author": "thsrite",
"level": 1,
"history": {
"v1.3": "修复执行delete锁表失败的bug",
"v1.2": "调整交互命令返回信息",
"v1.1": "支持交互命令/sql [command]执行需主程序1.9.4+",
"v1.0": "自定义MoviePilot数据库Sql执行"

View File

@@ -15,7 +15,7 @@ class SqlExecute(_PluginBase):
# 插件图标
plugin_icon = "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/sqlite.png"
# 插件版本
plugin_version = "1.2"
plugin_version = "1.3"
# 插件作者
plugin_author = "thsrite"
# 作者主页
@@ -54,8 +54,8 @@ class SqlExecute(_PluginBase):
# 执行SQL语句
cursor.execute(sql)
rows = cursor.fetchall()
if 'select' in sql.lower():
rows = cursor.fetchall()
# 获取列名
columns = [desc[0] for desc in cursor.description]
# 将查询结果转换为key-value对的列表
@@ -64,11 +64,12 @@ class SqlExecute(_PluginBase):
result = dict(zip(columns, row))
results.append(result)
result = "\n".join([str(i) for i in results])
result = str(result).replace("'", "\"")
logger.info(result)
else:
result = "\n".join([str(i) for i in rows])
result = str(result).replace("'", "\"")
logger.info(result)
gradedb.commit()
result = f"执行成功,影响行数:{cursor.rowcount}"
logger.info(result)
except Exception as e:
logger.error(f"SQL语句执行失败 {str(e)}")
return
@@ -108,8 +109,8 @@ class SqlExecute(_PluginBase):
try:
# 执行SQL语句
cursor.execute(args)
rows = cursor.fetchall()
if 'select' in args.lower():
rows = cursor.fetchall()
# 获取列名
columns = [desc[0] for desc in cursor.description]
# 将查询结果转换为key-value对的列表
@@ -118,18 +119,27 @@ class SqlExecute(_PluginBase):
result = dict(zip(columns, row))
results.append(result)
result = "\n".join([str(i) for i in results])
result = str(result).replace("'", "\"")
logger.info(result)
if event.event_data.get("channel") == MessageChannel.Telegram:
result = f"```plaintext\n{result}\n```"
self.post_message(channel=event.event_data.get("channel"),
title="SQL执行结果",
text=result,
userid=event.event_data.get("user"))
else:
result = "\n".join([str(i) for i in rows])
gradedb.commit()
result = f"执行成功,影响行数:{cursor.rowcount}"
logger.info(result)
result = str(result).replace("'", "\"")
logger.info(result)
if event.event_data.get("channel") == MessageChannel.Telegram:
result = f"```plaintext\n{result}\n```"
self.post_message(channel=event.event_data.get("channel"),
title="SQL执行结果",
text=result,
userid=event.event_data.get("user"))
if event.event_data.get("channel") == MessageChannel.Telegram:
result = f"```plaintext\n{result}\n```"
self.post_message(channel=event.event_data.get("channel"),
title="SQL执行结果",
text=result,
userid=event.event_data.get("user"))
except Exception as e:
logger.error(f"SQL语句执行失败 {str(e)}")
return