فهرست منبع

정규식 차단 해제 추가

Surplus_Up (2DU) 6 سال پیش
والد
کامیت
3abeb27271
3فایلهای تغییر یافته به همراه42 افزوده شده و 23 حذف شده
  1. 18 12
      route/give_user_ban.py
  2. 23 10
      route/recent_block.py
  3. 1 1
      version.json

+ 18 - 12
route/give_user_ban.py

@@ -3,15 +3,17 @@ from .tool.func import *
 def give_user_ban_2(conn, name):
     curs = conn.cursor()
 
-    if name and ip_or_user(name) == 0:
-        curs.execute(db_change("select acl from user where id = ?"), [name])
-        user = curs.fetchall()
-        if not user:
-            return re_error('/error/2')
-
-        if user and user[0][0] != 'user':
-            if admin_check() != 1:
-                return re_error('/error/4')
+    band = flask.request.args.get('type', '')
+    if band == '':
+        if name and ip_or_user(name) == 0:
+            curs.execute(db_change("select acl from user where id = ?"), [name])
+            user = curs.fetchall()
+            if not user:
+                return re_error('/error/2')
+
+            if user and user[0][0] != 'user':
+                if admin_check() != 1:
+                    return re_error('/error/4')
 
     if ban_check(ip = ip_check(), tool = 'login') == 1:
         return re_error('/ban')
@@ -21,9 +23,10 @@ def give_user_ban_2(conn, name):
 
         end = flask.request.form.get('second', '0')
         end = end if end else '0'
+        regex_get = flask.request.form.get('regex', None)
 
-        if flask.request.form.get('regex', None):
-            type_d = 'regex'
+        if regex_get or band != '':
+            type_d = 'regex' if regex_get else band
 
             try:
                 re.compile(name)
@@ -49,7 +52,7 @@ def give_user_ban_2(conn, name):
         if admin_check(1) != 1:
             return re_error('/error/3')
 
-        curs.execute(db_change("select end, why from rb where block = ? and ongoing = '1'"), [name])
+        curs.execute(db_change("select end, why from rb where block = ? and ongoing = '1' and band = ?"), [name, band])
         end = curs.fetchall()
         if end:
             main_name = name
@@ -70,6 +73,9 @@ def give_user_ban_2(conn, name):
             else:
                 data += '</ul><hr class="main_hr">'
         else:
+            if band != '':
+                return redirect('/ban')
+
             if name:
                 main_name = name
                 b_now = load_lang('ban')

+ 23 - 10
route/recent_block.py

@@ -25,10 +25,10 @@ def recent_block_2(conn, name, tool):
             menu = [['block_log', load_lang('normal')]]
 
             curs.execute(db_change("" + \
-                "select why, block, blocker, end, today, band from rb " + \
+                "select why, block, blocker, end, today, band, ongoing from rb " + \
                 "where ((end > ? and end like '2%') or end = '') and ongoing = '1' " + \
-                "order by end desc limit ?, 50"
-            ), [
+                "order by end desc limit ?, 50" + \
+            ""), [
                 get_time(),
                 sql_num
             ])
@@ -43,21 +43,30 @@ def recent_block_2(conn, name, tool):
                 '<hr class="main_hr">' + \
             '' + div
 
-            curs.execute(db_change("select why, block, blocker, end, today, band from rb order by today desc limit ?, 50"), [sql_num])
+            curs.execute(db_change("" + \
+                "select why, block, blocker, end, today, band, ongoing " + \
+                "from rb order by today desc limit ?, 50" + \
+            ""), [sql_num])
     else:
         menu = [['block_log', load_lang('normal')]]
 
         if tool == 'block_user':
             sub = ' (' + load_lang('blocked') + ')'
 
-            curs.execute(db_change("select why, block, blocker, end, today, band from rb where block = ? order by today desc limit ?, 50"), [
+            curs.execute(db_change("" + \
+                "select why, block, blocker, end, today, band, ongoing " + \
+                "from rb where block = ? order by today desc limit ?, 50" + \
+            ""), [
                 name, 
                 sql_num
             ])
         else:
             sub = ' (' + load_lang('admin') + ')'
 
-            curs.execute(db_change("select why, block, blocker, end, today, band from rb where blocker = ? order by today desc limit ?, 50"), [
+            curs.execute(db_change("" + \
+                "select why, block, blocker, end, today, band, ongoing " + \
+                "from rb where blocker = ? order by today desc limit ?, 50" + \
+            ""), [
                 name, 
                 sql_num
             ])
@@ -67,10 +76,14 @@ def recent_block_2(conn, name, tool):
     for data in data_list:
         why = '<br>' if data[0] == '' else html.escape(data[0])
 
-        if data[5] == 'O':
-            ip = data[1] + ' (' + load_lang('range') + ')'
-        elif data[5] == 'regex':
-            ip = data[1] + ' (' + load_lang('regex') + ')'
+        if data[5] == 'regex':
+            ip = data[1]
+            if data[6] == '1':
+                ip = '<s>' + ip + '</s> <a href="/ban/' + url_pas(data[1]) + '?type=regex">(' + load_lang('release') + ')</a>'
+            else:
+                ip += ' <a href="/ban/' + url_pas(data[1]) + '?type=regex">(' + load_lang('ban') + ')</a>'
+                
+            ip += ' (' + load_lang('regex') + ')'
         else:
             ip = all_ip[data[1]]
 

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "master" : {
-        "r_ver" : "v3.1.9-master-34",
+        "r_ver" : "v3.1.9-master-35",
         "c_ver" : "3193200",
         "s_ver" : "9"
     }, "stable" : {