Compare commits
101 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
8e70e005c1 | ||
|
3817dbc925 | ||
|
63ec669c52 | ||
|
afc5702796 | ||
|
41ec66b58a | ||
|
936d3ca7fc | ||
|
f8b4b7b74d | ||
|
bd865977b0 | ||
|
d056db5617 | ||
|
7685677ada | ||
|
eb0aa81492 | ||
|
dc52531f28 | ||
|
5a20034b9f | ||
|
5cd0ef0d8a | ||
|
4daf47bb5f | ||
|
3e0dbd8433 | ||
|
fc4d3b24f6 | ||
|
3a9eab55a4 | ||
|
546b34275d | ||
|
3ee4cf27d5 | ||
|
87da95b9a4 | ||
|
3368e30e15 | ||
|
f1ea5ad8f1 | ||
|
fa2d5f8492 | ||
|
0f2c5de161 | ||
|
b69937d4fd | ||
|
e82faacbb2 | ||
|
2ab5c67545 | ||
|
358d01b12e | ||
|
95460fabbb | ||
|
0fb882b3ad | ||
|
3d0382d279 | ||
|
59d5aa4515 | ||
|
2dff9f9b17 | ||
|
03fded672e | ||
|
a21c1f5329 | ||
|
37815ced63 | ||
|
b7f9b8d668 | ||
|
f68af78099 | ||
|
027abffa01 | ||
|
5dfba4dd5e | ||
|
d0ae7e9cf9 | ||
|
5a57e984de | ||
|
473f4d7c24 | ||
|
35bfea2dbd | ||
|
62cb30cb5b | ||
|
9d2eb6f18b | ||
|
d5cd57c26d | ||
|
37695735e0 | ||
|
c15625c063 | ||
|
cd65bd4c2a | ||
|
fc3fead235 | ||
|
2e00282560 | ||
|
54d740e861 | ||
|
478a849e8d | ||
|
82c5b35d07 | ||
|
6cdd4cba9e | ||
|
dda9469874 | ||
|
334fbdab3f | ||
|
a5f8e34ee6 | ||
|
eba54d0906 | ||
|
070c40a958 | ||
|
8d308cae5e | ||
|
848e9fcf99 | ||
|
d146776b17 | ||
|
7da16a7428 | ||
|
7b46145114 | ||
|
725f0f789a | ||
|
772a5438aa | ||
|
3c276b329b | ||
|
e2cde71831 | ||
|
861ee3250d | ||
|
5672ccfa37 | ||
|
65e691cda8 | ||
|
56cca8b529 | ||
|
367f2f656e | ||
|
7f806bd155 | ||
|
a70444e3c7 | ||
|
1a72033571 | ||
|
a475407c27 | ||
|
b602cd92a9 | ||
|
2878a4a524 | ||
|
8b1ac63343 | ||
|
8d1012c9fb | ||
|
62f2654358 | ||
|
e7feb4b2c5 | ||
|
dcc62b32a2 | ||
|
26eecd11b6 | ||
|
8d388bbd4b | ||
|
409635b00c | ||
|
17a71ddbf6 | ||
|
d2a86af0e2 | ||
|
f23dc928b2 | ||
|
68e11dc222 | ||
|
075c3ef9ca | ||
|
6b004a3992 | ||
|
3cf198538a | ||
|
612400944e | ||
|
5f22d2427e | ||
|
2692967b7d | ||
|
2ed85ab978 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -3,8 +3,7 @@
|
||||
*.7z
|
||||
*.exe
|
||||
TheDesk-*
|
||||
app/build
|
||||
build
|
||||
build/*
|
||||
app/.DS_Store
|
||||
.DS_Store
|
||||
.vs/*
|
||||
@@ -13,3 +12,4 @@ enq.md
|
||||
app/.tkn
|
||||
app/node_modules
|
||||
app/js/login/tkn.js
|
||||
app/package-lock.json
|
@@ -6,7 +6,6 @@
|
||||
[](https://travis-ci.org/cutls/TheDesk)
|
||||
[](https://translate.thedesk.top/project/thedesk)
|
||||
[](https://github.com/cutls/TheDesk/releases)
|
||||
[](https://github.com/cutls/TheDesk/releases)
|
||||

|
||||
Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
||||
オープンソースSNSマストドン/MisskeyのPC向けクライアント[日本語はこちら](README_ja.md)
|
||||
@@ -44,7 +43,7 @@ The default sounds of notifications is provided [Creative Commons BY](https://cr
|
||||
|
||||
Crowdin project is available! Visit: https://translate.thedesk.top
|
||||
|
||||
## Requirement
|
||||
## Requirement and development
|
||||
|
||||
* Electron 4.2 or above(install yourself)
|
||||
* electron-dl(in package.json)
|
||||
@@ -57,6 +56,10 @@ Crowdin project is available! Visit: https://translate.thedesk.top
|
||||
* sumchecker(in package.json)
|
||||
* Ability to read unformated files!(install yourself)
|
||||
|
||||
### Run on developer mode
|
||||
|
||||
`npm run dev` on `app` folder.
|
||||
|
||||
## Contributors
|
||||
|
||||
Build for macOS
|
||||
@@ -69,7 +72,7 @@ Build for Linux
|
||||
|
||||
Fellow coder
|
||||
|
||||
* [kPherox](https://www.kr-kp.com/)
|
||||
* [kPherox](https://pl.kpherox.dev/kPherox)
|
||||
|
||||
## Build
|
||||
|
||||
|
@@ -6,7 +6,6 @@
|
||||
[](https://travis-ci.org/cutls/TheDesk)
|
||||
[](https://translate.thedesk.top/project/thedesk)
|
||||
[](https://github.com/cutls/TheDesk/releases)
|
||||
[](https://github.com/cutls/TheDesk/releases)
|
||||

|
||||
Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
||||
オープンソースSNSマストドン/MisskeyのPC向けクライアント
|
||||
@@ -57,6 +56,10 @@ Crowdinから翻訳に参加してみませんか?: https://translate.thedesk.
|
||||
* sumchecker(in package.json)
|
||||
* Ability to read unformated files!(自分で入れて)
|
||||
|
||||
### デベロッパーモード
|
||||
|
||||
`npm run dev`を`app`フォルダ内で実行
|
||||
|
||||
## 主なコントリビューター
|
||||
|
||||
macOSビルダー
|
||||
@@ -69,7 +72,7 @@ Linuxビルダー
|
||||
|
||||
iTunes NowPlayingにアルバムアートワークを付けてくれた人
|
||||
|
||||
* [kPherox](https://www.kr-kp.com/)
|
||||
* [kPherox](https://pl.kpherox.dev/kPherox)
|
||||
|
||||
## ビルド
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<title>TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="./css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="./node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href='./css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href="./css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="./css/master.css" type="text/css" rel="stylesheet">
|
||||
@@ -75,27 +75,27 @@
|
||||
</head>
|
||||
|
||||
<body class="center " style="overflow:hidden">
|
||||
<script type="text/javascript" src="./js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="./node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="./js/platform/first-not-view.js"></script>
|
||||
<script type="text/javascript" src="./js/common/materialize.js"></script>
|
||||
<img src="./img/desk.png" style="max-width:70%;">
|
||||
<script type="text/javascript" src="./node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<img src="./img/desk.png" style="max-width:62%;">
|
||||
<h5>TheDesk</h5>
|
||||
<div class='container'>
|
||||
<div class='area-name1'>Display version</div>
|
||||
<div class='area-data1' id="now"></div>
|
||||
<div class='area-name2'>Internal version</div>
|
||||
<div class='area-data2' id="ver"></div>
|
||||
<div class='area-name3'>Chromium</div>
|
||||
<div class='area-data3' id="chrome"></div>
|
||||
<div class='area-name4'>Electron</div>
|
||||
<div class='area-data4' id="electron"></div>
|
||||
<div class='area-name5'>Node.js</div>
|
||||
<div class='area-data5' id="node"></div>
|
||||
<div class="container">
|
||||
<div class="area-name1">Display version</div>
|
||||
<div class="area-data1" id="now"></div>
|
||||
<div class="area-name2">Internal version</div>
|
||||
<div class="area-data2" id="ver"></div>
|
||||
<div class="area-name3">Chromium</div>
|
||||
<div class="area-data3" id="chrome"></div>
|
||||
<div class="area-name4">Electron</div>
|
||||
<div class="area-data4" id="electron"></div>
|
||||
<div class="area-name5">Node.js</div>
|
||||
<div class="area-data5" id="node"></div>
|
||||
</div>
|
||||
<div class="cp">Copyright © TheDesk 2018<br>
|
||||
Main developer(author): <a href="https://cutls.com/@Cutls" target="_blank">Cutls P</a><br>
|
||||
Thanks:<a href="https://minohdon.jp/@toneji" target="_blank">toneji</a>/<a
|
||||
href="https://popon.pptdn.jp/@popn_ja" target="_blank">popn_ja</a>/<a href="https://pawoo.net/@kPherox"
|
||||
href="https://popon.pptdn.jp/@popn_ja" target="_blank">popn_ja</a>/<a href="https://pl.kpherox.dev/kPherox"
|
||||
target="_blank">kPherox</a> and all users
|
||||
<img draggable="false" style="width:0.8rem;top: 1px;margin-left: 1px;position: relative;" alt="❤️"
|
||||
title=":heart:" src="https://twemoji.maxcdn.com/2/72x72/2764.png">
|
||||
@@ -104,13 +104,11 @@
|
||||
class="material-icons left">close</i>Close</button>
|
||||
<script type="text/javascript" src="./js/ui/theme.js"></script>
|
||||
<script>
|
||||
var about = JSON.parse(localStorage.getItem("about"));
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
var electron = require("electron");
|
||||
var remote = electron.remote;
|
||||
const shell = electron.shell;
|
||||
$("#node").text(remote.process.version);
|
||||
$("#chrome").text(remote.process.versions.chrome);
|
||||
$("#electron").text(remote.process.versions.electron);
|
||||
$("#node").text(about[0]);
|
||||
$("#chrome").text(about[1]);
|
||||
$("#electron").text(about[2]);
|
||||
if (location.search) {
|
||||
var m = location.search.match(/\?ver=([a-zA-Z-0-9.]+)/);
|
||||
var ver = m[1];
|
||||
@@ -118,7 +116,7 @@
|
||||
}
|
||||
$(document).on('click', 'a', e => {
|
||||
var url = $(e.target).attr('href');
|
||||
shell.openExternal(url);
|
||||
postMessage(["openUrl", url], "*")
|
||||
return false;
|
||||
});
|
||||
</script>
|
267
app/adobe.html
267
app/adobe.html
@@ -1,267 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="ja">
|
||||
|
||||
<head>
|
||||
<title>Adobe Photo Editor - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="./css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="./css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="./css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="./css/auth.css" type="text/css" rel="stylesheet">
|
||||
<link href='./css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href='./css/tl.css' rel='stylesheet' type='text/css'>
|
||||
<link href='./css/userdata.css' rel='stylesheet' type='text/css'>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||
<style>
|
||||
#cb-drag {
|
||||
margin-bottom: 8px;
|
||||
padding: 24px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#cb-drag p {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#cb-file {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#cb-display {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#cb-display p {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.cb-div {
|
||||
padding: 16px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.cb-image {
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="./js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="./js/platform/first-not-view.js"></script>
|
||||
<script type="text/javascript" src="./js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="./js/ui/tips.js"></script>
|
||||
<script type="text/javascript" src="./js/common/time.js"></script>
|
||||
<script type="text/javascript" src="./js/common/modal.js"></script>
|
||||
<div>
|
||||
<div id="cb-drag">
|
||||
<p>ここに画像ファイルをドラッグし、画像をクリックしてください。</p>
|
||||
<input type="file" id="cb-file">
|
||||
</div>
|
||||
<div id="cb-display"></div>
|
||||
</div>
|
||||
<script type="text/javascript" src="https://dme0ih8comzn4.cloudfront.net/imaging/v2/editor.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
var dragAndDrop = (function (window, document) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var drag = document.getElementById("mainView");
|
||||
var disp = document.getElementById("cb-display");
|
||||
var file = document.getElementById("cb-file");
|
||||
|
||||
function makeView(data) {
|
||||
|
||||
var div, img, customEvent;
|
||||
var metaData = "<p>■ファイル名: <b>" + data.name + "</b><br>■容量: <b>" + data.size + "</b>バイト</p>";
|
||||
|
||||
div = document.createElement("div");
|
||||
div.setAttribute("class", "cb-div");
|
||||
|
||||
img = document.createElement("img");
|
||||
img.src = data.url;
|
||||
img.setAttribute("class", "cb-image");
|
||||
img.style.maxWidth = "100%";
|
||||
img.style.height = "auto";
|
||||
|
||||
div.appendChild(img);
|
||||
img.insertAdjacentHTML("afterend", metaData);
|
||||
disp.appendChild(div);
|
||||
|
||||
customEvent = document.createEvent("HTMLEvents");
|
||||
customEvent.initEvent("makeView", true, false);
|
||||
div.dispatchEvent(customEvent);
|
||||
|
||||
}
|
||||
|
||||
function readImage(e) {
|
||||
|
||||
var f = (e.dataTransfer) ? e.dataTransfer.files : e.target.files;
|
||||
|
||||
for (var i = 0, l = f.length; i < l; i++) {
|
||||
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onload = (function (f) {
|
||||
|
||||
var imageData = {};
|
||||
|
||||
return function (evt) {
|
||||
|
||||
if (f.type === "image/gif" || f.type === "image/png" || f.type === "image/jpeg") {
|
||||
|
||||
imageData.type = f.type;
|
||||
imageData.name = f.name;
|
||||
imageData.size = f.size;
|
||||
imageData.date = f.lastModifiedDate.toLocaleDateString();
|
||||
imageData.url = evt.target.result;
|
||||
makeView(imageData);
|
||||
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
})(f[i]);
|
||||
|
||||
reader.readAsDataURL(f[i]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function dragFiles() {
|
||||
|
||||
drag.addEventListener("drop", function (e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
readImage(e);
|
||||
}, false);
|
||||
|
||||
drag.addEventListener("dragover", function (e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
function uploadFiles() {
|
||||
|
||||
file.addEventListener("change", function (e) {
|
||||
readImage(e);
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
return {
|
||||
init: function () {
|
||||
dragFiles();
|
||||
uploadFiles();
|
||||
}
|
||||
};
|
||||
|
||||
})(this, this.document);
|
||||
|
||||
var photoEditor = (function (window, document) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var featherEditor = new Aviary.Feather({
|
||||
apiKey: "ffee425017ab44b18ce95dab98a5cdc1",
|
||||
onSave: function (imageID, newURL) {
|
||||
var img1 = document.getElementById(imageID);
|
||||
img1.src = newURL;
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('bmp-image', [newURL, 0]);
|
||||
window.close();
|
||||
}
|
||||
});
|
||||
|
||||
function clearImage() {
|
||||
this.parentNode.style.display = "none";
|
||||
}
|
||||
|
||||
function launchEditor(id, src) {
|
||||
featherEditor.launch({
|
||||
image: id,
|
||||
url: src
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
function editPhoto() {
|
||||
var id = this.getAttribute("id");
|
||||
var src = this.getAttribute("src");
|
||||
launchEditor(id, src);
|
||||
}
|
||||
|
||||
function makeButton() {
|
||||
var button = document.createElement("button");
|
||||
button.setAttribute("style",
|
||||
"width: 64px;"
|
||||
+ " line-height: 24px;"
|
||||
+ " background-color: #37474F;"
|
||||
+ " color: #fff;"
|
||||
+ " border: none;"
|
||||
+ " cursor: pointer;"
|
||||
+ " border-radius: 2px;"
|
||||
+ " font-size: 14px;"
|
||||
+ " position: absolute;"
|
||||
+ " text-align: center;"
|
||||
+ " top: 16px;"
|
||||
+ " right: 8px;"
|
||||
+ " padding: 0;"
|
||||
+ " z-index: 1000;"
|
||||
);
|
||||
button.innerHTML = "削除";
|
||||
return button;
|
||||
}
|
||||
|
||||
function listener() {
|
||||
|
||||
var disp = document.getElementById("cb-display");
|
||||
|
||||
disp.addEventListener("makeView", function () {
|
||||
|
||||
var image = document.querySelectorAll(".cb-image");
|
||||
var button = [];
|
||||
|
||||
for (var i = 0, l = image.length; i < l; i++) {
|
||||
|
||||
button[i] = makeButton();
|
||||
image[i].setAttribute("id", "cb-image_" + i);
|
||||
image[i].parentNode.style.position = "relative";
|
||||
image[i].parentNode.appendChild(button[i]);
|
||||
|
||||
button[i].addEventListener("click", clearImage, false);
|
||||
image[i].addEventListener("click", editPhoto, false);
|
||||
}
|
||||
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
return {
|
||||
init: function () {
|
||||
listener();
|
||||
}
|
||||
};
|
||||
|
||||
})(this, this.document);
|
||||
|
||||
dragAndDrop.init();
|
||||
photoEditor.init();
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="./js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="./js/platform/end.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
BIN
app/build/appx/Square150x150Logo.png
Normal file
BIN
app/build/appx/Square150x150Logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
app/build/appx/Square44x44Logo.png
Normal file
BIN
app/build/appx/Square44x44Logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.4 KiB |
BIN
app/build/appx/StoreLogo.png
Normal file
BIN
app/build/appx/StoreLogo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
BIN
app/build/appx/Wide310x150Logo.png
Normal file
BIN
app/build/appx/Wide310x150Logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 117 KiB |
@@ -50,6 +50,7 @@ option {
|
||||
max-height: 100vh;
|
||||
position: fixed;
|
||||
z-index: 9;
|
||||
top: 0 !important;
|
||||
}
|
||||
#videomodal,
|
||||
#tootmodal {
|
||||
@@ -75,6 +76,9 @@ option {
|
||||
min-width: 0 !important;
|
||||
margin-left: 5px !important;
|
||||
}
|
||||
.unvisible{
|
||||
opacity: 0;
|
||||
}
|
||||
.bbcode-pulse-loadings,
|
||||
.bbcode-pulse-loading,
|
||||
.fa-pulse {
|
||||
@@ -396,7 +400,8 @@ blockquote:before,
|
||||
text-align: center;
|
||||
width: calc(100% + 10px);
|
||||
border-radius: 5px;
|
||||
background-color: var(--bg);
|
||||
background-color: var(--box);
|
||||
filter: brightness(80%);
|
||||
margin-left: -5px;
|
||||
margin-right: -5px;
|
||||
margin-top: -5px;
|
||||
@@ -412,6 +417,45 @@ blockquote:before,
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
#support-btm {
|
||||
position: fixed;
|
||||
bottom: -300px;
|
||||
width: 100vw;
|
||||
background-color: var(--box);
|
||||
z-index: 9999;
|
||||
padding: 10px;
|
||||
display: grid;
|
||||
grid-template-columns: 3fr 1fr 1fr;
|
||||
grid-template-rows: 1fr 36px;
|
||||
grid-template-areas: "note middle right" "note close close";
|
||||
}
|
||||
#support-btm-en,
|
||||
#support-btm-ja {
|
||||
grid-area: note;
|
||||
}
|
||||
#support-btm-middle {
|
||||
grid-area: middle;
|
||||
}
|
||||
#support-btm-right {
|
||||
grid-area: right;
|
||||
}
|
||||
#support-btm-close {
|
||||
grid-area: close;
|
||||
}
|
||||
.select-wrapper .dropdown-content {
|
||||
width: 250px !important;
|
||||
}
|
||||
input, textarea {
|
||||
color: var(--color);
|
||||
font-size: 1rem !important;
|
||||
font-family: inherit;
|
||||
}
|
||||
.swal2-popup{
|
||||
background-color: var(--notfbox) !important;
|
||||
}
|
||||
.swal2-title, .swal2-content{
|
||||
color: var(--color) !important;
|
||||
}
|
||||
|
||||
/*スクロールバー*/
|
||||
::-webkit-scrollbar {
|
||||
|
9595
app/css/materialize.css
vendored
9595
app/css/materialize.css
vendored
File diff suppressed because it is too large
Load Diff
16
app/css/materialize.min.css
vendored
16
app/css/materialize.min.css
vendored
File diff suppressed because one or more lines are too long
@@ -12,6 +12,10 @@
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
textarea {
|
||||
min-height: 100px !important;
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
.cancel {
|
||||
font-size: 0.5rem;
|
||||
@@ -78,7 +82,7 @@
|
||||
max-height: 100px;
|
||||
}
|
||||
#default-emoji a {
|
||||
color: white;
|
||||
color: var(--color);
|
||||
margin-right: 2px;
|
||||
}
|
||||
.character-counter {
|
||||
@@ -120,7 +124,9 @@
|
||||
overflow-y: scroll;
|
||||
top: 90px;
|
||||
}
|
||||
|
||||
#posttgl,#toot-post-btn {
|
||||
background-color: var(--accentbtn);
|
||||
}
|
||||
/*mini*/
|
||||
.mini-post .mize {
|
||||
display: none !important;
|
||||
|
@@ -14,6 +14,7 @@
|
||||
--active: #e6ee9c;
|
||||
--postbox: white;
|
||||
--modalfooter: #fafafa;
|
||||
--accentbtn: #009688;
|
||||
}
|
||||
#imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
@@ -34,6 +35,7 @@
|
||||
--active: #757575;
|
||||
--postbox: #424242;
|
||||
--modalfooter: #212121;
|
||||
--accentbtn: #3f51b5;
|
||||
}
|
||||
.blacktheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
@@ -54,6 +56,7 @@
|
||||
--active: #757575;
|
||||
--postbox: #1a237e;
|
||||
--modalfooter: #031833;
|
||||
--accentbtn: #00acc1;
|
||||
}
|
||||
.indigotheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
@@ -74,6 +77,7 @@
|
||||
--active: #757575;
|
||||
--postbox: #4e342e;
|
||||
--modalfooter: #261411;
|
||||
--accentbtn: #827717;
|
||||
}
|
||||
.browntheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
@@ -86,7 +90,7 @@
|
||||
--modal: #81c784;
|
||||
--subcolor: #a5d6a7;
|
||||
--box: #81c784;
|
||||
--sidebar: #81c784;
|
||||
--sidebar: #c5e1a5;
|
||||
--shared: #ffcc80;
|
||||
--notfbox: #a5d6a7;
|
||||
--emphasized: #9e9d24;
|
||||
@@ -94,7 +98,29 @@
|
||||
--active: #e6ee9c;
|
||||
--postbox: #a5d6a7;
|
||||
--modalfooter: #81c784;
|
||||
--accentbtn: #33691e;
|
||||
}
|
||||
.greentheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
.bluetheme {
|
||||
--bg: #c9e1ec;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: black;
|
||||
--beforehover: #757575;
|
||||
--modal: #b2ebf2;
|
||||
--subcolor: #90caf9;
|
||||
--box: #90caf9;
|
||||
--sidebar: #b6e6f5;
|
||||
--shared: #e0ffe4;
|
||||
--notfbox: #90caf9;
|
||||
--emphasized: #c5e1a5;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #b39ddb;
|
||||
--postbox: #dff1ff;
|
||||
--modalfooter: #2196f3;
|
||||
--accentbtn: #2f7bb7;
|
||||
}
|
||||
.bluetheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
|
@@ -523,7 +523,7 @@ p:not(:last-child) {
|
||||
content: "...";
|
||||
}
|
||||
.toot a:not(.mention) span:last-of-type {
|
||||
display: none;
|
||||
/*display: none;*/
|
||||
}
|
||||
.tl-box .via-hide {
|
||||
display: none;
|
||||
@@ -594,6 +594,12 @@ p:not(:last-child) {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
audio{
|
||||
height: 2rem;
|
||||
}
|
||||
.translate{
|
||||
white-space: normal;
|
||||
}
|
||||
@keyframes jump {
|
||||
0% {
|
||||
transform: translateY(0);
|
||||
|
@@ -87,10 +87,10 @@
|
||||
#his-plus-action .btn {
|
||||
width: 170px;
|
||||
}
|
||||
.custom-tabs {
|
||||
.tabs {
|
||||
display: flex;
|
||||
}
|
||||
.custom-tabs .custom-tab a {
|
||||
.tabs .tab a {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
#his-des .mention {
|
||||
|
@@ -1,6 +1,4 @@
|
||||
//このソフトについて
|
||||
function about() {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('about', 'go');
|
||||
postMessage(["sendSinmpleIpc", "about"], "*")
|
||||
}
|
4
app/js/common/jquery.js
vendored
4
app/js/common/jquery.js
vendored
File diff suppressed because one or more lines are too long
@@ -20,7 +20,6 @@ $(function ($) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//Ctrl+Enter:投稿
|
||||
if (event.metaKey || event.ctrlKey && wv) {
|
||||
@@ -36,14 +35,6 @@ $(function ($) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//Shift+Space:Markdownゼロ幅スペース
|
||||
if (event.shiftKey) {
|
||||
if (e.keyCode === 32) {
|
||||
brInsert("");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//Esc:消す
|
||||
if (e.keyCode === 27 && wv) {
|
||||
hide();
|
||||
@@ -54,14 +45,6 @@ $(function ($) {
|
||||
location.href = "index.html";
|
||||
return false;
|
||||
}
|
||||
//Ctrl+R:ランキング
|
||||
if ((event.metaKey || event.ctrlKey) && wv) {
|
||||
if (e.keyCode === 82) {
|
||||
if (localStorage.getItem("kirishima")) {
|
||||
window.open("https://astarte.thedesk.top");
|
||||
}
|
||||
}
|
||||
}
|
||||
//Ctrl+Sift+C:全消し
|
||||
if (((event.metaKey || event.ctrlKey) && event.shiftKey) && wv) {
|
||||
if (e.keyCode === 67) {
|
||||
|
10135
app/js/common/materialize.js
vendored
10135
app/js/common/materialize.js
vendored
File diff suppressed because it is too large
Load Diff
6
app/js/common/materialize.min.js
vendored
6
app/js/common/materialize.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,8 +1,17 @@
|
||||
//モーダル・ドロップダウンの各種設定
|
||||
$(document).ready(function () {
|
||||
// the "href" attribute of the modal trigger must specify the modal ID that wants to be triggered
|
||||
$('.modal').modal();
|
||||
$('.dropdown-button').dropdown({
|
||||
$('.modal').modal({
|
||||
inDuration: 300,
|
||||
outDuration: 225,
|
||||
constrainWidth: false, // Does not change width of dropdown to that of the activator
|
||||
hover: false, // Activate on hover
|
||||
gutter: 0, // Spacing from edge
|
||||
belowOrigin: false, // Displays dropdown below the button
|
||||
alignment: 'left', // Displays dropdown with edge aligned to the left of button
|
||||
stopPropagation: false
|
||||
});
|
||||
$('.dropdown-trigger').dropdown({
|
||||
inDuration: 300,
|
||||
outDuration: 225,
|
||||
constrainWidth: false, // Does not change width of dropdown to that of the activator
|
||||
@@ -13,5 +22,5 @@ $(document).ready(function () {
|
||||
stopPropagation: false // Stops event propagation
|
||||
}
|
||||
);
|
||||
|
||||
$('.collapsible').collapsible();
|
||||
});
|
@@ -1,8 +1,22 @@
|
||||
//バージョンチェッカー
|
||||
function verck(ver) {
|
||||
console.log("%c Welcome😊", "color: red;font-size:200%;")
|
||||
if (localStorage.getItem("ver") != ver) {
|
||||
var date = new Date();
|
||||
var show = false
|
||||
if (localStorage.getItem("ver") != ver && localStorage.getItem("winstore")) {
|
||||
//ちょっと削除とリンク解析の都合上アレ(s)
|
||||
//対象外のアプデ:storageが20の最初まで"Usamin (18.6.5)"
|
||||
if (!localStorage.getItem("usamin_18_6_5_flag")) {
|
||||
localStorage.setItem("usamin_18_6_5_flag", true)
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
for (var i = 0; i < obj.length; i++) {
|
||||
localStorage.removeItem("card_" + i);
|
||||
}
|
||||
}
|
||||
//ちょっと削除とリンク解析の都合上アレ(e)
|
||||
localStorage.setItem("ver", ver);
|
||||
show = true
|
||||
console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
|
||||
$(document).ready(function () {
|
||||
$('#releasenote').modal('open');
|
||||
@@ -19,71 +33,33 @@ function verck(ver) {
|
||||
} else {
|
||||
$("#release-en").show();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
var electron = require("electron");
|
||||
var remote = electron.remote;
|
||||
var dialog = remote.dialog;
|
||||
var platform = remote.process.platform;
|
||||
console.log("Your platform:"+remote.process.platform)
|
||||
if (platform == "win32") {
|
||||
const options = {
|
||||
type: 'info',
|
||||
title: "Select your platform",
|
||||
message: lang.lang_version_platform,
|
||||
buttons: [lang.lang_no, lang.lang_yesno]
|
||||
}
|
||||
if (!localStorage.getItem("winstore")) {
|
||||
|
||||
dialog.showMessageBox(options, function (arg) {
|
||||
if (arg == 1) {
|
||||
localStorage.setItem("winstore", "winstore")
|
||||
} else {
|
||||
localStorage.setItem("winstore", "localinstall")
|
||||
}
|
||||
});
|
||||
}
|
||||
} else if (platform == "linux") {
|
||||
if (localStorage.getItem("winstore") == "unix") {
|
||||
localStorage.removeItem("winstore")
|
||||
}
|
||||
if (!localStorage.getItem("winstore")) {
|
||||
const options = {
|
||||
type: 'info',
|
||||
title: "Select your platform",
|
||||
message: lang.lang_version_platform_linux,
|
||||
buttons: [lang.lang_no, lang.lang_yesno]
|
||||
if (!show) {
|
||||
console.log(show)
|
||||
if (date.getMonth() + 1 >= localStorage.getItem("showSupportMe") || !localStorage.getItem("showSupportMe")) {
|
||||
if (date.getMonth() == 11) {
|
||||
var nextmonth = 1
|
||||
} else {
|
||||
var nextmonth = date.getMonth() + 2
|
||||
}
|
||||
dialog.showMessageBox(options, function (arg) {
|
||||
if (arg == 1) {
|
||||
localStorage.setItem("winstore", "snapcraft")
|
||||
} else {
|
||||
localStorage.setItem("winstore", "localinstall")
|
||||
}
|
||||
});
|
||||
}
|
||||
} else if (platform == "darwin") {
|
||||
if (localStorage.getItem("winstore") == "unix") {
|
||||
localStorage.removeItem("winstore")
|
||||
}
|
||||
if (!localStorage.getItem("winstore")) {
|
||||
const options = {
|
||||
type: 'info',
|
||||
title: "Select your platform",
|
||||
message: lang.lang_version_platform_mac,
|
||||
buttons: [lang.lang_no, lang.lang_yesno]
|
||||
if (lang.language != "ja") {
|
||||
$("#support-btm-ja").addClass("hide");
|
||||
$("#support-btm-en").removeClass("hide");
|
||||
}
|
||||
dialog.showMessageBox(options, function (arg) {
|
||||
if (arg == 1) {
|
||||
localStorage.setItem("winstore", "brewcask")
|
||||
} else {
|
||||
localStorage.setItem("winstore", "localinstall")
|
||||
}
|
||||
});
|
||||
localStorage.setItem("showSupportMe", nextmonth)
|
||||
$("#support-btm").removeClass("hide")
|
||||
$("#support-btm").animate({
|
||||
'bottom': '0'
|
||||
}, {
|
||||
'duration': 300
|
||||
});
|
||||
}
|
||||
} else {
|
||||
localStorage.setItem("winstore", "unix")
|
||||
}
|
||||
var platform = localStorage.getItem("platform");
|
||||
console.log("Your platform:" + platform)
|
||||
if (!localStorage.getItem("winstore")) {
|
||||
storeDialog(platform, ver)
|
||||
}
|
||||
if (localStorage.getItem("winstore") == "brewcask" || localStorage.getItem("winstore") == "snapcraft" || localStorage.getItem("winstore") == "winstore") {
|
||||
var winstore = true;
|
||||
@@ -109,9 +85,7 @@ function verck(ver) {
|
||||
}).then(function (mess) {
|
||||
console.table(mess);
|
||||
if (mess) {
|
||||
var electron = require("electron");
|
||||
var remote = electron.remote;
|
||||
var platform = remote.process.platform;
|
||||
var platform = localStorage.getItem("platform");
|
||||
if (platform == "darwin") {
|
||||
var newest = mess.desk_mac;
|
||||
} else {
|
||||
@@ -126,15 +100,13 @@ function verck(ver) {
|
||||
localStorage.removeItem("instance")
|
||||
if (localStorage.getItem("new-ver-skip")) {
|
||||
if (localStorage.getItem("next-ver") != newest) {
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('update', "true");
|
||||
postMessage(["sendSinmpleIpc", "update"], "*")
|
||||
} else {
|
||||
console.warn(lang.lang_version_skipver);
|
||||
todo(lang.lang_version_skipver);
|
||||
}
|
||||
} else {
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('update', "true");
|
||||
postMessage(["sendSinmpleIpc", "update"], "*")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -167,28 +139,28 @@ function verck(ver) {
|
||||
} else {
|
||||
var toot = "";
|
||||
}
|
||||
if (obj.Ver != "") {
|
||||
if (obj.Ver == ver) {
|
||||
if (obj.ver != "") {
|
||||
if (obj.ver == ver) {
|
||||
show = true;
|
||||
} else {
|
||||
show = false;
|
||||
}
|
||||
}
|
||||
if (obj.Domain != "") {
|
||||
if (obj.domain != "") {
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (multi) {
|
||||
show = false;
|
||||
var accts = JSON.parse(multi);
|
||||
Object.keys(accts).forEach(function (key) {
|
||||
var acct = accts[key];
|
||||
if (acct.domain == obj.Domain) {
|
||||
if (acct.domain == obj.domain) {
|
||||
show = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
if (show) {
|
||||
Materialize.toast(escapeHTML(obj.Text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', 86400);
|
||||
M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -235,7 +207,7 @@ function infowebsocket() {
|
||||
}
|
||||
}
|
||||
if (show) {
|
||||
Materialize.toast(escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', 86400);
|
||||
M.toast({ html: escapeHTML(obj.Text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 })
|
||||
}
|
||||
} else {
|
||||
$("#persons").text(obj.text);
|
||||
@@ -272,4 +244,59 @@ function openRN() {
|
||||
} else {
|
||||
$("#release-en").show();
|
||||
}
|
||||
}
|
||||
function closeSupport() {
|
||||
$("#support-btm").animate({
|
||||
'bottom': '-300px'
|
||||
}, {
|
||||
'duration': 300,
|
||||
'complete': function () {
|
||||
$("#support-btm").addClass("hide")
|
||||
}
|
||||
});
|
||||
}
|
||||
function storeDialog(platform, ver) {
|
||||
if (platform == "win32") {
|
||||
var mes = lang.lang_version_platform;
|
||||
} else if (platform == "linux") {
|
||||
var mes = lang.lang_version_platform_linux;
|
||||
} else if (platform == "darwin") {
|
||||
var mes = lang.lang_version_platform_mac;
|
||||
}
|
||||
Swal.fire({
|
||||
title: "Select your platform",
|
||||
text: mes,
|
||||
type: 'info',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#3085d6',
|
||||
confirmButtonText: lang.lang_no,
|
||||
cancelButtonText: lang.lang_yesno
|
||||
}).then((result) => {
|
||||
//逆にしてる
|
||||
if (!result.value) {
|
||||
localStorage.setItem("winstore", "winstore")
|
||||
} else {
|
||||
localStorage.setItem("winstore", "localinstall")
|
||||
}
|
||||
localStorage.setItem("ver", ver);
|
||||
show = true
|
||||
console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
|
||||
$(document).ready(function () {
|
||||
$('#releasenote').modal('open');
|
||||
verp = ver.replace('(', '');
|
||||
verp = verp.replace('.', '-');
|
||||
verp = verp.replace('.', '-');
|
||||
verp = verp.replace('[', '-');
|
||||
verp = verp.replace(']', '');
|
||||
verp = verp.replace(')', '');
|
||||
verp = verp.replace(' ', '_');
|
||||
console.log("%c " + verp, "color: red;font-size:200%;");
|
||||
if (lang.language == "ja") {
|
||||
$("#release-" + verp).show();
|
||||
} else {
|
||||
$("#release-en").show();
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
@@ -21,9 +21,9 @@ var lang = {
|
||||
//common/version.js
|
||||
"lang_version_usever": "No update is found({{ver}})",
|
||||
"lang_version_skipver": "Update was ignored.",
|
||||
"lang_version_platform": "Was this software installed at Microsoft Store? When select 'yes', any update was ignored.",
|
||||
"lang_version_platform_linux": "Was this software installed at Snapcraft(snapd)? When select 'yes', any update was ignored.",
|
||||
"lang_version_platform_mac": "Was this software installed at Homebrew Cask? When select 'yes', any update was ignored.",
|
||||
"lang_version_platform": "Do you want auto-updates?(users installed on Microsoft Store select 'No')",
|
||||
"lang_version_platform_linux": "Do you want auto-updates?(users installed on Snapcraft select 'No')",
|
||||
"lang_version_platform_mac": "Do you want auto-updates?(Homebrew Cask users select 'No')",
|
||||
//login
|
||||
//login/login.js
|
||||
"lang_login_noauth": "Show TL of unlogined accounts",
|
||||
@@ -37,6 +37,7 @@ var lang = {
|
||||
"lang_manager_def": "Default",
|
||||
"lang_manager_none": "None",
|
||||
"lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.",
|
||||
"lang_manager_logout": "Logout",
|
||||
//post/bb-md.js
|
||||
"lang_bbmd_misskey": "TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
|
||||
//post/emoji.js
|
||||
@@ -64,6 +65,7 @@ var lang = {
|
||||
"lang_status_unblock": "Unblock",
|
||||
"lang_status_mute": "Mute",
|
||||
"lang_status_unmute": "Unmute",
|
||||
"lang_status_redraftTitle": "Delete & redraft",
|
||||
"lang_status_redraft": "Continue to delete & redraft? You lose statuses of this toot. This fanction may contain some bugs. Images of this toot will be deleted on older than Mastodon 2.4.1.",
|
||||
"lang_status_emphas": "'s toots are emphasized. Please reload after this action.",
|
||||
"lang_status_unemphas": "'s toots are not emphasized. Please reload after this action.",
|
||||
@@ -109,6 +111,8 @@ var lang = {
|
||||
//tl/tl.js
|
||||
"lang_tl_media": "Media",
|
||||
"lang_tl_reconnect": "Reconnect to streaming API",
|
||||
//ui/img.js
|
||||
"lang_img_DLDone": "Downloaded:",
|
||||
//ui/layout.js
|
||||
"lang_layout_gotop": "Go top of this column. When icon is red, this column cannot connect straming API. Please reload.",
|
||||
"lang_layout_thisacct": "{{notf}} of this account",
|
||||
@@ -127,6 +131,8 @@ var lang = {
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn":"Delete this column",
|
||||
"lang_layout_deleteColumnDesc":"Delete this column",
|
||||
//ui/sort.js
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
|
@@ -21,9 +21,9 @@ var lang = {
|
||||
//common/version.js
|
||||
"lang_version_usever": "お使いのバージョン{{ver}}は最新です。",
|
||||
"lang_version_skipver": "アップデートはスキップされました。",
|
||||
"lang_version_platform": "このソフトウェアはMicrosoft Storeからダウンロードされましたか?(「はい」を選択すると次回からアップデート通知を無視します。)",
|
||||
"lang_version_platform_linux": "このソフトウェアはSnapcraft(snapd)からインストールしましたか?(「はい」を選択すると次回からアップデート通知を無視します。)",
|
||||
"lang_version_platform_mac": "このソフトウェアはHomebrew Caskからインストールしましたか?(「はい」を選択すると次回からアップデート通知を無視します。)",
|
||||
"lang_version_platform": "このソフトウェアはMicrosoft Storeからダウンロードされましたか?通常はホームページからインストールするため「いいえ」を選んでください。「はい」を選ぶとMicrosoft Storeからアップデートが提供され、アップデートの通知を出しません。",
|
||||
"lang_version_platform_linux": "このソフトウェアはSnapcraft(snapd)からインストールしましたか?通常はホームページからインストールするため「いいえ」を選んでください。「はい」を選ぶとSnapcraftからアップデートが提供され、アップデートの通知を出しません。",
|
||||
"lang_version_platform_mac": "このソフトウェアはHomebrew Caskからインストールしましたか?通常はホームページからインストールするため「いいえ」を選んでください。「はい」を選ぶとアップデートの通知を出しません。",
|
||||
//login
|
||||
//login/login.js
|
||||
"lang_login_noauth": "認証せずに見る",
|
||||
@@ -37,6 +37,7 @@ var lang = {
|
||||
"lang_manager_def": "既定",
|
||||
"lang_manager_none": "なし",
|
||||
"lang_manager_godev": "MisskeyのDevセンターに移動します。同時に開かれるドキュメントを参考にログインしてください。",
|
||||
"lang_manager_logout": "ログアウト",
|
||||
//post/bb-md.js
|
||||
"lang_bbmd_misskey": "TheDeskにおけるMisskeyでは、@を返信として扱いますが、全ての@は消去され別パラメータに入力されます。また、「未収載」を「ホーム」として扱います。",
|
||||
//post/emoji.js
|
||||
@@ -64,6 +65,7 @@ var lang = {
|
||||
"lang_status_unblock": "ブロック解除",
|
||||
"lang_status_mute": "ミュート",
|
||||
"lang_status_unmute": "ミュート解除",
|
||||
"lang_status_redraftTitle": "削除して再編集",
|
||||
"lang_status_redraft": "削除して再編集しますか?そのトゥートの全てのデータがリセットされます。この機能はベータ版です。画像は~v2.4.1で破棄されます。",
|
||||
"lang_status_emphas": "を強調します。リロードしてください。",
|
||||
"lang_status_unemphas": "を強調解除します。リロードしてください。",
|
||||
@@ -129,6 +131,8 @@ var lang = {
|
||||
"lang_layout_excludingbt": "BT表示(OFF/BT除外/BTのみ)",
|
||||
"lang_layout_leftFold": "左へ重ねる",
|
||||
"lang_layout_leftUnfold": "右へ出す",
|
||||
"lang_layout_deleteColumn":"カラム削除",
|
||||
"lang_layout_deleteColumnDesc":"カラムを削除しますか?",
|
||||
//ui/sort.js
|
||||
"lang_sort_gothis": "このカラムへ",
|
||||
"lang_sort_remthis": "このカラムを削除",
|
||||
@@ -184,8 +188,8 @@ var lang = {
|
||||
"lang_parse_det": "詳細(メインアカウント経由)",
|
||||
"lang_parse_redraft": "このトゥートを削除して再編集",
|
||||
"lang_parse_followed": "フォローされました。",
|
||||
"lang_parse_clientop": "クライアント処理",
|
||||
"lang_parse_clienttxt": "に対する処理を選択してください。",
|
||||
"lang_parse_clientop": "クライアント操作",
|
||||
"lang_parse_clienttxt": " に対する処理を選択してください。",
|
||||
"lang_parse_clientno": "何もしない",
|
||||
"lang_parse_clientemp": "強調表示/解除",
|
||||
"lang_parse_clientmute": "ミュート",
|
||||
|
@@ -13,12 +13,6 @@ var idata = {
|
||||
"minohdon.jp_bbcode": "disabled",
|
||||
"minohdon.jp_markdown": "disabled",
|
||||
"minohdon.jp_glitch": "disabled",
|
||||
"knzk.me": "instance",
|
||||
"knzk.me_name": "Knzk",
|
||||
"knzk.me_letters": "5000",
|
||||
"knzk.me_bbcode": "disabled",
|
||||
"knzk.me_markdown": "disabled",
|
||||
"knzk.me_glitch": "disabled",
|
||||
"mastodos.com": "instance",
|
||||
"mastodos.com_name": "マストどす",
|
||||
"mastodos.com_letters": "500",
|
||||
@@ -90,16 +84,16 @@ var idata = {
|
||||
"dtp-mstdn.jp_bbcode": "disabled",
|
||||
"dtp-mstdn.jp_markdown": "disabled",
|
||||
"dtp-mstdn.jp_glitch": "disabled",
|
||||
"misskey.xyz": "misskey",
|
||||
"misskey.xyz_name": "misskey.xyz",
|
||||
"misskey.xyz_letters": "1000",
|
||||
"misskey.xyz_bbcode": "disabled",
|
||||
"misskey.xyz_markdown": "enabled",
|
||||
"misskey.xyz_public": "Global",
|
||||
"misskey.xyz_post": "Post",
|
||||
"misskey.xyz_fav": " reacted your post.",
|
||||
"misskey.xyz_bt": " reposted your post.",
|
||||
"misskey.dev": "misskey",
|
||||
"misskey.io": "misskey",
|
||||
"misskey.io_name": "misskey.io",
|
||||
"misskey.io_letters": "1000",
|
||||
"misskey.io_bbcode": "disabled",
|
||||
"misskey.io_markdown": "enabled",
|
||||
"misskey.io_public": "Global",
|
||||
"misskey.io_post": "Post",
|
||||
"misskey.io_fav": " reacted your post.",
|
||||
"misskey.io_bt": " reposted your post.",
|
||||
"misskey.dev": "misskey.dev",
|
||||
"misskey.dev_name": "misskey.dev",
|
||||
"misskey.dev_letters": "1024",
|
||||
"misskey.dev_bbcode": "disabled",
|
||||
@@ -114,13 +108,7 @@ var idata = {
|
||||
"precure.ml_bbcode": "disabled",
|
||||
"precure.ml_markdown": "disabled",
|
||||
"precure.ml_post": "キュア!",
|
||||
"precure.ml_glitch": "disabled",
|
||||
"best-friends.chat": "instance",
|
||||
"best-friends.chat_name": "Best Friends",
|
||||
"best-friends.chat_letters": "500",
|
||||
"best-friends.chat_bbcode": "disabled",
|
||||
"best-friends.chat_markdown": "disabled",
|
||||
"best-friends.chat_glitch": "disabled",
|
||||
"precure.ml_glitch": "disabled"
|
||||
};
|
||||
|
||||
localStorage.setItem("instance", JSON.stringify(idata));
|
||||
|
@@ -26,6 +26,8 @@ function ck() {
|
||||
}
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (!multi || multi == "[]") {
|
||||
var date = new Date();
|
||||
localStorage.setItem("showSupportMe", date.getMonth() + 2)
|
||||
location.href = "acct.html?mode=first&code=true"
|
||||
} else {
|
||||
var obj = JSON.parse(multi);
|
||||
@@ -77,15 +79,11 @@ function login(url) {
|
||||
localStorage.setItem("client_secret", json["client_secret"]);
|
||||
$("#auth").show();
|
||||
$("#masara").hide();
|
||||
const { shell } = require('electron');
|
||||
|
||||
shell.openExternal(auth);
|
||||
postMessage(["openUrl", auth], "*")
|
||||
|
||||
if ($('#linux:checked').val() == "on") {
|
||||
} else {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('quit', 'go');
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -164,8 +162,7 @@ function getdata() {
|
||||
}).then(function (json) {
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error,
|
||||
5000);
|
||||
M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
|
||||
return;
|
||||
}
|
||||
var avatar = json["avatar"];
|
||||
@@ -212,8 +209,7 @@ function getdataAdv(domain, at) {
|
||||
}).then(function (json) {
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error,
|
||||
5000);
|
||||
M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
|
||||
return;
|
||||
}
|
||||
var avatar = json["avatar"];
|
||||
@@ -271,8 +267,7 @@ function refresh(target, loadskip) {
|
||||
}).then(function (json) {
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error,
|
||||
5000);
|
||||
M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
|
||||
return;
|
||||
}
|
||||
var avatar = json["avatar"];
|
||||
@@ -494,7 +489,7 @@ function multiSelector() {
|
||||
$("#src-acct-sel").append('<option value="tootsearch">Tootsearch</option>');
|
||||
$("#add-acct-sel").append('<option value="noauth">' + lang.lang_login_noauth + '</option><option value="webview">Twitter</option>');
|
||||
}
|
||||
$('select').material_select('update');
|
||||
$('select').formSelect();
|
||||
parseColumn(true);
|
||||
}
|
||||
|
||||
|
@@ -146,114 +146,136 @@ function multiDel(target) {
|
||||
var multi = localStorage.getItem("multi");
|
||||
var obj = JSON.parse(multi);
|
||||
//削除確認ダイアログ
|
||||
if (confirm(obj[target]["user"] + "@" + obj[target]["domain"] + lang.lang_manager_confirm)) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var nk = key - 1;
|
||||
//公開範囲(差分のみ)
|
||||
if (key >= target) {
|
||||
var oldvis = localStorage.getItem("vis-memory-" + key);
|
||||
if (oldvis) {
|
||||
localStorage.setItem("vis-memory-" + nk, oldvis);
|
||||
Swal.fire({
|
||||
title: lang.lang_manager_logout,
|
||||
text: obj[target]["user"] + "@" + obj[target]["domain"] + lang.lang_manager_confirm,
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var nk = key - 1;
|
||||
//公開範囲(差分のみ)
|
||||
if (key >= target) {
|
||||
var oldvis = localStorage.getItem("vis-memory-" + key);
|
||||
if (oldvis) {
|
||||
localStorage.setItem("vis-memory-" + nk, oldvis);
|
||||
}
|
||||
}
|
||||
//独自ロケール
|
||||
localStorage.removeItem("home_" + key);
|
||||
localStorage.removeItem("local_" + key);
|
||||
localStorage.removeItem("public_" + key);
|
||||
localStorage.removeItem("notification_" + key);
|
||||
//アクセストークンとドメイン、プロフ(差分)
|
||||
if (key > target) {
|
||||
var olddom = localStorage.getItem("domain_" + key);
|
||||
localStorage.setItem("domain_" + nk, olddom);
|
||||
var oldat = localStorage.getItem("acct_" + key + "_at");
|
||||
localStorage.setItem("acct_" + nk + "_at", oldat);
|
||||
localStorage.setItem("name_" + nk, localStorage.getItem("name_" + key));
|
||||
localStorage.setItem("user_" + target, localStorage.getItem("user_" + key));
|
||||
localStorage.setItem("user-id_" + target, localStorage.getItem("user-id_" + key));
|
||||
localStorage.setItem("prof_" + target, localStorage.getItem("prof_" + key));
|
||||
}
|
||||
}
|
||||
//独自ロケール
|
||||
localStorage.removeItem("home_" + key);
|
||||
localStorage.removeItem("local_" + key);
|
||||
localStorage.removeItem("public_" + key);
|
||||
localStorage.removeItem("notification_" + key);
|
||||
//アクセストークンとドメイン、プロフ(差分)
|
||||
if (key > target) {
|
||||
var olddom = localStorage.getItem("domain_" + key);
|
||||
localStorage.setItem("domain_" + nk, olddom);
|
||||
var oldat = localStorage.getItem("acct_" + key + "_at");
|
||||
localStorage.setItem("acct_" + nk + "_at", oldat);
|
||||
localStorage.setItem("name_" + nk, localStorage.getItem("name_" + key));
|
||||
localStorage.setItem("user_" + target, localStorage.getItem("user_" + key));
|
||||
localStorage.setItem("user-id_" + target, localStorage.getItem("user-id_" + key));
|
||||
localStorage.setItem("prof_" + target, localStorage.getItem("prof_" + key));
|
||||
}
|
||||
|
||||
});
|
||||
//とりあえず消す
|
||||
obj.splice(target, 1);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
load();
|
||||
//カラムデータコンフリクト
|
||||
var col = localStorage.getItem("column");
|
||||
var oldcols = JSON.parse(col);
|
||||
var newcols = [];
|
||||
Object.keys(oldcols).forEach(function (key) {
|
||||
var nk = key - 1;
|
||||
var oldcol = oldcols[key];
|
||||
if (target < oldcol.domain) {
|
||||
var newdom = oldcol.domain - 1;
|
||||
} else {
|
||||
var newdom = oldcol.domain;
|
||||
}
|
||||
var type = oldcol.type;
|
||||
//消した垢のコラムじゃないときコピー
|
||||
if (target != oldcol.domain) {
|
||||
var add = {
|
||||
domain: newdom,
|
||||
type: type
|
||||
};
|
||||
newcols.push(add);
|
||||
}
|
||||
});
|
||||
var json = JSON.stringify(newcols);
|
||||
localStorage.setItem("column", json);
|
||||
});
|
||||
//とりあえず消す
|
||||
obj.splice(target, 1);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
load();
|
||||
//カラムデータコンフリクト
|
||||
var col = localStorage.getItem("column");
|
||||
var oldcols = JSON.parse(col);
|
||||
var newcols = [];
|
||||
Object.keys(oldcols).forEach(function (key) {
|
||||
var nk = key - 1;
|
||||
var oldcol = oldcols[key];
|
||||
if (target < oldcol.domain) {
|
||||
var newdom = oldcol.domain - 1;
|
||||
} else {
|
||||
var newdom = oldcol.domain;
|
||||
}
|
||||
var type = oldcol.type;
|
||||
//消した垢のコラムじゃないときコピー
|
||||
if (target != oldcol.domain) {
|
||||
var add = {
|
||||
domain: newdom,
|
||||
type: type
|
||||
};
|
||||
newcols.push(add);
|
||||
}
|
||||
});
|
||||
var json = JSON.stringify(newcols);
|
||||
localStorage.setItem("column", json);
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
function multiDel2(target) {
|
||||
var multi = localStorage.getItem("multi");
|
||||
var obj = JSON.parse(multi);
|
||||
if (confirm(obj[target]["user"] + "@" + obj[target]["domain"] + lang.lang_manager_confirm)) {
|
||||
obj.splice(target, 1);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
if (key >= target) {
|
||||
var oldvis = localStorage.getItem("vis-memory-" + key);
|
||||
if (oldvis) {
|
||||
var nk = key - 1;
|
||||
localStorage.setItem("vis-memory-" + nk, oldvis);
|
||||
}
|
||||
}
|
||||
localStorage.removeItem("home_" + key);
|
||||
localStorage.removeItem("local_" + key);
|
||||
localStorage.removeItem("public_" + key);
|
||||
localStorage.removeItem("notification_" + key);
|
||||
refresh(key);
|
||||
});
|
||||
var col = localStorage.getItem("column");
|
||||
if (!col) {
|
||||
var obj = [{
|
||||
domain: 0,
|
||||
type: 'local'
|
||||
}];
|
||||
localStorage.setItem("card_0", "true");
|
||||
Swal.fire({
|
||||
title: lang.lang_manager_logout,
|
||||
text: obj[target]["user"] + "@" + obj[target]["domain"] + lang.lang_manager_confirm,
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
obj.splice(target, 1);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
} else {
|
||||
var cobj = JSON.parse(col);
|
||||
}
|
||||
Object.keys(cobj).forEach(function (key) {
|
||||
var column = cobj[key];
|
||||
if (column.domain > target) {
|
||||
var nk = key - 1;
|
||||
column.domain = nk;
|
||||
cobj[key] = column;
|
||||
} else if (column.domain == target) {
|
||||
localStorage.removeItem("card_" + tlid);
|
||||
cobj.splice(key, 1);
|
||||
localStorage.setItem("multi", json);
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
if (key >= target) {
|
||||
var oldvis = localStorage.getItem("vis-memory-" + key);
|
||||
if (oldvis) {
|
||||
var nk = key - 1;
|
||||
localStorage.setItem("vis-memory-" + nk, oldvis);
|
||||
}
|
||||
}
|
||||
localStorage.removeItem("home_" + key);
|
||||
localStorage.removeItem("local_" + key);
|
||||
localStorage.removeItem("public_" + key);
|
||||
localStorage.removeItem("notification_" + key);
|
||||
refresh(key);
|
||||
});
|
||||
var col = localStorage.getItem("column");
|
||||
if (!col) {
|
||||
var obj = [{
|
||||
domain: 0,
|
||||
type: 'local'
|
||||
}];
|
||||
localStorage.setItem("card_0", "true");
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
} else {
|
||||
var cobj = JSON.parse(col);
|
||||
}
|
||||
});
|
||||
var json = JSON.stringify(column);
|
||||
localStorage.setItem("column", json);
|
||||
load();
|
||||
}
|
||||
Object.keys(cobj).forEach(function (key) {
|
||||
var column = cobj[key];
|
||||
if (column.domain > target) {
|
||||
var nk = key - 1;
|
||||
column.domain = nk;
|
||||
cobj[key] = column;
|
||||
} else if (column.domain == target) {
|
||||
localStorage.removeItem("card_" + tlid);
|
||||
cobj.splice(key, 1);
|
||||
}
|
||||
});
|
||||
var json = JSON.stringify(column);
|
||||
localStorage.setItem("column", json);
|
||||
load();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//サポートインスタンス
|
||||
@@ -282,7 +304,7 @@ function login(url) {
|
||||
return;
|
||||
}
|
||||
if ($('#linux:checked').val() == "on") {
|
||||
var red = "https://thedesk.top/hello.html"
|
||||
var red = "urn:ietf:wg:oauth:2.0:oob"
|
||||
} else {
|
||||
var red = 'thedesk://manager';
|
||||
}
|
||||
@@ -310,15 +332,9 @@ function login(url) {
|
||||
localStorage.setItem("client_secret", json["client_secret"]);
|
||||
$("#auth").show();
|
||||
$("#add").hide();
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
|
||||
shell.openExternal(auth);
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
postMessage(["openUrl", auth], "*")
|
||||
if ($('#linux:checked').val() == "on") { } else {
|
||||
ipc.send('quit', 'go');
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -407,16 +423,13 @@ function misskeyAuth(url, mkc) {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
var token = json.token;
|
||||
$("#auth").show();
|
||||
$("#code").val(token);
|
||||
$("#add").hide();
|
||||
$("#misskey").prop("checked", false);
|
||||
localStorage.setItem("domain_tmp", url);
|
||||
shell.openExternal(json.url);
|
||||
postMessage(["openUrl", json.url], "*")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -495,7 +508,7 @@ function code(code) {
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({
|
||||
grant_type: "authorization_code",
|
||||
redirect_uri: "https://thedesk.top/hello.html",
|
||||
redirect_uri: "urn:ietf:wg:oauth:2.0:oob",
|
||||
client_id: id,
|
||||
client_secret: secret,
|
||||
code: code
|
||||
@@ -530,8 +543,7 @@ function getdata(domain, at) {
|
||||
}).then(function (json) {
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + escapeHTML(json.error),
|
||||
5000);
|
||||
M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
|
||||
return;
|
||||
}
|
||||
var avatar = json["avatar"];
|
||||
@@ -595,8 +607,7 @@ function refresh(target) {
|
||||
}).then(function (json) {
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error,
|
||||
5000);
|
||||
M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
|
||||
return;
|
||||
}
|
||||
var avatar = json["avatar"];
|
||||
@@ -704,12 +715,12 @@ function multisel() {
|
||||
|
||||
});
|
||||
}
|
||||
$('select').material_select('update');
|
||||
$('select').formSelect();
|
||||
}
|
||||
function mainacct() {
|
||||
var acct_id = $("#main-acct-sel").val();
|
||||
localStorage.setItem("main", acct_id);
|
||||
Materialize.toast(lang.lang_manager_mainAcct, 3000);
|
||||
M.toast({ html: lang.lang_manager_mainAcct, displayLength: 3000 })
|
||||
}
|
||||
function colorpicker(key) {
|
||||
temp =
|
||||
|
@@ -47,11 +47,7 @@ $(document).on('click', 'a', e => {
|
||||
udgEx(ats[2] + "@" + ats[1], "main");
|
||||
return false
|
||||
} else {
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
|
||||
shell.openExternal(url);
|
||||
postMessage(["openUrl", url], "*")
|
||||
}
|
||||
|
||||
|
||||
@@ -60,12 +56,11 @@ $(document).on('click', 'a', e => {
|
||||
//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);
|
||||
postMessage(["openUrl", url], "*")
|
||||
} else {
|
||||
|
||||
location.href = url;
|
||||
@@ -88,12 +83,6 @@ function execCopy(string) {
|
||||
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;
|
||||
@@ -106,30 +95,6 @@ function progshow(e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
@@ -139,14 +104,6 @@ function opendev() {
|
||||
});
|
||||
*/
|
||||
}
|
||||
|
||||
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();
|
||||
@@ -162,4 +119,51 @@ function playSound() {
|
||||
volumeControl.connect(context.destination);
|
||||
volumeControl.gain.value = 0.8
|
||||
source.start(0);
|
||||
}
|
||||
function nano() {
|
||||
postMessage(["nano", null], "*")
|
||||
}
|
||||
onmessage = function (e) {
|
||||
if (e.data[0] == "details") {
|
||||
details(e.data[1][0], e.data[1][1])
|
||||
} else if (e.data[0] == "udg") {
|
||||
udg(e.data[1][0], e.data[1][1])
|
||||
} else if (e.data[0] == "media") {
|
||||
media(e.data[1][0], e.data[1][1], e.data[1][2])
|
||||
} else if (e.data[0] == "post") {
|
||||
post("pass")
|
||||
} else if (e.data[0] == "toastSaved") {
|
||||
M.toast({ html: lang.lang_img_DLDone + e.data[1][0] + '<button class="btn-flat toast-action" onclick="openFinder(\'' + e.data[1][1] + '\')">Show</button>', displayLength: 5000 })
|
||||
} else if (e.data[0] == "parseColumn") {
|
||||
parseColumn()
|
||||
} else if (e.data[0] == "exportSettingsCore") {
|
||||
exportSettingsCore()
|
||||
} else if (e.data[0] == "fontList") {
|
||||
fontList(e.data[1])
|
||||
} else if (e.data[0] == "customSoundSave") {
|
||||
customSoundSave(e.data[1][0], e.data[1][1])
|
||||
} else if (e.data[0] == "ctLoadCore") {
|
||||
ctLoadCore(e.data[1])
|
||||
} else if (e.data[0] == "ctLoad") {
|
||||
ctLoad()
|
||||
} else if (e.data[0] == "customConnect") {
|
||||
customConnect(e.data[1])
|
||||
} else if (e.data[0] == "clearCustomImport") {
|
||||
clearCustomImport()
|
||||
} else if (e.data[0] == "npCore") {
|
||||
npCore(e.data[1]);
|
||||
} else if (e.data[0] == "renderMem") {
|
||||
renderMem(e.data[1][0], e.data[1][1], e.data[1][2])
|
||||
} else if (e.data[0] == "updateProg") {
|
||||
updateProg(e.data[1]);
|
||||
} else if (e.data[0] == "updateMess") {
|
||||
updateMess(e.data[1]);
|
||||
} else if (e.data[0] == "renderAbout") {
|
||||
renderAbout(e.data[1]);
|
||||
} else if (e.data[0] == "alert") {
|
||||
Swal.fire({
|
||||
type: 'info',
|
||||
title: e.data[1]
|
||||
})
|
||||
}
|
||||
}
|
@@ -1,3 +1 @@
|
||||
//jQuery読む
|
||||
window.jQuery = window.$ = require('./js/common/jquery.js');
|
||||
var Hammer = require('./js/common/hammer.min.js');
|
@@ -1,6 +1,3 @@
|
||||
//jQuery読む
|
||||
window.jQuery = window.$ = require('../../js/common/jquery.js');
|
||||
var Hammer = require('../../js/common/hammer.min.js');
|
||||
$.strip_tags = function (str, allowed) {
|
||||
if (!str) {
|
||||
return "";
|
||||
@@ -89,27 +86,7 @@ function formattimeutc(date) {
|
||||
}
|
||||
return escapeHTML(str);
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('custom-css-request', "");
|
||||
ipc.on('custom-css-response', function (event, arg) {
|
||||
if (arg == "") { return false; }
|
||||
var styleNode = document.createElement("style");
|
||||
styleNode.setAttribute("type", "text/css")
|
||||
|
||||
var content = document.createTextNode(arg)
|
||||
styleNode.append(content)
|
||||
document.getElementsByTagName("head")[0].append(styleNode)
|
||||
})
|
||||
ipc.on('theme-css-response', function (event, arg) {
|
||||
if (arg == "") { return false; }
|
||||
var styleNode = document.createElement("style");
|
||||
styleNode.setAttribute("type", "text/css")
|
||||
|
||||
var content = document.createTextNode(arg)
|
||||
styleNode.append(content)
|
||||
document.getElementsByTagName("head")[0].append(styleNode)
|
||||
})
|
||||
postMessage(["sendSinmpleIpc", "custom-css-request"], "*")
|
||||
function makeCID() {
|
||||
return randomStr(8) + "-" + randomStr(4) + "-" + randomStr(4) + "-" + randomStr(4) + "-" + randomStr(12);
|
||||
}
|
||||
|
174
app/js/platform/preload.js
Normal file
174
app/js/platform/preload.js
Normal file
@@ -0,0 +1,174 @@
|
||||
var electron = require("electron");
|
||||
const shell = electron.shell;
|
||||
var ipc = electron.ipcRenderer;
|
||||
onmessage = function (e) {
|
||||
if (e.data[0] == "openUrl") {
|
||||
urls = e.data[1].match(/https?:\/\/(.+)/);
|
||||
if (urls) {
|
||||
shell.openExternal(e.data[1]);
|
||||
}
|
||||
} else if (e.data[0] == "sendSinmpleIpc") {
|
||||
ipc.send(e.data[1], "")
|
||||
} else if (e.data[0] == "dialogStore") {
|
||||
ipc.send("dialogStore", e.data[1])
|
||||
} else if (e.data[0] == "bmpImage") {
|
||||
ipc.send('bmp-image', e.data[1]);
|
||||
} else if (e.data[0] == "dialogCW") {
|
||||
ipc.send("dialogCW", e.data[1])
|
||||
} else if (e.data[0] == "nativeNotf") {
|
||||
console.log(e.data[1])
|
||||
ipc.send('native-notf', e.data[1]);
|
||||
} else if (e.data[0] == "dialogClient") {
|
||||
ipc.send("dialogClient", e.data[1])
|
||||
} else if (e.data[0] == "generalDL") {
|
||||
ipc.send('general-dl', e.data[1]);
|
||||
} else if (e.data[0] == "openFinder") {
|
||||
ipc.send('open-finder', e.data[1]);
|
||||
} else if (e.data[0] == "columnDel") {
|
||||
ipc.send('column-del', e.data[1]);
|
||||
} else if (e.data[0] == "lang") {
|
||||
ipc.send('lang', e.data[1]);
|
||||
} else if (e.data[0] == "exportSettings") {
|
||||
ipc.send('exportSettings', e.data[1]);
|
||||
} else if (e.data[0] == "importSettings") {
|
||||
ipc.send('importSettings', e.data[1]);
|
||||
} else if (e.data[0] == "customSound") {
|
||||
ipc.send('customSound', e.data[1]);
|
||||
} else if (e.data[0] == "themeJsonDelete") {
|
||||
ipc.send('theme-json-delete', e.data[1]);
|
||||
} else if (e.data[0] == "themeJsonCreate") {
|
||||
ipc.send('theme-json-create', e.data[1]);
|
||||
} else if (e.data[0] == "themeJsonRequest") {
|
||||
ipc.send('theme-json-request', e.data[1]);
|
||||
} else if (e.data[0] == "ha") {
|
||||
ipc.send('ha', e.data[1]);
|
||||
} else if (e.data[0] == "aboutData") {
|
||||
ipc.send('aboutData', "");
|
||||
} else if (e.data[0] == "itunes") {
|
||||
console.log("NowPlaying" + ipc.listenerCount('itunes-np'))
|
||||
if (ipc.listenerCount('itunes-np') > 1) {
|
||||
return false;
|
||||
} else {
|
||||
ipc.send("itunes", e.data[1])
|
||||
}
|
||||
} else if (e.data[0] == "themeCSSRequest") {
|
||||
ipc.send('theme-css-request', e.data[1]);
|
||||
} else if (e.data[0] == "downloadButton") {
|
||||
ipc.send('download-btn', e.data[1]);
|
||||
} else if (e.data[0] == "nano") {
|
||||
ipc.send('nano', null);
|
||||
}
|
||||
}
|
||||
//version.js
|
||||
ipc.send("getPlatform", "")
|
||||
ipc.on('platform', function (event, args) {
|
||||
localStorage.setItem("platform", args[0])
|
||||
localStorage.setItem("bit", args[1])
|
||||
localStorage.setItem("about", JSON.stringify([args[2], args[3], args[4]]))
|
||||
})
|
||||
|
||||
ipc.on('reload', function (event, arg) {
|
||||
location.reload();
|
||||
})
|
||||
//Native Notf
|
||||
ipc.on('shownotf', function (event, args) {
|
||||
if (args["type"] == "toot") {
|
||||
postMessage(["details", [id, acct_id]], "*")
|
||||
} else if (args["type"] == "userdata") {
|
||||
postMessage(["udg", [user, acct_id]], "*")
|
||||
}
|
||||
})
|
||||
|
||||
//first.js
|
||||
ipc.on('custom-css-response', function (event, arg) {
|
||||
if (arg == "") { return false; }
|
||||
var styleNode = document.createElement("style");
|
||||
styleNode.setAttribute("type", "text/css")
|
||||
|
||||
var content = document.createTextNode(arg)
|
||||
styleNode.append(content)
|
||||
document.getElementsByTagName("head")[0].append(styleNode)
|
||||
})
|
||||
ipc.on('theme-css-response', function (event, arg) {
|
||||
if (arg == "") { return false; }
|
||||
var styleNode = document.createElement("style");
|
||||
styleNode.setAttribute("type", "text/css")
|
||||
|
||||
var content = document.createTextNode(arg)
|
||||
styleNode.append(content)
|
||||
document.getElementsByTagName("head")[0].append(styleNode)
|
||||
})
|
||||
//img.js
|
||||
ipc.on('bmp-img-comp', function (event, b64) {
|
||||
postMessage(["media", [b64[0], "image/png", b64[1]]], "*")
|
||||
});
|
||||
//ui,img.js
|
||||
ipc.on('general-dl-prog', function (event, arg) {
|
||||
console.log("Progress: " + arg);
|
||||
})
|
||||
ipc.on('general-dl-message', function (event, arg) {
|
||||
var argC = arg.replace(/\\/g, "\\\\") + "\\\\.";
|
||||
console.log("saved")
|
||||
postMessage(["toastSaved", [arg, argC]], "*")
|
||||
})
|
||||
//setting.js
|
||||
ipc.on('langres', function (event, arg) {
|
||||
location.href = "../" + lang + "/setting.html"
|
||||
});
|
||||
ipc.on('exportSettingsFile', function (event, savedFiles) {
|
||||
var exp = exportSettingsCore()
|
||||
ipc.send('export', [savedFiles, JSON.stringify(exp)]);
|
||||
postMessage(["alert", "Done"], "*")
|
||||
//cards
|
||||
//lang
|
||||
});
|
||||
ipc.on('config', function (event, arg) {
|
||||
postMessage(["importSettingsCore", arg], "*")
|
||||
});
|
||||
ipc.on('savefolder', function (event, arg) {
|
||||
localStorage.setItem("savefolder", arg);
|
||||
});
|
||||
ipc.on('font-list', function (event, arg) {
|
||||
postMessage(["fontList", arg], "*")
|
||||
});
|
||||
ipc.on('customSoundRender', function (event, args) {
|
||||
postMessage(["customSoundSave", [args[0], args[1]]], "*")
|
||||
});
|
||||
ipc.on('theme-json-list-response', function (event, args) {
|
||||
postMessage(["ctLoadCore", args], "*")
|
||||
});
|
||||
ipc.on('theme-json-delete-complete', function (event, args) {
|
||||
postMessage(["ctLoad", ""], "*")
|
||||
});
|
||||
ipc.on('theme-json-response', function (event, args) {
|
||||
postMessage(["customConnect", args], "*")
|
||||
});
|
||||
ipc.on('theme-json-create-complete', function (event, args) {
|
||||
postMessage(["clearCustomImport", ""], "*")
|
||||
postMessage(["ctLoad", ""], "*")
|
||||
});
|
||||
//spotify.js
|
||||
ipc.once('itunes-np', function (event, arg) {
|
||||
postMessage(["npCore", arg], "*")
|
||||
})
|
||||
//tips.js
|
||||
ipc.on('memory', function (event, arg) {
|
||||
var use = arg[0];
|
||||
var cpu = arg[1];
|
||||
var total = arg[2]
|
||||
postMessage(["renderMem", [use, cpu, total]], "*")
|
||||
})
|
||||
//update.html
|
||||
ipc.on('prog', function (event, arg) {
|
||||
console.log(arg)
|
||||
postMessage(["updateProg", arg], "*")
|
||||
})
|
||||
ipc.on('mess', function (event, arg) {
|
||||
postMessage(["updateMess", arg], "*")
|
||||
})
|
||||
var webviewDom = document.getElementById('webview');
|
||||
if (webviewDom) {
|
||||
webviewDom.addEventListener('new-window', function (e) {
|
||||
shell.openExternal(e.url);
|
||||
});
|
||||
}
|
@@ -1,51 +0,0 @@
|
||||
var electron = require("electron");
|
||||
const fs = require("fs");
|
||||
const os = require('os')
|
||||
const shell = electron.shell;
|
||||
const path = require('path')
|
||||
function shot() {
|
||||
//screenshotMsg.textContent = 'Gathering screens...'
|
||||
$(window).height
|
||||
let options = {
|
||||
types: ['screen'],
|
||||
thumbnailSize: {
|
||||
width: window.parent.screen.width,
|
||||
height: window.parent.screen.height
|
||||
}
|
||||
}
|
||||
const desktopCapturer = electron.desktopCapturer;
|
||||
desktopCapturer.getSources(options, function (error, sources) {
|
||||
if (error) return console.log(error)
|
||||
|
||||
sources.forEach(function (source) {
|
||||
if (location.search) {
|
||||
var m = location.search.match(/\?id=([a-zA-Z-0-9]+)/);
|
||||
var title = m[1];
|
||||
} else {
|
||||
var title = "screenshot";
|
||||
}
|
||||
if (source.name === 'Screen 1' || source.name === 'TheDesk') {
|
||||
var durl = source.thumbnail.toDataURL();
|
||||
var b64 = durl.match(
|
||||
/data:image\/png;base64,(.+)/
|
||||
);
|
||||
const screenshotPath = path.join(os.tmpdir(), 'screenshot.png');
|
||||
const savePath = path.join(os.tmpdir(), 'screenshot.png');
|
||||
var ipc = electron.ipcRenderer;
|
||||
var h = $(window).height() - 150;
|
||||
var w = $(window).width();
|
||||
ipc.send('shot', ['file://' + screenshotPath, w, h, b64[1], title]);
|
||||
if ($(".img-parsed").length > 0) {
|
||||
for (i = 0; i < $(".img-parsed").length; i++) {
|
||||
var url = $(".img-parsed").eq(i).attr("data-url");
|
||||
ipc.send('shot-img-dl', [url, title + "_img" + i + ".png"]);
|
||||
}
|
||||
}
|
||||
window.close();
|
||||
return;
|
||||
const message = `Saved screenshot to: ${screenshotPath}`
|
||||
//screenshotMsg.textContent = message
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
@@ -40,7 +40,7 @@ function mdCheck() {
|
||||
$("#trendtag").html("");
|
||||
}
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
Materialize.toast(lang.lang_bbmd_misskey, 5000);
|
||||
M.toast({ html: lang.lang_bbmd_misskey, displayLength: 5000 })
|
||||
}
|
||||
if (idata[domain + "_letters"]) {
|
||||
$("#textarea").attr("data-length", idata[domain + "_letters"])
|
||||
|
@@ -191,7 +191,7 @@ function emojiInsert(code, del) {
|
||||
$("#textarea").val(newt);
|
||||
//emoji();
|
||||
} else {
|
||||
var regExp = new RegExp(del, "g");
|
||||
var regExp = new RegExp(del.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
var now = now.replace(regExp, "");
|
||||
$("#textarea").val(now + brank + code);
|
||||
}
|
||||
|
@@ -40,9 +40,7 @@ function pimg(files) {
|
||||
for (i = 0; i < files.length; i++) {
|
||||
var dot = files[i].path.match(/\.(.+)$/)[1];
|
||||
if (dot == "bmp" || dot == "BMP") {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('bmp-image', [files[i].path, i]);
|
||||
postMessage(["bmpImage", [files[i].path, i]], "*")
|
||||
todo(lang.lang_progress);
|
||||
|
||||
} else {
|
||||
@@ -50,18 +48,13 @@ function pimg(files) {
|
||||
}
|
||||
}
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.on('bmp-img-comp', function (event, b64) {
|
||||
media(b64[0], "image/png", b64[1]);
|
||||
});
|
||||
//ドラッグ・アンド・ドロップを終了
|
||||
function closedrop() {
|
||||
$("#drag").css('display', 'none');
|
||||
}
|
||||
//ファイル選択
|
||||
function fileselect() {
|
||||
ipc.send('file-select', "");
|
||||
postMessage(["sendSinmpleIpc", "file-select"], "*")
|
||||
}
|
||||
|
||||
//ファイル読み込み
|
||||
@@ -149,9 +142,9 @@ function media(b64, type, no) {
|
||||
}
|
||||
todc();
|
||||
$(".toot-btn-group").prop("disabled", false);
|
||||
$('select').material_select();
|
||||
$('select').formSelect();
|
||||
$("#mec").text(lang.lang_there);
|
||||
Materialize.toast(lang.lang_postimg_aftupload, 1000);
|
||||
M.toast({ html: lang.lang_postimg_aftupload, displayLength: 1000 })
|
||||
$("#imgup").text("");
|
||||
$("#imgsel").show();
|
||||
localStorage.removeItem("image");
|
||||
@@ -211,26 +204,28 @@ element.addEventListener("paste", function (e) {
|
||||
|
||||
// 画像以外がペーストされたときのために、元に戻しておく
|
||||
});
|
||||
//Adobeフォトエディタ
|
||||
function adobe() {
|
||||
var agree = localStorage.getItem("adobeagree");
|
||||
ipc.send('adobe', agree);
|
||||
}
|
||||
ipc.on('adobeagree', function (event, arg) {
|
||||
localStorage.setItem("adobeagree", arg);
|
||||
});
|
||||
function deleteImage(key) {
|
||||
if (!confirm(lang.lang_postimg_delete)) {
|
||||
return false;
|
||||
}
|
||||
var media = $("#media").val();
|
||||
var arr = media.split(",");
|
||||
for (var i = 0; i < media.length; i++) {
|
||||
if (arr[i] == key) {
|
||||
arr.splice(i, 1);
|
||||
break;
|
||||
Swal.fire({
|
||||
title: lang.lang_postimg_delete,
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
var media = $("#media").val();
|
||||
var arr = media.split(",");
|
||||
for (var i = 0; i < media.length; i++) {
|
||||
if (arr[i] == key) {
|
||||
arr.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
$("#media").val(arr.join(","));
|
||||
$('#preview [data-media=' + key + ']').remove();
|
||||
}
|
||||
}
|
||||
$("#media").val(arr.join(","));
|
||||
$('#preview [data-media=' + key + ']').remove();
|
||||
})
|
||||
|
||||
}
|
@@ -31,7 +31,7 @@ function renoteqt(id, acct_id) {
|
||||
$("#rec").text("Renote");
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').material_select();
|
||||
$('select').formSelect();
|
||||
$("#textarea").attr("placeholder", lang.lang_misskeyparse_qt);
|
||||
$("#textarea").focus();
|
||||
}
|
||||
@@ -43,7 +43,7 @@ function misskeyreply(id, acct_id) {
|
||||
$("#rec").text("Renote");
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').material_select();
|
||||
$('select').formSelect();
|
||||
$("#textarea").attr("placeholder", lang.lang_misskeyparse_qt);
|
||||
$("#textarea").focus();
|
||||
}
|
||||
@@ -102,7 +102,7 @@ function reactioncustom(acct_id, id) {
|
||||
$("#unreact").hide();
|
||||
$("#addreact").removeClass("hide");
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$('select').material_select();
|
||||
$('select').formSelect();
|
||||
localStorage.setItem("nohide", true);
|
||||
show()
|
||||
emojiToggle(true)
|
||||
|
@@ -17,55 +17,43 @@ function post(mode, postvis) {
|
||||
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;
|
||||
var cw_ltres = 7000;
|
||||
} 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 electron = require("electron");
|
||||
var remote = electron.remote;
|
||||
var dialog = remote.dialog;
|
||||
console.log("out")
|
||||
var plus = str.replace(/\n/g, "").slice(0, 10) + "...";
|
||||
const options = {
|
||||
type: 'info',
|
||||
Swal.fire({
|
||||
title: lang.lang_post_cwtitle,
|
||||
message: lang.lang_post_cwtxt + plus,
|
||||
buttons: [lang.lang_post_btn1, lang.lang_post_btn2, lang.lang_post_btn3]
|
||||
}
|
||||
dialog.showMessageBox(options, function (arg) {
|
||||
if (arg === 1) {
|
||||
text: lang.lang_post_cwtxt + plus,
|
||||
type: 'info',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#3085d6',
|
||||
confirmButtonText: lang.lang_post_btn2,
|
||||
cancelButtonText: lang.lang_post_btn3,
|
||||
showCloseButton: true,
|
||||
focusConfirm: false,
|
||||
}).then((result) => {
|
||||
console.log(result)
|
||||
if (result.dismiss == "cancel") {
|
||||
//btn3:sonomama
|
||||
post("pass")
|
||||
} else if (result.value) {
|
||||
//btn2:auto-CW
|
||||
$("#cw-text").show();
|
||||
$("#cw").addClass("yellow-text");
|
||||
$("#cw").addClass("cw-avail");
|
||||
$("#cw-text").val(plus);
|
||||
post("pass");
|
||||
} else if (arg === 2) {
|
||||
post("pass");
|
||||
post("pass")
|
||||
}
|
||||
})
|
||||
return false;
|
||||
@@ -104,22 +92,11 @@ function post(mode, 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();
|
||||
@@ -218,9 +195,9 @@ function misskeyPost() {
|
||||
}
|
||||
var vis = $("#vis").text();
|
||||
if (vis == "unlisted") {
|
||||
vis == "home"
|
||||
vis = "home"
|
||||
} else if (vis == "direct") {
|
||||
vis == "specified";
|
||||
vis = "specified";
|
||||
toot.visibleUserIds = str.match(/@([a-zA-Z0-9_@.-]+)(\s|$)/g).join('').split("@");
|
||||
}
|
||||
if (vis != "inherit") {
|
||||
@@ -306,7 +283,7 @@ function clear() {
|
||||
if (localStorage.getItem("mainuse") == "main") {
|
||||
$("#post-acct-sel").val(localStorage.getItem("main"));
|
||||
}
|
||||
$('select').material_select();
|
||||
$('select').formSelect();
|
||||
$("#left-side").show();
|
||||
$("#default-emoji").show();
|
||||
$("#unreact").show();
|
||||
|
@@ -45,7 +45,10 @@ function vis(set) {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
localStorage.setItem("vis-memory-" + acct_id, set);
|
||||
}
|
||||
$('.dropdown-button').dropdown('close');
|
||||
var ins = M.Dropdown.getInstance($('#dropdown1'))
|
||||
if(ins){
|
||||
ins.close();
|
||||
}
|
||||
}
|
||||
function loadVis() {
|
||||
var vist = localStorage.getItem("vis");
|
||||
|
@@ -43,7 +43,7 @@ function fav(id, acct_id, remote) {
|
||||
$(".fav_" + id).addClass("yellow-text");
|
||||
}
|
||||
} else {
|
||||
Materialize.toast(lang.lang_status_favWarn, 1000);
|
||||
M.toast({ html: lang.lang_status_favWarn, displayLength: 1000 })
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -84,13 +84,13 @@ function rt(id, acct_id, remote) {
|
||||
|
||||
if ($("[toot-id=" + id + "]").hasClass("rted")) {
|
||||
$("[toot-id=" + id + "]").removeClass("rted");
|
||||
$(".rt_" + id).removeClass("teal-text");
|
||||
$(".rt_" + id).removeClass("light-blue-text");
|
||||
} else {
|
||||
$("[toot-id=" + id + "]").addClass("rted");
|
||||
$(".rt_" + id).addClass("teal-text");
|
||||
$(".rt_" + id).addClass("light-blue-text");
|
||||
}
|
||||
} else {
|
||||
Materialize.toast(lang.lang_status_btWarn, 1000);
|
||||
M.toast({ html: lang.lang_status_btWarn, displayLength: 1000 })
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -183,7 +183,7 @@ function block(acct_id) {
|
||||
}
|
||||
|
||||
//ミュート
|
||||
function mute(acct_id) {
|
||||
function muteDo(acct_id) {
|
||||
if (!acct_id) {
|
||||
var acct_id = $('#his-data').attr("use-acct");
|
||||
}
|
||||
@@ -253,39 +253,50 @@ function del(id, acct_id) {
|
||||
}
|
||||
//redraft
|
||||
function redraft(id, acct_id) {
|
||||
if (confirm(lang.lang_status_redraft)) {
|
||||
show();
|
||||
del(id, acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
var medias = $("[toot-id=" + id + "]").attr("data-medias");
|
||||
var vismode = $("[toot-id=" + id + "] .vis-data").attr("data-vis");
|
||||
vis(vismode);
|
||||
$("#media").val(medias);
|
||||
var ct = medias.split(",").length;
|
||||
$("[toot-id=" + id + "] img.toot-img").each(function (i, elem) {
|
||||
if (i < ct) {
|
||||
var url = $(elem).attr("src");
|
||||
console.log("Play back image data:" + url);
|
||||
$('#preview').append('<img src="' + url + '" style="width:50px; max-height:100px;">');
|
||||
Swal.fire({
|
||||
title: lang.lang_status_redraftTitle,
|
||||
text: lang.lang_status_redraft,
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
show();
|
||||
del(id, acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
var medias = $("[toot-id=" + id + "]").attr("data-medias");
|
||||
var vismode = $("[toot-id=" + id + "] .vis-data").attr("data-vis");
|
||||
vis(vismode);
|
||||
$("#media").val(medias);
|
||||
var ct = medias.split(",").length;
|
||||
$("[toot-id=" + id + "] img.toot-img").each(function (i, elem) {
|
||||
if (i < ct) {
|
||||
var url = $(elem).attr("src");
|
||||
console.log("Play back image data:" + url);
|
||||
$('#preview').append('<img src="' + url + '" style="width:50px; max-height:100px;">');
|
||||
}
|
||||
});
|
||||
var html = $("[toot-id=" + id + "] .toot").html();
|
||||
html = html.replace(/^<p>(.+)<\/p>$/, "$1");
|
||||
html = html.replace(/<br\s?\/?>/, "\n");
|
||||
html = html.replace(/<p>/, "\n");
|
||||
html = html.replace(/<\/p>/, "\n");
|
||||
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1");
|
||||
html = $.strip_tags(html);
|
||||
localStorage.setItem("nohide", true);
|
||||
show();
|
||||
$("#textarea").val(html);
|
||||
var cwtxt = $("[toot-id=" + id + "] .cw_text").html();
|
||||
if (cwtxt != "") {
|
||||
cwtxt = $.strip_tags(cwtxt);
|
||||
cw();
|
||||
$("#cw-text").val(cwtxt);
|
||||
}
|
||||
});
|
||||
var html = $("[toot-id=" + id + "] .toot").html();
|
||||
html = html.replace(/^<p>(.+)<\/p>$/, "$1");
|
||||
html = html.replace(/<br\s?\/?>/, "\n");
|
||||
html = html.replace(/<p>/, "\n");
|
||||
html = html.replace(/<\/p>/, "\n");
|
||||
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1");
|
||||
html = $.strip_tags(html);
|
||||
localStorage.setItem("nohide", true);
|
||||
show();
|
||||
$("#textarea").val(html);
|
||||
var cwtxt = $("[toot-id=" + id + "] .cw_text").html();
|
||||
if (cwtxt != "") {
|
||||
cwtxt = $.strip_tags(cwtxt);
|
||||
cw();
|
||||
$("#cw-text").val(cwtxt);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
//ピン留め
|
||||
function pin(id, acct_id) {
|
||||
@@ -373,7 +384,7 @@ function empUser() {
|
||||
if (!obj) {
|
||||
var obj = [];
|
||||
obj.push(id);
|
||||
Materialize.toast(id + lang.lang_status_emphas, 4000);
|
||||
M.toast({ html: id + lang.lang_status_emphas, displayLength: 4000 })
|
||||
} else {
|
||||
var can;
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
@@ -383,7 +394,7 @@ function empUser() {
|
||||
} else {
|
||||
can = true;
|
||||
obj.splice(key, 1);
|
||||
Materialize.toast(id + lang.lang_status_unemphas, 4000);
|
||||
M.toast({ html: id + lang.lang_status_unemphas, displayLength: 4000 })
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -425,7 +436,7 @@ function pinUser() {
|
||||
//URLコピー
|
||||
function tootUriCopy(url) {
|
||||
execCopy(url);
|
||||
Materialize.toast(lang.lang_details_url, 1500);
|
||||
M.toast({ html: lang.lang_details_url, displayLength: 1500 })
|
||||
}
|
||||
|
||||
//他のアカウントで…
|
||||
|
@@ -131,7 +131,7 @@ function tagInsert(code, del) {
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if (!del) {
|
||||
} else {
|
||||
var regExp = new RegExp(del, "g");
|
||||
var regExp = new RegExp(del.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
var now = now.replace(regExp, "");
|
||||
selin = selin - del.length;
|
||||
}
|
||||
|
@@ -15,7 +15,7 @@ function re(id, ats_cm, acct_id, mode) {
|
||||
$("#rec").text(lang.lang_yesno);
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').material_select();
|
||||
$('select').formSelect();
|
||||
$("#textarea").attr("placeholder", lang.lang_usetxtbox_reply);
|
||||
$("#textarea").focus();
|
||||
var profimg = localStorage.getItem("prof_" + acct_id);
|
||||
@@ -60,5 +60,5 @@ function qt(id, acct_id, at, url) {
|
||||
}
|
||||
$("#textarea").focus();
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$('select').material_select();
|
||||
$('select').formSelect();
|
||||
}
|
@@ -466,10 +466,10 @@ function cbCopy(mode) {
|
||||
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>';
|
||||
execCopy(emb)
|
||||
Materialize.toast(lang.lang_details_embed, 1500);
|
||||
M.toast({ html: lang.lang_details_embed, displayLength: 1500 })
|
||||
} else {
|
||||
if (execCopy(url)) {
|
||||
Materialize.toast(lang.lang_details_url, 1500);
|
||||
M.toast({ html: lang.lang_details_url, displayLength: 1500 })
|
||||
}
|
||||
|
||||
}
|
||||
@@ -485,7 +485,7 @@ function staCopy(id) {
|
||||
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1");
|
||||
html = $.strip_tags(html);
|
||||
if (execCopy(html)) {
|
||||
Materialize.toast(lang.lang_details_txt, 1500);
|
||||
M.toast({ html: lang.lang_details_txt, displayLength: 1500 })
|
||||
}
|
||||
|
||||
}
|
||||
@@ -513,17 +513,13 @@ function trans(tar, to) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (text) {
|
||||
$("#toot-this .additional").html('<span class="gray">' + text.text + '</span>');
|
||||
$("#toot-this .additional").html('<span class="gray translate">' + text.text + '</span>');
|
||||
});
|
||||
}
|
||||
//ブラウザで開く
|
||||
function brws() {
|
||||
var url = $("#tootmodal").attr("data-url");
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
|
||||
shell.openExternal(url);
|
||||
postMessage(["openUrl", url], "*")
|
||||
}
|
||||
//外部からトゥート開く
|
||||
function detEx(url, acct_id) {
|
||||
@@ -546,11 +542,7 @@ function detEx(url, acct_id) {
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (!json.statuses) {
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
|
||||
shell.openExternal(url);
|
||||
postMessage(["openUrl", url], "*")
|
||||
} else {
|
||||
var id = json.statuses[0].id;
|
||||
$(".loadp").text($(".loadp").attr("href"));
|
||||
|
@@ -370,7 +370,7 @@ function filterUpdateInternal(json, type) {
|
||||
var text = $(elem).find('.toot').html();
|
||||
Object.keys(home).forEach(function (key8) {
|
||||
var word = home[key8];
|
||||
var regExp = new RegExp(word, "g");
|
||||
var regExp = new RegExp(word.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
if ($.strip_tags(text).match(regExp)) {
|
||||
$("[toot-id=" + id + "]").addClass("hide");
|
||||
}
|
||||
@@ -386,33 +386,34 @@ function filterUpdateInternal(json, type) {
|
||||
*/
|
||||
//通知フィルター
|
||||
function exclude(key) {
|
||||
localStorage.setItem("exclude-" + key, "")
|
||||
var excludetxt = localStorage.getItem("exclude-" + key);
|
||||
if ($('#exc-reply-' + key + ':checked').val()) {
|
||||
excludetxt = "?exclude_types[]=mention"
|
||||
}
|
||||
if ($('#exc-fav-' + key + ':checked').val()) {
|
||||
if (!excludetxt || excludetxt !="") {
|
||||
if (excludetxt || excludetxt !="") {
|
||||
excludetxt = excludetxt + "&exclude_types[]=favourite"
|
||||
} else {
|
||||
excludetxt = "?exclude_types[]=favourite"
|
||||
}
|
||||
}
|
||||
if ($('#exc-bt-' + key + ':checked').val()) {
|
||||
if (!excludetxt || excludetxt !="") {
|
||||
if (excludetxt || excludetxt !="") {
|
||||
excludetxt = excludetxt + "&exclude_types[]=reblog"
|
||||
} else {
|
||||
excludetxt = "?exclude_types[]=reblog"
|
||||
}
|
||||
}
|
||||
if ($('#exc-follow-' + key + ':checked').val()) {
|
||||
if (!excludetxt || excludetxt !="") {
|
||||
if (excludetxt || excludetxt !="") {
|
||||
excludetxt = excludetxt + "&exclude_types[]=follow"
|
||||
} else {
|
||||
excludetxt = "?exclude_types[]=follow"
|
||||
}
|
||||
}
|
||||
if ($('#exc-poll-' + key + ':checked').val()) {
|
||||
if (!excludetxt || excludetxt !="") {
|
||||
if (excludetxt || excludetxt !="") {
|
||||
excludetxt = excludetxt + "&exclude_types[]=poll"
|
||||
} else {
|
||||
excludetxt = "?exclude_types[]=poll"
|
||||
@@ -445,9 +446,9 @@ function resetNotfFilter(tlid){
|
||||
localStorage.setItem("exclude-" + tlid, "")
|
||||
parseColumn();
|
||||
}
|
||||
function notfFilter(id,tlid){
|
||||
function notfFilter(id,tlid,acct_id){
|
||||
var excludetxt = localStorage.getItem("exclude-" + tlid);
|
||||
if (!excludetxt || excludetxt !="") {
|
||||
if (excludetxt || excludetxt !="") {
|
||||
excludetxt = excludetxt + "&account_id="+id
|
||||
} else {
|
||||
excludetxt = "?account_id="+id
|
||||
|
@@ -50,14 +50,18 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
native = "yes";
|
||||
}
|
||||
//クライアント強調
|
||||
var emp = localStorage.getItem("client_emp");
|
||||
if (emp) {
|
||||
var emp = JSON.parse(emp);
|
||||
var empCli = localStorage.getItem("client_emp");
|
||||
if (empCli) {
|
||||
var empCli = JSON.parse(empCli);
|
||||
} else {
|
||||
var empCli = [];
|
||||
}
|
||||
//クライアントミュート
|
||||
var mute = localStorage.getItem("client_mute");
|
||||
if (mute) {
|
||||
var mute = JSON.parse(mute);
|
||||
var muteCli = localStorage.getItem("client_mute");
|
||||
if (muteCli) {
|
||||
var muteCli = JSON.parse(muteCli);
|
||||
} else {
|
||||
var muteCli = [];
|
||||
}
|
||||
//ユーザー強調
|
||||
var useremp = localStorage.getItem("user_emp");
|
||||
@@ -65,17 +69,19 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
var useremp = JSON.parse(useremp);
|
||||
}
|
||||
//ワード強調
|
||||
var wordemp = localStorage.getItem("word_emp");
|
||||
if (wordemp) {
|
||||
var wordemp = JSON.parse(wordemp);
|
||||
var wordempList = localStorage.getItem("word_emp");
|
||||
if (wordempList) {
|
||||
var wordempList = JSON.parse(wordempList);
|
||||
}
|
||||
//ワードミュート
|
||||
var wordmute = localStorage.getItem("word_mute");
|
||||
if (wordmute) {
|
||||
var wordmute = JSON.parse(wordmute);
|
||||
wordmute = wordmute.concat(mutefilter);
|
||||
var wordmuteList = localStorage.getItem("word_mute");
|
||||
if (wordmuteList) {
|
||||
var wordmuteList = JSON.parse(wordmuteList);
|
||||
if (wordmuteList) {
|
||||
wordmuteList = wordmuteList.concat(mutefilter);
|
||||
}
|
||||
} else {
|
||||
wordmute = mutefilter;
|
||||
wordmuteList = mutefilter;
|
||||
}
|
||||
//Ticker
|
||||
var tickerck = localStorage.getItem("ticker_ok");
|
||||
@@ -254,12 +260,10 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if (popup > 0) {
|
||||
Materialize.toast("[" + domain + "]" + escapeHTMLtemp(toot.user.name) + what, popup * 1000);
|
||||
M.toast({ html: "[" + domain + "]" + escapeHTMLtemp(toot.user.name) + what, displayLength: popup * 1000 })
|
||||
}
|
||||
if (native == "yes") {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
var os = localStorage.getItem("platform");
|
||||
var options = {
|
||||
body: toot.user.name + "(" + toot.user.username + ")" + what + "\n\n" + $.strip_tagstemp(toot.note.text),
|
||||
icon: toot.user.avatarUrl
|
||||
@@ -267,14 +271,15 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
ipc.send('native-notf', [
|
||||
var nativeNotfOpt = [
|
||||
'TheDesk:' + domain,
|
||||
toot.user.name + "(" + toot.user.username + ")" + what + "\n\n" + $.strip_tagstemp(toot.note.text),
|
||||
toot.user.avatarUrl,
|
||||
"toot",
|
||||
acct_id,
|
||||
toot.note.id
|
||||
]);
|
||||
]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
}
|
||||
if (localStorage.getItem("hasNotfC_" + acct_id) != "true") {
|
||||
@@ -350,16 +355,16 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
viashow = "via-hide";
|
||||
}
|
||||
//強調チェック
|
||||
Object.keys(emp).forEach(function (key6) {
|
||||
var cli = emp[key6];
|
||||
if (cli == via) {
|
||||
Object.keys(empCli).forEach(function (key6) {
|
||||
var empCliList = empCli[key6];
|
||||
if (empCliList == via) {
|
||||
boostback = "emphasized";
|
||||
}
|
||||
});
|
||||
//ミュートチェック
|
||||
Object.keys(mute).forEach(function (key7) {
|
||||
var cli = mute[key7];
|
||||
if (cli == via) {
|
||||
Object.keys(muteCli).forEach(function (key7) {
|
||||
var muteCliList = muteCli[key7];
|
||||
if (muteCliList == via) {
|
||||
boostback = "hide";
|
||||
}
|
||||
});
|
||||
@@ -496,6 +501,10 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
'" data-type="video" class="img-parsed"><video src="' +
|
||||
purl + '" class="' + sense +
|
||||
' toot-img pointer" style="max-width:100%;"></a></span>';
|
||||
} else if (media.type.indexOf("audio") !== -1) {
|
||||
viewer = viewer + '<audio src="' +
|
||||
purl + '" class="' + sense +
|
||||
' toot-img pointer" style="width:100%;" controls></span>';
|
||||
} else {
|
||||
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',' +
|
||||
acct_id + ')" id="' + id + '-image-' + key2 + '" data-url="' + url +
|
||||
@@ -572,7 +581,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
var rt_app = "";
|
||||
/*
|
||||
if (toot.reblogged) {
|
||||
var if_rt = "teal-text";
|
||||
var if_rt = "light-blue-text";
|
||||
var rt_app = "rted";
|
||||
} else {
|
||||
var if_rt = "";
|
||||
@@ -582,16 +591,16 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
//アバター
|
||||
var avatar = toot.user.avatarUrl;
|
||||
//ワードミュート
|
||||
if (wordmute) {
|
||||
Object.keys(wordmute).forEach(function (key8) {
|
||||
var worde = wordmute[key8];
|
||||
if (wordmuteList) {
|
||||
Object.keys(wordmuteList).forEach(function (key8) {
|
||||
var worde = wordmuteList[key8];
|
||||
if (worde) {
|
||||
if (worde.tag) {
|
||||
var word = worde.tag;
|
||||
var wordList = worde.tag;
|
||||
} else {
|
||||
var word = worde
|
||||
var wordList = worde
|
||||
}
|
||||
var regExp = new RegExp(word, "g");
|
||||
var regExp = new RegExp(wordList.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
if ($.strip_tagstemp(content).match(regExp)) {
|
||||
boostback = "hide by_filter";
|
||||
}
|
||||
@@ -599,13 +608,13 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
});
|
||||
}
|
||||
//ワード強調
|
||||
if (wordemp) {
|
||||
Object.keys(wordemp).forEach(function (key9) {
|
||||
var word = wordemp[key9];
|
||||
if (word) {
|
||||
var word = word.tag;
|
||||
var regExp = new RegExp(word, "g");
|
||||
content = content.replace(regExp, '<span class="emp">' + word + "</span>");
|
||||
if (wordempList) {
|
||||
Object.keys(wordempList).forEach(function (key9) {
|
||||
var wordList = wordempList[key9];
|
||||
if (wordList) {
|
||||
var wordList = wordList.tag;
|
||||
var regExp = new RegExp(wordList.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
content = content.replace(regExp, '<span class="emp">' + wordList + "</span>");
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -893,7 +902,7 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
|
||||
}
|
||||
var memory = localStorage.getItem("notice-mem");
|
||||
if (popup >= 0 && obj.length < 5 && notftext != memory) {
|
||||
Materialize.toast(escapeHTMLtemp(toot.name) + ":" + ftxt, popup * 1000);
|
||||
M.toast({ html: escapeHTMLtemp(toot.name) + ":" + ftxt, displayLength: popup * 1000 })
|
||||
$(".notf-icon_" + tlid).addClass("red-text");
|
||||
localStorage.setItem("notice-mem", notftext);
|
||||
notftext = "";
|
||||
@@ -902,9 +911,7 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
|
||||
native = "yes";
|
||||
}
|
||||
if (native == "yes") {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
var os = localStorage.getItem("platform");
|
||||
var options = {
|
||||
body: toot.display_name + "(" + toot.acct + ")" + ftxt,
|
||||
icon: toot.avatar
|
||||
@@ -913,14 +920,15 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
ipc.send('native-notf', [
|
||||
var nativeNotfOpt = [
|
||||
'TheDesk:' + domain,
|
||||
toot.display_name + "(" + toot.acct + ")" + ftxt,
|
||||
toot.avatar,
|
||||
"userdata",
|
||||
acct_id,
|
||||
toot.id
|
||||
]);
|
||||
]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -967,11 +975,7 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
|
||||
function goGoogle(id) {
|
||||
var val = $("#srcbox_" + id).val();
|
||||
var url = "https://google.com/search?q=" + val;
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
|
||||
shell.openExternal(url);
|
||||
postMessage(["openUrl", url], "*")
|
||||
}
|
||||
var misskeyws = []
|
||||
var misskeywsstate = []
|
||||
@@ -994,7 +998,7 @@ function connectMisskey(acct_id) {
|
||||
console.log([domain + ":Receive Streaming API:", data]);
|
||||
var data = JSON.parse(mess.data)
|
||||
var obj = data.body.body
|
||||
|
||||
var mute = [];
|
||||
if (data.body.id.indexOf("notf:") !== -1) {
|
||||
var obj = JSON.parse(mess.data).body;
|
||||
console.log(obj);
|
||||
|
@@ -43,15 +43,15 @@ function mixtl(acct_id, tlid, type, delc, voice) {
|
||||
timeline.splice(20);
|
||||
}
|
||||
var templete = "";
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "mix");
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
Object.keys(timeline).forEach(function (key) {
|
||||
var pkey = key * 1 + 1;
|
||||
if (pkey < timeline.length) {
|
||||
if (date(timeline[key].created_at, "unix") != date(timeline[pkey].created_at, "unix")) {
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "mix");
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
if (type == "integrated") {
|
||||
templete = templete + parse([timeline[key]], '', acct_id, tlid, "", mute, "mix");
|
||||
} else if (type == "plus") {
|
||||
|
@@ -58,9 +58,7 @@ function notfColumn(acct_id, tlid, sys) {
|
||||
if (key > 14) {
|
||||
ct = "15+";
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
var os = localStorage.getItem("platform");
|
||||
var options = {
|
||||
body: ct + lang.lang_notf_new,
|
||||
icon: localStorage.getItem("prof_" + acct_id)
|
||||
@@ -68,7 +66,8 @@ function notfColumn(acct_id, tlid, sys) {
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
ipc.send('native-notf', ['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]);
|
||||
var nativeNotfOpt=['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
|
||||
}
|
||||
@@ -164,9 +163,7 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
if (key > 14) {
|
||||
ct = "15+";
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
var os = localStorage.getItem("platform");
|
||||
var options = {
|
||||
body: ct + lang.lang_notf_new,
|
||||
icon: localStorage.getItem("prof_" + acct_id)
|
||||
@@ -174,7 +171,8 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
ipc.send('native-notf', ['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]);
|
||||
var nativeNotfOpt=['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -52,14 +52,14 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
native = "yes";
|
||||
}
|
||||
//クライアント強調
|
||||
var emp = localStorage.getItem("client_emp");
|
||||
if (emp) {
|
||||
var emp = JSON.parse(emp);
|
||||
var empCli = localStorage.getItem("client_emp");
|
||||
if (empCli) {
|
||||
var empCli = JSON.parse(empCli);
|
||||
}
|
||||
//クライアントミュート
|
||||
var mute = localStorage.getItem("client_mute");
|
||||
if (mute) {
|
||||
var mute = JSON.parse(mute);
|
||||
var muteCli = localStorage.getItem("client_mute");
|
||||
if (muteCli) {
|
||||
var muteCli = JSON.parse(muteCli);
|
||||
}
|
||||
//ユーザー強調
|
||||
var useremp = localStorage.getItem("user_emp");
|
||||
@@ -67,17 +67,19 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var useremp = JSON.parse(useremp);
|
||||
}
|
||||
//ワード強調
|
||||
var wordemp = localStorage.getItem("word_emp");
|
||||
if (wordemp) {
|
||||
var wordemp = JSON.parse(wordemp);
|
||||
var wordempList = localStorage.getItem("word_emp");
|
||||
if (wordempList) {
|
||||
var wordempList = JSON.parse(wordempList);
|
||||
}
|
||||
//ワードミュート
|
||||
var wordmute = localStorage.getItem("word_mute");
|
||||
if (wordmute) {
|
||||
var wordmute = JSON.parse(wordmute);
|
||||
wordmute = wordmute.concat(mutefilter);
|
||||
var wordmuteList = localStorage.getItem("word_mute");
|
||||
if (wordmuteList) {
|
||||
var wordmuteList = JSON.parse(wordmuteList);
|
||||
if (wordmuteList) {
|
||||
wordmuteList = wordmuteList.concat(mutefilter);
|
||||
}
|
||||
} else {
|
||||
wordmute = mutefilter;
|
||||
wordmuteList = mutefilter;
|
||||
}
|
||||
//Ticker
|
||||
var tickerck = localStorage.getItem("ticker_ok");
|
||||
@@ -235,10 +237,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var what = lang.lang_parse_polled;
|
||||
var icon = "fa-tasks purple-text";
|
||||
}
|
||||
var noticetext = '<i class="fas fa-filter pointer big-text" onclick="notfFilter(\'' + toot.account.id +
|
||||
'\',\'' + tlid + '\');" title="' + lang.lang_parse_notffilter + '"></i><span class="cbadge cbadge-hover"title="' + date(toot.created_at,
|
||||
'absolute') + '(' + lang.lang_parse_notftime + ')"><i class="far fa-clock"></i>' + date(toot.created_at,
|
||||
datetype) +
|
||||
if (tlid == "notf") {
|
||||
var notfFilHide = "hide"
|
||||
} else {
|
||||
var notfFilHide = ""
|
||||
}
|
||||
var noticetext = '<i class="fas fa-filter pointer big-text ' + notfFilHide + '" onclick="notfFilter(\'' + toot.account.id +
|
||||
'\',\'' + tlid + '\');" title="' + lang.lang_parse_notffilter + '"></i><span class="cbadge cbadge-hover"title="' + date(toot.created_at,
|
||||
'absolute') + '(' + lang.lang_parse_notftime + ')"><i class="far fa-clock"></i>' + date(toot.created_at,
|
||||
datetype) +
|
||||
'</span><i class="big-text fas ' + icon + '"></i><a onclick="udg(\'' + toot.account.id +
|
||||
'\',\'' + acct_id + '\')" class="pointer grey-text">' + dis_name +
|
||||
"(@" + toot.account.acct +
|
||||
@@ -279,7 +286,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if (popup > 0) {
|
||||
Materialize.toast("[" + domain + "]" + escapeHTML(toot.account.display_name) + what, popup * 1000);
|
||||
M.toast({ html: "[" + domain + "]" + escapeHTML(toot.account.display_name) + what, displayLength: popup * 1000 })
|
||||
}
|
||||
//通知音
|
||||
if (sound == "c1") {
|
||||
@@ -299,9 +306,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
request.send();
|
||||
}
|
||||
if (native == "yes") {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
var os = localStorage.getItem("platform");
|
||||
var options = {
|
||||
body: toot.account.display_name + "(" + toot.account.acct + ")" + what + "\n\n" + $.strip_tags(toot.status.content),
|
||||
icon: toot.account.avatar
|
||||
@@ -309,14 +314,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
ipc.send('native-notf', [
|
||||
var nativeNotfOpt = [
|
||||
'TheDesk:' + domain,
|
||||
toot.account.display_name + "(" + toot.account.acct + ")" + what + "\n\n" + $.strip_tags(toot.status.content),
|
||||
toot.account.avatar,
|
||||
"toot",
|
||||
acct_id,
|
||||
toot.status.id
|
||||
]);
|
||||
]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
}
|
||||
if (localStorage.getItem("hasNotfC_" + acct_id) != "true") {
|
||||
@@ -426,20 +432,24 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
viashow = "hide";
|
||||
} else {
|
||||
var via = escapeHTML(toot.application.name);
|
||||
//強調チェック
|
||||
Object.keys(emp).forEach(function (key6) {
|
||||
var cli = emp[key6];
|
||||
if (cli == via) {
|
||||
boostback = "emphasized";
|
||||
}
|
||||
});
|
||||
//ミュートチェック
|
||||
Object.keys(mute).forEach(function (key7) {
|
||||
var cli = mute[key7];
|
||||
if (cli == via) {
|
||||
boostback = "hide";
|
||||
}
|
||||
});
|
||||
if (empCli) {
|
||||
//強調チェック
|
||||
Object.keys(empCli).forEach(function (key6) {
|
||||
var empCliList = empCli[key6];
|
||||
if (empCliList == via) {
|
||||
boostback = "emphasized";
|
||||
}
|
||||
});
|
||||
}
|
||||
if (muteCli) {
|
||||
//ミュートチェック
|
||||
Object.keys(muteCli).forEach(function (key7) {
|
||||
var muteCliList = muteCli[key7];
|
||||
if (muteCliList == via) {
|
||||
boostback = "hide";
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
if (mix == "pinned") {
|
||||
boostback = "emphasized";
|
||||
@@ -489,6 +499,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
if (toot.poll.voted) {
|
||||
var myvote = lang.lang_parse_voted;
|
||||
var result_hide = "";
|
||||
} else if (toot.poll.expired) {
|
||||
var myvote = lang.lang_parse_endedvote;
|
||||
var result_hide = "";
|
||||
} else {
|
||||
var myvote = '<a onclick="voteMastodon(\'' + acct_id + '\',\'' + toot.poll.id + '\')" class="votebtn">' + lang.lang_parse_vote + '</a><br>';
|
||||
if (choices[0].votes_count === 0 || choices[0].votes_count > 0) {
|
||||
@@ -496,11 +509,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var result_hide = "hide";
|
||||
}
|
||||
if (toot.poll.expired) {
|
||||
var ended = lang.lang_parse_endedvote;
|
||||
} else {
|
||||
var ended = date(toot.poll.expires_at, datetype);
|
||||
}
|
||||
var ended = date(toot.poll.expires_at, datetype);
|
||||
Object.keys(choices).forEach(function (keyc) {
|
||||
var choice = choices[keyc];
|
||||
if (!toot.poll.voted && !toot.poll.expired) {
|
||||
@@ -594,17 +603,18 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var sense = ""
|
||||
var blur = null
|
||||
}
|
||||
if (media.pleroma) {
|
||||
if (media.pleroma.mime_type.indexOf("video") !== -1) {
|
||||
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',' +
|
||||
acct_id + ')" id="' + id + '-image-' + key2 + '" data-url="' + url +
|
||||
'" data-type="video" class="img-parsed"><video src="' +
|
||||
purl + '" class="' + sense +
|
||||
' toot-img pointer" style="max-width:100%;"></a></span>';
|
||||
}
|
||||
if (media.pleroma && media.pleroma.mime_type.indexOf("video") !== -1) {
|
||||
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',' +
|
||||
acct_id + ')" id="' + id + '-image-' + key2 + '" data-url="' + url +
|
||||
'" data-type="video" class="img-parsed"><video src="' +
|
||||
purl + '" class="' + sense +
|
||||
' toot-img pointer" style="max-width:100%;"></a></span>';
|
||||
} else {
|
||||
if (media.type == "unknown") {
|
||||
viewer = viewer + '<a href="' + media.remote_url + '" title="' + media.remote_url + '">[' + lang.lang_parse_unknown + ']</a> '
|
||||
} else if (media.type == "audio") {
|
||||
viewer = viewer + '<audio src="' +
|
||||
url + '" class="pointer" style="width:100%;" controls></span>';
|
||||
} else {
|
||||
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',\'' +
|
||||
acct_id + '\')" id="' + id + '-image-' + key2 + '" data-url="' + url +
|
||||
@@ -682,11 +692,11 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
} else if (visen == "private") {
|
||||
var vis =
|
||||
'<i class="text-darken-3 material-icons orange-text vis-data pointer" title="' + lang.lang_parse_private + '(' + lang.lang_parse_clickcopy + ')" data-vis="private" onclick="staCopy(\'' + id + '\')" style="font-size:1rem;">lock</i>';
|
||||
var can_rt = "hide";
|
||||
var can_rt = "unvisible";
|
||||
} else if (visen == "direct") {
|
||||
var vis =
|
||||
'<i class="text-darken-3 material-icons red-text vis-data pointer" title="' + lang.lang_parse_direct + '(' + lang.lang_parse_clickcopy + ')" data-vis="direct" onclick="staCopy(\'' + id + '\')" style="font-size:1rem;">mail</i>';
|
||||
var can_rt = "hide";
|
||||
var can_rt = "unvisible";
|
||||
}
|
||||
if (toot.account.acct == localStorage.getItem("user_" + acct_id)) {
|
||||
var if_mine = "";
|
||||
@@ -703,7 +713,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var fav_app = "";
|
||||
}
|
||||
if (toot.reblogged) {
|
||||
var if_rt = "teal-text";
|
||||
var if_rt = "light-blue-text";
|
||||
var rt_app = "rted";
|
||||
} else {
|
||||
var if_rt = "";
|
||||
@@ -711,7 +721,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
if (toot.pinned) {
|
||||
var if_pin = "blue-text";
|
||||
var pin_app = "pinned";
|
||||
var pin_app = "pinnedToot";
|
||||
} else {
|
||||
var if_pin = "";
|
||||
var pin_app = "";
|
||||
@@ -723,16 +733,17 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var avatar = toot.account.avatar_static;
|
||||
}
|
||||
//ワードミュート
|
||||
if (wordmute) {
|
||||
Object.keys(wordmute).forEach(function (key8) {
|
||||
var worde = wordmute[key8];
|
||||
if (wordmuteList) {
|
||||
Object.keys(wordmuteList).forEach(function (key8) {
|
||||
var worde = wordmuteList[key8];
|
||||
console.log(worde)
|
||||
if (worde) {
|
||||
if (worde.tag) {
|
||||
var word = worde.tag;
|
||||
var wordList = worde.tag;
|
||||
} else {
|
||||
var word = worde
|
||||
var wordList = worde
|
||||
}
|
||||
var regExp = new RegExp(word, "g");
|
||||
var regExp = new RegExp(wordList.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
if ($.strip_tags(content).match(regExp)) {
|
||||
boostback = "hide by_filter";
|
||||
}
|
||||
@@ -740,13 +751,13 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
});
|
||||
}
|
||||
//ワード強調
|
||||
if (wordemp) {
|
||||
Object.keys(wordemp).forEach(function (key9) {
|
||||
var word = wordemp[key9];
|
||||
if (word) {
|
||||
var word = word.tag;
|
||||
var regExp = new RegExp(word, "g");
|
||||
content = content.replace(regExp, '<span class="emp">' + word + "</span>");
|
||||
if (wordempList) {
|
||||
Object.keys(wordempList).forEach(function (key9) {
|
||||
var wordList = wordempList[key9];
|
||||
if (wordList) {
|
||||
var wordList = wordList.tag;
|
||||
var regExp = new RegExp(wordList.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
content = content.replace(regExp, '<span class="emp">' + wordList + "</span>");
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -860,10 +871,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
+ '<div class="' + if_mine + ' action ' + disp["red"] + ' ' + noauth + '"><a onclick="redraft(\'' + toot.id + '\',' +
|
||||
acct_id +
|
||||
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_parse_redraft + '"><i class="material-icons">redo</i></a></div>' + trans +
|
||||
'<span class="cbadge viabadge waves-effect ' + viashow + ' ' + mine_via + '" onclick="client(\'' + $.strip_tags(via) + '\')" title="via ' + $.strip_tags(via) + '">via ' +
|
||||
'</div><div class="area-side ' + mouseover + '"><span class="cbadge viabadge waves-effect ' + viashow + ' ' + mine_via + '" style="max-width:60px;" onclick="client(\'' + $.strip_tags(via) + '\')" title="via ' + $.strip_tags(via) + '">' +
|
||||
via +
|
||||
'</span>' +
|
||||
'</div><div class="area-side ' + mouseover + '"><div class="action ' + if_mine + ' ' + noauth + '"><a onclick="toggleAction(\'' + toot.id + '\',\'' + tlid + '\',\'' + acct_id + '\')" class="waves-effect waves-dark btn-flat" style="padding:0"><i class="text-darken-3 material-icons act-icon">expand_more</i></a></div>' +
|
||||
'</span>' + '<div class="action ' + if_mine + ' ' + noauth + '"><a onclick="toggleAction(\'' + toot.id + '\',\'' + tlid + '\',\'' + acct_id + '\')" class="waves-effect waves-dark btn-flat" style="padding:0"><i class="text-darken-3 material-icons act-icon">expand_more</i></a></div>' +
|
||||
'<div class="action ' + noauth + '"><a onclick="details(\'' + toot.id + '\',' + acct_id +
|
||||
',\'' + tlid + '\',\'normal\')" class="waves-effect waves-dark btn-flat details ' + dmHide + '" style="padding:0"><i class="text-darken-3 material-icons">more_vert</i></a></div>' +
|
||||
'</div></div>' +
|
||||
@@ -918,7 +928,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
}
|
||||
var memory = localStorage.getItem("notice-mem");
|
||||
if (popup >= 0 && obj.length < 5 && notftext != memory) {
|
||||
Materialize.toast(escapeHTML(toot.display_name) + ":" + ftxt, popup * 1000);
|
||||
M.toast({ html: escapeHTML(toot.display_name) + ":" + ftxt, displayLength: popup * 1000 })
|
||||
$(".notf-icon_" + tlid).addClass("red-text");
|
||||
localStorage.setItem("notice-mem", notftext);
|
||||
notftext = "";
|
||||
@@ -927,9 +937,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
native = "yes";
|
||||
}
|
||||
if (native == "yes") {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
var os = localStorage.getItem("platform");
|
||||
var options = {
|
||||
body: toot.display_name + "(" + toot.acct + ")" + ftxt,
|
||||
icon: toot.avatar
|
||||
@@ -938,14 +946,15 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
ipc.send('native-notf', [
|
||||
var nativeNotfOpt = [
|
||||
'TheDesk:' + domain,
|
||||
toot.display_name + "(" + toot.acct + ")" + ftxt,
|
||||
toot.avatar,
|
||||
"userdata",
|
||||
acct_id,
|
||||
toot.id
|
||||
]);
|
||||
]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1009,23 +1018,27 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
function client(name) {
|
||||
if (name != "Unknown") {
|
||||
//聞く
|
||||
var electron = require("electron");
|
||||
var remote = electron.remote;
|
||||
var dialog = remote.dialog;
|
||||
const options = {
|
||||
type: 'info',
|
||||
Swal.fire({
|
||||
title: lang.lang_parse_clientop,
|
||||
message: name + lang.lang_parse_clienttxt,
|
||||
buttons: [lang.lang_parse_clientno, lang.lang_parse_clientemp, lang.lang_parse_clientmute]
|
||||
}
|
||||
dialog.showMessageBox(options, function (arg) {
|
||||
if (arg === 1) {
|
||||
text: name + lang.lang_parse_clienttxt,
|
||||
type: 'info',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#3085d6',
|
||||
confirmButtonText: lang.lang_parse_clientmute,
|
||||
cancelButtonText: lang.lang_parse_clientemp,
|
||||
showCloseButton: true,
|
||||
focusConfirm: false,
|
||||
}).then((result) => {
|
||||
console.log(result)
|
||||
if (result.dismiss == "cancel") {
|
||||
//Emp
|
||||
var cli = localStorage.getItem("client_emp");
|
||||
var obj = JSON.parse(cli);
|
||||
if (!obj) {
|
||||
var obj = [];
|
||||
obj.push(name);
|
||||
Materialize.toast(escapeHTML(name) + lang.lang_status_emphas, 2000);
|
||||
M.toast({ html: escapeHTML(name) + lang.lang_status_emphas, displayLength: 2000 })
|
||||
} else {
|
||||
var can;
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
@@ -1035,19 +1048,21 @@ function client(name) {
|
||||
} else {
|
||||
can = true;
|
||||
obj.splice(key, 1);
|
||||
Materialize.toast(escapeHTML(name) + lang.lang_status_unemphas, 2000);
|
||||
M.toast({ html: escapeHTML(name) + lang.lang_status_unemphas, displayLength: 2000 })
|
||||
}
|
||||
});
|
||||
if (!can) {
|
||||
obj.push(name);
|
||||
Materialize.toast(escapeHTML(name) + lang.lang_status_emphas, 2000);
|
||||
M.toast({ html: escapeHTML(name) + lang.lang_status_emphas, displayLength: 2000 })
|
||||
} else {
|
||||
|
||||
}
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("client_emp", json);
|
||||
parseColumn()
|
||||
}
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("client_emp", json);
|
||||
} else if (arg === 2) {
|
||||
} else if (result.value) {
|
||||
//Mute
|
||||
var cli = localStorage.getItem("client_mute");
|
||||
var obj = JSON.parse(cli);
|
||||
if (!obj) {
|
||||
@@ -1056,12 +1071,9 @@ function client(name) {
|
||||
obj.push(name);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("client_mute", json);
|
||||
Materialize.toast(escapeHTML(name) + lang.lang_parse_mute, 2000);
|
||||
} else {
|
||||
return;
|
||||
M.toast({ html: escapeHTML(name) + lang.lang_parse_mute, displayLength: 2000 })
|
||||
parseColumn()
|
||||
}
|
||||
parseColumn();
|
||||
})
|
||||
|
||||
}
|
||||
}
|
@@ -90,7 +90,7 @@ function voiceSettings() {
|
||||
localStorage.setItem("voice_speed", $("#voicespeed").val() / 10);
|
||||
localStorage.setItem("voice_pitch", $("#voicepitch").val() / 50);
|
||||
localStorage.setItem("voice_vol", $("#voicevol").val() / 100);
|
||||
Materialize.toast(lang.lang_speech_refresh, 3000);
|
||||
M.toast({ html: lang.lang_speech_refresh, displayLength: 3000 })
|
||||
}
|
||||
function voiceSettingLoad() {
|
||||
var speed = localStorage.getItem("voice_speed");
|
||||
|
@@ -54,7 +54,7 @@ function src(mode) {
|
||||
tags = tags + '<a onclick="tl(\'tag\',\'' + tag + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + escapeHTML(tag) + '</a><br> ';
|
||||
} else {
|
||||
tags = tags + graphDraw(tag);
|
||||
tags = tags + graphDraw(tag, acct_id);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -63,12 +63,12 @@ function src(mode) {
|
||||
//トゥート
|
||||
if (json.statuses[0]) {
|
||||
var templete = parse(json.statuses, '', acct_id);
|
||||
$("#src-contents").append("Mentions<br>" + templete);
|
||||
$("#src-contents").append("<br>Mentions<br>" + templete);
|
||||
}
|
||||
//アカウント
|
||||
if (json.accounts[0]) {
|
||||
var templete = userparse(json.accounts, '', acct_id);
|
||||
$("#src-contents").append("Accounts<br>" + templete);
|
||||
$("#src-contents").append("<br>Accounts<br>" + templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
@@ -164,7 +164,7 @@ function moreTs(tlid, q) {
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
function graphDraw(tag) {
|
||||
function graphDraw(tag, acct_id) {
|
||||
var tags = "";
|
||||
var his = tag.history;
|
||||
var max = Math.max.apply(null, [his[0].uses, his[1].uses, his[2].uses, his[3].uses, his[4].uses, his[5].uses, his[6].uses]);
|
||||
|
@@ -120,10 +120,10 @@ function autoToot(tag) {
|
||||
var nowPT = localStorage.getItem("stable")
|
||||
if (nowPT == tag) {
|
||||
localStorage.removeItem("stable");
|
||||
Materialize.toast(lang.lang_tags_unrealtime, 3000);
|
||||
M.toast({ html: lang.lang_tags_unrealtime, displayLength: 3000 })
|
||||
} else {
|
||||
localStorage.setItem("stable", tag);
|
||||
Materialize.toast(lang.lang_tags_tagwarn.replace("{{tag}}", tag).replace("{{tag}}", tag), 3000);
|
||||
M.toast({ html: lang.lang_tags_tagwarn.replace("{{tag}}", tag).replace("{{tag}}", tag), displayLength: 3000 })
|
||||
brInsert('#' + tag + " ")
|
||||
}
|
||||
favTag();
|
||||
|
@@ -425,6 +425,11 @@ function moreload(type, tlid) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
if (misskey) {
|
||||
var templete = misskeyParse(json, '', acct_id, tlid, "", mute);
|
||||
} else {
|
||||
@@ -816,6 +821,7 @@ function reconnector(tlid, type, acct_id, data, mode) {
|
||||
}
|
||||
reload(type, '', acct_id, tlid, data, mute, "", voice, mode);
|
||||
}
|
||||
Materialize.toast(lang.lang_tl_reconnect, 2000);
|
||||
M.toast({ html: lang.lang_tl_reconnect, displayLength: 2000 })
|
||||
|
||||
}
|
||||
strAliveInt()
|
@@ -271,22 +271,14 @@ function detFromImg() {
|
||||
//画像保存
|
||||
function dlImg() {
|
||||
var url = $("#imgmodal").attr("src");
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
if (localStorage.getItem("savefolder")) {
|
||||
var save = localStorage.getItem("savefolder");
|
||||
} else {
|
||||
var save = "";
|
||||
}
|
||||
ipc.send('general-dl', [url, save, false]);
|
||||
ipc.on('general-dl-prog', function (event, arg) {
|
||||
console.log("Progress: " + arg);
|
||||
})
|
||||
ipc.on('general-dl-message', function (event, arg) {
|
||||
var argC = arg.replace(/\\/g, "\\\\") + "\\\\.";
|
||||
Materialize.toast(lang.lang_img_DLDone + arg + '<button class="btn-flat toast-action" onclick="openFinder(\'' + argC + '\')">Show</button>', 5000);
|
||||
})
|
||||
postMessage(["generalDL", [url, save, false]], "*")
|
||||
|
||||
}
|
||||
function openFinder(dir) {
|
||||
ipc.send('open-finder', dir);
|
||||
postMessage(["openFinder", dir], "*")
|
||||
}
|
@@ -164,16 +164,16 @@ function parseColumn(dontclose) {
|
||||
var animecss = "";
|
||||
}
|
||||
if (acct.type == "notf") {
|
||||
var exclude = lang.lang_excluded + ':<br><input type="checkbox" class="filled-in" id="exc-reply-' + key + '" ' + excludeCk(key, "mention") + ' /><label for="exc-reply-' + key + '" class="exc-chb"><i class="fas fa-share exc-icons"></i></label> ' +
|
||||
'<input type="checkbox" class="filled-in" id="exc-fav-' + key + '" ' + excludeCk(key, "favourite") + ' /><label for="exc-fav-' + key + '" class="exc-chb"><i class="fas fa-star exc-icons"></i></label> ' +
|
||||
'<input type="checkbox" class="filled-in" id="exc-bt-' + key + '" ' + excludeCk(key, "reblog") + ' /><label for="exc-bt-' + key + '" class="exc-chb" ><i class="fas fa-retweet exc-icons"></i></label> ' +
|
||||
'<input type="checkbox" class="filled-in" id="exc-follow-' + key + '" ' + excludeCk(key, "follow") + ' /><label for="exc-follow-' + key + '" class="exc-chb" ><i class="fas fa-users exc-icons"></i></label> ' +
|
||||
'<input type="checkbox" class="filled-in" id="exc-poll-' + key + '" ' + excludeCk(key, "poll") + ' /><label for="exc-poll-' + key + '" class="exc-chb" ><i class="fas fa-tasks exc-icons"></i></label> ' +
|
||||
var exclude = lang.lang_excluded + ':<br><label><input type="checkbox" class="filled-in" id="exc-reply-' + key + '" ' + excludeCk(key, "mention") + ' /><span><i class="fas fa-share exc-icons"></i></span></label> ' +
|
||||
'<label><input type="checkbox" class="filled-in" id="exc-fav-' + key + '" ' + excludeCk(key, "favourite") + ' /><span><i class="fas fa-star exc-icons"></i></span></label> ' +
|
||||
'<label><input type="checkbox" class="filled-in" id="exc-bt-' + key + '" ' + excludeCk(key, "reblog") + ' /><span><i class="fas fa-retweet exc-icons"></i></span></label> ' +
|
||||
'<label><input type="checkbox" class="filled-in" id="exc-follow-' + key + '" ' + excludeCk(key, "follow") + ' /><span><i class="fas fa-users exc-icons"></i></span></label> ' +
|
||||
'<label><input type="checkbox" class="filled-in" id="exc-poll-' + key + '" ' + excludeCk(key, "poll") + ' /><span><i class="fas fa-tasks exc-icons"></i></span></label> ' +
|
||||
'<button class="btn waves-effect" style="width:60px; padding:0;" onclick="exclude(' + key + ')">Filter</button>';
|
||||
if(checkNotfFilter(key)){
|
||||
exclude=exclude+'<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter(' + key + ')">Clear all</button>'
|
||||
}
|
||||
exclude=exclude+"<br>";
|
||||
if (checkNotfFilter(key)) {
|
||||
exclude = exclude + '<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter(' + key + ')">Clear all</button>'
|
||||
}
|
||||
exclude = exclude + "<br>";
|
||||
} else if (acct.type == "home") {
|
||||
var exclude = '<a onclick="ebtToggle(' + key +
|
||||
')" class="setting nex"><i class="fas fa-retweet waves-effect nex" title="' + lang.lang_layout_excludingbt + '" style="font-size:24px"></i><span id="sta-bt-' +
|
||||
@@ -308,7 +308,7 @@ function secvis(set) {
|
||||
//カラム追加
|
||||
function addColumn() {
|
||||
var acct = $("#add-acct-sel").val();
|
||||
if(acct != "webview" && acct != "noauth"){
|
||||
if (acct != "webview" && acct != "noauth") {
|
||||
localStorage.setItem("last-use", acct);
|
||||
}
|
||||
var type = $("#type-sel").val();
|
||||
@@ -364,26 +364,28 @@ function addselCk() {
|
||||
function removeColumn(tlid) {
|
||||
$("#sort-box").addClass("hide");
|
||||
$("#sort-box").removeClass("show");
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
//聞く
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('column-del', "");
|
||||
ipc.on('column-del-reply', function (event, arg) {
|
||||
if (arg === 1) {
|
||||
localStorage.removeItem("card_" + tlid);
|
||||
Swal.fire({
|
||||
title: lang.lang_layout_deleteColumn,
|
||||
text: lang.lang_layout_deleteColumnDesc,
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
obj.splice(tlid, 1);
|
||||
for (var i = 0; i < obj.length; i++) {
|
||||
localStorage.setItem("card_" + i, "true");
|
||||
localStorage.removeItem("catch_" + i);
|
||||
}
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
parseColumn();
|
||||
sortload()
|
||||
parseColumn()
|
||||
sortLoad()
|
||||
}
|
||||
})
|
||||
$("#sort-box").removeClass("hide");
|
||||
$("#sort-box").addClass("show");
|
||||
});
|
||||
}
|
||||
|
||||
//設定トグル
|
||||
@@ -470,7 +472,7 @@ function webviewParse(url, key, insert, icnsert, css) {
|
||||
'" style="' + css + '"><div class="notice-box z-depth-2" id="menu_' + key + '" style="' + insert + '">' +
|
||||
'<div class="area-notice"><i class="fab fa-twitter waves-effect" id="notice_icon_' + key + '" style="font-size:40px; padding-top:25%;"></i></div>' +
|
||||
'<div class="area-notice_name tl-title">WebView(' + url + ')</div>' +
|
||||
'<div class="area-sta"><input type="checkbox" id="webviewsel" value="true" class="filled-in"><label for="webviewsel">' + lang.lang_layout_webviewmode + '</label></div>' +
|
||||
'<div class="area-sta"></div>' +
|
||||
'<div class="area-a2"><a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_delthis + '"' + icnsert + '>cancel</i></a></div>' +
|
||||
'<div class="area-a3"><a onclick="setToggle(' + key +
|
||||
@@ -479,7 +481,6 @@ function webviewParse(url, key, insert, icnsert, css) {
|
||||
'"></div><div class="column-hide notf-indv-box" id="util-box_' + key +
|
||||
'" style="padding:5px;">' + lang.lang_layout_headercolor + '<br><div id="picker_' + key + '" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '" style="width:100%;height:100%;"><div id="timeline_' + key +
|
||||
'" class="tl" tlid="' + key + '" data-type="webview" style="width:100%;height:100%;"><webview src="' + url + '" style="width:100%;height:100%;" id="webview" preload="./js/platform/twitter.js"></webview></div></div></div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, animecss, q) {
|
||||
@@ -528,4 +529,4 @@ function leftFoldRemove(key) {
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
parseColumn();
|
||||
}
|
||||
}
|
@@ -51,6 +51,5 @@ $(function () {
|
||||
});
|
||||
});
|
||||
function help() {
|
||||
const { shell } = require('electron');
|
||||
shell.openExternal("https://docs.thedesk.top");
|
||||
postMessage(["openUrl", "https://docs.thedesk.top"], "*")
|
||||
}
|
@@ -39,6 +39,7 @@ function show() {
|
||||
$('#post-box').css("left", left + "px")
|
||||
$('#post-box').css("top", top + "px")
|
||||
$('#post-box').fadeIn();
|
||||
$('#textarea').characterCounter();
|
||||
}
|
||||
|
||||
$(function () {
|
||||
|
@@ -5,7 +5,7 @@ var envView = new Vue({
|
||||
methods: {
|
||||
complete: function (i, val) {
|
||||
var ls = envView.config[i].storage;
|
||||
Materialize.toast("Complete", 3000);
|
||||
M.toast({ html: 'Complete', displayLength: 3000 })
|
||||
if (!val) {
|
||||
var id = envView.config[i].id;
|
||||
var val = $("#" + id).val()
|
||||
@@ -23,13 +23,22 @@ var tlView = new Vue({
|
||||
data: { config: tlConstruction },
|
||||
methods: {
|
||||
complete: function (i, val) {
|
||||
var ls = tlView.config[i].storage;
|
||||
if (!val) {
|
||||
var id = tlView.config[i].id;
|
||||
var val = $("#" + id).val()
|
||||
var ls = tlView.config[i];
|
||||
if (val) {
|
||||
localStorage.setItem(ls.storage, val)
|
||||
} else {
|
||||
if (!ls.data) {
|
||||
ls = [ls]
|
||||
} else {
|
||||
ls = ls.data
|
||||
}
|
||||
for (var j = 0; j < ls.length; j++) {
|
||||
M.toast({ html: 'Complete', displayLength: 3000 })
|
||||
var id = ls[j].id;
|
||||
var val = $("#" + id).val()
|
||||
localStorage.setItem(ls[j].storage, val)
|
||||
}
|
||||
}
|
||||
Materialize.toast("Complete", 3000);
|
||||
localStorage.setItem(ls, val)
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -39,13 +48,22 @@ var postView = new Vue({
|
||||
data: { config: postConstruction, kirishima: localStorage.getItem('kirishima') },
|
||||
methods: {
|
||||
complete: function (i, val) {
|
||||
var ls = postView.config[i].storage;
|
||||
Materialize.toast("Complete", 3000);
|
||||
if (!val) {
|
||||
var id = postView.config[i].id;
|
||||
var val = $("#" + id).val()
|
||||
var ls = postView.config[i];
|
||||
if (val) {
|
||||
localStorage.setItem(ls.storage, val)
|
||||
} else {
|
||||
if (!ls.data) {
|
||||
ls = [ls]
|
||||
} else {
|
||||
ls = ls.data
|
||||
}
|
||||
for (var j = 0; j < ls.length; j++) {
|
||||
M.toast({ html: 'Complete', displayLength: 3000 })
|
||||
var id = ls[j].id;
|
||||
var val = $("#" + id).val()
|
||||
localStorage.setItem(ls[j].storage, val)
|
||||
}
|
||||
}
|
||||
localStorage.setItem(ls, val)
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -62,7 +80,7 @@ function settings() {
|
||||
$("#" + theme).prop("checked", true);
|
||||
} else {
|
||||
if (cd != localStorage.getItem("theme")) {
|
||||
Materialize.toast(lang.lang_setting_theme.replace("{{set}}", ct), 3000);
|
||||
M.toast({ html: lang.lang_setting_theme.replace("{{set}}", ct), displayLength: 3000 })
|
||||
}
|
||||
//テーマはこの場で設定
|
||||
themes(cd);
|
||||
@@ -71,14 +89,14 @@ function settings() {
|
||||
var fontd = $("#font").val();
|
||||
if (fontd) {
|
||||
if (fontd != localStorage.getItem("font")) {
|
||||
Materialize.toast(lang.lang_setting_font.replace("{{set}}", fontd), 3000);
|
||||
M.toast({ html: lang.lang_setting_font.replace("{{set}}", ct), displayLength: 3000 })
|
||||
}
|
||||
localStorage.setItem("font", fontd);
|
||||
themes();
|
||||
} else {
|
||||
if (localStorage.getItem("font")) {
|
||||
localStorage.removeItem("font");
|
||||
Materialize.toast(lang.lang_setting_font.replace("{{set}}", lang.lang_setting_default), 3000);
|
||||
M.toast({ html: lang.lang_setting_font.replace("{{set}}", ct), displayLength: 3000 })
|
||||
themes();
|
||||
}
|
||||
}
|
||||
@@ -96,15 +114,31 @@ function load() {
|
||||
var max = tlView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = tlView.config[i].storage;
|
||||
if (localStorage.getItem(ls)) {
|
||||
tlView.config[i].setValue = localStorage.getItem(ls)
|
||||
if (ls) {
|
||||
if (localStorage.getItem(ls)) {
|
||||
tlView.config[i].setValue = localStorage.getItem(ls)
|
||||
}
|
||||
} else {
|
||||
ls = tlView.config[i].data
|
||||
for (var j = 0; j < ls.length; j++) {
|
||||
if(localStorage.getItem(tlView.config[i].data[j].storage)){
|
||||
tlView.config[i].data[j].setValue = localStorage.getItem(tlView.config[i].data[j].storage)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var max = postView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = postView.config[i].storage;
|
||||
if (localStorage.getItem(ls)) {
|
||||
postView.config[i].setValue = localStorage.getItem(ls)
|
||||
if (ls) {
|
||||
if (localStorage.getItem(ls)) {
|
||||
postView.config[i].setValue = localStorage.getItem(ls)
|
||||
}
|
||||
} else {
|
||||
ls = postView.config[i].data
|
||||
for (var j = 0; j < ls.length; j++) {
|
||||
postView.config[i].data[j].setValue = localStorage.getItem(ls[j].storage)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (localStorage.getItem("imas")) {
|
||||
@@ -165,12 +199,13 @@ function cliMuteDel(key) {
|
||||
function wordmute() {
|
||||
var word = localStorage.getItem("word_mute");
|
||||
var obj = JSON.parse(word);
|
||||
$('#wordmute').material_chip({
|
||||
if (!obj) { obj = [] }
|
||||
$('#wordmute').chips({
|
||||
data: obj,
|
||||
});
|
||||
}
|
||||
function wordmuteSave() {
|
||||
var word = $('#wordmute').material_chip('data');
|
||||
var word = M.Chips.getInstance($("#wordmute")).chipsData;
|
||||
var json = JSON.stringify(word);
|
||||
localStorage.setItem("word_mute", json);
|
||||
}
|
||||
@@ -178,19 +213,18 @@ function wordmuteSave() {
|
||||
function wordemp() {
|
||||
var word = localStorage.getItem("word_emp");
|
||||
var obj = JSON.parse(word);
|
||||
$('#wordemp').material_chip({
|
||||
if (!obj) { obj = [] }
|
||||
$('#wordemp').chips({
|
||||
data: obj,
|
||||
});
|
||||
}
|
||||
function wordempSave() {
|
||||
var word = $('#wordemp').material_chip('data');
|
||||
var word = M.Chips.getInstance($("#wordemp")).chipsData;
|
||||
var json = JSON.stringify(word);
|
||||
localStorage.setItem("word_emp", json);
|
||||
}
|
||||
function notftest() {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
var os = localStorage.getItem("platform");
|
||||
var options = {
|
||||
body: lang.lang_setting_notftest + '(' + lang.lang_setting_notftestprof + ')',
|
||||
icon: localStorage.getItem("prof_0")
|
||||
@@ -198,14 +232,15 @@ function notftest() {
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk' + lang.lang_setting_notftest, options);
|
||||
} else {
|
||||
ipc.send('native-notf', ['TheDesk' + lang.lang_setting_notftest, lang.lang_setting_notftest + '(' + lang.lang_setting_notftestprof + ')', localStorage.getItem('prof_0'), "", ""]);
|
||||
var nativeNotfOpt = ['TheDesk' + lang.lang_setting_notftest, lang.lang_setting_notftest + '(' + lang.lang_setting_notftestprof + ')', localStorage.getItem('prof_0'), "", ""]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
|
||||
}
|
||||
function oks(no) {
|
||||
var txt = $("#oks-" + no).val();
|
||||
localStorage.setItem("oks-" + no, txt);
|
||||
Materialize.toast(lang.lang_setting_ksref, 3000);
|
||||
M.toast({ html: lang.lang_setting_ksref, displayLength: 3000 })
|
||||
}
|
||||
function oksload() {
|
||||
if (localStorage.getItem("oks-1")) { $("#oks-1").val(localStorage.getItem("oks-1")) }
|
||||
@@ -213,228 +248,204 @@ function oksload() {
|
||||
if (localStorage.getItem("oks-3")) { $("#oks-3").val(localStorage.getItem("oks-3")) }
|
||||
}
|
||||
function changelang(lang) {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('lang', lang);
|
||||
ipc.on('langres', function (event, arg) {
|
||||
location.href = "../" + lang + "/setting.html"
|
||||
});
|
||||
postMessage(["lang", lang], "*")
|
||||
}
|
||||
function exportSettings() {
|
||||
if (!confirm(lang.lang_setting_exportwarn)) {
|
||||
return false;
|
||||
Swal.fire({
|
||||
title: lang.lang_setting_exportwarn,
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
postMessage(["exportSettings", ""], "*")
|
||||
}
|
||||
})
|
||||
}
|
||||
function exportSettingsCore() {
|
||||
var exp = {};
|
||||
//Accounts
|
||||
var multi = localStorage.getItem("multi");
|
||||
var acct = JSON.parse(multi);
|
||||
exp.accts = acct;
|
||||
//Columns
|
||||
var multi = localStorage.getItem("column");
|
||||
var column = JSON.parse(multi);
|
||||
exp.columns = column;
|
||||
//Themes
|
||||
var config = {};
|
||||
config.theme = localStorage.getItem("theme");
|
||||
//Other configs
|
||||
var max = envView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = envView.config[i].storage;
|
||||
config[ls] = localStorage.getItem(ls)
|
||||
}
|
||||
var electron = require("electron");
|
||||
var remote = electron.remote;
|
||||
var dialog = remote.dialog;
|
||||
var ipc = electron.ipcRenderer;
|
||||
dialog.showSaveDialog(null, {
|
||||
title: 'Export',
|
||||
properties: ['openFile', 'createDirectory'],
|
||||
defaultPath: "export.thedeskconfigv2"
|
||||
}, (savedFiles) => {
|
||||
if (!savedFiles) {
|
||||
return false;
|
||||
}
|
||||
var exp = {};
|
||||
//Accounts
|
||||
var multi = localStorage.getItem("multi");
|
||||
var acct = JSON.parse(multi);
|
||||
exp.accts = acct;
|
||||
//Columns
|
||||
var multi = localStorage.getItem("column");
|
||||
var column = JSON.parse(multi);
|
||||
exp.columns = column;
|
||||
//Themes
|
||||
var config = {};
|
||||
config.theme = localStorage.getItem("theme");
|
||||
//Other configs
|
||||
var max = envView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = envView.config[i].storage;
|
||||
config[ls] = localStorage.getItem(ls)
|
||||
}
|
||||
var max = tlView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = tlView.config[i].storage;
|
||||
config[ls] = localStorage.getItem(ls)
|
||||
}
|
||||
var max = postView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = postView.config[i].storage;
|
||||
config[ls] = localStorage.getItem(ls)
|
||||
}
|
||||
//Font
|
||||
config.font = localStorage.getItem("font");
|
||||
exp.config = config;
|
||||
//keysc
|
||||
exp.ksc = [
|
||||
localStorage.getItem("oks-1"),
|
||||
localStorage.getItem("oks-2"),
|
||||
localStorage.getItem("oks-3")
|
||||
];
|
||||
//climu
|
||||
var cli = localStorage.getItem("client_mute");
|
||||
var climu = JSON.parse(cli);
|
||||
exp.clientMute = climu;
|
||||
//wordmu
|
||||
var wdm = localStorage.getItem("word_mute");
|
||||
var wordmu = JSON.parse(wdm);
|
||||
exp.wordMute = wordmu;
|
||||
//spotify
|
||||
exp.spotifyArtwork = localStorage.getItem("artwork")
|
||||
var content = localStorage.getItem("np-temp");
|
||||
if (content || content == "" || content == "null") {
|
||||
exp.spotifyTemplete = content;
|
||||
} else {
|
||||
exp.spotifyTemplete = null;
|
||||
}
|
||||
//tags
|
||||
var tagarr = localStorage.getItem("tag");
|
||||
var favtag = JSON.parse(tagarr);
|
||||
exp.favoriteTags = favtag;
|
||||
ipc.send('export', [savedFiles, JSON.stringify(exp)]);
|
||||
alert("Done.")
|
||||
//cards
|
||||
//lang
|
||||
});
|
||||
var max = tlView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = tlView.config[i].storage;
|
||||
config[ls] = localStorage.getItem(ls)
|
||||
}
|
||||
var max = postView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = postView.config[i].storage;
|
||||
config[ls] = localStorage.getItem(ls)
|
||||
}
|
||||
//Font
|
||||
config.font = localStorage.getItem("font");
|
||||
exp.config = config;
|
||||
//keysc
|
||||
exp.ksc = [
|
||||
localStorage.getItem("oks-1"),
|
||||
localStorage.getItem("oks-2"),
|
||||
localStorage.getItem("oks-3")
|
||||
];
|
||||
//climu
|
||||
var cli = localStorage.getItem("client_mute");
|
||||
var climu = JSON.parse(cli);
|
||||
exp.clientMute = climu;
|
||||
//wordmu
|
||||
var wdm = localStorage.getItem("word_mute");
|
||||
var wordmu = JSON.parse(wdm);
|
||||
exp.wordMute = wordmu;
|
||||
//spotify
|
||||
exp.spotifyArtwork = localStorage.getItem("artwork")
|
||||
var content = localStorage.getItem("np-temp");
|
||||
if (content || content == "" || content == "null") {
|
||||
exp.spotifyTemplete = content;
|
||||
} else {
|
||||
exp.spotifyTemplete = null;
|
||||
}
|
||||
//tags
|
||||
var tagarr = localStorage.getItem("tag");
|
||||
var favtag = JSON.parse(tagarr);
|
||||
exp.favoriteTags = favtag;
|
||||
return exp;
|
||||
}
|
||||
function importSettings() {
|
||||
if (!confirm(lang.lang_setting_importwarn)) {
|
||||
return false;
|
||||
}
|
||||
var electron = require("electron");
|
||||
var remote = electron.remote;
|
||||
var dialog = remote.dialog;
|
||||
var ipc = electron.ipcRenderer;
|
||||
dialog.showOpenDialog(null, {
|
||||
title: 'Import',
|
||||
properties: ['openFile'],
|
||||
filters: [
|
||||
{ name: 'TheDesk Config', extensions: ['thedeskconfig', 'thedeskconfigv2'] },
|
||||
]
|
||||
}, (fileNames) => {
|
||||
if (!fileNames) {
|
||||
return false;
|
||||
Swal.fire({
|
||||
title: lang.lang_setting_importwarn,
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
postMessage(["importSettings", ""], "*")
|
||||
}
|
||||
ipc.send('import', fileNames[0]);
|
||||
ipc.on('config', function (event, arg) {
|
||||
var obj = JSON.parse(arg);
|
||||
if (obj) {
|
||||
localStorage.clear();
|
||||
localStorage.setItem("multi", JSON.stringify(obj.accts));
|
||||
for (var key = 0; key < obj.accts.length; key++) {
|
||||
var acct = obj.accts[key];
|
||||
localStorage.setItem("name_" + key, acct.name);
|
||||
localStorage.setItem("user_" + key, acct.user);
|
||||
localStorage.setItem("user-id_" + key, acct.id);
|
||||
localStorage.setItem("prof_" + key, acct.prof);
|
||||
localStorage.setItem("domain_" + key, acct.domain);
|
||||
localStorage.setItem("acct_" + key + "_at", acct.at);
|
||||
})
|
||||
}
|
||||
function importSettingsCore(arg) {
|
||||
var obj = JSON.parse(arg);
|
||||
if (obj) {
|
||||
localStorage.clear();
|
||||
localStorage.setItem("multi", JSON.stringify(obj.accts));
|
||||
for (var key = 0; key < obj.accts.length; key++) {
|
||||
var acct = obj.accts[key];
|
||||
localStorage.setItem("name_" + key, acct.name);
|
||||
localStorage.setItem("user_" + key, acct.user);
|
||||
localStorage.setItem("user-id_" + key, acct.id);
|
||||
localStorage.setItem("prof_" + key, acct.prof);
|
||||
localStorage.setItem("domain_" + key, acct.domain);
|
||||
localStorage.setItem("acct_" + key + "_at", acct.at);
|
||||
}
|
||||
localStorage.setItem("column", JSON.stringify(obj.columns));
|
||||
if (obj.config) {
|
||||
//Version 2
|
||||
var max = envView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = envView.config[i].storage;
|
||||
if (obj.config[ls]) {
|
||||
localStorage.setItem(ls, obj.config[ls])
|
||||
}
|
||||
localStorage.setItem("column", JSON.stringify(obj.columns));
|
||||
if (obj.config) {
|
||||
//Version 2
|
||||
var max = envView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = envView.config[i].storage;
|
||||
if (obj.config[ls]) {
|
||||
localStorage.setItem(ls, obj.config[ls])
|
||||
}
|
||||
}
|
||||
var max = tlView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = tlView.config[i].storage;
|
||||
if (obj.config[ls]) {
|
||||
localStorage.setItem(ls, obj.config[ls])
|
||||
}
|
||||
}
|
||||
var max = postView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = postView.config[i].storage;
|
||||
if (obj.config[ls]) {
|
||||
localStorage.setItem(ls, obj.config[ls])
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//Version 1
|
||||
localStorage.setItem("theme", obj.theme);
|
||||
if (obj.width) {
|
||||
localStorage.setItem("width", obj.width);
|
||||
}
|
||||
if (obj.font) {
|
||||
localStorage.setItem("font", obj.font);
|
||||
}
|
||||
if (obj.size) {
|
||||
localStorage.setItem("size", obj.size);
|
||||
}
|
||||
themes(obj.theme);
|
||||
if (obj.imgheight) {
|
||||
localStorage.setItem("img-height", obj.imgheight);
|
||||
}
|
||||
localStorage.setItem("mainuse", obj.mainuse);
|
||||
if (obj.cw) {
|
||||
localStorage.setItem("cwtext", obj.cw);
|
||||
}
|
||||
localStorage.setItem("vis", obj.vis);
|
||||
//End
|
||||
}
|
||||
if (obj.ksc[0]) {
|
||||
localStorage.setItem("oks-1", obj.ksc[0]);
|
||||
}
|
||||
if (obj.ksc[1]) {
|
||||
localStorage.setItem("oks-2", obj.ksc[1]);
|
||||
}
|
||||
if (obj.ksc[2]) {
|
||||
localStorage.setItem("oks-3", obj.ksc[2]);
|
||||
}
|
||||
if (obj.clientMute) {
|
||||
localStorage.setItem("client_mute", JSON.stringify(obj.clientMute));
|
||||
}
|
||||
if (obj.wordMute) {
|
||||
localStorage.setItem("word_mute", JSON.stringify(obj.wordMute));
|
||||
}
|
||||
if (obj.favoriteTags) {
|
||||
localStorage.setItem("tag", JSON.stringify(obj.favoriteTags));
|
||||
}
|
||||
|
||||
localStorage.setItem("np-temp", obj.spotifyTemplete);
|
||||
for (var i = 0; i < obj.columns.length; i++) {
|
||||
localStorage.setItem("card_" + i, "true");
|
||||
localStorage.removeItem("catch_" + i);
|
||||
}
|
||||
location.href = "index.html";
|
||||
} else {
|
||||
alert("Error.")
|
||||
}
|
||||
var max = tlView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = tlView.config[i].storage;
|
||||
if (obj.config[ls]) {
|
||||
localStorage.setItem(ls, obj.config[ls])
|
||||
}
|
||||
}
|
||||
var max = postView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = postView.config[i].storage;
|
||||
if (obj.config[ls]) {
|
||||
localStorage.setItem(ls, obj.config[ls])
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//Version 1
|
||||
localStorage.setItem("theme", obj.theme);
|
||||
if (obj.width) {
|
||||
localStorage.setItem("width", obj.width);
|
||||
}
|
||||
if (obj.font) {
|
||||
localStorage.setItem("font", obj.font);
|
||||
}
|
||||
if (obj.size) {
|
||||
localStorage.setItem("size", obj.size);
|
||||
}
|
||||
themes(obj.theme);
|
||||
if (obj.imgheight) {
|
||||
localStorage.setItem("img-height", obj.imgheight);
|
||||
}
|
||||
localStorage.setItem("mainuse", obj.mainuse);
|
||||
if (obj.cw) {
|
||||
localStorage.setItem("cwtext", obj.cw);
|
||||
}
|
||||
localStorage.setItem("vis", obj.vis);
|
||||
//End
|
||||
}
|
||||
if (obj.ksc[0]) {
|
||||
localStorage.setItem("oks-1", obj.ksc[0]);
|
||||
}
|
||||
if (obj.ksc[1]) {
|
||||
localStorage.setItem("oks-2", obj.ksc[1]);
|
||||
}
|
||||
if (obj.ksc[2]) {
|
||||
localStorage.setItem("oks-3", obj.ksc[2]);
|
||||
}
|
||||
if (obj.clientMute) {
|
||||
localStorage.setItem("client_mute", JSON.stringify(obj.clientMute));
|
||||
}
|
||||
if (obj.wordMute) {
|
||||
localStorage.setItem("word_mute", JSON.stringify(obj.wordMute));
|
||||
}
|
||||
if (obj.favoriteTags) {
|
||||
localStorage.setItem("tag", JSON.stringify(obj.favoriteTags));
|
||||
}
|
||||
|
||||
localStorage.setItem("np-temp", obj.spotifyTemplete);
|
||||
for (var i = 0; i < obj.columns.length; i++) {
|
||||
localStorage.setItem("card_" + i, "true");
|
||||
localStorage.removeItem("catch_" + i);
|
||||
}
|
||||
location.href = "index.html";
|
||||
} else {
|
||||
Swal.fire({
|
||||
type: 'error',
|
||||
title: 'Error'
|
||||
})
|
||||
//cards
|
||||
//lang
|
||||
});
|
||||
}
|
||||
}
|
||||
function savefolder() {
|
||||
var electron = require("electron");
|
||||
var remote = electron.remote;
|
||||
var dialog = remote.dialog;
|
||||
dialog.showOpenDialog(null, {
|
||||
title: 'Save folder',
|
||||
properties: ['openDirectory'],
|
||||
}, (fileNames) => {
|
||||
localStorage.setItem("savefolder", fileNames[0]);
|
||||
});
|
||||
postMessage(["sendSinmpleIpc", "savefolder"], "*")
|
||||
}
|
||||
|
||||
function font() {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('fonts', []);
|
||||
ipc.on('font-list', function (event, arg) {
|
||||
$("#fonts").removeClass("hide");
|
||||
for (var i = 0; i < arg.length; i++) {
|
||||
var font = arg[i];
|
||||
$("#fonts").append('<div class="font pointer" style="font-family:' + font.family + '" onclick="insertFont(\'' + font.family + '\')">' + font.family + "</div>")
|
||||
}
|
||||
});
|
||||
postMessage(["sendSinmpleIpc", "fonts"], "*")
|
||||
}
|
||||
function fontList(arg) {
|
||||
$("#fonts").removeClass("hide");
|
||||
for (var i = 0; i < arg.length; i++) {
|
||||
var font = arg[i];
|
||||
$("#fonts").append('<div class="font pointer" style="font-family:' + font.family + '" onclick="insertFont(\'' + font.family + '\')">' + font.family + "</div>")
|
||||
}
|
||||
}
|
||||
function insertFont(name) {
|
||||
$("#font").val(name);
|
||||
@@ -520,7 +531,7 @@ function customComp() {
|
||||
pickerDefine(1, "fff");
|
||||
pickerDefine(2, "fff");
|
||||
pickerDefine(3, "fff");
|
||||
ipc.send('theme-json-create', JSON.stringify(json));
|
||||
postMessage(["themeJsonCreate", JSON.stringify(json)], "*")
|
||||
}
|
||||
function deleteIt() {
|
||||
var id = $("#custom-sel-sel").val();
|
||||
@@ -540,28 +551,25 @@ function deleteIt() {
|
||||
pickerDefine(1, "fff");
|
||||
pickerDefine(2, "fff");
|
||||
pickerDefine(3, "fff");
|
||||
ipc.on('theme-json-delete-complete', function (event, args) {
|
||||
ctLoad()
|
||||
});
|
||||
ipc.send('theme-json-delete', id);
|
||||
postMessage(["themeJsonDelete", id], "*")
|
||||
}
|
||||
function ctLoad() {
|
||||
ipc.send('theme-json-list', "");
|
||||
ipc.on('theme-json-list-response', function (event, args) {
|
||||
var templete = "";
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var theme = args[key];
|
||||
var themeid = theme.id
|
||||
templete = templete + '<option value="' + themeid + '">' + theme.name + '</option>';
|
||||
});
|
||||
if (args[0]) {
|
||||
localStorage.setItem("customtheme-id", args[0].id)
|
||||
}
|
||||
$("#custom-sel-sel").html(templete);
|
||||
templete = '<option value="add_new">' + $("#edit-selector").attr("data-add") + '</option>' + templete;
|
||||
$("#custom-edit-sel").html(templete);
|
||||
$('select').material_select('update');
|
||||
postMessage(["sendSinmpleIpc", "theme-json-list"], "*")
|
||||
}
|
||||
function ctLoadCore(args) {
|
||||
var templete = "";
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var theme = args[key];
|
||||
var themeid = theme.id
|
||||
templete = templete + '<option value="' + themeid + '">' + theme.name + '</option>';
|
||||
});
|
||||
if (args[0]) {
|
||||
localStorage.setItem("customtheme-id", args[0].id)
|
||||
}
|
||||
$("#custom-sel-sel").html(templete);
|
||||
templete = '<option value="add_new">' + $("#edit-selector").attr("data-add") + '</option>' + templete;
|
||||
$("#custom-edit-sel").html(templete);
|
||||
$('select').formSelect();
|
||||
}
|
||||
function customSel() {
|
||||
var id = $("#custom-sel-sel").val();
|
||||
@@ -589,66 +597,58 @@ function custom() {
|
||||
$("#delTheme").addClass("disabled")
|
||||
} else {
|
||||
$("#delTheme").removeClass("disabled")
|
||||
ipc.send('theme-json-request', id);
|
||||
ipc.on('theme-json-response', function (event, args) {
|
||||
$("#custom_name").val(args.name);
|
||||
$("#custom_desc").val(args.desc);
|
||||
$("#" + args.base).prop("checked", true);
|
||||
$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
|
||||
pickerDefine(0, rgbToHex(args.vars.primary))
|
||||
$("#color-picker0_value").val(args.vars.primary);
|
||||
$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
|
||||
pickerDefine(1, rgbToHex(args.vars.secondary))
|
||||
$("#color-picker1_value").val(args.vars.secondary);
|
||||
$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
|
||||
$("#color-picker2_value").val(args.vars.text);
|
||||
pickerDefine(2, rgbToHex(args.vars.text))
|
||||
if (args.props) {
|
||||
if (args.props.TheDeskAccent) {
|
||||
var accent = args.props.TheDeskAccent;
|
||||
} else {
|
||||
var accent = args.vars.secondary;
|
||||
}
|
||||
} else {
|
||||
var accent = args.vars.secondary;
|
||||
}
|
||||
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
|
||||
pickerDefine(3, rgbToHex(accent))
|
||||
$("#custom_json").val(JSON.stringify(args));
|
||||
});
|
||||
postMessage(["themeJsonRequest", id], "*")
|
||||
}
|
||||
}
|
||||
function customConnect(args) {
|
||||
$("#custom_name").val(args.name);
|
||||
$("#custom_desc").val(args.desc);
|
||||
$("#" + args.base).prop("checked", true);
|
||||
$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
|
||||
pickerDefine(0, rgbToHex(args.vars.primary))
|
||||
$("#color-picker0_value").val(args.vars.primary);
|
||||
$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
|
||||
pickerDefine(1, rgbToHex(args.vars.secondary))
|
||||
$("#color-picker1_value").val(args.vars.secondary);
|
||||
$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
|
||||
$("#color-picker2_value").val(args.vars.text);
|
||||
pickerDefine(2, rgbToHex(args.vars.text))
|
||||
if (args.props) {
|
||||
if (args.props.TheDeskAccent) {
|
||||
var accent = args.props.TheDeskAccent;
|
||||
} else {
|
||||
var accent = args.vars.secondary;
|
||||
}
|
||||
} else {
|
||||
var accent = args.vars.secondary;
|
||||
}
|
||||
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
|
||||
pickerDefine(3, rgbToHex(accent))
|
||||
$("#custom_json").val(JSON.stringify(args));
|
||||
}
|
||||
function customImp() {
|
||||
var json = $("#custom_import").val();
|
||||
if (JSON5.parse(json)) {
|
||||
ipc.send('theme-json-create', json);
|
||||
postMessage(["themeJsonCreate", json], "*")
|
||||
} else {
|
||||
alert("Error")
|
||||
Swal.fire({
|
||||
type: 'error',
|
||||
title: 'Error'
|
||||
})
|
||||
}
|
||||
}
|
||||
function hardwareAcceleration(had) {
|
||||
ipc.send('ha', had);
|
||||
}
|
||||
|
||||
ipc.on('theme-json-create-complete', function (event, args) {
|
||||
function clearCustomImport() {
|
||||
$("#custom_import").val("");
|
||||
ctLoad()
|
||||
});
|
||||
}
|
||||
function hardwareAcceleration(had) {
|
||||
postMessage(["ha", had], "*")
|
||||
}
|
||||
function customSound(key) {
|
||||
var electron = require("electron");
|
||||
var remote = electron.remote;
|
||||
var dialog = remote.dialog;
|
||||
dialog.showOpenDialog(null, {
|
||||
title: 'Custom sound',
|
||||
properties: ['openFile'],
|
||||
filters: [
|
||||
{ name: 'Audio', extensions: ['mp3', 'aac', 'wav', 'flac', 'm4a'] },
|
||||
{ name: 'All', extensions: ['*'] },
|
||||
]
|
||||
}, (fileNames) => {
|
||||
localStorage.setItem("custom" + key, fileNames[0]);
|
||||
$("#c1-file").text(fileNames[0])
|
||||
});
|
||||
postMessage(["customSound", key], "*")
|
||||
}
|
||||
function customSoundSave(key, file) {
|
||||
localStorage.setItem("custom" + key, file);
|
||||
$("#c1-file").text(file)
|
||||
}
|
||||
window.onload = function () {
|
||||
//最初に読む
|
||||
|
@@ -1,953 +0,0 @@
|
||||
//設定(setting.html)で読む
|
||||
var envView = new Vue({
|
||||
el: '#env-view',
|
||||
data: {config:envConstruction,value:envValue},
|
||||
method: {
|
||||
settings: function (index) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//設定ボタン押した。
|
||||
function settings() {
|
||||
var dd = $("[name=time]:checked").val();
|
||||
var dt = $("[for="+dd+"]").text();
|
||||
if (dd != localStorage.getItem("datetype")) {
|
||||
Materialize.toast(lang.lang_setting_time.replace("{{set}}" ,dt), 3000);
|
||||
}
|
||||
localStorage.setItem("datetype", dd);
|
||||
|
||||
var cd = $("[name=theme]:checked").val();
|
||||
var ct = $("[for="+cd+"]").html();
|
||||
if(cd=="custom" && !$("#custom-sel-sel").val()){
|
||||
var theme = localStorage.getItem("theme");
|
||||
if (!theme) {
|
||||
var theme = "white";
|
||||
}
|
||||
$("#" + theme).prop("checked", true);
|
||||
}else{
|
||||
if (cd != localStorage.getItem("theme")) {
|
||||
Materialize.toast(lang.lang_setting_theme.replace("{{set}}" ,ct), 3000);
|
||||
}
|
||||
//テーマはこの場で設定
|
||||
themes(cd);
|
||||
localStorage.setItem("theme", cd);
|
||||
}
|
||||
|
||||
var nd = $("[name=nsfw]:checked").val();
|
||||
var nt = $("[for=n_"+nd+"]").text();
|
||||
if (nd != localStorage.getItem("nsfw")) {
|
||||
Materialize.toast(lang.lang_setting_nsfw.replace("{{set}}" ,nt), 3000);
|
||||
}
|
||||
localStorage.setItem("nsfw", nd);
|
||||
|
||||
var cwd = $("[name=cw]:checked").val();
|
||||
var cwt = $("[for=c_"+cwd+"]").text();
|
||||
if (cwd != localStorage.getItem("cw")) {
|
||||
Materialize.toast(lang.lang_setting_cw.replace("{{set}}" ,cwt), 3000);
|
||||
}
|
||||
localStorage.setItem("cw", cwd);
|
||||
|
||||
var cwtd = $("#cw-text").val();
|
||||
if (cwtd != localStorage.getItem("cw-text")) {
|
||||
Materialize.toast(lang.lang_setting_cwtext.replace("{{set}}" ,cwtd), 3000);
|
||||
}
|
||||
localStorage.setItem("cw-text", cwtd);
|
||||
|
||||
var cwsd = $("[name=cws]:checked").val();
|
||||
var cwst = $("[for=cws_"+cwsd+"]").text();
|
||||
if (cwsd != localStorage.getItem("always-cw")) {
|
||||
Materialize.toast(lang.lang_setting_cws.replace("{{set}}" ,cwst), 3000);
|
||||
}
|
||||
localStorage.setItem("always-cw", cwsd);
|
||||
|
||||
var rpd = $("[name=rp]:checked").val();
|
||||
var rpt = $("[for=c_"+cwd+"]").text();
|
||||
if (rpd != localStorage.getItem("replyct")) {
|
||||
Materialize.toast(lang.lang_setting_rp.replace("{{set}}" ,rpt), 3000);
|
||||
}
|
||||
localStorage.setItem("replyct", rpd);
|
||||
|
||||
var visd = $("[name=vis]:checked").val();
|
||||
var vist = $("[for="+visd+"]").text();
|
||||
if (visd != localStorage.getItem("vis")) {
|
||||
Materialize.toast(lang.lang_setting_vis.replace("{{set}}" ,vist), 3000);
|
||||
}
|
||||
localStorage.setItem("vis", visd);
|
||||
|
||||
var popd = $("#popup").val();
|
||||
if (popd > 0 && popd != localStorage.getItem("popup")) {
|
||||
Materialize.toast(lang.lang_setting_popup.replace("{{set}}" ,popd+lang.lang_setting_s), 3000);
|
||||
} else if (popd != localStorage.getItem("popup")) {
|
||||
Materialize.toast(lang.lang_setting_popup.replace("{{set}}" ,lang.lang_setting_off), 3000);
|
||||
}
|
||||
localStorage.setItem("popup", popd);
|
||||
|
||||
var gifd = $("[name=gif]:checked").val();
|
||||
var gift = $("[for=g_"+gifd+"]").text();
|
||||
if (gifd != localStorage.getItem("gif")) {
|
||||
Materialize.toast(lang.lang_setting_gif.replace("{{set}}" ,gift), 3000);
|
||||
}
|
||||
localStorage.setItem("gif", gifd);
|
||||
|
||||
var sentd = $("#sentence").val();
|
||||
var ltrd = $("#letters").val();
|
||||
if (sentd != localStorage.getItem("sentence") || ltrd != localStorage.getItem("letters")) {
|
||||
Materialize.toast(lang.lang_setting_selt.replace("{{set1}}" ,sentd).replace("{{set2}}" ,ltrd), 3000);
|
||||
}
|
||||
localStorage.setItem("sentence", sentd);
|
||||
localStorage.setItem("letters", ltrd);
|
||||
|
||||
var csentd = $("#cw_sentence").val();
|
||||
var cltrd = $("#cw_letters").val();
|
||||
if (csentd != localStorage.getItem("cw_sentence") || cltrd != localStorage.getItem("cw_letters")) {
|
||||
Materialize.toast(lang.lang_setting_autocw.replace("{{set1}}" ,csentd).replace("{{set2}}" ,cltrd), 3000);
|
||||
}
|
||||
localStorage.setItem("cw_sentence", csentd);
|
||||
localStorage.setItem("cw_letters", cltrd);
|
||||
|
||||
var widthd = $("#width").val();
|
||||
if (widthd != localStorage.getItem("width")) {
|
||||
Materialize.toast(lang.lang_setting_width.replace("{{set}}" ,widthd), 3000);
|
||||
}
|
||||
localStorage.setItem("width", widthd);
|
||||
|
||||
var fwidthd = $("#fixwidth").val();
|
||||
if (fwidthd != localStorage.getItem("fixwidth")) {
|
||||
Materialize.toast(lang.lang_setting_fixwidth.replace("{{set}}" ,fwidthd), 3000);
|
||||
}
|
||||
localStorage.setItem("fixwidth", fwidthd);
|
||||
|
||||
var imgd = $("[name=img]:checked").val();
|
||||
var imgt = $("[for=i_"+imgd+"]").text();
|
||||
if (imgd != localStorage.getItem("img")) {
|
||||
Materialize.toast(lang.lang_setting_img.replace("{{set}}" ,imgt), 3000);
|
||||
}
|
||||
localStorage.setItem("img", imgd);
|
||||
|
||||
var fontd = $("#font").val();
|
||||
if(fontd){
|
||||
if (fontd != localStorage.getItem("font")) {
|
||||
Materialize.toast(lang.lang_setting_font.replace("{{set}}" ,fontd), 3000);
|
||||
}
|
||||
localStorage.setItem("font", fontd);
|
||||
themes();
|
||||
}else{
|
||||
if(localStorage.getItem("font")){
|
||||
localStorage.removeItem("font");
|
||||
Materialize.toast(lang.lang_setting_font.replace("{{set}}" ,lang.lang_setting_default), 3000);
|
||||
themes();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var sized = $("#size").val();
|
||||
if (sized != localStorage.getItem("size")) {
|
||||
Materialize.toast(lang.lang_setting_size.replace("{{set}}" ,sized), 3000);
|
||||
}
|
||||
localStorage.setItem("size", sized);
|
||||
|
||||
var heid = $("#img-height").val();
|
||||
if (heid != localStorage.getItem("img-height")) {
|
||||
Materialize.toast(lang.lang_setting_imgheight.replace("{{set}}" ,heid), 3000);
|
||||
}
|
||||
localStorage.setItem("img-height", heid);
|
||||
|
||||
var tckrd = $("[name=ticker]:checked").val();
|
||||
var tckrt = $("[for=ticker_"+tckrd+"]").text();
|
||||
if (tckrd != localStorage.getItem("ticker_ok")) {
|
||||
Materialize.toast(lang.lang_setting_ticker.replace("{{set}}" ,tckrt), 3000);
|
||||
}
|
||||
localStorage.setItem("ticker_ok", tckrd);
|
||||
|
||||
var animed = $("[name=anime]:checked").val();
|
||||
var animet = $("[for=anime_"+animed+"]").text();
|
||||
if (animed != localStorage.getItem("animation")) {
|
||||
Materialize.toast(lang.lang_setting_animation.replace("{{set}}" ,animet), 3000);
|
||||
}
|
||||
localStorage.setItem("animation", animed);
|
||||
|
||||
var boxd = $("[name=box]:checked").val();
|
||||
var boxt = $("[for=bx_"+boxd+"]").text();
|
||||
if (boxd != localStorage.getItem("box")) {
|
||||
Materialize.toast(lang.lang_setting_boxConfirm.replace("{{set}}" ,boxt), 3000);
|
||||
}
|
||||
localStorage.setItem("box", boxd);
|
||||
|
||||
var tagd = $("[name=tag]:checked").val();
|
||||
var tagt = $("[for=t_"+tagd+"]").text();
|
||||
if (tagd != localStorage.getItem("tag-range")) {
|
||||
Materialize.toast(lang.lang_setting_tag.replace("{{set}}" ,tagt), 3000);
|
||||
}
|
||||
localStorage.setItem("tag-range", tagd);
|
||||
|
||||
var uld = $("[name=ul]:checked").val();
|
||||
var ult = $("[for=ul_"+uld+"]").text();
|
||||
if (uld != localStorage.getItem("locale")) {
|
||||
Materialize.toast(lang.lang_setting_ul.replace("{{set}}" ,ult), 3000);
|
||||
}
|
||||
localStorage.setItem("locale", uld);
|
||||
|
||||
var ntd = $("[name=notf]:checked").val();
|
||||
var ntt = $("[for=ntf_"+ntd+"]").text();
|
||||
if (ntd != localStorage.getItem("nativenotf")) {
|
||||
Materialize.toast(lang.lang_setting_notf.replace("{{set}}" ,ntt), 3000);
|
||||
}
|
||||
localStorage.setItem("nativenotf", ntd);
|
||||
|
||||
var qtd = $("[name=quote]:checked").val();
|
||||
var qtt = $("[for=q_"+qtd+"]").text();
|
||||
if (qtd != localStorage.getItem("quote")) {
|
||||
Materialize.toast(lang.lang_setting_quote.replace("{{set}}" ,qtt), 3000);
|
||||
}
|
||||
localStorage.setItem("quote", qtd);
|
||||
|
||||
var viad = $("[name=via]:checked").val();
|
||||
var viat = $("[for=via_"+viad+"]").text();
|
||||
if (viad != localStorage.getItem("viashow")) {
|
||||
Materialize.toast(lang.lang_setting_via.replace("{{set}}" ,viat), 3000);
|
||||
}
|
||||
localStorage.setItem("viashow", viad);
|
||||
|
||||
var notfmd = $("[name=notfm]:checked").val();
|
||||
var notfmt = $("[for=notfm_"+notfmd+"]").text();
|
||||
if (notfmd != localStorage.getItem("setasread")) {
|
||||
Materialize.toast(lang.lang_setting_setasread.replace("{{set}}" ,notfmt), 3000);
|
||||
}
|
||||
localStorage.setItem("setasread", notfmd);
|
||||
|
||||
var movd = $("[name=mov]:checked").val();
|
||||
var movt = $("[for=mov_"+movd+"]").text();
|
||||
if (movd != localStorage.getItem("mouseover")) {
|
||||
Materialize.toast(lang.lang_setting_mov.replace("{{set}}" ,movt), 3000);
|
||||
}
|
||||
localStorage.setItem("mouseover", movd);
|
||||
|
||||
var maind = $("[name=main]:checked").val();
|
||||
var maint = $("[for=mn_"+maind+"]").text();
|
||||
if (maind != localStorage.getItem("mainuse")) {
|
||||
Materialize.toast(lang.lang_setting_main.replace("{{set}}" ,maint), 3000);
|
||||
}
|
||||
localStorage.setItem("mainuse", maind);
|
||||
|
||||
var secd = $("[name=sec]:checked").val();
|
||||
var sect = $("[for=sec-"+secd+"]").text();
|
||||
if (secd != localStorage.getItem("sec")) {
|
||||
Materialize.toast(lang.lang_setting_sec.replace("{{set}}" ,sect), 3000);
|
||||
}
|
||||
localStorage.setItem("sec", secd);
|
||||
}
|
||||
|
||||
//読み込み時の設定ロード
|
||||
function load() {
|
||||
if(localStorage.getItem("imas")){
|
||||
$(".imas").removeClass("hide");
|
||||
}
|
||||
if(localStorage.getItem("kirishima")){
|
||||
$(".kirishima").removeClass("hide");
|
||||
}
|
||||
var prof = localStorage.getItem("prof");
|
||||
$("#my-prof").attr("src", prof);
|
||||
var datetype = localStorage.getItem("datetype");
|
||||
if (!datetype) {
|
||||
var datetype = "absolute";
|
||||
}
|
||||
$("#" + datetype).prop("checked", true);
|
||||
|
||||
var theme = localStorage.getItem("theme");
|
||||
if (!theme) {
|
||||
var theme = "white";
|
||||
}
|
||||
$("#" + theme).prop("checked", true);
|
||||
|
||||
var ha = localStorage.getItem("ha");
|
||||
if (!ha) {
|
||||
var ha = "false";
|
||||
}
|
||||
$("#ha_" + ha).prop("checked", true);
|
||||
|
||||
var nsfw = localStorage.getItem("nsfw");
|
||||
if (!nsfw) {
|
||||
var nsfw = "yes";
|
||||
}
|
||||
$("#n_" + nsfw).prop("checked", true);
|
||||
|
||||
var cw = localStorage.getItem("cw");
|
||||
if (!cw) {
|
||||
var cw = "yes";
|
||||
}
|
||||
$("#c_" + cw).prop("checked", true);
|
||||
|
||||
var cws = localStorage.getItem("always-cw");
|
||||
if (!cws) {
|
||||
var cws = "no";
|
||||
}
|
||||
$("#cws_" + cws).prop("checked", true);
|
||||
|
||||
var popup = localStorage.getItem("popup");
|
||||
if (!popup) {
|
||||
var popup = "0";
|
||||
}
|
||||
$("#popup").val(popup);
|
||||
|
||||
var box = localStorage.getItem("box");
|
||||
if (!box) {
|
||||
var box = "no";
|
||||
}
|
||||
if(box=="absolute"){
|
||||
var box = "abs";
|
||||
}
|
||||
$("#bx_" + box).prop("checked", true);
|
||||
|
||||
var gif = localStorage.getItem("gif");
|
||||
if (!gif) {
|
||||
var gif = "yes";
|
||||
}
|
||||
$("#g_" + gif).prop("checked", true);
|
||||
|
||||
var sent = localStorage.getItem("sentence");
|
||||
if (!sent) {
|
||||
var sent = "500";
|
||||
}
|
||||
$("#sentence").val(sent);
|
||||
var ltrs = localStorage.getItem("letters");
|
||||
if (!ltrs) {
|
||||
var ltrs = "500";
|
||||
}
|
||||
$("#letters").val(ltrs);
|
||||
|
||||
var csent = localStorage.getItem("cw_sentence");
|
||||
if (!csent) {
|
||||
var csent = "500";
|
||||
}
|
||||
$("#cw_sentence").val(csent);
|
||||
var cltrs = localStorage.getItem("cw_letters");
|
||||
if (!cltrs) {
|
||||
var cltrs = "500";
|
||||
}
|
||||
$("#cw_letters").val(cltrs);
|
||||
|
||||
var width = localStorage.getItem("width");
|
||||
if (!width) {
|
||||
var width = "300";
|
||||
}
|
||||
$("#width").val(width);
|
||||
|
||||
var fwidth = localStorage.getItem("fixwidth");
|
||||
if (!fwidth) {
|
||||
var fwidth = "300";
|
||||
}
|
||||
$("#fixwidth").val(fwidth);
|
||||
|
||||
var cwt = localStorage.getItem("cw-text");
|
||||
if (!cwt) {
|
||||
var cwt = "";
|
||||
}
|
||||
$("#cw-text").val(cwt);
|
||||
|
||||
var cws = localStorage.getItem("always-cw");
|
||||
if (!cws) {
|
||||
var cws = "no";
|
||||
}
|
||||
$("#cws_" + cws).prop("checked", true);
|
||||
|
||||
var rps = localStorage.getItem("replyct");
|
||||
if (!rps) {
|
||||
var rps = "hidden";
|
||||
}
|
||||
$("#rp_" + rps).prop("checked", true);
|
||||
|
||||
var vis = localStorage.getItem("vis");
|
||||
if (!vis) {
|
||||
var vis = "public";
|
||||
}
|
||||
$("#" + vis).prop("checked", true);
|
||||
|
||||
var img = localStorage.getItem("img");
|
||||
if (!img) {
|
||||
var img = "no-act";
|
||||
}
|
||||
$("#i_" + img).prop("checked", true);
|
||||
|
||||
var font = localStorage.getItem("font");
|
||||
if (!font) {
|
||||
var font = "";
|
||||
}
|
||||
$("#font").val(font);
|
||||
|
||||
var size = localStorage.getItem("size");
|
||||
if (!size) {
|
||||
var size = "13";
|
||||
}
|
||||
$("#size").val(size);
|
||||
|
||||
var imh = localStorage.getItem("img-height");
|
||||
if (!imh) {
|
||||
var imh = "200";
|
||||
}
|
||||
$("#img-height").val(imh);
|
||||
|
||||
var ticker = localStorage.getItem("ticker_ok");
|
||||
if (!ticker) {
|
||||
var ticker = "no";
|
||||
}
|
||||
$("#ticker_" + ticker).prop("checked", true);
|
||||
|
||||
var animation = localStorage.getItem("animation");
|
||||
if (!animation) {
|
||||
var animation = "yes";
|
||||
}
|
||||
$("#anime_" + animation).prop("checked", true);
|
||||
|
||||
var tag = localStorage.getItem("tag-range");
|
||||
if (!tag) {
|
||||
var tag = "all";
|
||||
}
|
||||
$("#t_" + tag).prop("checked", true);
|
||||
|
||||
var box = localStorage.getItem("box");
|
||||
if (!box) {
|
||||
var box = "yes";
|
||||
}
|
||||
$("#bx_" + box).prop("checked", true);
|
||||
|
||||
var uld = localStorage.getItem("locale");
|
||||
if (!uld) {
|
||||
var uld = "yes";
|
||||
}
|
||||
$("#ul_" + uld).prop("checked", true);
|
||||
|
||||
var nnd = localStorage.getItem("nativenotf");
|
||||
if (!nnd) {
|
||||
var nnd = "yes";
|
||||
}
|
||||
$("#ntf_" + nnd).prop("checked", true);
|
||||
|
||||
var qt = localStorage.getItem("quote");
|
||||
if (!qt) {
|
||||
var qt = "simple";
|
||||
}
|
||||
$("#q_" + qt).prop("checked", true);
|
||||
|
||||
var viat = localStorage.getItem("viashow");
|
||||
if (!viat) {
|
||||
var viat = "hide";
|
||||
}
|
||||
$("#via_" + viat).prop("checked", true);
|
||||
|
||||
var movt = localStorage.getItem("mouseover");
|
||||
if (!movt) {
|
||||
var movt = "no";
|
||||
}
|
||||
$("#mov_" + movt).prop("checked", true);
|
||||
|
||||
var notfmt = localStorage.getItem("setasread");
|
||||
if (!notfmt) {
|
||||
var notfmt = "yes";
|
||||
}
|
||||
$("#notfm_" + notfmt).prop("checked", true);
|
||||
|
||||
var maint = localStorage.getItem("mainuse");
|
||||
if (!maint) {
|
||||
var maint = "remain";
|
||||
}
|
||||
$("#mn_" + maint).prop("checked", true);
|
||||
|
||||
var sect = localStorage.getItem("sec");
|
||||
if (!sect) {
|
||||
var sect = "nothing";
|
||||
}
|
||||
$("#sec-" + sect).prop("checked", true);
|
||||
|
||||
}
|
||||
|
||||
function climute(){
|
||||
//クライアントミュート
|
||||
var cli = localStorage.getItem("client_mute");
|
||||
var obj = JSON.parse(cli);
|
||||
if(!obj){
|
||||
$("#mute-cli").html(lang.lang_setting_nomuting);
|
||||
}else{
|
||||
if(!obj[0]){
|
||||
$("#mute-cli").html(lang.lang_setting_nomuting);
|
||||
return;
|
||||
}
|
||||
var templete;
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var cli = obj[key];
|
||||
var list = key * 1 + 1;
|
||||
templete = '<div class="acct" id="acct_' + key + '">' + list +
|
||||
'.' +
|
||||
cli + '<button class="btn waves-effect red disTar" onclick="cliMuteDel(' +
|
||||
key + ')">'+lang.lang_del+'</button><br></div>';
|
||||
$("#mute-cli").append(templete);
|
||||
});
|
||||
}
|
||||
}
|
||||
function cliMuteDel(key){
|
||||
var cli = localStorage.getItem("client_mute");
|
||||
var obj = JSON.parse(cli);
|
||||
obj.splice(key, 1);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("client_mute", json);
|
||||
mute();
|
||||
}
|
||||
|
||||
function wordmute(){
|
||||
var word = localStorage.getItem("word_mute");
|
||||
var obj = JSON.parse(word);
|
||||
$('#wordmute').material_chip({
|
||||
data: obj,
|
||||
});
|
||||
}
|
||||
function wordmuteSave(){
|
||||
var word=$('#wordmute').material_chip('data');
|
||||
var json = JSON.stringify(word);
|
||||
localStorage.setItem("word_mute", json);
|
||||
}
|
||||
|
||||
function wordemp(){
|
||||
var word = localStorage.getItem("word_emp");
|
||||
var obj = JSON.parse(word);
|
||||
$('#wordemp').material_chip({
|
||||
data: obj,
|
||||
});
|
||||
}
|
||||
function wordempSave(){
|
||||
var word=$('#wordemp').material_chip('data');
|
||||
var json = JSON.stringify(word);
|
||||
localStorage.setItem("word_emp", json);
|
||||
}
|
||||
function notftest(){
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
var options = {
|
||||
body: lang.lang_setting_notftest+'('+lang.lang_setting_notftestprof+')',
|
||||
icon: localStorage.getItem("prof_0")
|
||||
};
|
||||
if(os=="darwin"){
|
||||
var n = new Notification('TheDesk'+lang.lang_setting_notftest, options);
|
||||
}else{
|
||||
ipc.send('native-notf', ['TheDesk'+lang.lang_setting_notftest,lang.lang_setting_notftest+'('+lang.lang_setting_notftestprof+')',localStorage.getItem('prof_0'),"",""]);
|
||||
}
|
||||
|
||||
}
|
||||
function oks(no){
|
||||
var txt=$("#oks-"+no).val();
|
||||
localStorage.setItem("oks-"+no, txt);
|
||||
Materialize.toast(lang.lang_setting_ksref, 3000);
|
||||
}
|
||||
function oksload(){
|
||||
if(localStorage.getItem("oks-1")){$("#oks-1").val(localStorage.getItem("oks-1"))}
|
||||
if(localStorage.getItem("oks-2")){$("#oks-2").val(localStorage.getItem("oks-2"))}
|
||||
if(localStorage.getItem("oks-3")){$("#oks-3").val(localStorage.getItem("oks-3"))}
|
||||
}
|
||||
function changelang(lang){
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('lang',lang);
|
||||
ipc.on('langres', function (event, arg) {
|
||||
location.href="../"+lang+"/setting.html"
|
||||
});
|
||||
}
|
||||
function exportSettings(){
|
||||
if(!confirm(lang.lang_setting_exportwarn)){
|
||||
return false;
|
||||
}
|
||||
var electron = require("electron");
|
||||
var remote=electron.remote;
|
||||
var dialog=remote.dialog;
|
||||
var ipc = electron.ipcRenderer;
|
||||
dialog.showSaveDialog(null, {
|
||||
title: 'Export',
|
||||
properties: ['openFile', 'createDirectory'],
|
||||
defaultPath: "export.thedeskconfig"
|
||||
}, (savedFiles) => {
|
||||
console.log(savedFiles);
|
||||
if(!savedFiles){
|
||||
return false;
|
||||
}
|
||||
var exp={};
|
||||
//Accounts
|
||||
var multi = localStorage.getItem("multi");
|
||||
var acct = JSON.parse(multi);
|
||||
exp.accts=acct;
|
||||
//Columns
|
||||
var multi = localStorage.getItem("column");
|
||||
var column = JSON.parse(multi);
|
||||
exp.columns=column;
|
||||
//Themes
|
||||
exp.theme=localStorage.getItem("theme");
|
||||
//Min width
|
||||
exp.minwidth=localStorage.getItem("width");
|
||||
//Font
|
||||
exp.font=localStorage.getItem("font");
|
||||
exp.size=localStorage.getItem("size");
|
||||
//Img height
|
||||
exp.imgheight=localStorage.getItem("img-height");
|
||||
//Main
|
||||
exp.mainuse=localStorage.getItem("mainuse");
|
||||
//CW text
|
||||
exp.cw=localStorage.getItem("cw-text");
|
||||
//vis
|
||||
exp.vis=localStorage.getItem("vis");
|
||||
//keysc
|
||||
exp.ksc=[
|
||||
localStorage.getItem("oks-1"),
|
||||
localStorage.getItem("oks-2"),
|
||||
localStorage.getItem("oks-3")
|
||||
];
|
||||
//climu
|
||||
var cli = localStorage.getItem("client_mute");
|
||||
var climu = JSON.parse(cli);
|
||||
exp.clientMute=climu;
|
||||
//wordmu
|
||||
var wdm = localStorage.getItem("word_mute");
|
||||
var wordmu = JSON.parse(wdm);
|
||||
exp.wordMute=wordmu;
|
||||
//spotify
|
||||
exp.spotifyArtwork=localStorage.getItem("artwork")
|
||||
var content=localStorage.getItem("np-temp");
|
||||
if(content || content=="" || content=="null"){
|
||||
exp.spotifyTemplete=content;
|
||||
}else{
|
||||
exp.spotifyTemplete=null;
|
||||
}
|
||||
//tags
|
||||
var tagarr = localStorage.getItem("tag");
|
||||
var favtag = JSON.parse(tagarr);
|
||||
exp.favoriteTags=favtag;
|
||||
console.log(exp);
|
||||
ipc.send('export', [savedFiles,JSON.stringify(exp)]);
|
||||
alert("Done.")
|
||||
//cards
|
||||
//lang
|
||||
});
|
||||
}
|
||||
function importSettings(){
|
||||
if(!confirm(lang.lang_setting_importwarn)){
|
||||
return false;
|
||||
}
|
||||
var electron = require("electron");
|
||||
var remote=electron.remote;
|
||||
var dialog=remote.dialog;
|
||||
var ipc = electron.ipcRenderer;
|
||||
dialog.showOpenDialog(null, {
|
||||
title: 'Import',
|
||||
properties: ['openFile'],
|
||||
filters: [
|
||||
{name: 'TheDesk Config', extensions: ['thedeskconfig']},
|
||||
]
|
||||
}, (fileNames) => {
|
||||
console.log(fileNames);
|
||||
if(!fileNames){
|
||||
return false;
|
||||
}
|
||||
ipc.send('import', fileNames[0]);
|
||||
ipc.on('config', function (event, arg) {
|
||||
var obj = JSON.parse(arg);
|
||||
if(obj){
|
||||
localStorage.clear();
|
||||
localStorage.setItem("multi",JSON.stringify(obj.accts));
|
||||
for(var key=0;key<obj.accts.length;key++){
|
||||
var acct=obj.accts[key];
|
||||
localStorage.setItem("name_" + key, acct.name);
|
||||
localStorage.setItem("user_" + key, acct.user);
|
||||
localStorage.setItem("user-id_" + key, acct.id);
|
||||
localStorage.setItem("prof_" + key, acct.prof);
|
||||
localStorage.setItem("domain_" + key, acct.domain);
|
||||
localStorage.setItem("acct_"+ key + "_at", acct.at);
|
||||
}
|
||||
localStorage.setItem("column",JSON.stringify(obj.columns));
|
||||
localStorage.setItem("theme",obj.theme);
|
||||
if(obj.width){
|
||||
console.log(obj.width)
|
||||
localStorage.setItem("width",obj.width);
|
||||
}
|
||||
if(obj.font){
|
||||
localStorage.setItem("font",obj.font);
|
||||
}
|
||||
if(obj.size){
|
||||
localStorage.setItem("size",obj.size);
|
||||
}
|
||||
themes(obj.theme);
|
||||
if(obj.imgheight){
|
||||
localStorage.setItem("img-height",obj.imgheight);
|
||||
}
|
||||
localStorage.setItem("mainuse",obj.mainuse);
|
||||
if(obj.cw){
|
||||
localStorage.setItem("cwtext",obj.cw);
|
||||
}
|
||||
localStorage.setItem("vis",obj.vis);
|
||||
if(obj.ksc[0]){
|
||||
localStorage.setItem("oks-1",obj.ksc[0]);
|
||||
}
|
||||
if(obj.ksc[1]){
|
||||
localStorage.setItem("oks-2",obj.ksc[1]);
|
||||
}
|
||||
if(obj.ksc[2]){
|
||||
localStorage.setItem("oks-3",obj.ksc[2]);
|
||||
}
|
||||
if(obj.clientMute){
|
||||
localStorage.setItem("client_mute",JSON.stringify(obj.clientMute));
|
||||
}
|
||||
if(obj.wordMute){
|
||||
localStorage.setItem("word_mute",JSON.stringify(obj.wordMute));
|
||||
}
|
||||
if(obj.favoriteTags){
|
||||
localStorage.setItem("tag",JSON.stringify(obj.favoriteTags));
|
||||
}
|
||||
|
||||
localStorage.setItem("np-temp",obj.spotifyTemplete);
|
||||
for(var i=0;i<obj.columns.length;i++){
|
||||
localStorage.setItem("card_" + i,"true");
|
||||
localStorage.removeItem("catch_" + i);
|
||||
}
|
||||
location.href="language.html";
|
||||
}else{
|
||||
alert("Error.")
|
||||
}
|
||||
})
|
||||
//cards
|
||||
//lang
|
||||
});
|
||||
}
|
||||
function savefolder(){
|
||||
var electron = require("electron");
|
||||
var remote=electron.remote;
|
||||
var dialog=remote.dialog;
|
||||
dialog.showOpenDialog(null, {
|
||||
title: 'Save folder',
|
||||
properties: ['openDirectory'],
|
||||
}, (fileNames) => {
|
||||
localStorage.setItem("savefolder",fileNames[0]);
|
||||
});
|
||||
}
|
||||
|
||||
function font(){
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('fonts', []);
|
||||
ipc.on('font-list', function (event, arg) {
|
||||
$("#fonts").removeClass("hide");
|
||||
for( var i=0; i<arg.length; i++) {
|
||||
var font=arg[i];
|
||||
$("#fonts").append('<div class="font pointer" style="font-family:'+font.family+'" onclick="insertFont(\''+font.family+'\')">'+font.family+"</div>")
|
||||
}
|
||||
});
|
||||
}
|
||||
function insertFont(name){
|
||||
$("#font").val(name);
|
||||
}
|
||||
$(".color-picker").each(function(i, elem) {
|
||||
pickerDefine(i,"fff");
|
||||
});
|
||||
function pickerDefine(i,color){
|
||||
var pickr = new Pickr({
|
||||
el: '#color-picker'+i,
|
||||
default: color,
|
||||
showAlways: true,
|
||||
appendToBody: true,
|
||||
closeWithKey: 'Escape',
|
||||
comparison: false,
|
||||
components: {
|
||||
preview: true, // Left side color comparison
|
||||
opacity: false, // Opacity slider
|
||||
hue: true, // Hue slider
|
||||
interaction: {
|
||||
rgba: false, // rgba option (red green blue and alpha)
|
||||
input: true, // input / output element
|
||||
}
|
||||
},
|
||||
strings: {
|
||||
save: 'Save', // Default for save button
|
||||
clear: 'Clear' // Default for clear button
|
||||
}
|
||||
});
|
||||
pickr.on('change', (...args) => {
|
||||
var rgb='rgb('+args[0].toRGBA()[0]+','+args[0].toRGBA()[1]+','+args[0].toRGBA()[2]+')';
|
||||
$("#color-picker"+i+"_value").val(rgb)
|
||||
});
|
||||
}
|
||||
function customComp(){
|
||||
var nameC=$("#custom_name").val();
|
||||
if(!nameC){return false;}
|
||||
var descC=$("#custom_desc").val();
|
||||
var primaryC=$("#color-picker0_value").val();
|
||||
if(!primaryC){primaryC="rgb(255,255,255)"}
|
||||
var secondaryC=$("#color-picker1_value").val();
|
||||
if(!secondaryC){secondaryC="rgb(255,255,255)"}
|
||||
var textC=$("#color-picker2_value").val();
|
||||
if(!textC){textC="rgb(255,255,255)"}
|
||||
var accentC=$("#color-picker3_value").val();
|
||||
if(!accentC){accentC="rgb(255,255,255)"}
|
||||
var multi = localStorage.getItem("multi");
|
||||
var my=JSON.parse(multi)[0].name;
|
||||
var id=$("#custom-edit-sel").val();
|
||||
if(id=="add_new"){
|
||||
id=makeCID();
|
||||
}
|
||||
var json={
|
||||
"name": nameC,
|
||||
"author": my,
|
||||
"desc": descC,
|
||||
"base": $("[name=direction]:checked").val(),
|
||||
"vars": {
|
||||
"primary": primaryC,
|
||||
"secondary": secondaryC,
|
||||
"text": textC
|
||||
},
|
||||
"props": {
|
||||
"TheDeskAccent": accentC
|
||||
},
|
||||
"id": id
|
||||
}
|
||||
$("#custom_json").val(JSON.stringify(json));
|
||||
themes();
|
||||
$("#custom_name").val("");
|
||||
$("#custom_desc").val("");
|
||||
$("#dark").prop("checked", true);
|
||||
$("#custom_json").val("");
|
||||
$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
|
||||
$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
|
||||
$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
|
||||
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
|
||||
$("#color-picker0_value").val("");
|
||||
$("#color-picker1_value").val("");
|
||||
$("#color-picker2_value").val("");
|
||||
$("#color-picker3_value").val("");
|
||||
pickerDefine(0,"fff");
|
||||
pickerDefine(1,"fff");
|
||||
pickerDefine(2,"fff");
|
||||
pickerDefine(3,"fff");
|
||||
ipc.send('theme-json-create', JSON.stringify(json));
|
||||
}
|
||||
function deleteIt(){
|
||||
var id=$("#custom-sel-sel").val();
|
||||
$("#custom_name").val("");
|
||||
$("#custom_desc").val("");
|
||||
$("#dark").prop("checked", true);
|
||||
$("#custom_json").val("");
|
||||
$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
|
||||
$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
|
||||
$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
|
||||
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
|
||||
$("#color-picker0_value").val("");
|
||||
$("#color-picker1_value").val("");
|
||||
$("#color-picker2_value").val("");
|
||||
$("#color-picker3_value").val("");
|
||||
pickerDefine(0,"fff");
|
||||
pickerDefine(1,"fff");
|
||||
pickerDefine(2,"fff");
|
||||
pickerDefine(3,"fff");
|
||||
ipc.on('theme-json-delete-complete', function (event, args) {
|
||||
ctLoad()
|
||||
});
|
||||
ipc.send('theme-json-delete', id);
|
||||
}
|
||||
function ctLoad(){
|
||||
ipc.send('theme-json-list', "");
|
||||
ipc.on('theme-json-list-response', function (event, args) {
|
||||
console.log(args);
|
||||
var templete="";
|
||||
Object.keys(args).forEach(function(key) {
|
||||
var theme = args[key];
|
||||
var themeid=theme.id
|
||||
templete = templete+'<option value="'+themeid+'">' + theme.name +'</option>';
|
||||
});
|
||||
if(args[0]){
|
||||
localStorage.setItem("customtheme-id",args[0].id)
|
||||
}
|
||||
$("#custom-sel-sel").html(templete);
|
||||
templete='<option value="add_new">'+$("#edit-selector").attr("data-add")+'</option>'+templete;
|
||||
$("#custom-edit-sel").html(templete);
|
||||
$('select').material_select('update');
|
||||
});
|
||||
}
|
||||
function customSel(){
|
||||
var id=$("#custom-sel-sel").val();
|
||||
localStorage.setItem("customtheme-id",id)
|
||||
}
|
||||
function custom(){
|
||||
var id=$("#custom-edit-sel").val();
|
||||
if(id=="add_new"){
|
||||
$("#custom_name").val("");
|
||||
$("#custom_desc").val("");
|
||||
$("#dark").prop("checked", true);
|
||||
$("#custom_json").val("");
|
||||
$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
|
||||
$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
|
||||
$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
|
||||
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
|
||||
$("#color-picker0_value").val("");
|
||||
$("#color-picker1_value").val("");
|
||||
$("#color-picker2_value").val("");
|
||||
$("#color-picker3_value").val("");
|
||||
pickerDefine(0,"fff");
|
||||
pickerDefine(1,"fff");
|
||||
pickerDefine(2,"fff");
|
||||
pickerDefine(3,"fff");
|
||||
$("#delTheme").addClass("disabled")
|
||||
}else{
|
||||
$("#delTheme").removeClass("disabled")
|
||||
ipc.send('theme-json-request', id);
|
||||
ipc.on('theme-json-response', function (event, args) {
|
||||
console.log(args);
|
||||
$("#custom_name").val(args.name);
|
||||
$("#custom_desc").val(args.desc);
|
||||
$("#"+args.base).prop("checked", true);
|
||||
$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
|
||||
pickerDefine(0,rgbToHex(args.vars.primary))
|
||||
$("#color-picker0_value").val(args.vars.primary);
|
||||
$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
|
||||
pickerDefine(1,rgbToHex(args.vars.secondary))
|
||||
$("#color-picker1_value").val(args.vars.secondary);
|
||||
$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
|
||||
$("#color-picker2_value").val(args.vars.text);
|
||||
pickerDefine(2,rgbToHex(args.vars.text))
|
||||
if(args.props){
|
||||
if(args.props.TheDeskAccent){
|
||||
var accent=args.props.TheDeskAccent;
|
||||
}else{
|
||||
var accent=args.vars.secondary;
|
||||
}
|
||||
}else{
|
||||
var accent=args.vars.secondary;
|
||||
}
|
||||
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
|
||||
pickerDefine(3,rgbToHex(accent))
|
||||
$("#custom_json").val(JSON.stringify(args));
|
||||
});
|
||||
}
|
||||
}
|
||||
function customImp(){
|
||||
var json=$("#custom_import").val();
|
||||
if(JSON5.parse(json)){
|
||||
ipc.send('theme-json-create', json);
|
||||
}else{
|
||||
alert("Error")
|
||||
}
|
||||
}
|
||||
function hardwareAcceleration(){
|
||||
var had = $("[name=ha]:checked").val();
|
||||
localStorage.setItem("ha", had);
|
||||
console.log("ha");
|
||||
ipc.send('ha', had);
|
||||
}
|
||||
|
||||
ipc.on('theme-json-create-complete', function (event, args) {
|
||||
$("#custom_import").val("");
|
||||
ctLoad()
|
||||
});
|
||||
//最初に読む
|
||||
load();
|
||||
climute();
|
||||
wordmute();
|
||||
wordemp();
|
||||
checkSpotify();
|
||||
voiceSettingLoad();
|
||||
oksload();
|
||||
npprovider();
|
||||
ctLoad()
|
@@ -103,7 +103,7 @@ function sort() {
|
||||
var json = JSON.stringify(newobj);
|
||||
localStorage.setItem("column", json);
|
||||
$("#sort").html("");
|
||||
Materialize.toast("Sorted", 3000);
|
||||
M.toast({ html: "Sorted", displayLength: 3000 })
|
||||
sortload();
|
||||
parseColumn();
|
||||
sortMenu()
|
||||
|
@@ -1,21 +1,13 @@
|
||||
function spotifyConnect() {
|
||||
var auth = "https://accounts.spotify.com/authorize?client_id=0f18e54abe0b4aedb4591e353d3aff69&redirect_uri=https://thedesk.top/spotify-connect&response_type=code&scope=user-read-currently-playing";
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
|
||||
|
||||
var electron = require("electron");
|
||||
var remote = electron.remote;
|
||||
var platform = remote.process.platform;
|
||||
var platform = localStorage.getItem("platform");
|
||||
if (platform == "win32") {
|
||||
shell.openExternal(auth);
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('quit', 'go');
|
||||
postMessage(["openUrl", auth], "*")
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
} else {
|
||||
auth = auth + "&state=code";
|
||||
$("#spotify-code-show").removeClass("hide");
|
||||
shell.openExternal(auth);
|
||||
postMessage(["openUrl", auth], "*")
|
||||
}
|
||||
|
||||
|
||||
@@ -57,10 +49,10 @@ function spotifyFlagSave() {
|
||||
var awk = $("[name=awk]:checked").val();
|
||||
if (awk == "yes") {
|
||||
localStorage.setItem("artwork", "yes");
|
||||
Materialize.toast(lang.lang_spotify_img, 3000);
|
||||
M.toast({ html: lang.lang_spotify_img, displayLength: 3000 })
|
||||
} else {
|
||||
localStorage.removeItem("artwork");
|
||||
Materialize.toast(lang.lang_spotify_imgno, 3000);
|
||||
M.toast({ html: lang.lang_spotify_imgno, displayLength: 3000 })
|
||||
}
|
||||
}
|
||||
function nowplaying(mode) {
|
||||
@@ -85,11 +77,9 @@ function nowplaying(mode) {
|
||||
}
|
||||
var item = json.item;
|
||||
var img = item.album.images[0].url;
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var flag = localStorage.getItem("artwork");
|
||||
if (flag) {
|
||||
ipc.send('bmp-image', [img, 0]);
|
||||
postMessage(["bmpImage", [img, 0]], "*")
|
||||
}
|
||||
var content = localStorage.getItem("np-temp");
|
||||
if (!content || content == "" || content == "null") {
|
||||
@@ -118,67 +108,62 @@ function nowplaying(mode) {
|
||||
$("#textarea").val(content);
|
||||
});
|
||||
} else {
|
||||
alert(lang.lang_spotify_acct);
|
||||
Swal.fire({
|
||||
type: 'info',
|
||||
title: lang.lang_spotify_acct
|
||||
})
|
||||
}
|
||||
} else if (mode == "itunes") {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
if (ipc.listenerCount('itunes-np') > 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ipc.send('itunes', "");
|
||||
ipc.once('itunes-np', function (event, arg) {
|
||||
if (arg.cmd) {
|
||||
console.error(arg);
|
||||
return;
|
||||
}
|
||||
console.table(arg);
|
||||
var content = localStorage.getItem("np-temp");
|
||||
if (!content || content == "" || content == "null") {
|
||||
var content = "#NowPlaying {song} / {album} / {artist}\n{url}";
|
||||
}
|
||||
var flag = localStorage.getItem("artwork");
|
||||
var remote = electron.remote;
|
||||
var platform = remote.process.platform;
|
||||
if (platform == "win32") {
|
||||
if (flag && arg.path) {
|
||||
media(arg.path, "image/png", "new");
|
||||
}
|
||||
} else if (platform == "darwin") {
|
||||
if (flag && arg.existsArtwork) {
|
||||
media(arg.artworks[0].data, "image/png", "new");
|
||||
}
|
||||
}
|
||||
var regExp = new RegExp("{song}", "g");
|
||||
content = content.replace(regExp, arg.name);
|
||||
var regExp = new RegExp("{album}", "g");
|
||||
content = content.replace(regExp, arg.album);
|
||||
var regExp = new RegExp("{artist}", "g");
|
||||
content = content.replace(regExp, arg.artist);
|
||||
var regExp = new RegExp("{url}", "g");
|
||||
content = content.replace(regExp, "");
|
||||
var regExp = new RegExp("{composer}", "g");
|
||||
content = content.replace(regExp, arg.composer);
|
||||
var regExp = new RegExp("{hz}", "g");
|
||||
content = content.replace(regExp, arg.sampleRate / 1000 + "kHz");
|
||||
var regExp = new RegExp("{lyricist}", "g");
|
||||
content = content.replace(regExp, "");
|
||||
var regExp = new RegExp("{bpm}", "g");
|
||||
content = content.replace(regExp, "");
|
||||
var regExp = new RegExp("{bitRate}", "g");
|
||||
content = content.replace(regExp, arg.bitRate + "kbps");
|
||||
var regExp = new RegExp("{genre}", "g");
|
||||
content = content.replace(regExp, arg.genre);
|
||||
$("#textarea").val(content);
|
||||
})
|
||||
postMessage(["itunes", ""], "*")
|
||||
}
|
||||
|
||||
}
|
||||
function npCore(arg) {
|
||||
if (arg.cmd) {
|
||||
console.error(arg);
|
||||
return;
|
||||
}
|
||||
console.table(arg);
|
||||
var content = localStorage.getItem("np-temp");
|
||||
if (!content || content == "" || content == "null") {
|
||||
var content = "#NowPlaying {song} / {album} / {artist}\n{url}";
|
||||
}
|
||||
var flag = localStorage.getItem("artwork");
|
||||
var platform = localStorage.getItem("platform");
|
||||
if (platform == "win32") {
|
||||
if (flag && arg.path) {
|
||||
media(arg.path, "image/png", "new");
|
||||
}
|
||||
} else if (platform == "darwin") {
|
||||
if (flag && arg.existsArtwork) {
|
||||
media(arg.artworks[0].data, "image/png", "new");
|
||||
}
|
||||
}
|
||||
var regExp = new RegExp("{song}", "g");
|
||||
content = content.replace(regExp, arg.name);
|
||||
var regExp = new RegExp("{album}", "g");
|
||||
content = content.replace(regExp, arg.album);
|
||||
var regExp = new RegExp("{artist}", "g");
|
||||
content = content.replace(regExp, arg.artist);
|
||||
var regExp = new RegExp("{url}", "g");
|
||||
content = content.replace(regExp, "");
|
||||
var regExp = new RegExp("{composer}", "g");
|
||||
content = content.replace(regExp, arg.composer);
|
||||
var regExp = new RegExp("{hz}", "g");
|
||||
content = content.replace(regExp, arg.sampleRate / 1000 + "kHz");
|
||||
var regExp = new RegExp("{lyricist}", "g");
|
||||
content = content.replace(regExp, "");
|
||||
var regExp = new RegExp("{bpm}", "g");
|
||||
content = content.replace(regExp, "");
|
||||
var regExp = new RegExp("{bitRate}", "g");
|
||||
content = content.replace(regExp, arg.bitRate + "kbps");
|
||||
var regExp = new RegExp("{genre}", "g");
|
||||
content = content.replace(regExp, arg.genre);
|
||||
$("#textarea").val(content);
|
||||
}
|
||||
function spotifySave() {
|
||||
var temp = $("#np-temp").val();
|
||||
localStorage.setItem("np-temp", temp);
|
||||
Materialize.toast(lang.lang_spotify_np, 3000);
|
||||
M.toast({ html: lang.lang_spotify_np, displayLength: 3000 })
|
||||
}
|
||||
function npprovider() {
|
||||
var provd = $("[name=npp]:checked").val();
|
||||
@@ -191,12 +176,11 @@ function npprovider() {
|
||||
}
|
||||
} else {
|
||||
if (provd != localStorage.getItem("np_provider")) {
|
||||
Materialize.toast(lang.lang_setting_npprovide.replace("{{set}}", provd), 3000);
|
||||
M.toast({ html: lang.lang_setting_npprovide.replace("{{set}}", provd), displayLength: 3000 })
|
||||
}
|
||||
localStorage.setItem("np_provider", provd);
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('itunes', ["set", provd]);
|
||||
postMessage(["itunes", ["set", provd]], "*")
|
||||
|
||||
}
|
||||
}
|
||||
if (location.search) {
|
||||
|
@@ -21,7 +21,7 @@ function themes(theme) {
|
||||
}
|
||||
if (theme == "custom") {
|
||||
if (localStorage.getItem("customtheme-id")) {
|
||||
ipc.send('theme-css-request', localStorage.getItem("customtheme-id"));
|
||||
postMessage(["themeCSSRequest", localStorage.getItem("customtheme-id")], "*")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -20,9 +20,7 @@ function bottomReverse() {
|
||||
}
|
||||
}
|
||||
function tips(mode) {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('endmem', "");
|
||||
postMessage(["sendSinmpleIpc", "endmem"], "*")
|
||||
clearInterval(clockint);
|
||||
clearInterval(spotStart);
|
||||
if (mode == "ver") {
|
||||
@@ -50,15 +48,10 @@ function tips(mode) {
|
||||
}
|
||||
//メモリ
|
||||
function startmem() {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('startmem', "");
|
||||
ipc.on('memory', function (event, arg) {
|
||||
var use = arg[0];
|
||||
var cpu = arg[1];
|
||||
var total = arg[2]
|
||||
$("#tips-text").html(escapeHTML(cpu) + "<br>Memory:" + Math.floor(use / 1024 / 1024 / 102.4) / 10 + "/" + Math.floor(total / 1024 / 1024 / 102.4) / 10 + "GB(" + Math.floor(use / total * 100) + "%)")
|
||||
})
|
||||
postMessage(["sendSinmpleIpc", "startmem"], "*")
|
||||
}
|
||||
function renderMem(use, cpu, total){
|
||||
$("#tips-text").html(escapeHTML(cpu) + "<br>Memory:" + Math.floor(use / 1024 / 1024 / 102.4) / 10 + "/" + Math.floor(total / 1024 / 1024 / 102.4) / 10 + "GB(" + Math.floor(use / total * 100) + "%)")
|
||||
}
|
||||
//トレンドタグ
|
||||
function trendTagonTip() {
|
||||
@@ -140,7 +133,10 @@ function spotifytips() {
|
||||
spotint = setInterval(spotStart, 1000);
|
||||
});
|
||||
} else {
|
||||
alert(lang.lang_spotify_acct);
|
||||
Swal.fire({
|
||||
type: 'info',
|
||||
title: lang.lang_spotify_acct
|
||||
})
|
||||
}
|
||||
}
|
||||
function spotStart() {
|
||||
|
@@ -40,9 +40,7 @@ function udgEx(user, acct_id) {
|
||||
var id = json.accounts[0].id;
|
||||
udg(id, acct_id);
|
||||
} else {
|
||||
var url = "https://" + user.split('@')[1] + "/@" + user.split('@')[0];
|
||||
const { shell } = require('electron');
|
||||
shell.openExternal(url);
|
||||
postMessage(["openUrl", url], "*")
|
||||
}
|
||||
});
|
||||
return true;
|
||||
@@ -81,9 +79,8 @@ function udg(user, acct_id) {
|
||||
}
|
||||
//moved設定時
|
||||
if (json.moved) {
|
||||
Materialize.toast(
|
||||
lang.lang_showontl_movetxt + '<button class="btn-flat toast-action" onclick="udg(\'' +
|
||||
json.moved.id + '\',\'' + acct_id + '\')">' + lang.lang_showontl_movebtn + '</button>', 4000)
|
||||
M.toast({ html: lang.lang_showontl_movetxt + '<button class="btn-flat toast-action" onclick="udg(\'' +
|
||||
json.moved.id + '\',\'' + acct_id + '\')">' + lang.lang_showontl_movebtn + '</button>', displayLength: 4000 })
|
||||
}
|
||||
$('#his-data').modal('open');
|
||||
$('#his-data').attr("user-id", user);
|
||||
@@ -409,9 +406,8 @@ function relations(user, acct_id) {
|
||||
});
|
||||
}
|
||||
function profbrws() {
|
||||
const { shell } = require('electron');
|
||||
var url = $("#his-openin").attr("data-href")
|
||||
shell.openExternal(url);
|
||||
postMessage(["openUrl", url], "*")
|
||||
}
|
||||
//オールリセット
|
||||
function hisclose() {
|
||||
@@ -470,9 +466,9 @@ function reset() {
|
||||
$("#his-float-blocked").hide();
|
||||
$("#his-proof-prof").html("")
|
||||
}
|
||||
$('#my-data-nav .custom-tab').on('click', function () {
|
||||
$('#my-data-nav .tab').on('click', function () {
|
||||
var target = $(this).find("a").attr("go");
|
||||
$("#my-data-nav .custom-tab").removeClass("active-back");
|
||||
$("#my-data-nav .tab").removeClass("active-back");
|
||||
$(this).addClass("active-back");
|
||||
$(target).show();
|
||||
$(".tab-content:not(" + target + ")").hide();
|
||||
|
43
app/main.js
43
app/main.js
@@ -1,4 +1,4 @@
|
||||
|
||||
var dirname = __dirname;
|
||||
var dir = 'file://' + __dirname;
|
||||
var base = dir + '/view/';
|
||||
// Electronのモジュール
|
||||
@@ -94,11 +94,35 @@ function createWindow() {
|
||||
var platform = process.platform;
|
||||
var bit = process.arch;
|
||||
if (platform == "linux") {
|
||||
var arg = { webPreferences: { webviewTag: true, nodeIntegration: true }, width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, icon: __dirname + '/desk.png' }
|
||||
var arg = {
|
||||
webPreferences: {
|
||||
webviewTag: true,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(__dirname, "js", "platform", "preload.js")
|
||||
},
|
||||
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, icon: __dirname + '/desk.png'
|
||||
}
|
||||
} else if (platform == "win32") {
|
||||
var arg = {webPreferences: { webviewTag: true, nodeIntegration: true }, width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true }
|
||||
var arg = {
|
||||
webPreferences: {
|
||||
webviewTag: true,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(__dirname, "js", "platform", "preload.js")
|
||||
},
|
||||
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true
|
||||
}
|
||||
} else if (platform == "darwin") {
|
||||
var arg = { webPreferences: { webviewTag: true, nodeIntegration: true }, width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true }
|
||||
var arg = {
|
||||
webPreferences: {
|
||||
webviewTag: true,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(__dirname, "js", "platform", "preload.js")
|
||||
},
|
||||
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true
|
||||
}
|
||||
}
|
||||
mainWindow = new BrowserWindow(arg);
|
||||
electron.session.defaultSession.clearCache(() => { })
|
||||
@@ -149,19 +173,22 @@ function createWindow() {
|
||||
|
||||
var platform = process.platform;
|
||||
var bit = process.arch;
|
||||
if (platform == "darwin") {
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, false, dir)));
|
||||
if (process.argv.indexOf("--dev") === -1) {
|
||||
packaged = true;
|
||||
} else {
|
||||
packaged = false;
|
||||
}
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, packaged, dir)));
|
||||
//CSS
|
||||
css.css(mainWindow);
|
||||
//アップデータとダウンロード
|
||||
dl.dl(mainWindow, lang_path, base);
|
||||
dl.dl(mainWindow, lang_path, base, dirname);
|
||||
//画像選択と画像処理
|
||||
img.img(mainWindow, dir);
|
||||
//NowPlaying
|
||||
np.TheDeskNowPlaying(mainWindow);
|
||||
//その他system
|
||||
systemFunc.system(mainWindow, dir, lang);
|
||||
systemFunc.system(mainWindow, dir, lang, dirname);
|
||||
}
|
||||
// Electronの初期化完了後に実行
|
||||
app.on('ready', createWindow);
|
||||
|
@@ -10,7 +10,7 @@ function css(mainWindow) {
|
||||
|
||||
ipc.on('custom-css-create', function (e, arg) {
|
||||
fs.writeFileSync(customcss, arg);
|
||||
mainWindow.webContents.send('custom-css-create-complete', "");
|
||||
e.sender.webContents.send('custom-css-create-complete', "");
|
||||
})
|
||||
ipc.on('custom-css-request', function (e, arg) {
|
||||
try {
|
||||
@@ -18,29 +18,29 @@ function css(mainWindow) {
|
||||
} catch (e) {
|
||||
var css = "";
|
||||
}
|
||||
mainWindow.webContents.send('custom-css-response', css);
|
||||
e.sender.webContents.send('custom-css-response', css);
|
||||
})
|
||||
ipc.on('theme-json-create', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), JSON5.parse(arg)["id"] +
|
||||
".thedesktheme");
|
||||
fs.writeFileSync(themecss, JSON.stringify(JSON5.parse(arg)));
|
||||
if (JSON5.parse(arg)["id"]) {
|
||||
mainWindow.webContents.send('theme-json-create-complete', "");
|
||||
e.sender.webContents.send('theme-json-create-complete', "");
|
||||
} else {
|
||||
mainWindow.webContents.send('theme-json-create-complete', "error");
|
||||
e.sender.webContents.send('theme-json-create-complete', "error");
|
||||
}
|
||||
})
|
||||
ipc.on('theme-json-delete', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
console.log(themecss);
|
||||
fs.unlink(themecss, function (err) {
|
||||
mainWindow.webContents.send('theme-json-delete-complete', "");
|
||||
e.sender.webContents.send('theme-json-delete-complete', "");
|
||||
});
|
||||
})
|
||||
ipc.on('theme-json-request', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
var json = JSON.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
mainWindow.webContents.send('theme-json-response', json);
|
||||
e.sender.webContents.send('theme-json-response', json);
|
||||
})
|
||||
ipc.on('theme-css-request', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
@@ -75,8 +75,8 @@ function css(mainWindow) {
|
||||
secondary +
|
||||
";--active:" + primary + ";--postbox:" + primary + ";--modalfooter:" +
|
||||
primary +
|
||||
";}.blacktheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
mainWindow.webContents.send('theme-css-response', css);
|
||||
";--accentbtn:" + primary + "}.customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
e.sender.webContents.send('theme-css-response', css);
|
||||
} catch (e) {
|
||||
var css = "";
|
||||
}
|
||||
@@ -98,7 +98,7 @@ function css(mainWindow) {
|
||||
id: json.id
|
||||
})
|
||||
}
|
||||
mainWindow.webContents.send('theme-json-list-response', themes);
|
||||
e.sender.webContents.send('theme-json-list-response', themes);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
function dl(mainWindow, lang_path, base) {
|
||||
function dl(mainWindow, lang_path, base, dirname) {
|
||||
const electron = require("electron");
|
||||
const shell = electron.shell;
|
||||
const fs = require("fs");
|
||||
@@ -16,15 +16,18 @@ function dl(mainWindow, lang_path, base) {
|
||||
if (platform != "others") {
|
||||
updatewin = new BrowserWindow({
|
||||
webPreferences: {
|
||||
nodeIntegration:true
|
||||
webviewTag: false,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(dirname,"js", "platform", "preload.js")
|
||||
},
|
||||
width: 600,
|
||||
height: 400,
|
||||
"transparent": false, // ウィンドウの背景を透過
|
||||
"frame": false, // 枠の無いウィンドウ
|
||||
"resizable": false,
|
||||
"modal": true
|
||||
"resizable": false
|
||||
});
|
||||
//updatewin.openDevTools()
|
||||
var lang = fs.readFileSync(lang_path, 'utf8');
|
||||
updatewin.loadURL(base + lang + '/update.html');
|
||||
|
||||
@@ -35,7 +38,25 @@ function dl(mainWindow, lang_path, base) {
|
||||
})
|
||||
//アプデDL
|
||||
ipc.on('download-btn', (e, args) => {
|
||||
function dl(url, file, dir, e) {
|
||||
|
||||
e.sender.webContents.send('mess', "ダウンロードを開始します。");
|
||||
const opts = {
|
||||
directory: dir,
|
||||
openFolderWhenDone: true,
|
||||
onProgress: function (event) {
|
||||
e.sender.webContents.send('prog', event);
|
||||
},
|
||||
saveAs: false
|
||||
};
|
||||
download(updatewin,
|
||||
url, opts)
|
||||
.then(dl => {
|
||||
e.sender.webContents.send('mess', "ダウンロードが完了しました。");
|
||||
app.quit();
|
||||
})
|
||||
.catch(console.error);
|
||||
}
|
||||
var platform = process.platform;
|
||||
var bit = process.arch;
|
||||
dialog.showSaveDialog(null, {
|
||||
@@ -55,7 +76,7 @@ function dl(mainWindow, lang_path, base) {
|
||||
if (isExistFile(savedFiles)) {
|
||||
fs.unlinkSync(savedFiles);
|
||||
}
|
||||
dl(args[0], args[1], m[1]);
|
||||
dl(args[0], args[1], m[1], e);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -68,27 +89,8 @@ function dl(mainWindow, lang_path, base) {
|
||||
}
|
||||
}
|
||||
|
||||
function dl(url, file, dir) {
|
||||
|
||||
updatewin.webContents.send('mess', "ダウンロードを開始します。");
|
||||
const opts = {
|
||||
directory: dir,
|
||||
openFolderWhenDone: true,
|
||||
onProgress: function (e) {
|
||||
updatewin.webContents.send('prog', e);
|
||||
},
|
||||
saveAs: false
|
||||
};
|
||||
download(updatewin,
|
||||
url, opts)
|
||||
.then(dl => {
|
||||
updatewin.webContents.send('mess', "ダウンロードが完了しました。");
|
||||
app.quit();
|
||||
|
||||
})
|
||||
.catch(console.error);
|
||||
}
|
||||
ipc.on('general-dl', (e, args) => {
|
||||
ipc.on('general-dl', (event, args) => {
|
||||
|
||||
var name = "";
|
||||
var platform = process.platform;
|
||||
@@ -107,14 +109,14 @@ function dl(mainWindow, lang_path, base) {
|
||||
filename: name,
|
||||
openFolderWhenDone: false,
|
||||
onProgress: function (e) {
|
||||
mainWindow.webContents.send('general-dl-prog', e);
|
||||
event.sender.webContents.send('general-dl-prog', e);
|
||||
},
|
||||
saveAs: false
|
||||
};
|
||||
download(BrowserWindow.getFocusedWindow(),
|
||||
args[0], opts)
|
||||
.then(dl => {
|
||||
mainWindow.webContents.send('general-dl-message', dir);
|
||||
event.sender.webContents.send('general-dl-message', dir);
|
||||
})
|
||||
.catch(console.error);
|
||||
});
|
||||
|
@@ -24,48 +24,17 @@ function img(mainWindow, dir) {
|
||||
for (var i = 0; i < fileNames.length; i++) {
|
||||
var path = fileNames[i];
|
||||
var bin = fs.readFileSync(path, 'base64');
|
||||
mainWindow.webContents.send('bmp-img-comp', [bin, 'new']);
|
||||
e.sender.webContents.send('bmp-img-comp', [bin, 'new']);
|
||||
}
|
||||
});
|
||||
});
|
||||
ipc.on('adobe', (e, arg) => {
|
||||
|
||||
if (!arg) {
|
||||
const options = {
|
||||
type: 'info',
|
||||
title: 'Adobeフォトエディタ',
|
||||
message: "「許可」または「永続的に許可」をクリックするとTheDeskとAdobeで情報を共有します。\n次のウィンドウを開いている時以外は一切提供しません。",
|
||||
buttons: ['拒否', '許可', '永続的に許可']
|
||||
}
|
||||
dialog.showMessageBox(options, function (index) {
|
||||
if (index === 2) {
|
||||
mainWindow.webContents.send('adobeagree', "true");
|
||||
}
|
||||
if (index > 0) {
|
||||
adobeWindow();
|
||||
}
|
||||
})
|
||||
} else {
|
||||
adobeWindow();
|
||||
}
|
||||
});
|
||||
function adobeWindow() {
|
||||
var window = new BrowserWindow({
|
||||
webPreferences: {
|
||||
nodeIntegration:true
|
||||
},
|
||||
width: 1000,
|
||||
height: 750
|
||||
});
|
||||
window.loadURL(dir + '/adobe.html');
|
||||
}
|
||||
ipc.on('bmp-image', (e, args) => {
|
||||
|
||||
var m = args[0].match(/(.+)\\(.+)\.(.+)$/);
|
||||
Jimp.read(args[0], function (err, lenna) {
|
||||
if (err) throw err;
|
||||
lenna.getBase64(Jimp.MIME_PNG, function (err, src) {
|
||||
mainWindow.webContents.send('bmp-img-comp', [src, args[1]]);
|
||||
e.sender.webContents.send('bmp-img-comp', [src, args[1]]);
|
||||
});
|
||||
});
|
||||
|
||||
|
@@ -65,6 +65,28 @@ function templete(lang, mainWindow, packaged, dir) {
|
||||
"en": "Close"
|
||||
}
|
||||
}
|
||||
if(packaged){
|
||||
var ifDev = [
|
||||
{
|
||||
label: dict.reload[lang],
|
||||
accelerator: 'CmdOrCtrl+R',
|
||||
click: function () { mainWindow.reload(); }
|
||||
}
|
||||
]
|
||||
}else{
|
||||
var ifDev = [
|
||||
{
|
||||
label: 'Toggle Developer Tools',
|
||||
accelerator: 'Alt+Command+I',
|
||||
click: function () { if (!packaged) { mainWindow.toggleDevTools(); } }
|
||||
},
|
||||
{
|
||||
label: dict.reload[lang],
|
||||
accelerator: 'CmdOrCtrl+R',
|
||||
click: function () { mainWindow.reload(); }
|
||||
}
|
||||
]
|
||||
}
|
||||
const menu = [{
|
||||
label: dict.application[lang],
|
||||
submenu: [
|
||||
@@ -73,7 +95,10 @@ function templete(lang, mainWindow, packaged, dir) {
|
||||
var ver = app.getVersion()
|
||||
var window = new BrowserWindow({
|
||||
webPreferences: {
|
||||
nodeIntegration:true
|
||||
webviewTag: false,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: "../js/platform/preload.js"
|
||||
},
|
||||
width: 300, height: 460,
|
||||
"transparent": false, // ウィンドウの背景を透過
|
||||
@@ -100,18 +125,7 @@ function templete(lang, mainWindow, packaged, dir) {
|
||||
]
|
||||
}, {
|
||||
label: dict.view[lang],
|
||||
submenu: [
|
||||
{
|
||||
label: 'Toggle Developer Tools',
|
||||
accelerator: 'Alt+Command+I',
|
||||
click: function () { if (!packaged) { mainWindow.toggleDevTools(); } }
|
||||
},
|
||||
{
|
||||
label: dict.reload[lang],
|
||||
accelerator: 'CmdOrCtrl+R',
|
||||
click: function () { mainWindow.webContents.send('reload', " "); }
|
||||
}
|
||||
]
|
||||
submenu: ifDev
|
||||
},
|
||||
{
|
||||
label: dict.window[lang],
|
||||
@@ -132,33 +146,5 @@ function templete(lang, mainWindow, packaged, dir) {
|
||||
];
|
||||
return menu;
|
||||
}
|
||||
function delsel(lang) {
|
||||
const dict = {
|
||||
"delete": {
|
||||
"ja": "カラム削除",
|
||||
"en": "Delete this column"
|
||||
},
|
||||
"mess": {
|
||||
"ja": "カラムを削除しますか?(すべてのカラムのリンク解析がOFFになります。)",
|
||||
"en": "Delete this column(URL analyzes of all windows will be disabled.)"
|
||||
},
|
||||
"yes": {
|
||||
"ja": "はい",
|
||||
"en": "Yes"
|
||||
},
|
||||
"no": {
|
||||
"ja": "いいえ",
|
||||
"en": "No"
|
||||
}
|
||||
}
|
||||
const options = {
|
||||
type: 'info',
|
||||
title: dict.delete[lang],
|
||||
message: dict.mess[lang],
|
||||
buttons: [dict.no[lang], dict.yes[lang]]
|
||||
}
|
||||
return options;
|
||||
}
|
||||
|
||||
exports.template = templete;
|
||||
exports.delsel = delsel;
|
||||
exports.template = templete;
|
@@ -28,11 +28,11 @@ function np(mainWindow) {
|
||||
try {
|
||||
const nowplaying = require("itunes-nowplaying-mac");
|
||||
const value = await nowplaying.getRawData();
|
||||
mainWindow.webContents.send('itunes-np', value);
|
||||
e.sender.webContents.send('itunes-np', value);
|
||||
} catch (error) {
|
||||
// エラーを返す
|
||||
console.error(error);
|
||||
mainWindow.webContents.send('itunes-np', error);
|
||||
e.sender.webContents.send('itunes-np', error);
|
||||
}
|
||||
} else {
|
||||
var { NowPlaying, PlayerName } = require("nowplaying-node");
|
||||
@@ -62,7 +62,7 @@ function np(mainWindow) {
|
||||
album: myAIMP.getAlbum(),
|
||||
path: bin
|
||||
}
|
||||
mainWindow.webContents.send('itunes-np', value);
|
||||
e.sender.webContents.send('itunes-np', value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
function system(mainWindow, dir, lang) {
|
||||
function system(mainWindow, dir, lang, dirname) {
|
||||
const electron = require("electron");
|
||||
const app = electron.app;
|
||||
const join = require('path').join;
|
||||
@@ -40,13 +40,68 @@ function system(mainWindow, dir, lang) {
|
||||
});
|
||||
}
|
||||
});
|
||||
//プラットフォーム
|
||||
ipc.on('getPlatform', function (e, arg) {
|
||||
e.sender.webContents.send('platform', [process.platform, process.arch, process.version, process.versions.chrome, process.versions.electron]);
|
||||
})
|
||||
//言語
|
||||
ipc.on('lang', function (e, arg) {
|
||||
|
||||
console.log("set:" + arg);
|
||||
fs.writeFileSync(lang_path, arg);
|
||||
mainWindow.webContents.send('langres', "");
|
||||
e.sender.webContents.send('langres', "");
|
||||
})
|
||||
//エクスポートのダイアログ
|
||||
ipc.on('exportSettings', function (e, args) {
|
||||
dialog.showSaveDialog(null, {
|
||||
title: 'Export',
|
||||
properties: ['openFile', 'createDirectory'],
|
||||
defaultPath: "export.thedeskconfigv2"
|
||||
}, (savedFiles) => {
|
||||
if (!savedFiles) {
|
||||
return false;
|
||||
}
|
||||
e.sender.webContents.send('exportSettingsFile', savedFiles);
|
||||
})
|
||||
})
|
||||
//インポートのダイアログ
|
||||
ipc.on('importSettings', function (e, args) {
|
||||
dialog.showOpenDialog(null, {
|
||||
title: 'Import',
|
||||
properties: ['openFile'],
|
||||
filters: [
|
||||
{ name: 'TheDesk Config', extensions: ['thedeskconfig', 'thedeskconfigv2'] },
|
||||
]
|
||||
}, (fileNames) => {
|
||||
if (!fileNames) {
|
||||
return false;
|
||||
}
|
||||
e.sender.webContents.send('config', fs.readFileSync(arg, 'utf8'));
|
||||
})
|
||||
})
|
||||
//保存フォルダのダイアログ
|
||||
ipc.on('savefolder', function (e, args) {
|
||||
dialog.showOpenDialog(null, {
|
||||
title: 'Save folder',
|
||||
properties: ['openDirectory'],
|
||||
}, (fileNames) => {
|
||||
e.sender.webContents.send('savefolder', fileNames[0]);
|
||||
});
|
||||
})
|
||||
//カスタムサウンドのダイアログ
|
||||
ipc.on('customSound', function (e, arg) {
|
||||
dialog.showOpenDialog(null, {
|
||||
title: 'Custom sound',
|
||||
properties: ['openFile'],
|
||||
filters: [
|
||||
{ name: 'Audio', extensions: ['mp3', 'aac', 'wav', 'flac', 'm4a'] },
|
||||
{ name: 'All', extensions: ['*'] },
|
||||
]
|
||||
}, (fileNames) => {
|
||||
e.sender.webContents.send('customSoundRender', [arg, fileNames[0]]);
|
||||
});
|
||||
})
|
||||
|
||||
//ハードウェアアクセラレーションの無効化
|
||||
ipc.on('ha', function (e, arg) {
|
||||
|
||||
@@ -60,20 +115,17 @@ function system(mainWindow, dir, lang) {
|
||||
})
|
||||
|
||||
ipc.on('quit', (e, args) => {
|
||||
|
||||
app.quit();
|
||||
});
|
||||
ipc.on('about', (e, args) => {
|
||||
|
||||
about();
|
||||
});
|
||||
|
||||
function about() {
|
||||
|
||||
var ver = app.getVersion()
|
||||
var window = new BrowserWindow({
|
||||
webPreferences: {
|
||||
nodeIntegration:true
|
||||
webviewTag: false,
|
||||
nodeIntegration: false
|
||||
},
|
||||
width: 300,
|
||||
height: 480,
|
||||
@@ -84,14 +136,6 @@ function system(mainWindow, dir, lang) {
|
||||
window.loadURL(dir + '/about.html?ver=' + ver);
|
||||
return "true"
|
||||
}
|
||||
ipc.on('column-del', (e, args) => {
|
||||
|
||||
console.log(lang);
|
||||
var options = language.delsel(lang)
|
||||
dialog.showMessageBox(options, function (index) {
|
||||
mainWindow.webContents.send('column-del-reply', index);
|
||||
})
|
||||
});
|
||||
ipc.on('nano', function (e, x, y) {
|
||||
|
||||
var nano_info_path = join(app.getPath("userData"),
|
||||
@@ -104,7 +148,10 @@ function system(mainWindow, dir, lang) {
|
||||
}
|
||||
var nanowindow = new BrowserWindow({
|
||||
webPreferences: {
|
||||
nodeIntegration:true
|
||||
webviewTag: false,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(dirname,"js", "platform", "preload.js")
|
||||
},
|
||||
width: 350,
|
||||
height: 200,
|
||||
@@ -121,29 +168,27 @@ function system(mainWindow, dir, lang) {
|
||||
});
|
||||
return true;
|
||||
})
|
||||
|
||||
var cbTimer1;
|
||||
ipc.on('startmem', (e, arg) => {
|
||||
event = e.sender
|
||||
cbTimer1 = setInterval(mems, 1000);
|
||||
});
|
||||
function mems() {
|
||||
var mem = os.totalmem() - os.freemem();
|
||||
if (mainWindow) {
|
||||
event.webContents.send('memory', [mem, os.cpus()[0].model, os.totalmem()]);
|
||||
}
|
||||
}
|
||||
ipc.on('endmem', (e, arg) => {
|
||||
if (cbTimer1) {
|
||||
clearInterval(cbTimer1);
|
||||
}
|
||||
});
|
||||
|
||||
function mems() {
|
||||
var mem = os.totalmem() - os.freemem();
|
||||
if (mainWindow) {
|
||||
mainWindow.webContents.send('memory', [mem, os.cpus()[0].model, os.totalmem()]);
|
||||
}
|
||||
}
|
||||
|
||||
ipc.on('export', (e, args) => {
|
||||
fs.writeFileSync(args[0], args[1]);
|
||||
});
|
||||
ipc.on('import', (e, arg) => {
|
||||
mainWindow.webContents.send('config', fs.readFileSync(arg, 'utf8'));
|
||||
});
|
||||
//フォント
|
||||
function object_array_sort(data, key, order, fn) {
|
||||
//デフォは降順(DESC)
|
||||
@@ -180,7 +225,7 @@ function system(mainWindow, dir, lang) {
|
||||
const fm = require('font-manager');
|
||||
var fonts = fm.getAvailableFontsSync();
|
||||
object_array_sort(fonts, 'family', 'asc', function (fonts_sorted) {
|
||||
mainWindow.webContents.send('font-list', fonts_sorted);
|
||||
e.sender.webContents.send('font-list', fonts_sorted);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@@ -99,10 +99,8 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript" src="./node_modules/jquery/dist/jquery.js"></script>
|
||||
<script>
|
||||
//jQuery読む
|
||||
window.jQuery = window.$ = require('./js/common/jquery.js');
|
||||
var Hammer = require('./js/common/hammer.min.js');
|
||||
$.strip_tags = function (str, allowed) {
|
||||
if (!str) {
|
||||
return "";
|
||||
|
3718
app/package-lock.json
generated
3718
app/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,13 @@
|
||||
{
|
||||
"name": "thedesk",
|
||||
"version": "18.5.0",
|
||||
"version": "18.6.6",
|
||||
"description": "TheDesk is a Mastodon client for PC.",
|
||||
"repository": "https://github.com/cutls/TheDesk",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"construct": "cd view/make && node make",
|
||||
"dev": "electron ./ --dev",
|
||||
"dist": "build --linux snap",
|
||||
"build:js": "node build.js",
|
||||
"build": "electron-builder",
|
||||
@@ -41,7 +43,7 @@
|
||||
},
|
||||
{
|
||||
"name": "kPherox",
|
||||
"url": "https://pawoo.net/@kPherox",
|
||||
"url": "https://pl.kpherox.dev/kPherox",
|
||||
"email": "admin@mail.kr-kp.com"
|
||||
}
|
||||
],
|
||||
@@ -49,9 +51,12 @@
|
||||
"dependencies": {
|
||||
"electron-dl": "^1.14.0",
|
||||
"jimp": "^0.6.4",
|
||||
"jquery": "^3.4.1",
|
||||
"json5": "^2.1.0",
|
||||
"materialize-css": "^1.0.0",
|
||||
"node-notifier": "^5.4.0",
|
||||
"sumchecker": "^3.0.0",
|
||||
"sweetalert2": "^8.13.0",
|
||||
"vue": "^2.6.10"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
@@ -60,8 +65,9 @@
|
||||
"font-manager": "^0.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"electron": "^5.0.1",
|
||||
"electron-builder": "^20.40.2"
|
||||
"electron": "^5.0.4",
|
||||
"electron-builder": "^20.44.4",
|
||||
"readline-sync": "1.4.9"
|
||||
},
|
||||
"build": {
|
||||
"productName": "TheDesk",
|
||||
@@ -98,7 +104,8 @@
|
||||
"linux": {
|
||||
"icon": "build/icons",
|
||||
"target": [
|
||||
"zip"
|
||||
"zip",
|
||||
"snap"
|
||||
],
|
||||
"category": "Network"
|
||||
},
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
@@ -74,10 +74,11 @@
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.en.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false;
|
||||
</script>
|
||||
@@ -99,10 +100,15 @@
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
Uncheck it to skip pasiting code.(login to Mastodon on Windows or macOS) (Recommended: pcheck)<br>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<label for="linux">Code setup</label><br>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<label for="misskey">Login as Misskey</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>Code setup</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>Login as Misskey</span>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<title>TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
|
||||
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
@@ -25,9 +25,9 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.en.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/blurhash.js"></script>
|
||||
@@ -35,8 +35,9 @@
|
||||
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var ver = "Usamin (18.5.0)";
|
||||
var ver = "Usamin (18.6.6)";
|
||||
//betaを入れるとバージョンチェックしない
|
||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
|
||||
//var ver="beta";
|
||||
@@ -161,15 +162,15 @@
|
||||
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="Mark media as sensitive"
|
||||
onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button"
|
||||
data-activates='dropdown1' id="vis-icon">public</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-trigger" data-target="dropdown1"
|
||||
id="vis-icon">public</i>
|
||||
<a class="waves-effect gray" id="cw" onclick="cw()" title="Hide text behind warning">CW</a>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
|
||||
onclick="fileselect()" title="Attach..">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
|
||||
title="Emojis">tag_faces</i>
|
||||
<i class="waves-effect gray material-icons dropdown-button"
|
||||
data-activates='dropdown2'>more_vert</i>
|
||||
<i class="waves-effect gray material-icons dropdown-trigger"
|
||||
data-target="dropdown2">more_vert</i>
|
||||
<i class="material-icons nex gray waves-effect" title="Clear toot box(Ctrl+Shit+C)"
|
||||
data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
</div>
|
||||
@@ -190,7 +191,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 公開範囲 Dropdown Structure -->
|
||||
<ul id='dropdown1' class='dropdown-content'>
|
||||
<ul id="dropdown1" class="dropdown-content">
|
||||
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">Adjust status privacy
|
||||
</li>
|
||||
<li>
|
||||
@@ -213,10 +214,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<!-- その他 Dropdown Structure -->
|
||||
<ul id='dropdown2' class='dropdown-content'>
|
||||
<li>
|
||||
<a onclick="adobe()">Adobe Photo Editor</a>
|
||||
</li>
|
||||
<ul id="dropdown2" class="dropdown-content">
|
||||
<li>
|
||||
<a onclick="nowplaying('spotify');">NowPlaying(Spotify)</a>
|
||||
</li>
|
||||
@@ -236,9 +234,9 @@
|
||||
<!--END hidden area-->
|
||||
</div>
|
||||
<div id="toot-btn-field">
|
||||
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
|
||||
<button class="btn waves-effect unmize toot-btn-group" onclick="post()"
|
||||
id="toot-post-btn">Toot</button>
|
||||
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()"
|
||||
<button class="btn waves-effect darken-3 unmize hide toot-btn-group" onclick="sec()"
|
||||
id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon"
|
||||
title="Secondary Toot">lock_open</i></button>
|
||||
</div>
|
||||
@@ -311,10 +309,14 @@
|
||||
<input type="text" class="mastodon-choice" placeholder="Choice2">
|
||||
<input type="text" class="mastodon-choice" placeholder="Choice3">
|
||||
<input type="text" class="mastodon-choice" placeholder="Choice4">
|
||||
<input type="checkbox" class="filled-in" id="poll-multiple" value="1" />
|
||||
<label for="poll-multiple">Multiple select</label><br>
|
||||
<input type="checkbox" class="filled-in" id="poll-until" value="1" />
|
||||
<label for="poll-until">Hide 'votes' count until people vote it.</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="poll-multiple" value="1" />
|
||||
<span>Multiple select</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="poll-until" value="1" />
|
||||
<span>Hide 'votes' count until people vote it.</span>
|
||||
</label>
|
||||
<input type="number" style="width:50px" id="days_poll" placeholder="d" value="0">day(s)
|
||||
<input type="number" style="width:50px" id="hours_poll" placeholder="h" value="0">hour(s)
|
||||
<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="6">minute(s)
|
||||
@@ -325,7 +327,7 @@
|
||||
<!-- Modal Structure Tootdata-->
|
||||
<div id="tootmodal" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
<ul class="collapsible" data-collapsible="accordion" id="det-col">
|
||||
<ul class="collapsible" id="det-col">
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">people_outline</i>Local TL after this toot)
|
||||
@@ -474,46 +476,46 @@
|
||||
</div>
|
||||
<div class="his-float" id="his-float-timeline">
|
||||
<div id="my-data-nav">
|
||||
<ul class="custom-tabs transparent">
|
||||
<li class="custom-tab col my-data-width active-back column-first">
|
||||
<ul class="tabs transparent">
|
||||
<li class="tab col my-data-width active-back column-first">
|
||||
<a go="#his-tl" title="Timeline"><i class="material-icons">timeline</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width">
|
||||
<li class="tab col my-data-width">
|
||||
<a go="#his-follow-list" title="Follow"><i class="material-icons">people</i>→</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width">
|
||||
<li class="tab col my-data-width">
|
||||
<a go="#his-follower-list" title="Follower"><i
|
||||
class="material-icons">people</i>←</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<li class="tab col my-data-width only-his-data">
|
||||
<a go="#his-action" title="Cross-account"><i
|
||||
class="material-icons">account_box</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<li class="tab col my-data-width only-his-data">
|
||||
<a go="#his-list" title="List"><i class="material-icons">list</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-fav-list" title="Favourite"><i class="material-icons">star</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list" title="Blocks"><i class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list" title="Blocks"><i
|
||||
class="material-icons">voice_over_off</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-domain-list" title="Domain block"><i
|
||||
class="material-icons">language</i><i class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-prof-list" title="Edit profile"><i class="material-icons">create</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-request-list" title="Follow requests"><i
|
||||
class="material-icons">how_to_reg</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-follow-recom-list" title="Suggest"><i
|
||||
class="material-icons">recent_actors</i></a>
|
||||
</li>
|
||||
@@ -621,7 +623,7 @@
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn"
|
||||
onclick="follow()">Follow</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn"
|
||||
onclick="mute()">Mute</a>
|
||||
onclick="muteDo()">Mute</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn"
|
||||
onclick="block()">Block</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">Close</a>
|
||||
@@ -675,26 +677,19 @@
|
||||
<a href="https://thedesk.top" target="_blank">HP</a><br>
|
||||
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
|
||||
<br>
|
||||
<div id="release-Usamin_18-5-0" class="release-do" style="display:none; ">
|
||||
<div id="release-Usamin_18-6-6" class="release-do" style="display:none; ">
|
||||
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
|
||||
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
|
||||
Pixiv Fanboxでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note Usamin (18.5.0)</h5>
|
||||
・macOSでのアップデータについて修正。<br>
|
||||
・本来不要なところにフォロリク許可画面が出るようになっていたのを修正。<br>
|
||||
・不明なメディアに対するリンクを表示します。<br>
|
||||
・PleromaでのVideoの挙動について修正しました。<br>
|
||||
・Patreonでの支援を開始しました。<br>
|
||||
・アスタルテの新しいBBCodeに対応しました。<br>
|
||||
・タイムライン下の方が切れてしまう不具合の修正。<br>
|
||||
・通知をユーザーごとにフィルターする機能(最新のMastodonのみ)。<br>
|
||||
・Electron 5.0.1になりました。<br>
|
||||
<br>
|
||||
<h5>ThinkingDeskラベル</h5>
|
||||
<img src="../../img/thinkingdesk.png" style="width:100px;" draggable="false"><br>
|
||||
手作りマットラベル。貼ってはがせる。300円なのでポイントの余りでどうぞ。<br>
|
||||
<a href="https://item.mercari.com/jp/m822743330" target="_blank">メルカリ</a>へ。
|
||||
<h5>Release Note Usamin (18.6.6)</h5>
|
||||
・設定に関するバグを修正<br>
|
||||
・ブーストのボタンの色を青に変更<br>
|
||||
・テーマごとに「トゥート」ボタンの色が変わる<br>
|
||||
・新テーマ(Blue:渚の花嫁)を追加<br>
|
||||
・トゥート下のアクションボタンのスペースなどを変更<br>
|
||||
・翻訳したときに結果を全て表示するよう変更<br>
|
||||
・knzk.meとbesr-friends.chatをサポートインスタンスから削除
|
||||
</div>
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
@@ -707,8 +702,8 @@
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
Support on Pixiv FANBOX
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2"
|
||||
href="https://www.patreon.com/cutls" target="_blank">
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2" href="https://www.patreon.com/cutls"
|
||||
target="_blank">
|
||||
Support on Patreon
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
@@ -881,20 +876,34 @@
|
||||
<input type="hidden" id="filter-edit-id">
|
||||
<input type="text" style="width:150px" id="filter-add-word" placeholder="Filtering words"><br>
|
||||
Filter contexts<br>
|
||||
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
|
||||
<label for="home_filter">Home</label>
|
||||
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
|
||||
<label for="local_filter">Local</label>
|
||||
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
|
||||
<label for="notf_filter">Notifications</label>
|
||||
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
|
||||
<label for="conv_filter">Conversations</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
|
||||
<span>Home</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
|
||||
<span>Local</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
|
||||
<span>Notifications</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
|
||||
<span>Conversations</span>
|
||||
</label>
|
||||
Options<br>
|
||||
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
|
||||
<label for="wholeword_filter">Whole word</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
|
||||
<span>Whole word</span>
|
||||
</label>
|
||||
<br>
|
||||
<span class="sml">Nice for Latin language</span><br>
|
||||
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
|
||||
<label for="except_filter">Drop instead of hide</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
|
||||
<span>Drop instead of hide</span>
|
||||
</label>
|
||||
<br>
|
||||
<span class="sml">Filtered toots will disappear irreversibly, even if filter is later removed</span><br>
|
||||
Expire after<span class="sml">Unset or "0" means "Never"<b>This value may contain some error</b></span><br><br>
|
||||
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">day(s)
|
||||
@@ -937,7 +946,7 @@
|
||||
<div id="bottom" class="reverse">
|
||||
<div class="leftside reverse">
|
||||
<div id="dambox">
|
||||
<button id="posttgl" class="btn waves-effect indigo"
|
||||
<button id="posttgl" class="btn waves-effect"
|
||||
style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
|
||||
<i class="material-icons"
|
||||
style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>Toot
|
||||
@@ -990,6 +999,56 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--Support me-->
|
||||
<div id="support-btm" class="z-depth-4 hide">
|
||||
<div id="support-btm-ja">
|
||||
<h5>ご支援いただけませんか?</h5>
|
||||
(これは支援の有無に関わらず定期的に出ます。)<br>
|
||||
あなたのMastodon, Misskeyライフを邪魔してしまって申し訳ありません。<br>
|
||||
乞食のようなマネをしてご支援をお願いするのもどうかと思いますが、少々お時間をください。<br>
|
||||
<br>
|
||||
あなたはMastodon, MisskeyクライアントにTheDeskを選びました。これは奇跡的なことです。今考えればブラウザからアクセスした方が良かったのではと感じることかと存じます。<br>
|
||||
それでも、あなたはTheDeskを使っています。<br>
|
||||
TheDeskは2018年1月13日に最初のバージョンが出ました。それから圧倒的な機能数でゴリ押しするクライアントになっています。<br>
|
||||
新機能に追従を図るためのモチベーションもさることながら、安全対策上TheDeskは開発者の緊急メッセージを表示できる機能が備わっており、開発者が送信ボタンを押すとすべてのTheDeskユーザーに通知が行くようになっています。<br>
|
||||
かつてこれによってバグ報告を行い、使用を自粛していただくこともありました。<br>
|
||||
そのような機能を実装するために、Mastodonなどのインスタンスを運営するのと同じく有料のサーバーを運用しています。<br>
|
||||
<b>全てのユーザーが安心してTheDeskを使っていただける環境のため</b>にも、ぜひご支援をご検討ください。<br>
|
||||
<b>TheDesk has no ad, you need no charge to unlock premium features. We need your friendly support!</b>
|
||||
</div>
|
||||
<div id="support-btm-en" class="hide">
|
||||
<h5>Support me</h5>
|
||||
It may disturb your Mastodon life, but your support is required to keep TheDesk awesome!<br>
|
||||
<b>TheDesk has no ad, you need no charge to unlock premium features. We need your friendly support!</b>
|
||||
</div>
|
||||
<div id="support-btm-middle">
|
||||
<h5>Monthly</h5>
|
||||
<a class="btn-share btn waves-effect waves-light red lighten-2"
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
Support on Pixiv FANBOX
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2" href="https://www.patreon.com/cutls"
|
||||
target="_blank">
|
||||
Support on Patreon
|
||||
</a>
|
||||
</div>
|
||||
<div id="support-btm-right">
|
||||
<h5>Once</h5>
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
Amazon Wish List
|
||||
</a>
|
||||
<br>
|
||||
Give me Amazon Gift Card:<a href="mailto:web-pro@cutls.com"
|
||||
target="_blank">web-pro@cutls.com</a><br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
</div>
|
||||
<div id="support-btm-close">
|
||||
<button class="btn waves-effect" style="width:100%;" onclick="closeSupport()"
|
||||
id="add-filter-btn">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--左下メッセージ-->
|
||||
<div id="message">
|
||||
</div>
|
||||
|
@@ -842,13 +842,6 @@ SOFTWARE.<br>
|
||||
<h5>itunes-nowplaying-mac</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/rinsuki/itunes-nowplaying-mac" target="_blank">rinsuki/itunes-nowplaying-mac</a><br>
|
||||
MIT LICENSE
|
||||
<h5>Adobe Creative SDK</h5>
|
||||
Please visit:
|
||||
<a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/acom/jp/legal/servicetou/Creative_SDK_API_and_Developer_Additional_TOU-ja_JP-20140602_1513.pdf" target="_blank">
|
||||
This file
|
||||
<i class="material-icons">
|
||||
picture_as_pdf
|
||||
</i></a>
|
||||
<h5>Google Fonts</h5>
|
||||
<ul>
|
||||
<li>Open Sans:<a target="_blank" href="http://www.apache.org/licenses/LICENSE-2.0"> Apache License, Version 2.0 </a></li>
|
||||
|
@@ -11,7 +11,7 @@
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
@@ -30,13 +30,14 @@
|
||||
</head>
|
||||
|
||||
<body id="mainView" style="overflow-y:scroll">
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.en.js"></script>
|
||||
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
|
||||
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||
<script type="text/javascript" src="setting.vue.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
|
||||
<h4>Preferences</h4>
|
||||
<ul class="collapsible" data-collapsible="accordion">
|
||||
@@ -57,15 +58,17 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">Notification test</a><br></template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -104,18 +107,36 @@
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h4>Select theme</h4>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<label for="black">Black</label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<label for="white">White</label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
|
||||
<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom" value="custom" />
|
||||
<label for="custom">Custom</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<span>Black</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<span>White</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo"
|
||||
value="indigo" />
|
||||
<span>Indigo<span class="imas hide">(エンドレスナイト)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<span>Brown<span class="imas hide">(ビタースイート・タイム)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<span>Green<span class="imas hide">(ユースフルロマンス)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="blue" value="blue" />
|
||||
<span>Blue<span class="imas hide">(渚の花嫁)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom"
|
||||
value="custom" />
|
||||
<span>custom</span>
|
||||
</label>
|
||||
<div style="width:300px" id="sel-selector">
|
||||
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||
</div>
|
||||
@@ -131,10 +152,16 @@
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="About this theme..."></textarea></div>
|
||||
<h5>Color scheme</h5>
|
||||
<input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
|
||||
<label for="dark">Dark</label>
|
||||
<input class="with-gap" name="direction" type="radio" id="light" value="light" />
|
||||
<label for="light">Light</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||
checked="true" />
|
||||
<span>Dark</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>Background of components
|
||||
@@ -167,12 +194,12 @@
|
||||
</div>
|
||||
<button class="btn-large waves-effect" onclick="customComp()">Change</button> <button
|
||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Delete</button><br><br>
|
||||
<input type="text" style="width:300px" id="custom_json" class="materialize-textarea"
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
|
||||
placeholder="JSON style" readonly><br>
|
||||
Share this code with other TheDesk. Do not share this code with MiAS.
|
||||
<h4>Import of custom themes</h4>
|
||||
Get more themes on <a href="https://assets.msky.cafe/" target="_blank">MiAS</a><br>
|
||||
<input type="text" style="width:300px" id="custom_import" class="materialize-textarea"
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
|
||||
placeholder="JSON/JSON5 style">
|
||||
<button class="btn waves-effect" onclick="customImp()">Import</button><br>
|
||||
</li>
|
||||
@@ -185,13 +212,15 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -230,14 +259,15 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span></label>
|
||||
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||
</template>
|
||||
</template>
|
||||
@@ -305,20 +335,38 @@
|
||||
<div class="collapsible-body">
|
||||
<h5>NowPlaying Provider(Windows)</h5>
|
||||
macOS and Linux are not supported. AIMP and iTunes were checked by developer. <br>CAD:foobar2000, MusicBee,J. River Media Center, Media Jukebox<br>WLM:Last.fm Client, TTPlayer, OpenPandora, Zune.<br> For foobar2000, <a href="http://poiru.github.com/foo-cad/">foo_cad plugin</a> is required. And MusicBee requires CAD.<br>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
|
||||
<label for="aimp">AIMP</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes" value="ITUNES" />
|
||||
<label for="itunes">iTunes</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="npmm" value="MEDIAMONKEY" />
|
||||
<label for="npmm">MediaMonkey</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="winamp" value="WINAMP" />
|
||||
<label for="winamp">Winamp</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wmp" value="WMP" />
|
||||
<label for="wmp">WMP</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
|
||||
<label for="wlm">WLM</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
|
||||
<label for="cad">CAD</label><br><br>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
|
||||
<span>AIMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes"
|
||||
value="ITUNES" />
|
||||
<span>iTunes</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="npmm"
|
||||
value="MEDIAMONKEY" />
|
||||
<span>MediaMonkey</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="winamp"
|
||||
value="WINAMP" />
|
||||
<span>Winamp</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wmp" value="WMP" />
|
||||
<span>WMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
|
||||
<span>WLM</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
|
||||
<span>CAD</span>
|
||||
</label>
|
||||
<br><br>
|
||||
Click <i class="material-icons" style="font-size:24px;">music_note</i>icon to NowPlaying<br>
|
||||
<h5>Account Connection</h5>
|
||||
TheDesk save your data on thedesk.top server.<br>
|
||||
@@ -330,19 +378,26 @@
|
||||
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
|
||||
class="fa fa-spotify left"></i>Disconnect</a>
|
||||
<h5>Edit a template</h5>
|
||||
<br>
|
||||
<h5>@@templateedit@@</h5>
|
||||
@@templateeditwarn@@<br>
|
||||
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||
{url}</textarea><br>
|
||||
Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify<br>
|
||||
macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}<br>
|
||||
Windows:{song}:Song name/{album}:Album name/{artist}:Artist name<br>
|
||||
@@template1@@<br>
|
||||
@@template2@@<br>
|
||||
@@template3@@<br>
|
||||
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">Save</button>
|
||||
<h5>Attach an Artwork of Spotify</h5>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes" value="yes" />
|
||||
<label for="awk_yes">Yes</label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no" value="no" />
|
||||
<label for="awk_no">No</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||
value="yes" />
|
||||
<span>Yes</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||
value="no" />
|
||||
<span>No</span>
|
||||
</label>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
@@ -397,8 +452,6 @@
|
||||
以下Markdownに対応したインスタンスのみ。
|
||||
<br>
|
||||
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||
<li>Shift+Enter:全角スペースを入れて改行</li>
|
||||
<li>Shift+Space:ゼロ幅スペース</li>
|
||||
以下アスタルテにログインしている場合のみ
|
||||
<br>
|
||||
<li>Ctrl+R:
|
||||
@@ -439,6 +492,7 @@
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
@@ -76,9 +76,9 @@
|
||||
font-size: 200%;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||
<!--a href="update.html">Reload</a-->
|
||||
@@ -135,9 +135,6 @@
|
||||
$("#skipper").toggleClass("show");
|
||||
}
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
//var shell = electron.shell;
|
||||
verck();
|
||||
function update(sel) {
|
||||
$("#box").toggleClass("show");
|
||||
@@ -145,8 +142,7 @@
|
||||
$("#dlnow").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("show");
|
||||
$("#prog").text("");
|
||||
var remote = electron.remote;
|
||||
var bit = process.arch;
|
||||
var bit = localStorage.getItem("bit");
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
@@ -186,26 +182,25 @@
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
}
|
||||
ipc.send('download-btn', [url, file]);
|
||||
postMessage(["downloadButton", [url, file]], "*")
|
||||
});
|
||||
|
||||
}
|
||||
function quit() {
|
||||
ipc.send('quit', 'go');
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
ipc.on('prog', function (event, arg) {
|
||||
function updateProg(arg) {
|
||||
console.log(arg);
|
||||
$(".determinate").css("width",arg*100+"%");
|
||||
$(".determinate").css("width", arg * 100 + "%");
|
||||
$("#prog").text(Math.floor(arg * 100) + "%");
|
||||
})
|
||||
ipc.on('mess', function (event, arg) {
|
||||
}
|
||||
function updateMess(arg) {
|
||||
console.log(arg);
|
||||
$("#prog").text(arg);
|
||||
})
|
||||
}
|
||||
function verck() {
|
||||
var remote = electron.remote;
|
||||
var platform = remote.process.platform;
|
||||
var bit = process.arch;
|
||||
var platform = localStorage.getItem("platform");
|
||||
var bit = localStorage.getItem("bit");
|
||||
if (platform == "win32") {
|
||||
$('.windows').removeClass("hide")
|
||||
} else if (platform == "linux") {
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
@@ -74,10 +74,11 @@
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ja.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false;
|
||||
</script>
|
||||
@@ -99,10 +100,15 @@
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
チェックを外すとコード貼り付けをスキップできます。(<u>Mastodon</u>にWindowsやmacOSからログインする場合)失敗する場合はチェックを入れてください。<br>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<label for="linux">コードセットアップ</label><br>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<label for="misskey">Misskeyとしてログイン</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>コードセットアップ</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>Misskeyとしてログイン</span>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<title>TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
|
||||
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
@@ -25,9 +25,9 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ja.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/blurhash.js"></script>
|
||||
@@ -35,8 +35,9 @@
|
||||
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var ver = "Usamin (18.5.0)";
|
||||
var ver = "Usamin (18.6.6)";
|
||||
//betaを入れるとバージョンチェックしない
|
||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
|
||||
//var ver="beta";
|
||||
@@ -161,15 +162,15 @@
|
||||
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="画像に制限を付与"
|
||||
onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button"
|
||||
data-activates='dropdown1' id="vis-icon">public</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-trigger" data-target="dropdown1"
|
||||
id="vis-icon">public</i>
|
||||
<a class="waves-effect gray" id="cw" onclick="cw()" title="コンテンツワーニング(トゥートを表示する前にメッセージで隠す)">CW</a>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
|
||||
onclick="fileselect()" title="ファイルを選択">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
|
||||
title="絵文字を挿入">tag_faces</i>
|
||||
<i class="waves-effect gray material-icons dropdown-button"
|
||||
data-activates='dropdown2'>more_vert</i>
|
||||
<i class="waves-effect gray material-icons dropdown-trigger"
|
||||
data-target="dropdown2">more_vert</i>
|
||||
<i class="material-icons nex gray waves-effect" title="トゥートボックスのクリア(Ctrl+Shit+C)"
|
||||
data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
</div>
|
||||
@@ -190,7 +191,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 公開範囲 Dropdown Structure -->
|
||||
<ul id='dropdown1' class='dropdown-content'>
|
||||
<ul id="dropdown1" class="dropdown-content">
|
||||
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">公開範囲指定
|
||||
</li>
|
||||
<li>
|
||||
@@ -213,10 +214,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<!-- その他 Dropdown Structure -->
|
||||
<ul id='dropdown2' class='dropdown-content'>
|
||||
<li>
|
||||
<a onclick="adobe()">Adobeフォトエディタ</a>
|
||||
</li>
|
||||
<ul id="dropdown2" class="dropdown-content">
|
||||
<li>
|
||||
<a onclick="nowplaying('spotify');">NowPlaying(Spotify)</a>
|
||||
</li>
|
||||
@@ -236,9 +234,9 @@
|
||||
<!--END hidden area-->
|
||||
</div>
|
||||
<div id="toot-btn-field">
|
||||
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
|
||||
<button class="btn waves-effect unmize toot-btn-group" onclick="post()"
|
||||
id="toot-post-btn">トゥート</button>
|
||||
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()"
|
||||
<button class="btn waves-effect darken-3 unmize hide toot-btn-group" onclick="sec()"
|
||||
id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon"
|
||||
title="セカンダリートゥート">lock_open</i></button>
|
||||
</div>
|
||||
@@ -311,10 +309,14 @@
|
||||
<input type="text" class="mastodon-choice" placeholder="選択肢2">
|
||||
<input type="text" class="mastodon-choice" placeholder="選択肢3">
|
||||
<input type="text" class="mastodon-choice" placeholder="選択肢4">
|
||||
<input type="checkbox" class="filled-in" id="poll-multiple" value="1" />
|
||||
<label for="poll-multiple">複数選択を許可</label><br>
|
||||
<input type="checkbox" class="filled-in" id="poll-until" value="1" />
|
||||
<label for="poll-until">投票するまで票数を隠す</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="poll-multiple" value="1" />
|
||||
<span>複数選択を許可</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="poll-until" value="1" />
|
||||
<span>投票するまで票数を隠す</span>
|
||||
</label>
|
||||
<input type="number" style="width:50px" id="days_poll" placeholder="d" value="0">日
|
||||
<input type="number" style="width:50px" id="hours_poll" placeholder="h" value="0">時間
|
||||
<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="6">分
|
||||
@@ -325,7 +327,7 @@
|
||||
<!-- Modal Structure Tootdata-->
|
||||
<div id="tootmodal" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
<ul class="collapsible" data-collapsible="accordion" id="det-col">
|
||||
<ul class="collapsible" id="det-col">
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">people_outline</i>これより後のLocal TL(言及確認)
|
||||
@@ -474,46 +476,46 @@
|
||||
</div>
|
||||
<div class="his-float" id="his-float-timeline">
|
||||
<div id="my-data-nav">
|
||||
<ul class="custom-tabs transparent">
|
||||
<li class="custom-tab col my-data-width active-back column-first">
|
||||
<ul class="tabs transparent">
|
||||
<li class="tab col my-data-width active-back column-first">
|
||||
<a go="#his-tl" title="タイムライン"><i class="material-icons">timeline</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width">
|
||||
<li class="tab col my-data-width">
|
||||
<a go="#his-follow-list" title="フォロー"><i class="material-icons">people</i>→</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width">
|
||||
<li class="tab col my-data-width">
|
||||
<a go="#his-follower-list" title="フォロワー"><i
|
||||
class="material-icons">people</i>←</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<li class="tab col my-data-width only-his-data">
|
||||
<a go="#his-action" title="他のアカウントで操作"><i
|
||||
class="material-icons">account_box</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<li class="tab col my-data-width only-his-data">
|
||||
<a go="#his-list" title="リスト"><i class="material-icons">list</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-fav-list" title="お気に入り登録"><i class="material-icons">star</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list" title="ブロック"><i class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list" title="ブロック"><i
|
||||
class="material-icons">voice_over_off</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-domain-list" title="ドメインブロック"><i
|
||||
class="material-icons">language</i><i class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-prof-list" title="プロフィール編集"><i class="material-icons">create</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-request-list" title="フォローリクエスト"><i
|
||||
class="material-icons">how_to_reg</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-follow-recom-list" title="おすすめ"><i
|
||||
class="material-icons">recent_actors</i></a>
|
||||
</li>
|
||||
@@ -621,7 +623,7 @@
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn"
|
||||
onclick="follow()">フォロー</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn"
|
||||
onclick="mute()">ミュート</a>
|
||||
onclick="muteDo()">ミュート</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn"
|
||||
onclick="block()">ブロック</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">Close</a>
|
||||
@@ -675,26 +677,19 @@
|
||||
<a href="https://thedesk.top" target="_blank">HP</a><br>
|
||||
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
|
||||
<br>
|
||||
<div id="release-Usamin_18-5-0" class="release-do" style="display:none; ">
|
||||
<div id="release-Usamin_18-6-6" class="release-do" style="display:none; ">
|
||||
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
|
||||
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
|
||||
Pixiv Fanboxでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note Usamin (18.5.0)</h5>
|
||||
・macOSでのアップデータについて修正。<br>
|
||||
・本来不要なところにフォロリク許可画面が出るようになっていたのを修正。<br>
|
||||
・不明なメディアに対するリンクを表示します。<br>
|
||||
・PleromaでのVideoの挙動について修正しました。<br>
|
||||
・Patreonでの支援を開始しました。<br>
|
||||
・アスタルテの新しいBBCodeに対応しました。<br>
|
||||
・タイムライン下の方が切れてしまう不具合の修正。<br>
|
||||
・通知をユーザーごとにフィルターする機能(最新のMastodonのみ)。<br>
|
||||
・Electron 5.0.1になりました。<br>
|
||||
<br>
|
||||
<h5>ThinkingDeskラベル</h5>
|
||||
<img src="../../img/thinkingdesk.png" style="width:100px;" draggable="false"><br>
|
||||
手作りマットラベル。貼ってはがせる。300円なのでポイントの余りでどうぞ。<br>
|
||||
<a href="https://item.mercari.com/jp/m822743330" target="_blank">メルカリ</a>へ。
|
||||
<h5>Release Note Usamin (18.6.6)</h5>
|
||||
・設定に関するバグを修正<br>
|
||||
・ブーストのボタンの色を青に変更<br>
|
||||
・テーマごとに「トゥート」ボタンの色が変わる<br>
|
||||
・新テーマ(Blue:渚の花嫁)を追加<br>
|
||||
・トゥート下のアクションボタンのスペースなどを変更<br>
|
||||
・翻訳したときに結果を全て表示するよう変更<br>
|
||||
・knzk.meとbesr-friends.chatをサポートインスタンスから削除
|
||||
</div>
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
@@ -707,8 +702,8 @@
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
Pixiv FANBOXで支援
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2"
|
||||
href="https://www.patreon.com/cutls" target="_blank">
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2" href="https://www.patreon.com/cutls"
|
||||
target="_blank">
|
||||
Patreonで支援
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
@@ -881,20 +876,34 @@
|
||||
<input type="hidden" id="filter-edit-id">
|
||||
<input type="text" style="width:150px" id="filter-add-word" placeholder="フィルターワード"><br>
|
||||
適応範囲<br>
|
||||
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
|
||||
<label for="home_filter">ホーム</label>
|
||||
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
|
||||
<label for="local_filter">ローカル</label>
|
||||
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
|
||||
<label for="notf_filter">通知</label>
|
||||
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
|
||||
<label for="conv_filter">会話</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
|
||||
<span>ホーム</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
|
||||
<span>ローカル</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
|
||||
<span>通知</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
|
||||
<span>会話</span>
|
||||
</label>
|
||||
オプション<br>
|
||||
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
|
||||
<label for="wholeword_filter">単語マッチ</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
|
||||
<span>単語マッチ</span>
|
||||
</label>
|
||||
<br>
|
||||
<span class="sml">非ラテン系の文字列では「単語マッチ」は推奨されません。</span><br>
|
||||
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
|
||||
<label for="except_filter">除外</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
|
||||
<span>除外</span>
|
||||
</label>
|
||||
<br>
|
||||
<span class="sml">「除外」時マッチしたトゥートは非可逆的に除外され、削除後も閲覧できません。</span><br>
|
||||
有効期限(あと)<span class="sml">未指定(または0分)で「無期限」になります。<b>仕様上数値の正確性を保証できません。</b></span><br><br>
|
||||
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">日
|
||||
@@ -937,7 +946,7 @@
|
||||
<div id="bottom" class="reverse">
|
||||
<div class="leftside reverse">
|
||||
<div id="dambox">
|
||||
<button id="posttgl" class="btn waves-effect indigo"
|
||||
<button id="posttgl" class="btn waves-effect"
|
||||
style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
|
||||
<i class="material-icons"
|
||||
style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>トゥート
|
||||
@@ -990,6 +999,56 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--Support me-->
|
||||
<div id="support-btm" class="z-depth-4 hide">
|
||||
<div id="support-btm-ja">
|
||||
<h5>ご支援いただけませんか?</h5>
|
||||
(これは支援の有無に関わらず定期的に出ます。)<br>
|
||||
あなたのMastodon, Misskeyライフを邪魔してしまって申し訳ありません。<br>
|
||||
乞食のようなマネをしてご支援をお願いするのもどうかと思いますが、少々お時間をください。<br>
|
||||
<br>
|
||||
あなたはMastodon, MisskeyクライアントにTheDeskを選びました。これは奇跡的なことです。今考えればブラウザからアクセスした方が良かったのではと感じることかと存じます。<br>
|
||||
それでも、あなたはTheDeskを使っています。<br>
|
||||
TheDeskは2018年1月13日に最初のバージョンが出ました。それから圧倒的な機能数でゴリ押しするクライアントになっています。<br>
|
||||
新機能に追従を図るためのモチベーションもさることながら、安全対策上TheDeskは開発者の緊急メッセージを表示できる機能が備わっており、開発者が送信ボタンを押すとすべてのTheDeskユーザーに通知が行くようになっています。<br>
|
||||
かつてこれによってバグ報告を行い、使用を自粛していただくこともありました。<br>
|
||||
そのような機能を実装するために、Mastodonなどのインスタンスを運営するのと同じく有料のサーバーを運用しています。<br>
|
||||
<b>全てのユーザーが安心してTheDeskを使っていただける環境のため</b>にも、ぜひご支援をご検討ください。<br>
|
||||
<b>TheDeskは営利目的ではないため、有料機能や広告は一切ありません。<br>皆様のあたたかいご支援のもとで製作されています。</b>
|
||||
</div>
|
||||
<div id="support-btm-en" class="hide">
|
||||
<h5>Support me</h5>
|
||||
It may disturb your Mastodon life, but your support is required to keep TheDesk awesome!<br>
|
||||
<b>TheDeskは営利目的ではないため、有料機能や広告は一切ありません。<br>皆様のあたたかいご支援のもとで製作されています。</b>
|
||||
</div>
|
||||
<div id="support-btm-middle">
|
||||
<h5>月額支援(大歓迎)</h5>
|
||||
<a class="btn-share btn waves-effect waves-light red lighten-2"
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
Pixiv FANBOXで支援
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2" href="https://www.patreon.com/cutls"
|
||||
target="_blank">
|
||||
Patreonで支援
|
||||
</a>
|
||||
</div>
|
||||
<div id="support-btm-right">
|
||||
<h5>一度限りの支援(もちろん歓迎)</h5>
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
Amazonほしいものリスト
|
||||
</a>
|
||||
<br>
|
||||
<a href="mailto:web-pro@cutls.com"
|
||||
target="_blank">web-pro@cutls.com</a>にAmazonギフトカードを送る<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
</div>
|
||||
<div id="support-btm-close">
|
||||
<button class="btn waves-effect" style="width:100%;" onclick="closeSupport()"
|
||||
id="add-filter-btn">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--左下メッセージ-->
|
||||
<div id="message">
|
||||
</div>
|
||||
|
@@ -841,13 +841,6 @@ SOFTWARE.<br>
|
||||
<h5>itunes-nowplaying-mac</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/rinsuki/itunes-nowplaying-mac" target="_blank">rinsuki/itunes-nowplaying-mac</a><br>
|
||||
MIT LICENSE
|
||||
<h5>Adobe Creative SDK</h5>
|
||||
Please visit:
|
||||
<a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/acom/jp/legal/servicetou/Creative_SDK_API_and_Developer_Additional_TOU-ja_JP-20140602_1513.pdf" target="_blank">
|
||||
This file
|
||||
<i class="material-icons">
|
||||
picture_as_pdf
|
||||
</i></a>
|
||||
<h5>Google Fonts</h5>
|
||||
<ul>
|
||||
<li>Open Sans:<a target="_blank" href="http://www.apache.org/licenses/LICENSE-2.0"> Apache License, Version 2.0 </a></li>
|
||||
|
@@ -11,7 +11,7 @@
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
@@ -30,13 +30,14 @@
|
||||
</head>
|
||||
|
||||
<body id="mainView" style="overflow-y:scroll">
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ja.js"></script>
|
||||
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
|
||||
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||
<script type="text/javascript" src="setting.vue.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
|
||||
<h4>設定</h4>
|
||||
<ul class="collapsible" data-collapsible="accordion">
|
||||
@@ -57,15 +58,17 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">通知テスト</a><br></template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -104,18 +107,36 @@
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h4>テーマの選択</h4>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<label for="black">Black</label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<label for="white">White</label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
|
||||
<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom" value="custom" />
|
||||
<label for="custom">Custom</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<span>Black</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<span>White</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo"
|
||||
value="indigo" />
|
||||
<span>Indigo<span class="imas hide">(エンドレスナイト)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<span>Brown<span class="imas hide">(ビタースイート・タイム)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<span>Green<span class="imas hide">(ユースフルロマンス)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="blue" value="blue" />
|
||||
<span>Blue<span class="imas hide">(渚の花嫁)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom"
|
||||
value="custom" />
|
||||
<span>custom</span>
|
||||
</label>
|
||||
<div style="width:300px" id="sel-selector">
|
||||
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||
</div>
|
||||
@@ -131,10 +152,16 @@
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="説明..."></textarea></div>
|
||||
<h5>色の系統</h5>
|
||||
<input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
|
||||
<label for="dark">Dark</label>
|
||||
<input class="with-gap" name="direction" type="radio" id="light" value="light" />
|
||||
<label for="light">Light</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||
checked="true" />
|
||||
<span>Dark</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>補助要素に使われる背景色
|
||||
@@ -167,12 +194,12 @@
|
||||
</div>
|
||||
<button class="btn-large waves-effect" onclick="customComp()">変更</button> <button
|
||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">削除</button><br><br>
|
||||
<input type="text" style="width:300px" id="custom_json" class="materialize-textarea"
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
|
||||
placeholder="JSON style" readonly><br>
|
||||
このコードは他のTheDeskなどとシェアできます。このコードをMiASに貼ることはご遠慮ください。詳細:<a href="https://thedesk.top/mias.html" target="_blank">テーマ互換性</a>
|
||||
<h4>カスタムテーマのインポート</h4>
|
||||
<a href="https://assets.msky.cafe/" target="_blank">MiAS</a>上の80を超えるテーマを張り付けることもできます。<br>
|
||||
<input type="text" style="width:300px" id="custom_import" class="materialize-textarea"
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
|
||||
placeholder="JSON/JSON5 style">
|
||||
<button class="btn waves-effect" onclick="customImp()">インポート</button><br>
|
||||
</li>
|
||||
@@ -185,13 +212,15 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -230,14 +259,15 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span></label>
|
||||
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||
</template>
|
||||
</template>
|
||||
@@ -305,20 +335,38 @@
|
||||
<div class="collapsible-body">
|
||||
<h5>NowPlayingのソース(Windows)</h5>
|
||||
macOSやLinuxでは動作しません。AIMPとiTunes以外未検証です。<br>foobar2000, MusicBee,J. River Media Center, Media JukeboxはCADを、Last.fm Client, TTPlayer, OpenPandora, ZuneはWLMを選んでください。<br>ただし、foobar2000は<a href="http://poiru.github.com/foo-cad/">foo_cad plugin</a>が必要です。MusicBeeもCADを有効にする必要があります。<br>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
|
||||
<label for="aimp">AIMP</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes" value="ITUNES" />
|
||||
<label for="itunes">iTunes</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="npmm" value="MEDIAMONKEY" />
|
||||
<label for="npmm">MediaMonkey</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="winamp" value="WINAMP" />
|
||||
<label for="winamp">Winamp</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wmp" value="WMP" />
|
||||
<label for="wmp">WMP</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
|
||||
<label for="wlm">WLM</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
|
||||
<label for="cad">CAD</label><br><br>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
|
||||
<span>AIMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes"
|
||||
value="ITUNES" />
|
||||
<span>iTunes</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="npmm"
|
||||
value="MEDIAMONKEY" />
|
||||
<span>MediaMonkey</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="winamp"
|
||||
value="WINAMP" />
|
||||
<span>Winamp</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wmp" value="WMP" />
|
||||
<span>WMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
|
||||
<span>WLM</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
|
||||
<span>CAD</span>
|
||||
</label>
|
||||
<br><br>
|
||||
<i class="material-icons" style="font-size:24px;">music_note</i>ボタンから簡単にNowPlayingができます。<br>
|
||||
<h5>アカウントの連携</h5>
|
||||
APIの性質上,thedesk.topへアクセスします。<br>
|
||||
@@ -330,19 +378,26 @@
|
||||
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
|
||||
class="fa fa-spotify left"></i>切断</a>
|
||||
<h5>テンプレートの編集</h5>
|
||||
以下を編集してテンプレートを変更できます。<br>
|
||||
<h5>@@templateedit@@</h5>
|
||||
@@templateeditwarn@@<br>
|
||||
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||
{url}</textarea><br>
|
||||
Spotify:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/{url}:各曲のSpotifyのURL<br>
|
||||
macOS:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/作曲家{composer}/サンプルレート{hz}/ビットレート{bitRate}/ジャンル{genre}<br>
|
||||
Windows:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名<br>
|
||||
@@template1@@<br>
|
||||
@@template2@@<br>
|
||||
@@template3@@<br>
|
||||
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">設定</button>
|
||||
<h5>アルバムアートワークを添付する(Spotify/Windows)</h5>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes" value="yes" />
|
||||
<label for="awk_yes">はい</label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no" value="no" />
|
||||
<label for="awk_no">いいえ</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||
value="yes" />
|
||||
<span>はい</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||
value="no" />
|
||||
<span>いいえ</span>
|
||||
</label>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
@@ -397,8 +452,6 @@
|
||||
以下Markdownに対応したインスタンスのみ。
|
||||
<br>
|
||||
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||
<li>Shift+Enter:全角スペースを入れて改行</li>
|
||||
<li>Shift+Space:ゼロ幅スペース</li>
|
||||
以下アスタルテにログインしている場合のみ
|
||||
<br>
|
||||
<li>Ctrl+R:
|
||||
@@ -439,6 +492,7 @@
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
@@ -76,9 +76,9 @@
|
||||
font-size: 200%;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||
<!--a href="update.html">Reload</a-->
|
||||
@@ -135,9 +135,6 @@
|
||||
$("#skipper").toggleClass("show");
|
||||
}
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
//var shell = electron.shell;
|
||||
verck();
|
||||
function update(sel) {
|
||||
$("#box").toggleClass("show");
|
||||
@@ -145,8 +142,7 @@
|
||||
$("#dlnow").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("show");
|
||||
$("#prog").text("");
|
||||
var remote = electron.remote;
|
||||
var bit = process.arch;
|
||||
var bit = localStorage.getItem("bit");
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
@@ -186,26 +182,25 @@
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
}
|
||||
ipc.send('download-btn', [url, file]);
|
||||
postMessage(["downloadButton", [url, file]], "*")
|
||||
});
|
||||
|
||||
}
|
||||
function quit() {
|
||||
ipc.send('quit', 'go');
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
ipc.on('prog', function (event, arg) {
|
||||
function updateProg(arg) {
|
||||
console.log(arg);
|
||||
$(".determinate").css("width",arg*100+"%");
|
||||
$(".determinate").css("width", arg * 100 + "%");
|
||||
$("#prog").text(Math.floor(arg * 100) + "%");
|
||||
})
|
||||
ipc.on('mess', function (event, arg) {
|
||||
}
|
||||
function updateMess(arg) {
|
||||
console.log(arg);
|
||||
$("#prog").text(arg);
|
||||
})
|
||||
}
|
||||
function verck() {
|
||||
var remote = electron.remote;
|
||||
var platform = remote.process.platform;
|
||||
var bit = process.arch;
|
||||
var platform = localStorage.getItem("platform");
|
||||
var bit = localStorage.getItem("bit");
|
||||
if (platform == "win32") {
|
||||
$('.windows').removeClass("hide")
|
||||
} else if (platform == "linux") {
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
@@ -74,10 +74,11 @@
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.@@lang@@.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false;
|
||||
</script>
|
||||
@@ -99,10 +100,15 @@
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
@@codesetupwarn@@<br>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<label for="linux">@@codesetup@@</label><br>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<label for="misskey">@@thisismisskey@@</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>@@codesetup@@</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>@@thisismisskey@@</span>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<title>TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
|
||||
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
@@ -25,9 +25,9 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.@@lang@@.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/blurhash.js"></script>
|
||||
@@ -35,6 +35,7 @@
|
||||
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var ver = "@@versionLetter@@";
|
||||
//betaを入れるとバージョンチェックしない
|
||||
@@ -161,15 +162,15 @@
|
||||
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="@@nsfwDes@@"
|
||||
onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button"
|
||||
data-activates='dropdown1' id="vis-icon">public</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-trigger" data-target="dropdown1"
|
||||
id="vis-icon">public</i>
|
||||
<a class="waves-effect gray" id="cw" onclick="cw()" title="@@cwDes@@">CW</a>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
|
||||
onclick="fileselect()" title="@@selfile@@">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
|
||||
title="@@insertEmoji@@">tag_faces</i>
|
||||
<i class="waves-effect gray material-icons dropdown-button"
|
||||
data-activates='dropdown2'>more_vert</i>
|
||||
<i class="waves-effect gray material-icons dropdown-trigger"
|
||||
data-target="dropdown2">more_vert</i>
|
||||
<i class="material-icons nex gray waves-effect" title="@@clearToot@@(Ctrl+Shit+C)"
|
||||
data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
</div>
|
||||
@@ -190,7 +191,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 公開範囲 Dropdown Structure -->
|
||||
<ul id='dropdown1' class='dropdown-content'>
|
||||
<ul id="dropdown1" class="dropdown-content">
|
||||
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">@@selectVis@@
|
||||
</li>
|
||||
<li>
|
||||
@@ -213,10 +214,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<!-- その他 Dropdown Structure -->
|
||||
<ul id='dropdown2' class='dropdown-content'>
|
||||
<li>
|
||||
<a onclick="adobe()">@@adobephoto@@</a>
|
||||
</li>
|
||||
<ul id="dropdown2" class="dropdown-content">
|
||||
<li>
|
||||
<a onclick="nowplaying('spotify');">@@NPSpotify@@</a>
|
||||
</li>
|
||||
@@ -236,9 +234,9 @@
|
||||
<!--END hidden area-->
|
||||
</div>
|
||||
<div id="toot-btn-field">
|
||||
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
|
||||
<button class="btn waves-effect unmize toot-btn-group" onclick="post()"
|
||||
id="toot-post-btn">@@toot@@</button>
|
||||
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()"
|
||||
<button class="btn waves-effect darken-3 unmize hide toot-btn-group" onclick="sec()"
|
||||
id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon"
|
||||
title="@@sectoot@@">lock_open</i></button>
|
||||
</div>
|
||||
@@ -311,10 +309,14 @@
|
||||
<input type="text" class="mastodon-choice" placeholder="@@choice@@2">
|
||||
<input type="text" class="mastodon-choice" placeholder="@@choice@@3">
|
||||
<input type="text" class="mastodon-choice" placeholder="@@choice@@4">
|
||||
<input type="checkbox" class="filled-in" id="poll-multiple" value="1" />
|
||||
<label for="poll-multiple">@@pollmulti@@</label><br>
|
||||
<input type="checkbox" class="filled-in" id="poll-until" value="1" />
|
||||
<label for="poll-until">@@polluntil@@</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="poll-multiple" value="1" />
|
||||
<span>@@pollmulti@@</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="poll-until" value="1" />
|
||||
<span>@@polluntil@@</span>
|
||||
</label>
|
||||
<input type="number" style="width:50px" id="days_poll" placeholder="d" value="0">@@days@@
|
||||
<input type="number" style="width:50px" id="hours_poll" placeholder="h" value="0">@@hours@@
|
||||
<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="6">@@mins@@
|
||||
@@ -325,7 +327,7 @@
|
||||
<!-- Modal Structure Tootdata-->
|
||||
<div id="tootmodal" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
<ul class="collapsible" data-collapsible="accordion" id="det-col">
|
||||
<ul class="collapsible" id="det-col">
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">people_outline</i>@@afterLTL@@
|
||||
@@ -474,46 +476,46 @@
|
||||
</div>
|
||||
<div class="his-float" id="his-float-timeline">
|
||||
<div id="my-data-nav">
|
||||
<ul class="custom-tabs transparent">
|
||||
<li class="custom-tab col my-data-width active-back column-first">
|
||||
<ul class="tabs transparent">
|
||||
<li class="tab col my-data-width active-back column-first">
|
||||
<a go="#his-tl" title="@@timeline@@"><i class="material-icons">timeline</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width">
|
||||
<li class="tab col my-data-width">
|
||||
<a go="#his-follow-list" title="@@follow@@"><i class="material-icons">people</i>→</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width">
|
||||
<li class="tab col my-data-width">
|
||||
<a go="#his-follower-list" title="@@follower@@"><i
|
||||
class="material-icons">people</i>←</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<li class="tab col my-data-width only-his-data">
|
||||
<a go="#his-action" title="@@operateOtherAcct@@"><i
|
||||
class="material-icons">account_box</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<li class="tab col my-data-width only-his-data">
|
||||
<a go="#his-list" title="@@list@@"><i class="material-icons">list</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-fav-list" title="@@favRegist@@"><i class="material-icons">star</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list" title="@@blocks@@"><i class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list" title="@@blocks@@"><i
|
||||
class="material-icons">voice_over_off</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-domain-list" title="@@domainBlock@@"><i
|
||||
class="material-icons">language</i><i class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-prof-list" title="@@editProf@@"><i class="material-icons">create</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-request-list" title="@@followReq@@"><i
|
||||
class="material-icons">how_to_reg</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-follow-recom-list" title="@@frc@@"><i
|
||||
class="material-icons">recent_actors</i></a>
|
||||
</li>
|
||||
@@ -621,7 +623,7 @@
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn"
|
||||
onclick="follow()">@@follow@@</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn"
|
||||
onclick="mute()">@@mute@@</a>
|
||||
onclick="muteDo()">@@mute@@</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn"
|
||||
onclick="block()">@@block@@</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">@@close@@</a>
|
||||
@@ -675,26 +677,19 @@
|
||||
<a href="https://thedesk.top" target="_blank">HP</a><br>
|
||||
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
|
||||
<br>
|
||||
<div id="release-Usamin_18-5-0" class="release-do" style="display:none; ">
|
||||
<div id="release-Usamin_18-6-6" class="release-do" style="display:none; ">
|
||||
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
|
||||
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
|
||||
Pixiv Fanboxでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note Usamin (18.5.0)</h5>
|
||||
・アップデータについて修正。<br>
|
||||
・本来不要なところにフォロリク許可画面が出るようになっていたのを修正。<br>
|
||||
・不明なメディアに対するリンクを表示します。<br>
|
||||
・PleromaでのVideoの挙動について修正しました。<br>
|
||||
・Patreonでの支援を開始しました。<br>
|
||||
・アスタルテの新しいBBCodeに対応しました。<br>
|
||||
・タイムライン下の方が切れてしまう不具合の修正。<br>
|
||||
・通知をユーザーごとにフィルターする機能(最新のMastodonのみ)。<br>
|
||||
・Electron 5.0.1になりました。<br>
|
||||
<br>
|
||||
<h5>ThinkingDeskラベル</h5>
|
||||
<img src="../../img/thinkingdesk.png" style="width:100px;" draggable="false"><br>
|
||||
手作りマットラベル。貼ってはがせる。300円なのでポイントの余りでどうぞ。<br>
|
||||
<a href="https://item.mercari.com/jp/m822743330" target="_blank">メルカリ</a>へ。
|
||||
<h5>Release Note Usamin (18.6.6)</h5>
|
||||
・設定に関するバグを修正<br>
|
||||
・ブーストのボタンの色を青に変更<br>
|
||||
・テーマごとに「トゥート」ボタンの色が変わる<br>
|
||||
・新テーマ(Blue:渚の花嫁)を追加<br>
|
||||
・トゥート下のアクションボタンのスペースなどを変更<br>
|
||||
・翻訳したときに結果を全て表示するよう変更<br>
|
||||
・knzk.meとbesr-friends.chatをサポートインスタンスから削除
|
||||
</div>
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
@@ -707,8 +702,8 @@
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
@@PixivSupport@@
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2"
|
||||
href="https://www.patreon.com/cutls" target="_blank">
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2" href="https://www.patreon.com/cutls"
|
||||
target="_blank">
|
||||
@@PatreonSupport@@
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
@@ -881,20 +876,34 @@
|
||||
<input type="hidden" id="filter-edit-id">
|
||||
<input type="text" style="width:150px" id="filter-add-word" placeholder="@@filterWord@@"><br>
|
||||
@@degree@@<br>
|
||||
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
|
||||
<label for="home_filter">@@home@@</label>
|
||||
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
|
||||
<label for="local_filter">@@local@@</label>
|
||||
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
|
||||
<label for="notf_filter">@@notf@@</label>
|
||||
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
|
||||
<label for="conv_filter">@@conver@@</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
|
||||
<span>@@home@@</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
|
||||
<span>@@local@@</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
|
||||
<span>@@notf@@</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
|
||||
<span>@@conver@@</span>
|
||||
</label>
|
||||
@@option@@<br>
|
||||
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
|
||||
<label for="wholeword_filter">@@matchWord@@</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
|
||||
<span>@@matchWord@@</span>
|
||||
</label>
|
||||
<br>
|
||||
<span class="sml">@@warnMatchWord@@</span><br>
|
||||
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
|
||||
<label for="except_filter">@@except@@</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
|
||||
<span>@@except@@</span>
|
||||
</label>
|
||||
<br>
|
||||
<span class="sml">@@exceptWorn@@</span><br>
|
||||
@@avalableBefore@@<span class="sml">@@warnAvBefore@@<b>@@warnAvBefore2@@</b></span><br><br>
|
||||
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">@@days@@
|
||||
@@ -937,7 +946,7 @@
|
||||
<div id="bottom" class="reverse">
|
||||
<div class="leftside reverse">
|
||||
<div id="dambox">
|
||||
<button id="posttgl" class="btn waves-effect indigo"
|
||||
<button id="posttgl" class="btn waves-effect"
|
||||
style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
|
||||
<i class="material-icons"
|
||||
style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>@@toot@@
|
||||
@@ -990,6 +999,56 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--Support me-->
|
||||
<div id="support-btm" class="z-depth-4 hide">
|
||||
<div id="support-btm-ja">
|
||||
<h5>ご支援いただけませんか?</h5>
|
||||
(これは支援の有無に関わらず定期的に出ます。)<br>
|
||||
あなたのMastodon, Misskeyライフを邪魔してしまって申し訳ありません。<br>
|
||||
乞食のようなマネをしてご支援をお願いするのもどうかと思いますが、少々お時間をください。<br>
|
||||
<br>
|
||||
あなたはMastodon, MisskeyクライアントにTheDeskを選びました。これは奇跡的なことです。今考えればブラウザからアクセスした方が良かったのではと感じることかと存じます。<br>
|
||||
それでも、あなたはTheDeskを使っています。<br>
|
||||
TheDeskは2018年1月13日に最初のバージョンが出ました。それから圧倒的な機能数でゴリ押しするクライアントになっています。<br>
|
||||
新機能に追従を図るためのモチベーションもさることながら、安全対策上TheDeskは開発者の緊急メッセージを表示できる機能が備わっており、開発者が送信ボタンを押すとすべてのTheDeskユーザーに通知が行くようになっています。<br>
|
||||
かつてこれによってバグ報告を行い、使用を自粛していただくこともありました。<br>
|
||||
そのような機能を実装するために、Mastodonなどのインスタンスを運営するのと同じく有料のサーバーを運用しています。<br>
|
||||
<b>全てのユーザーが安心してTheDeskを使っていただける環境のため</b>にも、ぜひご支援をご検討ください。<br>
|
||||
<b>@@TheDeskDes@@</b>
|
||||
</div>
|
||||
<div id="support-btm-en" class="hide">
|
||||
<h5>Support me</h5>
|
||||
It may disturb your Mastodon life, but your support is required to keep TheDesk awesome!<br>
|
||||
<b>@@TheDeskDes@@</b>
|
||||
</div>
|
||||
<div id="support-btm-middle">
|
||||
<h5>@@monthly@@</h5>
|
||||
<a class="btn-share btn waves-effect waves-light red lighten-2"
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
@@PixivSupport@@
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2" href="https://www.patreon.com/cutls"
|
||||
target="_blank">
|
||||
@@PatreonSupport@@
|
||||
</a>
|
||||
</div>
|
||||
<div id="support-btm-right">
|
||||
<h5>@@once@@</h5>
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
@@AWLSupport@@
|
||||
</a>
|
||||
<br>
|
||||
@@SendAmazonGift1@@<a href="mailto:web-pro@cutls.com"
|
||||
target="_blank">web-pro@cutls.com</a>@@SendAmazonGift2@@<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
</div>
|
||||
<div id="support-btm-close">
|
||||
<button class="btn waves-effect" style="width:100%;" onclick="closeSupport()"
|
||||
id="add-filter-btn">@@close@@</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--左下メッセージ-->
|
||||
<div id="message">
|
||||
</div>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
"nsfwDes":"Mark media as sensitive",
|
||||
"cwDes":"Hide text behind warning",
|
||||
"selfile":"Attach..",
|
||||
"adobephoto":"Adobe Photo Editor",
|
||||
|
||||
"insertEmoji":"Emojis",
|
||||
"NPSpotify":"NowPlaying(Spotify)",
|
||||
"NPiTunes":"NowPlaying",
|
||||
@@ -113,7 +113,8 @@
|
||||
"AWLSupport":"Amazon Wish List",
|
||||
"SendAmazonGift1":"Give me Amazon Gift Card:",
|
||||
"SendAmazonGift2":"",
|
||||
"sendSushi":"Osushi.love: give me sushi",
|
||||
"monthly":"Monthly",
|
||||
"once":"Once",
|
||||
"local":"Local",
|
||||
"localMedia":"Local(Media)",
|
||||
"home":"Home",
|
||||
|
@@ -8,7 +8,6 @@
|
||||
"nsfwDes":"画像に制限を付与",
|
||||
"cwDes":"コンテンツワーニング(トゥートを表示する前にメッセージで隠す)",
|
||||
"selfile":"ファイルを選択",
|
||||
"adobephoto":"Adobeフォトエディタ",
|
||||
"insertEmoji":"絵文字を挿入",
|
||||
"NPSpotify":"NowPlaying(Spotify)",
|
||||
"NPiTunes":"NowPlaying",
|
||||
@@ -113,7 +112,8 @@
|
||||
"AWLSupport":"Amazonほしいものリスト",
|
||||
"SendAmazonGift1":"",
|
||||
"SendAmazonGift2":"にAmazonギフトカードを送る",
|
||||
"sendSushi":"Osushi.loveで寿司を贈る",
|
||||
"monthly":"月額支援(大歓迎)",
|
||||
"once":"一度限りの支援(もちろん歓迎)",
|
||||
"local":"ローカル",
|
||||
"localMedia":"ローカル(メディア)",
|
||||
"home":"ホーム",
|
||||
|
@@ -8,7 +8,6 @@
|
||||
"nsfwDes": "crwdns389:0crwdne389:0",
|
||||
"cwDes": "crwdns390:0crwdne390:0",
|
||||
"selfile": "crwdns391:0crwdne391:0",
|
||||
"adobephoto": "crwdns392:0crwdne392:0",
|
||||
"insertEmoji": "crwdns393:0crwdne393:0",
|
||||
"NPSpotify": "crwdns1880:0crwdne1880:0",
|
||||
"NPiTunes": "crwdns2404:0crwdne2404:0",
|
||||
|
@@ -1,5 +1,10 @@
|
||||
const fs = require("fs")
|
||||
const ver = "Usamin (18.5.0)"
|
||||
const readlineSync = require('readline-sync');
|
||||
let ver = readlineSync.question('version string (empty: default string)? ');
|
||||
if (!ver) {
|
||||
ver = "Usamin (18.6.6)"
|
||||
}
|
||||
console.log("Constructing view files " + ver + ": make sure to update package.json")
|
||||
const langs = ["ja", "en", "ps"]
|
||||
const langsh = ["日本語", "English", "Crowdin translate system(beta)"]
|
||||
const simples = ["acct", "index", "setting", "update", "setting"]
|
||||
|
@@ -11,7 +11,7 @@
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
@@comment-end@@
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
@@ -30,13 +30,14 @@
|
||||
</head>
|
||||
|
||||
<body id="mainView" style="overflow-y:scroll">
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.@@lang@@.js"></script>
|
||||
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
|
||||
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||
<script type="text/javascript" src="setting.vue.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
|
||||
<h4>@@setting@@</h4>
|
||||
<ul class="collapsible" data-collapsible="accordion">
|
||||
@@ -57,15 +58,17 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">@@nntest@@</a><br></template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -104,18 +107,36 @@
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h4>@@themeSel@@</h4>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<label for="black">Black</label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<label for="white">White</label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
|
||||
<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom" value="custom" />
|
||||
<label for="custom">Custom</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<span>Black</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<span>White</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo"
|
||||
value="indigo" />
|
||||
<span>Indigo<span class="imas hide">(エンドレスナイト)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<span>Brown<span class="imas hide">(ビタースイート・タイム)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<span>Green<span class="imas hide">(ユースフルロマンス)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="blue" value="blue" />
|
||||
<span>Blue<span class="imas hide">(渚の花嫁)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom"
|
||||
value="custom" />
|
||||
<span>custom</span>
|
||||
</label>
|
||||
<div style="width:300px" id="sel-selector">
|
||||
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||
</div>
|
||||
@@ -131,10 +152,16 @@
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="@@desc@@..."></textarea></div>
|
||||
<h5>@@customthemeDirection@@</h5>
|
||||
<input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
|
||||
<label for="dark">Dark</label>
|
||||
<input class="with-gap" name="direction" type="radio" id="light" value="light" />
|
||||
<label for="light">Light</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||
checked="true" />
|
||||
<span>Dark</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>@@secondarycolor@@
|
||||
@@ -167,12 +194,12 @@
|
||||
</div>
|
||||
<button class="btn-large waves-effect" onclick="customComp()">@@change@@</button> <button
|
||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">@@delete@@</button><br><br>
|
||||
<input type="text" style="width:300px" id="custom_json" class="materialize-textarea"
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
|
||||
placeholder="JSON style" readonly><br>
|
||||
@@customShare@@
|
||||
<h4>@@customImport@@</h4>
|
||||
@@cImpWarn@@<br>
|
||||
<input type="text" style="width:300px" id="custom_import" class="materialize-textarea"
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
|
||||
placeholder="JSON/JSON5 style">
|
||||
<button class="btn waves-effect" onclick="customImp()">@@import@@</button><br>
|
||||
</li>
|
||||
@@ -185,13 +212,15 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -230,14 +259,15 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span></label>
|
||||
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||
</template>
|
||||
</template>
|
||||
@@ -305,20 +335,38 @@
|
||||
<div class="collapsible-body">
|
||||
<h5>@@npProvider@@</h5>
|
||||
@@npPeoviderWarn@@<br>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
|
||||
<label for="aimp">AIMP</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes" value="ITUNES" />
|
||||
<label for="itunes">iTunes</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="npmm" value="MEDIAMONKEY" />
|
||||
<label for="npmm">MediaMonkey</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="winamp" value="WINAMP" />
|
||||
<label for="winamp">Winamp</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wmp" value="WMP" />
|
||||
<label for="wmp">WMP</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
|
||||
<label for="wlm">WLM</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
|
||||
<label for="cad">CAD</label><br><br>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
|
||||
<span>AIMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes"
|
||||
value="ITUNES" />
|
||||
<span>iTunes</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="npmm"
|
||||
value="MEDIAMONKEY" />
|
||||
<span>MediaMonkey</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="winamp"
|
||||
value="WINAMP" />
|
||||
<span>Winamp</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wmp" value="WMP" />
|
||||
<span>WMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
|
||||
<span>WLM</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
|
||||
<span>CAD</span>
|
||||
</label>
|
||||
<br><br>
|
||||
@@spotifynote1@@<i class="material-icons" style="font-size:24px;">music_note</i>@@spotifynote2@@<br>
|
||||
<h5>@@link@@</h5>
|
||||
@@linkwarn@@<br>
|
||||
@@ -330,19 +378,26 @@
|
||||
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
|
||||
class="fa fa-spotify left"></i>@@disconnect@@</a>
|
||||
<h5>@@templeteedit@@</h5>
|
||||
@@templeteeditwarn@@<br>
|
||||
<h5>@@templateedit@@</h5>
|
||||
@@templateeditwarn@@<br>
|
||||
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||
{url}</textarea><br>
|
||||
@@templete1@@<br>
|
||||
@@templete2@@<br>
|
||||
@@templete3@@<br>
|
||||
@@template1@@<br>
|
||||
@@template2@@<br>
|
||||
@@template3@@<br>
|
||||
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">@@set@@</button>
|
||||
<h5>@@postartwork@@</h5>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes" value="yes" />
|
||||
<label for="awk_yes">@@yes@@</label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no" value="no" />
|
||||
<label for="awk_no">@@no@@</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||
value="yes" />
|
||||
<span>@@yes@@</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||
value="no" />
|
||||
<span>@@no@@</span>
|
||||
</label>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
@@ -397,8 +452,6 @@
|
||||
以下Markdownに対応したインスタンスのみ。
|
||||
<br>
|
||||
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||
<li>Shift+Enter:全角スペースを入れて改行</li>
|
||||
<li>Shift+Space:ゼロ幅スペース</li>
|
||||
以下アスタルテにログインしている場合のみ
|
||||
<br>
|
||||
<li>Ctrl+R:
|
||||
@@ -439,6 +492,7 @@
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
@@ -76,9 +76,9 @@
|
||||
font-size: 200%;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||
<!--a href="update.html">Reload</a-->
|
||||
@@ -135,9 +135,6 @@
|
||||
$("#skipper").toggleClass("show");
|
||||
}
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
//var shell = electron.shell;
|
||||
verck();
|
||||
function update(sel) {
|
||||
$("#box").toggleClass("show");
|
||||
@@ -145,8 +142,7 @@
|
||||
$("#dlnow").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("show");
|
||||
$("#prog").text("");
|
||||
var remote = electron.remote;
|
||||
var bit = process.arch;
|
||||
var bit = localStorage.getItem("bit");
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
@@ -186,26 +182,25 @@
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
}
|
||||
ipc.send('download-btn', [url, file]);
|
||||
postMessage(["downloadButton", [url, file]], "*")
|
||||
});
|
||||
|
||||
}
|
||||
function quit() {
|
||||
ipc.send('quit', 'go');
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
ipc.on('prog', function (event, arg) {
|
||||
function updateProg(arg) {
|
||||
console.log(arg);
|
||||
$(".determinate").css("width",arg*100+"%");
|
||||
$(".determinate").css("width", arg * 100 + "%");
|
||||
$("#prog").text(Math.floor(arg * 100) + "%");
|
||||
})
|
||||
ipc.on('mess', function (event, arg) {
|
||||
}
|
||||
function updateMess(arg) {
|
||||
console.log(arg);
|
||||
$("#prog").text(arg);
|
||||
})
|
||||
}
|
||||
function verck() {
|
||||
var remote = electron.remote;
|
||||
var platform = remote.process.platform;
|
||||
var bit = process.arch;
|
||||
var platform = localStorage.getItem("platform");
|
||||
var bit = localStorage.getItem("bit");
|
||||
if (platform == "win32") {
|
||||
$('.windows').removeClass("hide")
|
||||
} else if (platform == "linux") {
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
@@ -74,10 +74,11 @@
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ps.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false;
|
||||
</script>
|
||||
@@ -99,10 +100,15 @@
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
crwdns368:0crwdne368:0<br>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<label for="linux">crwdns369:0crwdne369:0</label><br>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<label for="misskey">crwdns382:0crwdne382:0</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>crwdns369:0crwdne369:0</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>crwdns382:0crwdne382:0</span>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<title>TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
|
||||
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
@@ -25,9 +25,9 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ps.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/blurhash.js"></script>
|
||||
@@ -35,8 +35,9 @@
|
||||
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var ver = "Usamin (18.5.0)";
|
||||
var ver = "Usamin (18.6.6)";
|
||||
//betaを入れるとバージョンチェックしない
|
||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
|
||||
//var ver="beta";
|
||||
@@ -161,15 +162,15 @@
|
||||
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="crwdns389:0crwdne389:0"
|
||||
onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button"
|
||||
data-activates='dropdown1' id="vis-icon">public</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-trigger" data-target="dropdown1"
|
||||
id="vis-icon">public</i>
|
||||
<a class="waves-effect gray" id="cw" onclick="cw()" title="crwdns390:0crwdne390:0">CW</a>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
|
||||
onclick="fileselect()" title="crwdns391:0crwdne391:0">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
|
||||
title="crwdns393:0crwdne393:0">tag_faces</i>
|
||||
<i class="waves-effect gray material-icons dropdown-button"
|
||||
data-activates='dropdown2'>more_vert</i>
|
||||
<i class="waves-effect gray material-icons dropdown-trigger"
|
||||
data-target="dropdown2">more_vert</i>
|
||||
<i class="material-icons nex gray waves-effect" title="crwdns395:0crwdne395:0(Ctrl+Shit+C)"
|
||||
data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
</div>
|
||||
@@ -190,7 +191,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 公開範囲 Dropdown Structure -->
|
||||
<ul id='dropdown1' class='dropdown-content'>
|
||||
<ul id="dropdown1" class="dropdown-content">
|
||||
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">crwdns403:0crwdne403:0
|
||||
</li>
|
||||
<li>
|
||||
@@ -213,10 +214,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<!-- その他 Dropdown Structure -->
|
||||
<ul id='dropdown2' class='dropdown-content'>
|
||||
<li>
|
||||
<a onclick="adobe()">crwdns392:0crwdne392:0</a>
|
||||
</li>
|
||||
<ul id="dropdown2" class="dropdown-content">
|
||||
<li>
|
||||
<a onclick="nowplaying('spotify');">crwdns1880:0crwdne1880:0</a>
|
||||
</li>
|
||||
@@ -236,9 +234,9 @@
|
||||
<!--END hidden area-->
|
||||
</div>
|
||||
<div id="toot-btn-field">
|
||||
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
|
||||
<button class="btn waves-effect unmize toot-btn-group" onclick="post()"
|
||||
id="toot-post-btn">crwdns388:0crwdne388:0</button>
|
||||
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()"
|
||||
<button class="btn waves-effect darken-3 unmize hide toot-btn-group" onclick="sec()"
|
||||
id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon"
|
||||
title="crwdns1890:0crwdne1890:0">lock_open</i></button>
|
||||
</div>
|
||||
@@ -311,10 +309,14 @@
|
||||
<input type="text" class="mastodon-choice" placeholder="crwdns2414:0crwdne2414:02">
|
||||
<input type="text" class="mastodon-choice" placeholder="crwdns2414:0crwdne2414:03">
|
||||
<input type="text" class="mastodon-choice" placeholder="crwdns2414:0crwdne2414:04">
|
||||
<input type="checkbox" class="filled-in" id="poll-multiple" value="1" />
|
||||
<label for="poll-multiple">crwdns2416:0crwdne2416:0</label><br>
|
||||
<input type="checkbox" class="filled-in" id="poll-until" value="1" />
|
||||
<label for="poll-until">crwdns2412:0crwdne2412:0</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="poll-multiple" value="1" />
|
||||
<span>crwdns2416:0crwdne2416:0</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="poll-until" value="1" />
|
||||
<span>crwdns2412:0crwdne2412:0</span>
|
||||
</label>
|
||||
<input type="number" style="width:50px" id="days_poll" placeholder="d" value="0">crwdns507:0crwdne507:0
|
||||
<input type="number" style="width:50px" id="hours_poll" placeholder="h" value="0">crwdns508:0crwdne508:0
|
||||
<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="6">crwdns509:0crwdne509:0
|
||||
@@ -325,7 +327,7 @@
|
||||
<!-- Modal Structure Tootdata-->
|
||||
<div id="tootmodal" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
<ul class="collapsible" data-collapsible="accordion" id="det-col">
|
||||
<ul class="collapsible" id="det-col">
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">people_outline</i>@@afterLTL@@
|
||||
@@ -474,46 +476,46 @@
|
||||
</div>
|
||||
<div class="his-float" id="his-float-timeline">
|
||||
<div id="my-data-nav">
|
||||
<ul class="custom-tabs transparent">
|
||||
<li class="custom-tab col my-data-width active-back column-first">
|
||||
<ul class="tabs transparent">
|
||||
<li class="tab col my-data-width active-back column-first">
|
||||
<a go="#his-tl" title="crwdns442:0crwdne442:0"><i class="material-icons">timeline</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width">
|
||||
<li class="tab col my-data-width">
|
||||
<a go="#his-follow-list" title="crwdns440:0crwdne440:0"><i class="material-icons">people</i>→</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width">
|
||||
<li class="tab col my-data-width">
|
||||
<a go="#his-follower-list" title="crwdns441:0crwdne441:0"><i
|
||||
class="material-icons">people</i>←</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<li class="tab col my-data-width only-his-data">
|
||||
<a go="#his-action" title="crwdns443:0crwdne443:0"><i
|
||||
class="material-icons">account_box</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<li class="tab col my-data-width only-his-data">
|
||||
<a go="#his-list" title="crwdns444:0crwdne444:0"><i class="material-icons">list</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-fav-list" title="crwdns434:0crwdne434:0"><i class="material-icons">star</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list" title="crwdns446:0crwdne446:0"><i class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list" title="crwdns446:0crwdne446:0"><i
|
||||
class="material-icons">voice_over_off</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-domain-list" title="crwdns450:0crwdne450:0"><i
|
||||
class="material-icons">language</i><i class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-prof-list" title="crwdns451:0crwdne451:0"><i class="material-icons">create</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-request-list" title="crwdns452:0crwdne452:0"><i
|
||||
class="material-icons">how_to_reg</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-follow-recom-list" title="crwdns456:0crwdne456:0"><i
|
||||
class="material-icons">recent_actors</i></a>
|
||||
</li>
|
||||
@@ -621,7 +623,7 @@
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn"
|
||||
onclick="follow()">crwdns440:0crwdne440:0</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn"
|
||||
onclick="mute()">crwdns449:0crwdne449:0</a>
|
||||
onclick="muteDo()">crwdns449:0crwdne449:0</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn"
|
||||
onclick="block()">crwdns448:0crwdne448:0</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">crwdns385:0crwdne385:0</a>
|
||||
@@ -675,26 +677,19 @@
|
||||
<a href="https://thedesk.top" target="_blank">HP</a><br>
|
||||
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
|
||||
<br>
|
||||
<div id="release-Usamin_18-5-0" class="release-do" style="display:none; ">
|
||||
<div id="release-Usamin_18-6-6" class="release-do" style="display:none; ">
|
||||
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
|
||||
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
|
||||
Pixiv Fanboxでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note Usamin (18.5.0)</h5>
|
||||
・macOSでのアップデータについて修正。<br>
|
||||
・本来不要なところにフォロリク許可画面が出るようになっていたのを修正。<br>
|
||||
・不明なメディアに対するリンクを表示します。<br>
|
||||
・PleromaでのVideoの挙動について修正しました。<br>
|
||||
・Patreonでの支援を開始しました。<br>
|
||||
・アスタルテの新しいBBCodeに対応しました。<br>
|
||||
・タイムライン下の方が切れてしまう不具合の修正。<br>
|
||||
・通知をユーザーごとにフィルターする機能(最新のMastodonのみ)。<br>
|
||||
・Electron 5.0.1になりました。<br>
|
||||
<br>
|
||||
<h5>ThinkingDeskラベル</h5>
|
||||
<img src="../../img/thinkingdesk.png" style="width:100px;" draggable="false"><br>
|
||||
手作りマットラベル。貼ってはがせる。300円なのでポイントの余りでどうぞ。<br>
|
||||
<a href="https://item.mercari.com/jp/m822743330" target="_blank">メルカリ</a>へ。
|
||||
<h5>Release Note Usamin (18.6.6)</h5>
|
||||
・設定に関するバグを修正<br>
|
||||
・ブーストのボタンの色を青に変更<br>
|
||||
・テーマごとに「トゥート」ボタンの色が変わる<br>
|
||||
・新テーマ(Blue:渚の花嫁)を追加<br>
|
||||
・トゥート下のアクションボタンのスペースなどを変更<br>
|
||||
・翻訳したときに結果を全て表示するよう変更<br>
|
||||
・knzk.meとbesr-friends.chatをサポートインスタンスから削除
|
||||
</div>
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
@@ -707,8 +702,8 @@
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
@@PixivSupport@@
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2"
|
||||
href="https://www.patreon.com/cutls" target="_blank">
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2" href="https://www.patreon.com/cutls"
|
||||
target="_blank">
|
||||
@@PatreonSupport@@
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
@@ -881,20 +876,34 @@
|
||||
<input type="hidden" id="filter-edit-id">
|
||||
<input type="text" style="width:150px" id="filter-add-word" placeholder="crwdns496:0crwdne496:0"><br>
|
||||
crwdns497:0crwdne497:0<br>
|
||||
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
|
||||
<label for="home_filter">crwdns482:0crwdne482:0</label>
|
||||
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
|
||||
<label for="local_filter">crwdns480:0crwdne480:0</label>
|
||||
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
|
||||
<label for="notf_filter">crwdns488:0crwdne488:0</label>
|
||||
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
|
||||
<label for="conv_filter">crwdns498:0crwdne498:0</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
|
||||
<span>crwdns482:0crwdne482:0</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
|
||||
<span>crwdns480:0crwdne480:0</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
|
||||
<span>crwdns488:0crwdne488:0</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
|
||||
<span>crwdns498:0crwdne498:0</span>
|
||||
</label>
|
||||
crwdns499:0crwdne499:0<br>
|
||||
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
|
||||
<label for="wholeword_filter">crwdns500:0crwdne500:0</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
|
||||
<span>crwdns500:0crwdne500:0</span>
|
||||
</label>
|
||||
<br>
|
||||
<span class="sml">crwdns501:0crwdne501:0</span><br>
|
||||
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
|
||||
<label for="except_filter">crwdns502:0crwdne502:0</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
|
||||
<span>crwdns502:0crwdne502:0</span>
|
||||
</label>
|
||||
<br>
|
||||
<span class="sml">crwdns503:0crwdne503:0</span><br>
|
||||
crwdns504:0crwdne504:0<span class="sml">crwdns505:0crwdne505:0<b>crwdns506:0crwdne506:0</b></span><br><br>
|
||||
<input type="number" style="width:50px" id="days_filter" placeholder="d" value="0">crwdns507:0crwdne507:0
|
||||
@@ -937,7 +946,7 @@
|
||||
<div id="bottom" class="reverse">
|
||||
<div class="leftside reverse">
|
||||
<div id="dambox">
|
||||
<button id="posttgl" class="btn waves-effect indigo"
|
||||
<button id="posttgl" class="btn waves-effect"
|
||||
style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
|
||||
<i class="material-icons"
|
||||
style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>crwdns388:0crwdne388:0
|
||||
@@ -990,6 +999,56 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--Support me-->
|
||||
<div id="support-btm" class="z-depth-4 hide">
|
||||
<div id="support-btm-ja">
|
||||
<h5>ご支援いただけませんか?</h5>
|
||||
(これは支援の有無に関わらず定期的に出ます。)<br>
|
||||
あなたのMastodon, Misskeyライフを邪魔してしまって申し訳ありません。<br>
|
||||
乞食のようなマネをしてご支援をお願いするのもどうかと思いますが、少々お時間をください。<br>
|
||||
<br>
|
||||
あなたはMastodon, MisskeyクライアントにTheDeskを選びました。これは奇跡的なことです。今考えればブラウザからアクセスした方が良かったのではと感じることかと存じます。<br>
|
||||
それでも、あなたはTheDeskを使っています。<br>
|
||||
TheDeskは2018年1月13日に最初のバージョンが出ました。それから圧倒的な機能数でゴリ押しするクライアントになっています。<br>
|
||||
新機能に追従を図るためのモチベーションもさることながら、安全対策上TheDeskは開発者の緊急メッセージを表示できる機能が備わっており、開発者が送信ボタンを押すとすべてのTheDeskユーザーに通知が行くようになっています。<br>
|
||||
かつてこれによってバグ報告を行い、使用を自粛していただくこともありました。<br>
|
||||
そのような機能を実装するために、Mastodonなどのインスタンスを運営するのと同じく有料のサーバーを運用しています。<br>
|
||||
<b>全てのユーザーが安心してTheDeskを使っていただける環境のため</b>にも、ぜひご支援をご検討ください。<br>
|
||||
<b>crwdns474:0crwdne474:0</b>
|
||||
</div>
|
||||
<div id="support-btm-en" class="hide">
|
||||
<h5>Support me</h5>
|
||||
It may disturb your Mastodon life, but your support is required to keep TheDesk awesome!<br>
|
||||
<b>crwdns474:0crwdne474:0</b>
|
||||
</div>
|
||||
<div id="support-btm-middle">
|
||||
<h5>@@monthly@@</h5>
|
||||
<a class="btn-share btn waves-effect waves-light red lighten-2"
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
@@PixivSupport@@
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red darken-2" href="https://www.patreon.com/cutls"
|
||||
target="_blank">
|
||||
@@PatreonSupport@@
|
||||
</a>
|
||||
</div>
|
||||
<div id="support-btm-right">
|
||||
<h5>@@once@@</h5>
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
crwdns476:0crwdne476:0
|
||||
</a>
|
||||
<br>
|
||||
crwdns477:0crwdne477:0<a href="mailto:web-pro@cutls.com"
|
||||
target="_blank">web-pro@cutls.com</a>crwdns478:0crwdne478:0<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
</div>
|
||||
<div id="support-btm-close">
|
||||
<button class="btn waves-effect" style="width:100%;" onclick="closeSupport()"
|
||||
id="add-filter-btn">crwdns385:0crwdne385:0</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--左下メッセージ-->
|
||||
<div id="message">
|
||||
</div>
|
||||
|
@@ -11,7 +11,7 @@
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
@@ -30,13 +30,14 @@
|
||||
</head>
|
||||
|
||||
<body id="mainView" style="overflow-y:scroll">
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ps.js"></script>
|
||||
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
|
||||
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||
<script type="text/javascript" src="setting.vue.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
|
||||
<h4>crwdns524:0crwdne524:0</h4>
|
||||
<ul class="collapsible" data-collapsible="accordion">
|
||||
@@ -57,15 +58,17 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">crwdns540:0crwdne540:0</a><br></template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -104,18 +107,36 @@
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h4>crwdns2422:0crwdne2422:0</h4>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<label for="black">Black</label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<label for="white">White</label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
|
||||
<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom" value="custom" />
|
||||
<label for="custom">Custom</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<span>Black</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<span>White</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo"
|
||||
value="indigo" />
|
||||
<span>Indigo<span class="imas hide">(エンドレスナイト)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<span>Brown<span class="imas hide">(ビタースイート・タイム)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<span>Green<span class="imas hide">(ユースフルロマンス)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="blue" value="blue" />
|
||||
<span>Blue<span class="imas hide">(渚の花嫁)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom"
|
||||
value="custom" />
|
||||
<span>custom</span>
|
||||
</label>
|
||||
<div style="width:300px" id="sel-selector">
|
||||
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||
</div>
|
||||
@@ -131,10 +152,16 @@
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="crwdns2440:0crwdne2440:0..."></textarea></div>
|
||||
<h5>crwdns2426:0crwdne2426:0</h5>
|
||||
<input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
|
||||
<label for="dark">Dark</label>
|
||||
<input class="with-gap" name="direction" type="radio" id="light" value="light" />
|
||||
<label for="light">Light</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||
checked="true" />
|
||||
<span>Dark</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>crwdns2430:0crwdne2430:0
|
||||
@@ -167,12 +194,12 @@
|
||||
</div>
|
||||
<button class="btn-large waves-effect" onclick="customComp()">crwdns528:0crwdne528:0</button> <button
|
||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">@@delete@@</button><br><br>
|
||||
<input type="text" style="width:300px" id="custom_json" class="materialize-textarea"
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
|
||||
placeholder="JSON style" readonly><br>
|
||||
crwdns2442:0crwdne2442:0
|
||||
<h4>crwdns2444:0crwdne2444:0</h4>
|
||||
@@cImpWarn@@<br>
|
||||
<input type="text" style="width:300px" id="custom_import" class="materialize-textarea"
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
|
||||
placeholder="JSON/JSON5 style">
|
||||
<button class="btn waves-effect" onclick="customImp()">crwdns532:0crwdne532:0</button><br>
|
||||
</li>
|
||||
@@ -185,13 +212,15 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -230,14 +259,15 @@
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
<template v-html="item.text.desc"></template><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<label v-bind:for="item.id+check.value">{{check.text}}</label>
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span></label>
|
||||
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||
</template>
|
||||
</template>
|
||||
@@ -305,20 +335,38 @@
|
||||
<div class="collapsible-body">
|
||||
<h5>crwdns2354:0crwdne2354:0</h5>
|
||||
crwdns2356:0crwdne2356:0<br>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
|
||||
<label for="aimp">AIMP</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes" value="ITUNES" />
|
||||
<label for="itunes">iTunes</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="npmm" value="MEDIAMONKEY" />
|
||||
<label for="npmm">MediaMonkey</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="winamp" value="WINAMP" />
|
||||
<label for="winamp">Winamp</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wmp" value="WMP" />
|
||||
<label for="wmp">WMP</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
|
||||
<label for="wlm">WLM</label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
|
||||
<label for="cad">CAD</label><br><br>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
|
||||
<span>AIMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes"
|
||||
value="ITUNES" />
|
||||
<span>iTunes</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="npmm"
|
||||
value="MEDIAMONKEY" />
|
||||
<span>MediaMonkey</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="winamp"
|
||||
value="WINAMP" />
|
||||
<span>Winamp</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wmp" value="WMP" />
|
||||
<span>WMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
|
||||
<span>WLM</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
|
||||
<span>CAD</span>
|
||||
</label>
|
||||
<br><br>
|
||||
crwdns625:0crwdne625:0<i class="material-icons" style="font-size:24px;">music_note</i>crwdns626:0crwdne626:0<br>
|
||||
<h5>crwdns627:0crwdne627:0</h5>
|
||||
crwdns628:0crwdne628:0<br>
|
||||
@@ -330,19 +378,26 @@
|
||||
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
|
||||
class="fa fa-spotify left"></i>crwdns630:0crwdne630:0</a>
|
||||
<h5>crwdns631:0crwdne631:0</h5>
|
||||
crwdns632:0crwdne632:0<br>
|
||||
<h5>@@templateedit@@</h5>
|
||||
@@templateeditwarn@@<br>
|
||||
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||
{url}</textarea><br>
|
||||
crwdns2358:0{song}crwdnd2358:0{album}crwdnd2358:0{artist}crwdnd2358:0{url}crwdne2358:0<br>
|
||||
crwdns2360:0{song}crwdnd2360:0{album}crwdnd2360:0{artist}crwdnd2360:0{composer}crwdnd2360:0{hz}crwdnd2360:0{bitRate}crwdnd2360:0{genre}crwdne2360:0<br>
|
||||
crwdns2362:0{song}crwdnd2362:0{album}crwdnd2362:0{artist}crwdne2362:0<br>
|
||||
@@template1@@<br>
|
||||
@@template2@@<br>
|
||||
@@template3@@<br>
|
||||
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button>
|
||||
<h5>crwdns635:0crwdne635:0</h5>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes" value="yes" />
|
||||
<label for="awk_yes">crwdns526:0crwdne526:0</label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no" value="no" />
|
||||
<label for="awk_no">crwdns527:0crwdne527:0</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||
value="yes" />
|
||||
<span>crwdns526:0crwdne526:0</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||
value="no" />
|
||||
<span>crwdns527:0crwdne527:0</span>
|
||||
</label>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
@@ -397,8 +452,6 @@
|
||||
以下Markdownに対応したインスタンスのみ。
|
||||
<br>
|
||||
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||
<li>Shift+Enter:全角スペースを入れて改行</li>
|
||||
<li>Shift+Space:ゼロ幅スペース</li>
|
||||
以下アスタルテにログインしている場合のみ
|
||||
<br>
|
||||
<li>Ctrl+R:
|
||||
@@ -439,6 +492,7 @@
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
@@ -76,9 +76,9 @@
|
||||
font-size: 200%;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||
<!--a href="update.html">Reload</a-->
|
||||
@@ -135,9 +135,6 @@
|
||||
$("#skipper").toggleClass("show");
|
||||
}
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
//var shell = electron.shell;
|
||||
verck();
|
||||
function update(sel) {
|
||||
$("#box").toggleClass("show");
|
||||
@@ -145,8 +142,7 @@
|
||||
$("#dlnow").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("show");
|
||||
$("#prog").text("");
|
||||
var remote = electron.remote;
|
||||
var bit = process.arch;
|
||||
var bit = localStorage.getItem("bit");
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
@@ -186,26 +182,25 @@
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
}
|
||||
ipc.send('download-btn', [url, file]);
|
||||
postMessage(["downloadButton", [url, file]], "*")
|
||||
});
|
||||
|
||||
}
|
||||
function quit() {
|
||||
ipc.send('quit', 'go');
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
ipc.on('prog', function (event, arg) {
|
||||
function updateProg(arg) {
|
||||
console.log(arg);
|
||||
$(".determinate").css("width",arg*100+"%");
|
||||
$(".determinate").css("width", arg * 100 + "%");
|
||||
$("#prog").text(Math.floor(arg * 100) + "%");
|
||||
})
|
||||
ipc.on('mess', function (event, arg) {
|
||||
}
|
||||
function updateMess(arg) {
|
||||
console.log(arg);
|
||||
$("#prog").text(arg);
|
||||
})
|
||||
}
|
||||
function verck() {
|
||||
var remote = electron.remote;
|
||||
var platform = remote.process.platform;
|
||||
var bit = process.arch;
|
||||
var platform = localStorage.getItem("platform");
|
||||
var bit = localStorage.getItem("bit");
|
||||
if (platform == "win32") {
|
||||
$('.windows').removeClass("hide")
|
||||
} else if (platform == "linux") {
|
||||
|
3
package-lock.json
generated
3
package-lock.json
generated
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"lockfileVersion": 1
|
||||
}
|
Reference in New Issue
Block a user