2du 4 yıl önce
ebeveyn
işleme
e1bef765c3
4 değiştirilmiş dosya ile 172 ekleme ve 158 silme
  1. 125 95
      app.py
  2. 39 49
      route/inter_wiki.py
  3. 7 13
      route/tool/func.py
  4. 1 1
      version.json

+ 125 - 95
app.py

@@ -127,75 +127,67 @@ db_data_get(data_db_set['type'])
 conn = get_conn(data_db_set)
 curs = conn.cursor()
 
-# Init-Create_DB
-create_data = {}
-
-# 폐지 예정 (data_set으로 통합)
-create_data['data'] = ['title', 'data', 'type']
-create_data['history'] = ['id', 'title', 'data', 'date', 'ip', 'send', 'leng', 'hide', 'type']
-create_data['rc'] = ['id', 'title', 'date', 'type']
-create_data['acl'] = ['title', 'data', 'type']
-
-# 개편 예정 (data_link로 변경)
-create_data['back'] = ['title', 'link', 'type']
-
-# 폐지 예정 (topic_set으로 통합) [가장 시급]
-create_data['rd'] = ['title', 'sub', 'code', 'date', 'band', 'stop', 'agree', 'acl']
-create_data['topic'] = ['id', 'data', 'date', 'ip', 'block', 'top', 'code']
-
-# 폐지 예정 (user_set으로 통합)
-create_data['rb'] = ['block', 'end', 'today', 'blocker', 'why', 'band', 'login', 'ongoing']
-create_data['scan'] = ['user', 'title', 'type']
-
-# 개편 예정 (wiki_set과 wiki_filter과 wiki_vote으로 변경)
-create_data['other'] = ['name', 'data', 'coverage']
-create_data['html_filter'] = ['html', 'kind', 'plus', 'plus_t']
-create_data['vote'] = ['name', 'id', 'subject', 'data', 'user', 'type', 'acl']
-
-# 개편 예정 (auth_list와 auth_log로 변경)
-create_data['alist'] = ['name', 'acl']
-create_data['re_admin'] = ['who', 'what', 'time']
-
-# 개편 예정 (user_notice와 user_agent로 변경)
-create_data['alarm'] = ['name', 'data', 'date']
-create_data['ua_d'] = ['name', 'ip', 'ua', 'today', 'sub']
-
-create_data['user_set'] = ['name', 'id', 'data']
-for create_table in create_data:
-    try:
-        curs.execute(db_change('select test from ' + create_table + ' limit 1'))
-    except:
-        try:
-            curs.execute(db_change('create table ' + create_table + '(test longtext)'))
-        except:
-            curs.execute(db_change("alter table " + create_table + " add test longtext"))
-            
-    for create in create_data[create_table]:
-        try:
-            curs.execute(db_change(
-                'select ' + create + ' from ' + create_table + ' limit 1'
-            ))
-        except:
+setup_tool = ''
+try:
+    curs.execute(db_change('select data from other where name = "ver"'))
+except:
+    setup_tool = 'init'
+    
+if setup_tool != 'init':
+    ver_set_data = curs.fetchall()
+    if ver_set_data:
+        if int(version_list['beta']['c_ver']) > int(ver_set_data[0][0]):
+            setup_tool = 'update'
+        else:
+            setup_tool = 'normal'
+    else:
+        setup_tool = 'init'
+    
+if setup_tool != 'normal':
+    # Init-Create_DB
+    create_data = {}
+
+    # 폐지 예정 (data_set으로 통합)
+    create_data['data'] = ['title', 'data', 'type']
+    create_data['history'] = ['id', 'title', 'data', 'date', 'ip', 'send', 'leng', 'hide', 'type']
+    create_data['rc'] = ['id', 'title', 'date', 'type']
+    create_data['acl'] = ['title', 'data', 'type']
+
+    # 개편 예정 (data_link로 변경)
+    create_data['back'] = ['title', 'link', 'type']
+
+    # 폐지 예정 (topic_set으로 통합) [가장 시급]
+    create_data['rd'] = ['title', 'sub', 'code', 'date', 'band', 'stop', 'agree', 'acl']
+    create_data['topic'] = ['id', 'data', 'date', 'ip', 'block', 'top', 'code']
+
+    # 폐지 예정 (user_set으로 통합)
+    create_data['rb'] = ['block', 'end', 'today', 'blocker', 'why', 'band', 'login', 'ongoing']
+    create_data['scan'] = ['user', 'title', 'type']
+
+    # 개편 예정 (wiki_set과 wiki_filter과 wiki_vote으로 변경)
+    create_data['other'] = ['name', 'data', 'coverage']
+    create_data['html_filter'] = ['html', 'kind', 'plus', 'plus_t']
+    create_data['vote'] = ['name', 'id', 'subject', 'data', 'user', 'type', 'acl']
+
+    # 개편 예정 (auth_list와 auth_log로 변경)
+    create_data['alist'] = ['name', 'acl']
+    create_data['re_admin'] = ['who', 'what', 'time']
+
+    # 개편 예정 (user_notice와 user_agent로 변경)
+    create_data['alarm'] = ['name', 'data', 'date']
+    create_data['ua_d'] = ['name', 'ip', 'ua', 'today', 'sub']
+
+    create_data['user_set'] = ['name', 'id', 'data']
+    for create_table in create_data:
+        for create in ['test'] + create_data[create_table]:
             try:
