//アンケートのトグル function pollToggle() { if ($("#poll").hasClass("hide")) { $("#right-side").show() $("#poll").removeClass("hide") } else { $("#right-side").hide() $("#emoji").addClass("hide") $("#poll").addClass("hide") } } function pollProviderCk() { $(".poll-provider").addClass("hide"); $("#" + $("#poll-sel").val()).removeClass("hide"); } /* function pollAddtime(num){ var last=$("#expires_in").val(); last=last*1-(num*-1); $("#expires_in").val(last); pollCalc(); } */ function pollCalc() { var days = $("#days_poll").val(); var hrs = $("#hours_poll").val(); var mins = $("#mins_poll").val(); console.log("Poll calc:" + days * 86400 + hrs * 3600 + mins * 60) return days * 86400 + hrs * 3600 + mins * 60; } //Vote function voteSelMastodon(acct_id, id, to, mul) { if ($('.vote_' + acct_id + '_' + id + '_' + to).hasClass("sel")) { $('.vote_' + acct_id + '_' + id + '_' + to).css("background-color", "transparent") $('.vote_' + acct_id + '_' + id + '_' + to).removeClass("sel"); } else { if (!mul) { $('.vote_' + acct_id + '_' + id + ' div').each(function (i, elem) { if (i == to) { $(this).css("background-color", "var(--emphasized)"); $(this).addClass("sel"); } else { $(this).css("background-color", "transparent") $(this).removeClass("sel"); } }); } else { $('.vote_' + acct_id + '_' + id + '_' + to).css("background-color", "var(--emphasized)") $('.vote_' + acct_id + '_' + id + '_' + to).addClass("sel"); } } } function voteMastodon(acct_id, id) { var choice = []; $('.vote_' + acct_id + '_' + id + ' div').each(function (i, elem) { if ($(this).hasClass("sel")) { choice.push(i + ""); } }); var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_" + acct_id + "_at"); var start = "https://" + domain + "/api/v1/polls/" + id + "/votes"; if (localStorage.getItem("mode_" + domain) == "misskey") { return false; } 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({ choices: choice })); httpreq.onreadystatechange = function () { voteMastodonrefresh(acct_id, id) } } function showResult(acct_id, id) { $('.vote_' + acct_id + '_' + id + '_result').toggleClass("hide") } function voteMastodonrefresh(acct_id, id) { var datetype = localStorage.getItem("datetype"); if (!datetype) { datetype = "absolute"; } var httpreqd = new XMLHttpRequest(); var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_" + acct_id + "_at"); var start = "https://" + domain + "/api/v1/polls/" + id; httpreqd.open('GET', 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; console.log(["Refresh vote", json]); if (!json) { return false; } var poll = ""; var choices = json.options; var myvote = lang.lang_parse_voted; var result_hide = ""; Object.keys(choices).forEach(function (keyc) { var choice = choices[keyc]; if (!json.voted) { votesel = 'voteSelMastodon(\'' + acct_id + '\',\'' + json.id + '\',' + keyc + ',' + json.multiple + ')'; } poll = poll + '
' + escapeHTML(choice.title) + '(' + choice.votes_count + ')
'; }); poll = poll + myvote + '' + date(json.expires_at, datetype) + ''; $('.vote_' + acct_id + '_' + json.id).html(poll) } } }