Quellcode durchsuchen

404 페이지 개선

https://github.com/openNAMU/openNAMU/issues/2475
잉여개발기 vor 1 Jahr
Ursprung
Commit
73cc933402
7 geänderte Dateien mit 90 neuen und 32 gelöschten Zeilen
  1. 5 5
      app.py
  2. 3 4
      route/__init__.py
  3. 5 3
      route/go_api_func_language.py
  4. 15 5
      route/go_api_setting.py
  5. 60 0
      route/main_setting_404_page.py
  6. 0 13
      route/n_setting_404_page.py
  7. 2 2
      version.json

+ 5 - 5
app.py

@@ -847,8 +847,8 @@ app.route('/api/recent_discuss/<set_type>/<int:limit>')(api_list_recent_discuss)
 app.route('/api/recent_discuss/<int:limit>')(api_list_recent_discuss)
 app.route('/api/recent_discuss')(api_list_recent_discuss)
 
-app.route('/api/lang', methods = ['POST'])(api_func_language)
-app.route('/api/lang/<data>')(api_func_language)
+app.route('/api/lang', methods = ['POST'])(api_func_language_exter)
+app.route('/api/lang/<data>')(api_func_language_exter)
 app.route('/api/sha224/<everything:data>')(api_func_sha224)
 app.route('/api/ip/<everything:data>')(api_func_ip)
 
