فهرست منبع

임시 추가

잉여개발기 (SPDV) 2 سال پیش
والد
کامیت
ee6b1bb146
4فایلهای تغییر یافته به همراه133 افزوده شده و 11 حذف شده
  1. 22 0
      route/go_api_topic_list.py
  2. 16 2
      route_go/route/api_thread.go
  3. 67 2
      route_go/route/api_topic_list.go
  4. 28 7
      route_go/route/api_w_watch_list.go

+ 22 - 0
route/go_api_topic_list.py

@@ -0,0 +1,22 @@
+from .tool.func import *
+
+def api_topic_list(db_set, name = 'Test', num = 1):
+    other_set = {}
+    other_set["name"] = str(name)
+    other_set["num"] = str(num)
+    other_set = json.dumps(other_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, other_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, other_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, other_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, other_set], stdout = subprocess.PIPE).communicate()[0]
+
+    data = data.decode('utf8')
+
+    return flask.Response(response = data, status = 200, mimetype = 'application/json')

+ 16 - 2
route_go/route/api_thread.go

@@ -83,6 +83,7 @@ func Api_thread(call_arg []string) string {
 
 		var id, data, date, ip, block, top string
 		var data_list [][]string
+		ip_parser_temp := map[string][]string{}
 
 		for rows.Next() {
 			err := rows.Scan(&id, &data, &date, &ip, &block, &top)
@@ -99,18 +100,31 @@ func Api_thread(call_arg []string) string {
 
 		admin_auth := tool.Get_user_auth(db, db_set, other_set["ip"])
 
+		var ip_pre string
+		var ip_render string
+
 		for for_a := 0; for_a < len(data_list); for_a++ {
 			data := ""
 			if data_list[for_a][4] != "O" || admin_auth != "" {
 				data = data_list[for_a][1]
 			}
 
+			if _, ok := ip_parser_temp[data_list[for_a][3]]; ok {
+				ip_pre = ip_parser_temp[data_list[for_a][3]][0]
+				ip_render = ip_parser_temp[data_list[for_a][3]][1]
+			} else {
+				ip_pre = tool.IP_preprocess(db, db_set, data_list[for_a][3], other_set["ip"])[0]
+				ip_render = tool.IP_parser(db, db_set, data_list[for_a][3], other_set["ip"])
+
+				ip_parser_temp[data_list[for_a][3]] = []string{ip_pre, ip_render}
+			}
+
 			data_slice = append(data_slice, map[string]string{
 				"id":        data_list[for_a][0],
 				"data":      data,
 				"date":      data_list[for_a][2],
-				"ip":        tool.IP_preprocess(db, db_set, data_list[for_a][3], other_set["ip"])[0],
-				"ip_render": tool.IP_parser(db, db_set, data_list[for_a][3], other_set["ip"]),
+				"ip":        ip_pre,
+				"ip_render": ip_render,
 				"blind":     data_list[for_a][4],
 			})
 		}

+ 67 - 2
route_go/route/api_topic_list.go

@@ -1,5 +1,70 @@
 package route
 
-func Api_topic_list() string {
-	return ""
+import (
+	"encoding/json"
+	"log"
+	"opennamu/route/tool"
+	"strconv"
+)
+
+func Api_topic_list(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()
+
+	page_int, err := strconv.Atoi(other_set["num"])
+	if err != nil {
+		log.Fatal(err)
+	}
+
+	if page_int > 0 {
+		page_int = (page_int * 50) - 50
+	} else {
+		page_int = 0
+	}
+
+	stmt, err := db.Prepare(tool.DB_change(db_set, "select code, sub, stop, agree from rd where title = ? order by sub asc limit ?, 50"))
+	if err != nil {
+		log.Fatal(err)
+	}
+	defer stmt.Close()
+
+	rows, err := stmt.Query(other_set["name"], page_int)
+	if err != nil {
+		log.Fatal(err)
+	}
+	defer rows.Close()
+
+	var data_list [][]string
+
+	for rows.Next() {
+		var code string
+		var sub string
+		var stop string
+		var agree string
+
+		err := rows.Scan(&code, &sub, &stop, &agree)
+		if err != nil {
+			log.Fatal(err)
+		}
+
+		data_list = append(data_list, []string{code, sub, stop, agree})
+	}
+
+	return_data := make(map[string]interface{})
+	return_data["language"] = map[string]string{}
+
+	if len(data_list) == 0 {
+		return_data["data"] = map[string]string{}
+	} else {
+		return_data["data"] = data_list
+	}
+
+	json_data, _ := json.Marshal(return_data)
+	return string(json_data)
 }

+ 28 - 7
route_go/route/api_w_watch_list.go

@@ -24,8 +24,7 @@ func Api_w_watch_list(call_arg []string) string {
 	db := tool.DB_connect(db_set)
 	defer db.Close()
 
-	ip := other_set["ip"]
-	if tool.Get_user_auth(db, db_set, ip) == "" {
+	if tool.Get_user_auth(db, db_set, other_set["ip"]) == "" {
 		return "{}"
 	}
 
@@ -47,7 +46,8 @@ func Api_w_watch_list(call_arg []string) string {
 	}
 	defer rows.Close()
 
-	var data_list []string
+	var data_list [][]string
+	ip_parser_temp := map[string][]string{}
 
 	for rows.Next() {
 		var user_name string
@@ -57,13 +57,34 @@ func Api_w_watch_list(call_arg []string) string {
 			log.Fatal(err)
 		}
 
-		data_list = append(data_list, user_name)
+		var ip_pre string
+		var ip_render string
+
+		if _, ok := ip_parser_temp[user_name]; ok {
+			ip_pre = ip_parser_temp[user_name][0]
+			ip_render = ip_parser_temp[user_name][1]
+		} else {
+			ip_pre = tool.IP_preprocess(db, db_set, user_name, other_set["ip"])[0]
+			ip_render = tool.IP_parser(db, db_set, user_name, other_set["ip"])
+
+			ip_parser_temp[user_name] = []string{ip_pre, ip_render}
+		}
+
+		data_list = append(data_list, []string{ip_pre, ip_render})
+	}
+
+	return_data := make(map[string]interface{})
+	return_data["language"] = map[string]string{
+		"watchlist": tool.Get_language(db, db_set, "watchlist", false),
+		"star_doc":  tool.Get_language(db, db_set, "star_doc", false),
 	}
 
 	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)
 }