Răsfoiți Sursa

set.json 사용 안하게 코드 수정

Surplus_Up (2DU) 7 ani în urmă
părinte
comite
56ebaed855
3 a modificat fișierele cu 107 adăugiri și 75 ștergeri
  1. 47 62
      app.py
  2. 30 9
      emergency_tool.py
  3. 30 4
      route/tool/func.py

+ 47 - 62
app.py

@@ -8,71 +8,52 @@ for i_data in os.listdir("route"):
 
         exec("from route." + f_src + " import *")
 
-r_ver = 'v3.0.9-master-004'
-c_ver = '309001'
-
-print('Version : ' + r_ver)
-
-APPVAR = json.loads(open('data/app_variables.json', encoding='utf-8').read())
-
-# Start Data Migration Code
+r_ver = 'v3.0.9-master-005'
+c_ver = '309002'
 
 # 3.0.9-master-004 -> next release
 
 # * Dockerizing
 # * Add OAuth Provider: Discord
 
-if os.path.exists('image'):
-    os.rename('image', APPVAR['PATH_DATA_IMAGES'])
-
-if os.path.exists('set.json'):
-    os.rename('set.json', APPVAR['PATH_SET_JSON'])
+print('Version : ' + r_ver)
 
-if os.path.exists('oauthsettings.json'):
-    os.rename('oauthsettings.json', APPVAR['PATH_OAUTHSETTINGS'])
+app_var = json.loads(open('data/app_variables.json', encoding='utf-8').read())
 
-try:
-    load_oauth('discord')
-except KeyError:
-    old_oauth_data = json.loads(open(APPVAR['PATH_OAUTHSETTINGS'], encoding='utf-8').read())
+all_src = []
+for i_data in os.listdir("."):
+    f_src = re.search("(.+)\.db$", i_data)
+    if f_src:
+        all_src += [f_src.groups()[0]]
 
-    if 'discord' not in old_oauth_data['_README']['support']:
-        old_oauth_data['_README']['support'] += ['discord']
+if len(all_src) == 0:
+    print('DB\'s name (data) : ', end = '')
+    
+    db_name = input()
+    if db_name == '':
+        db_name = 'data'
+elif len(all_src) > 1:
+    db_num = 1
 
-    old_oauth_data['discord'] = {}
-    old_oauth_data['discord']['client_id'] = ''
-    old_oauth_data['discord']['client_secret'] = ''
+    for i_data in all_src:
+        print(str(db_num) + ' : ' + i_data)
 
-    with open(APPVAR['PATH_OAUTHSETTINGS'], 'w') as f:
-        f.write(json.dumps(old_oauth_data, sort_keys=True, indent=4))
+        db_num += 1
 
-# -> End Data Migration Code
+    print('Number : ', end = '')    
+    db_name = all_src[int(number_check(input())) - 1]
+else:
+    db_name = all_src[0]
 
-try:
-    set_data = json.loads(open(APPVAR['PATH_SET_JSON']).read())
-except:
-    if os.getenv('NAMU_DB') != None:
-        set_data = { "db" : 'data/' + os.getenv('NAMU_DB') }
-    else:
-        print('DB\'s name (data) : ', end = '')
-        
-        new_json = str(input())
-        if new_json == '':
-            new_json = 'data'
-            
-        with open(APPVAR['PATH_SET_JSON'], 'w') as f:
-            f.write('{ "db" : "data/' + new_json + '" }')
+if len(all_src) == 1:
+    print('DB\'s name : ' + db_name)
             
-        set_data = json.loads(open(APPVAR['PATH_SET_JSON']).read())
-        
-print('DB\'s name : ' + set_data['db'])
-            
-if os.path.exists(set_data['db'] + '.db'):
+if os.path.exists(db_name + '.db'):
     setup_tool = 0
 else:
     setup_tool = 1
 
-conn = sqlite3.connect(set_data['db'] + '.db', check_same_thread = False)
+conn = sqlite3.connect(db_name + '.db', check_same_thread = False)
 curs = conn.cursor()
 
 load_conn(conn)
@@ -119,13 +100,16 @@ curs.execute('create table if not exists html_filter(test text)')
 curs.execute('create table if not exists oauth_conn(test text)')
 
 if setup_tool == 0:
