Surplus_Up (2DU) před 6 roky
rodič
revize
3649982188

+ 4 - 0
app.py

@@ -538,6 +538,10 @@ def list_user_topic(name = None):
 @app.route('/<regex("history"):tool>/<everything:name>', methods=['POST', 'GET'])
 def recent_changes(name = None, tool = 'record'):
     return recent_changes_2(conn, name, tool)
+
+@app.route('/history_tool/<everything:name>')
+def recent_history_tool(name = None):
+    return recent_history_tool_2(conn, name)
     
 @app.route('/upload', methods=['GET', 'POST'])
 def func_upload():

+ 5 - 15
route/recent_changes.py

@@ -119,11 +119,7 @@ def recent_changes_2(conn, name, tool):
                 leng = '<span style="color:gray;">(' + data[5] + ')</span>'
                 
             ip = ip_pas(data[3])
-            if int(data[0]) - 1 == 0:
-                revert = ''
-            else:
-                revert = '<a href="/diff/' + url_pas(data[1]) + '?first=' + str(int(data[0]) - 1) + '&second=' + data[0] + '">(' + load_lang('compare') + ')</a>'
-                revert += ' <a href="/revert/' + url_pas(data[1]) + '?num=' + str(int(data[0]) - 1) + '">(' + load_lang('revert') + ')</a>'
+            m_tool = '<a href="/history_tool/' + url_pas(data[1]) + '?num=' + data[0] + '">(' + load_lang('tool') + ')</a>'
             
             style = ['', '']
             date = data[2]
@@ -135,9 +131,7 @@ def recent_changes_2(conn, name, tool):
             hide = curs.fetchall()
             
             if six_admin == 1:
-                if hide:                            
-                    hidden = ' <a href="/hidden/' + url_pas(data[1]) + '?num=' + data[0] + '">(' + load_lang('hide_release') + ')'
-                    
+                if hide:                    
                     style[0] = 'id="toron_color_grey"'
                     style[1] = 'id="toron_color_grey"'
                     
@@ -145,13 +139,10 @@ def recent_changes_2(conn, name, tool):
                         send = '(' + load_lang('hide') + ')'
                     else:
                         send += ' (' + load_lang('hide') + ')'
-                else:
-                    hidden = ' <a href="/hidden/' + url_pas(data[1]) + '?num=' + data[0] + '">(' + load_lang('hide') + ')'
             elif not hide:
-                hidden = ''
+                pass
             else:
                 ip = ''
-                hidden = ''
                 ban = ''
                 date = ''
 
@@ -162,15 +153,14 @@ def recent_changes_2(conn, name, tool):
 
             if tool == 'history':
                 title = '<a href="/w/' + url_pas(name) + '?num=' + data[0] + '">r' + data[0] + '</a> '
