فهرست منبع

함수로 변경함

2DU 9 سال پیش
والد
کامیت
7904929901
1فایلهای تغییر یافته به همراه78 افزوده شده و 113 حذف شده
  1. 78 113
      app.py

+ 78 - 113
app.py

@@ -741,13 +741,57 @@ def getip(request):
     return ip
 
 def getcan(ip, name):
-    b = re.search("^([0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?)", ip)
-    if(b):
-        results = b.groups()
-        curs.execute("select * from ban where block = '" + pymysql.escape_string(results[0]) + "' and band = 'O'")
-        rowss = curs.fetchall()
-        if(rowss):
+    m = re.search("^사용자:(.*)", name)
+    if(m):
+        g = m.groups()
+        if(ip == g[0]):
+            if(re.search("\.", g[0])):
+                return 1
+            else:
+                curs.execute("select * from ban where block = '" + pymysql.escape_string(ip) + "'")
+                rows = curs.fetchall()
+                if(rows):
+                    return 1
+                else:
+                    return 0
+        else:
             return 1
+    else:
+        b = re.search("^([0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?)", ip)
+        if(b):
+            results = b.groups()
+            curs.execute("select * from ban where block = '" + pymysql.escape_string(results[0]) + "' and band = 'O'")
+            rowss = curs.fetchall()
+            if(rowss):
+                return 1
+            else:
+                curs.execute("select * from ban where block = '" + pymysql.escape_string(ip) + "'")
+                rows = curs.fetchall()
+                if(rows):
+                    return 1
+                else:
+                    curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
+                    row = curs.fetchall()
+                    if(row):
+                        curs.execute("select * from user where id = '" + pymysql.escape_string(ip) + "'")
+                        rows = curs.fetchall()
+                        if(row[0]['acl'] == 'user'):
+                            if(rows):
+                                return 0
+                            else:
+                                return 1
+                        elif(row[0]['acl'] == 'admin'):
+                            if(rows):
+                                if(rows[0]['acl'] == 'admin' or rows[0]['acl'] == 'owner'):
+                                    return 0
+                                else:
+                                    return 1
+                            else:
+                                return 1
+                        else:
+                            return 0
+                    else:
+                        return 0
         else:
             curs.execute("select * from ban where block = '" + pymysql.escape_string(ip) + "'")
             rows = curs.fetchall()
@@ -776,34 +820,6 @@ def getcan(ip, name):
                         return 0
                 else:
                     return 0
-    else:
-        curs.execute("select * from ban where block = '" + pymysql.escape_string(ip) + "'")
-        rows = curs.fetchall()
-        if(rows):
-            return 1
-        else:
-            curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
-            row = curs.fetchall()
-            if(row):
-                curs.execute("select * from user where id = '" + pymysql.escape_string(ip) + "'")
-                rows = curs.fetchall()
-                if(row[0]['acl'] == 'user'):
-                    if(rows):
-                        return 0
-                    else:
-                        return 1
-                elif(row[0]['acl'] == 'admin'):
-                    if(rows):
-                        if(rows[0]['acl'] == 'admin' or rows[0]['acl'] == 'owner'):
-                            return 0
-                        else:
-                            return 1
-                    else:
-                        return 1
-                else:
-                    return 0
-            else:
-                return 0
 
 def getban(ip):
     b = re.search("^([0-9](?:[0-9][0-9])?\.[0-9](?:[0-9][0-9])?)", ip)
@@ -1285,96 +1301,45 @@ def revert(name = None, number = None):
 @app.route('/edit/<path:name>', methods=['POST', 'GET'])
 def edit(name = None):
     if(request.method == 'POST'):
-        m = re.search("^사용자:(.*)", name)
-        if(m):
-            g = m.groups()
+        curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
+        rows = curs.fetchall()
+        if(rows):
             ip = getip(request)
