//[open_source: true]
//[create_at: 2023-10-16 12:00:00]
//[author: hansa]
//[service: 437477052]
// [version: v1.0.0]
// [title: 多级菜单管理]
// [class: 管理类]
// [description: 基于开源的菜单 多级菜单自定义,指令:菜单管理、菜单]
// [platform: qq,wx,tg]
// [public: true]
// [price: 0]
// [disable:false]
// [rule: ^菜单$]
// [rule: ^菜单管理$]
//获取内容
var GetContent = GetContent()
//读取数据库
try {
//菜单存储在otto库下的menu
var data = bucketGet("ootd", "menu")
console.log(data)
obj = JSON.parse(data)
} catch (e) {//获取错误时聚会为空
obj = {}
}
function choose() { //命令筛选
console.log(obj)
if (GetContent == "菜单") {
if (Array.prototype.isPrototypeOf(obj) && obj.length === 0){
sendText("没有菜单数据,请添加指令")
}else{
menu()
}
} else if (GetContent == "菜单管理") {
console.log(isAdmin())
if (isAdmin()) {
manager()
menu()
}
return;
}
}
// 管理菜单
function manager() {
//console.log(obj)
sendText(`请选择对象进行编辑:(-删除指令,0增加指令,1更新指令,q退出, wq保存)\n`);
var msg = input()
if (msg === null || msg === undefined) {
sendText('参数为空');
return;
}
if (msg === '0') {
add();
} else if (msg === '-') {
remove();
} else if (msg === '1') {
update();
} else if (msg == "wq") {
//Object.keys(obj).forEach(function(key) {
//if (obj[key] === null || obj[key] === undefined) {
// delete obj[key];
// }
// });
console.log("写入:",obj)
bucketSet("ootd", "menu", JSON.stringify(obj))
sendText("已保存修改")
return;
} else if (msg === 'q') {
sendText('退出');
return;
} else {
sendText('无效的指令');
return manager();
}
}
//添加1级标题
function add() {
sendText(`请输入一级标题:(q退出)\n`);
var msg = input()
if (msg === '' || msg === null || msg === undefined) {
sendText('参数为空');
return;
} else if (msg === 'q') {
return;
} else if (!obj.hasOwnProperty(msg)) {
sendText('创建一级标题');
obj[msg] = [];
console.log("一级:",obj)
add2(msg);
} else {
sendText('已存在');
add2(msg);
}
}
//添加2级标题
function add2(msg) {
sendText(`请输入二级标题:(q退出)\n`);
var msg2 = input()
if (msg2 === '' || msg2 === null || msg2 === undefined) {
sendText('参数为空');
add2(msg);
} else if (msg2 === 'q') {
return manager();
} else if (!obj[msg].includes(msg2)) {
obj[msg].push(msg2);
add2(msg);
} else {
sendText('已存在');
add2(msg);
}
}
//删除标题
function remove() {
var firstLevelOptions = Object.keys(obj).join(', ');
sendText(`请输入要删除的一级标题:\n可选的一级标题:${firstLevelOptions}`);
var msg = input()
if (msg === '' || msg === null || msg === undefined) {
sendText('参数为空');
} else if (obj.hasOwnProperty(msg)) {
delete obj[msg];
sendText('一级标题已删除');
}else {
console.log('一级标题不存在');
}
return manager();
}
// 更新标题菜单
function update() {
sendText(`请选择要更新的级别:(1-一级标题,2-二级标题)\n`);
var level = input()
if (level === '1') {
updateFirstLevel();
} else if (level === '2') {
updateSecondLevel();
} else {
sendText('无效的级别');
}
}
// 更新一级标题
function updateFirstLevel() {
var firstLevelOptions = Object.keys(obj).join(', ');
sendText(`请输入要更新的一级标题:\n可选的一级标题:${firstLevelOptions}`);
var msg = input()
if (msg === '' || msg === null || msg === undefined) {
sendText('参数为空');
return;
} else if (!obj.hasOwnProperty(msg)) {
sendText('一级标题不存在');
return;
}
sendText(`请输入新的一级标题:\n`);
var newTitle = input()
if (newTitle === '' || newTitle === null || newTitle === undefined) {
sendText('参数为空');
return;
}
obj[newTitle] = obj[msg];
delete obj[msg];
sendText('一级标题已更新');
}
// 更新二级标题
function updateSecondLevel() {
var firstLevelOptions = Object.keys(obj).join(', ');
sendText(`请输入所属的一级标题:\n可选的一级标题:${firstLevelOptions}`);
var firstLevel = input()
if (firstLevel === '' || firstLevel === null || firstLevel === undefined) {
sendText('参数为空');
return;
} else if (!obj.hasOwnProperty(firstLevel)) {
sendText('一级标题不存在');
return;
}
var secondLevelOptions = obj[firstLevel].join(', ');
sendText(`请输入要更新的二级标题:\n可选的二级标题:${secondLevelOptions}`);
var secondLevel = input()
if (secondLevel === '' || secondLevel === null || secondLevel === undefined) {
sendText('参数为空');
return;
} else if (!obj[firstLevel].includes(secondLevel)) {
sendText('二级标题不存在');
return;
}
sendText(`请输入新的二级标题:\n`);
var newTitle = input()
if (newTitle === '' || newTitle === null || newTitle === undefined) {
sendText('参数为空');
return;
}
var index = obj[firstLevel].indexOf(secondLevel);
if (firstLevel && index !== -1) {
obj[firstLevel].splice(index, 1, newTitle);
console.log('二级标题已更新');
} else {
console.log('二级标题不存在');
}
sendText('二级标题已更新');
}
//输出菜单
function menu(){
var entries = Object.entries(obj);
var output = "*".repeat(6) + "机器人菜单" + "*".repeat(6) + "\n";
for (var i = 0; i < entries.length; i++) {
var key = entries[i][0];
var value = entries[i][1];
output += "—".repeat(5) + key + "—".repeat(5) + "\n";
if (Array.isArray(value)) {
for (var j = 0; j < value.length; j++) {
output += (j + 1) + "." + value[j] + "\n";
}
} else {
output += value + "\n";
}
output += "\n";
}
//sendText(obj)
//console.log(obj)
sendText(output);
}
choose()