ソースを参照

조회수 ON/OFF 기능 추가

https://github.com/openNAMU/openNAMU/issues/2367
잉여개발기 (SPDV) 1 年間 前
コミット
990cb4e93a

+ 1 - 0
lang/en-US.json

@@ -52,6 +52,7 @@
     "remove_hidden" : "Don't show hide content",
     "link_count" : "Number of links",
     "data_missing" : "No information",
+    "not_use_view_count" : "Disable page view",
 
     "_comment_" : "Common",
     "data" : "Data",

+ 2 - 1
lang/ko-KR.json

@@ -697,5 +697,6 @@
     "post_comment_acl" : "게시글 댓글 ACL",
     "remove_hidden": "숨겨진 내용 보이지 않기",
     "link_count" : "링크 갯수",
-    "data_missing" : "정보 없음"
+    "data_missing" : "정보 없음",
+    "not_use_view_count" : "조회수 기능 사용 안함"
 }

+ 6 - 2
route/main_setting_main.py

@@ -46,7 +46,8 @@ def main_setting_main():
             43 : ['auth_history_expiration_date', ''],
             44 : ['auth_history_off', ''],
             45 : ['user_name_level', ''],
-            46 : ['load_ip_select', '']
+            46 : ['load_ip_select', ''],
+            47 : ['not_use_view_count', '']
         }
 
         if flask.request.method == 'POST':
@@ -89,7 +90,7 @@ def main_setting_main():
                 else:
                     tls_select += '<option value="' + tls_select_one + '">' + tls_select_one + '</option>'
 
-            check_box_div = [7, 8, '', 20, 23, 24, '', 26, 31, 33, 34, 35, 36, 37, 44, 45]
+            check_box_div = [7, 8, '', 20, 23, 24, '', 26, 31, 33, 34, 35, 36, 37, 44, 45, 47]
             for i in range(0, len(check_box_div)):
                 acl_num = check_box_div[i]
                 if acl_num != '' and d_list[acl_num]:
@@ -197,6 +198,9 @@ def main_setting_main():
 
                 <input type="checkbox" name="user_name_level" ''' + check_box_div[15] + '''> ''' + get_lang(conn, 'display_level_in_user_name') + '''
                 <hr class="main_hr">