-            if(ip == g[0]):
-                if(re.search("\.", g[0])):
-                    return render_template('index.html', title = '사문 오류', logo = data['name'], data = '사문을 사용하려면 로그인 해야 합니다.')
-                else:
-                    curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
-                    rows = curs.fetchall()
-                    if(rows):
-                        can = getcan(ip, name)
-                        if(can == 1):
-                            return '<meta http-equiv="refresh" content="0;url=/ban" />'
-                        else:
-                            today = getnow()
-                            leng = getleng(len(rows[0]['data']), len(request.form["content"]))
-                            history(name, request.form["content"], today, ip, request.form["send"], leng)
-                            curs.execute("update data set data = '" + pymysql.escape_string(request.form["content"]) + "' where title = '" + pymysql.escape_string(name) + "'")
-                            conn.commit()
-                    else:
-                        ip = getip(request)
-                        can = getcan(ip, name)
-                        if(can == 1):
-                            return '<meta http-equiv="refresh" content="0;url=/ban" />'
-                        else:
-                            today = getnow()
-                            leng = '+' + str(len(request.form["content"]))
-                            history(name, request.form["content"], today, ip, request.form["send"], leng)
-                            curs.execute("insert into data (title, data, acl) value ('" + pymysql.escape_string(name) + "', '" + pymysql.escape_string(request.form["content"]) + "', '')")
-                            conn.commit()
-                    return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />'
+            can = getcan(ip, name)
+            if(can == 1):
+                return '<meta http-equiv="refresh" content="0;url=/ban" />'
             else:
-                return render_template('index.html', title = '사문 오류', logo = data['name'], data = '본인 사문이 아닙니다.')
+                today = getnow()
+                leng = getleng(len(rows[0]['data']), len(request.form["content"]))
+                recent(name, ip, today, request.form["send"], leng)
+                history(name, request.form["content"], today, ip, request.form["send"], leng)
+                curs.execute("update data set data = '" + pymysql.escape_string(request.form["content"]) + "' where title = '" + pymysql.escape_string(name) + "'")
+                conn.commit()
         else:
-            curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
-            rows = curs.fetchall()
-            if(rows):
-                ip = getip(request)
-                can = getcan(ip, name)
-                if(can == 1):
-                    return '<meta http-equiv="refresh" content="0;url=/ban" />'
-                else:
-                    today = getnow()
-                    leng = getleng(len(rows[0]['data']), len(request.form["content"]))
-                    recent(name, ip, today, request.form["send"], leng)
-                    history(name, request.form["content"], today, ip, request.form["send"], leng)
-                    curs.execute("update data set data = '" + pymysql.escape_string(request.form["content"]) + "' where title = '" + pymysql.escape_string(name) + "'")
-                    conn.commit()
+            ip = getip(request)
+            can = getcan(ip, name)
+            if(can == 1):
+                return '<meta http-equiv="refresh" content="0;url=/ban" />'
             else:
-                ip = getip(request)
-                can = getcan(ip, name)
-                if(can == 1):
-                    return '<meta http-equiv="refresh" content="0;url=/ban" />'
-                else:
-                    today = getnow()
-                    leng = '+' + str(len(request.form["content"]))
-                    recent(name, ip, today, request.form["send"], leng)
-                    history(name, request.form["content"], today, ip, request.form["send"], leng)
-                    curs.execute("insert into data (title, data, acl) value ('" + pymysql.escape_string(name) + "', '" + pymysql.escape_string(request.form["content"]) + "', '')")
-                    conn.commit()
-            return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />'
+                today = getnow()
+                leng = '+' + str(len(request.form["content"]))
+                recent(name, ip, today, request.form["send"], leng)
+                history(name, request.form["content"], today, ip, request.form["send"], leng)
+                curs.execute("insert into data (title, data, acl) value ('" + pymysql.escape_string(name) + "', '" + pymysql.escape_string(request.form["content"]) + "', '')")
+                conn.commit()
+        return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />'
     else:
         ip = getip(request)
         can = getcan(ip, name)
         if(can == 1):
             return '<meta http-equiv="refresh" content="0;url=/ban" />'
         else:
-            m = re.search("^사용자:(.*)", name)
-            if(m):
-                g = m.groups()
-                if(ip == g[0]):
-                    if(re.search("\.", g[0])):
-                        return render_template('index.html', title = '사문 오류', logo = data['name'], data = '사문을 사용하려면 로그인 해야 합니다.')
-                    else:
-                        curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
-                        rows = curs.fetchall()
-                        if(rows):
-                            return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = rows[0]['data'], tn = 2)
-                        else:
-                            return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = '', tn = 2)
-                else:
-                    return render_template('index.html', title = '사문 오류', logo = data['name'], data = '본인 사문이 아닙니다.')
+            curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
+            rows = curs.fetchall()
+            if(rows):
+                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = rows[0]['data'], tn = 2)
             else:
-                curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
-                rows = curs.fetchall()
-                if(rows):
-                    return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = rows[0]['data'], tn = 2)
-                else:
-                    return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = '', tn = 2)
+                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = '', tn = 2)
                 
 @app.route('/preview/<path:name>', methods=['POST'])
 def preview(name = None):