test: setRedirectApi

This commit is contained in:
soxft
2022-06-27 17:26:19 +00:00
parent a119b9847d
commit 44bcdef9bf
2 changed files with 34 additions and 12 deletions
+33 -11
View File
@@ -1174,7 +1174,7 @@ class site_api:
## get_redirect_status
def getRedirectStatusApi(self):
def getRedirectApi(self):
_siteName = request.form.get("siteName",'')
# read data base
@@ -1198,12 +1198,13 @@ class site_api:
# get redirect status
def setRedirectStatusApi(self):
def setRedirectApi(self):
_siteName = request.form.get("siteName",'')
_from = request.form.get("from",'') # from (example.com / /test/)
_to = request.form.get("to",'') # redirect to
_type = request.form.get("type",'') # path / domain
_rType = request.form.get("r_type",'') # redirect type
_keepPath = request.form.get("keep_path",'') # keep path
if _siteName == '' or _from == '' or _to == '' or _type == '' or _rType == '':
return mw.returnJson(False, "必填项不能为空!")
@@ -1212,18 +1213,36 @@ class site_api:
data_content = mw.readFile(data_path) if os.path.exists(data_path) else ""
data = json.loads(data_content) if data_content != "" else {}
if _rType == "301":
_rType = 0
else:
_rType = 1
_rTypeCode = 0 if _rType == "301" else 1
_typeCode = 0 if _type == "path" else 1
_keepPath = 1 if _keepPath == "true" else 0
if _type == "path":
_type = 0
else:
_type = 1
redirect_type = "permanent" if _rType == 0 else "temporary"
pathQuery = ""
if _keepPath == 1:
# path
if _rTypeCode == 0:
pathQuery = "$1"
_from = "{}(.*)".format(_from)
#domain
else:
pathQuery = "$request_uri"
data.append({"from": _from, "type": _type, "r_type": _rType, "r_to": _to})
file_content = ""
# path
if _typeCode == 0:
file_content = """if ($host ~ '^{}'){
return {} {}{};
}""".format(_from, _rType ,_to, pathQuery)
else:
file_content = "rewrite ^{} {}{} {};".format(_from, _to, pathQuery, redirect_type)
_hash = mw.md5("{}+{}".format(file_content, time.time()))
# write data json file
data.append({"from": _from, "type": _typeCode, "r_type": _rTypeCode, "r_to": _to, 'keep_path': _keepPath, 'id': _hash})
mw.writeFile(data_path, json.dumps(data))
mw.writeFile("{}/{}.conf".format(self.getRedirectPath(_siteName), _hash), file_content)
return mw.returnJson(True, "ok")
@@ -1397,6 +1416,9 @@ class site_api:
def getRedirectDataPath(self, siteName):
return "{}/{}/data.json".format(self.redirectPath, siteName)
def getRedirectPath(self, siteName):
return "{}/{}/".format(self.redirectPath, siteName)
def getDirBindRewrite(self, siteName, dirname):
return self.rewritePath + '/' + siteName + '_' + dirname + '.conf'
+1 -1
View File
@@ -1518,7 +1518,7 @@ function to301(siteName, type, obj){
var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']});
$.post('/site/get_redirect_status','siteName='+siteName, function(response) {
$.post('/site/get_redirect','siteName='+siteName, function(response) {
layer.close(loadT);
$("#md-301-loading").remove();
let res = JSON.parse(response);