Ver código fonte

의견 수렴용 테스트

잉여개발기 (SPDV) 2 anos atrás
pai
commit
8a7a2c2fbd

+ 1 - 1
route/tool/func.py

@@ -1045,7 +1045,7 @@ def wiki_css(data):
     data_css = ''
     data_css_dark = ''
 
-    data_css_ver = '200'
+    data_css_ver = '201'
     data_css_ver = '.cache_v' + data_css_ver
 
     if 'main_css' in global_wiki_set:

BIN
route_go/bin/main.amd64.bin


BIN
route_go/bin/main.amd64.exe


BIN
route_go/bin/main.arm64.bin


BIN
route_go/bin/main.arm64.exe


+ 9 - 2
route_go/route/api_thread.go

@@ -96,8 +96,9 @@ func Api_thread(call_arg []string) {
 			data_list = append(data_list, []string{id, data, date, ip, block, top})
 		}
 
-		new_data := map[string][]map[string]string{}
+		new_data := make(map[string]interface{})
 		new_data["data"] = []map[string]string{}
+		data_slice := []map[string]string{}
 
 		admin_auth := tool.Get_admin_auth(db_set, other_set["ip"])
 
@@ -107,7 +108,7 @@ func Api_thread(call_arg []string) {
 				data = data_list[for_a][1]
 			}
 
-			new_data["data"] = append(new_data["data"], map[string]string{
+			data_slice = append(data_slice, map[string]string{
 				"id":        data_list[for_a][0],
 				"data":      data,
 				"date":      data_list[for_a][2],
@@ -117,6 +118,12 @@ func Api_thread(call_arg []string) {
 			})
 		}
 
+		new_data["data"] = data_slice
+		new_data["language"] = map[string]string{
+			"tool":   tool.Get_language(db_set, "tool", false),
+			"render": tool.Get_language(db_set, "render", false),
+		}
+
 		json_data, _ := json.Marshal(new_data)
 		fmt.Print(string(json_data))
 	}

+ 19 - 0
views/main_css/js/func/func.js

@@ -158,4 +158,23 @@ function opennamu_do_render(to_obj, name, data, do_type = '') {
             }
         }
     });
+}
+
+function opennamu_xss_filter(str) {
+    return str.replace(/[&<>"'\/]/g, function(match) {
+        switch(match) {
+            case '&':
+                return '&amp;';
+            case '<':
+                return '&lt;';
+            case '>':
+                return '&gt;';
+            case "'":
+                return '&#x27;';
+            case '"':
+                return '&quot;';
+            case '/':
+                return '&#x2F;';
+        }
+    });
 }

+ 38 - 38
views/main_css/js/route/topic.js

@@ -87,57 +87,57 @@ function opennamu_get_thread(topic_num = "", do_type = "") {
     fetch(url).then(function(res) {
         return res.json();
     }).then(function(data) {
-        fetch("/api/lang/tool").then(function(res) {
-            return res.json();
-        }).then(function(tool_lang) {
-            let end_data = '';
-            let end_render = [];
+        let end_data = '';
+        let end_render = [];
 
-            data = data["data"];
-            tool_lang = tool_lang["data"];
+        let lang = data["language"];
+        data = data["data"];
 
-            let first = data[0]["ip"];
-            for(let for_a = 0; for_a < data.length; for_a++) {
-                let real_color = color;
-                if(color !== 'red') {
-                    if(data[for_a]["blind"] === '1') {
-                        real_color = 'blue';
-                    } else if(first === data[for_a]["ip"]) {
-                        real_color = 'green';
-                    } else {
-                        real_color = 'default';
-                    }
+        let first = data[0]["ip"];
+        for(let for_a = 0; for_a < data.length; for_a++) {
+            let real_color = color;
+            if(color !== 'red') {
+                if(data[for_a]["blind"] === '1') {
+                    real_color = 'blue';
+                } else if(first === data[for_a]["ip"]) {
+                    real_color = 'green';
+                } else {
+                    real_color = 'default';
                 }
+            }
 
-                let date = '<a href="/thread/' + topic_num + '/comment/' + data[for_a]["id"] + '/tool">(' + tool_lang + ')</a> ' + data[for_a]["date"];
+            let date = '<a href="/thread/' + topic_num + '/comment/' + data[for_a]["id"] + '/tool">(' + lang["tool"] + ')</a> ' + data[for_a]["date"];
+            let render_button = ' <a href="javascript:void();" id="opennamu_' + color + '_thread_render_' + data[for_a]["id"] + '_button">(' + lang["render"] + ")</a>"
+            let render_data = data[for_a]["data"] !== "" ? data[for_a]["data"] : "[br]";
 
-                end_data += opennamu_get_thread_ui(
-                    data[for_a]["ip_render"], 
-                    date, 
-                    '<div id="opennamu_' + color + '_thread_render_' + data[for_a]["id"] + '"></div>',
-                    data[for_a]["id"],
-                    real_color,
-                    data[for_a]["blind"],
-                    '',
-                    topic_num
-                )
+            end_data += opennamu_get_thread_ui(
+                data[for_a]["ip_render"] + render_button, 
+                date, 
+                '<div id="opennamu_' + color + '_thread_render_' + data[for_a]["id"] + '">' + opennamu_xss_filter(render_data) + '</div>',
+                data[for_a]["id"],
+                real_color,
+                data[for_a]["blind"],
+                '',
+                topic_num
+            )
 
-                end_render.push([
-                    data[for_a]["data"] !== "" ? data[for_a]["data"] : "[br]",
-                    data[for_a]["id"]
-                ]);
-            }
+            end_render.push([
+                render_data,
+                data[for_a]["id"]
+            ]);
+        }
 
-            document.getElementById(to_obj).innerHTML = end_data;
+        document.getElementById(to_obj).innerHTML = end_data;
 
-            for(let for_a = 0; for_a < end_render.length; for_a++) {
+        for(let for_a = 0; for_a < end_render.length; for_a++) {
+            document.getElementById('opennamu_' + color + '_thread_render_' + end_render[for_a][1] + '_button').addEventListener("click", function() {
                 opennamu_do_render(
                     'opennamu_' + color + '_thread_render_' + end_render[for_a][1], 
                     "thread_" + topic_num + "_" + color + "_" + end_render[for_a][1], 
                     end_render[for_a][0], 
                     'thread'
                 );
-            }
-        });
+            });
+        }
     });
 }