فهرست منبع

차단 시스템 개편

Surplus_Up (2DU) 7 سال پیش
والد
کامیت
71bb40a0aa
5فایلهای تغییر یافته به همراه19 افزوده شده و 56 حذف شده
  1. 8 42
      app.py
  2. 8 4
      func.py
  3. 2 4
      language/en-US.json
  4. 1 3
      language/ko-KR.json
  5. 0 3
      views/main_css/main.css

+ 8 - 42
app.py

@@ -2824,6 +2824,9 @@ def logout():
 def user_ban(name = None):
     curs.execute("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(None, None) != 1:
             return re_error('/error/4')
@@ -2832,13 +2835,10 @@ def user_ban(name = None):
         if admin_check(1, 'ban (' + name + ')') != 1:
             return re_error('/error/3')
 
-        if flask.request.form.get('year', 'no_end') == 'no_end':
-            end = ''
+        if flask.request.form.get('limitless', '') == '':
+            end = flask.request.form.get('second', '0')
         else:
-            end = flask.request.form.get('year', '') + '-' + flask.request.form.get('month', '') + '-' + flask.request.form.get('day', '')
-
-        if end == '--':
-            end = ''
+            end = '0'
 
         ban_insert(name, end, flask.request.form.get('why', ''), flask.request.form.get('login', ''), ip_check())
 
@@ -2850,7 +2850,7 @@ def user_ban(name = None):
         curs.execute("select end, why from ban where block = ?", [name])
         end = curs.fetchall()
         if end:
-            now = load_lang('ban') + ' ' + load_lang('release')
+            now = load_lang('release')
 
             if end[0][0] == '':
                 data = '<ul><li>' + load_lang('limitless') + ' ' + load_lang('ban') + '</li>'
@@ -2871,47 +2871,13 @@ def user_ban(name = None):
 
             m = re.search('^([0-9]{4})-([0-9]{2})-([0-9]{2})', now_time)
             g = m.groups()
-
-            year = '<option value="no_end">' + load_lang('limitless') + '</option>'
-            for i in range(int(g[0]), int(g[0]) + 11):
-                if i == int(g[0]):
-                    year += '<option value="' + str(i) + '" selected>' + str(i) + '</option>'
-                else:
-                    year += '<option value="' + str(i) + '">' + str(i) + '</option>'
-
-            month = ''
-            for i in range(1, 13):
-                if int(i / 10) == 0:
-                    num = '0' + str(i)
-                else:
-                    num = str(i)
-
-                if i == int(g[1]):
-                    month += '<option value="' + num + '" selected>' + num + '</option>'
-                else:
-                    month += '<option value="' + num + '">' + num + '</option>'
-                
-            day = ''
-            for i in range(1, 32):
-                if int(i / 10) == 0:
-                    num = '0' + str(i)
-                else:
-                    num = str(i)
-
-                if i == int(g[2]):
-                    day += '<option value="' + num + '" selected>' + num + '</option>'
-                else:
-                    day += '<option value="' + num + '">' + num + '</option>'
             
             if ip_or_user(name) == 1:
                 plus = '<input type="checkbox" name="login"> ' + load_lang('login') + ' ' + load_lang('able') + '<hr>'
             else:
                 plus = ''
 
-            data = '<select name="year">' + year + '</select> ' + load_lang('year') + ' '
-            data += '<select name="month">' + month + '</select> ' + load_lang('month') + ' '
-            data += '<select name="day">' + day + '</select> ' + load_lang('day') + ' <hr>'
-
+            data = '<input placeholder="' + load_lang('second') + '" name="second" type="text"><hr><input type="checkbox" name="limitless"> ' + load_lang('limitless') + '<hr>'
             data += '<input placeholder="' + load_lang('why') + '" name="why" type="text"><hr>' + plus
 
         return css_html_js_minify.html_minify(flask.render_template(skin_check(), 

+ 8 - 4
func.py

@@ -561,11 +561,15 @@ def ban_insert(name, end, why, login, blocker):
         else:
             login = ''
 
-        if end != '':
-            end += ' 00:00:00'
+        if end != '0':
+            time = datetime.datetime.now()
+            plus = datetime.timedelta(seconds = int(end))
+            r_time = (time + plus).strftime("%Y-%m-%d %H:%M:%S")
+        else:
+            r_time = ''
 
-        curs.execute("insert into rb (block, end, today, blocker, why, band) values (?, ?, ?, ?, ?, ?)", [name, end, time, blocker, why, band])
-        curs.execute("insert into ban (block, end, why, band, login) values (?, ?, ?, ?, ?)", [name, end, why, band, login])
+        curs.execute("insert into rb (block, end, today, blocker, why, band) values (?, ?, ?, ?, ?, ?)", [name, r_time, time, blocker, why, band])
+        curs.execute("insert into ban (block, end, why, band, login) values (?, ?, ?, ?, ?)", [name, r_time, why, band, login])
     
     conn.commit()
 

+ 2 - 4
language/en-US.json

@@ -57,7 +57,7 @@
     "restart" : "Restart",
     "agreement" : "Agreement",
     "backlink" : "Back Link",
-    "why" : "Why",
+    "why" : "Reason",
     "random" : "Random",
     "authority" : "Authority",
     "file" : "File",
@@ -78,9 +78,7 @@
     "register" : "Register",
     "no_alarm" : "There is no alram available",
     "able" : "Able",
-    "year" : "Year",
-    "month" : "Month",
-    "day" : "Day",
+    "second": "Second(s)",
     "normal" : "Normal",
     "subscriber" : "Registor",
     "admin" : "Admin",

+ 1 - 3
language/ko-KR.json

@@ -35,9 +35,7 @@
     "register": "회원가입",
     "no_alarm": " 알림이 없습니다.",
     "able": "가능",
-    "year": "년",
-    "month": "월",
-    "day": "일",
+    "second": "초",
     "normal": "일반",
     "subscriber": "가입자",
     "admin": "관리자",

+ 0 - 3
views/main_css/main.css

@@ -17,9 +17,6 @@ td#toron_color_blue { background: skyblue; }
 div#cate { border: 1px solid; padding: 5px; }
 td#toron_color_red { background: indianred; }
 #toron { width: 100%; }
-@media (max-width: 768px) { table { min-width: 100%; } }
-@media (min-width: 1024px) { body { width: 80%; margin: auto; padding: 10px; border: 1px solid; } }
-@media (min-width: 1920px) { body { width: 60%; } }
 blockquote { border: 1px solid; padding: 15px; margin: 0; margin-top: 10px; }
 img, iframe { max-width: 100%; }
 pre { border: 1px solid; padding: 10px; white-space: pre-wrap; }