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

https://github.com/openNAMU/openNAMU/issues/1599

잉여개발기 (SPDV) 2 лет назад
Родитель
Сommit
02dcca18b1
5 измененных файлов с 36 добавлено и 5 удалено
  1. 23 0
      route/filter_all_add.py
  2. 1 0
      route/filter_all_delete.py
  3. 1 4
      route/tool/func.py
  4. 10 0
      route/tool/func_render_namumark.py
  5. 1 1
      version.json

+ 23 - 0
route/filter_all_add.py

@@ -15,9 +15,14 @@ def filter_all_add(tool, name = None):
             if tool in ('inter_wiki', 'outer_link'):
                 link = flask.request.form.get('link', 'test')
                 icon = flask.request.form.get('icon', '')
+                inter_type = flask.request.form.get('inter_type', '')
 
                 curs.execute(db_change("delete from html_filter where html = ? and kind = ?"), [title, tool])
                 curs.execute(db_change('insert into html_filter (html, plus, plus_t, kind) values (?, ?, ?, ?)'), [title, link, icon, tool])
+                if tool == 'inter_wiki':
+                    curs.execute(db_change("delete from html_filter where html = ? and kind = 'inter_wiki_sub'"), [title])
+                    curs.execute(db_change('insert into html_filter (html, plus, plus_t, kind) values (?, "inter_wiki_type", ?, "inter_wiki_sub")'), [title, inter_type])
+                
                 admin_check(None, tool + ' edit')
             elif tool == 'edit_filter':
                 sec = flask.request.form.get('second', '0')
@@ -98,8 +103,25 @@ def filter_all_add(tool, name = None):
                     exist = curs.fetchall()
                     value = exist[0] if exist else value
 
+                select = ''
                 if tool == 'inter_wiki':
                     ex = 'https://namu.wiki/w/'
+
+                    select = ['', '']
+                    curs.execute(db_change("select plus_t from html_filter where kind = 'inter_wiki_sub' and html = ?"), [name])
+                    db_data = curs.fetchall()
+                    if db_data and db_data[0][0] == 'under_bar':
+                        select = ['', 'selected']
+
+                    select = '''
+                        <hr class="main_hr">
+                        ''' + load_lang('inter_wiki_space_change') + '''
+                        <hr class="main_hr">
+                        <select name="inter_type">
+                            <option ''' + select[0] + ''' value="url_encode">%20</option>
+                            <option ''' + select[1] + ''' value="under_bar">_</option>
+                        </select>
+                    '''
                 else:
                     ex = 'youtube.com'
 
@@ -116,6 +138,7 @@ def filter_all_add(tool, name = None):
                     ''' + load_lang('icon') + ''' (''' + ('HTML' if tool == 'inter_wiki' else load_lang('html_or_link')) + ''') (''' + load_lang('link') + ' EX' + ''' : /image/Test.svg)
                     <hr class="main_hr">
                     <input value="''' + html.escape(value[2]) + '''" type="text" name="icon">
+                    ''' + select + '''
                 '''
             elif tool == 'edit_filter':            
                 curs.execute(db_change("select plus, plus_t from html_filter where html = ? and kind = 'regex_filter'"), [name])

+ 1 - 0
route/filter_all_delete.py

@@ -9,6 +9,7 @@ def filter_all_delete(tool, name = 'Test'):
 
         if tool == 'inter_wiki':
             curs.execute(db_change("delete from html_filter where html = ? and kind = 'inter_wiki'"), [name])
+            curs.execute(db_change("delete from html_filter where html = ? and kind = 'inter_wiki_sub'"), [name])
         elif tool == 'edit_filter':
             curs.execute(db_change("delete from html_filter where html = ? and kind = 'regex_filter'"), [name])
         elif tool == 'name_filter':

+ 1 - 4
route/tool/func.py

@@ -968,10 +968,7 @@ def load_lang(data, safe = 0):
         else:
             lang_list = os.listdir('lang')
             if (lang_name + '.json') in lang_list:
-                lang = json.loads(open(
-                    os.path.join('lang', lang_name + '.json'), 
-                    encoding = 'utf8'
-                ).read())
+                lang = json.loads(open(os.path.join('lang', lang_name + '.json'), encoding = 'utf8').read())
                 global_lang[lang_name] = lang
             else:
                 lang = {}

+ 10 - 0
route/tool/func_render_namumark.py

@@ -1079,6 +1079,11 @@ class class_do_render_namumark:
 
                         link_sub_storage = link_inter_icon + link_sub_storage
 
+                        self.curs.execute(db_change("select plus_t from html_filter where kind = 'inter_wiki_sub' and html = ?"), [link_inter_name])
+                        db_data = self.curs.fetchall()
+                        if db_data and db_data[0][0] == 'under_bar':
+                            link_main = link_main.replace('%20', '_')
+
                         data_name = self.get_tool_data_storage('<a class="opennamu_link_inter" title="' + link_title + '" href="' + link_main + link_data_sharp + '">' + link_sub_storage, '</a>', link_data_full)
                     
                         self.render_data = re.sub(link_regex, lambda x : ('<' + data_name + '>' + link_sub + '</' + data_name + '>'), self.render_data, 1)
@@ -1550,6 +1555,11 @@ class class_do_render_namumark:
 
                     link_sub_storage = link_inter_icon + link_sub_storage
 
+                    self.curs.execute(db_change("select plus_t from html_filter where kind = 'inter_wiki_sub' and html = ?"), [link_inter_name])
+                    db_data = self.curs.fetchall()
+                    if db_data and db_data[0][0] == 'under_bar':
+                        link_main = link_main.replace('%20', '_')
+
                     self.data_redirect = 1
                     if 'doc_from' in self.doc_set:
                         data_name = self.get_tool_data_storage('<a href="' + link_main + link_data_sharp + '">(GO)</a>', '', link_data_full)

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.4.6-RC5-dev39",
+        "r_ver" : "v3.4.6-RC5-dev40",
         "c_ver" : "3500373",
         "s_ver" : "3500112"
     }