Procházet zdrojové kódy

인덱싱은 sqlite에서만 보이게

잉여개발기 (SPDV) před 6 roky
rodič
revize
be4b3fcff7
4 změnil soubory, kde provedl 61 přidání a 59 odebrání
  1. 7 8
      app.py
  2. 2 2
      route/main_manager.py
  3. 51 48
      route/server_indexing.py
  4. 1 1
      version.json

+ 7 - 8
app.py

@@ -75,7 +75,6 @@ while 1:
         
 print('DB name : ' + set_data['db'])
 print('DB type : ' + set_data['db_type'])
-db_name = set_data['db']
 
 db_data_get(set_data['db_type'])
 
@@ -111,16 +110,16 @@ if set_data['db_type'] == 'mysql':
     curs = conn.cursor()
 
     try:
-        curs.execute(db_change('create database ? default character set utf8mb4;')%pymysql.escape_string(db_name))
+        curs.execute(db_change('create database ? default character set utf8mb4;')%pymysql.escape_string(set_data['db']))
     except:
         pass
 
-    curs.execute(db_change('use ?')%pymysql.escape_string(db_name))
+    curs.execute(db_change('use ?')%pymysql.escape_string(set_data['db']))
 else:
-    conn = sqlite3.connect(db_name + '.db', check_same_thread = False)
+    conn = sqlite3.connect(set_data['db'] + '.db', check_same_thread = False)
     curs = conn.cursor()
             
-if os.path.exists(db_name + '.db'):
+if os.path.exists(set_data['db'] + '.db'):
     setup_tool = 0
 else:
     setup_tool = 1
