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

다른 최근 편집에도 전체 적용

잉여개발기 (SPDV) 2 лет назад
Родитель
Сommit
1c5d665cde

+ 4 - 4
app.py

@@ -461,7 +461,6 @@ app.route('/auth/give/fix/<user_name>', methods = ['POST', 'GET'])(give_user_fix
 app.route('/app_submit', methods = ['POST', 'GET'])(recent_app_submit_2)
 
 # /auth/history
-# ongoing 반영 필요
 app.route('/block_log')(recent_block)
 app.route('/block_log/<int:num>')(recent_block)
 app.route('/block_log/user/<name>', defaults = { 'tool' : 'user' })(recent_block)
@@ -476,7 +475,7 @@ app.route('/block_log/ongoing/<int:num>', defaults = { 'tool' : 'ongoing' })(rec
 # Func-history
 app.route('/recent_change')(list_recent_change)
 app.route('/recent_changes')(list_recent_change)
-app.route('/recent_change/<int:num>/<set_type>', defaults = { 'tool' : 'recent' })(recent_change)
+app.route('/recent_change/<int:num>/<set_type>')(list_recent_change)
 
 app.route('/recent_edit_request', defaults = { 'db_set' : db_set_str })(recent_edit_request)
 
@@ -693,6 +692,9 @@ app.route('/api/skin_info/<name>')(api_skin_info)
 app.route('/api/user_info/<user_name>')(api_user_info)
 app.route('/api/setting/<name>')(api_setting)
 
+app.route('/api/auth_list', defaults = { 'db_set' : db_set_str })(api_func_auth_list)
+app.route('/api/auth_list/<user_name>', defaults = { 'db_set' : db_set_str })(api_func_auth_list)
+
 app.route('/api/thread/<int:topic_num>/<int:s_num>/<int:e_num>', defaults = { 'db_set' : db_set_str })(api_topic)
 app.route('/api/thread/<int:topic_num>/<tool>', defaults = { 'db_set' : db_set_str })(api_topic)
 app.route('/api/thread/<int:topic_num>', defaults = { 'db_set' : db_set_str })(api_topic)
@@ -707,8 +709,6 @@ app.route('/api/recent_changes', defaults = { 'db_set' : db_set_str })(api_list_
 app.route('/api/recent_change/<int:limit>', defaults = { 'db_set' : db_set_str })(api_list_recent_change)
 app.route('/api/recent_change/<int:limit>/<set_type>/<int:num>', defaults = { 'db_set' : db_set_str })(api_list_recent_change)
 
-app.route('/api/history_tool/<int(signed = True):rev>/<everything:name>', defaults = { 'db_set' : db_set_str })(api_list_history_tool)
-
 app.route('/api/recent_edit_request', defaults = { 'db_set' : db_set_str })(api_list_recent_edit_request)
 app.route('/api/recent_edit_request/<int:limit>/<set_type>/<int:num>', defaults = { 'db_set' : db_set_str })(api_list_recent_edit_request)
 

+ 1 - 1
route/__init__.py

@@ -174,10 +174,10 @@ from route.go_api_func_llm import api_func_llm
 from route.go_api_func_language import api_func_language
 from route.go_api_func_sha224 import api_func_sha224
 from route.go_api_func_ip import api_func_ip
+from route.go_api_func_auth_list import api_func_auth_list
 
 from route.go_api_search import api_search
 
-from route.go_api_list_history_tool import api_list_history_tool
 from route.go_api_list_recent_change import api_list_recent_change
 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

+ 6 - 4
route/go_api_list_history_tool.py → route/go_api_func_auth_list.py

@@ -1,10 +1,12 @@
 from .tool.func import *
 
-def api_list_history_tool(db_set, rev = 1, name = 'Test'):
+def api_func_auth_list(db_set, user_name = ''):
     other_set = {}
-    other_set["doc_name"] = name
-    other_set["rev"] = str(rev)
-    other_set["ip"] = ip_check()
+    if user_name == '':
+        other_set["ip"] = ip_check()
+    else:
+        other_set["ip"] = user_name
+
     other_set = json.dumps(other_set)
 
     if platform.system() == 'Linux':

+ 6 - 3
route/n_list_recent_change.py

@@ -1,13 +1,16 @@
 from .tool.func import *
 
-def list_recent_change():
+def list_recent_change(num = 1, set_type = 'normal'):
     with get_db_connect() as conn:
+        if not set_type in ('normal', 'edit', 'move', 'delete', 'revert', 'r1', 'edit_request', 'user'):
+            set_type = 'normal'
+
         return easy_minify(conn, flask.render_template(skin_check(conn),
-            imp = [get_lang(conn, 'recent_change'), wiki_set(conn), wiki_custom(conn), wiki_css([0, 0])],
+            imp = [get_lang(conn, 'recent_change'), wiki_set(conn), wiki_custom(conn), wiki_css(['(' + get_lang(conn, set_type) + ')', 0])],
             data = '' + \
                 '<div id="opennamu_list_recent_change"></div>' + \
                 '<script src="/views/main_css/js/route/list_recent_change.js' + cache_v() + '"></script>' + \
-                '<script>opennamu_list_recent_change();</script>' + \
+                '<script>opennamu_list_recent_change(' + str(num) + ', "' + set_type + '");</script>' + \
             '',
             menu = [['other', get_lang(conn, 'return')], ['recent_edit_request', get_lang(conn, 'edit_request')]]
         ))

+ 1 - 1
route/tool/func.py

@@ -1043,7 +1043,7 @@ def skin_check(conn, set_n = 0):
         return skin
     
 def cache_v():
-    return '.cache_v229'
+    return '.cache_v230'
 
 def wiki_css(data):
     global global_wiki_set

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


+ 2 - 2
route_go/main.go

@@ -40,8 +40,8 @@ func main() {
 		route.Api_func_llm(call_arg[1:])
 	} else if call_arg[0] == "api_func_language" {
 		route.Api_func_language(call_arg[1:])
-	} else if call_arg[0] == "api_list_history_tool" {
-		route.Api_list_history_tool(call_arg[1:])
+	} else if call_arg[0] == "api_func_auth_list" {
+		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:])
 	}

+ 27 - 0
route_go/route/api_func_auth_list.go

@@ -0,0 +1,27 @@
+package route
+
+import (
+	"encoding/json"
+	"fmt"
+	"opennamu/route/tool"
+)
+
+func Api_func_auth_list(call_arg []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)
+	if db == nil {
+		return
+	}
+	defer db.Close()
+
+	auth_name := tool.Get_user_auth(db, db_set, other_set["ip"])
+	auth_info := tool.Get_auth_group_info(db, db_set, auth_name)
+
+	json_data, _ := json.Marshal(auth_info)
+	fmt.Print(string(json_data))
+}

