thedesk/app/js/platform/end.js
2019-05-19 15:17:05 +09:00

165 lines
3.8 KiB
JavaScript

//プラットフォーム別 最後に読むやつ
//リンクを外部で開くか内部で出すか
$(document).on('click', 'a', e => {
var $a = $(e.target);
var url = $a.attr('href');
if (!url) {
var url = $a.parent().attr('href');
}
var urls=[];
if(url){
urls = url.match(/https?:\/\/(.+)/);
//トゥートのURLぽかったら
toot = url.match(/https:\/\/([a-zA-Z0-9.-]+)\/@([a-zA-Z0-9_]+)\/([0-9]+)/);
//タグのURLぽかったら
var tags=[];
tags = url.match(
/https:\/\/([-a-zA-Z0-9@.]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#]+)/
);
//メンションっぽかったら
var ats=[];
ats = url.match(
/https:\/\/([-a-zA-Z0-9.]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#@]+)/
);
if(toot){
if(toot[1]){
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);
}
}else if(tags){
if(tags[2]){
var acct_id=$a.parent().attr("data-acct");
if(!acct_id){
acct_id=0;
}
tl('tag',decodeURI(tags[2]),acct_id,'add')
}
}else if(ats){
if(ats[2]){
//Quesdon判定
if(!~ats[2].indexOf("@")){
udgEx(ats[2]+"@"+ats[1],"main");
return false
}else{
const {
shell
} = require('electron');
shell.openExternal(url);
}
}
}else{
//hrefがhttp/httpsならブラウザで
if(urls){
if (urls[0]) {
const {shell} = require('electron');
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";
}
shell.openExternal(url);
} else {
location.href = url;
}
}else{
location.href = url;
}
}
}
return false;
});
//よく使うライブラリ
//コピー
function execCopy(string){
var temp = $("#copy");
temp.val(string);
temp.select();
var result = document.execCommand('copy');
return result;
}
//Nano
function nano(){
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.send('nano', "");
}
function progshow(e) {
if (e.lengthComputable) {
var percent = e.loaded / e.total;
console.log("Progress: "+percent * 100);
$("#imgsel").hide();
if(percent<1){
$("#imgup").text(Math.floor(percent*100)+"%");
}else{
$("#imgup").text(lang.lang_progress);
}
}
}
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.on('reload', function (event, arg) {
location.reload();
})
ipc.on('mess', function (event, arg) {
if(arg=="unzip"){
if(lang=="ja"){
$("body").text("アップデートを展開中です。");
}else{
$("body").text("Unzipping...");
}
}
})
//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");
webview.openDevTools();
/*webview.sendInputEvent({
type: "keyDown",
keyCode: '2'
});
*/
}
var webviewDom = document.getElementById('webview');
const {
shell
} = require('electron');
webviewDom.addEventListener('new-window', function(e) {
shell.openExternal(e.url);
});
function playSound() {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
context = new AudioContext();
context.createBufferSource().start(0);
context.decodeAudioData(request.response, function (buf) {
console.log("Playing:"+source)
source.buffer = buf;
source.loop = false;
});
source = context.createBufferSource();
volumeControl = context.createGain();
source.connect(volumeControl);
volumeControl.connect(context.destination);
volumeControl.gain.value=0.8
source.start(0);
}