thedesk/app/js/tl/datails.js

617 lines
17 KiB
JavaScript
Raw Normal View History

2018-01-28 23:22:43 +11:00
//トゥートの詳細
2019-03-16 21:06:03 +11:00
function details(id, acct_id, tlid, mode) {
2019-05-19 17:39:30 +10:00
if (mode == "dm") {
2019-03-16 21:06:03 +11:00
$(".dm-hide").hide();
2019-05-19 17:39:30 +10:00
} else {
2019-03-16 21:06:03 +11:00
$(".dm-hide").show();
}
2019-05-19 17:39:30 +10:00
$(".toot-reset").html('<span class="no-data">' + lang.lang_details_nodata + '</span>');
var html = $("#timeline_" + tlid + " [toot-id=" + id + "]").html();
2018-01-28 23:22:43 +11:00
$("#toot-this").html(html);
$('#tootmodal').modal('open');
var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) == "misskey") {
2018-07-30 21:03:49 +10:00
var start = "https://" + domain + "/api/notes/show";
2019-05-19 17:39:30 +10:00
var i = {
2018-07-30 21:03:49 +10:00
method: 'POST',
headers: {
'content-type': 'application/json',
},
2019-05-19 17:39:30 +10:00
body: JSON.stringify({
i: at,
noteId: id
2018-07-30 21:03:49 +10:00
})
}
2019-05-19 17:39:30 +10:00
} else {
2018-07-30 21:03:49 +10:00
var start = "https://" + domain + "/api/v1/statuses/" + id;
2019-05-19 17:39:30 +10:00
var i = {
2018-07-30 21:03:49 +10:00
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + at
},
}
}
2019-05-19 17:39:30 +10:00
fetch(start, i).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
2018-01-28 23:22:43 +11:00
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
2018-01-28 23:22:43 +11:00
todo(error);
console.error(error);
2019-05-19 17:39:30 +10:00
}).then(function (json) {
console.log(["Toot data:", json]);
if (!$("#timeline_" + tlid + " #pub_" + id).length) {
2018-04-10 02:22:08 +10:00
var html = parse([json], '', acct_id);
2018-03-21 16:36:02 +11:00
$("#toot-this").html(html);
jQuery("time.timeago").timeago();
}
2019-05-19 17:39:30 +10:00
if (localStorage.getItem("mode_" + domain) == "misskey") {
var url = "https://" + domain + "/notes/" + json.id;
var scn = json.user.username;
if (!json.user.host) {
var local = true;
} else {
var local = false;
scn = scn + "@" + host;
2018-07-30 21:03:49 +10:00
}
2019-05-19 17:39:30 +10:00
var rep = "";
var uid = json.user.id;
if (json._replyIds) {
2018-07-30 21:03:49 +10:00
replyTL(json._replyIds[0], acct_id);
}
2019-05-19 17:39:30 +10:00
} else {
var url = json.url
if (json.account.acct == json.account.username) {
var local = true;
} else {
var local = false;
2018-07-30 21:03:49 +10:00
}
2019-05-19 17:39:30 +10:00
var scn = json.account.acct;
var uid = json.account.id;
2018-07-30 21:03:49 +10:00
if (json["in_reply_to_id"]) {
replyTL(json["in_reply_to_id"], acct_id);
}
}
2018-01-28 23:22:43 +11:00
$("#toot-this .fav_ct").text(json.favourites_count);
$("#toot-this .rt_ct").text(json.reblogs_count);
2019-05-19 17:39:30 +10:00
$("#tootmodal").attr("data-url", url);
$("#tootmodal").attr("data-id", json.id);
2019-10-05 03:23:47 +10:00
$("#tootmodal").attr("data-acct", acct_id);
2019-05-19 17:39:30 +10:00
if (local) {
$("#tootmodal").attr("data-user", scn + "@" + domain);
} else {
$("#tootmodal").attr("data-user", scn);
2018-01-28 23:22:43 +11:00
}
2019-07-29 02:09:12 +10:00
getContext(id, acct_id);
2019-05-19 17:39:30 +10:00
var dom = null;
if (!local) {
dom = scn.replace(/.+@/g, '');
} else {
dom = domain;
2018-05-20 16:17:10 +10:00
}
beforeToot(id, acct_id, dom);
2018-07-30 21:03:49 +10:00
userToot(id, acct_id, uid);
2019-05-06 20:10:03 +10:00
afterToot(id, acct_id, dom);
afterUserToot(id, acct_id, uid);
afterFTLToot(id, acct_id, dom);
2018-01-28 23:22:43 +11:00
faved(id, acct_id);
rted(id, acct_id);
2019-05-19 17:39:30 +10:00
if ($("#toot-this div").hasClass("cvo")) {
2018-09-10 03:06:00 +10:00
$("#toot-this").removeClass("cvo");
2019-05-19 17:39:30 +10:00
} else {
2019-07-13 01:01:09 +10:00
if(!$("#toot-this .cvo").hasClass("cvo")){
$("#toot-this").addClass("cvo");
}
2018-09-10 03:06:00 +10:00
}
2019-05-19 17:39:30 +10:00
if (!$("#activator").hasClass("active")) {
2019-05-06 20:10:03 +10:00
$('#det-col').collapsible('open', 4);
2018-02-26 00:37:04 +11:00
}
2019-05-19 17:39:30 +10:00
2018-01-28 23:22:43 +11:00
});
}
//返信タイムライン
function replyTL(id, acct_id) {
var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) == "misskey") {
2018-07-30 21:03:49 +10:00
var start = "https://" + domain + "/api/notes/show";
2019-05-19 17:39:30 +10:00
var i = {
2018-07-30 21:03:49 +10:00
method: 'POST',
headers: {
'content-type': 'application/json',
},
2019-05-19 17:39:30 +10:00
body: JSON.stringify({
i: at,
noteId: id
2018-07-30 21:03:49 +10:00
})
}
2019-05-19 17:39:30 +10:00
} else {
2019-07-13 01:01:09 +10:00
return false
2018-07-30 21:03:49 +10:00
}
2019-05-19 17:39:30 +10:00
fetch(start, i).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
2018-01-28 23:22:43 +11:00
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
2018-01-28 23:22:43 +11:00
todo(error);
console.error(error);
2019-05-19 17:39:30 +10:00
}).then(function (json) {
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "thread");
} else {
var mute = [];
2018-07-17 01:39:06 +10:00
}
2019-05-19 17:39:30 +10:00
if (localStorage.getItem("mode_" + domain) == "misskey") {
var templete = misskeyParse([json], '', acct_id, "", "", mute);
2018-07-30 21:03:49 +10:00
$("#toot-after").prepend(templete);
2019-01-26 14:24:26 +11:00
$("#toot-after .hide").html(lang.lang_details_filtered);
2019-05-19 17:39:30 +10:00
$("#toot-after .by_filter").css("display", "block");
2018-07-30 21:03:49 +10:00
$("#toot-after .by_filter").removeClass("hide");
2019-05-19 17:39:30 +10:00
var rep = "_replyIds";
2018-07-30 21:03:49 +10:00
if (json[rep]) {
replyTL(json[rep][0], acct_id);
}
2018-01-28 23:22:43 +11:00
}
2019-05-19 17:39:30 +10:00
2018-01-28 23:22:43 +11:00
});
}
//コンテクストってなんですか
2019-07-29 02:09:12 +10:00
function getContext(id, acct_id) {
2018-01-28 23:22:43 +11:00
var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) == "misskey") {
2018-07-30 21:03:49 +10:00
var start = "https://" + domain + "/api/notes/conversation";
2019-05-19 17:39:30 +10:00
var i = {
2018-07-30 21:03:49 +10:00
method: 'POST',
headers: {
'content-type': 'application/json',
},
2019-05-19 17:39:30 +10:00
body: JSON.stringify({
i: at,
noteId: id
2018-07-30 21:03:49 +10:00
})
}
2019-05-19 17:39:30 +10:00
} else {
2018-07-30 21:03:49 +10:00
var start = "https://" + domain + "/api/v1/statuses/" + id + "/context";
2019-05-19 17:39:30 +10:00
var i = {
2018-07-30 21:03:49 +10:00
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + at
},
}
}
2019-05-19 17:39:30 +10:00
fetch(start, i).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
2018-01-28 23:22:43 +11:00
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
2018-01-28 23:22:43 +11:00
todo(error);
console.error(error);
2019-05-19 17:39:30 +10:00
}).then(function (json) {
if (localStorage.getItem("mode_" + domain) == "misskey") {
json.reverse();
2019-05-19 17:39:30 +10:00
var templete = misskeyParse(json, '', acct_id, "", "", []);
2018-07-30 21:03:49 +10:00
$("#toot-reply").html(templete);
2019-01-26 14:24:26 +11:00
$("#toot-reply .hide").html(lang.lang_details_filtered);
2019-05-19 17:39:30 +10:00
$("#toot-reply .by_filter").css("display", "block");
2018-07-30 21:03:49 +10:00
$("#toot-reply .by_filter").removeClass("hide");
jQuery("time.timeago").timeago();
2019-05-19 17:39:30 +10:00
} else {
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "thread");
} else {
var mute = [];
2018-07-30 21:03:49 +10:00
}
2019-05-19 17:39:30 +10:00
var templete = parse(json.descendants, '', acct_id, "", "", mute);
if (templete != "") {
2019-03-16 21:06:03 +11:00
$("#toot-after .no-data").hide();
}
2018-07-30 21:03:49 +10:00
$("#toot-after").html(templete);
2019-01-26 14:24:26 +11:00
$("#toot-after .hide").html(lang.lang_details_filtered);
2019-05-19 17:39:30 +10:00
$("#toot-after .by_filter").css("display", "block");
2018-07-30 21:03:49 +10:00
$("#toot-after .by_filter").removeClass("hide");
2019-07-13 01:01:09 +10:00
var templete = parse(json.ancestors, '', acct_id, "", "", mute);
if (templete != "") {
$("#toot-reply .no-data").hide();
}
$("#toot-reply").prepend(templete);
$("#toot-reply .hide").html(lang.lang_details_filtered);
$("#toot-reply .by_filter").css("display", "block");
$("#toot-reply .by_filter").removeClass("hide");
2018-07-30 21:03:49 +10:00
jQuery("time.timeago").timeago();
2018-07-17 01:39:06 +10:00
}
2019-05-19 17:39:30 +10:00
2018-01-28 23:22:43 +11:00
});
}
//前のトゥート(Back TL)
2018-05-20 16:17:10 +10:00
function beforeToot(id, acct_id, domain) {
//var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) == "misskey") {
2018-07-30 21:03:49 +10:00
var start = "https://" + domain +
2019-05-19 17:39:30 +10:00
"/api/notes/local-timeline"
2018-07-30 21:03:49 +10:00
fetch(start, {
method: 'POST',
headers: {
'content-type': 'application/json',
},
2019-05-19 17:39:30 +10:00
body: JSON.stringify({
i: at,
untilID: id
2018-07-30 21:03:49 +10:00
})
2019-05-19 17:39:30 +10:00
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
todo(error);
console.error(error);
}).then(function (json) {
var templete = misskeyParse(json, 'noauth', acct_id);
$("#toot-before").html(templete);
jQuery("time.timeago").timeago();
});
} else {
2018-07-30 21:03:49 +10:00
var start = "https://" + domain +
2019-05-19 17:39:30 +10:00
"/api/v1/timelines/public?local=true&max_id=" + id;
2018-07-30 21:03:49 +10:00
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
},
2019-05-19 17:39:30 +10:00
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
2018-07-30 21:03:49 +10:00
todo(error);
console.error(error);
2019-05-19 17:39:30 +10:00
}).then(function (json) {
2018-07-30 21:03:49 +10:00
var templete = parse(json, 'noauth', acct_id);
2019-05-19 17:39:30 +10:00
if (templete != "") {
2019-03-16 21:06:03 +11:00
$("#toot-before .no-data").hide();
}
2018-07-30 21:03:49 +10:00
$("#toot-before").html(templete);
jQuery("time.timeago").timeago();
});
}
2018-01-28 23:22:43 +11:00
}
2018-05-02 14:14:03 +10:00
//前のユーザーのトゥート
function userToot(id, acct_id, user) {
var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) == "misskey") {
2018-07-30 21:03:49 +10:00
var start = "https://" + domain +
2019-05-19 17:39:30 +10:00
"/api/users/notes"
2018-07-30 21:03:49 +10:00
fetch(start, {
method: 'POST',
headers: {
'content-type': 'application/json',
},
2019-05-19 17:39:30 +10:00
body: JSON.stringify({
i: at,
untilID: id,
userId: user
2018-07-30 21:03:49 +10:00
})
2019-05-19 17:39:30 +10:00
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
todo(error);
console.error(error);
}).then(function (json) {
var templete = misskeyParse(json, 'noauth', acct_id);
$("#user-before").html(templete);
jQuery("time.timeago").timeago();
});
} else {
2018-07-30 21:03:49 +10:00
var start = "https://" + domain + "/api/v1/accounts/" + user + "/statuses?max_id=" + id;
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + at
},
2019-05-19 17:39:30 +10:00
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
2018-07-30 21:03:49 +10:00
todo(error);
console.error(error);
2019-05-19 17:39:30 +10:00
}).then(function (json) {
2018-07-30 21:03:49 +10:00
var templete = parse(json, '', acct_id);
2019-05-19 17:39:30 +10:00
if (templete != "") {
2019-03-16 21:06:03 +11:00
$("#user-before .no-data").hide();
}
2018-07-30 21:03:49 +10:00
$("#user-before").html(templete);
jQuery("time.timeago").timeago();
});
}
2019-05-19 17:39:30 +10:00
2018-05-02 14:14:03 +10:00
}
2019-05-06 20:10:03 +10:00
//後のLTL
function afterToot(id, acct_id, domain) {
//var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain +
2019-05-06 20:10:03 +10:00
"/api/v1/timelines/public?local=true&min_id=" + id;
2019-05-19 17:39:30 +10:00
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
},
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
2019-05-19 17:39:30 +10:00
return response.json();
}).catch(function (error) {
todo(error);
console.error(error);
}).then(function (json) {
var templete = parse(json, 'noauth', acct_id);
if (templete != "") {
$("#ltl-after .no-data").hide();
}
$("#ltl-after").html(templete);
jQuery("time.timeago").timeago();
});
2019-05-06 20:10:03 +10:00
}
//後のUTL
function afterUserToot(id, acct_id, user) {
var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/accounts/" + user + "/statuses?min_id=" + id;
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + at
},
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
2019-05-19 17:39:30 +10:00
return response.json();
}).catch(function (error) {
todo(error);
console.error(error);
}).then(function (json) {
var templete = parse(json, '', acct_id);
if (templete != "") {
$("#user-after .no-data").hide();
}
$("#user-after").html(templete);
jQuery("time.timeago").timeago();
});
2019-05-06 20:10:03 +10:00
}
//後のFTL
function afterFTLToot(id, acct_id, domain) {
//var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain +
2019-05-06 20:10:03 +10:00
"/api/v1/timelines/public?min_id=" + id;
2019-05-19 17:39:30 +10:00
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
},
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
2019-05-19 17:39:30 +10:00
return response.json();
}).catch(function (error) {
todo(error);
console.error(error);
}).then(function (json) {
var templete = parse(json, 'noauth', acct_id);
if (templete != "") {
$("#ftl-after .no-data").hide();
}
$("#ftl-after").html(templete);
jQuery("time.timeago").timeago();
});
2019-05-06 20:10:03 +10:00
}
2018-01-28 23:22:43 +11:00
//ふぁぼ一覧
function faved(id, acct_id) {
var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
if (localStorage.getItem("mode_" + domain) == "misskey") { return false; }
var at = localStorage.getItem("acct_" + acct_id + "_at");
2018-01-28 23:22:43 +11:00
var start = "https://" + domain + "/api/v1/statuses/" + id + "/favourited_by";
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + at
},
2019-05-19 17:39:30 +10:00
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
2018-01-28 23:22:43 +11:00
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
2018-01-28 23:22:43 +11:00
todo(error);
console.error(error);
2019-05-19 17:39:30 +10:00
}).then(function (json) {
2018-04-10 02:22:08 +10:00
var templete = userparse(json, '', acct_id);
2019-05-19 17:39:30 +10:00
if (templete != "") {
2019-03-16 21:06:03 +11:00
$("#toot-fav .no-data").hide();
}
2018-01-28 23:22:43 +11:00
$("#toot-fav").html(templete);
2019-08-31 01:10:24 +10:00
jQuery("time.timeago").timeago();
2018-01-28 23:22:43 +11:00
});
}
//ブースト一覧
function rted(id, acct_id) {
var domain = localStorage.getItem("domain_" + acct_id);
2019-05-19 17:39:30 +10:00
if (localStorage.getItem("mode_" + domain) == "misskey") { return false; }
var at = localStorage.getItem("acct_" + acct_id + "_at");
2018-01-28 23:22:43 +11:00
var start = "https://" + domain + "/api/v1/statuses/" + id + "/reblogged_by";
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + at
},
2019-05-19 17:39:30 +10:00
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
2018-01-28 23:22:43 +11:00
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
2018-01-28 23:22:43 +11:00
todo(error);
console.error(error);
2019-05-19 17:39:30 +10:00
}).then(function (json) {
2018-04-10 02:22:08 +10:00
var templete = userparse(json, '', acct_id);
2018-01-28 23:22:43 +11:00
$("#toot-rt").html(templete);
2019-08-31 01:10:24 +10:00
jQuery("time.timeago").timeago();
2018-01-28 23:22:43 +11:00
});
}
2018-02-18 03:44:03 +11:00
//URL等のコピー
2019-05-19 17:39:30 +10:00
function cbCopy(mode) {
var url = $("#tootmodal").attr("data-url");
2018-02-18 03:44:03 +11:00
var urls = url.match(/https?:\/\/([-.a-zA-Z0-9]+)/);
2019-05-19 17:39:30 +10:00
var domain = urls[1];
if (mode == "emb") {
var emb = '<iframe src="' + url + '/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="400"></iframe><script src="https://' + domain + '/embed.js" async="async"></script>';
2018-02-18 03:44:03 +11:00
execCopy(emb)
2019-06-07 02:11:04 +10:00
M.toast({ html: lang.lang_details_embed, displayLength: 1500 })
2019-05-19 17:39:30 +10:00
} else {
if (execCopy(url)) {
2019-06-07 02:11:04 +10:00
M.toast({ html: lang.lang_details_url, displayLength: 1500 })
2018-02-25 19:41:34 +11:00
}
2019-05-19 17:39:30 +10:00
2018-02-18 03:44:03 +11:00
}
2018-03-11 01:22:59 +11:00
}
2018-03-27 13:39:35 +11:00
//本文のコピー
2019-05-19 17:39:30 +10:00
function staCopy(id) {
var html = $("[toot-id=" + id + "] .toot").html();
html = html.replace(/^<p>(.+)<\/p>$/, "$1");
2018-03-27 13:39:35 +11:00
html = html.replace(/<br\s?\/?>/, "\n");
html = html.replace(/<p>/, "\n");
html = html.replace(/<\/p>/, "\n");
2019-05-19 17:39:30 +10:00
console.log("Copy it:\n" + html);
2018-06-18 00:26:45 +10:00
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1");
2019-05-19 17:39:30 +10:00
html = $.strip_tags(html);
if (execCopy(html)) {
2019-06-07 02:11:04 +10:00
M.toast({ html: lang.lang_details_txt, displayLength: 1500 })
2018-03-27 13:39:35 +11:00
}
2019-05-19 17:39:30 +10:00
2018-03-27 13:39:35 +11:00
}
2018-03-31 13:39:06 +11:00
//翻訳
2019-05-19 17:39:30 +10:00
function trans(tar, to) {
var html = $("#toot-this .toot").html();
if (html.match(/^<p>(.+)<\/p>$/)) {
2018-03-31 13:39:06 +11:00
html = html.match(/^<p>(.+)<\/p>$/)[1];
}
2018-04-01 07:00:27 +10:00
html = html.replace(/<br\s?\/?>/g, "\n");
html = html.replace(/<p>/g, "\n");
html = html.replace(/<\/p>/g, "\n");
2019-05-19 17:39:30 +10:00
html = $.strip_tags(html);
if (~tar.indexOf("zh")) {
tar = "zh";
2019-03-08 05:19:26 +11:00
}
2018-03-31 13:39:06 +11:00
$("#toot-this .additional").text("Loading...(Powered by Google Translate)");
2019-05-19 17:39:30 +10:00
var exec = 'https://script.google.com/macros/s/AKfycbxhwW5tjjop9Irg-y1zr_WsXlCKEzwWG6KuoOt_vVRDfEbRv0c/exec?format=json&text=' + encodeURIComponent(html) + '&source=' + tar + '&target=' + to
console.log("Try to translate from " + tar + " to " + to + " at " + exec);
2018-03-31 13:39:06 +11:00
fetch(exec, {
method: 'GET',
2019-05-19 17:39:30 +10:00
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
2019-03-08 05:19:26 +11:00
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
2018-03-31 13:39:06 +11:00
todo(error);
console.error(error);
2019-05-19 17:39:30 +10:00
}).then(function (text) {
2019-07-01 22:46:00 +10:00
$("#toot-this .additional").html('<span class="gray translate">' + text.text + '</span>');
2018-03-31 13:39:06 +11:00
});
2018-04-07 14:31:09 +10:00
}
//ブラウザで開く
2019-05-19 17:39:30 +10:00
function brws() {
var url = $("#tootmodal").attr("data-url");
postMessage(["openUrl", url], "*")
2018-04-07 14:31:09 +10:00
}
//外部からトゥート開く
2019-05-19 17:39:30 +10:00
function detEx(url, acct_id) {
if (acct_id == "main") {
acct_id = localStorage.getItem("main");
2018-05-20 16:17:10 +10:00
}
2019-05-19 17:39:30 +10:00
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
2019-10-20 21:36:44 +11:00
var start = "https://" + domain + "/api/v2/search?resolve=true&q=" + url
2018-04-07 14:31:09 +10:00
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + at
}
2019-05-19 17:39:30 +10:00
}).then(function (response) {
2019-10-31 02:30:26 +11:00
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text);
});
}
2018-04-07 14:31:09 +10:00
return response.json();
2019-05-19 17:39:30 +10:00
}).catch(function (error) {
2018-04-07 14:31:09 +10:00
todo(error);
console.error(error);
2019-05-19 17:39:30 +10:00
}).then(function (json) {
if (!json.statuses) {
postMessage(["openUrl", url], "*")
2019-05-19 17:39:30 +10:00
} else {
var id = json.statuses[0].id;
2018-04-09 00:17:33 +10:00
$(".loadp").text($(".loadp").attr("href"));
$(".loadp").removeClass("loadp");
details(id, acct_id, 0)
2018-04-07 14:31:09 +10:00
}
2019-05-19 17:39:30 +10:00
2018-04-07 14:31:09 +10:00
});
return;
2018-02-18 03:44:03 +11:00
}