Przeglądaj źródła

리다이렉트 안쓰게

2DU 8 lat temu
rodzic
commit
f7a199dd3b
1 zmienionych plików z 116 dodań i 113 usunięć
  1. 116 113
      app.py

+ 116 - 113
app.py

@@ -44,6 +44,81 @@ BaseRequest.MEMFILE_MAX = 1000 ** 4
 def redirect(data):
     return('<meta http-equiv="refresh" content="0;url=' + data + '" />')
 
+def re_error(data):
+    d = re.search('\/error\/([0-9]+)', data)
+    if(d):
+        num = int(d.groups()[0])
+        if(num == 1):
+            title = '권한 오류'
+            data = '비 로그인 상태 입니다.'
+        elif(num == 2):
+            title = '권한 오류'
+            data = '이 계정이 없습니다.'
+        elif(num == 3):
+            title = '권한 오류'
+            data = '권한이 모자랍니다.'
+        elif(num == 4):
+            title = '권한 오류'
+            data = '관리자는 차단, 검사 할 수 없습니다.'
+        elif(num == 5):
+            title = '사용자 오류'
+            data = '그런 계정이 없습니다.'
+        elif(num == 6):
+            title = '가입 오류'
+            data = '동일한 아이디의 사용자가 있습니다.'
+        elif(num == 7):
+            title = '가입 오류'
+            data = '아이디는 20글자보다 짧아야 합니다.'
+        elif(num == 8):
+            title = '가입 오류'
+            data = '아이디에는 한글과 알파벳과 공백만 허용 됩니다.'
+        elif(num == 9):
+            title = '파일 올리기 오류'
+            data = '파일이 없습니다.'
+        elif(num == 10):
+            title = '변경 오류'
+            data = '비밀번호가 다릅니다.'
+        elif(num == 11):
+            title = '로그인 오류'
+            data = '이미 로그인 되어 있습니다.'
+        elif(num == 14):
+            title = '파일 올리기 오류'
+            data = 'jpg, gif, jpeg, png, webp만 가능 합니다.'
+        elif(num == 15):
+            title = '편집 오류'
+            data = '편집 기록은 500자를 넘을 수 없습니다.'
+        elif(num == 16):
+            title = '파일 올리기 오류'
+            data = '동일한 이름의 파일이 있습니다.'
+        elif(num == 17):
+            title = '파일 올리기 오류'
+            data = '파일 용량은 ' + wiki_set(4) + 'MB를 넘길 수 없습니다.'
+        elif(num == 18):
+            title = '편집 오류'
+            data = '내용이 원래 문서와 동일 합니다.'
+        elif(num == 19):
+            title = '이동 오류'
+            data = '이동 하려는 곳에 문서가 이미 있습니다.'
+        elif(num == 20):
+            title = '비밀번호 오류'
+            data = '재 확인이랑 비밀번호가 다릅니다.'
+
+        if(title):
+            return(
+                html_minify(
+                    template(
+                        'index', 
+                        imp = [title, wiki_set(1), wiki_set(3), login_check(), custom_css(), custom_js(), 0, 0],
+                        data = data,
+                        menu = 0
+                    )
+                )
+            )
+        else:
+            return(redirect('/'))
+    else:
+        return(redirect('/'))
+
 r_ver = '2.3.5'
 p_ver = ''
 
@@ -470,7 +545,7 @@ def admin_plus(name = None):
                 )
             )
     else:
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
         
 @route('/admin_list')
 def admin_list():
@@ -763,7 +838,7 @@ def indexing():
         conn.commit()
         return(redirect('/'))
     else:
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
         
 @route('/xref/<name:path>')
 @route('/xref/<name:path>/n/<num:int>')
@@ -1139,7 +1214,7 @@ def raw_view(name = None, sub_t = None, num = None):
         curs.execute("select title from hidhi where title = ? and re = ?", [name, str(num)])
         hid = curs.fetchall()
         if(hid and admin_check(6, None) != 1):
-            return(redirect('/error/3'))
+            return(re_error('/error/3'))
         
         curs.execute("select data from history where title = ? and id = ?", [name, str(num)])
 
@@ -1184,7 +1259,7 @@ def revert(name = None, num = None):
         curs.execute("select title from hidhi where title = ? and re = ?", [name, str(num)])
         hid = curs.fetchall()
         if(hid and admin_check(6, None) != 1):
