function listMenu() {
$("#left-menu div").removeClass("active");
$("#listMenu").addClass("active");
$(".menu-content").addClass("hide");
$("#list-box").removeClass("hide");
$("ul.tabs").tabs("select_tab", "src-sta");
$("#src-contents").html("");
}
function list() {
$("#lists-user").html("");
var acct_id = $("#list-acct-sel").val();
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) == "misskey") {
var start = "https://" + domain + "/api/users/lists/list";
fetch(start, {
method: "POST",
body: JSON.stringify({
i: at
})
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
return response.json();
})
.catch(function(error) {
todo(error);
setLog(start, "JSON", error);
console.error(error);
})
.then(function(json) {
if (json) {
var lists = "";
Object.keys(json).forEach(function(key) {
var list = json[key];
lists = lists + escapeHTML(list.title) + ":' + lang.lang_list_show + "
";
});
$("#lists").html(lists);
} else {
$("#lists").html(lang.lang_list_nodata);
}
});
} else {
var start = "https://" + domain + "/api/v1/lists";
fetch(start, {
method: "GET",
headers: {
"content-type": "application/json",
Authorization: "Bearer " + at
}
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
return response.json();
})
.catch(function(error) {
todo(error);
setLog(start, "JSON", error);
console.error(error);
})
.then(function(json) {
if (json) {
var lists = "";
Object.keys(json).forEach(function(key) {
var list = json[key];
lists = lists + escapeHTML(list.title) + ":' + lang.lang_list_show + "/' + lang.lang_list_users + "
";
});
$("#lists").html(lists);
} else {
$("#lists").html(lang.lang_list_nodata);
}
});
}
}
function makeNewList() {
var acct_id = $("#list-acct-sel").val();
var text = $("#list-add").val();
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) != "misskey") {
var start = "https://" + domain + "/api/v1/lists";
var httpreq = new XMLHttpRequest();
httpreq.open("POST", start, true);
httpreq.setRequestHeader("Content-Type", "application/json");
httpreq.setRequestHeader("Authorization", "Bearer " + at);
httpreq.responseType = "json";
httpreq.send(
JSON.stringify({
title: text
})
);
httpreq.onreadystatechange = function() {
if (httpreq.readyState === 4) {
var json = httpreq.response;
if (this.status !== 200) {
setLog(start, this.status, this.response);
}
list();
$("#list-add").val("");
}
};
} else {
var start = "https://" + domain + "/api/users/lists/create";
var httpreq = new XMLHttpRequest();
httpreq.open("POST", start, true);
httpreq.setRequestHeader("Content-Type", "application/json");
httpreq.responseType = "json";
httpreq.send(
JSON.stringify({
i: at,
title: text
})
);
httpreq.onreadystatechange = function() {
if (httpreq.readyState === 4) {
var json = httpreq.response;
if (this.status !== 200) {
setLog(start, this.status, this.response);
}
list();
$("#list-add").val("");
}
};
}
}
function listShow(id, title, acct_id) {
localStorage.setItem("list_" + id + "_" + acct_id, title);
tl("list", id, acct_id, "add");
}
function listUser(id, acct_id) {
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/lists/" + id + "/accounts";
fetch(start, {
method: "GET",
headers: {
"content-type": "application/json",
Authorization: "Bearer " + at
}
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
return response.json();
})
.catch(function(error) {
todo(error);
setLog(start, "JSON", error);
console.error(error);
})
.then(function(json) {
if (json) {
var lists = "";
var templete = userparse(json, "", acct_id);
if (!json[0]) {
templete = lang.lang_list_nouser;
}
$("#lists-user").html(templete);
jQuery("time.timeago").timeago();
} else {
$("#lists-user").html(lang.lang_list_nouser);
}
});
}
function hisList(user, acct_id) {
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) != "misskey") {
var start = "https://" + domain + "/api/v1/lists";
fetch(start, {
method: "GET",
headers: {
"content-type": "application/json",
Authorization: "Bearer " + at
}
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
return response.json();
})
.catch(function(error) {
todo(error);
setLog(start, "JSON", error);
console.error(error);
})
.then(function(json) {
if (json) {
var lists = lang.lang_list_add + "
";
Object.keys(json).forEach(function(key) {
var list = json[key];
lists = lists + "' + escapeHTML(list.title) + "
";
});
$("#his-lists-a").html(lists);
} else {
$("#his-lists-a").html(lang.lang_list_nodata);
}
});
var start = "https://" + domain + "/api/v1/accounts/" + user + "/lists";
fetch(start, {
method: "GET",
headers: {
"content-type": "application/json",
Authorization: "Bearer " + at
}
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
return response.json();
})
.catch(function(error) {
todo(error);
setLog(start, "JSON", error);
console.error(error);
})
.then(function(json) {
if (json) {
var lists = lang.lang_list_remove + "
";
Object.keys(json).forEach(function(key) {
var list = json[key];
lists = lists + "' + escapeHTML(list.title) + "
";
});
$("#his-lists-b").html(lists);
} else {
$("#his-lists-b").html(lang.lang_list_nodata);
}
});
} else {
var start = "https://" + domain + "/api/users/lists/list";
fetch(start, {
method: "POST",
body: JSON.stringify({
i: at
})
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
return response.json();
})
.catch(function(error) {
todo(error);
setLog(start, "JSON", error);
console.error(error);
})
.then(function(json) {
if (json) {
var lists = "";
Object.keys(json).forEach(function(key) {
var list = json[key];
lists = lists + list.title + ":' + lang.lang_list_show + "/' + lang.lang_list_add + lang.lang_list_add_misskey + "
";
});
$("#his-lists-a").html(lists);
} else {
$("#his-lists-a").html(lang.lang_list_nodata);
}
});
$("#his-lists-b").html("");
}
}
function listAdd(id, user, acct_id) {
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) == "misskey") {
var start = "https://" + domain + "/api/users/lists/push";
var i = {
i: at,
listId: id,
userId: user
};
} else {
var start = "https://" + domain + "/api/v1/lists/" + id + "/accounts";
var i = {
account_ids: [user]
};
}
var httpreq = new XMLHttpRequest();
httpreq.open("POST", start, true);
httpreq.setRequestHeader("Content-Type", "application/json");
httpreq.setRequestHeader("Authorization", "Bearer " + at);
httpreq.responseType = "json";
httpreq.send(JSON.stringify(i));
httpreq.onreadystatechange = function() {
if (httpreq.readyState === 4) {
var json = httpreq.response;
if (this.status !== 200) {
setLog(start, this.status, this.response);
}
hisList(user, acct_id);
}
};
}
function listRemove(id, user, acct_id) {
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) == "misskey") {
var start = "https://" + domain + "/api/users/lists/push";
var method = "POST";
var i = {
i: at,
listId: id,
userId: user
};
} else {
var start = "https://" + domain + "/api/v1/lists/" + id + "/accounts";
var method = "DELETE";
var i = {
account_ids: [user]
};
}
var httpreq = new XMLHttpRequest();
httpreq.open(method, start, true);
httpreq.setRequestHeader("Content-Type", "application/json");
httpreq.setRequestHeader("Authorization", "Bearer " + at);
httpreq.responseType = "json";
httpreq.send(JSON.stringify(i));
httpreq.onreadystatechange = function() {
if (httpreq.readyState === 4) {
var json = httpreq.response;
if (this.status !== 200) {
setLog(start, this.status, this.response);
}
hisList(user, acct_id);
}
};
}