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

Merge pull request #2369 from openNAMU/dont_use

https://github.com/openNAMU/openNAMU/issues/2360
잉여개발기 1 год назад
Родитель
Сommit
3450dd7392

+ 3 - 0
lang/en-US.json

@@ -50,6 +50,9 @@
     "post_view_acl" : "Post view ACL",
     "post_comment_acl" : "Post comment ACL",
     "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",

+ 4 - 1
lang/ko-KR.json

@@ -695,5 +695,8 @@
     "edit_filter_view_authority" : "편집 필터 보기 권한",
     "post_view_acl" : "게시글 보기 ACL",
     "post_comment_acl" : "게시글 댓글 ACL",
-    "remove_hidden": "숨겨진 내용 보이지 않기"
+    "remove_hidden": "숨겨진 내용 보이지 않기",
+    "link_count" : "링크 갯수",
+    "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),

+ 1 - 1
route/tool/func.py

@@ -1256,7 +1256,7 @@ def skin_check(conn, set_n = 0):
         return skin
     
 def cache_v():
-    return '.cache_v275'
+    return '.cache_v276'
 
 def wiki_css(data):
     with class_temp_db() as m_conn:

+ 4 - 1
route/tool/func_render_namumark.py

@@ -2360,7 +2360,10 @@ class class_do_render_namumark:
         def do_render_last_toc_filter(match):
             data = match.group(1).split(' ')
             if data[0] == 'a' or data[0] == '/a':
-                return '<' + match[1] + '>'
+                if len(data) > 3 and data[3] != 'href="javascript:void(0);"':
+                    return '<' + match[1] + '>'
+                else:
+                    return ''
             else:
                 return ''
 

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-v181",
+        "r_ver" : "v3.5.0-v183",
         "c_ver" : "20240801",
         "s_ver" : "20240426"
     }

+ 1 - 1
views/main_css/js/func/render.js

@@ -266,7 +266,7 @@ function opennamu_do_footnote_popover(set_name, load_name, sub_obj = undefined,
 function opennamu_do_category_spread() {
     if(document.getElementsByClassName('opennamu_render_complete')) {
         document.getElementsByClassName('opennamu_render_complete')[0].innerHTML = '' +
-            '<style>.opennamu_category_button { display: none; } .opennamu_category { white-space: pre-wrap; overflow-x: unset; text-overflow: unset; }</style>' +
+            '<style>.opennamu_main .opennamu_category_button { display: none; } .opennamu_main .opennamu_category { white-space: pre-wrap; overflow-x: unset; text-overflow: unset; }</style>' +
         '' + document.getElementsByClassName('opennamu_render_complete')[0].innerHTML;
     }
 }

+ 1 - 5
views/ringo/css/main.css

@@ -214,7 +214,7 @@ aside {
 }
 
 aside button {
-    width: 25%;
+    width: 33.33%;
 }
 
 aside .side_button {
@@ -238,10 +238,6 @@ aside .side_button:hover {
     border-right: 0;
 }
 
-#side_button_3 {
-    border-right: 0;
-}
-
 #side_content {
     margin-top: 20px;
 }

+ 6 - 7
views/ringo/index.html

@@ -2,7 +2,7 @@
 <html lang="{{'language_tag'|load_lang}}">
     <head>
         <style id="ringo_add_style"></style>
-        <script src="/views/ringo/js/skin_set_do.js.cache_v2"></script>
+        <script src="/views/ringo/js/skin_set_do.js.cache_v3"></script>
         <meta charset="utf-8">
         {% if imp[3][0] != 0 %}
             <title>{{imp[0]}} {{imp[3][0]}} - {{imp[1][0]}}</title>
@@ -12,10 +12,10 @@
         {{imp[3][3]|safe}}
         <link href="https://cdn.jsdelivr.net/gh/sun-typeface/SUIT/fonts/static/woff2/SUIT.css" rel="stylesheet">
         <script defer src="https://code.iconify.design/1/1.0.3/iconify.min.js"></script>