-            return(redirect('/error/3'))
+            return(re_error('/error/3'))
 
         if(can == 1):
             return(redirect('/ban'))
@@ -1222,7 +1297,7 @@ def revert(name = None, num = None):
         curs.execute("select title from hidhi where title = ? and re = ?", [name, str(num)])
         hid = curs.fetchall()
         if(hid and admin_check(6, None) != 1):
-            return(redirect('/error/3'))    
+            return(re_error('/error/3'))    
                           
         if(can == 1):
             return(redirect('/ban'))
@@ -1318,7 +1393,7 @@ def m_del():
                 )
             )
     else:
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
                 
 @route('/edit/<name:path>', method=['POST', 'GET'])
 @route('/edit/<name:path>/section/<num:int>', method=['POST', 'GET'])
@@ -1331,10 +1406,10 @@ def edit(name = None, num = None):
             return(redirect('/ban'))
 
         if(len(request.forms.send) > 500):
-            return(redirect('/error/15'))
+            return(re_error('/error/15'))
 
         if(request.forms.otent == request.forms.content):
-            return(redirect('/error/18'))
+            return(re_error('/error/18'))
 
         today = get_time()
         content = savemark(request.forms.content)
@@ -1580,7 +1655,7 @@ def move(name = None):
         curs.execute("select title from history where title = ?", [request.forms.title])
         row = curs.fetchall()
         if(row):
-            return(redirect('/error/19'))
+            return(re_error('/error/19'))
 
 
         
@@ -1869,7 +1944,7 @@ def json_out(name = None):
 
         return(json_f)
     else:
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
 
 @route('/json_in', method=['POST', 'GET'])
 def json_in():
@@ -1912,7 +1987,7 @@ def json_in():
                 )
             )
     else:
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
         
 @route('/title_index')
 @route('/title_index/<num:int>/<page:int>')
@@ -1993,7 +2068,7 @@ def topic_block(name = None, sub = None, num = None):
             
         return(redirect('/topic/' + url_pas(name) + '/sub/' + url_pas(sub) + '#' + str(num)))
     else:
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
         
 @route('/topic/<name:path>/sub/<sub:path>/notice/<num:int>')
 def topic_top(name = None, sub = None, num = None):
@@ -2019,7 +2094,7 @@ def topic_top(name = None, sub = None, num = None):
 
         return(redirect('/topic/' + url_pas(name) + '/sub/' + url_pas(sub) + '#' + str(num)))
     else:
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
 
 @route('/topic/<name:path>/sub/<sub:path>/tool/agree')
 def topic_agree(name = None, sub = None):
@@ -2050,7 +2125,7 @@ def topic_agree(name = None, sub = None):
         return(redirect('/topic/' + url_pas(name) + '/sub/' + url_pas(sub)))
     else:
         
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
         
 @route('/topic/<name:path>/sub/<sub:path>/tool/<tool:path>')
 def topic_stop(name = None, sub = None, tool = None):
@@ -2096,7 +2171,7 @@ def topic_stop(name = None, sub = None, tool = None):
         return(redirect('/topic/' + url_pas(name) + '/sub/' + url_pas(sub)))
     else:
         
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
 
 @route('/topic/<name:path>/sub/<sub:path>/admin/<num:int>')
 def topic_admin(name = None, sub = None, num = None):
@@ -2440,7 +2515,7 @@ def login():
         user = curs.fetchall()
         if(user):
             if(session.get('Now') == 1):
-                return(redirect('/error/11'))
+                return(re_error('/error/11'))
 
             if(bcrypt.checkpw(bytes(request.forms.pw, 'utf-8'), bytes(user[0][0], 'utf-8'))):
                 session['Now'] = 1
@@ -2458,15 +2533,15 @@ def login():
                 
                 return(redirect('/user'))
             else:
-                return(redirect('/error/10'))
+                return(re_error('/error/10'))
         else:
-            return(redirect('/error/5'))
+            return(re_error('/error/5'))
     else:        
         if(ban == 1):
             return(redirect('/ban'))
 
         if(session.get('Now') == 1):
