Parcourir la source

기록이랑 최근 바뀜에도 역사 숨김 및 팝업 각주

2DU il y a 9 ans
Parent
commit
885822b377
3 fichiers modifiés avec 67 ajouts et 13 suppressions
  1. 46 2
      app.py
  2. 7 11
      mark.py
  3. 14 0
      static/style.css

+ 46 - 2
app.py

@@ -407,6 +407,7 @@ def recent_changes():
     session = request.environ.get('beaker.session')
     i = 0
     ydmin = admin_check(1, session)
+    zdmin = admin_check(6, session)
     div = '<div><table style="width: 100%;"><tbody><tr><td style="text-align: center;width:33.33%;">문서명</td><td style="text-align: center;width:33.33%;">기여자</td><td style="text-align: center;width:33.33%;">시간</td></tr>'
     
     db_ex("select id, title, date, ip, send, leng from history order by date desc limit 50")
@@ -452,8 +453,29 @@ def recent_changes():
                     revert = ''
                 else:
                     revert = '<a href="/w/' + url_pas(rows[i]['title']) + '/r/' + str(int(rows[i]['id']) - 1) + '/diff/' + rows[i]['id'] + '">(비교)</a> <a href="/revert/' + url_pas(rows[i]['title']) + '/r/' + str(int(rows[i]['id']) - 1) + '">(되돌리기)</a>'
+                
+                style = ''
+                if(zdmin == 1):
+                    db_ex("select * from hidhi where title = '" + db_pas(rows[i]['title']) + "' and re = '" + db_pas(rows[i]['id']) + "'")
+                    row = db_get()
+                    if(row):                            
+                        ip += ' (숨김)'                            
+                        hidden = ' <a href="/history/' + url_pas(rows[i]['title']) + '/r/' + rows[i]['id'] + '/hidden">(공개)'
+                    else:
+                        hidden = ' <a href="/history/' + url_pas(rows[i]['title']) + '/r/' + rows[i]['id'] + '/hidden">(숨김)'
+                else:
+                    db_ex("select * from hidhi where title = '" + db_pas(rows[i]['title']) + "' and re = '" + db_pas(rows[i]['id']) + "'")
+                    row = db_get()
+                    if(row):
+                        ip = '숨김'
+                        hidden = ''
+                        send = '숨김'
+                        ban = ''
+                        style = 'display:none;'
+                    else:
+                        hidden = ''      
                     
-                div += '<tr><td style="text-align: center;width:33.33%;"><a href="/w/' + url_pas(rows[i]['title']) + '">' + title + '</a> (' + rows[i]['id'] + '판) ' + revert + ' (' + leng + ')</td><td style="text-align: center;width:33.33%;">' + ip + ban + '</td><td style="text-align: center;width:33.33%;">' + rows[i]['date'] + '</td></tr><tr><td colspan="3" style="text-align: center;width:100%;">' + send + '</td></tr>'
+                div += '<tr style="' + style + '"><td style="text-align: center;width:33.33%;"><a href="/w/' + url_pas(rows[i]['title']) + '">' + title + '</a> (' + rows[i]['id'] + '판) ' + revert + ' (' + leng + ')</td><td style="text-align: center;width:33.33%;">' + ip + ban + hidden + '</td><td style="text-align: center;width:33.33%;">' + rows[i]['date'] + '</td></tr><tr><td colspan="3" style="text-align: center;width:100%;">' + send + '</td></tr>'
                 
                 i += 1
             except:
@@ -487,6 +509,7 @@ def user_record(name = None, num = None):
     v = num * 50
     i = v - 50
     ydmin = admin_check(1, session)
+    zdmin = admin_check(6, session)
     div = '<div><table style="width: 100%;"><tbody><tr><td style="text-align: center;width:33.33%;">문서명</td><td style="text-align: center;width:33.33%;">기여자</td><td style="text-align: center;width:33.33%;">시간</td></tr>'
     
     db_ex("select * from history where ip = '" + db_pas(name) + "' order by date desc")
@@ -531,7 +554,28 @@ def user_record(name = None, num = None):
                 else:
                     revert = '<a href="/revert/' + url_pas(rows[i]['title']) + '/r/' + str(int(rows[i]['id']) - 1) + '">(되돌리기)</a>'
                     
