Browse Source

게시판 메인 기능 추가

잉여개발기 (SPDV) 2 years ago
parent
commit
13f63aadde

+ 1 - 1
route/tool/func.py

@@ -1043,7 +1043,7 @@ def skin_check(conn, set_n = 0):
         return skin
     
 def cache_v():
-    return '.cache_v231'
+    return '.cache_v232'
 
 def wiki_css(data):
     global 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


+ 41 - 2
route_go/route/api_bbs_list.go

@@ -43,11 +43,50 @@ func Api_bbs_list(call_arg []string) {
 	defer db.Close()
 
 	data_list := bbs_list(db, db_set)
+	data_list_sub := map[string][]string{}
 
-	if len(data_list) == 0 {
+	for k, v := range data_list {
+		stmt, err := db.Prepare(tool.DB_change(db_set, "select set_data from bbs_set where set_name = 'bbs_type' and set_id = ?"))
+		if err != nil {
+			log.Fatal(err)
+		}
+		defer stmt.Close()
+
+		var bbs_type string
+
+		err = stmt.QueryRow(v).Scan(&bbs_type)
+		if err != nil {
+			if err == sql.ErrNoRows {
+				bbs_type = ""
+			} else {
+				log.Fatal(err)
+			}
+		}
+
+		stmt, err = db.Prepare(tool.DB_change(db_set, "select set_data from bbs_data where set_id = ? and set_name = 'date' order by set_code + 0 desc limit 1"))
+		if err != nil {
+			log.Fatal(err)
+		}
+		defer stmt.Close()
+
+		var bbs_date string
+
+		err = stmt.QueryRow(v).Scan(&bbs_date)
+		if err != nil {
+			if err == sql.ErrNoRows {
+				bbs_date = ""
+			} else {
+				log.Fatal(err)
+			}
+		}
+
+		data_list_sub[k] = []string{v, bbs_type, bbs_date}
+	}
+
+	if len(data_list_sub) == 0 {
 		fmt.Print("{}")
 	} else {
-		json_data, _ := json.Marshal(data_list)
+		json_data, _ := json.Marshal(data_list_sub)
 		fmt.Print(string(json_data))
 	}
 }

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-dev76",
+        "r_ver" : "v3.5.0-dev77",
         "c_ver" : "3500376",
         "s_ver" : "3500113"
     }

+ 62 - 25
views/main_css/js/route/bbs_main.js

@@ -1,39 +1,76 @@
 "use strict";
 
 function opennamu_bbs_main() {
-    fetch('/api/bbs').then(function(res) {
-        return res.json();
-    }).then(function(bbs_list) {
-        fetch('/api/bbs/main').then(function(res) {
-            return res.json();
-        }).then(function(data) {
-            let data_html = '<ul class="opennamu_ul">';
+    let lang_data = new FormData();
+    // user_document -> 8
+    lang_data.append('data', 'thread_base comment_base');
 
-            for(let key in bbs_list) {
-                data_html += '<li><a href="/bbs/w/' + bbs_list[key] + '">' + opennamu_xss_filter(key) + '</a></li>';
-            }
+    fetch('/api/lang', {
+        method : 'post',
+        body : lang_data,
+    }).then(function(res) {
+        return res.json();
+    }).then(function(lang) {
+        lang = lang["data"];
     
-            data_html += '</ul>';
-            data_html += '<hr class="main_hr">';
+        fetch('/api/bbs').then(function(res) {
+            return res.json();
+        }).then(function(bbs_list) {
+            fetch('/api/bbs/main').then(function(res) {
+                return res.json();
+            }).then(function(data) {
+                let data_html = '<ul class="opennamu_ul">';
+                let bbs_id_to_name = {};
 
-            for(let for_a = 0; for_a < data.length; for_a++) {
-                data_html += '<div class="opennamu_recent_change">';
+                for(let key in bbs_list) {
+                    bbs_id_to_name[bbs_list[key][0]] = key;
 
-                data_html += '<a href="/bbs/w/' + data[for_a]['set_id'] + '/' + data[for_a]['set_code'] + '">' + opennamu_xss_filter(data[for_a]['title']) + '</a>';
+                    data_html += '<li>';
 
-                data_html += '<div style="float: right;">';
+                    data_html += '<a href="/bbs/w/' + bbs_list[key][0] + '">';
+                    data_html += opennamu_xss_filter(key);
+                    data_html += '</a>';
 
-                data_html += data[for_a]['user_id_render'] + ' | ';
-                data_html += data[for_a]['date'];
+                    data_html += ' (';
+                    if(bbs_list[key][1] === 'comment') {
+                        data_html += lang[1];
+                    } else {
+                        data_html += lang[0];
+                    }
+                    data_html += ')';
 
-                data_html += '</div>'
-                data_html += '<div style="clear: both;"></div>';
+                    data_html += ' (' + bbs_list[key][2] + ')';
 
-                data_html += '</div>';
+                    data_html += '</li>';
+                }
+        
+                data_html += '</ul>';
                 data_html += '<hr class="main_hr">';
-            }
-            
-            document.getElementById('opennamu_bbs_main').innerHTML = data_html;
+
+                for(let for_a = 0; for_a < data.length; for_a++) {
+                    data_html += '<div class="opennamu_recent_change">';
+
+                    data_html += '<a href="/bbs/w/' + data[for_a]['set_id'] + '/' + data[for_a]['set_code'] + '">' + opennamu_xss_filter(data[for_a]['title']) + '</a>';
+
+                    data_html += '<div style="float: right;">';
+
+                    data_html += '<a href="/bbs/w/' + data[for_a]['set_id'] + '">';
+                    data_html += bbs_id_to_name[data[for_a]['set_id']]
+                    data_html += '</a>';
+                    data_html += ' | ';
+
+                    data_html += data[for_a]['user_id_render'] + ' | ';
+                    data_html += data[for_a]['date'];
+
+                    data_html += '</div>'
+                    data_html += '<div style="clear: both;"></div>';
+
+                    data_html += '</div>';
+                    data_html += '<hr class="main_hr">';
+                }
+                
+                document.getElementById('opennamu_bbs_main').innerHTML = data_html;
+            });
         });
-    })
+    });
 }