@@ -886,7 +886,7 @@ app.route('/api/v2/doc_watch_list/<int:num>/<everything:name>')(api_w_watch_list
 app.route('/api/v2/set_reset/<everything:name>')(api_w_set_reset)
 app.route('/api/v2/page_view/<everything:name>')(api_w_page_view)
 
-app.route('/api/v2/setting/<name>', methods = ['GET', 'PUT'])(api_setting)
+app.route('/api/v2/setting/<name>', methods = ['GET', 'PUT'])(api_setting_exter)
 
 app.route('/api/v2/auth')(api_func_auth)
 app.route('/api/v2/auth/<user_name>')(api_func_auth)
@@ -898,7 +898,7 @@ app.route('/api/v2/user/setting/editor', methods = ['GET', 'POST', 'DELETE'])(ap
 app.route('/api/v2/ip/<everything:data>', methods = ['GET', 'POST'])(api_func_ip)
 app.route('/api/v2/ip_menu/<everything:ip>', defaults = { 'option' : 'user' }, methods = ['GET', 'POST'])(api_func_ip_menu)
 app.route('/api/v2/user_menu/<everything:ip>')(api_func_ip_menu)
-app.route('/api/v2/lang', defaults = { 'legacy' : '' }, methods = ['POST'])(api_func_language)
+app.route('/api/v2/lang', defaults = { 'legacy' : '' }, methods = ['POST'])(api_func_language_exter)
 
 # Func-main
 # 여기도 전반적인 조정 시행 예정
@@ -931,7 +931,7 @@ app.route('/setting/external', methods = ['POST', 'GET'])(main_setting_external)
 app.route('/setting/sitemap', methods = ['POST', 'GET'])(main_setting_sitemap)
 app.route('/setting/sitemap_set', methods = ['POST', 'GET'])(main_setting_sitemap_set)
 app.route('/setting/skin_set', methods = ['POST', 'GET'])(main_setting_skin_set)
-app.route('/setting/404_page', methods = ['POST', 'GET'])(setting_404_page)
+app.route('/setting/404_page', methods = ['POST', 'GET'])(main_setting_404_page)
 app.route('/setting/email_test', methods = ['POST', 'GET'])(main_setting_email_test)
 
 app.route('/easter_egg')(main_func_easter_egg)

+ 3 - 4
route/__init__.py

@@ -81,6 +81,7 @@ from route.main_setting_sitemap_set import main_setting_sitemap_set
 from route.main_setting_skin_set import main_setting_skin_set
 from route.main_setting_top_menu import main_setting_top_menu
 from route.main_setting_email_test import main_setting_email_test
+from route.main_setting_404_page import main_setting_404_page
 
 from route.main_sys_restart import main_sys_restart
 from route.main_sys_shutdown import main_sys_shutdown
@@ -167,8 +168,6 @@ from route.n_topic_list import topic_list
 
 from route.n_give_auth import give_auth
 
-from route.n_setting_404_page import setting_404_page
-
 from route.n_bbs_main import bbs_main
 from route.n_bbs_in import bbs_in
 from route.n_bbs_w_set import bbs_w_set
@@ -176,7 +175,7 @@ from route.n_bbs_w_set import bbs_w_set
 from route.n_edit_move_all import edit_move_all
 
 from route.go_api_func_llm import api_func_llm
-from route.go_api_func_language import api_func_language
+from route.go_api_func_language import api_func_language, api_func_language_exter
 from route.go_api_func_sha224 import api_func_sha224
 from route.go_api_func_ip import api_func_ip
 from route.go_api_func_ip_menu import api_func_ip_menu
@@ -205,7 +204,7 @@ from route.go_api_bbs_w_tabom import api_bbs_w_tabom
 from route.go_api_bbs_w_comment import api_bbs_w_comment, api_bbs_w_comment_exter
 from route.go_api_bbs_w_comment_one import api_bbs_w_comment_one, api_bbs_w_comment_one_exter
 
-from route.go_api_setting import api_setting
+from route.go_api_setting import api_setting, api_setting_exter
 
 from route.go_api_topic import api_topic
 from route.go_api_topic_list import api_topic_list

+ 5 - 3
route/go_api_func_language.py

@@ -4,10 +4,12 @@ async def api_func_language(legacy = 'on', data = 'Test'):
     other_set = {}
     if flask.request.method == 'POST':
         other_set["data"] = flask.request.form.get('data', '')
-        other_set["data"] = other_set["data"].split(' ')
     else:
-        other_set["data"] = [data]
+        other_set["data"] = data
 
     other_set["legacy"] = legacy
 
-    return flask.jsonify(await python_to_golang(sys._getframe().f_code.co_name, other_set))
+    return await python_to_golang(sys._getframe().f_code.co_name, other_set)
+
+async def api_func_language_exter(legacy = 'on', data = 'Test'):
+    return flask.jsonify(await api_func_language(legacy, data))

+ 15 - 5
route/go_api_setting.py

@@ -1,12 +1,22 @@
 from .tool.func import *
 
-async def api_setting(name = 'Test'):
+async def api_setting(name = 'Test', method = '', data = ''):
     other_set = {}
     other_set["set_name"] = name
 
+    if method == '':
+        method = flask.request.method
+
     func_name = sys._getframe().f_code.co_name
-    if flask.request.method == 'PUT':
+    if method == 'PUT':
         func_name += '_put'
-        other_set['data'] = flask.request.form.get('data', 'Test')
-    
-    return flask.jsonify(await python_to_golang(func_name, other_set))
+
+        if data == '':
+            other_set['data'] = flask.request.form.get('data', 'Test')
+        else:
+            other_set['data'] = data
+
+    return await python_to_golang(func_name, other_set)
+
+async def api_setting_exter(name = 'Test'):
+    return flask.jsonify(await api_setting(name))

+ 60 - 0
route/main_setting_404_page.py

@@ -0,0 +1,60 @@
+from .tool.func import *
+
+from .go_api_func_language import api_func_language
+from .go_api_setting import api_setting
+
+async def main_setting_404_page():
+    with get_db_connect() as conn:
+        if await acl_check('', 'owner_auth', '', '') == 1:
+            return await re_error(conn, 0)
+            
+        if flask.request.method == 'POST':
+            select_data = flask.request.form.get('select', '404_page')
+            form_data = flask.request.form.get('data', 'Test')
+
+            await api_setting('manage_404_page', 'PUT', select_data)
+            await api_setting('manage_404_page_content', 'PUT', form_data)
+
+            await acl_check(tool = 'owner_auth', memo = 'edit_set (404_page)')
+
+            return redirect(conn, '/setting/404_page')
+        else:
+            lang = await api_func_language('', 'enter_html save 404_file 404_page preview')
+
+            set_type = await api_setting('manage_404_page')
+            set_data = await api_setting('manage_404_page_content')
+
+            data_html = ''
+            select_list = [
+                ['404_page', lang['data']['404_page']],
+                ['404_file', lang['data']['404_file']]
+            ]
+
+            data_html += '<select name="select">'
+            for for_a in select_list:
+                selected = ''
+                if set_type['data'] == for_a[0]:
+                    selected = 'selected'
+                    
+                data_html += '<option value="' + for_a[0] + '" ' + selected + '>' + for_a[1] + '</option>'
+
+            data_html += '</select>'
+            data_html += '<hr class="main_hr">'
+
+            form_data = ''
+            if len(set_data['data']) != 0:
+                form_data = set_data['data'][0][0]
+
+            data_html += (
+                '<form method="post">' +
+                    '<textarea class="opennamu_textarea_500" name="data" placeholder="' + lang['data']['enter_html'] + '">' + html.escape(form_data) + '</textarea>' +
+                    '<hr class="main_hr">' +
+                    '<button id="opennamu_save_button" type="submit">' + lang['data']['save'] + '</button>' +
+                '</form>'
+            )
+
+            return easy_minify(conn, flask.render_template(skin_check(conn),
+                imp = [get_lang(conn, '404_page_setting'), await wiki_set(), await wiki_custom(conn), wiki_css([0, 0])],
+                data = data_html,
+                menu = [['setting', get_lang(conn, 'return')]]
+            ))

+ 0 - 13
route/n_setting_404_page.py

@@ -1,13 +0,0 @@
-from .tool.func import *
-
-async def setting_404_page():
-    with get_db_connect() as conn:
-        return easy_minify(conn, flask.render_template(skin_check(conn),
-            imp = [get_lang(conn, '404_page_setting'), await wiki_set(), await wiki_custom(conn), wiki_css([0, 0])],
-            data = '' + \
-                '<div id="opennamu_setting_404_page"></div>' + \
-                '<script defer src="/views/main_css/js/route/setting_404_page.js' + cache_v() + '"></script>' + \
-                '<script>window.addEventListener("DOMContentLoaded", function() { opennamu_setting_404_page(); });</script>' + \
-            '',
-            menu = [['setting', get_lang(conn, 'return')]]
-        ))

+ 2 - 2
version.json

@@ -1,6 +1,6 @@
 {
     "r_ver" : "v3.6.0-v20",
-    "c_ver" : "20250501",
+    "c_ver" : "20250509",
     "s_ver" : "20240426",
-    "bin_link" : "https://github.com/openNAMU/GopenNAMU/releases/download/v2025-04-28-v1/"
+    "bin_link" : "https://github.com/openNAMU/GopenNAMU/releases/download/v2025-05-09-v1/"
 }