Sfoglia il codice sorgente

파서 버그 수정

2DU 9 anni fa
parent
commit
2e33594706
2 ha cambiato i file con 88 aggiunte e 49 eliminazioni
  1. 86 49
      app.py
  2. 2 0
      templates/index.html

+ 86 - 49
app.py

@@ -413,6 +413,92 @@ def namumark(title, data):
         else:
             break
             
+    while True:
+        m = re.search("\[\[(((?!\]\]).)*)\]\]", data)
+        if(m):
+            result = m.groups()
+            a = re.search("((?:(?!\|).)*)\|(.*)", result[0])
+            if(a):
+                results = a.groups()
+                aa = re.search("^(.*)(#(?:.*))$", results[0])
+                if(aa):
+                    g = results[1]
+                    results = aa.groups()
+                    b = re.search("^http(?:s)?:\/\/", results[0])
+                    if(b):
+                        data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="out_link" href="' + results[0] + results[1] + '">' + g + '</a>', data, 1)
+                    else:
+                        if(results[0] == title):
+                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<b>' + g + '</b>', data, 1)
+                        else:
+                            curs.execute("select * from data where title = '" + pymysql.escape_string(results[0]) + "'")
+                            rows = curs.fetchall()
+                            if(rows):
+                                data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a title="' + results[0] + results[1] + '" href="/w/' + parse.quote(results[0]).replace('/','%2F') + results[1] + '">' + g + '</a>', data, 1)
+                            else:
+                                data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a title="' + results[0] + results[1] + '" class="not_thing" href="/w/' + parse.quote(results[0]).replace('/','%2F') + results[1] + '">' + g + '</a>', data, 1)
+
+                else:
+                    b = re.search("^http(?:s)?:\/\/", results[0])
+                    if(b):
+                        c = re.search("(?:\.jpg|\.png|\.gif|\.jpeg)", results[0])
+                        if(c):
+                            img = results[0]
+                            img = re.sub("\.(?P<in>jpg|png|gif|jpeg)", "#\g<in>#", img)
+                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="out_link" href="' + img + '">' + results[1] + '</a>', data, 1)
+                        else:
+                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="out_link" href="' + results[0] + '">' + results[1] + '</a>', data, 1)
+                    else:
+                        if(results[0] == title):
+                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<b>' + results[1] + '</b>', data, 1)
+                        else:
+                            curs.execute("select * from data where title = '" + pymysql.escape_string(results[0]) + "'")
+                            rows = curs.fetchall()
+                            if(rows):
+                                data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a title="' + results[0] + '" href="/w/' + parse.quote(results[0]).replace('/','%2F') + '">' + results[1] + '</a>', data, 1)
+                            else:
+                                data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a title="' + results[0] + '" class="not_thing" href="/w/' + parse.quote(results[0]).replace('/','%2F') + '">' + results[1] + '</a>', data, 1)
+            else:
+                aa = re.search("^(.*)(#(?:.*))$", result[0])
+                if(aa):
+                    result = aa.groups()
+                    b = re.search("^http(?:s)?:\/\/", result[0])
+                    if(b):
+                        data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="out_link" href="' + result[0] + result[1] + '">' + result[0] + result[1] + '</a>', data, 1)
+                    else:
+                        if(result[0] == title):
+                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<b>' + result[0] + result[1] + '</b>', data, 1)
+                        else:
+                            curs.execute("select * from data where title = '" + pymysql.escape_string(result[0]) + "'")
+                            rows = curs.fetchall()
+                            if(rows):
+                                data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a href="/w/' + parse.quote(result[0]).replace('/','%2F') + result[1] + '">' + result[0] + result[1] + '</a>', data, 1)
+                            else:
+                                data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="not_thing" href="/w/' + parse.quote(result[0]).replace('/','%2F') + result[1] + '">' + result[0] + result[1] + '</a>', data, 1)
+
+                else:
+                    b = re.search("^http(?:s)?:\/\/", result[0])
+                    if(b):
+                        c = re.search("(?:\.jpg|\.png|\.gif|\.jpeg)", result[0])
+                        if(c):
+                            img = result[0]
+                            img = re.sub("\.(?P<in>jpg|png|gif|jpeg)", "#\g<in>#", img)
+                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="out_link" href="' + img + '">' + img + '</a>', data, 1)
+                        else:
+                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="out_link" href="' + result[0] + '">' + result[0] + '</a>', data, 1)
+                    else:
+                        if(result[0] == title):
+                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<b>' + result[0] + '</b>', data, 1)
+                        else:
+                            curs.execute("select * from data where title = '" + pymysql.escape_string(result[0]) + "'")
+                            rows = curs.fetchall()
+                            if(rows):
+                                data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a href="/w/' + parse.quote(result[0]).replace('/','%2F') + '">' + result[0] + '</a>', data, 1)
+                            else:
+                                data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="not_thing" href="/w/' + parse.quote(result[0]).replace('/','%2F') + '">' + result[0] + '</a>', data, 1)
+        else:
+            break
+            
     while True:
         m = re.search("(http(?:s)?:\/\/(?:(?:(?:(?!\.jpg|\.png|\.gif|\.jpeg|#jpg#|#png#|#gif#|#jpeg#).)*)(?:\.jpg|\.png|\.gif|\.jpeg)))(?:(?:(?:\?)width=((?:[0-9]*)(?:px)?))?(?:(?:\?|&)height=((?:[0-9]*)(?:px)?))?(?:(?:&)width=((?:[0-9]*)(?:px)?))?)?", data)
         if(m):
