Przeglądaj źródła

Merge pull request #1805 from openNAMU/dev

Dev
잉여개발기 (SPDV) 3 lat temu
rodzic
commit
d4a866506b

+ 1 - 1
route/api_topic.py

@@ -91,7 +91,7 @@ def api_topic(topic_num = 1, tool = 'normal', num = '', render = ''):
                             data_r += bbs_w_post_make_thread(
                                 for_a["ip_pas"],
                                 '<a href="/thread/' + topic_num + '/comment/' + for_a["id"] + '/tool">(' + load_lang('tool') + ')</a> ' + for_a["date"],
-                                for_a["data_pas"][0] + for_a["data_pas"][1],
+                                for_a["data_pas"][0] + '<script>' + for_a["data_pas"][1] + '</script>',
                                 for_a["id"],
                                 color = color,
                                 blind = for_a["blind"],

+ 22 - 27
route/main_setting_main.py

@@ -36,7 +36,10 @@ def main_setting_main(db_set):
             32 : ['wiki_access_password', ''],
             33 : ['history_recording_off', ''],
             34 : ['namumark_compatible', ''],
-            35 : ['user_name_view', '']
+            35 : ['user_name_view', ''],
+            36 : ['link_case_insensitive', ''],
+            37 : ['move_with_redirect', ''],
+            38 : ['slow_thread', '']
         }
 
         if flask.request.method == 'POST':
@@ -86,33 +89,13 @@ def main_setting_main(db_set):
                 else:
                     tls_select += '<option value="' + tls_select_one + '">' + tls_select_one + '</option>'
 
-            check_box_div = ['', '', '', '', '', '', '', '', '', '', '', '']
+            check_box_div = [7, 8, '', 20, 23, 24, 25, 26, 31, 33, 34, 35, 36, 37]
             for i in range(0, len(check_box_div)):
-                if i == 0:
-                    acl_num = 7
-                elif i == 1:
-                    acl_num = 8
-                elif i == 3:
-                    acl_num = 20
-                elif i == 4:
-                    acl_num = 23
-                elif i == 5:
-                    acl_num = 24
-                elif i == 6:
-                    acl_num = 25
-                elif i == 7:
-                    acl_num = 26
-                elif i == 8:
-                    acl_num = 31
-                elif i == 9:
-                    acl_num = 33
-                elif i == 10:
-                    acl_num = 34
-                elif i == 11:
-                    acl_num = 35
-
-                if d_list[acl_num]:
+                acl_num = check_box_div[i]
+                if acl_num != '' and d_list[acl_num]:
                     check_box_div[i] = 'checked="checked"'
+                else:
+                    check_box_div[i] = ''
 
             branch_div = ''
             branch_list = ['stable', 'dev', 'beta']
@@ -190,8 +173,12 @@ def main_setting_main(db_set):
                         <hr class="main_hr">
                         <select name="skin">''' + load_skin(d_list[5] if d_list[5] != '' else 'ringo') + '''</select>
 
-                        <hr class="main_hr">
+                        <h2>''' + load_lang('render_set') + '''</h2>
                         <input type="checkbox" name="namumark_compatible" ''' + check_box_div[10] + '''> ''' + load_lang('namumark_fully_compatible_mode') + '''
+                        <hr class="main_hr">
+                        
+                        <input type="checkbox" name="link_case_insensitive" ''' + check_box_div[12] + '''> ''' + load_lang('link_case_insensitive') + '''
+                        <hr class="main_hr">
 
                         <h2>''' + load_lang('login_set') + '''</h2>
                         <input type="checkbox" name="reg" ''' + check_box_div[0] + '''> ''' + load_lang('no_register') + '''
@@ -267,6 +254,14 @@ def main_setting_main(db_set):
                         <input type="checkbox" name="history_recording_off" ''' + check_box_div[9] + '''> ''' + load_lang('set_history_recording_off') + ''' (''' + load_lang('beta') + ''')
                         <hr class="main_hr">
 
