Browse Source

일부 기능 수정, 인터위키 코드 분리, 버그 수정

Surplus_UP (2DU) 7 years ago
parent
commit
7ebc51c581
5 changed files with 112 additions and 97 deletions
  1. 4 72
      app.py
  2. 18 18
      language/en-US.json
  3. 2 0
      route/alarm.py
  4. 75 0
      route/inter_wiki.py
  5. 13 7
      route/tool/func.py

+ 4 - 72
app.py

@@ -2,6 +2,7 @@ from route.read_view import *
 from route.delete import *
 from route.delete import *
 from route.del_alarm import *
 from route.del_alarm import *
 from route.alarm import *
 from route.alarm import *
+from route.inter_wiki import *
 
 
 r_ver = 'v3.0.9-master-004'
 r_ver = 'v3.0.9-master-004'
 c_ver = '309001'
 c_ver = '309001'
@@ -327,76 +328,7 @@ def alarm():
 
 
 @app.route('/<regex("inter_wiki|(?:edit|email|name)_filter"):tools>')
 @app.route('/<regex("inter_wiki|(?:edit|email|name)_filter"):tools>')
 def inter_wiki(tools = None):
 def inter_wiki(tools = None):
-    div = ''
-    admin = admin_check()
-
-    if tools == 'inter_wiki':
-        del_link = 'del_inter_wiki'
-        plus_link = 'plus_inter_wiki'
-        title = load_lang('interwiki_list')
-        div = ''
-
-        curs.execute('select title, link from inter')
-    elif tools == 'email_filter':
-        del_link = 'del_email_filter'
-        plus_link = 'plus_email_filter'
-        title = load_lang('email_filter_list')
-        div =   '''
-                <ul>
-                    <li>gmail.com</li>
-                    <li>naver.com</li>
-                    <li>daum.net</li>
-                    <li>hanmail.net</li>
-                    <li>hanmail2.net</li>
-                </ul>
-                '''
-
-        curs.execute("select html from html_filter where kind = 'email'")
-    elif tools == 'name_filter':
-        del_link = 'del_name_filter'
-        plus_link = 'plus_name_filter'
-        title = load_lang('id_filter_list')
-        div = ''
-
-        curs.execute("select html from html_filter where kind = 'name'")
-    else:
-        del_link = 'del_edit_filter'
-        plus_link = 'manager/9'
-        title = load_lang('edit_filter_list')
-        div = ''
-
-        curs.execute("select name from filter")
-
-    db_data = curs.fetchall()
-    if db_data:
-        div += '<ul>'
-
-        for data in db_data:
-            if tools == 'inter_wiki':
-                div += '<li>' + data[0] + ' : <a id="out_link" href="' + data[1] + '">' + data[1] + '</a>'
-            elif tools == 'edit_filter':
-                div += '<li><a href="/plus_edit_filter/' + url_pas(data[0]) + '">' + data[0] + '</a>'
-            else:
-                div += '<li>' + data[0]
-
-            if admin == 1:
-                div += ' <a href="/' + del_link + '/' + url_pas(data[0]) + '">(' + load_lang('delete') + ')</a>'
-
-            div += '</li>'
-
-        div += '</ul>'
-
-        if admin == 1:
-            div += '<hr class=\"main_hr\"><a href="/' + plus_link + '">(' + load_lang('add') + ')</a>'
-    else:
-        if admin == 1:
-            div += '<a href="/' + plus_link + '">(' + load_lang('add') + ')</a>'
-
-    return easy_minify(flask.render_template(skin_check(), 
-        imp = [title, wiki_set(), custom(), other2([0, 0])],
-        data = div,
-        menu = [['other', load_lang('return')]]
-    ))
+    return inter_wiki_2(conn, tools)
 
 
 @app.route('/<regex("del_(?:inter_wiki|(?:edit|email|name)_filter)"):tools>/<name>')
 @app.route('/<regex("del_(?:inter_wiki|(?:edit|email|name)_filter)"):tools>/<name>')
 def del_inter(tools = None, name = None):
 def del_inter(tools = None, name = None):