-        <script defer src="/views/ringo/js/main.js.cache_v2"></script>
-        <script defer src="/views/ringo/js/sidebar.js.cache_v4"></script>
-        <script defer src="/views/ringo/js/skin_set.js.cache_v7"></script>
-        <link rel="stylesheet" href="/views/ringo/css/main.css.cache_v11">
+        <script defer src="/views/ringo/js/main.js.cache_v3"></script>
+        <script defer src="/views/ringo/js/sidebar.js.cache_v5"></script>
+        <script defer src="/views/ringo/js/skin_set.js.cache_v8"></script>
+        <link rel="stylesheet" href="/views/ringo/css/main.css.cache_v12">
         {% if request.cookies.get('main_css_darkmode', '') == '1' %}
             {{imp[3][5]|safe}}
             <link rel="stylesheet" href="/views/ringo/css/dark.css.cache_v3">
@@ -236,8 +236,7 @@
             {% if imp[1][7][1] == '' %}
                 <button id="side_button_1" class="side_button selected">{{'edit'|load_lang}}</button><!--
              --><button id="side_button_2" class="side_button">{{'discussion'|load_lang}}</button><!--
-             --><button id="side_button_3" class="side_button">{{'toc'|load_lang}}</button><!--
-             --><button id="side_button_4" class="side_button">{{'footnote'|load_lang}}</button>
+             --><button id="side_button_3" class="side_button">{{'bbs'|load_lang}}</button>
                 <div id="side_content">
                     Loading...
                 </div>

+ 2 - 2
views/ringo/info.json

@@ -1,5 +1,5 @@
 {
     "name" : "Ringo",
-    "skin_ver" : "v1.1.7",
-    "require_ver" : "3500113"
+    "skin_ver" : "v1.1.8",
+    "require_ver" : "20240426"
 }

+ 5 - 3
views/ringo/js/main.js

