Selaa lähdekoodia

편집 필터 코드 통합

Surplus_Up (2DU) 7 vuotta sitten
vanhempi
sitoutus
1f74aec169
1 muutettua tiedostoa jossa 70 lisäystä ja 104 poistoa
  1. 70 104
      app.py

+ 70 - 104
app.py

@@ -313,7 +313,7 @@ def alarm():
         menu = [['user', load_lang('user')]]
     ))
 
-@app.route('/<regex("inter_wiki|html_filter"):tools>')
+@app.route('/<regex("inter_wiki|html_filter|edit_filter"):tools>')
 def inter_wiki(tools = None):
     div = ''
     admin = admin_check(None, None)
@@ -325,13 +325,20 @@ def inter_wiki(tools = None):
         div = ''
 
         curs.execute('select title, link from inter')
-    else:
+    elif tools == 'html_filter':
         del_link = 'del_html_filter'
         plus_link = 'plus_html_filter'
         title = 'html' + load_lang('filter') + ' ' + load_lang('list')
         div = '<ul><li>span</li><li>div</li><li>iframe</li></ul>'
 
         curs.execute('select html from html_filter')
+    else:
+        del_link = 'del_edit_filter'
+        plus_link = 'manager/9'
+        title = load_lang('edit') + ' ' + load_lang('filter') + ' ' + load_lang('list')
+        div = ''
+
+        curs.execute("select name from filter")
 
     db_data = curs.fetchall()
     if db_data:
@@ -340,8 +347,10 @@ def inter_wiki(tools = None):
         for data in db_data:
             if tools == 'inter_wiki':
                 div += '<li>' + data[0] + ' : <a id="out_link" href="' + data[1] + '">' + data[1] + '</a>'
-            else:
+            elif tools == 'html_filter':
                 div += '<li>' + data[0]
+            else:
+                div += '<li><a href="/plus_edit_filter/' + url_pas(data[0]) + '">' + data[0] + '</a>'
 
             if admin == 1:
                 div += ' <a href="/' + del_link + '/' + url_pas(data[0]) + '">(' + load_lang('delete') + ')</a>'
@@ -362,13 +371,15 @@ def inter_wiki(tools = None):
         menu = [['other', load_lang('other')]]
     ))
 
-@app.route('/<regex("del_(inter_wiki|html_filter)"):tools>/<name>')
+@app.route('/<regex("del_(inter_wiki|html_filter|edit_filter)"):tools>/<name>')
 def del_inter(tools = None, name = None):
-    if admin_check(None, None) == 1:
+    if admin_check(None, tools) == 1:
         if tools == 'del_inter_wiki':
             curs.execute("delete from inter where title = ?", [name])
-        else:
+        elif tools == 'del_html_filter':
             curs.execute("delete from html_filter where html = ?", [name])
+        else:
+            curs.execute("delete from filter where name = ?", [name])
         
         conn.commit()
 
@@ -377,25 +388,70 @@ def del_inter(tools = None, name = None):
         return re_error('/error/3')
 
 @app.route('/<regex("plus_(inter_wiki|html_filter)"):tools>', methods=['POST', 'GET'])
-def plus_inter(tools = None):
+@app.route('/<regex("plus_edit_filter"):tools>/<name>', methods=['POST', 'GET'])
+def plus_inter(tools = None, name = None):
     if flask.request.method == 'POST':
         if tools == 'plus_inter_wiki':
             curs.execute('insert into inter (title, link) values (?, ?)', [flask.request.form.get('title', None), flask.request.form.get('link', None)])
-        else:
+            admin_check(None, 'inter_wiki_plus')
+        elif tools == 'plus_html_filter':
             curs.execute('insert into html_filter (html) values (?)', [flask.request.form.get('title', None)])
+            admin_check(None, 'html_filter edit')
+        else:
+            if admin_check(1, 'edit_filter edit') != 1:
+                return re_error('/error/3')
+
+            if flask.request.form.get('limitless', '') != '':
+                end = 'X'
+            else:
+                end = flask.request.form.get('second', 'X')
+
+            curs.execute("select name from filter where name = ?", [name])
+            if curs.fetchall():
+                curs.execute("update filter set regex = ?, sub = ? where name = ?", [flask.request.form.get('content', 'test'), end, name])
+            else:
+                curs.execute("insert into filter (name, regex, sub) values (?, ?, ?)", [name, flask.request.form.get('content', 'test'), end])
         
         conn.commit()
-        
-        admin_check(None, 'inter_wiki_plus')
     
         return redirect('/' + re.sub('^plus_', '', tools))
     else:
+        if admin_check(1, None) != 1:
+            stat = 'disabled'
+        else:
+            stat = ''
+
         if tools == 'plus_inter_wiki':
             title = load_lang('interwiki') + ' ' + load_lang('plus')
             form_data = '<input placeholder="' + load_lang('name') + '" type="text" name="title"><hr><input placeholder="link" type="text" name="link">'
-        else:
+        elif tools == 'plus_html_filter':
             title = 'html ' + load_lang('filter') + ' ' + load_lang('plus')
             form_data = '<input placeholder="html" type="text" name="title">'
