'use strict' 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) } } }