Jelajahi Sumber

DB 커넥션 적게 쓰도록 재설계

잉여개발기 (SPDV) 2 tahun lalu
induk
melakukan
5091cbacfd

TEMPAT SAMPAH
route_go/bin/main.amd64.bin


TEMPAT SAMPAH
route_go/bin/main.amd64.exe


TEMPAT SAMPAH
route_go/bin/main.arm64.bin


TEMPAT SAMPAH
route_go/bin/main.arm64.exe


+ 7 - 1
route_go/route/api_func_ip.go

@@ -14,7 +14,13 @@ func Api_func_ip(call_arg []string) {
 	other_set := map[string]string{}
 	json.Unmarshal([]byte(call_arg[1]), &other_set)
 
-	ip_data := tool.IP_parser(db_set, other_set["data"], other_set["ip"])
+	db := tool.DB_connect(db_set)
+	if db == nil {
+		return
+	}
+	defer db.Close()
+
+	ip_data := tool.IP_parser(db, db_set, other_set["data"], other_set["ip"])
 
 	new_data := map[string]string{}
 	new_data["data"] = ip_data

+ 12 - 2
route_go/route/api_recent_change.go

@@ -51,7 +51,7 @@ func Api_recent_change(call_arg []string) {
 	var title string
 
 	var data_list [][]string
-	admin_auth := tool.Get_admin_auth(db_set, other_set["ip"])
+	admin_auth := tool.Get_admin_auth(db, db_set, other_set["ip"])
 
 	for rows.Next() {
 		err := rows.Scan(&id, &title)
@@ -87,7 +87,17 @@ func Api_recent_change(call_arg []string) {
 		}
 
 		if hide == "" || admin_auth != "" {
-			data_list = append(data_list, []string{id, title, date, tool.IP_preprocess(db_set, ip, other_set["ip"])[0], send, leng, hide, tool.IP_parser(db_set, ip, other_set["ip"]), type_data})
+			data_list = append(data_list, []string{
+				id,
+				title,
+				date,
+				tool.IP_preprocess(db, db_set, ip, other_set["ip"])[0],
+				send,
+				leng,
+				hide,
+				tool.IP_parser(db, db_set, ip, other_set["ip"]),
+				type_data,
+			})
 		} else {
 			data_list = append(data_list, []string{"", "", "", "", "", "", hide, "", ""})
 		}

+ 5 - 5
route_go/route/api_thread.go

@@ -100,7 +100,7 @@ func Api_thread(call_arg []string) {
 		new_data["data"] = []map[string]string{}
 		data_slice := []map[string]string{}
 
-		admin_auth := tool.Get_admin_auth(db_set, other_set["ip"])
+		admin_auth := tool.Get_admin_auth(db, db_set, other_set["ip"])
 
 		for for_a := 0; for_a < len(data_list); for_a++ {
 			data := ""
@@ -112,16 +112,16 @@ func Api_thread(call_arg []string) {
 				"id":        data_list[for_a][0],
 				"data":      data,
 				"date":      data_list[for_a][2],
-				"ip":        tool.IP_preprocess(db_set, data_list[for_a][3], other_set["ip"])[0],
-				"ip_render": tool.IP_parser(db_set, data_list[for_a][3], other_set["ip"]),
+				"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"]),
 				"blind":     data_list[for_a][4],
 			})
 		}
 
 		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),
+			"tool":   tool.Get_language(db, db_set, "tool", false),
+			"render": tool.Get_language(db, db_set, "render", false),
 		}
 
 		json_data, _ := json.Marshal(new_data)

+ 9 - 33
route_go/route/tool/ip_parser.go

@@ -15,13 +15,7 @@ func IP_or_user(ip string) bool {
 	}
 }
 