+        else:
+            curs.execute("select regex, sub from filter where name = ?", [name])
+            exist = curs.fetchall()
+            if exist:
+                textarea = exist[0][0]
+                
+                if exist[0][1] == 'X':
+                    time_check = 'checked="checked"'
+                    time_data = ''
+                else:
+                    time_check = ''
+                    time_data = exist[0][1]
+            else:
+                textarea = ''
+                time_check = ''
+                time_data = ''
+
+            title = load_lang('edit') + ' ' + load_lang('filter') + ' ' + load_lang('plus')
+            form_data = '''
+                        <input placeholder="''' + load_lang('second') + '''" name="second" type="text" value="''' + html.escape(time_data) + '''">
+                        <hr>
+                        <input ''' + stat + ''' type="checkbox" ''' + time_check + ''' name="limitless"> ''' + load_lang('limitless') + '''
+                        <hr>
+                        <input ''' + stat + ''' placeholder="''' + load_lang('regex') + '''" name="content" value="''' + html.escape(textarea) + '''" type="text">
+                        '''
 
         return easy_minify(flask.render_template(skin_check(), 
             imp = [title, wiki_set(), custom(), other2([0, 0])],
@@ -403,10 +459,10 @@ def plus_inter(tools = None):
                     <form method="post">
                         ''' + form_data + '''
                         <hr>
-                        <button type="submit">''' + load_lang('plus') + '''</button>
+                        <button ''' + stat + ''' type="submit">''' + load_lang('plus') + '''</button>
                     </form>
                     ''',
-            menu = [['other', load_lang('other')]]
+            menu = [['other', load_lang('other')], [re.sub('^plus_', '', tools), load_lang('list')]]
         ))
 
 @app.route('/setting')
@@ -1528,96 +1584,6 @@ def revert(name = None):
             menu = [['history/' + url_pas(name), load_lang('history')], ['recent_changes', load_lang('recent') + ' ' + load_lang('change')]]
         ))
 
-@app.route('/edit_filter')
-def edit_filter():
-    div = '<ul>'
-    
-    curs.execute("select name from filter")
-    data = curs.fetchall()
-    for data_list in data:
-        div += '<li><a href="/edit_filter/' + url_pas(data_list[0]) + '">' + data_list[0] + '</a></li>'
-
-    div += '</ul>'
-
-    if data:
-        div += '<hr><a href="/manager/9">(' + load_lang('plus') + ')</a>'
-    else:
-        div = '<a href="/manager/9">(' + load_lang('plus') + ')</a>'
-
-    return easy_minify(flask.render_template(skin_check(), 
-        imp = [load_lang('edit') + ' ' + load_lang('filter') + ' ' + load_lang('list'), wiki_set(), custom(), other2([0, 0])],
-        data = div,
-        menu = [['manager', load_lang('admin')]]
-    ))
-
-@app.route('/edit_filter/<name>/delete', methods=['POST', 'GET'])
-def delete_edit_filter(name = None):
-    if admin_check(1, 'edit_filter delete') != 1:
-        return re_error('/error/3')
-
-    curs.execute("delete from filter where name = ?", [name])
-    conn.commit()
-
-    return redirect('/edit_filter')
-
-@app.route('/edit_filter/<name>', methods=['POST', 'GET'])
-def set_edit_filter(name = None):
-    if flask.request.method == 'POST':
-        if admin_check(1, 'edit_filter edit') != 1:
-            return re_error('/error/3')
-
-        if flask.request.form.get('limitless', '') != '':
-            end = 'X'
-        else:
-            end = flask.request.form.get('second', 'X')
-
-        curs.execute("select name from filter where name = ?", [name])
-        if curs.fetchall():
-            curs.execute("update filter set regex = ?, sub = ? where name = ?", [flask.request.form.get('content', 'test'), end, name])
-        else:
-            curs.execute("insert into filter (name, regex, sub) values (?, ?, ?)", [name, flask.request.form.get('content', 'test'), end])
-
-        conn.commit()
-    
-        return redirect('/edit_filter/' + url_pas(name))
-    else:
-        curs.execute("select regex, sub from filter where name = ?", [name])
-        exist = curs.fetchall()
-        if exist:
-            textarea = exist[0][0]
-            
-            if exist[0][1] == 'X':
-                time_check = 'checked="checked"'
-                time_data = ''
-            else:
-                time_check = ''
-                time_data = exist[0][1]
-        else:
-            textarea = ''
-            time_check = ''
-            time_data = ''
-
-        if admin_check(1, None) != 1:
-            stat = 'disabled'
-        else:
-            stat = ''
-
-        return easy_minify(flask.render_template(skin_check(), 
-            imp = [name, wiki_set(), custom(), other2([' (' + load_lang('edit') + ' ' + load_lang('filter') + ')', 0])],
-            data =  '''
-                    <form method="post">
-                        <input placeholder="''' + load_lang('second') + '''" name="second" type="text" value="''' + html.escape(time_data) + '''">
-                        <hr>
-                        <input ''' + stat + ''' type="checkbox" ''' + time_check + ''' name="limitless"> ''' + load_lang('limitless') + '''
-                        <hr>
-                        <input ''' + stat + ''' placeholder="''' + load_lang('regex') + '''" name="content" value="''' + html.escape(textarea) + '''" type="text">
-                        <hr>
-                        <button ''' + stat + ''' id="save" type="submit">''' + load_lang('save') + '''</button>
-                    </form>
-                    ''',
-            menu = [['edit_filter', load_lang('list')], ['edit_filter/' + url_pas(name) + '/delete', load_lang('delete')]]
-        ))
-
 @app.route('/edit/<everything:name>', methods=['POST', 'GET'])
 def edit(name = None):
     ip = ip_check()
@@ -2015,7 +1981,7 @@ def manager(num = 1):
         4 : [0, 'record'], 
         5 : [0, 'topic_record'], 
         6 : [load_lang('name'), 'admin_plus'], 
-        7 : [load_lang('name'), 'edit_filter'], 
+        7 : [load_lang('name'), 'plus_edit_filter'], 
         8 : [load_lang('document') + ' ' + load_lang('name'), 'search'], 
         9 : [0, 'block_user'], 
         10 : [0, 'block_admin'],