-    curs.execute('select data from other where name = "ver"')
-    ver_set_data = curs.fetchall()
-    if not ver_set_data:
-        setup_tool = 1
-    else:
-        if c_ver > ver_set_data[0][0]:
+    try:
+        curs.execute('select data from other where name = "ver"')
+        ver_set_data = curs.fetchall()
+        if not ver_set_data:
             setup_tool = 1
+        else:
+            if c_ver > ver_set_data[0][0]:
+                setup_tool = 1
+    except:
+        setup_tool = 1
 
 if setup_tool != 0:
     create_data = {}
@@ -192,8 +176,8 @@ if not curs.fetchall():
     curs.execute('delete from alist where name = "owner"')
     curs.execute('insert into alist (name, acl) values ("owner", "owner")')
 
-if not os.path.exists(APPVAR['PATH_DATA_IMAGES']):
-    os.makedirs(APPVAR['PATH_DATA_IMAGES'])
+if not os.path.exists(app_var['PATH_DATA_IMAGES']):
+    os.makedirs(app_var['PATH_DATA_IMAGES'])
     
 if not os.path.exists('views'):
     os.makedirs('views')
@@ -209,6 +193,7 @@ for i in range(len(server_set_key)):
     server_set_val = curs.fetchall()
     if not server_set_val:
         server_set_val = server_init.init(server_set_key[i])
+        
         curs.execute('insert into other (name, data) values (?, ?)', [server_set_key[i], server_set_val])
         conn.commit()
     else:
@@ -260,7 +245,7 @@ curs.execute('insert into other (name, data) values ("ver", ?)', [c_ver])
 
 def back_up():
     try:
-        shutil.copyfile(set_data['db'] + '.db', 'back_' + set_data['db'] + '.db')
+        shutil.copyfile(db_name + '.db', 'back_' + db_name + '.db')
         
         print('Back up : OK')
     except:
@@ -524,10 +509,10 @@ def oauth_settings():
                 menu = [['other', load_lang('return')]]
             ))
 
-        with open(APPVAR['PATH_OAUTHSETTINGS'], 'r', encoding='utf-8') as f:
+        with open(app_var['PATH_OAUTHSETTINGS'], 'r', encoding='utf-8') as f:
             legacy = json.loads(f.read())
 