-            return(redirect('/error/11'))
+            return(re_error('/error/11'))
 
         return(
             html_minify(
@@ -2513,11 +2588,11 @@ def change_password():
                     
                     return(redirect('/user'))
                 else:
-                    return(redirect('/error/10'))
+                    return(re_error('/error/10'))
             else:
-                return(redirect('/error/5'))
+                return(re_error('/error/5'))
         else:
-            return(redirect('/error/20'))
+            return(re_error('/error/20'))
     else:        
         if(ban == 1):
             return(redirect('/ban'))
@@ -2559,7 +2634,7 @@ def user_check(name = None, name2 = None):
     user = curs.fetchall()
     if(user and user[0][0] != 'user'):
         if(admin_check(None, None) != 1):
-            return(redirect('/error/4'))
+            return(re_error('/error/4'))
 
     if(admin_check(4, 'check (' + name + ')') == 1):
         if(name2):
@@ -2614,7 +2689,7 @@ def user_check(name = None, name2 = None):
             )
         )
     else:
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
                 
 @route('/register', method=['POST', 'GET'])
 def register():
@@ -2628,15 +2703,15 @@ def register():
         if(request.forms.pw == request.forms.pw2):
             m = re.search('(?:[^A-Za-zㄱ-힣0-9 ])', request.forms.id)
             if(m):
-                return(redirect('/error/8'))
+                return(re_error('/error/8'))
 
             if(len(request.forms.id) > 32):
-                return(redirect('/error/7'))
+                return(re_error('/error/7'))
 
             curs.execute("select id from user where id = ?", [request.forms.id])
             rows = curs.fetchall()
             if(rows):
-                return(redirect('/error/6'))
+                return(re_error('/error/6'))
 
             hashed = bcrypt.hashpw(bytes(request.forms.pw, 'utf-8'), bcrypt.gensalt())
             
@@ -2650,7 +2725,7 @@ def register():
             
             return(redirect('/login'))
         else:
-            return(redirect('/error/20'))
+            return(re_error('/error/20'))
     else:        
         p = ''
         curs.execute('select data from other where name = "contract"')
@@ -2698,7 +2773,7 @@ def user_ban(name = None):
     user = curs.fetchall()
     if(user and user[0][0] != 'user'):
         if(admin_check(None, None) != 1):
-            return(redirect('/error/4'))
+            return(re_error('/error/4'))
 
     if(request.method == 'POST'):
         if(admin_check(1, 'ban (' + name + ')') == 1):
@@ -2729,7 +2804,7 @@ def user_ban(name = None):
 
             return(redirect('/ban/' + url_pas(name)))
         else:
-            return(redirect('/error/3'))
+            return(re_error('/error/3'))
     else:
         if(admin_check(1, None) == 1):
             curs.execute("select * from ban where block = ?", [name])
@@ -2788,13 +2863,13 @@ def user_ban(name = None):
                 )
             )
         else:
-            return(redirect('/error/3'))
+            return(re_error('/error/3'))
 
 @route('/user_acl/<name:path>', method=['POST', 'GET'])
 def acl(name = None):
     ip = ip_check()
     if(ip != name or re.search("(\.|:)", name)):
-        return(redirect('/error/3'))
+        return(re_error('/error/3'))
     
     if(request.method == 'POST'):
         curs.execute("select acl from data where title = ?", ['사용자:' + name])
@@ -2863,7 +2938,7 @@ def acl(name = None):
                 
             return(redirect('/w/' + url_pas(name)))
         else:
-            return(redirect('/error/3'))
+            return(re_error('/error/3'))
     else:
         if(admin_check(5, None) == 1):
             curs.execute("select acl from data where title = ?", [name])
@@ -2900,7 +2975,7 @@ def acl(name = None):
             else:
                 return(redirect('/w/' + url_pas(name)) )
         else:
-            return(redirect('/error/3'))
+            return(re_error('/error/3'))
             
 @route('/admin/<name:path>', method=['POST', 'GET'])
 def user_admin(name = None):
@@ -2914,7 +2989,7 @@ def user_admin(name = None):
             
             return(redirect('/admin/' + url_pas(name)))
         else:
-            return(redirect('/error/3'))
+            return(re_error('/error/3'))
     else:
         if(admin_check(None, None) == 1):
             curs.execute("select acl from user where id = ?", [name])
@@ -2952,9 +3027,9 @@ def user_admin(name = None):
                     )
                 )
             else:
