mirror of
https://github.com/Lost-MSth/Arcaea-server.git
synced 2026-02-04 13:17:27 +08:00
103 lines
6.2 KiB
Python
103 lines
6.2 KiB
Python
import os
|
||
import sqlite3
|
||
|
||
|
||
def update_user_char(c):
|
||
# 用character数据更新user_char
|
||
c.execute('''select * from character''')
|
||
x = c.fetchall()
|
||
c.execute('''select user_id from user''')
|
||
y = c.fetchall()
|
||
if x and y:
|
||
for j in y:
|
||
for i in x:
|
||
c.execute('''delete from user_char where user_id=:a and character_id=:b''', {
|
||
'a': j[0], 'b': i[0]})
|
||
c.execute('''insert into user_char values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o)''', {
|
||
'a': j[0], 'b': i[0], 'c': i[2], 'd': i[3], 'e': i[4], 'f': i[5], 'g': i[6], 'h': i[7], 'i': i[8], 'j': i[9], 'k': i[10], 'l': i[11], 'm': i[12], 'n': i[14], 'o': i[15]})
|
||
|
||
|
||
def update_database():
|
||
# 将old数据库不存在数据加入到新数据库上,并删除old数据库
|
||
# 对于arcaea_datebase.db,更新best_score,friend,recent30,user,并用character数据更新user_char
|
||
# 对于arcsong.db,更新songs
|
||
if os.path.isfile("database/old_arcaea_database.db") and os.path.isfile("database/arcaea_database.db"):
|
||
conn1 = sqlite3.connect('./database/old_arcaea_database.db')
|
||
c1 = conn1.cursor()
|
||
conn2 = sqlite3.connect('./database/arcaea_database.db')
|
||
c2 = conn2.cursor()
|
||
|
||
# user
|
||
c1.execute('''select * from user''')
|
||
x = c1.fetchall()
|
||
if x:
|
||
for i in x:
|
||
c2.execute(
|
||
'''select exists(select * from user where user_id=:a)''', {'a': i[0]})
|
||
if c2.fetchone() == (0,):
|
||
c2.execute('''insert into user values(:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8,:a9,:a10,:a11,:a12,:a13,:a14,:a15,:a16,:a17,:a18,:a19,:a20,:a21,:a22,:a23,:a24)''', {
|
||
'a0': i[0], 'a1': i[1], 'a2': i[2], 'a3': i[3], 'a4': i[4], 'a5': i[5], 'a6': i[6], 'a7': i[7], 'a8': i[8], 'a9': i[9], 'a10': i[10], 'a11': i[11], 'a12': i[12], 'a13': i[13], 'a14': i[14], 'a15': i[15], 'a16': i[16], 'a17': i[17], 'a18': i[18], 'a19': i[19], 'a20': i[20], 'a21': i[21], 'a22': i[22], 'a23': i[23], 'a24': i[24]})
|
||
|
||
# friend
|
||
c1.execute('''select * from friend''')
|
||
x = c1.fetchall()
|
||
if x:
|
||
for i in x:
|
||
c2.execute(
|
||
'''select exists(select * from friend where user_id_me=:a and user_id_other=:b)''', {'a': i[0], 'b': i[1]})
|
||
if c2.fetchone() == (0,):
|
||
c2.execute('''insert into friend values(:a,:b)''', {
|
||
'a': i[0], 'b': i[1]})
|
||
|
||
# best_score
|
||
c1.execute('''select * from best_score''')
|
||
x = c1.fetchall()
|
||
if x:
|
||
for i in x:
|
||
c2.execute('''select exists(select * from best_score where user_id=:a and song_id=:b and difficulty=:c)''', {
|
||
'a': i[0], 'b': i[1], 'c': i[2]})
|
||
if c2.fetchone() == (0,):
|
||
c2.execute('''insert into best_score values(:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8,:a9,:a10,:a11,:a12,:a13)''', {
|
||
'a0': i[0], 'a1': i[1], 'a2': i[2], 'a3': i[3], 'a4': i[4], 'a5': i[5], 'a6': i[6], 'a7': i[7], 'a8': i[8], 'a9': i[9], 'a10': i[10], 'a11': i[11], 'a12': i[12], 'a13': i[13]})
|
||
|
||
# recent30
|
||
c1.execute('''select * from recent30''')
|
||
x = c1.fetchall()
|
||
if x:
|
||
for i in x:
|
||
c2.execute(
|
||
'''select exists(select * from recent30 where user_id=:a)''', {'a': i[0]})
|
||
if c2.fetchone() == (0,):
|
||
c2.execute('''insert into recent30 values(:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8,:a9,:a10,:a11,:a12,:a13,:a14,:a15,:a16,:a17,:a18,:a19,:a20,:a21,:a22,:a23,:a24,:a25,:a26,:a27,:a28,:a29,:a30,:a31,:a32,:a33,:a34,:a35,:a36,:a37,:a38,:a39,:a40,:a41,:a42,:a43,:a44,:a45,:a46,:a47,:a48,:a49,:a50,:a51,:a52,:a53,:a54,:a55,:a56,:a57,:a58,:a59,:a60)''', {'a0': i[0], 'a1': i[1], 'a2': i[2], 'a3': i[3], 'a4': i[4], 'a5': i[5], 'a6': i[6], 'a7': i[7], 'a8': i[8], 'a9': i[9], 'a10': i[10], 'a11': i[11], 'a12': i[12], 'a13': i[13], 'a14': i[14], 'a15': i[15], 'a16': i[16], 'a17': i[17], 'a18': i[
|
||
18], 'a19': i[19], 'a20': i[20], 'a21': i[21], 'a22': i[22], 'a23': i[23], 'a24': i[24], 'a25': i[25], 'a26': i[26], 'a27': i[27], 'a28': i[28], 'a29': i[29], 'a30': i[30], 'a31': i[31], 'a32': i[32], 'a33': i[33], 'a34': i[34], 'a35': i[35], 'a36': i[36], 'a37': i[37], 'a38': i[38], 'a39': i[39], 'a40': i[40], 'a41': i[41], 'a42': i[42], 'a43': i[43], 'a44': i[44], 'a45': i[45], 'a46': i[46], 'a47': i[47], 'a48': i[48], 'a49': i[49], 'a50': i[50], 'a51': i[51], 'a52': i[52], 'a53': i[53], 'a54': i[54], 'a55': i[55], 'a56': i[56], 'a57': i[57], 'a58': i[58], 'a59': i[59], 'a60': i[60]})
|
||
|
||
update_user_char(c2)
|
||
conn1.commit()
|
||
conn1.close()
|
||
conn2.commit()
|
||
conn2.close()
|
||
os.remove('database/old_arcaea_database.db')
|
||
|
||
# songs
|
||
if os.path.isfile("database/old_arcsong.db") and os.path.isfile("database/arcsong.db"):
|
||
conn1 = sqlite3.connect('./database/old_arcsong.db')
|
||
c1 = conn1.cursor()
|
||
conn2 = sqlite3.connect('./database/arcsong.db')
|
||
c2 = conn2.cursor()
|
||
|
||
c1.execute('''select * from songs''')
|
||
x = c1.fetchall()
|
||
if x:
|
||
for i in x:
|
||
c2.execute(
|
||
'''select exists(select * from songs where sid=:a)''', {'a': i[0]})
|
||
if c2.fetchone() == (0,):
|
||
c2.execute('''insert into songs values(:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8,:a9,:a10,:a11,:a12,:a13,:a14,:a15,:a16,:a17,:a18,:a19,:a20,:a21,:a22,:a23,:a24,:a25,:a26,:a27)''', {'a0': i[0], 'a1': i[1], 'a2': i[2], 'a3': i[3], 'a4': i[4], 'a5': i[5], 'a6': i[6], 'a7': i[7], 'a8': i[
|
||
8], 'a9': i[9], 'a10': i[10], 'a11': i[11], 'a12': i[12], 'a13': i[13], 'a14': i[14], 'a15': i[15], 'a16': i[16], 'a17': i[17], 'a18': i[18], 'a19': i[19], 'a20': i[20], 'a21': i[21], 'a22': i[22], 'a23': i[23], 'a24': i[24], 'a25': i[25], 'a26': i[26], 'a27': i[27]})
|
||
|
||
conn1.commit()
|
||
conn1.close()
|
||
conn2.commit()
|
||
conn2.close()
|
||
os.remove('database/old_arcsong.db')
|