-                curs.execute(db_change(
-                    "alter table " + create_table + " add " + create + " longtext default ''"
-                ))
+                curs.execute(db_change('select ' + create + ' from ' + create_table + ' limit 1'))
             except:
-                curs.execute(db_change(
-                    "alter table " + create_table + " add " + create + " longtext"
-                ))
-
-curs.execute(db_change('select data from other where name = "ver"'))
-ver_set_data = curs.fetchall()
-if ver_set_data:
-    if int(version_list['beta']['c_ver']) > int(ver_set_data[0][0]):
-        setup_tool = 'update'
-    else:
-        setup_tool = 'normal'
-else:
-    setup_tool = 'init'
+                try:
+                    curs.execute(db_change('create table ' + create_table + '(test longtext default "")'))
+                except:
+                    curs.execute(db_change("alter table " + create_table + " add column " + create + " longtext default ''"))
 
-if setup_tool != 'normal':
     if setup_tool == 'update':
         update(int(ver_set_data[0][0]), set_data)
     else:
@@ -356,39 +348,77 @@ if os.path.exists('custom.py'):
     from custom import custom_run
 
     custom_run(conn, app)
-
-# 전체 파라미터 제거 및 URL화 (한 눈에 모든 URL이 관리되게)
-# 되도록 1기능 1라우터
     
 # Func
 # Func-inter_wiki
