Skip to main content

BOT管理员

2024/6/14


功能设计

框架很简单

|--main.py
|--admin.py
|--admin.db
|--init_admin.py

init_admin.py生成db数据库,使用admin.py读取数据库并进行添加删除操作,同时读取用户权限判断管理员能使用的权限

这里就不再详细放出和解释代码

init_admin.py

import sqlite3

conn = sqlite3.connect('admin.db')
cursor = conn.cursor()

cursor.execute('''
CREATE TABLE IF NOT EXISTS admin (
user_id TEXT PRIMARY KEY,
permissions TEXT
)
''')

conn.commit()
conn.close()

QQ号和权限

admin.py

def is_admin(qq_id):
conn = connect_db()
cursor = conn.cursor()
cursor.execute('SELECT permissions FROM admin WHERE user_id = ?', (qq_id,))
result = cursor.fetchone()
conn.close()
return result


def add_admin(qq_id, permissions):
conn = connect_db()
cursor = conn.cursor()
cursor.execute('INSERT OR IGNORE INTO admin (user_id, permissions) VALUES (?, ?)', (qq_id, permissions))
conn.commit()
conn.close()


def remove_admin(qq_id):
conn = connect_db()
cursor = conn.cursor()
cursor.execute('DELETE FROM admin WHERE user_id = ?', (qq_id,))
conn.commit()
conn.close()


def query_uids_by_group(group_id):
conn = sqlite3.connect(os.path.join(os.path.dirname(__file__), 'scripts', 'bilibili', 'bilibili.db'))
cursor = conn.cursor()
cursor.execute('SELECT group_id, qq_id, bilibili_uid FROM monitoring WHERE group_id = ?', (group_id,))
rows = cursor.fetchall()
conn.close()
return rows

def remove_uid_by_group(bilibili_uid, group_id):
conn = sqlite3.connect(os.path.join(os.path.dirname(__file__), 'scripts', 'bilibili', 'bilibili.db'))
cursor = conn.cursor()
cursor.execute('DELETE FROM monitoring WHERE bilibili_uid = ? AND group_id = ?', (bilibili_uid, group_id))
conn.commit()
conn.close()

至于怎么添加管理员,是否有超级管理员和普通管理员,一切就看自己了