فهرست منبع

버그 수정

2DU 9 سال پیش
والد
کامیت
3087fc0213
3فایلهای تغییر یافته به همراه53 افزوده شده و 39 حذف شده
  1. 2 2
      app.py
  2. 11 36
      func.py
  3. 40 1
      mark.py

+ 2 - 2
app.py

@@ -23,10 +23,10 @@ BaseRequest.MEMFILE_MAX = 1024 * 1024
 def redirect(data):
 def redirect(data):
     return('<meta http-equiv="refresh" content="0;url=' + data + '" />')
     return('<meta http-equiv="refresh" content="0;url=' + data + '" />')
     
     
-db_pas = pymysql.escape_string
-
 from func import *
 from func import *
 from mark import *
 from mark import *
+    
+db_pas = pymysql.escape_string
 
 
 r_ver = '2.1.1'
 r_ver = '2.1.1'
 
 

+ 11 - 36
func.py

@@ -10,9 +10,6 @@ import hashlib
 json_data = open('set.json').read()
 json_data = open('set.json').read()
 set_data = json.loads(json_data)
 set_data = json.loads(json_data)
 
 
-conn = pymysql.connect(host = set_data['host'], user = set_data['user'], password = set_data['pw'], charset = 'utf8mb4')
-curs = conn.cursor(pymysql.cursors.DictCursor)
-
 def url_pas(data):
 def url_pas(data):
     return(parse.quote(data).replace('/','%2F'))
     return(parse.quote(data).replace('/','%2F'))
 
 
@@ -29,10 +26,9 @@ app = beaker.middleware.SessionMiddleware(app(), session_opts)
 
 
 db_pas = pymysql.escape_string
 db_pas = pymysql.escape_string
 
 
-def diff(seqm):
-    conn = pymysql.connect(user = set_data['user'], password = set_data['pw'], charset = 'utf8mb4', db = set_data['db'])
-    curs = conn.cursor(pymysql.cursors.DictCursor)
+from mark import *
 
 
+def diff(seqm):
     output= []
     output= []
     for opcode, a0, a1, b0, b1 in seqm.get_opcodes():
     for opcode, a0, a1, b0, b1 in seqm.get_opcodes():
         if(opcode == 'equal'):
         if(opcode == 'equal'):
@@ -46,7 +42,6 @@ def diff(seqm):
         else:
         else:
             output.append(seqm.a[a0:a1])
             output.append(seqm.a[a0:a1])
             
             
-    conn.close()
     return(''.join(output))
     return(''.join(output))
            
            
 def admin_check(num):
 def admin_check(num):
@@ -122,18 +117,11 @@ def include_check(name, data):
     curs = conn.cursor(pymysql.cursors.DictCursor)
     curs = conn.cursor(pymysql.cursors.DictCursor)
 
 
     if(re.search('^틀:', name)):
     if(re.search('^틀:', name)):
-        curs.execute("select * from back where title = '" + db_pas(name) + "' and type = 'include'")
+        curs.execute("select link from back where title = '" + db_pas(name) + "' and type = 'include'")
         back = curs.fetchall()
         back = curs.fetchall()
-        if(back):
-            i = 0
-
-            while(True):
-                try:
-                    namumark(back[i]['link'], data)
-                except:
-                    break
-                    
-                i += 1
+        for backp in back:
+            namumark(backp['link'], data)
+    
     conn.close()
     conn.close()
     
     
 def login_check():
 def login_check():
@@ -144,9 +132,6 @@ def login_check():
         return(0)
         return(0)
 
 
 def ip_pas(raw_ip, num):
 def ip_pas(raw_ip, num):
-    conn = pymysql.connect(user = set_data['user'], password = set_data['pw'], charset = 'utf8mb4', db = set_data['db'])
-    curs = conn.cursor(pymysql.cursors.DictCursor)
-
     if(re.search("\.", raw_ip)):
     if(re.search("\.", raw_ip)):
         ip = raw_ip
         ip = raw_ip
     else:
     else:
@@ -163,14 +148,10 @@ def ip_pas(raw_ip, num):
         ip += ' <a href="/record/' + url_pas(raw_ip) + '">(기록)</a> <a href="/user/' + url_pas(raw_ip) + '/topic">(토론 기록)</a>'        
         ip += ' <a href="/record/' + url_pas(raw_ip) + '">(기록)</a> <a href="/user/' + url_pas(raw_ip) + '/topic">(토론 기록)</a>'        
     else:
     else:
         ip += ' <a href="/record/' + url_pas(raw_ip) + '">(기록)</a>'
         ip += ' <a href="/record/' + url_pas(raw_ip) + '">(기록)</a>'
-
-    conn.close()
+        
     return(ip)
     return(ip)
 
 
 def ip_check():
 def ip_check():
-    conn = pymysql.connect(user = set_data['user'], password = set_data['pw'], charset = 'utf8mb4', db = set_data['db'])
-    curs = conn.cursor(pymysql.cursors.DictCursor)
-
     session = request.environ.get('beaker.session')
     session = request.environ.get('beaker.session')
     if(session.get('Now') == True):
     if(session.get('Now') == True):
         ip = format(session['DREAMER'])
         ip = format(session['DREAMER'])
@@ -180,7 +161,6 @@ def ip_check():
         else:
         else:
             ip = request.environ.get('REMOTE_ADDR')
             ip = request.environ.get('REMOTE_ADDR')
 
 