-# 개편 필요(각각 분리 예정)
-@app.route('/<regex("inter_wiki"):tools>')
-@app.route('/<regex("edit_top"):tools>')
-@app.route('/<regex("image_license"):tools>')
-@app.route('/<regex("edit_filter"):tools>')
-@app.route('/<regex("email_filter"):tools>')
-@app.route('/<regex("file_filter"):tools>')
-@app.route('/<regex("name_filter"):tools>')
-@app.route('/<regex("extension_filter"):tools>')
-def inter_wiki(tools = None):
-    return inter_wiki_2(conn, tools)
-
-@app.route('/<regex("del_inter_wiki"):tools>')
-@app.route('/<regex("del_edit_top"):tools>')
-@app.route('/<regex("del_image_license"):tools>')
-@app.route('/<regex("del_edit_filter"):tools>')
-@app.route('/<regex("del_email_filter"):tools>')
-@app.route('/<regex("del_file_filter"):tools>')
-@app.route('/<regex("del_name_filter"):tools>')
-@app.route('/<regex("del_extension_filter"):tools>')
-def inter_wiki_del(tools = None, name = None):
-    return inter_wiki_del_2(conn, tools, name)
-
-@app.route('/<regex("plus_(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name|extension)_filter)"):tools>', methods = ['POST', 'GET'])
-@app.route('/<regex("plus_(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name|extension)_filter)"):tools>/<name>', methods = ['POST', 'GET'])
+@app.route('/inter_wiki')
+def inter_wiki():
+    return inter_wiki_2(conn, 'inter_wiki')
+
+@app.route('/inter_wiki/del/<name>')
+def inter_wiki_del(name = 'Test'):
+    return inter_wiki_del_2(conn, 'del_inter_wiki', name)
+
+@app.route('/edit_top')
+def inter_wiki_edit_top():
+    return inter_wiki_2(conn, 'edit_top')
+
+@app.route('/edit_top/del/<name>')
+def inter_wiki_edit_top_del(name = 'Test'):
+    return inter_wiki_del_2(conn, 'del_edit_top', name)
+
+@app.route('/image_license')
+def inter_wiki_image_license():
+    return inter_wiki_2(conn, 'image_license')
+
+@app.route('/image_license/del/<name>')
+def inter_wiki_image_license_del(name = 'Test'):
+    return inter_wiki_del_2(conn, 'del_image_license', name)
+
+@app.route('/edit_filter')
+def inter_wiki_edit_filter():
+    return inter_wiki_2(conn, 'edit_filter')
+
+@app.route('/edit_filter/del/<name>')
+def inter_wiki_edit_filter_del(name = 'Test'):
+    return inter_wiki_del_2(conn, 'del_edit_filter', name)
+
+@app.route('/email_filter')
+def inter_wiki_email_filter():
+    return inter_wiki_2(conn, 'email_filter')
+
+@app.route('/email_filter/del/<name>')
+def inter_wiki_email_filter_del(name = 'Test'):
+    return inter_wiki_del_2(conn, 'del_email_filter', name)
+
+@app.route('/file_filter')
+def inter_wiki_file_filter():
+    return inter_wiki_2(conn, 'file_filter')
+
+@app.route('/file_filter/del/<name>')
+def inter_wiki_file_filter_del(name = 'Test'):
+    return inter_wiki_del_2(conn, 'del_file_filter', name)
+
+@app.route('/name_filter')
+def inter_wiki_name_filter():
+    return inter_wiki_2(conn, 'name_filter')
+
+@app.route('/name_filter/del/<name>')
+def inter_wiki_name_filter_del(name = 'Test'):
+    return inter_wiki_del_2(conn, 'del_name_filter', name)
+
+@app.route('/extension_filter')
+def inter_wiki_extension_filter():
+    return inter_wiki_2(conn, 'extension_filter')
+
+@app.route('/extension_filter/del/<name>')
+def inter_wiki_extension_filter_del(name = 'Test'):
+    return inter_wiki_del_2(conn, 'del_extension_filter', name)
+
+@app.route('/<regex("(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name|extension)_filter)"):tools>/add', methods = ['POST', 'GET'])
+@app.route('/<regex("(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name|extension)_filter)"):tools>/add/<name>', methods = ['POST', 'GET'])
 def inter_wiki_plus(tools = None, name = None):
-    return inter_wiki_plus_2(conn, tools, name)
+    return inter_wiki_plus_2(conn, 'plus_' + tools, name)
 
 # Func-list
 # /list/topic/open

+ 39 - 49
route/inter_wiki.py

@@ -3,98 +3,88 @@ from .tool.func import *
 def inter_wiki_2(conn, tools):
     curs = conn.cursor()
 
