Преглед изворни кода

아이고 무슨 확장자 필터 만드는데 이렇게 많이 수정해야한디

Surplus_Up (2DU) пре 6 година
родитељ
комит
dd1da2476d

+ 4 - 4
app.py

@@ -339,16 +339,16 @@ def alarm_del():
 def alarm():
     return alarm_2(conn)
 
-@app.route('/<regex("inter_wiki|edit_top|image_license|(?:edit|email|file|name)_filter"):tools>')
+@app.route('/<regex("inter_wiki|edit_top|image_license|(?:edit|email|file|name|extension)_filter"):tools>')
 def inter_wiki(tools = None):
     return inter_wiki_2(conn, tools)
 
-@app.route('/<regex("del_(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name)_filter)"):tools>/<name>')
+@app.route('/<regex("del_(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name|extension)_filter)"):tools>/<name>')
 def inter_wiki_del(tools = None, name = None):
     return inter_wiki_del_2(conn, tools, name)
 
-@app.route('/<regex("plus_(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name)_filter)"):tools>', methods=['POST', 'GET'])
-@app.route('/<regex("plus_(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name|edit)_filter)"):tools>/<name>', methods=['POST', 'GET'])
+@app.route('/<regex("plus_(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name|extension)_filter)"):tools>', methods=['POST', 'GET'])
+@app.route('/<regex("plus_(?:inter_wiki|edit_top|image_license|(?:edit|email|file|name|extension)_filter)"):tools>/<name>', methods=['POST', 'GET'])
 def inter_wiki_plus(tools = None, name = None):
     return inter_wiki_plus_2(conn, tools, name)
 

+ 4 - 1
language/en-US.json

@@ -98,6 +98,7 @@
         "content" : "Content",
         "off" : "Off",
         "unset" : "Unset",
+        "extension" : "Extension",
         "delete_admin_group": "Delete admin group",
         "_comment_1.1_" : "Time",
             "second" : "Second(s)",
@@ -205,6 +206,7 @@
                 "file_filter_list" : "File name filter(s) list",
                 "edit_tool_list" : "Edit tool(s) list",
                 "image_license_list" : "Image license(s) list",
+                "extension_filter_list" : "Extension filter(s) list",
             "_comment_2.1.2_" : "Add",
                 "interwiki_add" : "Add Interwiki",
                 "edit_filter_add" : "Add contents filter",
@@ -213,6 +215,7 @@
                 "file_filter_add" : "Add file name filter",
                 "edit_tool_add" : "Add edit tool",
                 "image_license_add" : "Add image license",
+                "extension_filter_add" : "Add extension filter",
         "_comment_2.2_" : "Setting",
             "setting" : "Setting",
             "restart_required" : "Restart required",
@@ -356,7 +359,7 @@
             "file_exist_error" : "The file does not exist.",
             "password_error" : "The password is different.",
             "recaptcha_error" : "Go through the reCAPTCHA.",
-            "file_extension_error" : "Only JPG, GIF, JPEG, PNG, WEBP files are allowed.",
+            "file_extension_error" : "Only files with the specified extension can be uploaded.",
             "edit_record_error" : "Edit reason can not be more than 500 characters.",
             "same_file_error" : "A file with the same name exists.",
             "file_capacity_error" : "Maximum file capacity (MB): ",

+ 5 - 2
language/ko-KR.json

@@ -146,7 +146,7 @@
     "pinned": "고정",
     "edit_filter_add": "편집 필터 추가",
     "ban_authority": "차단 권한",
-    "file_extension_error": "오직 JPG, GIF, JPEG, PNG, WEBP 형식의 파일만 업로드할 수 있습니다.",
+    "file_extension_error": "지정된 확장자의 파일만 업로드 할 수 있습니다.",
     "host": "호스트",
     "email_text": "이메일 내용",
     "recent": "최근",
@@ -349,5 +349,8 @@
     "watchlist_overflow_error": "추가 한도를 초과했으므로 더 이상 추가할 수 없습니다. 필요없는 항목을 삭재하십시오.",
     "unset" : "미설정",
     "copyright_disagreed" : "저작권 동의문구에 체크하여야 합니다.",
-    "category_title" : "이 분류 아래 문서들"
+    "category_title" : "이 분류 아래 문서들",
+    "extension_filter_list" : "확장자 필터 목록",
+    "extension_filter_add" : "확장자 필터 추가",
+    "extension" : "확장자"
 }

+ 5 - 1
route/func_upload.py