-    conn.close()
     return(ip)
     return(ip)
 
 
 def custom_css_user():
 def custom_css_user():
@@ -380,13 +360,9 @@ def topic_check(ip, name, sub):
     conn.close()
     conn.close()
 
 
 def get_time():
 def get_time():
-    conn = pymysql.connect(user = set_data['user'], password = set_data['pw'], charset = 'utf8mb4', db = set_data['db'])
-    curs = conn.cursor(pymysql.cursors.DictCursor)
-
     now = time.localtime()
     now = time.localtime()
     date = "%04d-%02d-%02d %02d:%02d:%02d" % (now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)
     date = "%04d-%02d-%02d %02d:%02d:%02d" % (now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)
-    
-    conn.close()
+
     return(date)
     return(date)
 
 
 def rd_plus(title, sub, date):
 def rd_plus(title, sub, date):
@@ -400,6 +376,7 @@ def rd_plus(title, sub, date):
     else:
     else:
         curs.execute("insert into rd (title, sub, date) value ('" + db_pas(title) + "', '" + db_pas(sub) + "', '" + db_pas(date) + "')")
         curs.execute("insert into rd (title, sub, date) value ('" + db_pas(title) + "', '" + db_pas(sub) + "', '" + db_pas(date) + "')")
     conn.commit()
     conn.commit()
+    
     conn.close()
     conn.close()
     
     
 def rb_plus(block, end, today, blocker, why):
 def rb_plus(block, end, today, blocker, why):
@@ -408,6 +385,7 @@ def rb_plus(block, end, today, blocker, why):
 
 
     curs.execute("insert into rb (block, end, today, blocker, why) value ('" + db_pas(block) + "', '" + db_pas(end) + "', '" + today + "', '" + db_pas(blocker) + "', '" + db_pas(why) + "')")
     curs.execute("insert into rb (block, end, today, blocker, why) value ('" + db_pas(block) + "', '" + db_pas(end) + "', '" + today + "', '" + db_pas(blocker) + "', '" + db_pas(why) + "')")
     conn.commit()
     conn.commit()
+    
     conn.close()
     conn.close()
 
 
 def history_plus(title, data, date, ip, send, leng):
 def history_plus(title, data, date, ip, send, leng):
@@ -422,12 +400,10 @@ def history_plus(title, data, date, ip, send, leng):
     else:
     else:
         curs.execute("insert into history (id, title, data, date, ip, send, leng) value ('1', '" + db_pas(title) + "', '" + db_pas(data) + "', '" + date + "', '" + db_pas(ip) + "', '" + db_pas(send + ' (새 문서)') + "', '" + leng + "')")
         curs.execute("insert into history (id, title, data, date, ip, send, leng) value ('1', '" + db_pas(title) + "', '" + db_pas(data) + "', '" + date + "', '" + db_pas(ip) + "', '" + db_pas(send + ' (새 문서)') + "', '" + leng + "')")
     conn.commit()
     conn.commit()
+    
     conn.close()
     conn.close()
 
 
 def leng_check(a, b):
 def leng_check(a, b):
-    conn = pymysql.connect(user = set_data['user'], password = set_data['pw'], charset = 'utf8mb4', db = set_data['db'])
-    curs = conn.cursor(pymysql.cursors.DictCursor)
-
     if(a < b):
     if(a < b):
         c = b - a
         c = b - a
         c = '+' + str(c)
         c = '+' + str(c)
@@ -437,5 +413,4 @@ def leng_check(a, b):
     else:
     else:
         c = '0'
         c = '0'
         
         
-    conn.close()
     return(c)
     return(c)

+ 40 - 1
mark.py

@@ -1,10 +1,49 @@
-from func import *
+from bottle import request, app
+from bottle.ext import beaker
+from urllib import parse
+import json
+import pymysql
+import time
+import re
+import hashlib
 
 
 json_data = open('set.json').read()
 json_data = open('set.json').read()
 set_data = json.loads(json_data)
 set_data = json.loads(json_data)
+
+session_opts = {
+    'session.type': 'file',
+    'session.data_dir': './app_session/',
+    'session.auto': True
+}
+
+app = beaker.middleware.SessionMiddleware(app(), session_opts)
+
+def get_time():
+    now = time.localtime()
+    date = "%04d-%02d-%02d %02d:%02d:%02d" % (now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)
+
+    return(date)
+    
+def ip_check():
+    session = request.environ.get('beaker.session')
+    if(session.get('Now') == True):
+        ip = format(session['DREAMER'])
+    else:
+        if(request.environ.get('HTTP_X_FORWARDED_FOR')):
+            ip = request.environ.get('HTTP_X_FORWARDED_FOR')
+        else:
+            ip = request.environ.get('REMOTE_ADDR')
+
+    return(ip)
     
     
 db_pas = pymysql.escape_string
 db_pas = pymysql.escape_string
 
 
+def url_pas(data):
+    return(parse.quote(data).replace('/','%2F'))
+
+def sha224(data):
+    return(hashlib.sha224(bytes(data, 'utf-8')).hexdigest())
+
 def savemark(data):
 def savemark(data):
     data = re.sub("\[date\(now\)\]", get_time(), data)
     data = re.sub("\[date\(now\)\]", get_time(), data)