+
+                <input type="checkbox" name="not_use_view_count" ''' + check_box_div[16] + '''> ''' + get_lang(conn, 'not_use_view_count') + '''
+                <hr class="main_hr">
             '''
 
             return easy_minify(conn, flask.render_template(skin_check(conn),

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


+ 1 - 46
route_go/route/api_setting.go

@@ -1,8 +1,6 @@
 package route
 
 import (
-	"database/sql"
-	"log"
 	"opennamu/route/tool"
 
 	jsoniter "github.com/json-iterator/go"
@@ -51,52 +49,9 @@ func Api_setting(call_arg []string) string {
 			data_coverage = val
 		}
 
-		var rows *sql.Rows
-
-		if data_coverage != "" {
-			stmt, err := db.Prepare(tool.DB_change("select data, coverage from other where name = ? and coverage = ?"))
-			if err != nil {
-				log.Fatal(err)
-			}
-
-			defer stmt.Close()
-
-			rows, err = stmt.Query(other_set["set_name"], data_coverage)
-			if err != nil {
-				log.Fatal(err)
-			}
-		} else {
-			stmt, err := db.Prepare(tool.DB_change("select data, coverage from other where name = ?"))
-			if err != nil {
-				log.Fatal(err)
-			}
-
-			defer stmt.Close()
-
-			rows, err = stmt.Query(other_set["set_name"])
-			if err != nil {
-				log.Fatal(err)
-			}
-		}
-		defer rows.Close()
-
-		data_list := [][]string{}
-
-		for rows.Next() {
-			var set_data string
-			var set_coverage string
-
-			err := rows.Scan(&set_data, &set_coverage)
-			if err != nil {
-				log.Fatal(err)
-			}
-
-			data_list = append(data_list, []string{set_data, set_coverage})
-		}
-
 		return_data := make(map[string]interface{})
 		return_data["response"] = "ok"
-		return_data["data"] = data_list
+		return_data["data"] = tool.Get_setting(db, other_set["set_name"], data_coverage)
 
 		json_data, _ := json.Marshal(return_data)
 		return string(json_data)

+ 7 - 15
route_go/route/api_user_rankup.go

@@ -32,26 +32,18 @@ func Api_user_rankup(call_arg []string) string {
 
 	ip := other_set["ip"]
 	if !tool.IP_or_user(ip) {
-		inter_other_set := map[string]string{}
-		inter_other_set["set_name"] = "rankup_condition"
+		coverage := ""
 		if val, ok := other_set["rankup_name"]; ok {
-			inter_other_set["coverage"] = val
+			coverage = val
 		}
 
-		json_data, _ := json.Marshal(inter_other_set)
-		return_data := Api_setting([]string{string(json_data)})
-
-		return_data_api := make(map[string]interface{})
-		json.Unmarshal([]byte(return_data), &return_data_api)
+		return_data_api := tool.Get_setting(db, "rankup_condition", coverage)
 
 		end_data := make(map[string]interface{})
-		response := return_data_api["response"].(string)
-		if response != "not exist" {
-			return_data_arr := return_data_api["data"].([][]string)
-
-			for k := range return_data_arr {
-				rank_name := string(return_data_arr[k][0])
-				rank_data := string(return_data_arr[k][1])
+		if len(return_data_api) != 0 {
+			for k := range return_data_api {
+				rank_name := string(return_data_api[k][0])
+				rank_data := string(return_data_api[k][1])
 
 				split_data := strings.Split(rank_data, " ")
 				if len(split_data) == 2 {

+ 34 - 31
route_go/route/api_w_page_view.go

@@ -18,46 +18,49 @@ func Api_w_page_view(call_arg []string) string {
 	db := tool.DB_connect()
 	defer db.Close()
 
-	stmt, err := db.Prepare(tool.DB_change("select set_data from data_set where doc_name = ? and set_name = 'view_count'"))
-	if err != nil {
-		log.Fatal(err)
-	}
-	defer stmt.Close()
-
-	var view_count string
-
-	err = stmt.QueryRow(other_set["doc_name"]).Scan(&view_count)
-	if err != nil {
-		if err == sql.ErrNoRows {
-			view_count = "0"
-		} else {
-			log.Fatal(err)
-		}
-	}
-
-	if view_count == "0" {
-		stmt, err := db.Prepare(tool.DB_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'view_count', '1')"))
+	pv_continue := tool.Get_setting(db, "not_use_view_count", "")
+	if len(pv_continue) == 0 || pv_continue[0][0] == "" {
+		stmt, err := db.Prepare(tool.DB_change("select set_data from data_set where doc_name = ? and set_name = 'view_count'"))
 		if err != nil {
 			log.Fatal(err)
 		}
 		defer stmt.Close()
 
-		_, err = stmt.Exec(other_set["doc_name"])
-		if err != nil {
-			log.Fatal(err)
-		}
-	} else {
-		view_count_int, _ := strconv.Atoi(view_count)
+		var view_count string
 
-		stmt, err := db.Prepare(tool.DB_change("update data_set set set_data = ? where doc_name = ? and set_name = 'view_count'"))
+		err = stmt.QueryRow(other_set["doc_name"]).Scan(&view_count)
 		if err != nil {
-			log.Fatal(err)
+			if err == sql.ErrNoRows {
+				view_count = "0"
+			} else {
+				log.Fatal(err)
+			}
 		}
-		defer stmt.Close()
 
-		_, err = stmt.Exec(view_count_int+1, other_set["doc_name"])
-		if err != nil {
-			log.Fatal(err)
+		if view_count == "0" {
+			stmt, err := db.Prepare(tool.DB_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'view_count', '1')"))
+			if err != nil {
+				log.Fatal(err)
+			}
+			defer stmt.Close()
+
+			_, err = stmt.Exec(other_set["doc_name"])
+			if err != nil {
+				log.Fatal(err)
+			}
+		} else {
+			view_count_int, _ := strconv.Atoi(view_count)
+
+			stmt, err := db.Prepare(tool.DB_change("update data_set set set_data = ? where doc_name = ? and set_name = 'view_count'"))
+			if err != nil {
+				log.Fatal(err)
+			}
+			defer stmt.Close()
+
+			_, err = stmt.Exec(view_count_int+1, other_set["doc_name"])
+			if err != nil {
+				log.Fatal(err)
+			}
 		}
 	}
 

+ 49 - 0
route_go/route/tool/some_tool.go

@@ -2,8 +2,10 @@ package tool
 
 import (
 	"crypto/sha256"
+	"database/sql"
 	"encoding/hex"
 	"html/template"
+	"log"
 	"net/url"
 	"time"
 )
@@ -38,3 +40,50 @@ func Arr_in_str(arr []string, data string) bool {
 func Get_time() string {
 	return time.Now().Format("2006-01-02 15:04:05")
 }
+
+func Get_setting(db *sql.DB, set_name string, data_coverage string) [][]string {
+	var rows *sql.Rows
+
+	if data_coverage != "" {
+		stmt, err := db.Prepare(DB_change("select data, coverage from other where name = ? and coverage = ?"))
+		if err != nil {
+			log.Fatal(err)
+		}
+
+		defer stmt.Close()
+
+		rows, err = stmt.Query(set_name, data_coverage)
+		if err != nil {
+			log.Fatal(err)
+		}
+	} else {
+		stmt, err := db.Prepare(DB_change("select data, coverage from other where name = ?"))
+		if err != nil {
+			log.Fatal(err)
+		}
+
+		defer stmt.Close()
+
+		rows, err = stmt.Query(set_name)
+		if err != nil {
+			log.Fatal(err)
+		}
+	}
+	defer rows.Close()
+
+	data_list := [][]string{}
+
+	for rows.Next() {
+		var set_data string
+		var set_coverage string
+
+		err := rows.Scan(&set_data, &set_coverage)
+		if err != nil {
+			log.Fatal(err)
+		}
+
+		data_list = append(data_list, []string{set_data, set_coverage})
+	}
+
+	return data_list
+}

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-v182",
+        "r_ver" : "v3.5.0-v183",
         "c_ver" : "20240801",
         "s_ver" : "20240426"
     }