ect (or 2du) vor 8 Jahren
Ursprung
Commit
1808233f52
2 geänderte Dateien mit 43 neuen und 8 gelöschten Zeilen
  1. 43 4
      app.py
  2. 0 4
      func.py

+ 43 - 4
app.py

@@ -1586,12 +1586,51 @@ def edit(name = None):
         curs.execute("select data from data where title = ?", [name])
         old = curs.fetchall()
         if old:
-            if not request.args.get('section', None) and request.form['otent'] != old[0][0]:
-                return re_error(conn, '/error/12')
-
             leng = leng_check(len(request.form['otent']), len(content))
+            
             if request.args.get('section', None):
-                content = old[0][0].replace(request.form['otent'], content)
+                i = 1
+                data = re.sub('\r\n', '\n', '\r\n' + old[0][0] + '\r\n')
+                while 1:
+                    replace_data = re.search('\n(={1,6}) ?((?:(?!=).)+) ?={1,6}\n', data)
+                    if replace_data:
+                        replace_data = replace_data.groups()[0]
+
+                        if i == int(request.args.get('section', None)):
+                            data = re.sub('\n(?P<in>={1,6}) ?(?P<out>(?:(?!=).)+) ?={1,6}\n', '\n<real h' + str(len(replace_data)) + '>\g<out></real h' + str(len(replace_data)) + '>\n', data, 1)
+
+                        else:
+                            data = re.sub('\n(?P<in>={1,6}) ?(?P<out>(?:(?!=).)+) ?={1,6}\n', '\n<h' + str(len(replace_data)) + '>\g<out></h' + str(len(replace_data)) + '>\n', data, 1)
+
+                        i += 1
+                    else:
+                        break
+
+                new_data = re.sub('\r\n', '\n', '\r\n' + request.form['otent'] + '\r\n')
+                while 1:
+                    replace_data = re.search('\n(={1,6}) ?((?:(?!=).)+) ?={1,6}\n', new_data)
+                    if replace_data:
+                        replace_data = replace_data.groups()[0]
+
+                        new_data = re.sub('\n(?P<in>={1,6}) ?(?P<out>(?:(?!=).)+) ?={1,6}\n', '\n<real h' + str(len(replace_data)) + '>\g<out></real h' + str(len(replace_data)) + '>\n', new_data, 1)
+
+                    else:
+                        break
+
+                content = data.replace(new_data, '\n' + content + '\n')
+
+                while 1:
+                    replace_data = re.search('\n<(?:real )?h([1-6])>((?:(?!<h).)+) <\/(?:real )?h[1-6]>\n', content)
+                    if replace_data:
+                        replace_data = replace_data.groups()[0]
+
+                        content = re.sub('\n<(?:real )?h([1-6])>(?P<out>(?:(?!<h).)+) <\/(?:real )?h[1-6]>\n', '\n' + ('=' * int(replace_data)) + ' \g<out> ' + ('=' * int(replace_data)) + '\n', content, 1)
+
+                    else:
+                        break
+
+                content = re.sub('^\n', '', content)
+                content = re.sub('\n$', '', content)
                 
             curs.execute("update data set data = ? where title = ?", [content, name])
         else:

+ 0 - 4
func.py

@@ -577,10 +577,6 @@ def re_error(conn, data):
             title = '로그인 오류'
             data = '이미 로그인 되어 있습니다.'
 
-        elif num == 12:
-            title = '편집 오류'
-            data = '누군가 먼저 편집 했습니다.'
-
         elif num == 13:
             title = '리캡차 오류'
             data = '리캡차를 통과하세요.'