@@ -277,7 +276,7 @@ curs.execute(db_change('insert into other (name, data) values ("ver", ?)'), [c_v
 def back_up():
     print('----')
     try:
-        shutil.copyfile(db_name + '.db', 'back_' + db_name + '.db')
+        shutil.copyfile(set_data['db'] + '.db', 'back_' + set_data['db'] + '.db')
         
         print('Back up : OK')
     except:
@@ -401,7 +400,7 @@ def list_give():
 
 @app.route('/indexing', methods=['POST', 'GET'])
 def server_indexing():
-    return server_indexing_2(conn)       
+    return server_indexing_2(conn, set_data['db_type'])       
 
 @app.route('/restart', methods=['POST', 'GET'])
 def server_restart():
@@ -477,7 +476,7 @@ def main_other():
 @app.route('/manager', methods=['POST', 'GET'])
 @app.route('/manager/<int:num>', methods=['POST', 'GET'])
 def main_manager(num = 1):
-    return main_manager_2(conn, num, r_ver)
+    return main_manager_2(conn, num, r_ver, set_data['db_type'])
         
 @app.route('/title_index')
 def list_title_index():

+ 2 - 2
route/main_manager.py

@@ -1,6 +1,6 @@
 from .tool.func import *
 
-def main_manager_2(conn, num, r_ver):
+def main_manager_2(conn, num, r_ver, db_type):
     curs = conn.cursor()
     
     title_list = {
@@ -50,7 +50,7 @@ def main_manager_2(conn, num, r_ver):
                     <br>
                     <h2>''' + load_lang('server') + '''</h2>
                     <ul>
-                        <li><a href="/indexing">''' + load_lang('indexing') + '''</a></li>
+                        ''' + (('<li><a href="/indexing">' + load_lang('indexing') + '</a></li>') if db_type == 'sqlite' else '') + '''
                         <li><a href="/restart">''' + load_lang('wiki_restart') + '''</a></li>
                         <li><a href="/update">''' + load_lang('update') + '''</a></li>
                         <li><a href="/oauth_setting">''' + load_lang('oauth_setting') + '''</a></li>

+ 51 - 48
route/server_indexing.py

@@ -1,60 +1,63 @@
 from .tool.func import *
 
-def server_indexing_2(conn):
+def server_indexing_2(conn, db_type):
     curs = conn.cursor()
 
-    if admin_check() != 1:
-        return re_error('/error/3')
+    if db_type == 'sqlite':
+        if admin_check() != 1:
+            return re_error('/error/3')
 
-    if flask.request.method == 'POST':
-        admin_check(None, 'indexing')
+        if flask.request.method == 'POST':
+            admin_check(None, 'indexing')
 
-        curs.execute(db_change("select name from sqlite_master where type = 'index'"))
-        data = curs.fetchall()
-        if data:
-            for delete_index in data:
-                print('Delete : ' + delete_index[0])
+            curs.execute(db_change("select name from sqlite_master where type = 'index'"))
+            data = curs.fetchall()
+            if data:
+                for delete_index in data:
+                    print('Delete : ' + delete_index[0])
 
-                sql = 'drop index if exists ' + delete_index[0]
-                
-                try:
-                    curs.execute(db_change(sql))
-                except:
-                    pass
-        else:
-            curs.execute(db_change("select name from sqlite_master where type in ('table', 'view') and name not like 'sqlite_%' union all select name from sqlite_temp_master where type in ('table', 'view') order by 1;"))
-            for table in curs.fetchall():            
-                curs.execute(db_change('select sql from sqlite_master where name = ?'), [table[0]])
-                cul = curs.fetchall()
-                
-                r_cul = re.findall('(?:([^ (]*) text)', str(cul[0]))
-                
-                for n_cul in r_cul:
-                    print('Create : index_' + table[0] + '_' + n_cul)
-
-                    sql = 'create index index_' + table[0] + '_' + n_cul + ' on ' + table[0] + '(' + n_cul + ')'
+                    sql = 'drop index if exists ' + delete_index[0]
+                    
                     try:
                         curs.execute(db_change(sql))
                     except:
                         pass
-
-        conn.commit()
-        
-        return redirect()  
-    else:
-        curs.execute(db_change("select name from sqlite_master where type = 'index'"))
-        data = curs.fetchall()
-        if data:
-            b_data = load_lang('delete')
+            else:
+                curs.execute(db_change("select name from sqlite_master where type in ('table', 'view') and name not like 'sqlite_%' union all select name from sqlite_temp_master where type in ('table', 'view') order by 1;"))
+                for table in curs.fetchall():            
+                    curs.execute(db_change('select sql from sqlite_master where name = ?'), [table[0]])
+                    cul = curs.fetchall()
+                    
+                    r_cul = re.findall('(?:([^ (]*) text)', str(cul[0]))
+                    
+                    for n_cul in r_cul:
+                        print('Create : index_' + table[0] + '_' + n_cul)
+
+                        sql = 'create index index_' + table[0] + '_' + n_cul + ' on ' + table[0] + '(' + n_cul + ')'
+                        try:
+                            curs.execute(db_change(sql))
+                        except:
+                            pass
+
+            conn.commit()
+            
+            return redirect()  
         else:
-            b_data = load_lang('create')
-
-        return easy_minify(flask.render_template(skin_check(), 
-            imp = [load_lang('indexing'), wiki_set(), custom(), other2([0, 0])],
-            data =  '''
-                    <form method="post">
-                        <button type="submit">''' + b_data + '''</button>
-                    </form>
-                    ''',
-            menu = [['manager', load_lang('return')]]
-        ))   
+            curs.execute(db_change("select name from sqlite_master where type = 'index'"))
+            data = curs.fetchall()
+            if data:
+                b_data = load_lang('delete')
+            else:
+                b_data = load_lang('create')
+
+            return easy_minify(flask.render_template(skin_check(), 
+                imp = [load_lang('indexing'), wiki_set(), custom(), other2([0, 0])],
+                data =  '''
+                        <form method="post">
+                            <button type="submit">''' + b_data + '''</button>
+                        </form>
+                        ''',
+                menu = [['manager', load_lang('return')]]
+            ))   
+    else:
+        return redirect('/')

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "master" : {
-        "r_ver" : "v3.1.4-stable-02",
+        "r_ver" : "v3.1.5-master-05",
         "c_ver" : "400004",
         "s_ver" : "5"
     }, "stable" : {