2
0
잉여개발기 (SPDV) 2 жил өмнө
parent
commit
d977605226

+ 2 - 3
app.py

@@ -725,8 +725,8 @@ app.route('/api/image/<everything:name>')(api_image_view)
 app.route('/api/v2/recent_edit_request/<set_type>/<int:num>', defaults = { 'db_set' : db_set_str, 'limit' : 50 })(api_list_recent_edit_request)
 app.route('/api/v2/recent_change/<set_type>/<int:num>', defaults = { 'db_set' : db_set_str, 'legacy' : '', 'limit' : 50 })(api_list_recent_change)
 app.route('/api/v2/recent_discuss/<set_type>/<int:num>', defaults = { 'db_set' : db_set_str, 'legacy' : '', 'limit' : 50 })(api_list_recent_discuss)
-app.route('/api/v2/old_page/<int:num>', defaults = { 'db_set' : db_set_str })(api_list_recent_change)
-app.route('/api/v2/new_page/<int:num>', defaults = { 'db_set' : db_set_str })(api_list_recent_discuss)
+app.route('/api/v2/old_page/<int:num>', defaults = { 'db_set' : db_set_str, 'set_type' : 'old' })(api_list_old_page)
+app.route('/api/v2/new_page/<int:num>', defaults = { 'db_set' : db_set_str, 'set_type' : 'new' })(api_list_old_page)
 
 # Func-main
 # 여기도 전반적인 조정 시행 예정
@@ -734,7 +734,6 @@ app.route('/other')(main_tool_other)
 app.route('/manager', methods = ['POST', 'GET'])(main_tool_admin)
 app.route('/manager/<int:num>', methods = ['POST', 'GET'])(main_tool_redirect)
 app.route('/manager/<int:num>/<everything:add_2>', methods = ['POST', 'GET'])(main_tool_redirect)
-# app.route('/guide/<doc_name>')(main_tool_guide)
 
 app.route('/search', methods=['POST'])(main_search)
 app.route('/search/<everything:name>', defaults = { 'db_set' : db_set_str }, methods = ['POST', 'GET'])(main_search_deep)

+ 22 - 28
emergency_tool.py

@@ -53,47 +53,41 @@ print('24. SQLite to MySQL')
 
 what_i_do = input('Insert selection number (EX : 9) : ')
 if what_i_do == '1':
-    go_num = input('All delete (Y) [Y, N] : ')
-    if not go_num == 'N':
-        curs.execute(db_change("delete from back"))
-        conn.commit()
-
     try:
         go_num = int(input('Count (100) : '))
     except ValueError:
         go_num = 100
 
-    num = 0
+    curs.execute(db_change('select count(*) from data'))
+    count = curs.fetchall()
+    count = count[0][0] if count else 0
 
+    num = 0
+    title = []
     print('Load...')
 
-    curs.execute(
-        db_change(
-            "select title from data d "
-            "where not exists ("
-            "select title from back where link = d.title limit 1"
-            ")"
-            ""
-        )
-    )
-    title = curs.fetchall()
+    while num == 0 or len(title) == 100:
+        curs.execute(db_change('select title from data limit ?, 100'), [num])
+        title = curs.fetchall()
 
-    print('Rest : ' + str(len(title)))
-    print('Start : ' + title[0][0])
-    time.sleep(1)
+        print('Rest : ' + str(count - num))
+        print('Start : ' + title[0][0])
+        time.sleep(1)
 
-    for name in title:
-        num += 1
-        if num % go_num == 0:
-            print(str(num) + ' : ' + name[0])
+        for name in title:
+            num += 1
+            if num % go_num == 0:
+                print(str(num) + ' : ' + name[0])
 
-        if num % 100 == 0:
-            conn.commit()
+            curs.execute(db_change("select data from data where title = ?"), [name[0]])
+            data = curs.fetchall()
 
