From ed0556f3bcbbc5ba367dbf141f52e86566c417eb Mon Sep 17 00:00:00 2001 From: thsrite Date: Mon, 29 Jul 2024 15:08:22 +0800 Subject: [PATCH] =?UTF-8?q?fix=20Sql=E6=89=A7=E8=A1=8C=E5=99=A8=20v1.3=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=A7=E8=A1=8Cdelete=E9=94=81=E8=A1=A8?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- package.json | 3 ++- plugins/sqlexecute/__init__.py | 42 +++++++++++++++++++++------------- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index e97f671..9267cc8 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/package.json b/package.json index 6b864d4..13e8daf 100644 --- a/package.json +++ b/package.json @@ -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执行" diff --git a/plugins/sqlexecute/__init__.py b/plugins/sqlexecute/__init__.py index d544aa5..a4d5e64 100644 --- a/plugins/sqlexecute/__init__.py +++ b/plugins/sqlexecute/__init__.py @@ -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