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

게시판 내부 목록도 신형 UI 적용

잉여개발기 (SPDV) 2 лет назад
Родитель
Сommit
6d20f56cf4

+ 6 - 6
app.py

@@ -646,7 +646,8 @@ app.route('/vote/add', methods = ['POST', 'GET'])(vote_add)
 app.route('/bbs/main')(bbs_main)
 app.route('/bbs/make', methods = ['POST', 'GET'])(bbs_make)
 # app.route('/bbs/main/set')
-app.route('/bbs/w/<int:bbs_num>')(bbs_w)
+app.route('/bbs/in/<int:bbs_num>')(bbs_in)
+app.route('/bbs/in/<int:bbs_num>/<int:page>')(bbs_in)
 # app.route('/bbs/blind/<int:bbs_num>', methods = ['POST', 'GET'])(bbs_hide)
 app.route('/bbs/delete/<int:bbs_num>', methods = ['POST', 'GET'])(bbs_delete)
 app.route('/bbs/set/<int:bbs_num>', methods = ['POST', 'GET'])(bbs_w_set)
@@ -680,11 +681,6 @@ app.route('/api/xref_this/<int:num>/<everything:name>', defaults = { 'xref_type'
 
 app.route('/api/random', defaults = { 'db_set' : db_set_str })(api_w_random)
 
-app.route('/api/bbs', defaults = { 'db_set' : db_set_str })(api_bbs_list)
-app.route('/api/bbs/main', defaults = { 'db_set' : db_set_str })(api_bbs)
-app.route('/api/bbs/w/<int:bbs_num>', defaults = { 'db_set' : db_set_str })(api_bbs)
-app.route('/api/bbs/w/<int:bbs_num>/<int:page>', defaults = { 'db_set' : db_set_str })(api_bbs)
-
 app.route('/api/bbs/w/<sub_code>')(api_bbs_w_post)
 app.route('/api/bbs/w/comment/<sub_code>')(api_bbs_w_comment)
 app.route('/api/bbs/w/comment_one/<sub_code>')(api_bbs_w_comment)
@@ -735,6 +731,10 @@ app.route('/api/v2/list/document/new/<int:num>', defaults = { 'db_set' : db_set_
 
 app.route('/api/v2/topic/<int:num>/<set_type>/<everything:name>', defaults = { 'db_set' : db_set_str })(api_topic_list)
 
+app.route('/api/v2/bbs', defaults = { 'db_set' : db_set_str })(api_bbs_list)
+app.route('/api/v2/bbs/main', defaults = { 'db_set' : db_set_str })(api_bbs)
+app.route('/api/v2/bbs/in/<int:bbs_num>/<int:page>', defaults = { 'db_set' : db_set_str })(api_bbs)
+
 # Func-main
 # 여기도 전반적인 조정 시행 예정
 app.route('/other')(main_tool_other)

+ 2 - 0
route/__init__.py

@@ -166,6 +166,8 @@ from route.n_list_recent_change import list_recent_change
 from route.n_list_recent_discuss import list_recent_discuss
 from route.n_list_old_page import list_old_page
 
+from route.n_bbs_in import bbs_in
+
 from route.n_w_watch_list import w_watch_list
 
 from route.n_topic_list import topic_list

+ 24 - 0
route/n_bbs_in.py

@@ -0,0 +1,24 @@
+from .tool.func import *
+
+def bbs_in(bbs_num = 1, page = 1):
+    with get_db_connect() as conn:
+        curs = conn.cursor()
+
+        bbs_num_str = str(bbs_num)
+
+        curs.execute(db_change('select set_data from bbs_set where set_id = ? and set_name = "bbs_name"'), [bbs_num])
+        db_data = curs.fetchall()
+        if not db_data:
+            return redirect(conn, '/bbs/main')
+    
+        bbs_name = db_data[0][0]
+
+        return easy_minify(conn, flask.render_template(skin_check(conn),
+            imp = [bbs_name, wiki_set(conn), wiki_custom(conn), wiki_css(['(' + get_lang(conn, 'bbs') + ') (' + str(page) + ')', 0])],
+            data = '' + \
+                '<div id="opennamu_bbs_in"></div>' + \
+                '<script src="/views/main_css/js/route/bbs_in.js' + cache_v() + '"></script>' + \
+                '<script>opennamu_bbs_in();</script>' + \
+            '',
+            menu = [['bbs/main', get_lang(conn, 'return')], ['bbs/edit/' + bbs_num_str, get_lang(conn, 'add')], ['bbs/set/' + bbs_num_str, get_lang(conn, 'bbs_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


+ 8 - 3
route_go/route/api_bbs.go

@@ -110,10 +110,15 @@ func Api_bbs(call_arg []string) string {
 		data_list = append(data_list, temp_data)
 	}
 
+	return_data := make(map[string]interface{})
+	return_data["language"] = map[string]string{}
+
 	if len(data_list) == 0 {
-		return "{}"
+		return_data["data"] = map[string]string{}
 	} else {
-		json_data, _ := json.Marshal(data_list)
-		return string(json_data)
+		return_data["data"] = data_list
 	}
+
+	json_data, _ := json.Marshal(return_data)
+	return string(json_data)
 }

+ 11 - 3
route_go/route/api_bbs_list.go

@@ -79,10 +79,18 @@ func Api_bbs_list(call_arg []string) string {
 		data_list_sub[k] = []string{v, bbs_type, bbs_date}
 	}
 
+	return_data := make(map[string]interface{})
+	return_data["language"] = map[string]string{
+		"thread_base":  tool.Get_language(db, db_set, "thread_base", false),
+		"comment_base": tool.Get_language(db, db_set, "comment_base", false),
+	}
+
 	if len(data_list_sub) == 0 {
-		return "{}"
+		return_data["data"] = map[string]string{}
 	} else {
-		json_data, _ := json.Marshal(data_list_sub)
-		return string(json_data)
+		return_data["data"] = data_list_sub
 	}
+
+	json_data, _ := json.Marshal(return_data)
+	return string(json_data)
 }

+ 45 - 0
route_go/route/api_bbs_post.go

@@ -0,0 +1,45 @@
+package route
+
+import (
+	"encoding/json"
+	"log"
+	"opennamu/route/tool"
+)
+
+func Api_bbs_post(call_arg []string) string {
+	db_set := map[string]string{}
+	json.Unmarshal([]byte(call_arg[0]), &db_set)
+
+	other_set := map[string]string{}
+	json.Unmarshal([]byte(call_arg[1]), &other_set)
+
+	db := tool.DB_connect(db_set)
+	defer db.Close()
+
+	stmt, err := db.Prepare(tool.DB_change(db_set, "select set_name, set_data from bbs_data where set_id = ? and set_code = ?"))
+	if err != nil {
+		log.Fatal(err)
+	}
+	defer stmt.Close()
+
+	rows, err := stmt.Query(other_set["bbs_num"], other_set["post_num"])
+	if err != nil {
+		log.Fatal(err)
+	}
+
+	data_list := map[string]string{}
+
+	for rows.Next() {
+		var set_name string
+		var set_data string
+
+		data_list[set_name] = set_data
+	}
+
+	return_data := make(map[string]interface{})
+	return_data["language"] = map[string]string{}
+	return_data["data"] = data_list
+
+	json_data, _ := json.Marshal(return_data)
+	return string(json_data)
+}

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-dev87",
+        "r_ver" : "v3.5.0-dev88",
         "c_ver" : "3500379",
         "s_ver" : "3500113"
     }

+ 43 - 0
views/main_css/js/route/bbs_in.js

@@ -0,0 +1,43 @@
+"use strict";
+
+function opennamu_bbs_in() {
+    const url = window.location.pathname;
+    const url_split = url.split('/');
+
+    let bbs_num = url_split[3];
+    let page;
+    if(url_split.length > 4) {
+        page = url_split[4];
+    } else {
+        page = '1';
+    }
+
+    fetch('/api/v2/bbs/in/' + bbs_num + '/' + page).then(function(res) {
+        return res.json();
+    }).then(function(data) {
+        data = data["data"];
+
+        let 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 += 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">';
+        }
+
+        data_html += opennamu_page_control('/bbs/in/' + bbs_num + '/{}', Number(page), data.length);
+        
+        document.getElementById('opennamu_bbs_in').innerHTML = data_html;
+    });
+}

+ 47 - 55
views/main_css/js/route/bbs_main.js

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