-        curs.execute(db_change("select data from data where title = ?"), [name[0]])
-        data = curs.fetchall()
+            render_lang_data = {
+                'toc' : 'toc',
+                'category' : 'category'
+            }
 
-        class_do_render(conn).do_render(name[0], data[0][0], 'backlink', '')
+            class_do_render(conn, render_lang_data, '').do_render(name[0], data[0][0], 'backlink')
 elif what_i_do == '2':
     curs.execute(db_change("delete from other where name = 'recaptcha'"))
     curs.execute(db_change("delete from other where name = 'sec_re'"))

+ 1 - 0
route/__init__.py

@@ -182,6 +182,7 @@ from route.go_api_search import api_search
 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
+from route.go_api_list_old_page import api_list_old_page
 
 from route.go_api_bbs import api_bbs
 from route.go_api_bbs_list import api_bbs_list

+ 22 - 0
route/go_api_list_old_page.py

@@ -0,0 +1,22 @@
+from .tool.func import *
+
+def api_list_old_page(db_set, num = 1, set_type = 'old'):
+    other_set = {}
+    other_set["num"] = str(num)
+    other_set["set_type"] = set_type
+    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')

+ 6 - 11
route/tool/func.py

@@ -2502,9 +2502,12 @@ def history_plus(conn, title, data, date, ip, send, leng, t_check = '', mode = '
         id_data = str(int(id_data[0][0]) + 1) if id_data else '1'
         
         mode = 'r1' if id_data == '1' else mode
-        mode = mode if not re.search('^user:', title) else 'user'
-        mode = mode if not re.search('^file:', title) else 'file'
-        mode = mode if not re.search('^category:', title) else 'category'
+        if re.search('^user:', title):
+            mode = 'user'
+        elif re.search('^file:', title):
+            mode = 'file'
+        elif re.search('^category:', title):
+            mode = 'category'
 
     send = re.sub(r'<|>', '', send)
     send = send[:512] if len(send) > 512 else send
@@ -2539,14 +2542,6 @@ def history_plus(conn, title, data, date, ip, send, leng, t_check = '', mode = '
         curs.execute(db_change('delete from data_set where doc_name = ? and set_name = "length"'), [title])
         curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'length', ?)"), [title, len(data)])
 
-        if mode in ('file', 'user', 'category'):
-            doc_type = mode
-        else:
-            doc_type = ''
-        
-        curs.execute(db_change('delete from data_set where doc_name = ? and set_name = "doc_type"'), [title])
-        curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'doc_type', ?)"), [title, doc_type])
-
         curs.execute(db_change("update data_set set doc_rev = ? where doc_name = ? and (doc_rev = '' or doc_rev = 'not_exist')"), [data_set_exist, title])
 
     curs.execute(db_change("insert into history (id, title, data, date, ip, send, leng, hide, type) values (?, ?, ?, ?, ?, ?, ?, '', ?)"), [id_data, title, data, date, ip, send, leng, mode])

+ 11 - 1
route/tool/func_render.py

@@ -70,6 +70,14 @@ class class_do_render:
             data_end[0] = re.sub(r'&lt;topic_call&gt;@(?P<in>(?:(?!&lt;\/topic_call&gt;).)+)&lt;\/topic_call&gt;', '<a href="/w/user:\\g<in>">@\\g<in></a>', data_end[0])
 
         if data_type == 'backlink':
+            mode = ''
+            if re.search('^user:', doc_name):
+                mode = 'user'
+            elif re.search('^file:', doc_name):
+                mode = 'file'
+            elif re.search('^category:', doc_name):
+                mode = 'category'
+
             curs.execute(db_change("delete from back where link = ?"), [doc_name])
             curs.execute(db_change("delete from back where title = ? and type = 'no'"), [doc_name])
 
@@ -87,7 +95,9 @@ class class_do_render:
 
             curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'link_count', ?)"), [doc_name, link_count])
 