@@ -20,7 +20,10 @@ def func_upload_2(conn):
             return re_error('/error/17')
 
         value = os.path.splitext(data.filename)[1]
-        if not value in ['.jpeg', '.jpg', '.gif', '.png', '.webp', '.JPEG', '.JPG', '.GIF', '.PNG', '.WEBP']:
+        
+        curs.execute(db_change("select html from html_filter where kind = 'extension'"))
+        extension = [i[0].lower() for i in curs.fetchall()]
+        if not re.sub('^\.', '', value).lower() in extension:
             return re_error('/error/14')
 
         if flask.request.form.get('f_name', None):
@@ -61,6 +64,7 @@ def func_upload_2(conn):
             lice += '[[category:' + re.sub('\]', '_', flask.request.form.get('f_lice_sel', None)) + ']]'
 
         if os.path.exists(os.path.join(app_var['path_data_image'], e_data)):
+
             os.remove(os.path.join(app_var['path_data_image'], e_data))
 
             data.save(os.path.join(app_var['path_data_image'], e_data))

+ 7 - 0
route/inter_wiki.py

@@ -55,6 +55,13 @@ def inter_wiki_2(conn, tools):
         div = ''
 
         curs.execute(db_change("select html from html_filter where kind = 'image_license'"))
+    elif tools == 'extension_filter':
+        del_link = 'del_extension_filter'
+        plus_link = 'plus_extension_filter'
+        title = load_lang('extension_filter_list')
+        div = ''
+
+        curs.execute(db_change("select html from html_filter where kind = 'extension'"))
     else:
         del_link = 'del_edit_top'
         plus_link = 'plus_edit_top'

+ 2 - 0
route/inter_wiki_del.py

@@ -16,6 +16,8 @@ def inter_wiki_del_2(conn, tools, name):
             curs.execute(db_change("delete from html_filter where html = ? and kind = 'email'"), [name])
         elif tools == 'del_image_license':
             curs.execute(db_change("delete from html_filter where html = ? and kind = 'image_license'"), [name])
+        elif tools == 'del_extension_filter':
+            curs.execute(db_change("delete from html_filter where html = ? and kind = 'extension'"), [name])
         else:
             curs.execute(db_change("delete from html_filter where html = ? and kind = 'edit_top'"), [name])
 

+ 11 - 0
route/inter_wiki_plus.py

@@ -64,6 +64,10 @@ def inter_wiki_plus_2(conn, tools, name):
                 admin_check(None, 'image_license edit')
 
                 type_d = 'image_license'
+            elif tools == 'plus_extension_filter':
+                admin_check(None, 'extension_filter edit')
+
+                type_d = 'extension'
             else:
                 admin_check(None, 'edit_top edit')
 
@@ -181,6 +185,13 @@ def inter_wiki_plus_2(conn, tools, name):
                 '<hr class=\"main_hr\">' + \
                 '<input value="' + (name if name else '') + '" type="text" name="title">' + \
             ''
+        elif tools == 'plus_extension_filter':
+            title = load_lang('extension_filter_add')
+            form_data = '' + \
+                load_lang('extension') + \
+                '<hr class=\"main_hr\">' + \
+                '<input value="' + (name if name else '') + '" type="text" name="title">' + \
+            ''
         else:
             title = load_lang('edit_tool_add')
             if name:

+ 1 - 0
route/main_manager.py

@@ -48,6 +48,7 @@ def main_manager_2(conn, num, r_ver):
                         <li><a href="/email_filter">''' + load_lang('email_filter_list') + '''</a></li>
                         <li><a href="/name_filter">''' + load_lang('id_filter_list') + '''</a></li>
                         <li><a href="/file_filter">''' + load_lang('file_filter_list') + '''</a></li>
+                        <li><a href="/extension_filter">''' + load_lang('extension_filter_list') + '''</a></li>
                     </ul>
                     <br>
                     <h2>''' + load_lang('server') + '''</h2>

+ 2 - 2
route/recent_changes.py

@@ -161,7 +161,7 @@ def recent_changes_2(conn, name, tool):
                     title = '<a href="/w/' + url_pas(data[1]) + '">' + html.escape(data[1]) + '</a> '
                     title += '<a href="/history/' + url_pas(data[1]) + '">(r' + data[0] + ')</a> '
 
-            div +=  '''
+            div += '''
                 <tr ''' + style[0] + '''>
                     <td>''' + title + m_tool + ' ' + leng + '''</td>
                     <td>''' + ip + ban + '''</td>
