//ユーザーデータ表示 //タイムライン function utl(user, more, acct_id) { if (!acct_id) { var acct_id = $('#his-data').attr("use-acct"); } var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_"+ acct_id + "_at"); if (user == "--now") { var user = $('#his-data').attr("user-id"); } if(localStorage.getItem("mode_" + domain)!="misskey"){ if (more) { var sid = $("#his-tl .cvo").last().attr("toot-id"); var plus = "?max_id=" + sid; } else { var plus = ""; } var start = "https://" + domain + "/api/v1/accounts/" + user + "/statuses" + plus; var i={ method: 'GET', headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + at } } }else{ var req={i:at} if (more) { var sid = $("#his-tl .cvo").last().attr("toot-id"); req.maxId=sid; } req.userId=user; var start = "https://" + domain + "/api/users/notes" var i={ method: 'POST', headers: { 'content-type': 'application/json', }, body:JSON.stringify(req) } } fetch(start, i).then(function(response) { return response.json(); }).catch(function(error) { todo(error); console.error(error); }).then(function(json) { if(localStorage.getItem("mode_" + domain)=="misskey"){ var templete = misskeyParse(json, '', acct_id, 'user'); }else{ var templete = parse(json, '', acct_id, 'user'); } if(!json[0]){ templete=lang_details_nodata[lang]+"<br>"; } if (more) { $("#his-tl-contents").append(templete); } else { if(localStorage.getItem("mode_" + domain)!="misskey"){ pinutl(templete,user, acct_id) }else{ $("#his-tl-contents").html(templete); } } jQuery("time.timeago").timeago(); }); } //ピン留めTL function pinutl(before,user, acct_id) { if (!acct_id) { var acct_id = $('#his-data').attr("use-acct"); } var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_"+ acct_id + "_at"); if (user == "--now") { var user = $('#his-data').attr("user-id"); } var plus = "?pinned=1"; var start = "https://" + domain + "/api/v1/accounts/" + user + "/statuses" + plus fetch(start, { method: 'GET', headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + at }, }).then(function(response) { return response.json(); }).catch(function(error) { todo(error); console.error(error); }).then(function(json) { var templete = parse(json, '', acct_id,'user'); if(!json[0]){ templete=""; } $("#his-tl-contents").html(templete+before); jQuery("time.timeago").timeago(); }); } //フォローリスト function flw(user, more, acct_id) { if (!acct_id) { var acct_id = $('#his-data').attr("use-acct"); } var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_"+ acct_id + "_at"); if (user == "--now") { var user = $('#his-data').attr("user-id"); } if(localStorage.getItem("mode_" + domain)=="misskey"){ var req={i:at} if (more) { var sid = $("#his-follow-list .cvo").last().attr("user-id"); req.maxId=sid; } req.userId=user; var start = "https://" + domain + "/api/users/following" var i={ method: 'POST', headers: { 'content-type': 'application/json', }, body:JSON.stringify(req) } }else{ if (more) { var sid = $("#his-follow-list .cvo").last().attr("user-id"); var plus = "?max_id=" + sid; } else { var plus = ""; } var start = "https://" + domain + "/api/v1/accounts/" + user + "/following" + plus var i={ method: 'GET', headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + at } } } fetch(start,i).then(function(response) { return response.json(); }).catch(function(error) { todo(error); console.error(error); }).then(function(json) { if(localStorage.getItem("mode_" + domain)=="misskey"){ var templete = misskeyUserparse(json,'',acct_id); }else{ var templete = userparse(json,'',acct_id); } if(templete==""){ templete=lang_details_nodata[lang]+"<br>"; } if (more) { $("#his-follow-list-contents").append(templete); } else { $("#his-follow-list-contents").html(templete); } }); } //フォロワーリスト function fer(user, more, acct_id) { if (!acct_id) { var acct_id = $('#his-data').attr("use-acct"); } var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_"+ acct_id + "_at"); if (user == "--now") { var user = $('#his-data').attr("user-id"); } if(localStorage.getItem("mode_" + domain)=="misskey"){ var req={i:at} if (more) { var sid = $("#his-follower-list .cvo").last().attr("user-id"); req.maxId=sid; } req.userId=user; var start = "https://" + domain + "/api/users/followers" var i={ method: 'POST', headers: { 'content-type': 'application/json', }, body:JSON.stringify(req) } }else{ if (more) { var sid = $("#his-follower-list .cvo").last().attr("user-id"); var plus = "?max_id=" + sid; } else { var plus = ""; } var start = "https://" + domain + "/api/v1/accounts/" + user + "/followers" + plus var i={ method: 'GET', headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + at } } } fetch(start, i).then(function(response) { return response.json(); }).catch(function(error) { todo(error); console.error(error); }).then(function(json) { if(localStorage.getItem("mode_" + domain)=="misskey"){ var templete = misskeyUserparse(json,'',acct_id); }else{ var templete = userparse(json,'',acct_id); } if(templete==""){ templete=lang_details_nodata[lang]+"<br>"; } if (more) { $("#his-follower-list-contents").append(templete); } else { $("#his-follower-list-contents").html(templete); } }); } //以下自分のみ //お気に入り一覧 function showFav(more, acct_id) { if (!acct_id) { var acct_id = $('#his-data').attr("use-acct"); } var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_"+ acct_id + "_at"); if(localStorage.getItem("mode_" + domain)!="misskey"){ if (more) { var sid = $("#his-fav-list .cvo").last().attr("toot-id"); var plus = "?max_id=" + sid; } else { var plus = ""; } var start = "https://" + domain + "/api/v1/favourites" + plus var i={ method: 'GET', headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + at } } }else{ var req={i:at} if (more) { var sid = $("#his-fav-list .cvo").last().attr("toot-id"); req.maxId=sid; } var start = "https://" + domain + "/api/i/favorites" var i={ method: 'POST', headers: { 'content-type': 'application/json', }, body:JSON.stringify(req) } } fetch(start, i).then(function(response) { return response.json(); }).catch(function(error) { todo(error); console.error(error); }).then(function(json) { if(localStorage.getItem("mode_" + domain)!="misskey"){ var templete = parse(json, '', acct_id,'user'); }else{ var templete = misskeyParse(json, '', acct_id,'user'); } if(!json[0]){ templete=lang_details_nodata[lang]+"<br>"; } if (more) { $("#his-fav-list-contents").append(templete); } else { $("#his-fav-list-contents").html(templete); } jQuery("time.timeago").timeago(); }); } //ミュートリスト function showMut(more, acct_id) { if (!acct_id) { var acct_id = $('#his-data').attr("use-acct"); } var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_"+ acct_id + "_at"); if(localStorage.getItem("mode_" + domain)=="misskey"){ var req={i:at} if (more) { var sid = $("#his-muting-list .cvo").last().attr("user-id"); req.maxId=sid; } var start = "https://" + domain + "/api/mute/list" var i={ method: 'POST', headers: { 'content-type': 'application/json', }, body:JSON.stringify(req) } }else{ if (more) { var sid = $("#his-muting-list .cvo").last().attr("user-id"); var plus = "?max_id=" + sid; } else { var plus = ""; } var start = "https://" + domain + "/api/v1/mutes" + plus var i={ method: 'GET', headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + at } } } fetch(start,i).then(function(response) { return response.json(); }).catch(function(error) { todo(error); console.error(error); }).then(function(json) { if(!json[0]){ templete=lang_details_nodata[lang]+"<br>"; } var templete = userparse(json,'',acct_id); if (more) { $("#his-muting-list-contents").append(templete); } else { $("#his-muting-list-contents").html(templete); } }); } //ブロックリスト function showBlo(more, acct_id) { if (!acct_id) { var acct_id = $('#his-data').attr("use-acct"); } var domain = localStorage.getItem("domain_" + acct_id); if(localStorage.getItem("mode_" + domain)=="misskey"){ $("#his-blocking-list-contents").html(lang_hisdata_notonmisskey[lang]+"<br>"); return false; } var at = localStorage.getItem("acct_"+ acct_id + "_at"); if (more) { var sid = $("#his-blocking-list .cvo").last().attr("user-id"); var plus = "?max_id=" + sid; } else { var plus = ""; } var start = "https://" + domain + "/api/v1/blocks" + plus fetch(start, { method: 'GET', headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + at }, }).then(function(response) { return response.json(); }).catch(function(error) { todo(error); console.error(error); }).then(function(json) { if(!json[0]){ templete=lang_details_nodata[lang]+"<br>"; } var templete = userparse(json,'',acct_id); if (more) { $("#his-blocking-list-contents").append(templete); } else { $("#his-blocking-list-contents").html(templete); } }); } //フォロリクリスト function showReq(more, acct_id) { if (!acct_id) { var acct_id = $('#his-data').attr("use-acct"); } var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_"+ acct_id + "_at"); if(localStorage.getItem("mode_" + domain)=="misskey"){ var req={i:at} if (more) { var sid = $("#his-request-list .cvo").last().attr("user-id"); req.maxId=sid; } var start = "https://" + domain + "/following/requests/list" var i={ method: 'POST', headers: { 'content-type': 'application/json', }, body:JSON.stringify(req) } }else{ if (more) { var sid = $("#his-request-list .cvo").last().attr("user-id"); var plus = "?max_id=" + sid; } else { var plus = ""; } var start = "https://" + domain + "/api/v1/follow_requests" + plus var i={ method: 'GET', headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + at } } } fetch(start,i).then(function(response) { return response.json(); }).catch(function(error) { todo(error); console.error(error); }).then(function(json) { if(localStorage.getItem("mode_" + domain)=="misskey"){ var templete = userparse(json, 'true',acct_id); }else{ var templete = misskeyUserparse(json, 'true',acct_id); } if(!json[0]){ templete=lang_details_nodata[lang]+"<br>"; } if (more) { $("#his-request-list-contents").append(templete); } else { $("#his-request-list-contents").html(templete); } }); } //ドメインブロックリスト function showDom(more, acct_id) { if (!acct_id) { var acct_id = $('#his-data').attr("use-acct"); } var domain = localStorage.getItem("domain_" + acct_id); if(localStorage.getItem("mode_" + domain)=="misskey"){ $("#his-domain-list-contents").html(lang_hisdata_notonmisskey[lang]+"<br>"); return false; } var at = localStorage.getItem("acct_"+ acct_id + "_at"); if (more) { var sid = $("#his-domain-list .cvo").last().attr("user-id"); var plus = "?max_id=" + sid; } else { var plus = ""; } var start = "https://" + domain + "/api/v1/domain_blocks" + plus fetch(start, { method: 'GET', headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + at }, //body: JSON.stringify({}) }).then(function(response) { return response.json(); }).catch(function(error) { todo(error); console.error(error); }).then(function(json) { var templete = ""; if(!json[0]){ templete=lang_details_nodata[lang]+"<br>"; } Object.keys(json).forEach(function(key) { var domain = json[key]; templete = templete + domain + '<i class="material-icons gray pointer" onclick="domainblock(\'' + domain + '\',\'DELETE\')">cancel</i>' + '<div class="divider"></div>'; }); if (more) { $("#his-domain-list-contents").append(templete); } else { $("#his-domain-list-contents").html(templete); } }); } //フォローレコメンデーションリスト function showFrl(more, acct_id) { if (!acct_id) { var acct_id = $('#his-data').attr("use-acct"); } var domain = localStorage.getItem("domain_" + acct_id); if(localStorage.getItem("mode_" + domain)=="misskey"){ $("#his-follow-recom-contents").html(lang_hisdata_notonmisskey[lang]+"<br>"); return false; } var at = localStorage.getItem("acct_"+ acct_id + "_at"); if (more) { var sid = $("#his-follow-recom-list .cvo").last().attr("user-id"); var plus = "?max_id=" + sid; } else { var plus = ""; } var start = "https://" + domain + "/api/v1/suggestions" + plus fetch(start, { method: 'GET', headers: { 'content-type': 'application/json', 'Authorization': 'Bearer ' + at }, }).then(function(response) { return response.json(); }).catch(function(error) { $("#his-follow-recom-contents").html(lang_details_nodata[lang]+"("+lang_hisdata_frcreq[lang]+")<br>"); console.error(error); }).then(function(json) { console.log(json); if(!json[0]){ console.log("No data"); templete=lang_details_nodata[lang]+"("+lang_hisdata_frcwarn[lang]+")<br>"; }else{ var templete = userparse(json,'',acct_id); } if (more) { $("#his-follow-recom-contents").append(templete); } else { $("#his-follow-recom-contents").html(templete); } }); } //ユーザーマッチングリスト function showMat() { $("#his-matching-list-contents").html(lang_hisdata_taketime[lang]); var full=$("#his-acct").attr("fullname"); var acct_id=$("#his-data").attr("use-acct"); full=full.split("@"); var start = "https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-filtered-api.cgi?"+full[1]+"+" + full[0]; console.log(start); fetch(start, { method: 'GET', headers: { 'content-type': 'application/json' }, //body: JSON.stringify({}) }).then(function(response) { return response.json(); }).catch(function(error) { todo(error); console.error(error); }).then(function(json) { console.log(json); var templete=""; Object.keys(json).forEach(function(key) { var user = json[key]; templete = templete + '<div class="" style="padding-top:5px;">' + '<div style="padding:0; margin:0; width:400px; max-width:100%; display:flex; align-items:flex-end;">' + '<div style="flex-basis:40px;"><a onclick="udgEx(\'' + user.user + '\',' + acct_id + ');" user="' + user.user + '" class="udg">' + '<img src="' + user.avatar + '" width="40" class="prof-img" user="' + user.user + '"></a></div>' + '<div style="flex-grow:3; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"><big>' + escapeHTML(user.screen_name) + '</big></div>' + '<div class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"> @' + user.user + '@'+user.host+'</div>' + '</div>' + '<div class="divider"></div>' + '</div>' + '</div>'; }); $("#his-matching-list").css("height",$("#his-float-data").height()-$("#his-basic-prof").height()-$("#his-des").height()-$("#his-plus-action").height()+"px"); $("#his-matching-list-contents").html(templete); }); }