+ 0 - 108
route_go/route/api_list_history_tool.go

@@ -1,108 +0,0 @@
-package route
-
-import (
-	"encoding/json"
-	"fmt"
-	"log"
-	"opennamu/route/tool"
-	"strconv"
-)
-
-func Api_list_history_tool(call_arg []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)
-	if db == nil {
-		return
-	}
-	defer db.Close()
-
-	main_dict := [][]string{}
-
-	main_dict = append(
-		main_dict,
-		[]string{
-			"/raw_rev/" + other_set["rev"] + "/" + tool.Url_parser(other_set["doc_name"]),
-			tool.Get_language(db, db_set, "raw", false),
-		},
-	)
-	main_dict = append(
-		main_dict,
-		[]string{
-			"/revert/" + other_set["rev"] + "/" + tool.Url_parser(other_set["doc_name"]),
-			tool.Get_language(db, db_set, "revert", false) + " (r" + other_set["rev"] + ")",
-		},
-	)
-
-	rev_int, err := strconv.Atoi(other_set["rev"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if rev_int > 1 {
-		rev_str := strconv.Itoa(rev_int - 1)
-
-		main_dict = append(
-			main_dict,
-			[]string{
-				"/revert/" + rev_str + "/" + tool.Url_parser(other_set["doc_name"]),
-				tool.Get_language(db, db_set, "revert", false) + " (r" + rev_str + ")",
-			},
-		)
-		main_dict = append(
-			main_dict,
-			[]string{
-				"/diff/" + rev_str + "/" + other_set["rev"] + "/" + tool.Url_parser(other_set["doc_name"]),
-				tool.Get_language(db, db_set, "compare", false),
-			},
-		)
-	}
-
-	main_dict = append(
-		main_dict,
-		[]string{
-			"/history/" + tool.Url_parser(other_set["doc_name"]),
-			tool.Get_language(db, db_set, "history", false),
-		},
-	)
-
-	auth_name := tool.Get_user_auth(db, db_set, other_set["ip"])
-	auth_info := tool.Get_auth_group_info(db, db_set, auth_name)
-
-	_, ok := auth_info["hidel"]
-	_, ok2 := auth_info["owner"]
-
-	if ok || ok2 {
-		main_dict = append(
-			main_dict,
-			[]string{
-				"/history_hidden/" + other_set["rev"] + "/" + tool.Url_parser(other_set["doc_name"]),
-				tool.Get_language(db, db_set, "hide", false),
-			},
-		)
-	}
-
-	if ok2 {
-		main_dict = append(
-			main_dict,
-			[]string{
-				"/history_delete/" + other_set["rev"] + "/" + tool.Url_parser(other_set["doc_name"]),
-				tool.Get_language(db, db_set, "history_delete", false),
-			},
-		)
-		main_dict = append(
-			main_dict,
-			[]string{
-				"/history_send/" + other_set["rev"] + "/" + tool.Url_parser(other_set["doc_name"]),
-				tool.Get_language(db, db_set, "send_edit", false),
-			},
-		)
-	}
-
-	json_data, _ := json.Marshal(main_dict)
-	fmt.Print(string(json_data))
-}

+ 13 - 2
route_go/route/api_list_recent_change.go

@@ -36,13 +36,24 @@ func Api_list_recent_change(call_arg []string) {
 		limit_int = 50
 	}
 
-	stmt, err := db.Prepare(tool.DB_change(db_set, "select id, title from rc where type = ? order by date desc limit ?"))
+	page_int, err := strconv.Atoi(other_set["num"])
+	if err != nil {
+		log.Fatal(err)
+	}
+
+	if page_int > 0 {
+		page_int = (page_int * limit_int) - limit_int
+	} else {
+		page_int = 0
+	}
+
+	stmt, err := db.Prepare(tool.DB_change(db_set, "select id, title from rc where type = ? order by date desc limit ?, ?"))
 	if err != nil {
 		log.Fatal(err)
 	}
 	defer stmt.Close()
 
-	rows, err := stmt.Query(set_type, limit_int)
+	rows, err := stmt.Query(set_type, page_int, limit_int)
 	if err != nil {
 		log.Fatal(err)
 	}

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-dev74",
+        "r_ver" : "v3.5.0-dev75",
         "c_ver" : "3500376",
         "s_ver" : "3500113"
     }

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