@@ -785,7 +717,7 @@ def setting(num = 0):
                 data = ''
                 data = ''
 
 
             return easy_minify(flask.render_template(skin_check(), 
             return easy_minify(flask.render_template(skin_check(), 
-                imp = [html.unescape(load_lang('main' + title)), wiki_set(), custom(), other2([0, 0])],
+                imp = [load_lang(data = 'main' + title, safe = 1), wiki_set(), custom(), other2([0, 0])],
                 data =  '''
                 data =  '''
                         <form method="post">
                         <form method="post">
                             <textarea rows="25" name="content">''' + html.escape(data) + '''</textarea>
                             <textarea rows="25" name="content">''' + html.escape(data) + '''</textarea>
@@ -4327,7 +4259,7 @@ def custom_head_view():
         start += '<span>&lt;style&gt;css&lt;/style&gt;<br>&lt;script&gt;js&lt;/script&gt;</span><hr class=\"main_hr\">'
         start += '<span>&lt;style&gt;css&lt;/style&gt;<br>&lt;script&gt;js&lt;/script&gt;</span><hr class=\"main_hr\">'
 
 
         return easy_minify(flask.render_template(skin_check(), 
         return easy_minify(flask.render_template(skin_check(), 
-            imp = [html.unescape(load_lang('user_head')), wiki_set(), custom(), other2([0, 0])],
+            imp = [load_lang(data = 'user_head', safe = 1), wiki_set(), custom(), other2([0, 0])],
             data =  start + '''
             data =  start + '''
                     <form method="post">
                     <form method="post">
                         <textarea rows="25" cols="100" name="content">''' + data + '''</textarea>
                         <textarea rows="25" cols="100" name="content">''' + data + '''</textarea>

+ 18 - 18
language/en-US.json

@@ -18,9 +18,9 @@
         "host" : "Host",
         "host" : "Host",
         "port" : "Port",
         "port" : "Port",
         "restart" : "Restart",
         "restart" : "Restart",
-        "document_name" : "Document's name",
-        "discussion_name" : "Discussion's name",
-        "user_name" : "User's name",
+        "document_name" : "Document[s] name",
+        "discussion_name" : "Discussion[s] name",
+        "user_name" : "User[s] name",
         "go" : "Go",
         "go" : "Go",
         "document" : "Document",
         "document" : "Document",
         "discussion" : "Discussion",
         "discussion" : "Discussion",
@@ -105,10 +105,10 @@
         "edit_filter" : "Contents filter",
         "edit_filter" : "Contents filter",
         "recent_ban" : "Recently Block(s)",
         "recent_ban" : "Recently Block(s)",
         "load" : "Import another document",
         "load" : "Import another document",
-        "edit_filter_rule" : "Contents filter's rule",
+        "edit_filter_rule" : "Contents filter[s] rule",
         "move_history" : "History of move",
         "move_history" : "History of move",
         "other_tool" : "Other tool",
         "other_tool" : "Other tool",
-        "admin_tool" : "Admin's tool",
+        "admin_tool" : "Admin[s] tool",
         "check_user" : "Check user",
         "check_user" : "Check user",
         "compare_target" : "Comparison target name",
         "compare_target" : "Comparison target name",
         "authorize" : "Authorize",
         "authorize" : "Authorize",
@@ -117,7 +117,7 @@
         "notice_release" : "Release notice",
         "notice_release" : "Release notice",
         "ban_release" : "Unblock",
         "ban_release" : "Unblock",
         "discussion_tool" : "Discussion tools",
         "discussion_tool" : "Discussion tools",
-        "discussion_raw" : "Discussion's raw",
+        "discussion_raw" : "Discussion[s] raw",
         "oauth_signin_facebook" : "Sign-in with Facebook",
         "oauth_signin_facebook" : "Sign-in with Facebook",
         "oauth_signin_naver" : "Sign-in with NAVER",
         "oauth_signin_naver" : "Sign-in with NAVER",
         "connection" : "Connection",
         "connection" : "Connection",
@@ -131,15 +131,15 @@
         "login_able" : "Loginable",
         "login_able" : "Loginable",
         "band_ban" : "Range block",
         "band_ban" : "Range block",
         "band_blocked" : "Range blocked",
         "band_blocked" : "Range blocked",
-        "document_acl" : "Document's ACL",
-        "discussion_acl" : "Discussion's ACL",
+        "document_acl" : "Document[s] ACL",
+        "discussion_acl" : "Discussion[s] ACL",
         "view_acl" : "Document viewed ACL",
         "view_acl" : "Document viewed ACL",
         "under_category" : "Sub-category",
         "under_category" : "Sub-category",
         "count" : "Number of Contributions",
         "count" : "Number of Contributions",
         "alarm" : "Notice(s)",
         "alarm" : "Notice(s)",
-        "user_document" : "User's document",
-        "user_head" : "User's <head>",
-        "user_document_acl" : "User's document ACL",
+        "user_document" : "User[s] document",
+        "user_head" : "User[s] <head>",
+        "user_document_acl" : "User[s] document ACL",
         "_comment_2.1_" : "Filter",
         "_comment_2.1_" : "Filter",
             "_comment_2.1.1_" : "List",
             "_comment_2.1.1_" : "List",
                 "interwiki_list" : "Interwiki(s) list",
                 "interwiki_list" : "Interwiki(s) list",
@@ -164,20 +164,20 @@
                 "main_head" : "Global <head>",
                 "main_head" : "Global <head>",
                 "main_body" : "Global <body>",
                 "main_body" : "Global <body>",
             "_comment_2.2.2_" : "Main",
             "_comment_2.2.2_" : "Main",
-                "wiki_name" : "Wiki's name",
-                "wiki_logo" : "Wiki's logo",
+                "wiki_name" : "Wiki[s] name",
+                "wiki_logo" : "Wiki[s] logo",
                 "main_page" : "Main page",
                 "main_page" : "Main page",
                 "bottom_text" : "Bottom text",
                 "bottom_text" : "Bottom text",
                 "max_file_size" : "Max file size",
                 "max_file_size" : "Max file size",
                 "backup_interval" : "Backup Cycles",
                 "backup_interval" : "Backup Cycles",
-                "wiki_skin" : "Wiki's Skin",
+                "wiki_skin" : "Wiki[s] Skin",
                 "default_acl" : "Default edit ACL",
                 "default_acl" : "Default edit ACL",
                 "default_discussion_acl" : "Default discussion ACL",
                 "default_discussion_acl" : "Default discussion ACL",
                 "no_register" : "No sign-up",
                 "no_register" : "No sign-up",
                 "hide ip" : "Hide IP",
                 "hide ip" : "Hide IP",
-                "wiki_host" : "Wiki's host",
-                "wiki_port" : "Wiki's port",
-                "wiki_secret_key" : "Wiki's secret key",
+                "wiki_host" : "Wiki[s] host",
+                "wiki_port" : "Wiki[s] port",
+                "wiki_secret_key" : "Wiki[s] secret key",
             "_comment_2.2.3_" : "Text",
             "_comment_2.2.3_" : "Text",
                 "register_text" : "Terms of sign-up",
                 "register_text" : "Terms of sign-up",
                 "non_login_alert" : "Non-login alert",
                 "non_login_alert" : "Non-login alert",
@@ -215,7 +215,7 @@
         "oauth_settings_not_found" : "Administrator has not provided any data about using this feature.",
         "oauth_settings_not_found" : "Administrator has not provided any data about using this feature.",
         "oauth_disabled" : "Administrator has disabled this feature.",
         "oauth_disabled" : "Administrator has disabled this feature.",
         "http_warring" : "Warning : If you are not on HTTPS connection, Your information can be leaked. We won't response to that.",
         "http_warring" : "Warning : If you are not on HTTPS connection, Your information can be leaked. We won't response to that.",
-        "user_head_warring" : "User's <head> will deleted if you close the browser or sign-in",
+        "user_head_warring" : "User[s] <head> will deleted if you close the browser or sign-in",
         "no_login_warring" : "Non-login status. IP is logged when working with non-login.",
         "no_login_warring" : "Non-login status. IP is logged when working with non-login.",
         "_comment_3.1_" : "Error",
         "_comment_3.1_" : "Error",
             "update_error" : "Auto update is not support.",
             "update_error" : "Auto update is not support.",

+ 2 - 0
route/alarm.py

@@ -1,6 +1,8 @@
 from .tool.func import *
 from .tool.func import *
 
 
 def alarm_2(conn):
 def alarm_2(conn):
+    curs = conn.cursor()
+    
     if custom()[2] == 0:
     if custom()[2] == 0:
         return redirect('/login')    
         return redirect('/login')    
 
 

+ 75 - 0
route/inter_wiki.py

@@ -0,0 +1,75 @@
+from .tool.func import *
+
+def inter_wiki_2(conn, tools):
+    curs = conn.cursor()
+    
+    div = ''
+    admin = admin_check()
+
+    if tools == 'inter_wiki':
+        del_link = 'del_inter_wiki'
+        plus_link = 'plus_inter_wiki'
+        title = load_lang('interwiki_list')
+        div = ''
+
+        curs.execute('select title, link from inter')
+    elif tools == 'email_filter':
+        del_link = 'del_email_filter'
+        plus_link = 'plus_email_filter'
+        title = load_lang('email_filter_list')
+        div =   '''
+                <ul>
+                    <li>gmail.com</li>
+                    <li>naver.com</li>
+                    <li>daum.net</li>
+                    <li>hanmail.net</li>
+                    <li>hanmail2.net</li>
+                </ul>
+                '''
+
+        curs.execute("select html from html_filter where kind = 'email'")
+    elif tools == 'name_filter':
+        del_link = 'del_name_filter'
+        plus_link = 'plus_name_filter'
+        title = load_lang('id_filter_list')
+        div = ''
+
+        curs.execute("select html from html_filter where kind = 'name'")
+    else:
+        del_link = 'del_edit_filter'
+        plus_link = 'manager/9'
+        title = load_lang('edit_filter_list')
+        div = ''
+
+        curs.execute("select name from filter")
+
+    db_data = curs.fetchall()
+    if db_data:
+        div += '<ul>'
+
+        for data in db_data:
+            if tools == 'inter_wiki':
+                div += '<li>' + data[0] + ' : <a id="out_link" href="' + data[1] + '">' + data[1] + '</a>'
+            elif tools == 'edit_filter':
+                div += '<li><a href="/plus_edit_filter/' + url_pas(data[0]) + '">' + data[0] + '</a>'
+            else:
+                div += '<li>' + data[0]
+
+            if admin == 1:
+                div += ' <a href="/' + del_link + '/' + url_pas(data[0]) + '">(' + load_lang('delete') + ')</a>'
+
+            div += '</li>'
+
+        div += '</ul>'
+
+        if admin == 1:
+            div += '<hr class=\"main_hr\"><a href="/' + plus_link + '">(' + load_lang('add') + ')</a>'
+    else:
+        if admin == 1:
+            div += '<a href="/' + plus_link + '">(' + load_lang('add') + ')</a>'
+
+    return easy_minify(flask.render_template(skin_check(), 
+        imp = [title, wiki_set(), custom(), other2([0, 0])],
+        data = div,
+        menu = [['other', load_lang('return')]]
+    ))

+ 13 - 7
route/tool/func.py

@@ -248,7 +248,7 @@ def captcha_post(re_data, num = 1):
     else:
     else:
         pass
         pass
 
 
-def load_lang(data, num = 2):
+def load_lang(data, num = 2, safe = 0):
     if num == 1:
     if num == 1:
         curs.execute("select data from other where name = 'language'")
         curs.execute("select data from other where name = 'language'")
         rep_data = curs.fetchall()
         rep_data = curs.fetchall()
@@ -257,7 +257,10 @@ def load_lang(data, num = 2):
         lang = json.loads(json_data)
         lang = json.loads(json_data)
 
 
         if data in lang:
         if data in lang:
-            return html.escape(lang[data])
+            if safe == 1:
+                return lang[data]
+            else:
+                return html.escape(lang[data])
         else:
         else:
             return html.escape(data + ' (M)')
             return html.escape(data + ' (M)')
     else:
     else:
@@ -268,14 +271,17 @@ def load_lang(data, num = 2):
                 json_data = open(os.path.join('language', rep_data[0][0] + '.json'), 'rt', encoding='utf-8').read()
                 json_data = open(os.path.join('language', rep_data[0][0] + '.json'), 'rt', encoding='utf-8').read()
                 lang = json.loads(json_data)
                 lang = json.loads(json_data)
             except:
             except:
-                return load_lang(data, 1)
+                return load_lang(data, 1, safe)
 
 
             if data in lang:
             if data in lang:
-                return html.escape(lang[data])
+                if safe == 1:
+                    return lang[data]
+                else:
+                    return html.escape(lang[data])
             else:
             else:
-                return load_lang(data, 1)
+                return load_lang(data, 1, safe)
         else:
         else:
-            return load_lang(data, 1)
+            return load_lang(data, 1, safe)
 
 
 def load_oauth(provider):
 def load_oauth(provider):
     oauth = json.loads(open('oauthsettings.json', encoding='utf-8').read())
     oauth = json.loads(open('oauthsettings.json', encoding='utf-8').read())
@@ -382,7 +388,7 @@ def wiki_set(num = 1):
         if db_data and db_data[0][0] != '':
         if db_data and db_data[0][0] != '':
             data_list += [db_data[0][0]]
             data_list += [db_data[0][0]]
         else:
         else:
-            data_list += ['wiki']
+            data_list += ['Wiki']
 
 
         curs.execute('select data from other where name = "license"')
         curs.execute('select data from other where name = "license"')
         db_data = curs.fetchall()
         db_data = curs.fetchall()