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); } }; }