@@ -150,7 +150,7 @@ function opennamu_do_render(to_obj, data, name = '', do_type = '', option = '')
 function opennamu_page_control(url, page, data_length, data_length_max = 50) {
     let next = function() {
         if(data_length_max === data_length) {
-            return '<a href="' + url.replace('{}', String(page + 1)) + '">(-)</a>';
+            return '<a href="' + url.replace('{}', String(page + 1)) + '">(+)</a>';
         } else {
             return '';
         }

+ 101 - 90
views/main_css/js/route/list_recent_change.js

@@ -1,8 +1,9 @@
 "use strict";
 
-function opennamu_list_recent_change() {
+function opennamu_list_recent_change(num, set_type) {
     let lang_data = new FormData();
-    lang_data.append('data', 'tool normal edit move delete revert new_doc edit_request user_document')
+    // user_document -> 8
+    lang_data.append('data', 'tool normal edit move delete revert new_doc edit_request user_document raw revert compare history hide history_delete send_edit');
 
     fetch('/api/lang', {
         method : 'post',
@@ -11,109 +12,119 @@ function opennamu_list_recent_change() {
         return res.json();
     }).then(function(lang) {
         lang = lang["data"];
-
-        fetch('/api/recent_change/50').then(function(res) {
+        
+        fetch('/api/auth_list').then(function(res) {
             return res.json();
-        }).then(function(data) {
-            let data_html = '';
-
-            let option_list = [
-                ['normal', lang[1]],
-                ['edit', lang[2]],
-                ['move', lang[3]],
-                ['delete', lang[4]],
-                ['revert', lang[5]],
-                ['r1', lang[6]],
-                ['edit_request', lang[7]],
-                ['user', lang[8]]
-            ];
-            for(let for_a = 0; for_a < option_list.length; for_a++) {
-                data_html += '<a href="/recent_change/1/' + option_list[for_a][0] + '">(' + option_list[for_a][1] + ')</a> ';
-            }
-
-            data_html += '<hr class="main_hr">'
-
-            for(let for_a = 0; for_a < data.length; for_a++) {
-                if(data[for_a][6] !== "" && data[for_a][1] === "") {
-                    data_html += '<div class="opennamu_recent_change">----</div>';
-                    data_html += '<hr class="main_hr">';
-
-                    continue;
+        }).then(function(auth) {
+            fetch('/api/recent_change/50/' + set_type + '/' + String(num)).then(function(res) {
+                return res.json();
+            }).then(function(data) {
+                let data_html = '';
+
+                let option_list = [
+                    ['normal', lang[1]],
+                    ['edit', lang[2]],
+                    ['move', lang[3]],
+                    ['delete', lang[4]],
+                    ['revert', lang[5]],
+                    ['r1', lang[6]],
+                    ['edit_request', lang[7]],
+                    ['user', lang[8]]
+                ];
+                for(let for_a = 0; for_a < option_list.length; for_a++) {
+                    data_html += '<a href="/recent_change/1/' + option_list[for_a][0] + '">(' + option_list[for_a][1] + ')</a> ';
                 }
 
-                let doc_name = opennamu_do_url_encode(data[for_a][1]);
+                data_html += '<hr class="main_hr">'
 
-                data_html += '<div class="opennamu_recent_change">';
-                data_html += '<a href="/w/' + doc_name + '">' + opennamu_xss_filter(data[for_a][1]) + '</a> ';
+                for(let for_a = 0; for_a < data.length; for_a++) {
+                    if(data[for_a][6] !== "" && data[for_a][1] === "") {
+                        data_html += '<div class="opennamu_recent_change">----</div>';
+                        data_html += '<hr class="main_hr">';
 
-                data_html += '<div style="float: right;">';
+                        continue;
+                    }
 
-                data_html += '<span id="opennamu_list_recent_change_' + String(for_a) + '_over">';
-                data_html += '<a id="opennamu_list_recent_change_' + String(for_a) + '" href="javascript:void(0);">';
-                data_html += '⚒️';
-                data_html += '</a>';
-                data_html += '<span class="opennamu_popup_footnote" id="opennamu_list_recent_change_' + String(for_a) + '_load" style="display: none;"></span>';
-                data_html += '</span>';
-                data_html += ' | '
+                    let doc_name = opennamu_do_url_encode(data[for_a][1]);
 
-                if(data[for_a][6] !== "") {
-                    data_html += '<span style="color: red;">r' + data[for_a][0] + '</span>';
-                } else {
-                    data_html += 'r' + data[for_a][0];
-                }
-                data_html += ' | '
-                
-                if(data[for_a][5] === '0') {
-                    data_html += '<span style="color: gray;">' + data[for_a][5] + '</span>';
-                } else if(data[for_a][5].match(/\+/)) {
-                    data_html += '<span style="color: green;">' + data[for_a][5] + '</span>';
-                } else {
-                    data_html += '<span style="color: red;">' + data[for_a][5] + '</span>';
-                }
-                data_html += ' | ';
-                
-                data_html += data[for_a][7] + ' | ';
-                data_html += data[for_a][2];
-                
-                data_html += '<span style="display: none;" id="opennamu_history_tool_' + String(for_a) + '"></span>';
-                
-                data_html += '</div>'
-                data_html += '<div style="clear: both;"></div>';
-
-                if(data[for_a][4] !== "") {
-                    data_html += '<hr>'
-                    data_html += opennamu_send_render(opennamu_xss_filter(data[for_a][4]));
-                }
+                    data_html += '<div class="opennamu_recent_change">';
+                    data_html += '<a href="/w/' + doc_name + '">' + opennamu_xss_filter(data[for_a][1]) + '</a> ';
 
-                data_html += '</div>';
-                data_html += '<hr class="main_hr">';
-            }
+                    data_html += '<div style="float: right;">';
 
-            document.getElementById('opennamu_list_recent_change').innerHTML = data_html;
+                    data_html += '<span id="opennamu_list_recent_change_' + String(for_a) + '_over">';
+                    data_html += '<a id="opennamu_list_recent_change_' + String(for_a) + '" href="javascript:void(0);">';
+                    data_html += '⚒️';
+                    data_html += '</a>';
+                    data_html += '<span class="opennamu_popup_footnote" id="opennamu_list_recent_change_' + String(for_a) + '_load" style="display: none;"></span>';
+                    data_html += '</span>';
+                    data_html += ' | '
 
-            for(let for_a = 0; for_a < data.length; for_a++) {
-                if(data[for_a][6] !== "" && data[for_a][1] === "") {
-                    continue;
-                }
+                    if(data[for_a][6] !== "") {
+                        data_html += '<span style="color: red;">r' + data[for_a][0] + '</span>';
+                    } else {
+                        data_html += 'r' + data[for_a][0];
+                    }
+                    data_html += ' | '
+                    
+                    if(data[for_a][5] === '0') {
+                        data_html += '<span style="color: gray;">' + data[for_a][5] + '</span>';
+                    } else if(data[for_a][5].match(/\+/)) {
+                        data_html += '<span style="color: green;">' + data[for_a][5] + '</span>';
+                    } else {
+                        data_html += '<span style="color: red;">' + data[for_a][5] + '</span>';
+                    }
+                    data_html += ' | ';
+                    
+                    data_html += data[for_a][7] + ' | ';
+                    data_html += data[for_a][2];
+                    
+                    data_html += '<span style="display: none;" id="opennamu_history_tool_' + String(for_a) + '">';
+
+                    data_html += '<a href="/raw_rev/' + data[for_a][0] + '/' + doc_name + '">' + lang[9] + '</a>';
+                    data_html += ' | <a href="/revert/' + data[for_a][0] + '/' + doc_name + '">' + lang[10] + ' (r' + data[for_a][0] + ')</a>';
+                    if(Number(data[for_a][0]) > 1) {
+                        let before_rev = String(Number(data[for_a][0]) - 1);
+                        data_html += ' | <a href="/revert/' + before_rev + '/' + doc_name + '">' + lang[10] + ' (r' + before_rev + ')</a>';
+                        data_html += ' | <a href="/diff/' + before_rev + '/' + data[for_a][0] + '/' + doc_name + '">' + lang[11] + '</a>';
+                    }
+                    data_html += ' | <a href="/history/' + doc_name + '">' + lang[12] + '</a>';
 
-                let doc_name = opennamu_do_url_encode(data[for_a][1]);
+                    if(auth["owner"] === true || auth["hidel"] === true) {
+                        data_html += ' | <a href="/history_hidden/' + data[for_a][0] + '/' + doc_name + '">' + lang[13] + '</a>';
+                    }
 
-                fetch('/api/history_tool/' + data[for_a][0] + '/' + doc_name).then(function(res) {
-                    return res.json();
-                }).then(function(tool_list) {
-                    let tool_html = '';
-                    for(let for_b = 0; for_b < tool_list.length; for_b++) {
-                        tool_html += '<a href="' + tool_list[for_b][0] + '">' + tool_list[for_b][1] + '</a> | ';
+                    if(auth["owner"] === true) {
+                        data_html += ' | <a href="/history_delete/' + data[for_a][0] + '/' + doc_name + '">' + lang[14] + '</a>';
+                        data_html += ' | <a href="/history_send/' + data[for_a][0] + '/' + doc_name + '">' + lang[15] + '</a>';
                     }
 
-                    tool_html = tool_html.replace(/ \| $/, '');
-                    
-                    document.getElementById('opennamu_history_tool_' + String(for_a)).innerHTML = tool_html;
+                    data_html += '</span>';
                     
-                    document.getElementById('opennamu_list_recent_change_' + String(for_a) + "_over").addEventListener("mouseenter", function() { opennamu_do_footnote_popover('opennamu_list_recent_change_' + String(for_a), '', 'opennamu_history_tool_' + String(for_a)); });
-                    document.getElementById('opennamu_list_recent_change_' + String(for_a) + "_over").addEventListener("mouseleave", function() { opennamu_do_footnote_popover('opennamu_list_recent_change_' + String(for_a), '', 'opennamu_history_tool_' + String(for_a)); });
-                });
-            }
+                    data_html += '</div>'
+                    data_html += '<div style="clear: both;"></div>';
+
+                    if(data[for_a][4] !== "") {
+                        data_html += '<hr>'
+                        data_html += opennamu_send_render(opennamu_xss_filter(data[for_a][4]));
+                    }
+
+                    data_html += '</div>';
+                    data_html += '<hr class="main_hr">';
+                }
+
+                data_html += opennamu_page_control('/recent_change/{}/' + set_type, num, data.length);
+
+                document.getElementById('opennamu_list_recent_change').innerHTML = data_html;
+
+                for(let for_a = 0; for_a < data.length; for_a++) {
+                    if(data[for_a][6] !== "" && data[for_a][1] === "") {
+                        continue;
+                    }
+
+                    document.getElementById('opennamu_list_recent_change_' + String(for_a)).addEventListener("click", function() { opennamu_do_footnote_popover('opennamu_list_recent_change_' + String(for_a), '', 'opennamu_history_tool_' + String(for_a)); });
+                }
+            });
         });
     });
 }