//Renpost function renote(id, acct_id, remote) { if ($("#pub_" + id).hasClass("rted")) { return false; } var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_" + acct_id + "_at"); var start = "https://" + domain + "/api/notes/create"; if (localStorage.getItem("mode_" + domain) != "misskey") { return false; } var httpreq = new XMLHttpRequest(); httpreq.open('POST', start, true); httpreq.setRequestHeader('Content-Type', 'application/json'); httpreq.responseType = "json"; httpreq.send(JSON.stringify({ i: at, renoteId: id })); httpreq.onreadystatechange = function () { if (httpreq.readyState === 4) { var json = httpreq.response; if(this.status!==200){ setLog(start, this.status, json); } console.log(["Success: renote", json]); $("[toot-id=" + id + "]").addClass("rted"); $(".rt_" + id).toggleClass("teal-text"); } } } //Renote function renoteqt(id, acct_id) { localStorage.setItem("nohide", true); show(); $("#reply").val("renote_" + id); $("#rec").text("Renote"); $("#post-acct-sel").val(acct_id); $("#post-acct-sel").prop("disabled", true); $('select').formSelect(); $("#textarea").attr("placeholder", lang.lang_misskeyparse_qt); $("#textarea").focus(); } //Reply function misskeyreply(id, acct_id) { localStorage.setItem("nohide", true); show(); $("#reply").val(id); $("#rec").text("Renote"); $("#post-acct-sel").val(acct_id); $("#post-acct-sel").prop("disabled", true); $('select').formSelect(); $("#textarea").attr("placeholder", lang.lang_misskeyparse_qt); $("#textarea").focus(); } //Reaction function reactiontoggle(id, acct_id, tlid) { var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_" + acct_id + "_at"); var start = "https://" + domain + "/api/notes/show"; if (localStorage.getItem("mode_" + domain) != "misskey") { return false; } var httpreq = new XMLHttpRequest(); httpreq.open('POST', start, true); httpreq.setRequestHeader('Content-Type', 'application/json'); httpreq.responseType = "json"; httpreq.send(JSON.stringify({ i: at, noteId: id })); httpreq.onreadystatechange = function () { if (httpreq.readyState === 4) { var json = httpreq.response; if(this.status!==200){ setLog(start, this.status, json); } console.log(["Success: reaction", json]); if (json.reactions) { var reactions = ["like", "love", "laugh", "hmm", "surprise", "congrats", "angry", "confused", "pudding", "rip"]; for (var i = 0; i < reactions.length; i++) { if (json.reactions[reactions[i]]) { $("#pub_" + id + " .re-" + reactions[i] + "ct").text(json.reactions[reactions[i]]) $("#pub_" + id + " .re-" + reactions[i]).removeClass("hide") } else { $("#pub_" + id + " .re-" + reactions[i] + "ct").text(0) if ($("#pub_" + id + " .reactions").hasClass("fullreact")) { $("#pub_" + id + " .re-" + reactions[i]).addClass("hide") } else { $("#pub_" + id + " .re-" + reactions[i]).removeClass("hide") } $("#pub_" + id + " .re-" + reactions[i] + "ct").text(json.reactions[reactions[i]]) } } $("#pub_" + id + " .reactions").removeClass("hide"); $("#pub_" + id + " .reactions").toggleClass("fullreact") } else { if ($("#pub_" + id + " .reactions").hasClass("fullreact")) { $("#pub_" + id + " .reactions").addClass("hide") $("#pub_" + id + " .reactions").removeClass("fullreact") } else { $("#pub_" + id + " .reactions").removeClass("hide"); $("#pub_" + id + " .reaction").removeClass("hide"); $("#pub_" + id + " .reactions").addClass("fullreact"); } } } } $("#pub_" + id + " .freeReact").toggleClass("hide"); } //reactioncustom function reactioncustom(acct_id, id) { $("#reply").val(id); $("#unreact").hide(); $("#addreact").removeClass("hide"); $("#post-acct-sel").val(acct_id); $('select').formSelect(); localStorage.setItem("nohide", true); show() emojiToggle(true) $("#left-side").hide(); $("#default-emoji").hide(); } function reactRefresh(acct_id, id) { var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_" + acct_id + "_at"); var start = "https://" + domain + "/api/notes/show"; var req = {}; req.i = at; req.noteId = id; var i = { method: "POST", body: JSON.stringify(req), } fetch(start, i, ).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); console.error(error); }).then(function (json) { if (!json) { return false; } var poll = ""; if (json.error) { $("[toot-id=" + id + "]").hide(); $("[toot-id=" + id + "]").remove(); } else { reactRefreshCore(json) } }); } function reactRefreshCore(json) { var id = json.id; if (json.reactions) { $("#pub_" + id + " .reactions").removeClass("hide") var regExp = new RegExp(":", "g"); Object.keys(json.reactions).forEach(function (keye) { keyeClass = keye.replace(regExp, ''); if (json.reactions[keye]) { $("#pub_" + id + " .re-" + keyeClass + "ct").text(json.reactions[keye]) $("#pub_" + id + " .re-" + keyeClass).removeClass("hide") } else { $("#pub_" + id + " .re-" + keyeClass + "ct").text(0) if ($("#pub_" + id + " .reactions").hasClass("fullreact")) { $("#pub_" + id + " .re-" + keyeClass).addClass("hide") } $("#pub_" + id + " .re-" + keyeClass + "ct").text(json.reactions[keye]) } }); } } function emojiReaction(emoji) { var acct_id = $("#post-acct-sel").val(); var id = $("#reply").val(); reaction(emoji, id, acct_id, null) clear(); hide(); } function reaction(mode, id, acct_id, tlid) { var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_" + acct_id + "_at"); if ($(".fav_" + id).hasClass("yellow-text")) { var flag = "delete"; } else { var flag = "create"; } var start = "https://" + domain + "/api/notes/reactions/" + flag; if (localStorage.getItem("mode_" + domain) != "misskey") { return false; } var httpreq = new XMLHttpRequest(); httpreq.open('POST', start, true); httpreq.setRequestHeader('Content-Type', 'application/json'); httpreq.responseType = "json"; httpreq.send(JSON.stringify({ i: at, noteId: id, reaction: mode })); httpreq.onreadystatechange = function () { if (httpreq.readyState === 4) { if(this.status!==200){ setLog(start, this.status, this.response); } $(".fav_" + id).toggleClass("yellow-text"); } } } //Vote function vote(acct_id, id, to) { var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_" + acct_id + "_at"); var start = "https://" + domain + "/api/notes/polls/vote"; if (localStorage.getItem("mode_" + domain) != "misskey") { return false; } var httpreq = new XMLHttpRequest(); httpreq.open('POST', start, true); httpreq.setRequestHeader('Content-Type', 'application/json'); httpreq.responseType = "json"; httpreq.send(JSON.stringify({ i: at, noteId: id, choice: to })); httpreq.onreadystatechange = function () { voterefresh(acct_id, id) } } function voterefresh(acct_id, id) { var httpreqd = new XMLHttpRequest(); var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_" + acct_id + "_at"); var start = "https://" + domain + "/api/notes/show"; httpreqd.open('POST', start, true); httpreqd.setRequestHeader('Content-Type', 'application/json'); httpreqd.responseType = 'json'; httpreqd.send(JSON.stringify({ i: at, noteId: id })); httpreqd.onreadystatechange = function () { if (httpreqd.readyState == 4) { var json = httpreqd.response; if(this.status!==200){ setLog(start, this.status, json); } if (!json) { return false; } var poll = ""; if (json.poll) { var choices = json.poll.choices; Object.keys(choices).forEach(function (keyc) { var choice = choices[keyc]; if (choice.isVoted) { var myvote = twemoji.parse("✅"); } else { var myvote = ""; } poll = poll + '