-                div += '<tr><td style="text-align: center;width:33.33%;"><a href="/w/' + url_pas(rows[i]['title']) + '">' + title + '</a> (' + rows[i]['id'] + '판) <a href="/w/' + url_pas(rows[i]['title']) + '/r/' + str(int(rows[i]['id']) - 1) + '/diff/' + rows[i]['id'] + '">(비교)</a> ' + revert + ' (' + leng + ')</td><td style="text-align: center;width:33.33%;">' + ip + ban +  '</td><td style="text-align: center;width:33.33%;">' + rows[i]['date'] + '</td></tr><tr><td colspan="3" style="text-align: center;width:100%;">' + send + '</td></tr>'
+                style = ''
+                if(zdmin == 1):
+                    db_ex("select * from hidhi where title = '" + db_pas(rows[i]['title']) + "' and re = '" + db_pas(rows[i]['id']) + "'")
+                    row = db_get()
+                    if(row):                            
+                        ip += ' (숨김)'                            
+                        hidden = ' <a href="/history/' + url_pas(rows[i]['title']) + '/r/' + rows[i]['id'] + '/hidden">(공개)'
+                    else:
+                        hidden = ' <a href="/history/' + url_pas(rows[i]['title']) + '/r/' + rows[i]['id'] + '/hidden">(숨김)'
+                else:
+                    db_ex("select * from hidhi where title = '" + db_pas(rows[i]['title']) + "' and re = '" + db_pas(rows[i]['id']) + "'")
+                    row = db_get()
+                    if(row):
+                        ip = '숨김'
+                        hidden = ''
+                        send = '숨김'
+                        ban = ''
+                        style = 'display:none;'
+                    else:
+                        hidden = ''
+                    
+                div += '<tr style="' + style + '"><td style="text-align: center;width:33.33%;"><a href="/w/' + url_pas(rows[i]['title']) + '">' + title + '</a> (' + rows[i]['id'] + '판) <a href="/w/' + url_pas(rows[i]['title']) + '/r/' + str(int(rows[i]['id']) - 1) + '/diff/' + rows[i]['id'] + '">(비교)</a> ' + revert + ' (' + leng + ')</td><td style="text-align: center;width:33.33%;">' + ip + ban + hidden + '</td><td style="text-align: center;width:33.33%;">' + rows[i]['date'] + '</td></tr><tr><td colspan="3" style="text-align: center;width:100%;">' + send + '</td></tr>'
                 
                 if(i == v):
                     div += '</tbody></table></div>'

+ 7 - 11
mark.py

@@ -703,24 +703,20 @@ def namumark(session, title, data):
                         break
                         
                 if(none_this == False):
-                    data = re.sub("\[\*([^\s]*)(?:\s(((?!\]).)*))?\]", "<sup><a class=\"footnotes\" title=\"" + namu[i + 1] + "\" id=\"rfn-" + str(a) + "\" href=\"#fn-" + str(a) + "\">[" + results[0] + "]</a></sup>", data, 1)
+                    data = re.sub("\[\*([^\s]*)(?:\s(((?!\]).)*))?\]", "<sup><a href='javascript:void(0);' id=\"rfn-" + str(a) + "\" onclick=\"var f=document.getElementById('footnote_" + str(a) + "');var s=f.style.display=='inline';f.style.display=s?'none':'inline';this.className=s?'':'opened';\">[" + results[0] + "]</a></sup><span class='foot' id='footnote_" + str(a) + "' style='display:none;'><a class=\"footnotes\" href=\"#fn-" + str(a) + "\" onclick=\"var f=document.getElementById('footnote_" + str(a) + "');var s=f.style.display=='inline';f.style.display=s?'none':'inline';this.className=s?'':'opened';\">[" + results[0] + "]</a> <a href='javascript:void(0);' onclick=\"var f=document.getElementById('footnote_" + str(a) + "');var s=f.style.display=='inline';f.style.display=s?'none':'inline';this.className=s?'':'opened';\">[X]</a> " + namu[i + 1] + "</span>", data, 1)
                 else:
                     data = re.sub("\[\*([^\s]*)(?:\s(((?!\]).)*))?\]", "<sup><a class=\"footnotes\" id=\"rfn-" + str(a) + "\" href=\"#fn-" + str(a) + "\">[" + results[0] + "]</a></sup>", data, 1)