-    div = ''
+    div = '<table id="main_table_set">'
+    div += '<tr id="main_table_top_tr">'
+    
+    div += '<td id="main_table_width">A</td>'
+    div += '<td id="main_table_width">B</td>'
+    div += '<td id="main_table_width">C</td>'
+    
+    div += '</tr>'
+    
     admin = admin_check()
 
     if tools == 'inter_wiki':
-        del_link = 'del_inter_wiki'
         plus_link = 'plus_inter_wiki'
         title = load_lang('interwiki_list')
-        div = ''
 
-        curs.execute(db_change("select html, plus from html_filter where kind = 'inter_wiki'"))
+        curs.execute(db_change("select html, plus, plus_t from html_filter where kind = 'inter_wiki'"))
     elif tools == 'email_filter':
-        del_link = 'del_email_filter'
         plus_link = 'plus_email_filter'
         title = load_lang('email_filter_list')
-        div = ''
 
-        curs.execute(db_change("select html from html_filter where kind = 'email'"))
+        curs.execute(db_change("select html, plus, plus_t from html_filter where kind = 'email'"))
     elif tools == 'name_filter':
-        del_link = 'del_name_filter'
         plus_link = 'plus_name_filter'
         title = load_lang('id_filter_list')
-        div = ''
 
-        curs.execute(db_change("select html from html_filter where kind = 'name'"))
+        curs.execute(db_change("select html, plus, plus_t from html_filter where kind = 'name'"))
     elif tools == 'edit_filter':
-        del_link = 'del_edit_filter'
         plus_link = 'plus_edit_filter'
         title = load_lang('edit_filter_list')
-        div = ''
 
-        curs.execute(db_change("select html from html_filter where kind = 'regex_filter'"))
+        curs.execute(db_change("select html, plus, plus_t from html_filter where kind = 'regex_filter'"))
     elif tools == 'file_filter':
-        del_link = 'del_file_filter'
         plus_link = 'plus_file_filter'
         title = load_lang('file_filter_list')
-        div = ''
 
-        curs.execute(db_change("select html from html_filter where kind = 'file'"))
+        curs.execute(db_change("select html, plus, plus_t from html_filter where kind = 'file'"))
     elif tools == 'file_filter':
-        del_link = 'del_file_filter'
         plus_link = 'plus_file_filter'
         title = load_lang('file_filter_list')
-        div = ''
 
-        curs.execute(db_change("select html from html_filter where kind = 'file'"))
+        curs.execute(db_change("select html, plus, plus_t from html_filter where kind = 'file'"))
     elif tools == 'image_license':
-        del_link = 'del_image_license'
         plus_link = 'plus_image_license'
         title = load_lang('image_license_list')
-        div = ''
 
-        curs.execute(db_change("select html from html_filter where kind = 'image_license'"))
+        curs.execute(db_change("select html, plus, plus_t from html_filter where kind = 'image_license'"))
     elif tools == 'extension_filter':
-        del_link = 'del_extension_filter'
         plus_link = 'plus_extension_filter'
         title = load_lang('extension_filter_list')
-        div = ''
 
-        curs.execute(db_change("select html from html_filter where kind = 'extension'"))
+        curs.execute(db_change("select html, plus, plus_t from html_filter where kind = 'extension'"))
     else:
-        del_link = 'del_edit_top'
         plus_link = 'plus_edit_top'
         title = load_lang('edit_tool_list')
-        div = ''
 
-        curs.execute(db_change("select html, plus from html_filter where kind = 'edit_top'"))
+        curs.execute(db_change("select html, plus, plus_t from html_filter where kind = 'edit_top'"))
 
     db_data = curs.fetchall()
