Prechádzať zdrojové kódy

최근 변경 최적화 적용

Surplus_Up (2DU) 6 rokov pred
rodič
commit
1a9e9a4eb0
5 zmenil súbory, kde vykonal 99 pridanie a 98 odobranie
  1. 25 49
      app.py
  2. 11 9
      route/api_recent_change.py
  3. 39 30
      route/recent_changes.py
  4. 22 8
      route/tool/func.py
  5. 2 2
      version.json

+ 25 - 49
app.py

@@ -125,31 +125,30 @@ else:
 load_conn(conn)
 
 create_data = {}
-create_data['all_data'] = [
-    'data',
-    'cache_data',
-    'history',
-    'rd',
-    'user',
-    'user_set',
-    'topic',
-    'rb',
-    'back',
-    'custom',
-    'other',
-    'alist',
-    're_admin',
-    'alarm',
-    'ua_d',
-    'filter',
-    'scan',
-    'acl',
-    'inter',
-    'html_filter',
-    'oauth_conn',
-    'user_application'
-]
-for i in create_data['all_data']:
+create_data['data'] = ['title', 'data']
+create_data['cache_data'] = ['title', 'data', 'id']
+create_data['history'] = ['id', 'title', 'data', 'date', 'ip', 'send', 'leng', 'hide', 'type']
+create_data['rc'] = ['id', 'title', 'date', 'type']
+create_data['rd'] = ['title', 'sub', 'code', 'date', 'band', 'stop', 'agree', 'acl']
+create_data['user'] = ['id', 'pw', 'acl', 'date', 'encode']
+create_data['user_set'] = ['name', 'id', 'data']
+create_data['user_application'] = ['id', 'pw', 'date', 'encode', 'question', 'answer', 'ip', 'ua', 'token', 'email']
+create_data['topic'] = ['id', 'data', 'date', 'ip', 'block', 'top', 'code']
+create_data['rb'] = ['block', 'end', 'today', 'blocker', 'why', 'band', 'login', 'ongoing']
+create_data['back'] = ['title', 'link', 'type']
+create_data['custom'] = ['user', 'css']
+create_data['other'] = ['name', 'data', 'coverage']
+create_data['alist'] = ['name', 'acl']
+create_data['re_admin'] = ['who', 'what', 'time']
+create_data['alarm'] = ['name', 'data', 'date']
+create_data['ua_d'] = ['name', 'ip', 'ua', 'today', 'sub']
+create_data['filter'] = ['name', 'regex', 'sub']
+create_data['scan'] = ['user', 'title', 'type']
+create_data['acl'] = ['title', 'decu', 'dis', 'view', 'why']
+create_data['inter'] = ['title', 'link', 'icon']
+create_data['html_filter'] = ['html', 'kind', 'plus']
+create_data['oauth_conn'] = ['provider', 'wiki_id', 'sns_id', 'name', 'picture']
+for i in create_data:
     try:
         curs.execute(db_change('select test from ' + i + ' limit 1'))
     except:
@@ -171,30 +170,7 @@ except:
     setup_tool = 2
 
 if setup_tool != 0:
-    create_data['data'] = ['title', 'data']
-    create_data['cache_data'] = ['title', 'data', 'id']
-    create_data['history'] = ['id', 'title', 'data', 'date', 'ip', 'send', 'leng', 'hide', 'type']
-    create_data['rd'] = ['title', 'sub', 'code', 'date', 'band', 'stop', 'agree', 'acl']
-    create_data['user'] = ['id', 'pw', 'acl', 'date', 'encode']
-    create_data['user_set'] = ['name', 'id', 'data']
-    create_data['user_application'] = ['id', 'pw', 'date', 'encode', 'question', 'answer', 'ip', 'ua', 'token', 'email']
-    create_data['topic'] = ['id', 'data', 'date', 'ip', 'block', 'top', 'code']
-    create_data['rb'] = ['block', 'end', 'today', 'blocker', 'why', 'band', 'login', 'ongoing']
-    create_data['back'] = ['title', 'link', 'type']
-    create_data['custom'] = ['user', 'css']
-    create_data['other'] = ['name', 'data', 'coverage']
-    create_data['alist'] = ['name', 'acl']
-    create_data['re_admin'] = ['who', 'what', 'time']
-    create_data['alarm'] = ['name', 'data', 'date']
-    create_data['ua_d'] = ['name', 'ip', 'ua', 'today', 'sub']
-    create_data['filter'] = ['name', 'regex', 'sub']
-    create_data['scan'] = ['user', 'title', 'type']
-    create_data['acl'] = ['title', 'decu', 'dis', 'view', 'why']
-    create_data['inter'] = ['title', 'link', 'icon']
-    create_data['html_filter'] = ['html', 'kind', 'plus']
-    create_data['oauth_conn'] = ['provider', 'wiki_id', 'sns_id', 'name', 'picture']
-
-    for create_table in create_data['all_data']:
+    for create_table in create_data:
         for create in create_data[create_table]:
             try:
                 curs.execute(db_change('select ' + create + ' from ' + create_table + ' limit 1'))