-                return(redirect('/error/5'))
+                return(re_error('/error/5'))
         else:
-            return(redirect('/error/3'))
+            return(re_error('/error/3'))
             
 @route('/ban')
 def are_you_ban():
@@ -3295,11 +3370,11 @@ def upload():
         data = request.files.f_data
         if(data):
             if(int(wiki_set(4)) * 1024 * 1024 < request.content_length):
-                return redirect('/error/17')
+                return re_error('/error/17')
             
             value = os.path.splitext(data.filename)[1]
             if(not value in ['.jpeg', '.jpg', '.gif', '.png', '.webp', '.JPEG', '.JPG', '.GIF', '.PNG', '.WEBP']):
-                return redirect('/error/14')
+                return re_error('/error/14')
         
             if(request.forms.get('f_name')):
                 name = request.forms.get('f_name') + value
@@ -3319,7 +3394,7 @@ def upload():
                     lice = '[[사용자:' + ip + ']] 올림'
                     
             if(os.path.exists(os.path.join('image', e_data))):
-                return(redirect('/error/16'))
+                return(re_error('/error/16'))
                 
             data.save(os.path.join('image', e_data))
                 
@@ -3342,7 +3417,7 @@ def upload():
             
             return(redirect('/w/파일:' + name))
         else:
-            return(redirect('/error/9'))
+            return(re_error('/error/9'))
     else:
         return(
             html_minify(
@@ -3581,78 +3656,6 @@ def views(name = None):
             root = './views' + plus
         )
     )
-        
-@route('/error/<num:int>')
-def error_test(num = None):
-    response.status = 404
-    if(num == 1):
-        title = '권한 오류'
-        data = '비 로그인 상태 입니다.'
-    elif(num == 2):
-        title = '권한 오류'
-        data = '이 계정이 없습니다.'
-    elif(num == 3):
-        title = '권한 오류'
-        data = '권한이 모자랍니다.'
-    elif(num == 4):
-        title = '권한 오류'
-        data = '관리자는 차단, 검사 할 수 없습니다.'
-    elif(num == 5):
-        title = '사용자 오류'
-        data = '그런 계정이 없습니다.'
-    elif(num == 6):
-        title = '가입 오류'
-        data = '동일한 아이디의 사용자가 있습니다.'
-    elif(num == 7):
-        title = '가입 오류'
-        data = '아이디는 20글자보다 짧아야 합니다.'
-    elif(num == 8):
-        title = '가입 오류'
-        data = '아이디에는 한글과 알파벳과 공백만 허용 됩니다.'
-    elif(num == 9):
-        title = '파일 올리기 오류'
-        data = '파일이 없습니다.'
-    elif(num == 10):
-        title = '변경 오류'
-        data = '비밀번호가 다릅니다.'
-    elif(num == 11):
-        title = '로그인 오류'
-        data = '이미 로그인 되어 있습니다.'
-    elif(num == 14):
-        title = '파일 올리기 오류'
-        data = 'jpg, gif, jpeg, png, webp만 가능 합니다.'
-    elif(num == 15):
-        title = '편집 오류'
-        data = '편집 기록은 500자를 넘을 수 없습니다.'
-    elif(num == 16):
-        title = '파일 올리기 오류'
-        data = '동일한 이름의 파일이 있습니다.'
-    elif(num == 17):
-        title = '파일 올리기 오류'
-        data = '파일 용량은 ' + wiki_set(4) + 'MB를 넘길 수 없습니다.'
-    elif(num == 18):
-        title = '편집 오류'
-        data = '내용이 원래 문서와 동일 합니다.'
-    elif(num == 19):
-        title = '이동 오류'
-        data = '이동 하려는 곳에 문서가 이미 있습니다.'
-    elif(num == 20):
-        title = '비밀번호 오류'
-        data = '재 확인이랑 비밀번호가 다릅니다.'
-
-    if(title):
-        return(
-            html_minify(
-                template(
-                    'index', 
-                    imp = [title, wiki_set(1), wiki_set(3), login_check(), custom_css(), custom_js(), 0, 0],
-                    data = data,
-                    menu = 0
-                )
-            )
-        )
-    else:
-        return(redirect('/'))
 
 @error(404)
 def error_404(error):