-    if db_data:
-        div += '<ul class="inside_ul">'
-
-        for data in db_data:
-            div += '<li>' + data[0]
-
-            if tools == 'edit_top':
-                div += ' : ' + data[1]
-            elif tools == 'inter_wiki':
-                div += ' : <a id="out_link" href="' + data[1] + '">' + data[1] + '</a>'
-
-            if admin == 1:
-                div += ' <a href="/' + plus_link + '/' + url_pas(data[0]) + '">(' + load_lang('edit') + ')</a>'
-                div += ' <a href="/' + del_link + '/' + url_pas(data[0]) + '">(' + load_lang('delete') + ')</a>'
-                
-            div += '</li>'
-
-        div += '</ul>'
+    for data in db_data:
+        div += '<tr>'
+        div += '<td>'
 
+        div += data[0]
         if admin == 1:
-            div += '<hr class="main_hr">'
+            div += ' <a href="/' + tools + '/add/' + url_pas(data[0]) + '">(' + load_lang('edit') + ')</a>'
+            div += ' <a href="/' + tools + '/del/' + url_pas(data[0]) + '">(' + load_lang('delete') + ')</a>'
+        
+        div += '</td>'
+
+        if tools == 'inter_wiki':
+            div += '<td><a id="out_link" href="' + data[1] + '">' + data[1] + '</a></td>'
+        else:
+            div += '<td>' + data[1] + '</td>'
+            
+        div += '<td>' + data[2] + '</td>'
+        div += '</tr>'
+        
+    div += '</table>'
             
-    if admin == 1:    
-        div += '<a href="/' + plus_link + '">(' + load_lang('add') + ')</a>'
+    if admin == 1:
+        div += '<hr class="main_hr">'
+        div += '<a href="/' + tools + '/add">(' + load_lang('add') + ')</a>'
 
     return easy_minify(flask.render_template(skin_check(),
         imp = [title, wiki_set(), wiki_custom(), wiki_css([0, 0])],

+ 7 - 13
route/tool/func.py

@@ -369,14 +369,14 @@ def set_init():
     if not curs.fetchall():
         for i in ['naver.com', 'gmail.com', 'daum.net', 'kakao.com']:
             curs.execute(db_change(
-                "insert into html_filter (html, kind) values (?, 'email')"
+                "insert into html_filter (html, kind, plus, plus_t) values (?, 'email', '', '')"
             ), [i])
 
     curs.execute(db_change("select html from html_filter where kind = 'extension'"))
     if not curs.fetchall():
         for i in ['jpg', 'jpeg', 'png', 'gif', 'webp']:
             curs.execute(db_change(
-                "insert into html_filter (html, kind) values (?, 'extension')"
+                "insert into html_filter (html, kind, plus, plus_t) values (?, 'extension', '', '')"
             ), [i])
 
     curs.execute(db_change(
@@ -396,8 +396,7 @@ def set_init():
     curs.execute(db_change('select data from other where name = "key"'))
     rep_data = curs.fetchall()
     if not rep_data:
-        rep_key = ''.join(random.choice("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") for i in range(64))
-        curs.execute(db_change('insert into other (name, data) values ("key", ?)'), [rep_key])
+        curs.execute(db_change('insert into other (name, data) values ("key", ?)'), [load_random_key()])
 
     curs.execute(db_change('select data from other where name = "count_all_title"'))
     if not curs.fetchall():
@@ -505,15 +504,10 @@ def next_fix(link, num, page, end = 50):
 
     return list_data
 
-def leng_check(first, second):
-    if first < second:
-        all_plus = '+' + str(second - first)
-    elif second < first:
-        all_plus = '-' + str(first - second)
-    else:
-        all_plus = '0'
-
-    return all_plus
+def leng_check(A, B):
+    # B -> new
+    # A -> old
+    return '0' if A == B else (('-' + str(A - B)) if A > B else ('+' + str(B - A)))
 
 def number_check(data):
     try:

+ 1 - 1
version.json

@@ -1,7 +1,7 @@
 {
     "beta" : {
         "r_ver" : "v3.5.0-dev (stable1) (beta1) (dev1)",
-        "c_ver" : "3400101",
+        "c_ver" : "3500101",
         "s_ver" : "3500101"
     }
 }