From 1d425414759c763b18bf52dc001742c7f80c310d Mon Sep 17 00:00:00 2001 From: SlyAimer <2289782085@qq.com> Date: Thu, 23 Jan 2025 20:19:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=86=97=E4=BD=99=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bot.py | 5 -- src/my_sqlite/data_init/todo_init.py | 28 ------- src/my_sqlite/todo_by_sqlite.py | 110 --------------------------- src/qq_plugins/to_do.py | 2 - 4 files changed, 145 deletions(-) delete mode 100644 src/my_sqlite/data_init/todo_init.py delete mode 100644 src/my_sqlite/todo_by_sqlite.py diff --git a/bot.py b/bot.py index 1aacfc4..b3d67e9 100644 --- a/bot.py +++ b/bot.py @@ -1,6 +1,5 @@ import nonebot from nonebot.adapters.qq import Adapter as QQAdapter -from src.my_sqlite.data_init import data_init nonebot.init() driver = nonebot.get_driver() @@ -11,10 +10,6 @@ from src.my_sqlite.data_init.db_connect import disconnect, init driver.on_startup(init) driver.on_shutdown(disconnect) -def init_all(): - # 初始化数据库 - data_init.todo_init() if __name__ == "__main__": - init_all() nonebot.run() diff --git a/src/my_sqlite/data_init/todo_init.py b/src/my_sqlite/data_init/todo_init.py deleted file mode 100644 index 5dace55..0000000 --- a/src/my_sqlite/data_init/todo_init.py +++ /dev/null @@ -1,28 +0,0 @@ -import sqlite3 - -# 连接到数据库,如果不存在则创建 -conn = sqlite3.connect('chat_bot.db') -# 创建游标 -c = conn.cursor() -# -# c.execute("""DROP TABLE IF EXISTS user_todo_list; """) -# c.execute("""DROP TABLE IF EXISTS user_list; """) -# 创建表 -c.execute(""" - -CREATE TABLE IF NOT EXISTS user_list ( - user_id VARCHAR(100) PRIMARY KEY -); - -""") - -c.execute(""" - -CREATE TABLE IF NOT EXISTS user_todo_list ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - user_id VARCHAR(100), - content TEXT, - FOREIGN KEY (user_id) REFERENCES user_list(user_id) -); - """) - diff --git a/src/my_sqlite/todo_by_sqlite.py b/src/my_sqlite/todo_by_sqlite.py deleted file mode 100644 index 388493b..0000000 --- a/src/my_sqlite/todo_by_sqlite.py +++ /dev/null @@ -1,110 +0,0 @@ -from sqlalchemy import create_engine, text -from sqlalchemy.orm import sessionmaker - - -class SqliteSqlalchemy(object): - def __init__(self): - # 创建Sqlite连接引擎 - engine = create_engine('sqlite:///./chat_bot.db', echo=True) - # 创建Sqlite的session连接对象 - self.session = sessionmaker(bind=engine)() - - -def user_exists(member_openid): - """ - 查询数据库中是否包括此用户。 - - :param member_openid: - :return: 若包含用户返回True,否则返回False - """ - session = SqliteSqlalchemy().session - result = session.execute(selectUserId, - {'member_openid': member_openid}).fetchone() - session.close() - if result is None: - return False - else: - return True - - -def insert_user_todo_list(member_openid, content): - """ - 插入用户待办 - - :param member_openid: - :param content: 待办内容(str) - :return: - """ - session = SqliteSqlalchemy().session - if not user_exists(member_openid): - session.execute(insertUserId, {'member_openid': member_openid}) - - session.execute(insertUserTodo, {'member_openid': member_openid, 'content': content}) - session.commit() - session.close() - - -def get_user_todo_list(member_openid): - """ - 展示用户所有待办 - - :param member_openid: - :return: 数据库查询结果(Sequence) - """ - if not user_exists(member_openid): - return False - session = SqliteSqlalchemy().session - result = session.execute(selectUserTodo, - {'member_openid': member_openid}).fetchall() - session.close() - if str(result) == "[]": - return False - - return result - - -def delete_user_todo(member_openid, del_line_num): - """ - 删除某用户指定行数的待办 - - :param member_openid: - :param del_line_num: 指定的行数(int) - :return: - """ - - if not user_exists(member_openid): - return -1 - - session = SqliteSqlalchemy().session - todo_list_len = session.execute(checkUserTodoLength, {'member_openid': member_openid}).fetchone() - max_length = int(str(todo_list_len).lstrip("(").rstrip(",)")) - if del_line_num > max_length or del_line_num < 1: - return 1 - - session.execute(deleteUserTodo, {'member_openid': member_openid, 'del_line_num': del_line_num}) - session.commit() - session.close() - return 0 - -# 查找用户 -selectUserId = text( - "select * from user_list where user_id = :member_openid") - -# 插入数据 -insertUserTodo = text( - "INSERT INTO user_todo_list (user_id, content) VALUES (:member_openid, :content)") - -# 插入用户id -insertUserId = text("INSERT INTO user_list (user_id) VALUES (:member_openid)") - -# 删除特定行的待办 -deleteUserTodo = text( - "DELETE FROM user_todo_list WHERE id=(SELECT id FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY id) AS row_number FROM (SELECT * FROM user_todo_list WHERE user_id = :member_openid)) WHERE row_number = :del_line_num)") - -# 查询用户待办数 -checkUserTodoLength = text( - "SELECT COUNT(*) FROM user_todo_list WHERE user_id = :member_openid") - -# 查找用户待办 -selectUserTodo = text( - "select content from user_todo_list where user_id = :member_openid") diff --git a/src/qq_plugins/to_do.py b/src/qq_plugins/to_do.py index 4682f57..d996935 100644 --- a/src/qq_plugins/to_do.py +++ b/src/qq_plugins/to_do.py @@ -1,8 +1,6 @@ from nonebot.adapters.qq import MessageEvent from nonebot.plugin import on_command from nonebot.rule import to_me - -from src.my_sqlite.todo_by_sqlite import * from src.my_sqlite.models.to_do import ToDoList get_todo_list = on_command("待办查询", rule=to_me(), priority=10, block=True, aliases={"代办", "daiban"})