301 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			301 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*投稿系*/
 | 
						|
//投稿
 | 
						|
function sec() {
 | 
						|
	var mode = localStorage.getItem("sec");
 | 
						|
	var acct_id = $("#post-acct-sel").val();
 | 
						|
	var domain = localStorage.getItem("domain_" + acct_id);
 | 
						|
	if (~domain.indexOf("kirishima.cloud") >= 0 && mode == "local") {
 | 
						|
		mode = "unlisted";
 | 
						|
	}
 | 
						|
	post(null, mode);
 | 
						|
}
 | 
						|
function post(mode, postvis) {
 | 
						|
	if ($("#toot-post-btn").prop("disabled")) {
 | 
						|
		return false;
 | 
						|
	}
 | 
						|
	var str = $("#textarea").val();
 | 
						|
	var acct_id = $("#post-acct-sel").val();
 | 
						|
	localStorage.setItem("last-use", acct_id);
 | 
						|
	var domain = localStorage.getItem("domain_" + acct_id);
 | 
						|
	if (domain == "theboss.tech") {
 | 
						|
		if (~str.indexOf("#")) {
 | 
						|
			if (str.indexOf("#theboss_tech") == "-1") {
 | 
						|
				if (!confirm(lang.lang_post_tagTL)) {
 | 
						|
					return false;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	if (domain == "dtp-mstdn.jp") {
 | 
						|
		if (~str.indexOf("#")) {
 | 
						|
			if (str.indexOf("#dtp") == "-1") {
 | 
						|
				if (!confirm(lang.lang_post_tagTL)) {
 | 
						|
					return false;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	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]
 | 
						|
			}
 | 
						|
			postMessage(["dialogCW", options], "*")
 | 
						|
			return false;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	if (localStorage.getItem("mode_" + domain) == "misskey") {
 | 
						|
		misskeyPost();
 | 
						|
		return;
 | 
						|
	}
 | 
						|
	$(".toot-btn-group").prop("disabled", true);
 | 
						|
	todo("Posting");
 | 
						|
	var at = localStorage.getItem("acct_" + acct_id + "_at");
 | 
						|
	var start = "https://" + domain + "/api/v1/statuses";
 | 
						|
	var reply = $("#reply").val();
 | 
						|
	if (str.indexOf(localStorage.getItem("stable")) == -1) {
 | 
						|
		str + " #" + localStorage.getItem("stable");
 | 
						|
	}
 | 
						|
	var toot = {
 | 
						|
		status: str
 | 
						|
	}
 | 
						|
	if (reply) {
 | 
						|
		toot.in_reply_to_id = reply
 | 
						|
	}
 | 
						|
	var media = $("#media").val();
 | 
						|
	if (media) {
 | 
						|
		toot.media_ids = media.split(",");
 | 
						|
	}
 | 
						|
	if ($("#nsfw").hasClass("nsfw-avail")) {
 | 
						|
		var nsfw = "true";
 | 
						|
		toot.sensitive = nsfw;
 | 
						|
	} else {
 | 
						|
		var nsfw = "false";
 | 
						|
	}
 | 
						|
	if (postvis) {
 | 
						|
		var vis = postvis;
 | 
						|
	} else {
 | 
						|
		var vis = $("#vis").text();
 | 
						|
	}
 | 
						|
 | 
						|
	if (vis != "inherit" && vis != "local") {
 | 
						|
		toot.visibility = vis;
 | 
						|
	} else if (vis == "local") {
 | 
						|
		toot.status = str + "👁️";
 | 
						|
	}
 | 
						|
	//ここに非公開・未収載タグについてwarn
 | 
						|
	if (domain != "kirishima.cloud" && domain != "imastodon.net") {
 | 
						|
		if (~str.indexOf("#")) {
 | 
						|
			if (vis == "local" || vis == "unlisted" || vis == "direct" || vis == "private") {
 | 
						|
				if (!confirm(lang.lang_post_tagVis)) {
 | 
						|
					return false;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	if ($("#cw").hasClass("cw-avail")) {
 | 
						|
		var spo = $("#cw-text").val();
 | 
						|
		cw();
 | 
						|
		toot.spoiler_text = spo;
 | 
						|
	} else {
 | 
						|
		var spo = "";
 | 
						|
	}
 | 
						|
	if ($("#sch-box").hasClass("sch-avail")) {
 | 
						|
		var scheduled = formattimeutc(new Date(Date.parse($("#sch-date").val())))
 | 
						|
		console.log("This toot will be posted at:" + scheduled)
 | 
						|
		schedule();
 | 
						|
		toot.scheduled_at = scheduled;
 | 
						|
	} else {
 | 
						|
		var scheduled = "";
 | 
						|
	}
 | 
						|
	if ($("#poll-sel").val() == "mastodon-poll") {
 | 
						|
		var options = [];
 | 
						|
		$(".mastodon-choice").map(function () {
 | 
						|
			var choice = $(this).val();
 | 
						|
			if (choice != "") {
 | 
						|
				options.push(choice);
 | 
						|
			}
 | 
						|
		});
 | 
						|
		if ($("#poll-multiple:checked").val() == "1") {
 | 
						|
			var mul = true;
 | 
						|
		} else {
 | 
						|
			var mul = false;
 | 
						|
		}
 | 
						|
		if ($("#poll-until:checked").val() == "1") {
 | 
						|
			var htt = true;
 | 
						|
		} else {
 | 
						|
			var htt = false;
 | 
						|
		}
 | 
						|
		var exin = pollCalc();
 | 
						|
		if (!exin) {
 | 
						|
			todc("Error: Poll expires_in param")
 | 
						|
		}
 | 
						|
		toot.poll = {
 | 
						|
			options: options,
 | 
						|
			expires_in: exin,
 | 
						|
			multiple: mul,
 | 
						|
			hide_totals: htt
 | 
						|
		}
 | 
						|
	}
 | 
						|
	console.table(toot);
 | 
						|
	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(toot));
 | 
						|
	httpreq.onreadystatechange = function () {
 | 
						|
		if (httpreq.readyState === 4) {
 | 
						|
			var json = httpreq.response;
 | 
						|
			var box = localStorage.getItem("box");
 | 
						|
			if (box == "yes" || !box) {
 | 
						|
				$("#textarea").blur();
 | 
						|
				hide();
 | 
						|
			}
 | 
						|
			$(".toot-btn-group").prop("disabled", false);
 | 
						|
			todc();
 | 
						|
			clear();
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
function misskeyPost() {
 | 
						|
	var str = $("#textarea").val();
 | 
						|
	var acct_id = $("#post-acct-sel").val();
 | 
						|
	localStorage.setItem("last-use", acct_id);
 | 
						|
	var domain = localStorage.getItem("domain_" + acct_id);
 | 
						|
	$(".toot-btn-group").prop("disabled", true);
 | 
						|
	todo("Posting");
 | 
						|
	var at = localStorage.getItem("acct_" + acct_id + "_at");
 | 
						|
	var start = "https://" + domain + "/api/notes/create";
 | 
						|
	var reply = $("#reply").val();
 | 
						|
	var toot = {
 | 
						|
		text: str
 | 
						|
	}
 | 
						|
	if (reply) {
 | 
						|
		if (reply.indexOf("renote") !== -1) {
 | 
						|
			toot.renoteId = reply.replace("renote_", "")
 | 
						|
		} else {
 | 
						|
			toot.replyId = reply
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	var media = $("#media").val();
 | 
						|
	if (media) {
 | 
						|
		toot.mediaIds = media.split(",");
 | 
						|
	}
 | 
						|
	if ($("#nsfw").hasClass("nsfw-avail")) {
 | 
						|
		var nsfw = "true";
 | 
						|
		toot.sensitive = nsfw;
 | 
						|
	} else {
 | 
						|
		var nsfw = "false";
 | 
						|
	}
 | 
						|
	var vis = $("#vis").text();
 | 
						|
	if (vis == "unlisted") {
 | 
						|
		vis = "home"
 | 
						|
	} else if (vis == "direct") {
 | 
						|
		vis = "specified";
 | 
						|
		toot.visibleUserIds = str.match(/@([a-zA-Z0-9_@.-]+)(\s|$)/g).join('').split("@");
 | 
						|
	}
 | 
						|
	if (vis != "inherit") {
 | 
						|
		toot.visibility = vis;
 | 
						|
	}
 | 
						|
	if ($("#cw").hasClass("cw-avail")) {
 | 
						|
		var spo = $("#cw-text").val();
 | 
						|
		cw();
 | 
						|
		toot.cw = spo;
 | 
						|
	} else {
 | 
						|
		var spo = "";
 | 
						|
	}
 | 
						|
	toot.i = at;
 | 
						|
	var httpreq = new XMLHttpRequest();
 | 
						|
	httpreq.open('POST', start, true);
 | 
						|
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						|
	httpreq.responseType = "json";
 | 
						|
	httpreq.send(JSON.stringify(toot));
 | 
						|
	httpreq.onreadystatechange = function () {
 | 
						|
		if (httpreq.readyState === 4) {
 | 
						|
			if (str.indexOf(localStorage.getItem("stable")) == -1) {
 | 
						|
				localStorage.removeItem("stable")
 | 
						|
			}
 | 
						|
			var json = httpreq.response;
 | 
						|
			console.log(["Success: toot", json]);
 | 
						|
			var box = localStorage.getItem("box");
 | 
						|
			if (box == "yes") {
 | 
						|
				hide();
 | 
						|
			} else if (box == "hide") {
 | 
						|
				$("body").addClass("mini-post");
 | 
						|
				$(".mini-btn").text("expand_less");
 | 
						|
			}
 | 
						|
			$(".toot-btn-group").prop("disabled", false);
 | 
						|
			todc();
 | 
						|
			clear();
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
//クリア(Shift+C)
 | 
						|
function clear() {
 | 
						|
	$("#textarea").val("");
 | 
						|
	if (localStorage.getItem("stable")) {
 | 
						|
		$("#textarea").val("#" + localStorage.getItem("stable") + " ")
 | 
						|
	}
 | 
						|
	$("#textarea").attr("placeholder", lang.lang_toot);
 | 
						|
	$("#reply").val("");
 | 
						|
	$("#media").val("");
 | 
						|
	var cwt = localStorage.getItem("cw-text");
 | 
						|
	if (cwt) {
 | 
						|
		$("#cw-text").val(cwt);
 | 
						|
	} else {
 | 
						|
		$("#cw-text").val("");
 | 
						|
	}
 | 
						|
	var acw = localStorage.getItem("always-cw");
 | 
						|
	if (acw != "yes") {
 | 
						|
		$("#cw").removeClass("yellow-text");
 | 
						|
		$("#cw").removeClass("cw-avail");
 | 
						|
		$("#cw-text").hide();
 | 
						|
	} else {
 | 
						|
		$("#cw").addClass("yellow-text");
 | 
						|
		$("#cw").addClass("cw-avail");
 | 
						|
		$("#cw-text").show();
 | 
						|
	}
 | 
						|
	$("#rec").text(lang.lang_no);
 | 
						|
	$("#mec").text(lang.lang_nothing);
 | 
						|
	loadVis();
 | 
						|
	$("#nsfw").removeClass("yellow-text");
 | 
						|
	$("#nsfw").html("visibility_off");
 | 
						|
	$("#nsfw").removeClass("nsfw-avail");
 | 
						|
	$("#nsc").text(lang.lang_nothing);
 | 
						|
	$("#drag").css("background-color", "#e0e0e0");
 | 
						|
	$("#preview").html("");
 | 
						|
	$(".toot-btn-group").prop("disabled", false);
 | 
						|
	$("#post-acct-sel").prop("disabled", false);
 | 
						|
	$("#days_poll").val(0);
 | 
						|
	$("#hours_poll").val(0);
 | 
						|
	$("#mins_poll").val(6);
 | 
						|
	$(".mastodon-choice").map(function () {
 | 
						|
		$(this).val("");
 | 
						|
	});
 | 
						|
	localStorage.removeItem("image");
 | 
						|
	if (localStorage.getItem("mainuse") == "main") {
 | 
						|
		$("#post-acct-sel").val(localStorage.getItem("main"));
 | 
						|
	}
 | 
						|
	$('select').material_select();
 | 
						|
	$("#left-side").show();
 | 
						|
	$("#default-emoji").show();
 | 
						|
	$("#unreact").show();
 | 
						|
	$("#addreact").addClass("hide");
 | 
						|
} |