349 lines
9.9 KiB
JavaScript
349 lines
9.9 KiB
JavaScript
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) + ":<a onclick=\"listShow('" + list.id + "','" + escapeHTML(list.title) + "','" + acct_id + '\')" class="pointer">' + lang.lang_list_show + "</a><br>";
|
|
});
|
|
$("#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) + ":<a onclick=\"listShow('" + list.id + "','" + escapeHTML(list.title) + "','" + acct_id + '\')" class="pointer">' + lang.lang_list_show + "</a>/<a onclick=\"listUser('" + list.id + "'," + acct_id + ')" class="pointer">' + lang.lang_list_users + "</a><br>";
|
|
});
|
|
$("#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 + "<br>";
|
|
Object.keys(json).forEach(function(key) {
|
|
var list = json[key];
|
|
lists = lists + "<a onclick=\"listAdd('" + list.id + "','" + user + "','" + acct_id + '\')" class="pointer">' + escapeHTML(list.title) + "</a><br> ";
|
|
});
|
|
$("#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 + "<br>";
|
|
Object.keys(json).forEach(function(key) {
|
|
var list = json[key];
|
|
lists = lists + "<a onclick=\"listRemove('" + list.id + "','" + user + "','" + acct_id + '\')" class="pointer">' + escapeHTML(list.title) + "</a><br> ";
|
|
});
|
|
$("#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 + ":<a onclick=\"listShow('" + list.id + "','" + escapeHTML(list.title) + "','" + acct_id + '\')" class="pointer">' + lang.lang_list_show + "</a>/<a onclick=\"listAdd('" + list.id + "','" + user + "','" + acct_id + '\')" class="pointer">' + lang.lang_list_add + lang.lang_list_add_misskey + "</a><br>";
|
|
});
|
|
$("#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);
|
|
}
|
|
};
|
|
}
|