@@ -440,55 +526,6 @@ def namumark(title, data):
         else:
             break
             
-    while True:
-        m = re.search("\[\[(((?!\]\]).)*)\]\]", data)
-        if(m):
-            result = m.groups()
-            a = re.search("(((?!\|).)*)\|(.*)", result[0])
-            if(a):
-                results = a.groups()
-                b = re.search("^http(?:s)?:\/\/", results[0])
-                if(b):
-                    c = re.search("(?:\.jpg|\.png|\.gif|\.jpeg)", results[0])
-                    if(c):
-                        img = results[0]
-                        img = re.sub("\.(?P<in>jpg|png|gif|jpeg)", "#\g<in>#", img)
-                        data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="out_link" href="' + img + '">' + results[2] + '</a>', data, 1)
-                    else:
-                        data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="out_link" href="' + results[0] + '">' + results[2] + '</a>', data, 1)
-                else:
-                    if(results[0] == title):
-                        data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<b>' + results[2] + '</b>', data, 1)
-                    else:
-                        curs.execute("select * from data where title = '" + pymysql.escape_string(results[0]) + "'")
-                        rows = curs.fetchall()
-                        if(rows):
-                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a title="' + results[0] + '" href="/w/' + parse.quote(results[0]).replace('/','%2F') + '">' + results[2] + '</a>', data, 1)
-                        else:
-                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a title="' + results[0] + '" class="not_thing" href="/w/' + parse.quote(results[0]).replace('/','%2F') + '">' + results[2] + '</a>', data, 1)
-            else:
-                b = re.search("^http(?:s)?:\/\/", result[0])
-                if(b):
-                    c = re.search("(?:\.jpg|\.png|\.gif|\.jpeg)", result[0])
-                    if(c):
-                        img = result[0]
-                        img = re.sub("\.(?P<in>jpg|png|gif|jpeg)", "#\g<in>#", img)
-                        data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="out_link" href="' + img + '">' + result[0] + '</a>', data, 1)
-                    else:
-                        data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="out_link" href="' + result[0] + '">' + result[0] + '</a>', data, 1)
-                else:
-                    if(result[0] == title):
-                        data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<b>' + result[0] + '</b>', data, 1)
-                    else:
-                        curs.execute("select * from data where title = '" + pymysql.escape_string(result[0]) + "'")
-                        rows = curs.fetchall()
-                        if(rows):
-                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a href="/w/' + parse.quote(result[0]).replace('/','%2F') + '">' + result[0] + '</a>', data, 1)
-                        else:
-                            data = re.sub('\[\[(((?!\]\]).)*)\]\]', '<a class="not_thing" href="/w/' + parse.quote(result[0]).replace('/','%2F') + '">' + result[0] + '</a>', data, 1)
-        else:
-            break
-            
     while True:
         m = re.search("((?:(?:\s\*\s[^\n]*)\n?)+)", data)
         if(m):

+ 2 - 0
templates/index.html

@@ -347,6 +347,8 @@
                     <li>파일 문서 생성</li>
                     <li>유저 가입 목록 (완료)</li>
                     <li>최근 차단을 유저 차단 기록으로 (완료)</li>
+                    <h2>1.6</h2>
+                    <li>토론에 AJAX 적용</li>
                     <h2>계속</h2>
                     <li>버그 수정</li>
                     <li>파서 제작 (90%)</li>