Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/database/update_v3_to_v4.py
2021-08-24 00:34:24 +08:00

66 lines
2.9 KiB
Python

import base64
import os
import re
import sqlite3
from database import BotDBUtil
from modules.wiki.dbutils import WikiTargetInfo
old_db_link = os.path.abspath('./database/old.db')
conn = sqlite3.connect(old_db_link)
c = conn.cursor()
friends = c.execute(f"SELECT * FROM friend_permission").fetchall()
for friend in friends:
BotDBUtil.Module(f'QQ|{friend[0]}').enable(friend[1].split('|'))
groups = c.execute(f"SELECT * FROM group_permission").fetchall()
for group in groups:
BotDBUtil.Module(f'QQ|Group|{group[0]}').enable(group[1].split('|'))
group_admins = c.execute(f"SELECT * FROM group_adminuser").fetchall()
for group_admin in group_admins:
BotDBUtil.SenderInfo(f'QQ|{group_admin[1]}').add_TargetAdmin(f'QQ|Group|{group_admin[2]}')
superusers = c.execute(f"SELECT * FROM superuser").fetchall()
for superuser in superusers:
BotDBUtil.SenderInfo(f'QQ|{superuser[0]}').edit("isSuperUser", True)
c.close()
conn.close()
old_wikidb_link = os.path.abspath('./database/wiki_old.db')
conn = sqlite3.connect(old_wikidb_link)
c = conn.cursor()
wiki_friends_start = c.execute(f"SELECT * FROM start_wiki_link_Friend").fetchall()
for friend_start in wiki_friends_start:
WikiTargetInfo(f'QQ|{friend_start[0]}').add_start_wiki(friend_start[1])
wiki_groups_start = c.execute(f"SELECT * FROM start_wiki_link_Group").fetchall()
for group_start in wiki_groups_start:
WikiTargetInfo(f'QQ|Group|{group_start[0]}').add_start_wiki(group_start[1])
wiki_friends_custom = c.execute(f"SELECT * FROM custom_interwiki_Friend").fetchall()
for friend_custom in wiki_friends_custom:
for y in friend_custom[1].split('|'):
z = y.split('>')
if len(z) > 1:
WikiTargetInfo(f'QQ|{friend_custom[0]}').config_interwikis(z[0], z[1], True)
wiki_groups_custom = c.execute(f"SELECT * FROM custom_interwiki_Group").fetchall()
for group_custom in wiki_groups_custom:
for y in group_custom[1].split('|'):
z = y.split('>')
if len(z) > 1:
WikiTargetInfo(f'QQ|Group|{group_custom[0]}').config_interwikis(z[0], z[1], True)
wiki_groups_headers = c.execute(f"SELECT * FROM request_headers_group").fetchall()
for headers_group in wiki_groups_headers:
headers = {}
headerd = str(base64.decodebytes(headers_group[1]).decode('utf-8'))
headersp = headerd.split('\n')
for x in headersp:
if x != '':
x = x.split(':')
headers[x[0]] = re.sub(r'^ ', '', x[1])
WikiTargetInfo(f'QQ|Group|{headers_group[0]}').config_headers(headers, let_it=True)
wiki_friends_headers = c.execute(f"SELECT * FROM request_headers_friend").fetchall()
for headers_friend in wiki_friends_headers:
headers = {}
headerd = str(base64.decodebytes(headers_friend[1]).decode('utf-8'))
headersp = headerd.split('\n')
for x in headersp:
if x != '':
x = x.split(':')
headers[x[0]] = re.sub(r'^ ', '', x[1])
WikiTargetInfo(f'QQ|{headers_friend[0]}').config_headers(headers, let_it=True)