-            elif(results[0]):
-                c = results[1]
-                c = re.sub("<(?:[^>]*)>", '', c)
-                
+            elif(results[0]):                
                 namu += [results[0]]
-                namu += [c]
+                namu += [results[1]]
 
                 tou = tou + "<span class='footnote-list'><a href=\"#rfn-" + str(a) + "\" id=\"fn-" + str(a) + "\">[" + results[0] + "]</a> " + results[1] + "</span><br>"
-                data = re.sub("\[\*([^\s]*)(?:\s(((?!\]).)*))?\]", "<sup><a class=\"footnotes\" title=\"" + c + "\" id=\"rfn-" + str(a) + "\" href=\"#fn-" + str(a) + "\">[" + results[0] + "]</a></sup>", data, 1)
+                data = re.sub("\[\*([^\s]*)(?:\s(((?!\]).)*))?\]", "<sup><a href='javascript:void(0);' id=\"rfn-" + str(a) + "\" onclick=\"var f=document.getElementById('footnote_" + str(a) + "');var s=f.style.display=='inline';f.style.display=s?'none':'inline';this.className=s?'':'opened';\">[" + results[0] + "]</a></sup><span class='foot' id='footnote_" + str(a) + "' style='display:none;'><a class=\"footnotes\" href=\"#fn-" + str(a) + "\" onclick=\"var f=document.getElementById('footnote_" + str(a) + "');var s=f.style.display=='inline';f.style.display=s?'none':'inline';this.className=s?'':'opened';\">[" + results[0] + "]</a> <a href='javascript:void(0);' onclick=\"var f=document.getElementById('footnote_" + str(a) + "');var s=f.style.display=='inline';f.style.display=s?'none':'inline';this.className=s?'':'opened';\">[X]</a> " + results[1] + "</span>", data, 1)
+                
+                
             else:
-                c = results[1]
-                c = re.sub("<(?:[^>]*)>", '', c)
-
                 tou = tou + "<span class='footnote-list'><a href=\"#rfn-" + str(a) + "\" id=\"fn-" + str(a) + "\">[" + str(a) + "]</a> " + results[1] + "</span><br>"
-                data = re.sub("\[\*([^\s]*)(?:\s(((?!\]).)*))?\]", '<sup><a class="footnotes" title="' + c + '" id="rfn-' + str(a) + '" href="#fn-' + str(a) + '">[' + str(a) + ']</a></sup>', data, 1)
+                data = re.sub("\[\*([^\s]*)(?:\s(((?!\]).)*))?\]", "<sup><a href='javascript:void(0);' id=\"rfn-" + str(a) + "\" onclick=\"var f=document.getElementById('footnote_" + str(a) + "');var s=f.style.display=='inline';f.style.display=s?'none':'inline';this.className=s?'':'opened';\">[" + str(a) + "]</a></sup><span class='foot' id='footnote_" + str(a) + "' style='display:none;'><a class=\"footnotes\" href=\"#fn-" + str(a) + "\" onclick=\"var f=document.getElementById('footnote_" + str(a) + "');var s=f.style.display=='inline';f.style.display=s?'none':'inline';this.className=s?'':'opened';\">[" + str(a) + "]</a> <a href='javascript:void(0);' onclick=\"var f=document.getElementById('footnote_" + str(a) + "');var s=f.style.display=='inline';f.style.display=s?'none':'inline';this.className=s?'':'opened';\">[X]</a> " + results[1] + "</span>", data, 1)
 
             a += 1
         else:

+ 14 - 0
static/style.css

@@ -502,4 +502,18 @@ pre span {
 
 td#block {
     background: gainsboro;
+}
+
+.foot {
+    position: fixed;
+    bottom: 0px;
+    padding: 10px;
+    width: 100%;
+    background: white none repeat scroll 0% 0%;
+    left: 0px;
+    border: 1px solid #ccc;
+    text-align: center;
+    z-index: 10000;
+    max-height: 30%;
+    overflow: scroll;
 }