thedesk/app/js/post/post.js

272 lines
7.0 KiB
JavaScript
Raw Normal View History

2019-05-19 17:39:30 +10:00
/*投稿系*/
2018-01-28 23:22:43 +11:00
//投稿
2019-05-19 17:39:30 +10:00
function sec() {
var mode = localStorage.getItem("sec");
2018-09-17 21:55:00 +10:00
var acct_id = $("#post-acct-sel").val();
var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
if (~domain.indexOf("kirishima.cloud") >= 0 && mode == "local") {
mode = "unlisted";
2018-09-17 21:55:00 +10:00
}
2019-05-19 17:39:30 +10:00
post(null, mode);
2018-09-17 21:55:00 +10:00
}
2019-05-19 17:39:30 +10:00
function post(mode, postvis) {
if ($("#toot-post-btn").prop("disabled")) {
2019-03-08 05:19:26 +11:00
return false;
2018-05-20 16:17:10 +10:00
}
2018-01-28 23:22:43 +11:00
var str = $("#textarea").val();
var acct_id = $("#post-acct-sel").val();
localStorage.setItem("last-use", acct_id);
var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
if (!localStorage.getItem("cw_sentence")) {
var cw_sent = 500;
} else {
var cw_sent = localStorage.getItem("cw_sentence");
}
if (!localStorage.getItem("cw_letters")) {
var cw_ltres = 500;
} else {
var cw_ltres = localStorage.getItem("cw_letters");
}
if (domain != "kirishima.cloud") {
if (mode != "pass" && !$("#cw").hasClass("cw-avail") && (str.length > cw_sent || (str.split("\n").length - 1) > cw_ltres)) {
var plus = str.replace(/\n/g, "").slice(0, 10) + "...";
const options = {
type: 'info',
title: lang.lang_post_cwtitle,
message: lang.lang_post_cwtxt + plus,
buttons: [lang.lang_post_btn1, lang.lang_post_btn2, lang.lang_post_btn3]
2018-08-23 03:29:39 +10:00
}
2019-06-15 02:15:45 +10:00
postMessage(["dialogCW", options], "*")
2019-05-19 17:39:30 +10:00
return false;
}
2018-08-23 03:29:39 +10:00
}
2019-05-19 17:39:30 +10:00
if (localStorage.getItem("mode_" + domain) == "misskey") {
2018-07-30 21:03:49 +10:00
misskeyPost();
return;
}
2018-09-19 02:41:48 +10:00
$(".toot-btn-group").prop("disabled", true);
2018-06-18 00:26:45 +10:00
todo("Posting");
2019-05-19 17:39:30 +10:00
var at = localStorage.getItem("acct_" + acct_id + "_at");
2018-01-28 23:22:43 +11:00
var start = "https://" + domain + "/api/v1/statuses";
var reply = $("#reply").val();
2019-05-19 17:39:30 +10:00
if (str.indexOf(localStorage.getItem("stable")) == -1) {
str + " #" + localStorage.getItem("stable");
2019-03-13 02:51:07 +11:00
}
2019-05-19 17:39:30 +10:00
var toot = {
2018-03-20 15:55:25 +11:00
status: str
}
2019-05-19 17:39:30 +10:00
if (reply) {
toot.in_reply_to_id = reply
2018-03-20 15:55:25 +11:00
}
2018-01-28 23:22:43 +11:00
var media = $("#media").val();
2019-05-19 17:39:30 +10:00
if (media) {
toot.media_ids = media.split(",");
2018-03-20 15:55:25 +11:00
}
2018-01-28 23:22:43 +11:00
if ($("#nsfw").hasClass("nsfw-avail")) {
var nsfw = "true";
2019-05-19 17:39:30 +10:00
toot.sensitive = nsfw;
2018-01-28 23:22:43 +11:00
} else {
var nsfw = "false";
}
2019-05-19 17:39:30 +10:00
if (postvis) {
2018-09-17 21:55:00 +10:00
var vis = postvis;
2019-05-19 17:39:30 +10:00
} else {
2018-09-17 21:55:00 +10:00
var vis = $("#vis").text();
}
2019-05-19 17:39:30 +10:00
if (vis != "inherit" && vis != "local") {
toot.visibility = vis;
} else if (vis == "local") {
toot.status = str + "👁️";
2018-03-20 15:55:25 +11:00
}
2018-01-28 23:22:43 +11:00
if ($("#cw").hasClass("cw-avail")) {
var spo = $("#cw-text").val();
2018-03-14 05:31:31 +11:00
cw();
2019-05-19 17:39:30 +10:00
toot.spoiler_text = spo;
2018-01-28 23:22:43 +11:00
} else {
var spo = "";
}
2019-01-22 03:25:40 +11:00
if ($("#sch-box").hasClass("sch-avail")) {
2019-05-19 17:39:30 +10:00
var scheduled = formattimeutc(new Date(Date.parse($("#sch-date").val())))
console.log("This toot will be posted at:" + scheduled)
2019-01-22 03:25:40 +11:00
schedule();
2019-05-19 17:39:30 +10:00
toot.scheduled_at = scheduled;
2019-01-22 03:25:40 +11:00
} else {
var scheduled = "";
}
2019-05-19 17:39:30 +10:00
if ($("#poll-sel").val() == "mastodon-poll") {
var options = [];
$(".mastodon-choice").map(function () {
var choice = $(this).val();
if (choice != "") {
2019-03-06 19:08:48 +11:00
options.push(choice);
}
});
2019-05-19 17:39:30 +10:00
if ($("#poll-multiple:checked").val() == "1") {
var mul = true;
} else {
var mul = false;
2019-03-06 19:08:48 +11:00
}
2019-05-19 17:39:30 +10:00
if ($("#poll-until:checked").val() == "1") {
var htt = true;
} else {
var htt = false;
2019-03-06 22:56:39 +11:00
}
2019-05-19 17:39:30 +10:00
var exin = pollCalc();
if (!exin) {
2019-03-06 19:08:48 +11:00
todc("Error: Poll expires_in param")
}
2019-05-19 17:39:30 +10:00
toot.poll = {
2019-03-06 19:08:48 +11:00
options: options,
expires_in: exin,
2019-03-06 22:56:39 +11:00
multiple: mul,
hide_totals: htt
2019-03-06 19:08:48 +11:00
}
}
2019-05-19 16:17:05 +10:00
console.table(toot);
2018-04-17 03:10:35 +10:00
var httpreq = new XMLHttpRequest();
httpreq.open('POST', start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
2019-03-08 05:19:26 +11:00
httpreq.responseType = "json";
2018-04-17 03:10:35 +10:00
httpreq.send(JSON.stringify(toot));
2019-05-19 17:39:30 +10:00
httpreq.onreadystatechange = function () {
2019-03-08 05:19:26 +11:00
if (httpreq.readyState === 4) {
2018-04-17 03:10:35 +10:00
var json = httpreq.response;
var box = localStorage.getItem("box");
2018-08-11 01:58:00 +10:00
if (box == "yes" || !box) {
$("#textarea").blur();
2018-04-17 03:10:35 +10:00
hide();
}
2018-09-19 02:41:48 +10:00
$(".toot-btn-group").prop("disabled", false);
2018-04-17 03:10:35 +10:00
todc();
clear();
2018-01-28 23:22:43 +11:00
}
2018-04-17 03:10:35 +10:00
}
2018-01-28 23:22:43 +11:00
}
2019-05-19 17:39:30 +10:00
function misskeyPost() {
2018-07-30 21:03:49 +10:00
var str = $("#textarea").val();
var acct_id = $("#post-acct-sel").val();
localStorage.setItem("last-use", acct_id);
2018-08-23 03:29:39 +10:00
var domain = localStorage.getItem("domain_" + acct_id);
2018-09-19 02:41:48 +10:00
$(".toot-btn-group").prop("disabled", true);
2018-07-30 21:03:49 +10:00
todo("Posting");
2019-05-19 17:39:30 +10:00
var at = localStorage.getItem("acct_" + acct_id + "_at");
2018-07-30 21:03:49 +10:00
var start = "https://" + domain + "/api/notes/create";
var reply = $("#reply").val();
2019-05-19 17:39:30 +10:00
var toot = {
2018-07-30 21:03:49 +10:00
text: str
}
2019-05-19 17:39:30 +10:00
if (reply) {
if (reply.indexOf("renote") !== -1) {
toot.renoteId = reply.replace("renote_", "")
} else {
toot.replyId = reply
2018-07-30 21:03:49 +10:00
}
}
2019-05-19 17:39:30 +10:00
2018-07-30 21:03:49 +10:00
var media = $("#media").val();
2019-05-19 17:39:30 +10:00
if (media) {
toot.mediaIds = media.split(",");
2018-07-30 21:03:49 +10:00
}
if ($("#nsfw").hasClass("nsfw-avail")) {
var nsfw = "true";
2019-05-19 17:39:30 +10:00
toot.sensitive = nsfw;
2018-07-30 21:03:49 +10:00
} else {
var nsfw = "false";
}
var vis = $("#vis").text();
2019-05-19 17:39:30 +10:00
if (vis == "unlisted") {
2019-06-04 00:38:58 +10:00
vis = "home"
2019-05-19 17:39:30 +10:00
} else if (vis == "direct") {
2019-06-04 00:38:58 +10:00
vis = "specified";
2019-05-19 17:39:30 +10:00
toot.visibleUserIds = str.match(/@([a-zA-Z0-9_@.-]+)(\s|$)/g).join('').split("@");
2018-07-30 21:03:49 +10:00
}
2019-05-19 17:39:30 +10:00
if (vis != "inherit") {
toot.visibility = vis;
2018-07-30 21:03:49 +10:00
}
if ($("#cw").hasClass("cw-avail")) {
var spo = $("#cw-text").val();
cw();
2019-05-19 17:39:30 +10:00
toot.cw = spo;
2018-07-30 21:03:49 +10:00
} else {
var spo = "";
}
2019-05-19 17:39:30 +10:00
toot.i = at;
2018-07-30 21:03:49 +10:00
var httpreq = new XMLHttpRequest();
httpreq.open('POST', start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');
2019-03-08 05:19:26 +11:00
httpreq.responseType = "json";
2018-07-30 21:03:49 +10:00
httpreq.send(JSON.stringify(toot));
2019-05-19 17:39:30 +10:00
httpreq.onreadystatechange = function () {
2019-03-08 05:19:26 +11:00
if (httpreq.readyState === 4) {
2019-05-19 17:39:30 +10:00
if (str.indexOf(localStorage.getItem("stable")) == -1) {
2018-07-30 21:03:49 +10:00
localStorage.removeItem("stable")
}
var json = httpreq.response;
2019-05-19 17:39:30 +10:00
console.log(["Success: toot", json]);
2018-07-30 21:03:49 +10:00
var box = localStorage.getItem("box");
if (box == "yes") {
hide();
2019-05-19 17:39:30 +10:00
} else if (box == "hide") {
2018-07-30 21:03:49 +10:00
$("body").addClass("mini-post");
$(".mini-btn").text("expand_less");
}
2018-09-19 02:41:48 +10:00
$(".toot-btn-group").prop("disabled", false);
2018-07-30 21:03:49 +10:00
todc();
clear();
}
}
}
2018-01-28 23:22:43 +11:00
//クリア(Shift+C)
function clear() {
$("#textarea").val("");
2019-05-19 17:39:30 +10:00
if (localStorage.getItem("stable")) {
$("#textarea").val("#" + localStorage.getItem("stable") + " ")
2018-07-28 07:25:12 +10:00
}
2019-01-26 14:24:26 +11:00
$("#textarea").attr("placeholder", lang.lang_toot);
2018-01-28 23:22:43 +11:00
$("#reply").val("");
$("#media").val("");
var cwt = localStorage.getItem("cw-text");
if (cwt) {
$("#cw-text").val(cwt);
} else {
$("#cw-text").val("");
}
2018-08-05 13:36:23 +10:00
var acw = localStorage.getItem("always-cw");
if (acw != "yes") {
$("#cw").removeClass("yellow-text");
$("#cw").removeClass("cw-avail");
$("#cw-text").hide();
2019-05-19 17:39:30 +10:00
} else {
2018-08-05 13:36:23 +10:00
$("#cw").addClass("yellow-text");
$("#cw").addClass("cw-avail");
$("#cw-text").show();
}
2019-01-26 14:24:26 +11:00
$("#rec").text(lang.lang_no);
$("#mec").text(lang.lang_nothing);
2018-06-18 00:26:45 +10:00
loadVis();
2018-05-02 14:14:03 +10:00
$("#nsfw").removeClass("yellow-text");
$("#nsfw").html("visibility_off");
2018-01-28 23:22:43 +11:00
$("#nsfw").removeClass("nsfw-avail");
2019-01-26 14:24:26 +11:00
$("#nsc").text(lang.lang_nothing);
2018-01-28 23:22:43 +11:00
$("#drag").css("background-color", "#e0e0e0");
$("#preview").html("");
2018-09-19 02:41:48 +10:00
$(".toot-btn-group").prop("disabled", false);
2018-02-24 03:02:44 +11:00
$("#post-acct-sel").prop("disabled", false);
2019-03-06 19:08:48 +11:00
$("#days_poll").val(0);
2019-05-19 17:39:30 +10:00
$("#hours_poll").val(0);
2019-04-23 00:16:57 +10:00
$("#mins_poll").val(6);
2019-05-19 17:39:30 +10:00
$(".mastodon-choice").map(function () {
2019-03-06 19:08:48 +11:00
$(this).val("");
});
2018-02-19 04:41:25 +11:00
localStorage.removeItem("image");
2019-05-19 17:39:30 +10:00
if (localStorage.getItem("mainuse") == "main") {
2018-07-30 21:03:49 +10:00
$("#post-acct-sel").val(localStorage.getItem("main"));
2018-05-20 16:17:10 +10:00
}
2019-06-16 21:35:15 +10:00
$('select').formSelect();
2019-04-11 02:52:01 +10:00
$("#left-side").show();
$("#default-emoji").show();
$("#unreact").show();
$("#addreact").addClass("hide");
2018-03-27 13:39:35 +11:00
}