Przeglądaj źródła

게시판 목록 API 추가

잉여개발기 (SPDV) 2 lat temu
rodzic
commit
ae04cba0d2

+ 1 - 0
app.py

@@ -678,6 +678,7 @@ 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)

+ 1 - 0
route/__init__.py

@@ -183,6 +183,7 @@ from route.go_api_list_recent_discuss import api_list_recent_discuss
 from route.go_api_list_recent_edit_request import api_list_recent_edit_request
 
 from route.go_api_bbs import api_bbs
+from route.go_api_bbs_list import api_bbs_list
 
 from route.go_api_topic import api_topic
 

+ 0 - 1
route/bbs_make.py

@@ -8,7 +8,6 @@ def bbs_make():
             return re_error(conn, '/error/3')
         
         if flask.request.method == 'POST':
-            
             curs.execute(db_change('select set_id from bbs_set where set_name = "bbs_name" order by set_id + 0 desc'))
             db_data = curs.fetchall()
 

+ 17 - 0
route/go_api_bbs_list.py

@@ -0,0 +1,17 @@
+from .tool.func import *
+
+def api_bbs_list(db_set):
+    if platform.system() == 'Linux':
+        if platform.machine() in ["AMD64", "x86_64"]:
+            data = subprocess.Popen([os.path.join(".", "route_go", "bin", "main.amd64.bin"), sys._getframe().f_code.co_name, db_set], stdout = subprocess.PIPE).communicate()[0]
+        else:
+            data = subprocess.Popen([os.path.join(".", "route_go", "bin", "main.arm64.bin"), sys._getframe().f_code.co_name, db_set], stdout = subprocess.PIPE).communicate()[0]
+    else:
+        if platform.machine() in ["AMD64", "x86_64"]:
+            data = subprocess.Popen([os.path.join(".", "route_go", "bin", "main.amd64.exe"), sys._getframe().f_code.co_name, db_set], stdout = subprocess.PIPE).communicate()[0]
+        else:
+            data = subprocess.Popen([os.path.join(".", "route_go", "bin", "main.arm64.exe"), sys._getframe().f_code.co_name, db_set], stdout = subprocess.PIPE).communicate()[0]
+
+    data = data.decode('utf8')
+
+    return flask.Response(response = data, status = 200, mimetype = 'application/json')

+ 13 - 0
route/n_bbs_main.py

@@ -0,0 +1,13 @@
+from .tool.func import *
+
+def bbs_main():
+    with get_db_connect() as conn:
+        return easy_minify(conn, flask.render_template(skin_check(conn),
+            imp = [get_lang(conn, 'bbs_main'), wiki_set(conn), wiki_custom(conn), wiki_css([0, 0])],
+            data = '' + \
+                '<div id="opennamu_bbs_main"></div>' + \
+                '<script src="/views/main_css/js/route/bbs_main.js' + cache_v() + '"></script>' + \
+                '<script>opennamu_bbs_main();</script>' + \
+            '',
+            menu = [['other', get_lang(conn, 'other_tool')]] + ([['bbs/make', get_lang(conn, 'add')]] if admin_check(conn) == 1 else [])
+        ))

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


+ 7 - 0
route_go/main.go

@@ -1,6 +1,7 @@
 package main
 
 import (
+	"log"
 	"opennamu/route"
 	"os"
 )
@@ -8,6 +9,8 @@ import (
 func main() {
 	call_arg := os.Args[1:]
 
+	log.SetFlags(log.LstdFlags | log.Lshortfile)
+
 	if call_arg[0] == "main_func_easter_egg" {
 		route.Main_func_easter_egg()
 	} else if call_arg[0] == "api_w_raw" {
@@ -44,5 +47,9 @@ func main() {
 		route.Api_func_auth_list(call_arg[1:])
 	} else if call_arg[0] == "api_list_recent_discuss" {
 		route.Api_list_recent_discuss(call_arg[1:])
+	} else if call_arg[0] == "api_bbs_list" {
+		route.Api_bbs_list(call_arg[1:])
+	} else {
+		log.Fatal("404")
 	}
 }

+ 46 - 0
route_go/route/api_bbs_list.go

@@ -0,0 +1,46 @@
+package route
+
+import (
+	"encoding/json"
+	"fmt"
+	"log"
+	"opennamu/route/tool"
+)
+
+func Api_bbs_list(call_arg []string) {
+	db_set := map[string]string{}
+	json.Unmarshal([]byte(call_arg[0]), &db_set)
+
+	db := tool.DB_connect(db_set)
+	if db == nil {
+		return
+	}
+	defer db.Close()
+
+	rows, err := db.Query(tool.DB_change(db_set, "select set_data, set_id from bbs_set where set_name = 'bbs_name'"))
+	if err != nil {
+		log.Fatal(err)
+	}
+	defer rows.Close()
+
+	var data_list [][]string
+
+	for rows.Next() {
+		var name string
+		var id string
+
+		err := rows.Scan(&name, &id)
+		if err != nil {
+			log.Fatal(err)
+		}
+
+		data_list = append(data_list, []string{name, id})
+	}
+
+	if len(data_list) == 0 {
+		fmt.Print("{}")
+	} else {
+		json_data, _ := json.Marshal(data_list)
+		fmt.Print(string(json_data))
+	}
+}

+ 5 - 0
views/main_css/js/route/bbs_main.js

@@ -0,0 +1,5 @@
+"use strict";
+
+function bbs_main() {
+    
+}