-func Get_level(db_set map[string]string, ip string) []string {
-	db := DB_connect(db_set)
-	if db == nil {
-		return []string{"", "", ""}
-	}
-	defer db.Close()
-
+func Get_level(db *sql.DB, db_set map[string]string, ip string) []string {
 	var level string
 	var exp string
 	var max_exp string
@@ -62,13 +56,7 @@ func Get_level(db_set map[string]string, ip string) []string {
 	return []string{level, exp, max_exp}
 }
 
-func Get_admin_auth(db_set map[string]string, ip string) string {
-	db := DB_connect(db_set)
-	if db == nil {
-		return ""
-	}
-	defer db.Close()
-
+func Get_admin_auth(db *sql.DB, db_set map[string]string, ip string) string {
 	if !IP_or_user(ip) {
 		var auth string
 
@@ -97,13 +85,7 @@ func Get_admin_auth(db_set map[string]string, ip string) string {
 	return ""
 }
 
-func IP_preprocess(db_set map[string]string, ip string, my_ip string) []string {
-	db := DB_connect(db_set)
-	if db == nil {
-		return []string{"", ""}
-	}
-	defer db.Close()
-
+func IP_preprocess(db *sql.DB, db_set map[string]string, ip string, my_ip string) []string {
 	var ip_view string
 	var user_name_view string
 
@@ -125,7 +107,7 @@ func IP_preprocess(db_set map[string]string, ip string, my_ip string) []string {
 		}
 	}
 
-	if Get_admin_auth(db_set, my_ip) != "" {
+	if Get_admin_auth(db, db_set, my_ip) != "" {
 		ip_view = ""
 		user_name_view = ""
 	}
@@ -183,14 +165,8 @@ func IP_preprocess(db_set map[string]string, ip string, my_ip string) []string {
 	return []string{ip, ip_change}
 }
 
-func IP_parser(db_set map[string]string, ip string, my_ip string) string {
-	db := DB_connect(db_set)
-	if db == nil {
-		return ""
-	}
-	defer db.Close()
-
-	ip_pre_data := IP_preprocess(db_set, ip, my_ip)
+func IP_parser(db *sql.DB, db_set map[string]string, ip string, my_ip string) string {
+	ip_pre_data := IP_preprocess(db, db_set, ip, my_ip)
 	if ip_pre_data[0] == "" {
 		return ""
 	}
@@ -215,7 +191,7 @@ func IP_parser(db_set map[string]string, ip string, my_ip string) string {
 			}
 
 			if user_name_level != "" {
-				level_data := Get_level(db_set, raw_ip)
+				level_data := Get_level(db, db_set, raw_ip)
 				ip += "<sup>" + level_data[0] + "</sup>"
 			}
 
@@ -236,14 +212,14 @@ func IP_parser(db_set map[string]string, ip string, my_ip string) string {
 				}
 			}
 
-			if Get_admin_auth(db_set, ip) != "" {
+			if Get_admin_auth(db, db_set, ip) != "" {
 				ip = "<b>" + ip + "</b>"
 			}
 
 			ip = user_title + ip
 		}
 
-		ip += " <a href=\"/user/" + Url_parser(raw_ip) + "\">(" + Get_language(db_set, "tool", false) + ")</a>"
+		ip += " <a href=\"/user/" + Url_parser(raw_ip) + "\">(" + Get_language(db, db_set, "tool", false) + ")</a>"
 
 		return ip
 	}

+ 1 - 7
route_go/route/tool/language.go

@@ -7,13 +7,7 @@ import (
 	"os"
 )
 
-func Get_language(db_set map[string]string, data string, safe bool) string {
-	db := DB_connect(db_set)
-	if db == nil {
-		return ""
-	}
-	defer db.Close()
-
+func Get_language(db *sql.DB, db_set map[string]string, data string, safe bool) string {
 	var language string
 
 	err := db.QueryRow(DB_change(db_set, "select data from other where name = 'language'")).Scan(&language)

+ 3 - 15
route_go/route/tool/render.go

@@ -6,13 +6,7 @@ import (
 	"time"
 )
 
-func Get_render(db_set map[string]string, doc_name string, data string, render_type string) []string {
-	db := DB_connect(db_set)
-	if db == nil {
-		return []string{"", ""}
-	}
-	defer db.Close()
-
+func Get_render(db *sql.DB, db_set map[string]string, doc_name string, data string, render_type string) []string {
 	var markup string
 
 	if render_type == "document" {
@@ -48,18 +42,12 @@ func Get_render(db_set map[string]string, doc_name string, data string, render_t
 	now_time := time.Now().UnixNano()
 	render_name := strconv.Itoa(int(now_time))
 
-	render_data := Get_render_direct(db_set, doc_name, data, markup, render_name, render_type)
+	render_data := Get_render_direct(db, db_set, doc_name, data, markup, render_name, render_type)
 
 	return render_data
 }
 
-func Get_render_direct(db_set map[string]string, doc_name string, data string, markup string, render_name string, render_type string) []string {
-	db := DB_connect(db_set)
-	if db == nil {
-		return []string{"", ""}
-	}
-	defer db.Close()
-
+func Get_render_direct(db *sql.DB, db_set map[string]string, doc_name string, data string, markup string, render_name string, render_type string) []string {
 	render_data := make(map[string]interface{})
 	if markup == "namumark" {
 		render_data = Namumark()

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-dev19",
+        "r_ver" : "v3.5.0-dev20",
         "c_ver" : "3500374",
         "s_ver" : "3500113"
     }