+                        <input type="checkbox" name="move_with_redirect" ''' + check_box_div[13] + '''> ''' + load_lang('move_with_redirect') + '''
+                        <hr class="main_hr">
+
+                        <span>''' + load_lang('slow_thread') + ''' (''' + load_lang('second') + ''') (''' + load_lang('off') + ''' : ''' + load_lang('empty') + ''') (''' + load_lang('not_working') + ''')</span>
+                        <hr class="main_hr">
+                        <input name="slow_thread" value="''' + html.escape(d_list[38]) + '''">
+                        <hr class="main_hr">
+
                         <button id="opennamu_save_button" type="submit">''' + load_lang('save') + '''</button>
                     </form>
                 '''),

+ 10 - 1
route/main_setting_skin_set.py

@@ -62,10 +62,19 @@ def main_setting_skin_set():
                         <select name="main_css_category_set">
                             ''' + set_data["main_css_category_set"] + '''
                         </select>
-                        <h3>''' + load_lang("footnote") + '''</h3>
+                        <h3>''' + load_lang("footnote") + ''' (''' + load_lang('beta') + ''')</h3>
+                        <h4>''' + load_lang("footnote_render") + '''</h4>
                         <select name="main_css_footnote_set">
                             ''' + set_data["main_css_footnote_set"] + '''
                         </select>
+                        <h4>''' + load_lang("footnote_number") + '''</h4>
+                        <select name="main_css_footnote_number">
+                            ''' + set_data["main_css_footnote_number"] + '''
+                        </select>
+                        <h4>''' + load_lang("footnote_real_num_view") + '''</h4>
+                        <select name="main_css_view_real_footnote_num">
+                            ''' + set_data["main_css_view_real_footnote_num"] + '''
+                        </select>
                         <h3>''' + load_lang("include_link") + '''</h3>
                         <select name="main_css_include_link">
                             ''' + set_data["main_css_include_link"] + '''

+ 4 - 23
route/tool/func.py

@@ -176,7 +176,6 @@ class get_db_connect:
                 port = int(self.db_set['mysql_port']),
                 autocommit = True
             )
-            curs = self.conn.cursor()
 
             try:
                 self.conn.select_db(self.db_set['name'])
@@ -187,6 +186,7 @@ class get_db_connect:
         return self.conn
     
     def __exit__(self, exc_type, exc_value, traceback):
+        self.conn.commit()
         load_conn(self.conn_sub)
         self.conn.close()
 
@@ -708,8 +708,6 @@ def set_init_always(ver_num):
         if db_data:
             global_wiki_set['wiki_access_password'] = db_data[0][0]
     
-    conn.commit()
-    
 def set_init():
     curs = conn.cursor()
 
@@ -739,8 +737,6 @@ def set_init():
             ['smtp_security', 'starttls']
         ]:
             curs.execute(db_change("insert into other (name, data, coverage) values (?, ?, '')"), [i[0], i[1]])
-        
-    conn.commit()
 
 # Func-simple
 ## Func-simple-without_DB
@@ -1359,10 +1355,6 @@ def render_set(doc_name = '', doc_data = '', data_type = 'view', data_in = '', d
             }
 
             get_class_render = class_do_render(conn, render_lang_data).do_render(doc_name, doc_data, data_type, data_in)
-
-            if data_type == 'backlink':
-                return ''
-
             
             if 'include' in get_class_render[2]:
                 for_a = 0
@@ -1389,6 +1381,9 @@ def render_set(doc_name = '', doc_data = '', data_type = 'view', data_in = '', d
 
                     for_a += 1
 
+            if data_type == 'backlink':
+                return ''
+
             get_class_render[0] = '<div class="opennamu_render_complete">' + get_class_render[0] + '</div>'
 
             curs.execute(db_change("select data from other where name = 'namumark_compatible'"))
@@ -1708,7 +1703,6 @@ def admin_check(num = None, what = None, name = ''):
                     curs.execute(db_change(
                         "insert into re_admin (who, what, time) values (?, ?, ?)"
                     ), [ip, what, time_data])
-                    conn.commit()
 
                 return 1
 
@@ -2027,7 +2021,6 @@ def ban_check(ip = None, tool = ''):
         "update rb set ongoing = '' " + \
         "where end < ? and end != '' and ongoing = '1'"
     ), [get_time()])
-    conn.commit()
 
     curs.execute(db_change("" + \
         "select login, block from rb " + \
@@ -2288,8 +2281,6 @@ def do_add_thread(thread_code, thread_data, thread_top = '', thread_id = ''):
         thread_code
     ])
     
-    conn.commit()
-    
 def do_reload_recent_thread(topic_num, date, name = None, sub = None):
     curs = conn.cursor()
 
@@ -2309,15 +2300,12 @@ def do_reload_recent_thread(topic_num, date, name = None, sub = None):
             date
         ])
 
-    conn.commit()
-
 def add_alarm(who, context):
     curs = conn.cursor()
 
     curs.execute(db_change(
         'insert into alarm (name, data, date) values (?, ?, ?)'
     ), [who, context, get_time()])
-    conn.commit()
     
 def add_user(user_name, user_pw, user_email = '', user_encode = ''):
     curs = conn.cursor()
@@ -2360,8 +2348,6 @@ def add_user(user_name, user_pw, user_email = '', user_encode = ''):
             user_name,
             user_email
         ])
-        
-    conn.commit()
     
 def ua_plus(u_id, u_ip, u_agent, time):
     curs = conn.cursor()
@@ -2379,7 +2365,6 @@ def ua_plus(u_id, u_ip, u_agent, time):
             u_agent, 
             time
         ])
-        conn.commit()
 
 def ban_insert(name, end, why, login, blocker, type_d = None):
     curs = conn.cursor()
@@ -2433,8 +2418,6 @@ def ban_insert(name, end, why, login, blocker, type_d = None):
             login
         ])
 
-    conn.commit()
-
 def history_plus(title, data, date, ip, send, leng, t_check = '', mode = ''):
     curs = conn.cursor()
     # 여기 좀 느린 듯
@@ -2538,8 +2521,6 @@ def history_plus(title, data, date, ip, send, leng, t_check = '', mode = ''):
 def re_error(data):
     curs = conn.cursor()
 
-    conn.commit()
-
     if data == '/ban':
         if ban_check() == 1:
             end = '<div id="opennamu_get_user_info">' + ip_check() + '</div>'

+ 6 - 6
route/tool/func_render.py

@@ -67,9 +67,9 @@ class class_do_render:
                 curs.execute(db_change("delete from back where title = ? and type = 'no'"), [doc_name])
 
             self.conn.commit()
-        else:
-            return [
-                data_end[0], 
-                data_end[1],
-                data_end[2]
-            ]
+
+        return [
+            data_end[0], 
+            data_end[1],
+            data_end[2]
+        ]

+ 29 - 3
route/tool/func_render_namumark.py

@@ -51,6 +51,10 @@ class class_do_render_namumark:
         self.render_data_cdn = ''
         self.render_data_js = ''
 
+        self.curs.execute(db_change('select data from other where name = "link_case_insensitive"'))
+        db_data = self.curs.fetchall()
+        self.link_case_insensitive = ' collate nocase' if db_data and db_data[0][0] != '' else ''
+
     def get_tool_lang(self, name):
         if name in self.lang_data:
             return self.lang_data[name]
@@ -149,6 +153,9 @@ class class_do_render_namumark:
         return data
 
     def get_tool_footnote_make(self):
+        footnote_number_set = get_main_skin_set(self.curs, self.flask_session, 'main_css_footnote_number', self.ip)
+        footnote_number_view_set = get_main_skin_set(self.curs, self.flask_session, 'main_css_view_real_footnote_num', self.ip)
+    
         data = ''
         for for_a in self.data_footnote:
             if data == '':
@@ -1013,13 +1020,14 @@ class class_do_render_namumark:
 
                     link_exist = ''
                     if link_main != '':
-                        self.curs.execute(db_change("select title from data where title = ?"), [link_main])
+                        self.curs.execute(db_change("select title from data where title = ?" + self.link_case_insensitive), [link_main])
                         db_data = self.curs.fetchall()
                         if not db_data:
                             self.data_backlink += [[self.doc_name, link_main, 'no']]
                             self.data_backlink += [[self.doc_name, link_main, '']]
                             link_exist = 'opennamu_not_exist_link'
                         else:
+                            link_main = db_data[0][0]
                             self.data_backlink += [[self.doc_name, link_main, '']]
 
                     link_same = ''
@@ -1189,7 +1197,11 @@ class class_do_render_namumark:
 
     def do_redner_footnote(self):
         footnote_num = 0
+
         footnote_set = get_main_skin_set(self.curs, self.flask_session, 'main_css_footnote_set', self.ip)
+        footnote_number_set = get_main_skin_set(self.curs, self.flask_session, 'main_css_footnote_number', self.ip)
+        footnote_number_view_set = get_main_skin_set(self.curs, self.flask_session, 'main_css_view_real_footnote_num', self.ip)
+
         footnote_regex = re.compile('(?:\[\*((?:(?!\[\*|\]| ).)+)?(?: ((?:(?!\[\*|\]).)+))?\]|\[(각주|footnote)\])', re.I)
         footnote_count_all = len(re.findall(footnote_regex, self.render_data)) * 4
         while 1:
@@ -1230,7 +1242,14 @@ class class_do_render_namumark:
 
                         fn = self.doc_include + 'fn_' + footnote_first
                         rfn = self.doc_include + 'rfn_' + footnote_num_str
-                        foot_v_name = footnote_name + ' (' + footnote_num_str + ')'
+
+                        if footnote_number_set == 'only_number':
+                            foot_v_name += footnote_first
+                        else:
+                            foot_v_name += footnote_name
+                            
+                        if footnote_number_view_set != 'off':
+                            foot_v_name += ' (' + footnote_num_str + ')'
                     else:
                         self.data_footnote[footnote_name] = {}
                         self.data_footnote[footnote_name]['list'] = [footnote_num_str]
@@ -1238,7 +1257,14 @@ class class_do_render_namumark:
 
                         fn = self.doc_include + 'fn_' + footnote_num_str
                         rfn = self.doc_include + 'rfn_' + footnote_num_str
-                        foot_v_name = footnote_name + footnote_name_add
+
+                        if footnote_number_set == 'only_number':
+                            foot_v_name += footnote_num_str
+                        else:
+                            foot_v_name += footnote_name
+                            
+                        if footnote_number_view_set != 'off':
+                            foot_v_name += footnote_name_add
 
                     if footnote_set == 'spread':
                         data_name = self.get_tool_data_storage(

+ 19 - 0
route/user_setting_skin_set_main.py

@@ -56,6 +56,14 @@ def user_setting_skin_set_main_set_list():
             ['default', load_lang('default')],
             ['0', load_lang('off')],
             ['1', load_lang('use')]
+        ], 'main_css_footnote_number' : [
+            ['default', load_lang('default')],
+            ['all', load_lang('all')],
+            ['only_number', load_lang('only_number')]
+        ], 'main_css_view_real_footnote_num' : [
+            ['default', load_lang('default')],
+            ['off', load_lang('off')],
+            ['on', load_lang('use')]
         ]
     }
 
@@ -145,10 +153,21 @@ def user_setting_skin_set_main():
                             ''' + set_data["main_css_category_set"] + '''
                         </select>
                         <h3>''' + load_lang("footnote") + ''' (''' + load_lang('beta') + ''')</h3>
+                        <h4>''' + load_lang("footnote_render") + '''</h4>
                         ''' + set_data_main["main_css_footnote_set"] + '''
                         <select name="main_css_footnote_set">
                             ''' + set_data["main_css_footnote_set"] + '''
                         </select>
+                        <h4>''' + load_lang("footnote_number") + '''</h4>
+                        ''' + set_data_main["main_css_footnote_number"] + '''
+                        <select name="main_css_footnote_number">
+                            ''' + set_data["main_css_footnote_number"] + '''
+                        </select>
+                        <h4>''' + load_lang("footnote_real_num_view") + '''</h4>
+                        ''' + set_data_main["main_css_view_real_footnote_num"] + '''
+                        <select name="main_css_view_real_footnote_num">
+                            ''' + set_data["main_css_view_real_footnote_num"] + '''
+                        </select>
                         <h3>''' + load_lang("include_link") + '''</h3>
                         ''' + set_data_main["main_css_include_link"] + '''
                         <select name="main_css_include_link">

+ 5 - 1
route/view_xref.py

@@ -21,10 +21,14 @@ def view_xref(name = 'Test', xref_type = 1):
 
         div += '<ul class="opennamu_ul">'
 
+        curs.execute(db_change('select data from other where name = "link_case_insensitive"'))
+        db_data = curs.fetchall()
+        link_case_insensitive = ' collate nocase' if db_data and db_data[0][0] != '' else ''
+
         sql_insert = ['link', 'title'] if xref_type == 1 else ['title', 'link']
         curs.execute(db_change("" + \
             "select distinct " + sql_insert[0] + ", type from back " + \
-            "where " + sql_insert[1] + " = ? and not type = 'no' and not type = 'nothing'" + \
+            "where " + sql_insert[1] + " = ?" + link_case_insensitive + " and not type = 'no' and not type = 'nothing' " + \
             "order by type asc, " + sql_insert[0] + " asc limit ?, 50" + \
         ""), [
             name,

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.4.6-RC3-dev179",
+        "r_ver" : "v3.4.6-RC3-dev181",
         "c_ver" : "3500361",
         "s_ver" : "3500111"
     }