+ 11 - 9
route/api_recent_change.py

@@ -6,14 +6,16 @@ def api_recent_change_2(conn):
     num = int(number_check(flask.request.args.get('num', '10')))
     num = 50 if (1 if not num > 0 else num) > 50 else num
 
-    curs.execute(db_change('' + \
-        'select id, title, date, ip, send, leng from history ' + \
-        "where not title like 'user:%' " + \
-        'order by date desc ' + \
-        'limit ?' + \
-    ''), [num])
-    all_list = curs.fetchall()
-    if all_list:
-        return flask.jsonify(all_list)
+    data_list = []
+    curs.execute(db_change('select id, title from rc order by date desc'))
+    for i in curs.fetchall():
+        curs.execute(db_change('' + \
+            'select id, title, date, ip, send, leng, hide from history ' + \
+            'where id = ? and title = ? ' + \
+            'order by date desc' + \
+        ''), i)
+        data_list += curs.fetchall()
+    if data_list:
+        return flask.jsonify(data_list)
     else:
         return flask.jsonify({})

+ 39 - 30
route/recent_changes.py

@@ -21,10 +21,7 @@ def recent_changes_2(conn, name, tool):
         '''
 
         num = int(number_check(flask.request.args.get('num', '1')))
-        if num * 50 > 0:
-            sql_num = num * 50 - 50
-        else:
-            sql_num = 0
+        sql_num = (num * 50 - 50) if num * 50 > 0 else 0
 
         if name:
             if tool == 'history':
@@ -59,6 +56,7 @@ def recent_changes_2(conn, name, tool):
                     'order by id + 0 desc ' + \
                     "limit ?, 50" + \
                 ''), plus_list)
+                data_list = curs.fetchall()
             else:
                 div +=  '''
                     <td id="main_table_width">''' + load_lang('document_name') + '''</td>
@@ -72,6 +70,7 @@ def recent_changes_2(conn, name, tool):
                     'select id, title, date, ip, send, leng, hide from history ' + \
                     "where ip = ? and type = '' order by date desc limit ?, 50" + \
                 ''), [name, sql_num])
