Просмотр исходного кода

버그 수정, 파일 삭제 기능, 코드 일부 정리

Surplus_Up (2DU) 7 лет назад
Родитель
Сommit
7c5081542d
6 измененных файлов с 20 добавлено и 14 удалено
  1. 2 2
      app.py
  2. 2 1
      language/en-US.json
  3. 1 0
      language/ko-KR.json
  4. 10 2
      route/delete.py
  5. 3 5
      route/image_view.py
  6. 2 4
      route/tool/func.py

+ 2 - 2
app.py

@@ -295,7 +295,7 @@ def not_close_topic():
 
 @app.route('/image/<name>')
 def image_view(name = None):
-    return image_view_2(conn, name)
+    return image_view_2(conn, name, app_var)
 
 @app.route('/acl_list')
 def acl_list():
@@ -393,7 +393,7 @@ def preview(name = None):
         
 @app.route('/delete/<everything:name>', methods=['POST', 'GET'])
 def delete(name = None):
-    return delete_2(conn, name)        
+    return delete_2(conn, name, app_var)        
             
 @app.route('/move/<everything:name>', methods=['POST', 'GET'])
 def move(name = None):

+ 2 - 1
language/en-US.json

@@ -5,6 +5,7 @@
         "delete" : "Delete",
         "notice" : "Notice",
         "add" : "Add",
+        "license" : "License",
         "etc" : "Etc",
         "name" : "Name",
         "regex" : "Regex",
@@ -60,7 +61,7 @@
         "recent" : "Recently",
         "password" : "Password",
         "login" : "Sign-in",
-        "logout" : "Sing-out",
+        "logout" : "Sign-out",
         "register" : "Sign-up",
         "language" : "Language",
         "compare" : "Compare",

+ 1 - 0
language/ko-KR.json

@@ -5,6 +5,7 @@
         "delete" : "삭제",
         "notice" : "알림",
         "add" : "추가",
+        "license" : "저작권",
         "etc" : "기타",
         "name" : "이름",
         "regex" : "정규표현식",

+ 10 - 2
route/delete.py

@@ -1,6 +1,6 @@
 from .tool.func import *
 
-def delete_2(conn, name):
+def delete_2(conn, name, app_var):
     curs = conn.cursor()
 
     ip = ip_check()
@@ -24,7 +24,7 @@ def delete_2(conn, name):
                 '', 
                 today, 
                 ip, 
-                flask.request.form.get('send', None) + ' (delete)', 
+                flask.request.form.get('send', '') + ' (delete)', 
                 leng
             )
             
@@ -35,6 +35,14 @@ def delete_2(conn, name):
             curs.execute("delete from back where link = ?", [name])
             curs.execute("delete from data where title = ?", [name])
             conn.commit()
+
+        file_check = re.search('^file:(.+)\.(.+)$', name)
+        if file_check:
+            file_check = file_check.groups()
+            os.remove(os.path.join(
+                app_var['path_data_image'],
+                hashlib.sha224(bytes(file_check[0], 'utf-8')).hexdigest() + '.' + file_check[1]
+            ))
             
         return redirect('/w/' + url_pas(name))
     else:

+ 3 - 5
route/image_view.py

@@ -1,11 +1,9 @@
 from .tool.func import *
 
-APPVAR = json.loads(open('data/app_variables.json', encoding='utf-8').read())
-
-def image_view_2(conn, name):
+def image_view_2(conn, name, app_var):
     curs = conn.cursor()
     
-    if os.path.exists(os.path.join(APPVAR['PATH_DATA_IMAGES'], name)):
-        return flask.send_from_directory('.'+APPVAR['PATH_DATA_IMAGES'], name)
+    if os.path.exists(os.path.join(app_var['path_data_image'], name)):
+        return flask.send_from_directory('./' + app_var['path_data_image'], name)
     else:
         return redirect()

+ 2 - 4
route/tool/func.py

@@ -6,7 +6,6 @@ import tornado.httpserver
 import tornado.wsgi
 import urllib.request
 import email.mime.text
-import urllib.request
 import sqlite3
 import hashlib
 import smtplib
@@ -661,7 +660,7 @@ def acl_check(name, tool = ''):
         if ban_check() == 1:
             return 1
 
-        acl_c = re.search("^user:([^/]*)", name)
+        acl_c = re.search("^user:((?:(?!\/).)*)", name)
         if acl_c:
             acl_n = acl_c.groups()
 
@@ -685,8 +684,7 @@ def acl_check(name, tool = ''):
             else:
                 return 1
 
-        file_c = re.search("^file:(.*)", name)
-        if file_c and admin_check(5, 'edit (' + name + ')') != 1:
+        if re.search("^file:", name) and admin_check(None, 'file edit (' + name + ')') != 1:
             return 1
 
         curs.execute("select acl from user where id = ?", [ip])