1.9.0
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
node_modules
|
||||||
22
logs/2022-7-20-22-29-26.log
Normal file
22
logs/2022-7-20-22-29-26.log
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
(node:9684) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
node:events:498
|
||||||
|
throw er; // Unhandled 'error' event
|
||||||
|
^
|
||||||
|
|
||||||
|
Error: spawn loader ENOENT
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21)
|
||||||
|
Emitted 'error' event on ChildProcess instance at:
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:289:12)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
|
||||||
|
errno: -4058,
|
||||||
|
code: 'ENOENT',
|
||||||
|
syscall: 'spawn loader',
|
||||||
|
path: 'loader',
|
||||||
|
spawnargs: [
|
||||||
|
'C:\\Users\\MixIO\\Desktop\\mixio_linux\\mixio_server_latest\\src\\'
|
||||||
|
]
|
||||||
|
}
|
||||||
22
logs/2022-7-20-22-29-38.log
Normal file
22
logs/2022-7-20-22-29-38.log
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
(node:4232) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
node:events:498
|
||||||
|
throw er; // Unhandled 'error' event
|
||||||
|
^
|
||||||
|
|
||||||
|
Error: spawn loader ENOENT
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21)
|
||||||
|
Emitted 'error' event on ChildProcess instance at:
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:289:12)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
|
||||||
|
errno: -4058,
|
||||||
|
code: 'ENOENT',
|
||||||
|
syscall: 'spawn loader',
|
||||||
|
path: 'loader',
|
||||||
|
spawnargs: [
|
||||||
|
'C:\\Users\\MixIO\\Desktop\\mixio_linux\\mixio_server_latest\\src\\'
|
||||||
|
]
|
||||||
|
}
|
||||||
22
logs/2022-7-20-22-29-47.log
Normal file
22
logs/2022-7-20-22-29-47.log
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
(node:22312) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
node:events:498
|
||||||
|
throw er; // Unhandled 'error' event
|
||||||
|
^
|
||||||
|
|
||||||
|
Error: spawn loader ENOENT
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21)
|
||||||
|
Emitted 'error' event on ChildProcess instance at:
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:289:12)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
|
||||||
|
errno: -4058,
|
||||||
|
code: 'ENOENT',
|
||||||
|
syscall: 'spawn loader',
|
||||||
|
path: 'loader',
|
||||||
|
spawnargs: [
|
||||||
|
'C:\\Users\\MixIO\\Desktop\\mixio_linux\\mixio_server_latest\\src\\'
|
||||||
|
]
|
||||||
|
}
|
||||||
22
logs/2022-7-20-22-30-01.log
Normal file
22
logs/2022-7-20-22-30-01.log
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
(node:644) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
node:events:498
|
||||||
|
throw er; // Unhandled 'error' event
|
||||||
|
^
|
||||||
|
|
||||||
|
Error: spawn loader ENOENT
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21)
|
||||||
|
Emitted 'error' event on ChildProcess instance at:
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:289:12)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
|
||||||
|
errno: -4058,
|
||||||
|
code: 'ENOENT',
|
||||||
|
syscall: 'spawn loader',
|
||||||
|
path: 'loader',
|
||||||
|
spawnargs: [
|
||||||
|
'C:\\Users\\MixIO\\Desktop\\mixio_linux\\mixio_server_latest\\src\\'
|
||||||
|
]
|
||||||
|
}
|
||||||
22
logs/2022-7-20-22-30-38.log
Normal file
22
logs/2022-7-20-22-30-38.log
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
(node:22396) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
node:events:498
|
||||||
|
throw er; // Unhandled 'error' event
|
||||||
|
^
|
||||||
|
|
||||||
|
Error: spawn loader ENOENT
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21)
|
||||||
|
Emitted 'error' event on ChildProcess instance at:
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:289:12)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
|
||||||
|
errno: -4058,
|
||||||
|
code: 'ENOENT',
|
||||||
|
syscall: 'spawn loader',
|
||||||
|
path: 'loader',
|
||||||
|
spawnargs: [
|
||||||
|
'C:\\Users\\MixIO\\Desktop\\mixio_linux\\mixio_server_latest\\src\\'
|
||||||
|
]
|
||||||
|
}
|
||||||
22
logs/2022-7-20-22-30-40.log
Normal file
22
logs/2022-7-20-22-30-40.log
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
(node:792) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
node:events:498
|
||||||
|
throw er; // Unhandled 'error' event
|
||||||
|
^
|
||||||
|
|
||||||
|
Error: spawn loader ENOENT
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21)
|
||||||
|
Emitted 'error' event on ChildProcess instance at:
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:289:12)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
|
||||||
|
errno: -4058,
|
||||||
|
code: 'ENOENT',
|
||||||
|
syscall: 'spawn loader',
|
||||||
|
path: 'loader',
|
||||||
|
spawnargs: [
|
||||||
|
'C:\\Users\\MixIO\\Desktop\\mixio_linux\\mixio_server_latest\\src\\'
|
||||||
|
]
|
||||||
|
}
|
||||||
22
logs/2022-7-20-22-31-34.log
Normal file
22
logs/2022-7-20-22-31-34.log
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
(node:2804) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
|
||||||
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||||
|
node:events:498
|
||||||
|
throw er; // Unhandled 'error' event
|
||||||
|
^
|
||||||
|
|
||||||
|
Error: spawn loader ENOENT
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21)
|
||||||
|
Emitted 'error' event on ChildProcess instance at:
|
||||||
|
at Process.ChildProcess._handle.onexit (node:internal/child_process:289:12)
|
||||||
|
at onErrorNT (node:internal/child_process:478:16)
|
||||||
|
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
|
||||||
|
errno: -4058,
|
||||||
|
code: 'ENOENT',
|
||||||
|
syscall: 'spawn loader',
|
||||||
|
path: 'loader',
|
||||||
|
spawnargs: [
|
||||||
|
'C:\\Users\\MixIO\\Desktop\\mixio_linux\\mixio_server_latest\\src\\'
|
||||||
|
]
|
||||||
|
}
|
||||||
22
mixio.js
22
mixio.js
@@ -4,7 +4,27 @@ const fs = require("fs")
|
|||||||
var versionInfo = fs.readFileSync("version.json", "utf-8")
|
var versionInfo = fs.readFileSync("version.json", "utf-8")
|
||||||
var configInfo = fs.readFileSync("src/config.json", "utf-8")
|
var configInfo = fs.readFileSync("src/config.json", "utf-8")
|
||||||
var http = require("http")
|
var http = require("http")
|
||||||
|
var os = require("os")
|
||||||
var {spawnSync} = require("child_process")
|
var {spawnSync} = require("child_process")
|
||||||
|
function getIpAddress() {
|
||||||
|
var ifaces=os.networkInterfaces()
|
||||||
|
var addresses = []
|
||||||
|
for (var dev in ifaces) {
|
||||||
|
let iface = ifaces[dev]
|
||||||
|
|
||||||
|
for (let i = 0; i < iface.length; i++) {
|
||||||
|
let {family, address, internal} = iface[i]
|
||||||
|
|
||||||
|
if (family === 'IPv4' && address !== '127.0.0.1' && !internal) {
|
||||||
|
addresses.push(address)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return addresses
|
||||||
|
}
|
||||||
|
|
||||||
|
let ipAddress = getIpAddress()
|
||||||
|
|
||||||
var version = function () {
|
var version = function () {
|
||||||
console.log(JSON.parse(versionInfo))
|
console.log(JSON.parse(versionInfo))
|
||||||
}
|
}
|
||||||
@@ -50,6 +70,7 @@ function start() {
|
|||||||
'command': "./loader"
|
'command': "./loader"
|
||||||
})
|
})
|
||||||
console.log("Starting MixIO server...")
|
console.log("Starting MixIO server...")
|
||||||
|
console.log("IP Address: "+ipAddress)
|
||||||
while (true) {
|
while (true) {
|
||||||
var content = fs.readFileSync(process.cwd() + "/logs/" + logFileName, "utf-8")
|
var content = fs.readFileSync(process.cwd() + "/logs/" + logFileName, "utf-8")
|
||||||
var successLog = "[INFO] Database Connected!"
|
var successLog = "[INFO] Database Connected!"
|
||||||
@@ -86,6 +107,7 @@ function debug() {
|
|||||||
'command': "node"
|
'command': "node"
|
||||||
})
|
})
|
||||||
console.log("Starting MixIO server...")
|
console.log("Starting MixIO server...")
|
||||||
|
console.log("IP Address: "+ipAddress)
|
||||||
while (true) {
|
while (true) {
|
||||||
var content = fs.readFileSync(process.cwd() + "/logs/" + logFileName, "utf-8")
|
var content = fs.readFileSync(process.cwd() + "/logs/" + logFileName, "utf-8")
|
||||||
var successLog = "[INFO] Database Connected!"
|
var successLog = "[INFO] Database Connected!"
|
||||||
|
|||||||
5465
package-lock.json
generated
Normal file
5465
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -5,9 +5,8 @@
|
|||||||
"HTTPS_CRT_FILE": "./certs/file.crt",
|
"HTTPS_CRT_FILE": "./certs/file.crt",
|
||||||
"MAX_PROJECT_NUM_PER_USER": 20,
|
"MAX_PROJECT_NUM_PER_USER": 20,
|
||||||
"ALLOW_REGISTER": true,
|
"ALLOW_REGISTER": true,
|
||||||
|
"ALLOW_HOOK": true,
|
||||||
"OFFLINE_MODE": true,
|
"OFFLINE_MODE": true,
|
||||||
"BAIDU_MAP_AK": "",
|
"BAIDU_MAP_AK": "",
|
||||||
"BAIDU_MAP_SERVER_AK": "",
|
"BAIDU_MAP_SERVER_AK": ""
|
||||||
"ADMIN_USERNAME":"admin",
|
|
||||||
"ADMIN_PASSWORD":"public"
|
|
||||||
}
|
}
|
||||||
@@ -68,7 +68,15 @@
|
|||||||
var admin = function(){
|
var admin = function(){
|
||||||
userName = $("#userName").val()
|
userName = $("#userName").val()
|
||||||
password = $("#password").val()
|
password = $("#password").val()
|
||||||
window.location.href = '/admin?userName='+userName+'&password='+password
|
$.post('/adminLogin',{
|
||||||
|
"userName":userName,
|
||||||
|
"password":password
|
||||||
|
},function(res){
|
||||||
|
if(res == 1)
|
||||||
|
window.location.href = "./admin"
|
||||||
|
else
|
||||||
|
showtext(JSLang[lang].wrongAcc)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -131,7 +131,7 @@
|
|||||||
<i class="fa fa-play" style="font-size:1.2rem"></i><br>
|
<i class="fa fa-play" style="font-size:1.2rem"></i><br>
|
||||||
</a>
|
</a>
|
||||||
<a id="stop" class="btn btn-warning" style="margin:5px;font-size:0.8rem;cursor:pointer" onclick = "stop()">
|
<a id="stop" class="btn btn-warning" style="margin:5px;font-size:0.8rem;cursor:pointer" onclick = "stop()">
|
||||||
<i class="fa fa-stop" style="font-size:1.2rem"></i><br>
|
<i class="fa fa-pause" style="font-size:1.2rem"></i><br>
|
||||||
</a>
|
</a>
|
||||||
<a class="btn btn-info" style="margin:5px;font-size:0.8rem;cursor:pointer" onclick = "refresh()">
|
<a class="btn btn-info" style="margin:5px;font-size:0.8rem;cursor:pointer" onclick = "refresh()">
|
||||||
<i class="fa fa-refresh" style="font-size:1.2rem"></i><br>
|
<i class="fa fa-refresh" style="font-size:1.2rem"></i><br>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<script src="js/lang.js?v=5"></script>
|
<script src="js/lang.js?v=5"></script>
|
||||||
<script src="js/lang2.js?v=5"></script>
|
<script src="js/lang2.js?v=5"></script>
|
||||||
<script src="js/tools.js?v=10"></script>
|
<script src="js/tools.js?v=10"></script>
|
||||||
<script src="js/login.js?v=21"></script>
|
<script src="js/login.js?v=22"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body id="body" class="bg-gradient-light" style="height:100vh">
|
<body id="body" class="bg-gradient-light" style="height:100vh">
|
||||||
@@ -131,7 +131,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer id="footer" style="height:40px;font-size:0.8rem;text-align:center">
|
<footer id="footer" style="height:40px;font-size:0.8rem;text-align:center">
|
||||||
|
<a href="https://gitee.com/mixly2/mixio" class="lang" key="OPENSRC"></a>
|
||||||
|
<a id="admin" class="lang" key="ADMINDASH"></a>
|
||||||
|
MixIO Community Server © Mixly Team
|
||||||
</footer>
|
</footer>
|
||||||
<!-- Bootstrap core JavaScript-->
|
<!-- Bootstrap core JavaScript-->
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
<link href="css/sb-admin-2.min.css" rel="stylesheet">
|
<link href="css/sb-admin-2.min.css" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="css/muuri.css?v=21">
|
<link rel="stylesheet" href="css/muuri.css?v=21">
|
||||||
<script src="js/jquery.min.js"></script>
|
<script src="js/jquery.min.js"></script>
|
||||||
|
|
||||||
<script src="js/lang.js?v=5"></script>
|
<script src="js/lang.js?v=5"></script>
|
||||||
<script src="js/lang2.js?v=5"></script>
|
<script src="js/lang2.js?v=5"></script>
|
||||||
<script src="js/farbtastic.js"></script>
|
<script src="js/farbtastic.js"></script>
|
||||||
@@ -21,7 +22,11 @@
|
|||||||
<script src="js/jquery.easing.min.js"></script>
|
<script src="js/jquery.easing.min.js"></script>
|
||||||
<script src="js/echarts.min.js"></script>
|
<script src="js/echarts.min.js"></script>
|
||||||
<script src="js/mqtt.min.js"></script>
|
<script src="js/mqtt.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="css/dataTables.bootstrap4.min.css">
|
||||||
|
<script src="js/jquery.dataTables.min.js"></script>
|
||||||
|
<script src="js/dataTables.bootstrap4.min.js"></script>
|
||||||
<script src="js/tools.js?v=14"></script>
|
<script src="js/tools.js?v=14"></script>
|
||||||
|
<script src="js/manage.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body id="page-top" class="sidebar-toggled" style="position:relative;overflow-x:hidden;color: black;">
|
<body id="page-top" class="sidebar-toggled" style="position:relative;overflow-x:hidden;color: black;">
|
||||||
@@ -43,12 +48,16 @@
|
|||||||
<span class="lang" key="BASICADMIN"></span></a>
|
<span class="lang" key="BASICADMIN"></span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" id="view2">
|
<li class="nav-item" id="view2">
|
||||||
<a class="nav-link" onclick="view(2)" style="cursor: pointer;" id="manage_strg">
|
<a class="nav-link" onclick="view(2)" style="cursor: pointer;" id="manage_data">
|
||||||
<i class="fa fa-fw fa-database"></i>
|
<i class="fa fa-fw fa-database"></i>
|
||||||
|
<span class="lang" key="DATAADMIN"></span></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item" id="view3">
|
||||||
|
<a class="nav-link" onclick="view(3)" style="cursor: pointer;" id="manage_strg">
|
||||||
|
<i class="fa fa-fw fa-user"></i>
|
||||||
<span class="lang" key="USERADMIN"></span></a>
|
<span class="lang" key="USERADMIN"></span></a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
<hr class="sidebar-divider">
|
<hr class="sidebar-divider">
|
||||||
</ul>
|
</ul>
|
||||||
<div id="content-wrapper" class="d-flex flex-column">
|
<div id="content-wrapper" class="d-flex flex-column">
|
||||||
@@ -135,6 +144,14 @@
|
|||||||
<input type="checkbox" id="ALLOW_REGISTER">
|
<input type="checkbox" id="ALLOW_REGISTER">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<span>允许离线数据:</span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="checkbox" id="ALLOW_HOOK">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span>HTTP 端口:</span>
|
<span>HTTP 端口:</span>
|
||||||
@@ -198,7 +215,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="detail2" hidden>
|
<div id="detail3" hidden>
|
||||||
<div class="col-xl-4 col-md-6 mb-4">
|
<div class="col-xl-4 col-md-6 mb-4">
|
||||||
<div class="card shadow" style="margin-top:1.5rem;border-radius:10px">
|
<div class="card shadow" style="margin-top:1.5rem;border-radius:10px">
|
||||||
<div class="card-body" style="display: flex;align-items: center;justify-content: center;flex-direction: column;">
|
<div class="card-body" style="display: flex;align-items: center;justify-content: center;flex-direction: column;">
|
||||||
@@ -211,8 +228,32 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="detail3" hidden>
|
<div id="detail2" hidden>
|
||||||
|
<div class="col-xl-8 col-md-6 mb-4">
|
||||||
|
<div class="card shadow" style="margin-top:1.5rem;border-radius:10px">
|
||||||
|
<div class="card-body" >
|
||||||
|
<table id="table">
|
||||||
|
<thead>
|
||||||
|
<td style="min-width:100px">
|
||||||
|
用户
|
||||||
|
</td>
|
||||||
|
<td style="min-width:100px">
|
||||||
|
项目数
|
||||||
|
</td>
|
||||||
|
<td style="min-width:100px">
|
||||||
|
消息量
|
||||||
|
</td>
|
||||||
|
<td style="min-width:100px">
|
||||||
|
执行操作
|
||||||
|
</td>
|
||||||
|
</thead>
|
||||||
|
<tbody id="tbody">
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -227,6 +268,23 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
|
var clearMessage = function(userName){
|
||||||
|
$.get('clearMessage',{
|
||||||
|
"userName":userName
|
||||||
|
},function(res){
|
||||||
|
if(res == 1)
|
||||||
|
{
|
||||||
|
showtext("操作成功!")
|
||||||
|
setTimeout(function(){
|
||||||
|
window.location.href = window.location.href
|
||||||
|
},1000)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
showtext("操作失败")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
$("#time").html(new Date().toLocaleTimeString())
|
$("#time").html(new Date().toLocaleTimeString())
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
$("#time").html(new Date().toLocaleTimeString())
|
$("#time").html(new Date().toLocaleTimeString())
|
||||||
@@ -237,6 +295,7 @@
|
|||||||
var HTTPS_CRT_FILE = "<%=configs["HTTPS_CRT_FILE"]%>"
|
var HTTPS_CRT_FILE = "<%=configs["HTTPS_CRT_FILE"]%>"
|
||||||
var MAX_PROJECT_NUM_PER_USER = "<%=configs["MAX_PROJECT_NUM_PER_USER"]%>"
|
var MAX_PROJECT_NUM_PER_USER = "<%=configs["MAX_PROJECT_NUM_PER_USER"]%>"
|
||||||
var ALLOW_REGISTER = <%=configs["ALLOW_REGISTER"]%>
|
var ALLOW_REGISTER = <%=configs["ALLOW_REGISTER"]%>
|
||||||
|
var ALLOW_HOOK = <%=configs["ALLOW_HOOK"]%>
|
||||||
var OFFLINE_MODE = <%=configs["OFFLINE_MODE"]%>
|
var OFFLINE_MODE = <%=configs["OFFLINE_MODE"]%>
|
||||||
var BAIDU_MAP_AK = "<%=configs["BAIDU_MAP_AK"]%>"
|
var BAIDU_MAP_AK = "<%=configs["BAIDU_MAP_AK"]%>"
|
||||||
var BAIDU_MAP_SERVER_AK = "<%=configs["BAIDU_MAP_SERVER_AK"]%>"
|
var BAIDU_MAP_SERVER_AK = "<%=configs["BAIDU_MAP_SERVER_AK"]%>"
|
||||||
@@ -258,6 +317,7 @@
|
|||||||
$("#HTTPS_PRIVATE_PEM").val(HTTPS_PRIVATE_PEM)
|
$("#HTTPS_PRIVATE_PEM").val(HTTPS_PRIVATE_PEM)
|
||||||
$("#HTTPS_CRT_FILE").val(HTTPS_CRT_FILE)
|
$("#HTTPS_CRT_FILE").val(HTTPS_CRT_FILE)
|
||||||
$("#ALLOW_REGISTER").prop("checked",ALLOW_REGISTER)
|
$("#ALLOW_REGISTER").prop("checked",ALLOW_REGISTER)
|
||||||
|
$("#ALLOW_HOOK").prop("checked",ALLOW_HOOK)
|
||||||
$("#OFFLINE_MODE").prop("checked",OFFLINE_MODE)
|
$("#OFFLINE_MODE").prop("checked",OFFLINE_MODE)
|
||||||
$("#BAIDU_MAP_AK").val(BAIDU_MAP_AK)
|
$("#BAIDU_MAP_AK").val(BAIDU_MAP_AK)
|
||||||
$("#BAIDU_MAP_SERVER_AK").val(BAIDU_MAP_SERVER_AK)
|
$("#BAIDU_MAP_SERVER_AK").val(BAIDU_MAP_SERVER_AK)
|
||||||
@@ -274,6 +334,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
loadConfig()
|
loadConfig()
|
||||||
|
|
||||||
|
|
||||||
var saveAndRestart = function(){
|
var saveAndRestart = function(){
|
||||||
var modald = showmodaltext("<div style='text-align:center'><i class='fa fa-spin fa-cog' style='font-size:2rem;color:#4e73df'></i><p style='margin-top:6px;margin-bottom:0;color:#4e73df;font-size:1rem;font-weight:bold'>"+JSLang[lang].loading2+"</p></div>")
|
var modald = showmodaltext("<div style='text-align:center'><i class='fa fa-spin fa-cog' style='font-size:2rem;color:#4e73df'></i><p style='margin-top:6px;margin-bottom:0;color:#4e73df;font-size:1rem;font-weight:bold'>"+JSLang[lang].loading2+"</p></div>")
|
||||||
configs = {}
|
configs = {}
|
||||||
@@ -283,6 +345,7 @@
|
|||||||
configs["HTTPS_CRT_FILE"] = $("#HTTPS_CRT_FILE").val()
|
configs["HTTPS_CRT_FILE"] = $("#HTTPS_CRT_FILE").val()
|
||||||
configs["MAX_PROJECT_NUM_PER_USER"] = parseInt($("#MAX_PROJECT_NUM_PER_USER").val())
|
configs["MAX_PROJECT_NUM_PER_USER"] = parseInt($("#MAX_PROJECT_NUM_PER_USER").val())
|
||||||
configs["ALLOW_REGISTER"] = $("#ALLOW_REGISTER").prop("checked")
|
configs["ALLOW_REGISTER"] = $("#ALLOW_REGISTER").prop("checked")
|
||||||
|
configs["ALLOW_HOOK"] = $("#ALLOW_HOOK").prop("checked")
|
||||||
configs["OFFLINE_MODE"] = $("#OFFLINE_MODE").prop("checked")
|
configs["OFFLINE_MODE"] = $("#OFFLINE_MODE").prop("checked")
|
||||||
configs["BAIDU_MAP_AK"] = $("#BAIDU_MAP_AK").val()
|
configs["BAIDU_MAP_AK"] = $("#BAIDU_MAP_AK").val()
|
||||||
configs["BAIDU_MAP_SERVER_AK"] = $("#BAIDU_MAP_SERVER_AK").val()
|
configs["BAIDU_MAP_SERVER_AK"] = $("#BAIDU_MAP_SERVER_AK").val()
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ function get_data(){
|
|||||||
$.get('queryHook',function(res){
|
$.get('queryHook',function(res){
|
||||||
if(res == 1)
|
if(res == 1)
|
||||||
{
|
{
|
||||||
$("#play").addClass("disabled")
|
$("#play").remove()
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$("#stop").addClass("disabled")
|
$("#stop").remove()
|
||||||
}
|
}
|
||||||
$.getJSON('getData',{
|
$.getJSON('getData',{
|
||||||
|
|
||||||
@@ -227,7 +227,6 @@ var output = function(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
var clearAll = function(){
|
var clearAll = function(){
|
||||||
console.log(111)
|
|
||||||
var modald = showmodaltext("<div style='text-align:center'><i class='fa fa-spin fa-cog' style='font-size:2rem;color:#4e73df'></i><p style='margin-top:6px;margin-bottom:0;color:#4e73df;font-size:1rem;font-weight:bold'>"+JSLang[lang].loading+"</p></div>")
|
var modald = showmodaltext("<div style='text-align:center'><i class='fa fa-spin fa-cog' style='font-size:2rem;color:#4e73df'></i><p style='margin-top:6px;margin-bottom:0;color:#4e73df;font-size:1rem;font-weight:bold'>"+JSLang[lang].loading+"</p></div>")
|
||||||
$.get('clearHook',function(res){
|
$.get('clearHook',function(res){
|
||||||
modald.close()
|
modald.close()
|
||||||
|
|||||||
@@ -486,6 +486,8 @@ var JSLang = {
|
|||||||
|
|
||||||
var arrLang = {
|
var arrLang = {
|
||||||
"en": {
|
"en": {
|
||||||
|
"OPENSRC":"Open Repo",
|
||||||
|
"ADMINDASH": "Admin Dashboard",
|
||||||
"TOPIC": "Topic",
|
"TOPIC": "Topic",
|
||||||
"MESSAGE": "Message",
|
"MESSAGE": "Message",
|
||||||
"TIME":"Time",
|
"TIME":"Time",
|
||||||
@@ -493,7 +495,7 @@ var JSLang = {
|
|||||||
"ADMIN":"Admin",
|
"ADMIN":"Admin",
|
||||||
"BASICADMIN": "Basic",
|
"BASICADMIN": "Basic",
|
||||||
"USERADMIN": "Users",
|
"USERADMIN": "Users",
|
||||||
"MQTTADMIN": "Devices",
|
"DATAADMIN": "Data",
|
||||||
"UPEMAIL": "E-mail: ",
|
"UPEMAIL": "E-mail: ",
|
||||||
"EMAIL": "placeholder$E-mail Address",
|
"EMAIL": "placeholder$E-mail Address",
|
||||||
"PASSWORD": "placeholder$Password",
|
"PASSWORD": "placeholder$Password",
|
||||||
@@ -512,8 +514,8 @@ var JSLang = {
|
|||||||
"SHAREMANAGE": "Share",
|
"SHAREMANAGE": "Share",
|
||||||
"SETTINGS": "Settings",
|
"SETTINGS": "Settings",
|
||||||
"LOGOUT": "Log out",
|
"LOGOUT": "Log out",
|
||||||
"IMPORT": "Import user data",
|
"IMPORT": "Import user projects",
|
||||||
"EXPORT": "Export user data",
|
"EXPORT": "Export user projects",
|
||||||
"CONNECTINGSERVER": "Connecting server...",
|
"CONNECTINGSERVER": "Connecting server...",
|
||||||
"MANAGECOUNT": "Projects Managed",
|
"MANAGECOUNT": "Projects Managed",
|
||||||
"OFFLINECOUNT": "Temporary Messages Reserved",
|
"OFFLINECOUNT": "Temporary Messages Reserved",
|
||||||
@@ -551,6 +553,8 @@ var JSLang = {
|
|||||||
"CFMSET":"Confirm"
|
"CFMSET":"Confirm"
|
||||||
},
|
},
|
||||||
"zh": {
|
"zh": {
|
||||||
|
"OPENSRC":"开源仓库",
|
||||||
|
"ADMINDASH": "管理后台",
|
||||||
"TOPIC": "主题",
|
"TOPIC": "主题",
|
||||||
"MESSAGE": "消息",
|
"MESSAGE": "消息",
|
||||||
"TIME":"时间",
|
"TIME":"时间",
|
||||||
@@ -558,7 +562,7 @@ var JSLang = {
|
|||||||
"ADMIN":"管理",
|
"ADMIN":"管理",
|
||||||
"BASICADMIN": "基础设置",
|
"BASICADMIN": "基础设置",
|
||||||
"USERADMIN": "批量注册",
|
"USERADMIN": "批量注册",
|
||||||
"MQTTADMIN": "连接管理",
|
"DATAADMIN": "数据管理",
|
||||||
"UPEMAIL": "注册邮箱:",
|
"UPEMAIL": "注册邮箱:",
|
||||||
"EMAIL": "placeholder$请输入电子邮箱地址",
|
"EMAIL": "placeholder$请输入电子邮箱地址",
|
||||||
"PASSWORD": "placeholder$请输入密码",
|
"PASSWORD": "placeholder$请输入密码",
|
||||||
@@ -577,8 +581,8 @@ var JSLang = {
|
|||||||
"SHAREMANAGE": "共享管理",
|
"SHAREMANAGE": "共享管理",
|
||||||
"SETTINGS": "设置",
|
"SETTINGS": "设置",
|
||||||
"LOGOUT": "退出登录",
|
"LOGOUT": "退出登录",
|
||||||
"IMPORT": "导入用户数据",
|
"IMPORT": "导入用户项目",
|
||||||
"EXPORT": "导出用户数据",
|
"EXPORT": "导出用户项目",
|
||||||
"CONNECTINGSERVER": "正在连接服务器",
|
"CONNECTINGSERVER": "正在连接服务器",
|
||||||
"MANAGECOUNT": "管理项目数",
|
"MANAGECOUNT": "管理项目数",
|
||||||
"OFFLINECOUNT": "离线消息数",
|
"OFFLINECOUNT": "离线消息数",
|
||||||
@@ -616,6 +620,8 @@ var JSLang = {
|
|||||||
"CFMSET":"确定设置"
|
"CFMSET":"确定设置"
|
||||||
},
|
},
|
||||||
"tw": {
|
"tw": {
|
||||||
|
"OPENSRC":"開源倉庫",
|
||||||
|
"ADMINDASH": "管理後台",
|
||||||
"TOPIC": "主題",
|
"TOPIC": "主題",
|
||||||
"MESSAGE": "消息",
|
"MESSAGE": "消息",
|
||||||
"TIME":"時間",
|
"TIME":"時間",
|
||||||
@@ -623,7 +629,7 @@ var JSLang = {
|
|||||||
"ADMIN":"管理",
|
"ADMIN":"管理",
|
||||||
"BASICADMIN": "基礎設置",
|
"BASICADMIN": "基礎設置",
|
||||||
"USERADMIN": "批量註冊",
|
"USERADMIN": "批量註冊",
|
||||||
"MQTTADMIN": "連接管理",
|
"DATAADMIN": "數據管理",
|
||||||
"UPEMAIL": "註冊郵箱:",
|
"UPEMAIL": "註冊郵箱:",
|
||||||
"EMAIL": "placeholder$請輸入電子郵箱地址",
|
"EMAIL": "placeholder$請輸入電子郵箱地址",
|
||||||
"PASSWORD": "placeholder$請輸入密碼",
|
"PASSWORD": "placeholder$請輸入密碼",
|
||||||
@@ -642,8 +648,8 @@ var JSLang = {
|
|||||||
"SHAREMANAGE": "共享管理",
|
"SHAREMANAGE": "共享管理",
|
||||||
"SETTINGS": "設置",
|
"SETTINGS": "設置",
|
||||||
"LOGOUT": "退出登錄",
|
"LOGOUT": "退出登錄",
|
||||||
"IMPORT": "匯入用戶數據",
|
"IMPORT": "匯入用戶項目",
|
||||||
"EXPORT": "匯出用戶數據",
|
"EXPORT": "匯出用戶項目",
|
||||||
"CONNECTINGSERVER": "正在連接服務器",
|
"CONNECTINGSERVER": "正在連接服務器",
|
||||||
"MANAGECOUNT": "管理項目數",
|
"MANAGECOUNT": "管理項目數",
|
||||||
"OFFLINECOUNT": "離線消息數",
|
"OFFLINECOUNT": "離線消息數",
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ function showmodaltext(text){
|
|||||||
return d
|
return d
|
||||||
}
|
}
|
||||||
$(function(){
|
$(function(){
|
||||||
|
$("#admin").attr("href","http://"+window.location.href.split("//")[1].split(":")[0]+":18084")
|
||||||
fullHeight = $("#cd").height()+"px"
|
fullHeight = $("#cd").height()+"px"
|
||||||
halfHeight = "calc( "+($("#cd").height()-$("#ref1").height()-$("#reset_text").height()-10)+"px - 1rem)"
|
halfHeight = "calc( "+($("#cd").height()-$("#ref1").height()-$("#reset_text").height()-10)+"px - 1rem)"
|
||||||
if(window.screen.width<800)
|
if(window.screen.width<800)
|
||||||
|
|||||||
36
src/js/manage.js
Normal file
36
src/js/manage.js
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
$(function(){
|
||||||
|
$.getJSON("queryData",function(res){
|
||||||
|
for(var i = 0;i<=res.length-1;i = i+1)
|
||||||
|
{
|
||||||
|
$("#tbody").append("<tr><td>"+res[i]["username"]+"</td><td>"+res[i]["projects"]+"</td><td>"+res[i]["messages"]+"</td><td>"+ "<a class='btn btn-primary' style='cursor:pointer;' onclick=\"clearMessage('"+res[i]["username"]+"')\" >清空消息</a>"+"</td></tr>")
|
||||||
|
}
|
||||||
|
datatable = $("#table").DataTable({
|
||||||
|
"order": [[ 2, "desc" ]],
|
||||||
|
language: {
|
||||||
|
"sProcessing": "处理中...",
|
||||||
|
"sLengthMenu": "每页 _MENU_ 项",
|
||||||
|
"sZeroRecords": "没有匹配结果",
|
||||||
|
"sInfo": "显示第 _START_ 项至 第 _END_ 项结果,共 _TOTAL_ 项",
|
||||||
|
"sInfoEmpty": "显示第 0 项至 0 项结果,共 0 项",
|
||||||
|
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
|
||||||
|
"sInfoPostFix": "",
|
||||||
|
"sSearch": "搜索:",
|
||||||
|
"sUrl": "",
|
||||||
|
"sEmptyTable": "表中数据为空",
|
||||||
|
"sLoadingRecords": "载入中...",
|
||||||
|
"sInfoThousands": ",",
|
||||||
|
"oPaginate": {
|
||||||
|
"sFirst": "首页",
|
||||||
|
"sPrevious": "上页",
|
||||||
|
"sNext": "下页",
|
||||||
|
"sLast": "末页"
|
||||||
|
},
|
||||||
|
"oAria": {
|
||||||
|
"sSortAscending": ": 以升序排列此列",
|
||||||
|
"sSortDescending": ": 以降序排列此列"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$("#table").attr("class","table table-striped table-bordered dataTable no-footer")
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -756,6 +756,7 @@ function view_project(projectName,projectType){
|
|||||||
switch_mode()
|
switch_mode()
|
||||||
init_codemirror()
|
init_codemirror()
|
||||||
}
|
}
|
||||||
|
$(".blocklySvg").attr("height","100%")
|
||||||
})
|
})
|
||||||
$("#bottom_2").removeAttr("hidden")
|
$("#bottom_2").removeAttr("hidden")
|
||||||
var prevLogic = JSON.parse(res)['logicStorage']
|
var prevLogic = JSON.parse(res)['logicStorage']
|
||||||
|
|||||||
133
src/loader.js
133
src/loader.js
@@ -96,14 +96,86 @@ async function daemon_start(){
|
|||||||
extended: true
|
extended: true
|
||||||
}));
|
}));
|
||||||
app.set('trust proxy', 1)
|
app.set('trust proxy', 1)
|
||||||
|
app.use(session({
|
||||||
|
secret: 'mixio',
|
||||||
|
name: 'mixio',
|
||||||
|
resave: false,
|
||||||
|
rolling: true,
|
||||||
|
saveUninitialized: true,
|
||||||
|
cookie: {
|
||||||
|
path: '/',
|
||||||
|
httpOnly: true,
|
||||||
|
maxAge: 1800000
|
||||||
|
}
|
||||||
|
}));
|
||||||
app.get('/',function(req,res){
|
app.get('/',function(req,res){
|
||||||
ejs.renderFile(__dirname +'/ejs/admin.ejs', {
|
ejs.renderFile(__dirname +'/ejs/admin.ejs', {
|
||||||
}, function (err, data) {
|
}, function (err, data) {
|
||||||
res.send(data)
|
res.send(data)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
app.get('/queryData', function(req, res){
|
||||||
|
var data = []
|
||||||
|
var messages = []
|
||||||
|
var cb = function(num,newFunc){
|
||||||
|
if(num>=1)
|
||||||
|
{
|
||||||
|
var next = num - 1
|
||||||
|
reserveDBs[next].all("select userName,count(*) from `reserve` group by userName", function(err,rows){
|
||||||
|
if(rows)
|
||||||
|
{
|
||||||
|
messages.push(...rows)
|
||||||
|
}
|
||||||
|
cb(next,newFunc)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newFunc()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cb(8,function(){
|
||||||
|
db.all("select username from `user`",function(err, rows1){
|
||||||
|
db.all("select userName,count(*) from `project` group by username",function(err, rows2){
|
||||||
|
for(var i = 0;i<=rows1.length-1;i = i+1)
|
||||||
|
{
|
||||||
|
var username = rows1[i]["username"]
|
||||||
|
var projects = 0
|
||||||
|
var msgs = 0
|
||||||
|
for(var j = 0;j<=rows2.length-1;j = j+1)
|
||||||
|
{
|
||||||
|
if(rows2[j]["userName"] == username)
|
||||||
|
{
|
||||||
|
projects = rows2[j]["count(*)"]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(var j = 0;j<=messages.length-1;j = j+1)
|
||||||
|
{
|
||||||
|
if(messages[j]["userName"] == username)
|
||||||
|
{
|
||||||
|
msgs = messages[j]["count(*)"]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data.push({
|
||||||
|
"username":username,
|
||||||
|
"projects":projects,
|
||||||
|
"messages":msgs
|
||||||
|
})
|
||||||
|
}
|
||||||
|
res.send(data)
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
app.get('/admin', function (req, res) {
|
app.get('/admin', function (req, res) {
|
||||||
if(req.query.userName==(configs["ADMIN_USERNAME"]?configs["ADMIN_USERNAME"]:"admin") &&req.query.password==(configs["ADMIN_PASSWORD"]?configs["ADMIN_PASSWORD"]:"public"))
|
if(req.session.admin)
|
||||||
{
|
{
|
||||||
ejs.renderFile(__dirname +'/ejs/manage.ejs', {
|
ejs.renderFile(__dirname +'/ejs/manage.ejs', {
|
||||||
'configs': configs,
|
'configs': configs,
|
||||||
@@ -114,8 +186,51 @@ async function daemon_start(){
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
res.redirect('/')
|
||||||
|
})
|
||||||
|
|
||||||
|
app.get('/clearMessage',function(req, res){
|
||||||
|
if(req.session.admin)
|
||||||
{
|
{
|
||||||
res.send('账号或密码错误。')
|
var userName = req.query.userName
|
||||||
|
if(userName)
|
||||||
|
{
|
||||||
|
var hash = 0, i, chr;
|
||||||
|
if (this.length === 0) return hash;
|
||||||
|
for (i = 0; i < userName.length; i++) {
|
||||||
|
chr = userName.charCodeAt(i);
|
||||||
|
hash = ((hash << 5) - hash) + chr;
|
||||||
|
hash |= 0;
|
||||||
|
}
|
||||||
|
var targetDB = reserveDBs[Math.abs(hash)%8]
|
||||||
|
targetDB.run("delete from `reserve` where userName=?",[userName,],function(err){
|
||||||
|
if(err)
|
||||||
|
{
|
||||||
|
console.log(err.message)
|
||||||
|
res.send('-1')
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
res.send('1')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else
|
||||||
|
res.send('-1')
|
||||||
|
}
|
||||||
|
else
|
||||||
|
res.send('-1')
|
||||||
|
})
|
||||||
|
|
||||||
|
app.post('/adminLogin', function(req, res){
|
||||||
|
if(req.body.userName==(configs["ADMIN_USERNAME"]?configs["ADMIN_USERNAME"]:"admin") &&req.body.password==(configs["ADMIN_PASSWORD"]?configs["ADMIN_PASSWORD"]:"public"))
|
||||||
|
{
|
||||||
|
req.session.admin = true
|
||||||
|
res.send('1')
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
res.send('-1')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -364,7 +479,7 @@ var mixioServer = function(){
|
|||||||
} else if (topic[2] == '9d634e1a156dc0c1611eb4c3cff57276') {
|
} else if (topic[2] == '9d634e1a156dc0c1611eb4c3cff57276') {
|
||||||
db.run("delete from devices where userName = ? and clientid = ?", [topic[0], payload])
|
db.run("delete from devices where userName = ? and clientid = ?", [topic[0], payload])
|
||||||
}
|
}
|
||||||
else if(reserveJSON[topic[0]]){
|
else if(configs["ALLOW_HOOK"]&&reserveJSON[topic[0]]&&topic[0]!="$SYS"){
|
||||||
var userName = topic[0]
|
var userName = topic[0]
|
||||||
var reserveTopic = topic[1] + "/" + topic[2]
|
var reserveTopic = topic[1] + "/" + topic[2]
|
||||||
var hash = 0, i, chr;
|
var hash = 0, i, chr;
|
||||||
@@ -374,7 +489,7 @@ var mixioServer = function(){
|
|||||||
hash = ((hash << 5) - hash) + chr;
|
hash = ((hash << 5) - hash) + chr;
|
||||||
hash |= 0;
|
hash |= 0;
|
||||||
}
|
}
|
||||||
var targetDB = reserveDBs[hash%8]
|
var targetDB = reserveDBs[Math.abs(hash)%8]
|
||||||
targetDB.get("select count(*) from 'reserve' where userName = ?", [userName,], function(err, row){
|
targetDB.get("select count(*) from 'reserve' where userName = ?", [userName,], function(err, row){
|
||||||
if(err){
|
if(err){
|
||||||
console.log(err.message)
|
console.log(err.message)
|
||||||
@@ -734,7 +849,7 @@ var mixioServer = function(){
|
|||||||
hash = ((hash << 5) - hash) + chr;
|
hash = ((hash << 5) - hash) + chr;
|
||||||
hash |= 0;
|
hash |= 0;
|
||||||
}
|
}
|
||||||
reserveDBs[hash%8].all("select * from `reserve` where userName=?", [req.session.userName], function (err, rows) {
|
reserveDBs[Math.abs(hash)%8].all("select * from `reserve` where userName=?", [req.session.userName], function (err, rows) {
|
||||||
if(err)
|
if(err)
|
||||||
{
|
{
|
||||||
console.log(err)
|
console.log(err)
|
||||||
@@ -1332,7 +1447,7 @@ var mixioServer = function(){
|
|||||||
hash = ((hash << 5) - hash) + chr;
|
hash = ((hash << 5) - hash) + chr;
|
||||||
hash |= 0;
|
hash |= 0;
|
||||||
}
|
}
|
||||||
reserveDBs[hash%8].run("delete from `reserve` where userName = ?",[userName, ],function(err){
|
reserveDBs[Math.abs(hash)%8].run("delete from `reserve` where userName = ?",[userName, ],function(err){
|
||||||
if(err)
|
if(err)
|
||||||
{
|
{
|
||||||
console.log(err.message)
|
console.log(err.message)
|
||||||
@@ -1482,6 +1597,12 @@ var MixIOclosure = function(userName,projectName,projectPass,dataStorage,dom){
|
|||||||
var that = this
|
var that = this
|
||||||
this.errorMessage = ""
|
this.errorMessage = ""
|
||||||
this.dataSave = JSON.parse(dataStorage)
|
this.dataSave = JSON.parse(dataStorage)
|
||||||
|
if(!this.dataSave || !this.dataSave["received"])
|
||||||
|
{
|
||||||
|
this.dataSave = {
|
||||||
|
"received":{}
|
||||||
|
}
|
||||||
|
}
|
||||||
this.lastPublishTime = [new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0)],
|
this.lastPublishTime = [new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0),new Date(0)],
|
||||||
this.minPublishInterval = 500,
|
this.minPublishInterval = 500,
|
||||||
this.client = mqtt.connect('ws://localhost:8083',{
|
this.client = mqtt.connect('ws://localhost:8083',{
|
||||||
|
|||||||
BIN
src/mixio.db
BIN
src/mixio.db
Binary file not shown.
BIN
src/reserve/4.db
BIN
src/reserve/4.db
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"version": "1.7.0",
|
"version": "1.9.0",
|
||||||
"platform": "linux-x64",
|
"platform": "win-x64",
|
||||||
"node-version": "12"
|
"node-version": "12"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user