+                data_list = curs.fetchall()
         else:
             div +=  '''
                 <td id="main_table_width">''' + load_lang('document_name') + '''</td>
@@ -81,36 +80,47 @@ def recent_changes_2(conn, name, tool):
             sub = ''
             set_type = flask.request.args.get('set', 'normal')
 
-            if set_type == 'move':
-                plus_sql = 'where send like "%</a> move)" and '
-                sub += ' (' + load_lang('move') + ')'
-            elif set_type == 'delete':
-                plus_sql = 'where send like "%(delete)" and '
-                sub += ' (' + load_lang('delete') + ')'
-            elif set_type == 'revert':
-                plus_sql = 'where send like "%(r%)" and '
-                sub += ' (' + load_lang('revert') + ')'
-            else:
-                plus_sql = 'where '
+            if set_type != 'normal':
+                if set_type == 'move':
+                    plus_sql = 'where send like "%</a> move)" and '
+                    sub += ' (' + load_lang('move') + ')'
+                elif set_type == 'delete':
+                    plus_sql = 'where send like "%(delete)" and '
+                    sub += ' (' + load_lang('delete') + ')'
+                elif set_type == 'revert':
+                    plus_sql = 'where send like "%(r%)" and '
+                    sub += ' (' + load_lang('revert') + ')'
+                else:
+                    plus_sql = 'where '
 
-            plus_sql += 'type = "" '
-            
-            if set_type == 'user':
-                plus_sql = 'where title like "user:%" '
-                sub += ' (' + load_lang('user') + ')'
-            else:
-                plus_sql += 'and not title like "user:%" '
+                plus_sql += 'type = "" '
+                
+                if set_type == 'user':
+                    plus_sql = 'where title like "user:%" '
+                    sub += ' (' + load_lang('user') + ')'
+                else:
+                    plus_sql += 'and not title like "user:%" '
 
-            curs.execute(db_change('' + \
-                'select id, title, date, ip, send, leng, hide from history ' + \
-                plus_sql + \
-                'order by date desc ' + \
-                'limit ?, 50' + \
-            ''), [sql_num])
+                curs.execute(db_change('' + \
+                    'select id, title, date, ip, send, leng, hide from history ' + \
+                    plus_sql + \
+                    'order by date desc ' + \
+                    'limit 50' + \
+                ''))
+                data_list = curs.fetchall()
+            else:
+                data_list = []
+                curs.execute(db_change('select id, title from rc order by date desc'))
+                for i in curs.fetchall():
+                    curs.execute(db_change('' + \
+                        'select id, title, date, ip, send, leng, hide from history ' + \
+                        'where id = ? and title = ? ' + \
+                        'order by date desc' + \
+                    ''), i)
+                    data_list += curs.fetchall()
 
         div += '</tr>'
 
-        data_list = curs.fetchall()
         all_ip = ip_pas([i[3] for i in data_list])
         for data in data_list:
             select += '<option value="' + data[0] + '">' + data[0] + '</option>'
@@ -217,7 +227,6 @@ def recent_changes_2(conn, name, tool):
 
             menu = 0
             title = load_lang('recent_change')
-            div += next_fix('/recent_changes?set=' + set_type + '&num=', num, data_list)
 
         if sub == '':
             sub = 0

+ 22 - 8
route/tool/func.py

@@ -246,6 +246,21 @@ def update(ver_num, set_data):
                 '1'
             ])
 
+    if ver_num < 3191301:
+        curs.execute(db_change('' + \
+            'select id, title, date from history ' + \
+            'where not title like "user:%" ' + \
+            'order by date desc ' + \
+            'limit 50' + \
+        ''))
+        data_list = curs.fetchall()
+        for get_data in data_list:
+            curs.execute(db_change("insert into rc (id, title, date, type) values (?, ?, ?, 'normal')"), [
+                get_data[0], 
+                get_data[1],
+                get_data[2]
+            ])
+
     conn.commit()
 
     print('Update pass')
@@ -1116,18 +1131,17 @@ def history_plus(title, data, date, ip, send, leng, t_check = '', d_type = ''):
     id_data = curs.fetchall()
     id_data = str(int(id_data[0][0]) + 1) if id_data else '1'
 
-    if d_type != 'req':
-        curs.execute(db_change("select title from history where title = ? and id = ? and type = 'req'"), [title, id_data])
-        if curs.fetchall():
-            curs.execute(db_change("update history set type = 'req_close' where title = ? and id = ? and type = 'req'"), [
-                title,
-                id_data
-            ])
-
     send = re.sub(r'\(|\)|<|>', '', send)
     send = send[:128] if len(send) > 128 else send
     send = send + ' (' + t_check + ')' if t_check != '' else send
 
+    curs.execute(db_change('delete from rc order by date asc limit 1'))
+    curs.execute(db_change("insert into rc (id, title, date, type) values (?, ?, ?, 'normal')"), [
+        id_data,
+        title,
+        date
+    ])
+
     curs.execute(db_change("insert into history (id, title, data, date, ip, send, leng, hide, type) values (?, ?, ?, ?, ?, ?, ?, '', ?)"), [
         id_data,
         title,

+ 2 - 2
version.json

@@ -1,7 +1,7 @@
 {
     "master" : {
-        "r_ver" : "v3.1.9-master-12",
-        "c_ver" : "3190201",
+        "r_ver" : "v3.1.9-master-13",
+        "c_ver" : "3191301",
         "s_ver" : "8"
     }, "stable" : {
         "r_ver" : "v3.1.8-stable-06",