//ユーザーデータ表示 localStorage.removeItem("history") //コード受信 if (location.search) { var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/) var mode = m[1] var codex = m[2] if (mode == "user") { udgEx(codex, "main") } } function udgEx(user, acct_id) { if (user == "selector") { user = $("#his-acct").attr("fullname") } if (acct_id == "selector") { acct_id = $("#user-acct-sel").val() } if (acct_id == "main") { acct_id = localStorage.getItem("main") } console.log("Get user data of " + user) var domain = localStorage.getItem("domain_" + acct_id) if (localStorage.getItem("mode_" + domain) == "misskey") { return false } var at = localStorage.getItem("acct_" + acct_id + "_at") var start = "https://" + domain + "/api/v2/search?resolve=true&q=" + encodeURIComponent(user) 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.accounts[0]) { var id = json.accounts[0].id udg(id, acct_id) } else { postMessage(["openUrl", user], "*") } }) return true } function udg(user, acct_id) { reset() if (!user) { user = localStorage.getItem("user-id_" + acct_id) } todo("User Data Loading...") var domain = localStorage.getItem("domain_" + acct_id) if (localStorage.getItem("mode_" + domain) == "misskey") { misskeyUdg(user, acct_id) return } var at = localStorage.getItem("acct_" + acct_id + "_at") var start = "https://" + domain + "/api/v1/accounts/" + user 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 (!localStorage.getItem("history")) { $("#his-history-btn").prop("disabled", true) } else { $("#his-history-btn").prop("disabled", false) $("#his-data").attr("history", localStorage.getItem("history")) } //moved設定時 if (json.moved) { M.toast({ html: lang.lang_showontl_movetxt + '", displayLength: 4000 }) } $("#his-data").modal("open") $("#his-data").attr("user-id", user) $("#his-data").attr("use-acct", acct_id) if (json.username != json.acct) { //Remote $("#his-data").attr("remote", "true") var fullname = json.acct } else { $("#his-data").attr("remote", "false") var fullname = json.acct + "@" + domain } utlShow(json.id, "", acct_id) flw(json.id, "", acct_id) fer(json.id, "", acct_id) var dis_name = escapeHTML(json.display_name) dis_name = twemoji.parse(dis_name) var note = json.note if (json.emojis) { var actemojick = json.emojis[0] } else { var actemojick = false } //絵文字があれば if (actemojick) { Object.keys(json.emojis).forEach(function(key5) { var emoji = json.emojis[key5] var shortcode = emoji.shortcode var emoji_url = '' var regExp = new RegExp(":" + shortcode + ":", "g") dis_name = dis_name.replace(regExp, emoji_url) note = note.replace(regExp, emoji_url) }) } //noteの解析 //var tags = '#$1'; //var mens = '@$1'; //note=note.replace(/#(\S+)/gi, tags) //note=note.replace(/\s@([a-zA-Z_0-9@.-]+)/gi, mens) $("#his-name").html(dis_name) $("#his-acct").text(json.acct) $("#his-acct").attr("fullname", fullname) $("#his-prof").attr("src", json.avatar) $("#his-data").css("background-image", "url(" + json.header + ")") $("#his-sta").text(json.statuses_count) $("#his-follow").text(json.following_count) var flerc = json.followers_count if (flerc < 0) { flerc = "-" } $("#his-follower").text(flerc) $("#his-since").text(crat(json.created_at)) $("#his-openin").attr("data-href", json.url) if (json.fields) { var table = "" if (json.fields.length > 0) { $("#his-des").css("max-height", "250px") table = '' for (var i = 0; i < json.fields.length; i++) { var fname = json.fields[i].name var fval = json.fields[i].value if (json.fields[i].verified_at) { var when = lang.lang_showontl_verified + ":" + crat(json.fields[i].verified_at) var color = "rgba(121,189,154,.25);" } else { var when = "" var color = "inherit" } table = table + '" } table = table + "
' + escapeHTML(fname) + '' + fval + "
" $("#his-des").html(twemoji.parse(note)) } else { $("#his-des").css("max-height", "400px") } $("#his-table").html(twemoji.parse(table)) } else { $("#his-des").css("max-height", "400px") } $("#his-des").html(twemoji.parse(note)) if (json.bot) { $("#his-bot").html(lang.lang_showontl_botacct) } $("#his-des").attr("data-acct", acct_id) $("#his-data").css("background-size", "cover") $("#his-float-timeline").css("height", $("#his-data-show").height() + "px") localStorage.setItem("history", user) //自分の時 if (json.acct == localStorage.getItem("user_" + acct_id)) { showFav("", acct_id) showBlo("", acct_id) showMut("", acct_id) showDom("", acct_id) showReq("", acct_id) showFrl("", acct_id) $("#his-name-val").val(json.display_name) if (json.fields.length > 0) { if (json.fields[0]) { $("#his-f1-name").val(json.fields[0].name) $("#his-f1-val").val($.strip_tags(json.fields[0].value)) } if (json.fields[1]) { $("#his-f2-name").val(json.fields[1].name) $("#his-f2-val").val($.strip_tags(json.fields[1].value)) } if (json.fields[2]) { $("#his-f3-name").val(json.fields[2].name) $("#his-f3-val").val($.strip_tags(json.fields[2].value)) } if (json.fields[3]) { $("#his-f4-name").val(json.fields[3].name) $("#his-f4-val").val($.strip_tags(json.fields[3].value)) } } var des = json.note des = des.replace(/
/g, "\n") des = $.strip_tags(des) $("#his-des-val").val(des) $("#his-follow-btn").hide() $("#his-block-btn").hide() $("#his-mute-btn").hide() $("#his-notf-btn").hide() $("#his-domain-btn").hide() $("#his-emp-btn").hide() $(".only-my-data").show() $(".only-his-data").hide() if (localStorage.getItem("main") == acct_id) { $("#his-main-acct").hide() } } else { relations(user, acct_id) $(".only-my-data").hide() $(".only-his-data").show() } todc() if(json.locked) { $('#his-data').addClass('locked') } else { $('#his-data').removeClass('locked') } //外部データ取得(死かもしれないので) udAdd(acct_id, user, json.url) }) } function misskeyUdg(user, acct_id) { reset() if (!user) { user = localStorage.getItem("user-id_" + acct_id) } todo("User Data Loading...") var domain = localStorage.getItem("domain_" + acct_id) if (localStorage.getItem("mode_" + domain) != "misskey") { udg(user, acct_id) return } var at = localStorage.getItem("acct_" + acct_id + "_at") var start = "https://" + domain + "/api/users/show" fetch(start, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ i: at, userId: user }) }) .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 (!localStorage.getItem("history")) { $("#his-history-btn").prop("disabled", true) } else { $("#his-history-btn").prop("disabled", false) $("#his-data").attr("history", localStorage.getItem("history")) } $("#his-data").modal("open") $("#his-data").attr("user-id", user) $("#his-data").attr("use-acct", acct_id) if (json.host) { //Remote $("#his-data").attr("remote", "false") var fullname = json.username + "@" + json.host } else { $("#his-data").attr("remote", "false") var fullname = json.acct + "@" + domain } utlShow(json.id, "", acct_id) flw(json.id, "", acct_id) fer(json.id, "", acct_id) if (json.name) { var dis_name = escapeHTML(json.name) dis_name = twemoji.parse(dis_name) } else { var dis_name = json.name } $("#his-name").html(dis_name) $("#his-acct").text(json.username) $("#his-acct").attr("fullname", fullname) $("#his-prof").attr("src", json.avatarUrl) $("#his-data").css("background-image", "url(" + json.bannerUrl + ")") $("#his-sta").text(json.notesCount) $("#his-follow").text(json.followingCount) $("#his-follower").text(json.followersCount) $("#his-since").text(crat(json.createdAt)) var note = escapeHTML(json.description) $("#his-des").html(twemoji.parse(note)) if (json.isCat) { $("#his-bot").html("Cat" + twemoji.parse("😺")) } $("#his-data").css("background-size", "cover") localStorage.setItem("history", user) //自分の時 if (json.username == localStorage.getItem("user_" + acct_id) && !json.host) { //showFav('', acct_id); //showMut('', acct_id); //showReq('', acct_id); showFrl("", acct_id) $("#his-name-val").val(json.name) var des = json.note des = nl2br(des) des = $.strip_tags(des) $("#his-des-val").val(des) $("#his-follow-btn").hide() $("#his-block-btn").hide() $("#his-mute-btn").hide() $("#his-notf-btn").hide() $("#his-domain-btn").hide() $("#his-emp-btn").hide() $(".only-my-data").show() $(".only-his-data").hide() if (localStorage.getItem("main") == acct_id) { $("#his-main-acct").hide() } } else { if (json.isFollowing) { //自分がフォローしている $("#his-data").addClass("following") $("#his-follow-btn-text").text(lang.lang_status_unfollow) hisList(user, acct_id) } else { $("#his-follow-btn-text").text(lang.lang_status_follow) } if (json.isFollowed) { //フォローされてる $("#his-relation").text(lang.lang_showontl_followed) } $("#his-block-btn").hide() if (json.isMuted) { $("#his-data").addClass("muting") $("#his-mute-btn-text").text(lang.lang_status_unmute) } else { $("#his-mute-btn-text").text(lang.lang_status_mute) } $(".only-my-data").hide() $(".only-his-data").show() } todc() }) } //一つ前のユーザーデータ表示 function historyShow() { var acct_id = $("#his-data").attr("use-acct") var user = $("#his-data").attr("history") udg(user, acct_id, "true") } //選択アカウントのプロフ function profShow() { var acct_id = $("#post-acct-sel").val() var user = localStorage.getItem("user-id_" + acct_id) udg(user, acct_id) hide() } //FF関係取得 function relations(user, acct_id) { var domain = localStorage.getItem("domain_" + acct_id) var at = localStorage.getItem("acct_" + acct_id + "_at") var start = "https://" + domain + "/api/v1/accounts/relationships?id=" + user 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) { var json = json[0] if(json.requested) { //フォロリク中 $('#his-data').addClass('following') $("#his-follow-btn-text").text(lang.lang_status_requesting) } if (json.following) { //自分がフォローしている $("#his-data").addClass("following") $("#his-follow-btn-text").text(lang.lang_status_unfollow) hisList(user, acct_id) } else { $("#his-follow-btn-text").text(lang.lang_status_follow) } if (json.followed_by) { //フォローされてる $("#his-relation").text(lang.lang_showontl_followed) } if (json.blocking) { $("#his-data").addClass("blocking") $("#his-block-btn-text").text(lang.lang_status_unblock) } else { $("#his-block-btn-text").text(lang.lang_status_block) } if (json.muting) { $("#his-data").addClass("muting") $("#his-mute-btn-text").text(lang.lang_status_unmute) } else { $("#his-mute-btn-text").text(lang.lang_status_mute) } if (json.muting_notifications) { $("#his-data").addClass("mutingNotf") $("#his-notf-btn-text").text(lang.lang_showontl_notf + lang.lang_status_unmute) } else { $("#his-notf-btn-text").text(lang.lang_showontl_notf + lang.lang_status_mute) } if (json.domain_blocking) { $("#his-data").addClass("blockingDom") $("#his-domain-btn-text").text(lang.lang_showontl_domain + lang.lang_status_unblock) } else { $("#his-domain-btn-text").text(lang.lang_showontl_domain + lang.lang_status_block) } //Endorsed if (json.endorsed) { $("#his-end-btn").addClass("endorsed") $("#his-end-btn-text").text(lang.lang_status_unendorse) } else { $("#his-end-btn").removeClass("endorsed") $("#his-end-btn-text").text(lang.lang_status_endorse) } //Blocked if (json.blocked_by) { $("#my-data-nav .btn").addClass("disabled") $(".his-var-content").hide() $("#his-float-blocked").show() $("#his-follow-btn").hide() } }) } function profbrws() { var url = $("#his-openin").attr("data-href") postMessage(["openUrl", url], "*") } function setMain() { var acct_id = $("#his-data").attr("use-acct") localStorage.setItem("main", acct_id) multiSelector(true) M.toast({ html: lang.lang_manager_mainAcct, displayLength: 3000 }) } //オールリセット function hisclose() { $("#his-data").modal("close") reset() $("#his-data").attr("history", "") localStorage.removeItem("history") } function reset() { $(".his-var-content:eq(0)").show() $(".his-var-content:gt(0)").hide() $("#my-data-nav .btn").removeClass("disabled") $(".active-back").removeClass("active-back") $(".column-first").addClass("active-back") $("#his-name").text("Loading") $("#his-acct").text("") $("#his-prof").attr("src", "../../img/loading.svg") $("#his-data").css("background-image", "url(../../img/loading.svg)") $("#his-sta").text("") $("#his-follow").text("") $("#his-follower").text("") $("#his-des").html("") $("#his-data").css("background-size", "cover") $("#his-since").text("") $("#his-data").removeClass("following") $("#his-data").removeClass("muting") $("#his-data").removeClass("blocking") $("#his-data").removeClass("mutingNotf") $("#his-data").removeClass("blockingDom") $("#his-end-btn").removeClass("endorsed") $("#his-des").css("max-height", "250px") $("#his-bot").html("") $("#his-follow-btn").show() $("#his-block-btn").show() $("#his-mute-btn").show() $("#his-notf-btn").show() $("#his-domain-btn").show() $("#his-emp-btn").show() $("#his-follow-btn-text").text(lang.lang_status_follow) $("#his-mute-btn-text").text(lang.lang_status_mute) $("#his-block-btn-text").text(lang.lang_status_block) $("#his-notf-btn").text(lang.lang_showontl_notf + lang.lang_status_mute) $("#his-domain-btn").text(lang.lang_showontl_domain + lang.lang_status_block) $("#his-relation").text("") $(".cont-series").html("") $("#domainblock").val("") $("#his-lists-a").html(lang.lang_showontl_listwarn) $("#his-lists-b").html("") $("#his-name-val").val("") $("#his-des-val").val("") $("#his-f1-name").val("") $("#his-f1-val").val("") $("#his-f2-name").val("") $("#his-f2-val").val("") $("#his-f3-name").val("") $("#his-f3-val").val("") $("#his-f4-name").val("") $("#his-f4-val").val("") $("#his-endorse").html("") $("#his-openin").attr("data-href", "") $("#his-float-timeline").show() $("#his-float-blocked").hide() $("#his-main-acct").show() $("#his-proof-prof").html("") $('#his-data').removeClass('locked') $('#his-data').removeClass('requesting') } $("#my-data-nav .anc-link").on("click", function() { var target = $(this).attr("go") if (target) { const title = $(this).html() $('#his-data-title').html(title) $("#my-data-nav .anc-link").removeClass("active-back") $(this).addClass("active-back") $(target).show() $(".his-var-content:not(" + target + ")").hide() } })