-            if 'redirect' in data_end[2] and data_end[2]['redirect'] == 1:
+            if mode != '':
+                curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'doc_type', ?)"), [doc_name, mode]) 
+            elif 'redirect' in data_end[2] and data_end[2]['redirect'] == 1:
                 curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'doc_type', 'redirect')"), [doc_name])
             else:
                 curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'doc_type', '')"), [doc_name])

BIN
route_go/bin/main.amd64.exe


+ 2 - 0
route_go/main.go

@@ -49,6 +49,8 @@ func main() {
 		route.Api_list_recent_discuss(call_arg[1:])
 	} else if call_arg[0] == "api_bbs_list" {
 		route.Api_bbs_list(call_arg[1:])
+	} else if call_arg[0] == "api_list_old_page" {
+		route.Api_list_old_page(call_arg[1:])
 	} else {
 		log.Fatal("404")
 	}

+ 48 - 13
route_go/route/api_list_old_page.go

@@ -3,6 +3,7 @@ package route
 import (
 	"database/sql"
 	"encoding/json"
+	"fmt"
 	"log"
 	"opennamu/route/tool"
 	"strconv"
@@ -21,22 +22,13 @@ func Api_list_old_page(call_arg []string) {
 	}
 	defer db.Close()
 
-	limit_int, err := strconv.Atoi(other_set["limit"])
-	if err != nil {
-		log.Fatal(err)
-	}
-
-	if limit_int > 50 || limit_int < 0 {
-		limit_int = 50
-	}
-
 	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
+		page_int = (page_int * 50) - 50
 	} else {
 		page_int = 0
 	}
@@ -44,9 +36,9 @@ func Api_list_old_page(call_arg []string) {
 	var stmt *sql.Stmt
 
 	if other_set["set_type"] == "old" {
-		stmt, err = db.Prepare(tool.DB_change(db_set, "select doc_name, set_data from data_set where set_name = 'last_edit' and doc_rev = '' order by set_data desc limit ?, 50"))
-	} else {
 		stmt, err = db.Prepare(tool.DB_change(db_set, "select doc_name, set_data from data_set where set_name = 'last_edit' and doc_rev = '' order by set_data asc limit ?, 50"))
+	} else {
+		stmt, err = db.Prepare(tool.DB_change(db_set, "select doc_name, set_data from data_set where set_name = 'last_edit' and doc_rev = '' order by set_data desc limit ?, 50"))
 	}
 
 	if err != nil {
@@ -54,9 +46,52 @@ func Api_list_old_page(call_arg []string) {
 	}
 	defer stmt.Close()
 
-	rows, err := stmt.Query(page_int, limit_int)
+	rows, err := stmt.Query(page_int)
 	if err != nil {
 		log.Fatal(err)
 	}
 	defer rows.Close()
+
+	var data_list [][]string
+
+	for rows.Next() {
+		var doc_name string
+		var date string
+
+		err := rows.Scan(&doc_name, &date)
+		if err != nil {
+			log.Fatal(err)
+		}
+
+		stmt, err = db.Prepare(tool.DB_change(db_set, "select set_data from data_set where doc_name = ? and set_name = 'doc_type'"))
+		if err != nil {
+			log.Fatal(err)
+		}
+		defer stmt.Close()
+
+		var doc_type string
+
+		err = stmt.QueryRow(doc_name).Scan(&doc_type)
+		if err != nil {
+			if err == sql.ErrNoRows {
+				doc_type = ""
+			} else {
+				log.Fatal(err)
+			}
+		}
+		defer rows.Close()
+
+		data_list = append(data_list, []string{doc_name, date, doc_type})
+	}
+
+	return_data := make(map[string]interface{})
+
+	if len(data_list) == 0 {
+		return_data["data"] = map[string]string{}
+	} else {
+		return_data["data"] = data_list
+	}
+
+	json_data, _ := json.Marshal(return_data)
+	fmt.Print(string(json_data))
 }