-        with open(APPVAR['PATH_OAUTHSETTINGS'], 'w', encoding='utf-8') as f:
+        with open(app_var['PATH_OAUTHSETTINGS'], 'w', encoding='utf-8') as f:
             f.write("""
                 {
                     "_README" : {
@@ -3293,12 +3278,12 @@ def upload():
             else:
                 lice = '[[user:' + ip + ']]'
             
-        if os.path.exists(os.path.join(APPVAR['PATH_DATA_IMAGES'], e_data)):
-            os.remove(os.path.join(APPVAR['PATH_DATA_IMAGES'], e_data))
+        if os.path.exists(os.path.join(app_var['PATH_DATA_IMAGES'], e_data)):
+            os.remove(os.path.join(app_var['PATH_DATA_IMAGES'], e_data))
             
-            data.save(os.path.join(APPVAR['PATH_DATA_IMAGES'], e_data))
+            data.save(os.path.join(app_var['PATH_DATA_IMAGES'], e_data))
         else:
-            data.save(os.path.join(APPVAR['PATH_DATA_IMAGES'], e_data))
+            data.save(os.path.join(app_var['PATH_DATA_IMAGES'], e_data))
             
         curs.execute("select title from data where title = ?", ['file:' + name])
         if curs.fetchall(): 

+ 30 - 9
emergency_tool.py

@@ -1,3 +1,4 @@
+import os
 import json
 import sqlite3
 import hashlib
@@ -6,18 +7,29 @@ import threading
 from route.tool.func import *
 from route.tool.mark import load_conn2, namumark
 
-try:
-    f = open('set.json', 'r')
-except FileNotFoundError as e:
-    print('Error: set.json is not found. Please run setup script first.')
+all_src = []
+for i_data in os.listdir("."):
+    f_src = re.search("(.+)\.db$", i_data)
+    if f_src:
+        all_src += [f_src.groups()[0]]
+
+if len(all_src) == 0:
     exit()
+elif len(all_src) > 1:
+    db_num = 1
+
+    for i_data in all_src:
+        print(str(db_num) + ' : ' + i_data)
+
+    print('Number : ', end = '')    
+    db_name = all_src[int(number_check(input())) - 1]
 else:
-    f.close()
-    
-json_data = open('set.json').read()
-set_data = json.loads(json_data)
+    db_name = all_src[0]
 
-conn = sqlite3.connect(set_data['db'] + '.db', check_same_thread = False)
+if len(all_src) == 1:
+    print('DB\'s name : ' + db_name)
+
+conn = sqlite3.connect(db_name + '.db', check_same_thread = False)
 curs = conn.cursor()
 
 load_conn(conn)
@@ -30,6 +42,7 @@ print('5. Change port')
 print('6. Change skin')
 print('7. Change password')
 print('8. Reset version')
+print('9. New DB create')
 
 print('Select : ', end = '')
 what_i_do = input()
@@ -103,6 +116,14 @@ elif what_i_do == '7':
     curs.execute("update user set pw = ? where id = ?", [hashed, user_name])
 elif what_i_do == '8':
     curs.execute("update other set data = '00000' where name = 'ver'")
+elif what_i_do == '9':
+    print('DB\'s name (data) : ', end = '')
+    
+    db_name = input()
+    if db_name == '':
+        db_name = 'data'
+
+    sqlite3.connect(db_name + '.db', check_same_thread = False)
 
 conn.commit()
 

+ 30 - 4
route/tool/func.py

@@ -36,7 +36,7 @@ if sys.version_info < (3, 6):
 from .set_mark.tool import *
 from .mark import *
 
-APPVAR = json.loads(open('data/app_variables.json', encoding='utf-8').read())
+app_var = json.loads(open('data/app_variables.json', encoding='utf-8').read())
 
 def load_conn(data):
     global conn
@@ -168,6 +168,32 @@ def update():
     except:
         pass
 
+    # Start Data Migration Code
+    app_var = json.loads(open(os.path.abspath('./data/app_variables.json'), encoding='utf-8').read())
+
+    if os.path.exists('image'):
+        os.rename('image', app_var['PATH_DATA_IMAGES'])
+
+    if os.path.exists('oauthsettings.json'):
+        os.rename('oauthsettings.json', app_var['PATH_OAUTHSETTINGS'])
+
+    try:
+        load_oauth('discord')
+    except KeyError:
+        old_oauth_data = json.loads(open(app_var['PATH_OAUTHSETTINGS'], encoding='utf-8').read())
+
+        if 'discord' not in old_oauth_data['_README']['support']:
+            old_oauth_data['_README']['support'] += ['discord']
+
+        old_oauth_data['discord'] = {}
+        old_oauth_data['discord']['client_id'] = ''
+        old_oauth_data['discord']['client_secret'] = ''
+
+        with open(app_var['PATH_OAUTHSETTINGS'], 'w') as f:
+            f.write(json.dumps(old_oauth_data, sort_keys = True, indent = 4))
+
+    # -> End Data Migration Code
+
 def pw_encode(data, data2 = '', type_d = ''):
     if type_d == '':
         curs.execute('select data from other where name = "encode"')
@@ -286,15 +312,15 @@ def load_lang(data, num = 2, safe = 0):
             return load_lang(data, 1, safe)
 
 def load_oauth(provider):
-    oauth = json.loads(open(APPVAR['PATH_OAUTHSETTINGS'], encoding='utf-8').read())
+    oauth = json.loads(open(app_var['PATH_OAUTHSETTINGS'], encoding='utf-8').read())
 
     return oauth[provider]
 
 def update_oauth(provider, target, content):
-    oauth = json.loads(open(APPVAR['PATH_OAUTHSETTINGS'], encoding='utf-8').read())
+    oauth = json.loads(open(app_var['PATH_OAUTHSETTINGS'], encoding='utf-8').read())
     oauth[provider][target] = content
 
-    with open(APPVAR['PATH_OAUTHSETTINGS'], 'w') as f:
+    with open(app_var['PATH_OAUTHSETTINGS'], 'w') as f:
         f.write(json.dumps(oauth, sort_keys=True, indent=4))
 
     return 'Done'