Bladeren bron

관심 문서 문서별 추가한 인원 확인 API

https://github.com/openNAMU/openNAMU/issues/2091
잉여개발기 2 jaren geleden
bovenliggende
commit
ed3632dc68

+ 5 - 4
app.py

@@ -681,10 +681,11 @@ app.route('/api/raw_exist/<everything:name>', defaults = { 'exist_check' : 'on',
 app.route('/api/raw_rev/<int(signed = True):rev>/<everything:name>', defaults = { 'db_set' : db_set_str })(api_w_raw)
 app.route('/api/raw/<everything:name>', defaults = { 'db_set' : db_set_str })(api_w_raw)
 
-app.route('/api/xref/<everything:name>', defaults = { 'db_set' : db_set_str })(api_w_xref)
-app.route('/api/xref_page/<int:num>/<everything:name>', defaults = { 'db_set' : db_set_str })(api_w_xref)
-app.route('/api/xref_this/<everything:name>', defaults = { 'xref_type' : '2', 'db_set' : db_set_str })(api_w_xref)
-app.route('/api/xref_this_page/<int:num>/<everything:name>', defaults = { 'xref_type' : '2', 'db_set' : db_set_str })(api_w_xref)
+app.route('/api/star_doc/<int:num>/<everything:name>', defaults = { 'db_set' : db_set_str, 'do_type' : 'star_doc' })(api_w_watch_list)
+app.route('/api/watch_list/<int:num>/<everything:name>', defaults = { 'db_set' : db_set_str })(api_w_watch_list)
+
+app.route('/api/xref/<int:num>/<everything:name>', defaults = { 'db_set' : db_set_str })(api_w_xref)
+app.route('/api/xref_this/<int:num>/<everything:name>', defaults = { 'xref_type' : '2', 'db_set' : db_set_str })(api_w_xref)
 
 app.route('/api/random', defaults = { 'db_set' : db_set_str })(api_w_random)
 

+ 1 - 0
route/__init__.py

@@ -183,5 +183,6 @@ from route.go_api_topic import api_topic
 from route.go_api_w_raw import api_w_raw
 from route.go_api_w_random import api_w_random
 from route.go_api_w_xref import api_w_xref
+from route.go_api_w_watch_list import api_w_watch_list
 
 from route.go_main_func_easter_egg import main_func_easter_egg

+ 25 - 0
route/go_api_w_watch_list.py

@@ -0,0 +1,25 @@
+from .tool.func import *
+
+def api_w_watch_list(db_set, name = 'Test', do_type = 'watch_list', num = 1):
+    with get_db_connect() as conn:
+        other_set = {}
+        other_set["name"] = name
+        other_set["do_type"] = do_type
+        other_set["ip"] = ip_check()
+        other_set["num"] = str(num)
+        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')

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 - 0
route_go/main.go

@@ -30,5 +30,7 @@ func main() {
 		route.Api_bbs(call_arg[1:])
 	} else if call_arg[0] == "api_w_xref" {
 		route.Api_w_xref(call_arg[1:])
+	} else if call_arg[0] == "api_w_watch_list" {
+		route.Api_w_watch_list(call_arg[1:])
 	}
 }

+ 73 - 0
route_go/route/api_w_watch_list.go

@@ -0,0 +1,73 @@
+package route
+
+import (
+	"database/sql"
+	"encoding/json"
+	"fmt"
+	"opennamu/route/tool"
+	"strconv"
+)
+
+func Api_w_watch_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)
+
+	page, _ := strconv.Atoi(other_set["num"])
+	num := 0
+	if page*50 > 0 {
+		num = page*50 - 50
+	}
+
+	db := tool.DB_connect(db_set)
+	if db == nil {
+		return
+	}
+	defer db.Close()
+
+	ip := other_set["ip"]
+	if tool.Get_admin_auth(db, db_set, ip) == "" {
+		fmt.Print("{}")
+		return
+	}
+
+	var stmt *sql.Stmt
+	var err error
+	if other_set["do_type"] == "star_doc" {
+		stmt, err = db.Prepare(tool.DB_change(db_set, "select id from user_set where name = 'star_doc' and data = ? limit ?, 50"))
+	} else {
+		stmt, err = db.Prepare(tool.DB_change(db_set, "select id from user_set where name = 'watchlist' and data = ? limit ?, 50"))
+	}
+	if err != nil {
+		return
+	}
+	defer stmt.Close()
+
+	rows, err := stmt.Query(other_set["name"], num)
+	if err != nil {
+		return
+	}
+	defer rows.Close()
+
+	var data_list []string
+
+	for rows.Next() {
+		var user_name string
+
+		err := rows.Scan(&user_name)
+		if err != nil {
+			return
+		}
+
+		data_list = append(data_list, user_name)
+	}
+
+	if len(data_list) == 0 {
+		fmt.Print("{}")
+	} else {
+		json_data, _ := json.Marshal(data_list)
+		fmt.Print(string(json_data))
+	}
+}

+ 1 - 1
version.json

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