@@ -172,7 +172,7 @@ def recent_changes_2(conn, name, tool):
                 </tr>
             '''
 
-        div +=  '''
+        div += '''
                 </tbody>
             </table>
         '''

+ 15 - 3
route/tool/func.py

@@ -193,7 +193,8 @@ def update(ver_num):
                 curs.execute(db_change("update topic set code = ? where title = ? and sub = ? and id = '1'"), [str(num), i[0], i[1]])
                 num += 1
 
-            print('Add topic code')
+            if num != 1:
+                print('Add topic code')
     except:
         pass
 
@@ -204,6 +205,12 @@ def update(ver_num):
     if ver_num < 3160500:
         curs.execute(db_change('delete from cache_data'))
 
+    if ver_num < 3170002:
+        curs.execute(db_change("select html from html_filter where kind = 'extension'"))
+        if not curs.fetchall():
+            for i in ['jpg', 'jpeg', 'png', 'gif', 'webp']:
+                curs.execute(db_change("insert into html_filter (html, kind) values (?, 'extension')"), [i])
+
     conn.commit()
     print('Update pass')
     print('----')
@@ -215,6 +222,11 @@ def set_init():
         for i in ['naver.com', 'gmail.com', 'daum.net', 'kakao.com']:
             curs.execute(db_change("insert into html_filter (html, kind) values (?, 'email')"), [i])
 
+    curs.execute(db_change("select html from html_filter where kind = 'extension'"))
+    if not curs.fetchall():
+        for i in ['jpg', 'jpeg', 'png', 'gif', 'webp']:
+            curs.execute(db_change("insert into html_filter (html, kind) values (?, 'extension')"), [i])
+
     curs.execute(db_change('select data from other where name = "smtp_server" or name = "smtp_port" or name = "smtp_security"'))
     if not curs.fetchall():
         for i in [['smtp_server', 'imap.google.com'], ['smtp_port', '587'], ['smtp_security', 'tls']]:
@@ -1130,7 +1142,7 @@ def re_error(data):
             elif num == 7:
                 data = load_lang('long_id_error')
             elif num == 8:
-                data = load_lang('id_char_error') + ' <a href="/name_filter">(' + load_lang('id') + ' ' + load_lang('filter') + ')</a>'
+                data = load_lang('id_char_error') + ' <a href="/name_filter">(' + load_lang('id_filter_list') + ')</a>'
             elif num == 9:
                 data = load_lang('file_exist_error')
             elif num == 10:
@@ -1142,7 +1154,7 @@ def re_error(data):
             elif num == 13:
                 data = load_lang('recaptcha_error')
             elif num == 14:
-                data = load_lang('file_extension_error')
+                data = load_lang('file_extension_error') + ' <a href="/extension_filter">(' + load_lang('extension_filter_list') + ')</a>'
             elif num == 15:
                 data = load_lang('edit_record_error')
             elif num == 16:

+ 6 - 6
route/user_count_edit.py

@@ -24,11 +24,11 @@ def user_count_edit_2(conn, name):
 
     return easy_minify(flask.render_template(skin_check(),
         imp = [load_lang('count'), wiki_set(), custom(), other2([0, 0])],
-        data =  '''
-                <ul>
-                    <li><a href="/record/''' + url_pas(that) + '''">''' + load_lang('edit_record') + '''</a> : ''' + str(data) + '''</li>
-                    <li><a href="/topic_record/''' + url_pas(that) + '''">''' + load_lang('discussion_record') + '''</a> : ''' + str(t_data) + '''</a></li>
-                </ul>
-                ''',
+        data = '''
+            <ul>
+                <li><a href="/record/''' + url_pas(that) + '''">''' + load_lang('edit_record') + '''</a> : ''' + str(data) + '''</li>
+                <li><a href="/topic_record/''' + url_pas(that) + '''">''' + load_lang('discussion_record') + '''</a> : ''' + str(t_data) + '''</a></li>
+            </ul>
+        ''',
         menu = [['user', load_lang('return')]]
     ))

+ 2 - 2
version.json

@@ -1,7 +1,7 @@
 {
     "master" : {
-        "r_ver" : "v3.1.6-stable-05",
-        "c_ver" : "3160500",
+        "r_ver" : "v3.1.7-master-02",
+        "c_ver" : "3170002",
         "s_ver" : "7"
     }, "stable" : {
         "r_ver" : "v3.1.6-stable-05",