thedesk/app/js/platform/end.js

181 lines
4.2 KiB
JavaScript
Raw Normal View History

2018-01-28 23:22:43 +11:00
//プラットフォーム別 最後に読むやつ
//リンクを外部で開くか内部で出すか
$(document).on('click', 'a', e => {
var $a = $(e.target);
var url = $a.attr('href');
if (!url) {
var url = $a.parent().attr('href');
2018-02-18 05:44:20 +11:00
}
var urls=[];
if(url){
2018-07-05 11:26:07 +10:00
urls = url.match(/https?:\/\/(.+)/);
2018-04-07 14:31:09 +10:00
//トゥートのURLぽかったら
toot = url.match(/https:\/\/([a-zA-Z0-9.-]+)\/@([a-zA-Z0-9_]+)\/([0-9]+)/);
2018-05-12 04:12:25 +10:00
//タグのURLぽかったら
var tags=[];
tags = url.match(
2018-09-06 02:47:27 +10:00
/https:\/\/([-a-zA-Z0-9@.]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#]+)/
2018-05-12 04:12:25 +10:00
);
//メンションっぽかったら
var ats=[];
ats = url.match(
2019-04-04 03:07:07 +11:00
/https:\/\/([-a-zA-Z0-9.]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#@]+)/
2018-05-12 04:12:25 +10:00
);
2018-06-12 01:44:28 +10:00
console.log(toot);
2018-04-07 14:31:09 +10:00
if(toot){
if(toot[1]){
2018-04-09 00:17:33 +10:00
var acct_id=$a.parent().attr("data-acct");
if(!acct_id){
acct_id=0;
}
$a.parent().addClass("loadp")
$a.parent().text("Loading...")
detEx(url,acct_id);
2018-04-07 14:31:09 +10:00
}
2018-05-12 04:12:25 +10:00
}else if(tags){
if(tags[2]){
tagShow(tags[2]);
2018-09-06 02:47:27 +10:00
Materialize.toast('<a class="btn-flat toast-action" href="detEx(\''+url+'\')">Open in browser</a>', 86400);
2018-05-12 04:12:25 +10:00
}
}else if(ats){
2018-07-05 11:26:07 +10:00
console.log(ats);
2018-05-12 04:12:25 +10:00
if(ats[2]){
2019-04-04 03:07:07 +11:00
//Quesdon判定
if(!~ats[2].indexOf("@")){
2018-07-05 11:26:07 +10:00
udgEx(ats[2]+"@"+ats[1],"main");
2018-06-12 01:44:28 +10:00
return false
}else{
const {
shell
} = require('electron');
shell.openExternal(url);
}
2018-05-12 04:12:25 +10:00
}
2018-04-07 14:31:09 +10:00
}else{
2018-02-18 05:44:20 +11:00
//hrefがhttp/httpsならブラウザで
2018-02-26 00:37:04 +11:00
if(urls){
2018-02-18 05:44:20 +11:00
if (urls[0]) {
2019-03-08 05:19:26 +11:00
const {shell} = require('electron');
2018-09-11 04:59:44 +10:00
if(~url.indexOf("thedeks.top")){
//alert("If you recieve this alert, let the developer(Cutls@kirishima.cloud) know it with a screenshot.");
url="https://thedesk.top";
}
2018-02-18 05:44:20 +11:00
shell.openExternal(url);
} else {
location.href = url;
}
2018-02-26 02:32:10 +11:00
}else{
location.href = url;
2018-02-26 00:37:04 +11:00
}
2018-02-18 05:44:20 +11:00
}
2018-04-07 14:31:09 +10:00
}
2018-01-28 23:22:43 +11:00
return false;
});
//よく使うライブラリ
/*マルチバイト用切り出し*/
$.isSurrogatePear = function(upper, lower) {
2019-03-08 05:19:26 +11:00
return 0xD800 <= upper && upper <= 0xDBFF && 0xDC00 <= lower && lower <= 0xDFFF;
2018-01-28 23:22:43 +11:00
};
$.mb_strlen = function(str) {
var ret = 0;
for (var i = 0; i < str.length; i++, ret++) {
var upper = str.charCodeAt(i);
var lower = str.length > (i + 1) ? str.charCodeAt(i + 1) : 0;
if ($.isSurrogatePear(upper, lower)) {
i++;
}
}
return ret;
};
$.mb_substr = function(str, begin, end) {
var ret = '';
for (var i = 0, len = 0; i < str.length; i++, len++) {
var upper = str.charCodeAt(i);
var lower = str.length > (i + 1) ? str.charCodeAt(i + 1) : 0;
var s = '';
if ($.isSurrogatePear(upper, lower)) {
i++;
s = String.fromCharCode(upper, lower);
} else {
s = String.fromCharCode(upper);
}
if (begin <= len && len < end) {
ret += s;
}
}
return ret;
};
2018-12-09 05:46:01 +11:00
2018-02-18 03:44:03 +11:00
//コピー
function execCopy(string){
2018-02-25 19:41:34 +11:00
var temp = $("#copy");
temp.val(string);
temp.select();
2018-02-18 03:44:03 +11:00
var result = document.execCommand('copy');
return result;
2018-03-11 01:22:59 +11:00
}
//Nano
function nano(){
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.send('nano', "");
2018-04-17 03:10:35 +10:00
}
function progshow(e) {
if (e.lengthComputable) {
var percent = e.loaded / e.total;
console.log(percent * 100);
$("#imgsel").hide();
if(percent<1){
$("#imgup").text(Math.floor(percent*100)+"%");
}else{
2019-01-26 14:24:26 +11:00
$("#imgup").text(lang.lang_progress);
2018-04-17 03:10:35 +10:00
}
}
2018-06-18 00:48:33 +10:00
}
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.on('reload', function (event, arg) {
location.reload();
})
2018-08-05 02:26:34 +10:00
ipc.on('mess', function (event, arg) {
if(arg=="unzip"){
if(lang=="ja"){
$("body").text("アップデートを展開中です。");
}else{
$("body").text("Unzipping...");
}
}
2018-09-10 03:06:00 +10:00
})
//Native Notf
ipc.on('shownotf', function (event, args) {
if(args["type"]=="toot"){
details(id, acct_id)
}else if(args["type"]=="userdata"){
udg(user, acct_id)
}
})
function opendev(){
var webview = document.getElementById("webview");
2018-09-11 04:59:44 +10:00
webview.openDevTools();
/*webview.sendInputEvent({
2018-09-10 03:06:00 +10:00
type: "keyDown",
2018-09-11 04:59:44 +10:00
keyCode: '2'
2018-09-10 03:06:00 +10:00
});
2018-09-11 04:59:44 +10:00
*/
2019-02-28 04:02:23 +11:00
}
2019-03-21 16:21:02 +11:00
var webviewDom = document.getElementById('webview');
2019-02-28 04:02:23 +11:00
const {
shell
} = require('electron');
2019-03-21 16:21:02 +11:00
webviewDom.addEventListener('new-window', function(e) {
2019-02-28 04:02:23 +11:00
shell.openExternal(e.url);
});