@@ -1,3 +1,5 @@
+"use strict";
+
 let ringo_save_data = '';
 let ringo_open = 0;
 let ringo_menu_list = [
@@ -10,7 +12,7 @@ let ringo_menu_list = [
 function ringo_opening(data) {
     let element = [data];
     
-    for(for_a in ringo_menu_list) {
+    for(let for_a in ringo_menu_list) {
         if(ringo_menu_list[for_a] + '_in' !== data) {
             element.push(ringo_menu_list[for_a] + '_in');
         }
@@ -19,7 +21,7 @@ function ringo_opening(data) {
     if((document.getElementById(element[0]).style.display === 'none' && ringo_open === 0) || ringo_save_data !== data) {
         document.getElementById(element[0]).style.display = 'block';
 
-        for(for_a in element) {
+        for(let for_a in element) {
             if(for_a !== '0') { 
                 if(document.getElementById(element[for_a]) !== null) {
                     document.getElementById(element[for_a]).style.display = 'none';
@@ -40,7 +42,7 @@ function ringo_opening(data) {
 
 document.addEventListener("click", function() {
     let cel_list = [];
-    for(for_a in ringo_menu_list) {
+    for(let for_a in ringo_menu_list) {
         cel_list.push(document.getElementById(ringo_menu_list[for_a]));
     }
 

+ 35 - 40
views/ringo/js/sidebar.js

@@ -1,3 +1,5 @@
+"use strict";
+
 // func
 function ringo_do_xss_encode(data) {
     data = data.replace(/'/g, '&#x27;');
@@ -14,10 +16,10 @@ function ringo_do_url_encode(data) {
 
 // event
 function ringo_do_side_button_1() {
-    fetch("/api/recent_change/10").then(function(res) {
-        return res.json();
-    }).then(function(text) {
-        if(temp_save[0] === '') {
+    if(temp_save[0] === '') {
+        fetch("/api/recent_change/10").then(function(res) {
+            return res.json();
+        }).then(function(text) {
             let data = '';
             for(let for_a = 0; for_a < text.length; for_a++) {
                 if(text[for_a][6] === '') {
@@ -28,19 +30,19 @@ function ringo_do_side_button_1() {
 
             document.getElementById('side_content').innerHTML = data;
             temp_save[0] = data;
-        } else {
-            document.getElementById('side_content').innerHTML = temp_save[0];
-        }
-    }).catch(function(error) {
-        document.getElementById('side_content').innerHTML = 'Error';
-    });
+        }).catch(function(error) {
+            document.getElementById('side_content').innerHTML = 'Error';
+        });
+    } else {
+        document.getElementById('side_content').innerHTML = temp_save[0];
+    }
 }
 
 function ringo_do_side_button_2() {
-    fetch("/api/recent_discuss/10").then(function(res) {
-        return res.json();
-    }).then(function(text) {
-        if(temp_save[1] === '') {
+    if(temp_save[1] === '') {
+        fetch("/api/recent_discuss/10").then(function(res) {
+            return res.json();
+        }).then(function(text) {
             let data = '';
             for(let for_a = 0; for_a < text.length; for_a++) {
                 data += '<a href="/thread/' + ringo_do_url_encode(text[for_a][3]) + '">' + ringo_do_xss_encode(text[for_a][1]) + '</a><br>';
@@ -49,50 +51,43 @@ function ringo_do_side_button_2() {
 
             document.getElementById('side_content').innerHTML = data;
             temp_save[1] = data;
-        } else {
-            document.getElementById('side_content').innerHTML = temp_save[1];
-        }
-    }).catch(function(error) {
-        document.getElementById('side_content').innerHTML = 'Error';
-    });
+        }).catch(function(error) {
+            document.getElementById('side_content').innerHTML = 'Error';
+        });
+    } else {
+        document.getElementById('side_content').innerHTML = temp_save[1];
+    }
 }
 
 function ringo_do_side_button_3() {
     if(temp_save[2] === '') {
-        if(document.getElementsByClassName('opennamu_TOC').length > 0) {
-            temp_save[2] = document.getElementsByClassName('opennamu_TOC')[0].innerHTML;
-            document.getElementById('side_content').innerHTML = temp_save[2];
-        }
-    } else {
-        document.getElementById('side_content').innerHTML = temp_save[2];
-    }
-}
+        fetch("/api/v2/bbs/main").then(function(res) {
+            return res.json();
+        }).then(function(data) {
+            let end_data = '';
 
-function ringo_do_side_button_4() {
-    if(temp_save[3] === '') {
-        if(document.getElementsByClassName('opennamu_footnote').length > 0) {
-            let data = '';
-            for(let for_a = 0; for_a < document.getElementsByClassName('opennamu_footnote').length; for_a++) {
-                data += document.getElementsByClassName('opennamu_footnote')[for_a].innerHTML + '<br>';
+            let text = data['data'];
+            for(let for_a = 0; for_a < text.length; for_a++) {
+                end_data += '<a href="/bbs/w/' + text[for_a].set_id + '/' + text[for_a].set_code + '">' + ringo_do_xss_encode(text[for_a].title) + '</a><br>';
+                end_data += text[for_a].date + ' | ' + text[for_a].user_id +'<br>';
             }
 
-            document.getElementById('side_content').innerHTML = data;
-            temp_save[3] = data;
-        }
+            document.getElementById('side_content').innerHTML = end_data;
+            temp_save[2] = end_data;
+        });
     } else {
-        document.getElementById('side_content').innerHTML = temp_save[3];
+        document.getElementById('side_content').innerHTML = temp_save[2];
     }
 }
 
 // init
-let temp_save = ['', '', '', ''];
+let temp_save = ['', '', ''];
 
 window.addEventListener('DOMContentLoaded', function() {
     if(document.getElementById("side_button_1")) {
         document.getElementById("side_button_1").addEventListener("click", ringo_do_side_button_1);
         document.getElementById("side_button_2").addEventListener("click", ringo_do_side_button_2);
         document.getElementById("side_button_3").addEventListener("click", ringo_do_side_button_3);
-        document.getElementById("side_button_4").addEventListener("click", ringo_do_side_button_4);
 
         ringo_do_side_button_1();
     }

+ 2 - 0
views/ringo/js/skin_set.js

@@ -1,3 +1,5 @@
+"use strict";
+
 function ringo_do_regex_data(data) {
     return new RegExp('(?:^|; )' + data + '=([^;]*)');
 }

+ 2 - 0
views/ringo/js/skin_set_do.js

@@ -1,3 +1,5 @@
+"use strict";
+
 function ringo_do_regex_data(data) {
     return new RegExp('(?:^|; )' + data + '=([^;]*)');
 }