-                title += '<a href="/raw/' + url_pas(name) + '?num=' + data[0] + '">(' + load_lang('raw') + ')</a> '
             else:
                 title = '<a href="/w/' + url_pas(data[1]) + '">' + html.escape(data[1]) + '</a> '
                 title += '<a href="/history/' + url_pas(data[1]) + '">(r' + data[0] + ')</a> '
 
             div +=  '''
                 <tr ''' + style[0] + '''>
-                    <td>''' + title + revert + ' ' + leng + '''</td>
-                    <td>''' + ip + ban + hidden + '''</td>
+                    <td>''' + title + m_tool + ' ' + leng + '''</td>
+                    <td>''' + ip + ban + '''</td>
                     <td>''' + date + '''</td>
                 </tr>
                 <tr ''' + style[1] + '''>

+ 46 - 0
route/recent_history_tool.py

@@ -0,0 +1,46 @@
+from .tool.func import *
+
+def recent_history_tool_2(conn, name):
+    curs = conn.cursor()
+
+    num = str(int(number_check(flask.request.args.get('num', '1'))))
+
+    data = '''
+        <h2>''' + load_lang('tool') + '''</h2>
+        <ul>
+            <li>
+                <a href="/raw/''' + url_pas(name) + '?num=' + num + '">' + load_lang('raw') + '''</a> 
+            </li>
+    '''
+
+    if (int(num) - 1) > 0:
+        data += '''
+            <li>
+                <a href="/diff/''' + url_pas(name) + '?first=''' + str(int(num) - 1) + '&second=' + num + '">' + load_lang('compare') + '''</a>
+            </li>
+            <li>
+                <a href="/revert/''' + url_pas(name) + '?num=' + str(int(num) - 1) + '">' + load_lang('revert') + '''</a>
+            </li>
+        '''
+
+    if admin_check(6) == 1:
+        curs.execute('''
+            select title from history
+            where title = ? and id = ? and hide = 'O'
+        ''', [name, num])
+        hide = curs.fetchall()
+        data += '''
+            <li>
+                <a href="/hidden/''' + url_pas(name) + '?num=' + num + '">' + (load_lang('hide_release') if hide else load_lang('hide')) + '''
+            </li>
+        '''
+
+    data += '''
+        </ul>
+    '''
+                
+    return easy_minify(flask.render_template(skin_check(), 
+        imp = [name, wiki_set(), custom(), other2(['(r' + num + ')', 0])],
+        data = data,
+        menu = [['history/' + url_pas(name), load_lang('return')]]
+    ))

+ 4 - 6
route/tool/func.py

@@ -993,13 +993,11 @@ def leng_check(first, second):
     return all_plus
 
 def number_check(data):
-    if not data:
+    try:
+        int(data)
+        return data
+    except:
         return '1'
-    else:
-        if re.search('[^0-9]', data):
-            return '1'
-        else:
-            return data
 
 def edit_filter_do(data):
     if admin_check(1) != 1:

+ 1 - 1
route/tool/set_mark/namu.py

@@ -259,7 +259,7 @@ def middle_parser(data, fol_num, syntax_num, folding_num):
                                                         if folding_num == 0:
                                                             folding_num = 1
                                                         
-                                                        data = re.sub('{{{#!folding ?((?:(?!\n).)*)\n?', '<div>' + str(folding_data[0]) + ' <div style="display: inline-block;"><a href="javascript:void(0);" onclick="folding(' + str(fol_num) + ');">[do]</a></div_end><div id="folding_' + str(fol_num) + '" style="display: none;"><div id="wiki_div" style="">', data, 1)
+                                                        data = re.sub('{{{#!folding ?((?:(?!\n).)*)\n?', '<div>' + str(folding_data[0]) + ' <div style="display: inline-block;"><a href="javascript:void(0);" onclick="folding(' + str(fol_num) + ');">[+]</a></div_end><div id="folding_' + str(fol_num) + '" style="display: none;"><div id="wiki_div" style="">', data, 1)
                                                         
                                                         fol_num += 1
                                                     else:

+ 6 - 2
route/view_diff_data.py

@@ -3,8 +3,12 @@ from .tool.func import *
 def view_diff_data_2(conn, name):
     curs = conn.cursor()
 
-    first = flask.request.args.get('first', '1')
-    second = flask.request.args.get('second', '1')
+    first = number_check(flask.request.args.get('first', '1'))
+    second = number_check(flask.request.args.get('second', '1'))
+
+    curs.execute("select title from history where title = ? and id = ? or id = ? and hide = 'O'", [name, first, second])
+    if curs.fetchall() and admin_check(6) != 1:
+        return re_error('/error/3')
 
     curs.execute("select data from history where id = ? and title = ?", [first, name])
     first_raw_data = curs.fetchall()

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "master" : {
-        "r_ver" : "v3.1.2-master-21",
+        "r_ver" : "v3.1.2-master-22",
         "c_ver" : "400002",
         "s_ver" : "2"
     }, "stable" : {