Kaynağa Gözat

pymysql 임시로 추가

Surplus_Up (2DU) 6 yıl önce
ebeveyn
işleme
18e8f56276
3 değiştirilmiş dosya ile 61 ekleme ve 21 silme
  1. 47 15
      app.py
  2. 1 0
      requirements.txt
  3. 13 6
      route/tool/func.py

+ 47 - 15
app.py

@@ -22,22 +22,54 @@ print('----')
 app_var = json.loads(open('data/app_var.json', encoding='utf-8').read())
 
 # DB
-try:
-    set_data = json.loads(open('data/set.json').read())
-except:
-    if os.getenv('NAMU_DB') != None:
-        set_data = { "db" : os.getenv('NAMU_DB') }
-    else:
-        print('DB name (data) : ', end = '')
-        
-        new_json = str(input())
-        if new_json == '':
-            new_json = 'data'
-            
-        with open('data/set.json', 'w') as f:
-            f.write('{ "db" : "' + new_json + '" }')
-            
+while 1:
+    try:
         set_data = json.loads(open('data/set.json').read())
+        if not 'db_type' in set_data:
+            try:
+                os.remove('data/set.json')
+            except:
+                print('Please delete set.json')
+        else:
+            break
+    except:
+        if os.getenv('NAMU_DB') != None or os.getenv('NAMU_DB_TYPE') != None:
+            set_data = { 
+                "db" : os.getenv('NAMU_DB') if os.getenv('NAMU_DB') else 'data', 
+                "db_type" : os.getenv('NAMU_DB_TYPE') if os.getenv('NAMU_DB_TYPE') else 'sqlite'
+            }
+
+            break
+        else:        
+            new_json = ['', '']
+
+            print('DB type (sqlite, mysql) : ', end = '')
+            new_json[0] = str(input())
+            normal_db_type = ['sqlite', 'mysql']
+            if new_json[0] == '' or not new_json[0] in normal_db_type:
+                new_json[0] = 'sqlite'
+
+            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 all_src != []:
+                print('DB name (' + ', '.join(all_src) + ') : ', end = '')
+            else:
+                print('DB name (data) : ', end = '')
+
+            new_json[1] = str(input())
+            if new_json[1] == '':
+                new_json[1] = 'data'
+                
+            with open('data/set.json', 'w') as f:
+                f.write('{ "db" : "' + new_json[1] + '", "db_type" : "' + new_json[0] + '" }')
+                
+            set_data = json.loads(open('data/set.json').read())
+            
+            break
         
 print('DB name : ' + set_data['db'])
 db_name = set_data['db']

+ 1 - 0
requirements.txt

@@ -3,4 +3,5 @@ bcrypt
 flask
 flask-Reggie
 flask-compress
+pymysql
 pysha3; python_version < "3.6"

+ 13 - 6
route/tool/func.py

@@ -14,6 +14,7 @@ for i in range(0, 2):
         import urllib.request
         import email.mime.text
         import sqlite3
+        import pymysql
         import hashlib
         import smtplib
         import bcrypt
@@ -35,7 +36,6 @@ for i in range(0, 2):
         from .mark import *
     except ImportError as e:
         if i == 0:
-            print('----')
             print(e)
             print('----')
             if platform.system() == 'Linux':
@@ -1129,10 +1129,17 @@ def re_error(data):
             else:
                 data = '???'
 
-            return easy_minify(flask.render_template(skin_check(), 
-                imp = [load_lang('error'), wiki_set(1), custom(), other2([0, 0])],
-                data = '<h2>' + load_lang('error') + '</h2><ul><li>' + data + '</li></ul>',
-                menu = 0
-            )), 401
+            if num == 5:
+                return easy_minify(flask.render_template(skin_check(), 
+                    imp = [load_lang('skin_set'), wiki_set(1), custom(), other2([0, 0])],
+                    data = '<div id="main_skin_set"><h2>' + load_lang('error') + '</h2><ul><li>' + data + '</li></ul></div>',
+                    menu = 0
+                ))
+            else:
+                return easy_minify(flask.render_template(skin_check(), 
+                    imp = [load_lang('error'), wiki_set(1), custom(), other2([0, 0])],
+                    data = '<h2>' + load_lang('error') + '</h2><ul><li>' + data + '</li></ul>',
+                    menu = 0
+                )), 401
         else:
             return redirect('/')