Compare commits
36 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
f50c2d3049 | ||
|
9957bd9b8a | ||
|
e6767dc3f9 | ||
|
136935d4f9 | ||
|
d654b63bca | ||
|
3ba4dee8a7 | ||
|
48028a8e09 | ||
|
1917531c54 | ||
|
f74e2262dc | ||
|
2971144d7f | ||
|
2e2723427b | ||
|
ee6127ffcc | ||
|
dcd6fa6958 | ||
|
7442216962 | ||
|
bb0c781daa | ||
|
56e5a5ac53 | ||
|
419fa4906d | ||
|
16e7617b1e | ||
|
2ca5798f89 | ||
|
a08ddc1b8c | ||
|
83153e2777 | ||
|
5b72b93248 | ||
|
c7d911451c | ||
|
c400cc317d | ||
|
50784c9958 | ||
|
c4a5d406c7 | ||
|
d933eef8cc | ||
|
ce84069429 | ||
|
8140e56cbc | ||
|
de40e0e22a | ||
|
44ccd111b2 | ||
|
7ac0889b78 | ||
|
c4a5996b21 | ||
|
9eaca7bcb2 | ||
|
90629aecb4 | ||
|
cb6a75de3b |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -20,3 +20,5 @@ app/view/cs
|
||||
app/view/ps
|
||||
app/view/es-AR
|
||||
app/git
|
||||
*.code-workspace
|
||||
releasenote.md
|
||||
|
@@ -336,7 +336,7 @@ blockquote:before,
|
||||
#menu {
|
||||
position: fixed;
|
||||
z-index: 9999;
|
||||
background-color: var(--box);
|
||||
background-color: var(--postbox);
|
||||
width: 540px;
|
||||
top: calc(50% - 150px);
|
||||
left: calc(50% - 250px);
|
||||
@@ -475,6 +475,12 @@ textarea {
|
||||
#src-contents svg {
|
||||
margin-right: 5px;
|
||||
}
|
||||
.contributor {
|
||||
cursor: pointer;
|
||||
}
|
||||
.contributor img {
|
||||
width: 1rem;
|
||||
}
|
||||
|
||||
/*スクロールバー*/
|
||||
::-webkit-scrollbar {
|
||||
|
@@ -291,7 +291,12 @@ function refresh(target, loadskip) {
|
||||
localStorage.setItem("user-id_" + target, json["id"]);
|
||||
localStorage.setItem("prof_" + target, avatar);
|
||||
localStorage.setItem("follow_" + target, json["following_count"]);
|
||||
console.log(obj)
|
||||
if(json["source"]["sensitive"]){
|
||||
localStorage.setItem("nsfw_" + target, "true");
|
||||
}else{
|
||||
localStorage.removeItem("nsfw_" + target);
|
||||
}
|
||||
obj[target] = ref;
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
if (!loadskip) {
|
||||
|
@@ -695,6 +695,11 @@ function refresh(target) {
|
||||
localStorage.setItem("user_" + target, json["acct"]);
|
||||
localStorage.setItem("user-id_" + target, json["id"]);
|
||||
localStorage.setItem("prof_" + target, avatar);
|
||||
if(json["source"]["sensitive"]){
|
||||
localStorage.setItem("nsfw_" + target, "true");
|
||||
}else{
|
||||
localStorage.removeItem("nsfw_" + target);
|
||||
}
|
||||
obj[target] = ref;
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
|
@@ -2,36 +2,35 @@
|
||||
var obj = $("body");
|
||||
var system;
|
||||
//ドラッグスタート
|
||||
obj.on('dragstart', function (e) {
|
||||
system = "locked"
|
||||
obj.on("dragstart", function(e) {
|
||||
system = "locked";
|
||||
});
|
||||
//何もなくファイルが通過
|
||||
obj.on('dragend', function (e) {
|
||||
obj.on("dragend", function(e) {
|
||||
system = "";
|
||||
});
|
||||
//ドラッグファイルが画面上に
|
||||
obj.on('dragenter', function (e) {
|
||||
obj.on("dragenter", function(e) {
|
||||
if (system != "locked") {
|
||||
$("#drag").css('display', 'flex');
|
||||
$("#drag").css("display", "flex");
|
||||
}
|
||||
|
||||
});
|
||||
$("body").on('dragover', function (e) {
|
||||
$("body").on("dragover", function(e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
});
|
||||
//ドロップした
|
||||
$("body").on('drop', function (e) {
|
||||
$("body").on("drop", function(e) {
|
||||
if (system != "locked") {
|
||||
$("#drag").css('display', 'none');
|
||||
$("#drag").css("display", "none");
|
||||
e.preventDefault();
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
pimg(files);
|
||||
}
|
||||
});
|
||||
//何もなくファイルが通過
|
||||
$("#drag").on('dragleave', function (e) {
|
||||
$("#drag").css('display', 'none');
|
||||
$("#drag").on("dragleave", function(e) {
|
||||
$("#drag").css("display", "none");
|
||||
});
|
||||
|
||||
//複数アップ
|
||||
@@ -40,9 +39,8 @@ function pimg(files) {
|
||||
for (i = 0; i < files.length; i++) {
|
||||
var dot = files[i].path.match(/\.(.+)$/)[1];
|
||||
if (dot == "bmp" || dot == "BMP") {
|
||||
postMessage(["bmpImage", [files[i].path, i]], "*")
|
||||
postMessage(["bmpImage", [files[i].path, i]], "*");
|
||||
todo(lang.lang_progress);
|
||||
|
||||
} else {
|
||||
handleFileUpload(files[i], obj, i);
|
||||
}
|
||||
@@ -50,21 +48,21 @@ function pimg(files) {
|
||||
}
|
||||
//ドラッグ・アンド・ドロップを終了
|
||||
function closedrop() {
|
||||
$("#drag").css('display', 'none');
|
||||
$("#drag").css("display", "none");
|
||||
}
|
||||
//ファイル選択
|
||||
function fileselect() {
|
||||
postMessage(["sendSinmpleIpc", "file-select"], "*")
|
||||
postMessage(["sendSinmpleIpc", "file-select"], "*");
|
||||
}
|
||||
|
||||
//ファイル読み込み
|
||||
function handleFileUpload(files, obj, no) {
|
||||
var fr = new FileReader();
|
||||
fr.onload = function (evt) {
|
||||
fr.onload = function(evt) {
|
||||
var b64 = evt.target.result;
|
||||
$('#b64-box').val(b64);
|
||||
var ret = media(b64, files["type"], no)
|
||||
}
|
||||
$("#b64-box").val(b64);
|
||||
var ret = media(b64, files["type"], no);
|
||||
};
|
||||
fr.readAsDataURL(files);
|
||||
$("#mec").append(files["name"] + "/");
|
||||
}
|
||||
@@ -79,7 +77,7 @@ function media(b64, type, no) {
|
||||
r += c[Math.floor(Math.random() * cl)];
|
||||
}
|
||||
if ($("#media").val()) {
|
||||
$("#media").val($("#media").val() + ',' + "tmp_" + r);
|
||||
$("#media").val($("#media").val() + "," + "tmp_" + r);
|
||||
} else {
|
||||
$("#media").val("tmp_" + r);
|
||||
}
|
||||
@@ -89,14 +87,14 @@ function media(b64, type, no) {
|
||||
todo("Image Upload...");
|
||||
var media = toBlob(b64, type);
|
||||
var fd = new FormData();
|
||||
fd.append('file', media);
|
||||
fd.append("file", media);
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var httpreq = new XMLHttpRequest();
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/drive/files/create";
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.open("POST", start, true);
|
||||
httpreq.upload.addEventListener("progress", progshow, false);
|
||||
httpreq.responseType = "json";
|
||||
if ($("#nsfw").hasClass("nsfw-avail")) {
|
||||
@@ -104,20 +102,20 @@ function media(b64, type, no) {
|
||||
} else {
|
||||
var nsfw = false;
|
||||
}
|
||||
var previewer = "url"
|
||||
fd.append('i', at);
|
||||
var previewer = "url";
|
||||
fd.append("i", at);
|
||||
//fd.append('isSensitive', nsfw);
|
||||
httpreq.send(fd);
|
||||
} else {
|
||||
var previewer = "preview_url"
|
||||
var previewer = "preview_url";
|
||||
var start = "https://" + domain + "/api/v1/media";
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.open("POST", start, true);
|
||||
httpreq.upload.addEventListener("progress", progshow, false);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.setRequestHeader("Authorization", "Bearer " + at);
|
||||
httpreq.send(fd);
|
||||
}
|
||||
httpreq.onreadystatechange = function () {
|
||||
httpreq.onreadystatechange = function() {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
if (!json.id) {
|
||||
@@ -125,17 +123,17 @@ function media(b64, type, no) {
|
||||
$("#imgup").text("");
|
||||
$(".toot-btn-group").prop("disabled", false);
|
||||
$("#post-acct-sel").prop("disabled", false);
|
||||
$('select').formSelect();
|
||||
$("select").formSelect();
|
||||
$("#imgsel").show();
|
||||
M.toast({ html: lang.lang_postimg_failupload, displayLength: 5000 })
|
||||
return false
|
||||
M.toast({ html: lang.lang_postimg_failupload, displayLength: 5000 });
|
||||
return false;
|
||||
}
|
||||
var img = localStorage.getItem("img");
|
||||
if (json.type.indexOf("image") != -1) {
|
||||
var html = '<img src="' + json[previewer] + '" class="preview-img pointer" data-media="' + json["id"] + '" onclick="deleteImage(\'' + json["id"] + '\')" title="' + lang.lang_postimg_delete + '">';
|
||||
$('#preview').append(html);
|
||||
var html = '<img src="' + json[previewer] + '" class="preview-img pointer" data-media="' + json["id"] + '" oncontextmenu="deleteImage(\'' + json["id"] + "')\" onclick=\"altImage('" + acct_id + "','" + json["id"] + '\')" title="' + lang.lang_postimg_delete + '">';
|
||||
$("#preview").append(html);
|
||||
} else {
|
||||
$('#preview').append(lang.lang_postimg_previewdis);
|
||||
$("#preview").append(lang.lang_postimg_previewdis);
|
||||
}
|
||||
if (!img) {
|
||||
var img = "no-act";
|
||||
@@ -145,26 +143,30 @@ function media(b64, type, no) {
|
||||
var regExp = new RegExp("tmp_" + r, "g");
|
||||
mediav = mediav.replace(regExp, json["id"]);
|
||||
$("#media").val(mediav);
|
||||
|
||||
}
|
||||
if (img == "url") {
|
||||
$("#textarea").val($("#textarea").val() + " " + json["text_url"])
|
||||
$("#textarea").val($("#textarea").val() + " " + json["text_url"]);
|
||||
}
|
||||
todc();
|
||||
if (localStorage.getItem("nsfw_" + acct_id)) {
|
||||
$("#nsfw").addClass("yellow-text");
|
||||
$("#nsfw").html("visibility");
|
||||
$("#nsfw").addClass("nsfw-avail");
|
||||
}
|
||||
$(".toot-btn-group").prop("disabled", false);
|
||||
$('select').formSelect();
|
||||
$("select").formSelect();
|
||||
$("#mec").text(lang.lang_there);
|
||||
M.toast({ html: lang.lang_postimg_aftupload, displayLength: 1000 })
|
||||
M.toast({ html: lang.lang_postimg_aftupload, displayLength: 1000 });
|
||||
$("#imgup").text("");
|
||||
$("#imgsel").show();
|
||||
localStorage.removeItem("image");
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
//Base64からBlobへ
|
||||
function toBlob(base64, type) {
|
||||
var bin = atob(base64.replace(/^.*,/, ''));
|
||||
var bin = atob(base64.replace(/^.*,/, ""));
|
||||
var buffer = new Uint8Array(bin.length);
|
||||
for (var i = 0; i < bin.length; i++) {
|
||||
buffer[i] = bin.charCodeAt(i);
|
||||
@@ -182,14 +184,14 @@ function toBlob(base64, type) {
|
||||
}
|
||||
//画像を貼り付けたら…
|
||||
var element = document.querySelector("#textarea");
|
||||
element.addEventListener("paste", function (e) {
|
||||
element.addEventListener("paste", function(e) {
|
||||
if (!e.clipboardData || !e.clipboardData.items) {
|
||||
return true;
|
||||
}
|
||||
// DataTransferItemList に画像が含まれいない場合は終了する
|
||||
var imageItems = [...e.clipboardData.items].filter(i => i.type.startsWith('image'));
|
||||
var imageItems = [...e.clipboardData.items].filter(i => i.type.startsWith("image"));
|
||||
if (imageItems.length == 0) {
|
||||
console.warn("it is not image")
|
||||
console.warn("it is not image");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -200,7 +202,7 @@ element.addEventListener("paste", function (e) {
|
||||
|
||||
// FileReaderで読み込む
|
||||
var fr = new FileReader();
|
||||
fr.onload = function (e) {
|
||||
fr.onload = function(e) {
|
||||
// onload内ではe.target.resultにbase64が入っているのであとは煮るなり焼くなり
|
||||
var base64 = e.target.result;
|
||||
var mediav = $("#media").val();
|
||||
@@ -208,7 +210,7 @@ element.addEventListener("paste", function (e) {
|
||||
var i = mediav.split(",").length;
|
||||
}
|
||||
// DataTransferItem の type に mime tipes があるのでそれを使う
|
||||
media(base64, imageType, i)
|
||||
media(base64, imageType, i);
|
||||
};
|
||||
fr.readAsDataURL(imageFile);
|
||||
|
||||
@@ -217,13 +219,13 @@ element.addEventListener("paste", function (e) {
|
||||
function deleteImage(key) {
|
||||
Swal.fire({
|
||||
title: lang.lang_postimg_delete,
|
||||
type: 'warning',
|
||||
type: "warning",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonColor: "#3085d6",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
}).then(result => {
|
||||
if (result.value) {
|
||||
var media = $("#media").val();
|
||||
var arr = media.split(",");
|
||||
@@ -234,8 +236,54 @@ function deleteImage(key) {
|
||||
}
|
||||
}
|
||||
$("#media").val(arr.join(","));
|
||||
$('#preview [data-media=' + key + ']').remove();
|
||||
$("#preview [data-media=" + key + "]").remove();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
function altImage(acct_id, id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/media/" + id;
|
||||
|
||||
}
|
||||
Swal.fire({
|
||||
title: lang.lang_postimg_desc,
|
||||
text: lang.lang_postimg_leadContext,
|
||||
input: "text",
|
||||
inputAttributes: {
|
||||
autocapitalize: "off"
|
||||
},
|
||||
showCancelButton: true,
|
||||
confirmButtonText: "Post",
|
||||
showLoaderOnConfirm: true,
|
||||
preConfirm: data => {
|
||||
return fetch(start, {
|
||||
method: "PUT",
|
||||
headers: {
|
||||
"content-type": "application/json",
|
||||
Authorization: "Bearer " + at
|
||||
},
|
||||
body: JSON.stringify({
|
||||
description: data
|
||||
})
|
||||
})
|
||||
.then(function(response) {
|
||||
return response.json();
|
||||
})
|
||||
.catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
})
|
||||
.then(function(json) {
|
||||
console.log(json)
|
||||
$("[data-media=" + id + "]").attr("title", data);
|
||||
});
|
||||
},
|
||||
allowOutsideClick: () => !Swal.isLoading()
|
||||
}).then(result => {
|
||||
if (result.value) {
|
||||
Swal.fire({
|
||||
title: "Complete",
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -268,19 +268,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
body: toot.user.name + "(" + toot.user.username + ")" + what + "\n\n" + $.strip_tagstemp(toot.note.text),
|
||||
icon: toot.user.avatarUrl
|
||||
};
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
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], "*")
|
||||
}
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
}
|
||||
if (localStorage.getItem("hasNotfC_" + acct_id) != "true") {
|
||||
$(".notf-icon_" + acct_id).addClass("red-text");
|
||||
@@ -917,19 +905,7 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
|
||||
icon: toot.avatar
|
||||
};
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
var nativeNotfOpt = [
|
||||
'TheDesk:' + domain,
|
||||
toot.display_name + "(" + toot.acct + ")" + ftxt,
|
||||
toot.avatar,
|
||||
"userdata",
|
||||
acct_id,
|
||||
toot.id
|
||||
]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
}
|
||||
}
|
||||
if (toot.name) {
|
||||
|
@@ -63,12 +63,7 @@ function notfColumn(acct_id, tlid, sys) {
|
||||
body: ct + lang.lang_notf_new,
|
||||
icon: localStorage.getItem("prof_" + acct_id)
|
||||
};
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
var nativeNotfOpt = ['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
|
||||
}
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
@@ -178,12 +173,7 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
body: ct + lang.lang_notf_new,
|
||||
icon: localStorage.getItem("prof_" + acct_id)
|
||||
};
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
var nativeNotfOpt = ['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
|
||||
}
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
|
File diff suppressed because one or more lines are too long
@@ -55,6 +55,7 @@ function show() {
|
||||
}
|
||||
$('#post-box').fadeIn();
|
||||
$('#textarea').characterCounter();
|
||||
mdCheck()
|
||||
}
|
||||
|
||||
$(function () {
|
||||
|
@@ -258,12 +258,7 @@ function notftest() {
|
||||
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 {
|
||||
var nativeNotfOpt = ['TheDesk' + lang.lang_setting_notftest, lang.lang_setting_notftest + '(' + lang.lang_setting_notftestprof + ')', localStorage.getItem('prof_0'), "", ""]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
var n = new Notification('TheDesk' + lang.lang_setting_notftest, options);
|
||||
|
||||
}
|
||||
function oks(no) {
|
||||
@@ -523,14 +518,38 @@ function customComp() {
|
||||
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");
|
||||
if($("#pickers").hasClass("advanceTheme")){
|
||||
var accentC = $("#color-picker3_value").val();
|
||||
if (!accentC) { accentC = null }
|
||||
var activeC = $("#color-picker4_value").val();
|
||||
if (!activeC) { activeC = null }
|
||||
var modalC = $("#color-picker5_value").val();
|
||||
if (!modalC) { modalC = null }
|
||||
var bottomC = $("#color-picker6_value").val();
|
||||
if (!bottomC) { bottomC = null }
|
||||
var postboxC = $("#color-picker7_value").val();
|
||||
if (!postboxC) { postboxC = null }
|
||||
var subcolorC = $("#color-picker8_value").val();
|
||||
if (!subcolorC) { subcolorC = null }
|
||||
var advanceTheme = {
|
||||
"TheDeskAccent": accentC,
|
||||
"TheDeskActive": activeC,
|
||||
"TheDeskModal": modalC,
|
||||
"TheDeskBottom": bottomC,
|
||||
"TheDeskPostbox": postboxC,
|
||||
"TheDeskSubcolor": subcolorC
|
||||
}
|
||||
}else{
|
||||
var advanceTheme = {}
|
||||
}
|
||||
|
||||
var my = JSON.parse(multi)[0].name;
|
||||
var id = $("#custom-edit-sel").val();
|
||||
if (id == "add_new") {
|
||||
id = makeCID();
|
||||
}
|
||||
localStorage.setItem("customtheme-id", id)
|
||||
var json = {
|
||||
"name": nameC,
|
||||
"author": my,
|
||||
@@ -541,29 +560,21 @@ function customComp() {
|
||||
"secondary": secondaryC,
|
||||
"text": textC
|
||||
},
|
||||
"props": {
|
||||
"TheDeskAccent": accentC
|
||||
},
|
||||
"props": advanceTheme,
|
||||
"id": id
|
||||
}
|
||||
$("#custom_json").val(JSON.stringify(json));
|
||||
themes();
|
||||
themes("custom");
|
||||
$("#custom").prop("checked", true);
|
||||
$("#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");
|
||||
for(var i =0;i <= 8; i++){
|
||||
$("#color-picker" + i + "-wrap").html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
$("#color-picker" + i + "_value").val("");
|
||||
pickerDefine(i, "fff");
|
||||
}
|
||||
postMessage(["themeJsonCreate", JSON.stringify(json)], "*")
|
||||
}
|
||||
function deleteIt() {
|
||||
@@ -572,18 +583,11 @@ function deleteIt() {
|
||||
$("#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");
|
||||
for(var i =0;i <= 8; i++){
|
||||
$("#color-picker" + i + "-wrap").html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
$("#color-picker" + i + "_value").val("");
|
||||
pickerDefine(i, "fff");
|
||||
}
|
||||
postMessage(["themeJsonDelete", id], "*")
|
||||
}
|
||||
function ctLoad() {
|
||||
@@ -615,49 +619,58 @@ function custom() {
|
||||
$("#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");
|
||||
for(var i =0;i <= 8; i++){
|
||||
$("#color-picker" + i + "-wrap").html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
$("#color-picker" + i + "_value").val("");
|
||||
pickerDefine(i, "fff");
|
||||
}
|
||||
$("#delTheme").addClass("disabled")
|
||||
} else {
|
||||
$("#delTheme").removeClass("disabled")
|
||||
postMessage(["themeJsonRequest", id], "*")
|
||||
}
|
||||
}
|
||||
function customConnect(args) {
|
||||
function customConnect(raw) {
|
||||
var args = raw[0]
|
||||
$("#custom_name").val(args.name);
|
||||
$("#custom_desc").val(args.desc);
|
||||
$("#" + args.base).prop("checked", true);
|
||||
//Primary
|
||||
$("#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);
|
||||
//Secondary
|
||||
$("#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);
|
||||
//Text
|
||||
$("#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))
|
||||
//TheDesk Only
|
||||
advancedConncet(args, "TheDeskAccent", "secondary", 3)
|
||||
advancedConncet(args, "TheDeskActive", "primary", 4)
|
||||
advancedConncet(args, "TheDeskModal", "secondary", 5)
|
||||
advancedConncet(args, "TheDeskBottom", "primary", 6)
|
||||
advancedConncet(args, "TheDeskPostbox", "primary", 7)
|
||||
advancedConncet(args, "TheDeskSubcolor", "primary", 8)
|
||||
$("#custom_json").val(raw[1]);
|
||||
}
|
||||
function advancedConncet(args, tar, sub, i){
|
||||
if (args.props) {
|
||||
if (args.props.TheDeskAccent) {
|
||||
var accent = args.props.TheDeskAccent;
|
||||
if (args.props[tar]) {
|
||||
var color = args.props[tar];
|
||||
$("#pickers").addClass("advanceTheme")
|
||||
$(".advanced").removeClass("hide")
|
||||
} else {
|
||||
var accent = args.vars.secondary;
|
||||
var color = args.vars[sub];
|
||||
}
|
||||
} else {
|
||||
var accent = args.vars.secondary;
|
||||
var color = args.vars[sub];
|
||||
}
|
||||
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
|
||||
pickerDefine(3, rgbToHex(accent))
|
||||
$("#custom_json").val(JSON.stringify(args));
|
||||
$("#color-picker"+i+"-wrap").html('<div class="color-picker" id="color-picker'+i+'"></div>')
|
||||
$("#color-picker"+i+"_value").val(color);
|
||||
pickerDefine(i, rgbToHex(color))
|
||||
}
|
||||
function customImp() {
|
||||
var json = $("#custom_import").val();
|
||||
@@ -670,6 +683,10 @@ function customImp() {
|
||||
})
|
||||
}
|
||||
}
|
||||
function advanced(){
|
||||
$(".advanced").toggleClass("hide")
|
||||
$("#pickers").toggleClass("advanceTheme")
|
||||
}
|
||||
function clearCustomImport() {
|
||||
$("#custom_import").val("");
|
||||
}
|
||||
|
@@ -134,14 +134,18 @@ function npCore(arg) {
|
||||
media(arg.path, "image/png", "new");
|
||||
}
|
||||
} else if (platform == "darwin") {
|
||||
if (flag && arg.existsArtwork) {
|
||||
media(arg.artworks[0].data, "image/png", "new");
|
||||
if (flag && arg.artwork) {
|
||||
media(arg.artwork, "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);
|
||||
if(arg.album){
|
||||
if(arg.album.name){
|
||||
content = content.replace(regExp, arg.album.name);
|
||||
}
|
||||
}
|
||||
var regExp = new RegExp("{artist}", "g");
|
||||
content = content.replace(regExp, arg.artist);
|
||||
var regExp = new RegExp("{url}", "g");
|
||||
|
12
app/main.js
12
app/main.js
@@ -99,16 +99,8 @@ function isFile(file) {
|
||||
}
|
||||
// 全てのウィンドウが閉じたら終了
|
||||
app.on('window-all-closed', function () {
|
||||
if (process.platform != 'darwin') {
|
||||
electron.session.defaultSession.clearCache(() => { })
|
||||
app.quit();
|
||||
}
|
||||
});
|
||||
// macOSでウィンドウを閉じた後に再度開けるようにする
|
||||
app.on('activate', function () {
|
||||
if (mainWindow == null) {
|
||||
createWindow();
|
||||
}
|
||||
electron.session.defaultSession.clearCache(() => { })
|
||||
app.quit();
|
||||
});
|
||||
|
||||
function createWindow() {
|
||||
|
@@ -23,7 +23,7 @@ function css(mainWindow) {
|
||||
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)));
|
||||
fs.writeFileSync(themecss, JSON5.stringify(JSON5.parse(arg)));
|
||||
if (JSON5.parse(arg)["id"]) {
|
||||
e.sender.webContents.send('theme-json-create-complete', "");
|
||||
} else {
|
||||
@@ -39,13 +39,14 @@ function css(mainWindow) {
|
||||
})
|
||||
ipc.on('theme-json-request', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
var json = JSON.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
e.sender.webContents.send('theme-json-response', json);
|
||||
var raw = fs.readFileSync(themecss, 'utf8')
|
||||
var json = JSON5.parse(raw);
|
||||
e.sender.webContents.send('theme-json-response', [json, raw]);
|
||||
})
|
||||
ipc.on('theme-css-request', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
try {
|
||||
var json = JSON.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
|
||||
var primary = json.vars.primary;
|
||||
var secondary = json.vars.secondary;
|
||||
@@ -67,21 +68,52 @@ function css(mainWindow) {
|
||||
if (json.props.TheDeskAccent) {
|
||||
var emphasized = json.props.TheDeskAccent
|
||||
} else {
|
||||
var emphasized = secondary;
|
||||
var emphasized = secondary
|
||||
}
|
||||
if (json.props.TheDeskActive) {
|
||||
var active = json.props.TheDeskActive
|
||||
} else {
|
||||
var active = primary
|
||||
}
|
||||
if (json.props.TheDeskModal) {
|
||||
var modal = json.props.TheDeskModal
|
||||
} else {
|
||||
var modal = secondary
|
||||
}
|
||||
if (json.props.TheDeskBottom) {
|
||||
var bottom = json.props.TheDeskBottom
|
||||
} else {
|
||||
var bottom = primary
|
||||
}
|
||||
if (json.props.TheDeskPostbox) {
|
||||
var postbox = json.props.TheDeskPostbox
|
||||
} else {
|
||||
var postbox = primary
|
||||
}
|
||||
if (json.props.TheDeskSubcolor) {
|
||||
var subcolor = json.props.TheDeskSubcolor
|
||||
} else {
|
||||
var subcolor = primary
|
||||
}
|
||||
} else {
|
||||
var emphasized = primary;
|
||||
var emphasized = primary
|
||||
var acs = secondary
|
||||
var active = primary
|
||||
var modal = secondary
|
||||
var bottom = primary
|
||||
var postbox = primary
|
||||
var subcolor = primary
|
||||
}
|
||||
|
||||
var css = ".customtheme {--bg:" + secondary + ";--drag:" + drag + ";" +
|
||||
"--color:" + text + ";--beforehover:" + beforehover + ";--modal:" +
|
||||
secondary + ";--subcolor:" + primary + ";--box:" + primary +
|
||||
";--sidebar:" + primary + ";--shared:" + emphasized + ";" +
|
||||
"--notfbox:" + secondary + ";--emphasized:" + primary + ";--his-data:" +
|
||||
modal + ";--subcolor:" + subcolor + ";--box:" + subcolor +
|
||||
";--sidebar:" + bottom + ";--shared:" + emphasized + ";" +
|
||||
"--notfbox:" + secondary + ";--emphasized:" + active + ";--his-data:" +
|
||||
secondary +
|
||||
";--active:" + primary + ";--postbox:" + primary + ";--modalfooter:" +
|
||||
";--active:" + active + ";--postbox:" + postbox + ";--modalfooter:" +
|
||||
primary +
|
||||
";--accentbtn:" + primary + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare + "}"+
|
||||
";--accentbtn:" + subcolor + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare + "}"+
|
||||
"--gray:" + gray + ";"+
|
||||
".customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
e.sender.webContents.send('theme-css-response', css);
|
||||
@@ -92,15 +124,19 @@ function css(mainWindow) {
|
||||
})
|
||||
ipc.on('theme-json-list', function (e, arg) {
|
||||
fs.readdir(app.getPath("userData"), function (err, files) {
|
||||
if (err) throw err;
|
||||
if (err || !files) throw err;
|
||||
var fileList = files.filter(function (file) {
|
||||
var tfile = join(app.getPath("userData"), file);
|
||||
return fs.statSync(tfile).isFile() && /.*\.thedesktheme$/.test(tfile); //絞り込み
|
||||
if(file.match(/\.thedesktheme$/)){
|
||||
var tfile = join(app.getPath("userData"), file)
|
||||
return fs.statSync(tfile).isFile() && /.*\.thedesktheme$/.test(tfile)
|
||||
}else{
|
||||
return null
|
||||
}
|
||||
})
|
||||
var themes = [];
|
||||
for (var i = 0; i < fileList.length; i++) {
|
||||
var themecss = join(app.getPath("userData"), fileList[i]);
|
||||
var json = JSON.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
themes.push({
|
||||
name: json.name,
|
||||
id: json.id
|
||||
|
@@ -15,7 +15,11 @@ function np(mainWindow) {
|
||||
if (platform == "darwin") {
|
||||
try {
|
||||
const nowplaying = require("itunes-nowplaying-mac");
|
||||
const value = await nowplaying.getRawData();
|
||||
let value = await nowplaying();
|
||||
|
||||
const artwork = await nowplaying.getThumbnailBuffer(value.databaseID);
|
||||
const base64 = artwork.toString('base64');
|
||||
value.artwork = base64
|
||||
e.sender.webContents.send('itunes-np', value);
|
||||
} catch (error) {
|
||||
// エラーを返す
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "thedesk",
|
||||
"version": "18.11.0",
|
||||
"version": "18.11.2",
|
||||
"description": "TheDesk is a Mastodon client for PC.",
|
||||
"repository": "https://github.com/cutls/TheDesk",
|
||||
"main": "main.js",
|
||||
@@ -58,15 +58,15 @@
|
||||
"materialize-css": "^1.0.0",
|
||||
"node-notifier": "^6.0.0",
|
||||
"sumchecker": "^3.0.0",
|
||||
"sweetalert2": "^8.18.0",
|
||||
"sweetalert2": "^8.18.3",
|
||||
"vue": "^2.6.10"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"font-manager": "^0.3.0",
|
||||
"itunes-nowplaying-mac": "kPherox/itunes-nowplaying-mac#get-artworks-base64"
|
||||
"itunes-nowplaying-mac": "0.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"electron": "^6.0.11",
|
||||
"electron": "^6.0.12",
|
||||
"electron-builder": "^21.1.5",
|
||||
"electron-rebuild": "^1.8.6",
|
||||
"readline-sync": "1.4.10"
|
||||
@@ -107,7 +107,8 @@
|
||||
"icon": "build/icons",
|
||||
"target": [
|
||||
"zip",
|
||||
"snap"
|
||||
"snap",
|
||||
"deb"
|
||||
],
|
||||
"category": "Network"
|
||||
},
|
||||
|
@@ -4,7 +4,8 @@
|
||||
"プロフィールディレクトリの表示",
|
||||
"ホワイトリスト式のトレンドタグ(3.0の機能)",
|
||||
"Featuredハッシュタグの追加",
|
||||
"ホームタイムラインと通知タイムラインの未読管理"
|
||||
"ホームタイムラインと通知タイムラインの未読管理",
|
||||
"自分がどの選択肢に投票したかを表示"
|
||||
],
|
||||
"2.9.3": [],
|
||||
"2.9.2": [],
|
||||
@@ -18,7 +19,8 @@
|
||||
"アンケートの作成と投票",
|
||||
"keybase等のアカウント認証対応",
|
||||
"検索のオフセット等",
|
||||
"ブロックされているアカウントを表示したときに「ブロックされています」と表示"
|
||||
"ブロックされているアカウントを表示したときに「ブロックされています」と表示",
|
||||
"公開範囲を指定してブースト"
|
||||
],
|
||||
"2.7.4": [],
|
||||
"2.7.3": [],
|
||||
@@ -73,7 +75,10 @@
|
||||
"1.6.1": [],
|
||||
"1.6.0": ["トゥートのピン留め"],
|
||||
"1.5.1": [],
|
||||
"1.5.0": ["Mastodonのサーバー規定値による投稿範囲の変更"],
|
||||
"1.5.0": [
|
||||
"Mastodonのサーバー規定値による投稿範囲の変更",
|
||||
"Mastodonのサーバー規定値による閲覧注意画像設定"
|
||||
],
|
||||
"1.4.7": [],
|
||||
"1.4.6": [],
|
||||
"1.4.5": [],
|
||||
|
@@ -718,22 +718,76 @@
|
||||
<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-11-0" class="release-do" style="display:none; ">
|
||||
<div id="release-Usamin_18-11-2" 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.11.0)</h5>
|
||||
・設定やアカウントマネージャーでウィンドウを閉じるときに時間がかかる不具合を修正<br>
|
||||
・公開範囲を指定してブースト<br>
|
||||
・ストリーミングの再接続を無限に繰り返す不具合を修正<br>
|
||||
・たまにアカウント選択とその左のアイコンが一致しないことがあったので修正<br>
|
||||
・アルゼンチン方言スペイン語を追加<br>
|
||||
・カスタム絵文字のカテゴリ分けを表示(絞り込みはまだ)<br>
|
||||
・ログインするときにバージョンの制約で使用できない機能をリスト表示するように<br>
|
||||
・トレンドタグのグラフのデザイン変更<br>
|
||||
・開発ツールを自動で展開<br>
|
||||
・棒読みちゃんと連携(要設定)<br>
|
||||
<h5>Release Note Usamin (18.11.2)</h5>
|
||||
・お気に入り登録/BTできない不具合を修正
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a>
|
||||
・画像に説明を追加し、TLに表示する。
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a>
|
||||
<h5>Release Note Usamin (18.11.1)</h5>
|
||||
・WIP: iTunesのNowPlayingをCatalina(つまりミュージックアプリ)に対応
|
||||
<a onclick="udgEx('toneji@minohdon.jp','main')" class="contributor">
|
||||
<img src="https://user-images.githubusercontent.com/17561618/66582029-162df380-ebbc-11e9-8a6f-1832b3a35d89.png">toneji
|
||||
</a>
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a>
|
||||
<a onclick="udgEx('rinsuki@mstdn.rinsuki.net','main')" class="contributor">
|
||||
<img src="https://user-images.githubusercontent.com/17561618/66582300-83da1f80-ebbc-11e9-8a76-b3513fe3300f.png">rinsuki
|
||||
</a>(External package)
|
||||
<br>
|
||||
・テーマとして設定できる色の項目数が倍増
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a>
|
||||
<br>
|
||||
・macOSで閉じたときの挙動を変更。すべてのプラットフォームで同じ挙動をします。
|
||||
<a onclick="udgEx('kPherox@pl.kpherox.dev','main')" class="contributor">
|
||||
<img src="https://user-images.githubusercontent.com/17561618/66582379-a3714800-ebbc-11e9-8402-d81a35a3be9f.png">kPherox
|
||||
</a>
|
||||
<a onclick="udgEx('toneji@minohdon.jp','main')" class="contributor">
|
||||
<img src="https://user-images.githubusercontent.com/17561618/66582029-162df380-ebbc-11e9-8a6f-1832b3a35d89.png">toneji
|
||||
</a>
|
||||
<br>
|
||||
・お気に入り登録時のカウンターがおかしい不具合を修正
|
||||
<a onclick="udgEx('osapon@mstdn.nere9.help','main')" class="contributor">
|
||||
<img src="https://user-images.githubusercontent.com/17561618/66582531-eb906a80-ebbc-11e9-9969-7c245cb853c6.png">osapon
|
||||
</a>
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a>
|
||||
<br>
|
||||
・設定画面で機能しないリンクがあったのを修正
|
||||
<a onclick="udgEx('osapon@mstdn.nere9.help','main')" class="contributor">
|
||||
<img src="https://user-images.githubusercontent.com/17561618/66582531-eb906a80-ebbc-11e9-9969-7c245cb853c6.png">osapon
|
||||
</a>
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a><br>
|
||||
・Windowsでの通知の方式を変更
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a><br>
|
||||
・Linuxの設定画面でのエラーを修正
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a><br>
|
||||
・APIレベルの「常に閲覧注意としてマーク」を追加
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a><br>
|
||||
・言語設定のデザインを変更
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a><br>
|
||||
</div>
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
|
@@ -56,7 +56,9 @@
|
||||
"lang_postimg_previewdis": "cannot preview",
|
||||
"lang_postimg_aftupload": "You cannot change accounts after uploading.",
|
||||
"lang_postimg_failupload": "Failed",
|
||||
"lang_postimg_delete": "Delete this image.",
|
||||
"lang_postimg_delete": "Click to add description, right-click to delete this",
|
||||
"lang_postimg_desc": "Description",
|
||||
"lang_postimg_leadContext": "right-click the thumbnail to delete this",
|
||||
"lang_post_tagTL": "This toot does not contain a default tag. This toot will not be shown on Local TL. Continue?",
|
||||
"lang_post_tagVis": "This toot(not 'public' toot) is not shown on this tag's TL.",
|
||||
"lang_post_cwtitle": "Auto CW Alert",
|
||||
|
@@ -35,6 +35,13 @@
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced":"Advanced options(6 additional colors)",
|
||||
"advancedWarn":"Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom":"Background of bottom bar",
|
||||
"postbox":"Background of post box and menu",
|
||||
"subcolor":"Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"text": "Text color",
|
||||
@@ -145,11 +152,11 @@
|
||||
"linkwarn": "TheDesk save your data on thedesk.top server.",
|
||||
"connect": "Connect",
|
||||
"disconnect": "Disconnect",
|
||||
"templeteedit": "Edit a template",
|
||||
"templeteeditwarn": "",
|
||||
"templete1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",
|
||||
"templete2": "macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}",
|
||||
"templete3": "",
|
||||
"templateedit": "Edit a template",
|
||||
"templateeditwarn": "",
|
||||
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",
|
||||
"template2": "macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}",
|
||||
"template3": "",
|
||||
"postartwork": "Attach an Artwork of Spotify",
|
||||
"tts": "TTS(text to speech) Preferences",
|
||||
"bouyomi": "BouyomiChan connect",
|
||||
|
@@ -62,7 +62,7 @@
|
||||
"btedPeople": "Gente que lo retooteó",
|
||||
"useOtherAcct1": "Usar otra cuenta",
|
||||
"useOtherAcct2": ":Dejar de marcar como favorito y deshacer retoot están deshabilitados.",
|
||||
"btWithVis": "Boost with visibility",
|
||||
"btWithVis": "Retoots visibles",
|
||||
"reply": "Responder",
|
||||
"bt": "Retootear",
|
||||
"favRegist": "Marcar como favorito",
|
||||
|
@@ -52,7 +52,7 @@
|
||||
"lang_emoji_get": "Obtené emojis",
|
||||
"lang_emoji_custom": "Emojis personalizados",
|
||||
"lang_defaultemojis_text": "Emojis de {{cat}}",
|
||||
"lang_emoji_uncat": "Uncategorized",
|
||||
"lang_emoji_uncat": "Sin categoría",
|
||||
"lang_postimg_previewdis": "no se puede previsualizar",
|
||||
"lang_postimg_aftupload": "No podés cambiar cuentas después de subir.",
|
||||
"lang_postimg_failupload": "Falló",
|
||||
@@ -165,7 +165,7 @@
|
||||
"lang_parse_url": "Analizador de direcciones web",
|
||||
"lang_parse_tagTL": "Línea temporal de {{tag}}",
|
||||
"lang_parse_tagtoot": "Toot con {{tag}}",
|
||||
"lang_parse_tagpin": "Pin {{tag}}",
|
||||
"lang_parse_tagpin": "Fijar {{tag}}",
|
||||
"lang_parse_public": "Público",
|
||||
"lang_parse_unlisted": "Sin listar",
|
||||
"lang_parse_private": "Privado",
|
||||
|
@@ -56,7 +56,9 @@
|
||||
"lang_postimg_previewdis": "プレビューできません。",
|
||||
"lang_postimg_aftupload": "アップロード後はアカウントを切り替えられません。",
|
||||
"lang_postimg_failupload": "アップロードに失敗しました。",
|
||||
"lang_postimg_delete": "この画像を削除します",
|
||||
"lang_postimg_delete": "クリック: 画像に説明を追加/右クリック: 削除",
|
||||
"lang_postimg_desc": "説明",
|
||||
"lang_postimg_leadContext": "画像を削除するためには右クリック",
|
||||
"lang_post_tagTL": "デフォルトタグが挿入されていません。このまま投稿するとローカルには表示されません。",
|
||||
"lang_post_tagVis": "公開範囲が「公開」以外だと、タグTLに表示されません。(一部インスタンスを除く)",
|
||||
"lang_post_cwtitle": "長文投稿の警告",
|
||||
|
@@ -35,10 +35,17 @@
|
||||
"themeSel": "テーマの選択",
|
||||
"customtheme": "カスタムテーマの作成・編集",
|
||||
"customthemeDirection": "色の系統",
|
||||
"advanced":"拡張項目(6つ)を開く",
|
||||
"advancedWarn":"拡張項目は設定しないと「指定なし」に、基本3項目は白(fff)になります。拡張項目を閉じた状態で「変更」すると拡張項目はすべてリセットされます。",
|
||||
"primary": "全体の背景色など",
|
||||
"secondarycolor": "補助要素に使われる背景色",
|
||||
"text": "テキストの色",
|
||||
"accent": "ブーストの背景色など",
|
||||
"active": "CWボタンやメニュー選択時の背景色",
|
||||
"modal": "モーダルウィンドウの背景色",
|
||||
"bottom":"下のメニューバーの背景色",
|
||||
"postbox":"投稿ボックスやメニューの色",
|
||||
"subcolor":"背景に準ずる色",
|
||||
"add_new": "新規作成",
|
||||
"name": "名前",
|
||||
"desc": "説明",
|
||||
@@ -154,11 +161,11 @@
|
||||
"tts": "読み上げの設定",
|
||||
"bouyomi": "棒読みちゃん連携",
|
||||
"bouyomiWarn": "「棒読みちゃん用のWebSocket受付プラグイン」が必要です。",
|
||||
"speed": "読み上げの速さ",
|
||||
"speed": "速さ",
|
||||
"speedwarn": "1-100まで、デフォルトは10。",
|
||||
"pitch": "読み上げの高さ",
|
||||
"pitch": "高さ",
|
||||
"pitchwarn": "0-100まで、デフォルトは50。(大きくなるほど高い)",
|
||||
"vol": "読み上げの音量",
|
||||
"vol": "音量",
|
||||
"volwarn": "0-100まで、デフォルトは100。",
|
||||
"volwarn80": "0-100まで、デフォルトは80。",
|
||||
"test": "テスト",
|
||||
|
@@ -3,6 +3,9 @@
|
||||
"download":"開始",
|
||||
"portable":"ポータブル版",
|
||||
"installer":"インストーラー版(推奨)",
|
||||
"linux":"zip版",
|
||||
"linuxdeb":"deb版(対応の場合推奨)",
|
||||
"linuxsnap":"snap版",
|
||||
"snap":"snap版はSnapcraft等よりDLしてください。",
|
||||
"sureupd":"アップデートは必ず行ってください",
|
||||
"skipupd":"アップデートをスキップする",
|
||||
|
@@ -1,5 +1,5 @@
|
||||
const fs = require("fs")
|
||||
let ver = "Usamin (18.11.0)"
|
||||
let ver = "Usamin (18.11.2)"
|
||||
const execSync = require('child_process').execSync;
|
||||
let gitHash = execSync("git rev-parse HEAD").toString().trim()
|
||||
fs.writeFileSync("../../git", gitHash)
|
||||
@@ -10,8 +10,8 @@ if (process.argv.indexOf("--automatic") === -1) {
|
||||
}
|
||||
}
|
||||
console.log("Constructing view files " + ver + ": make sure to update package.json")
|
||||
const langs = ["ja", "en", "ps", "bg", "cs", "de", "es-AR"]
|
||||
const langsh = ["日本語", "English", "Crowdin translate system(beta)", "български", "Česky", "Deutsch", "Spanish, Argentina"]
|
||||
const langs = ["ja", "en", "bg", "cs", "de", "es-AR", "ps"]
|
||||
const langsh = ["日本語", "English", "български", "Česky", "Deutsch", "Spanish, Argentina", "Crowdin translate system(beta)"]
|
||||
const simples = ["acct", "index", "setting", "update", "setting"]
|
||||
const samples = ["acct.sample.html", "index.sample.html", "setting.sample.html", "update.sample.html", "setting.sample.js"]
|
||||
const pages = ["acct.html", "index.html", "setting.html", "update.html", "setting.vue.js"]
|
||||
@@ -23,7 +23,7 @@ for (let n = 0; n < langs.length; n++) {
|
||||
if (!fs.existsSync(targetDir)) {
|
||||
fs.mkdirSync(targetDir);
|
||||
}
|
||||
langstr = langstr + '<a onclick="changelang(\'' + lang + '\')" class="pointer" style="margin-right:5px;">' + langsh[n] + '</a>'
|
||||
langstr = langstr + '<a onclick="changelang(\'' + lang + '\')" class="pointer" style="margin:4px;border: 1px solid var(--color); padding: 3px">' + langsh[n] + '</a>'
|
||||
fs.writeFileSync("../" + lang + "/main.js", fs.readFileSync("language/" + lang + "/main.json", 'utf8').replace(/^{/, "var lang = {"))
|
||||
}
|
||||
for (let i = 0; i < samples.length; i++) {
|
||||
@@ -38,7 +38,9 @@ for (let i = 0; i < samples.length; i++) {
|
||||
Object.keys(target).forEach(function (key) {
|
||||
refKey.push(key)
|
||||
let str = target[key]
|
||||
str = str.replace(/"/g, '\\"')
|
||||
if(pages[i]=="setting.vue.js"){
|
||||
str = str.replace(/"/g, '\\"')
|
||||
}
|
||||
var regExp = new RegExp("@@" + key + "@@", "g")
|
||||
source = source.replace(regExp, str)
|
||||
})
|
||||
@@ -50,6 +52,11 @@ for (let i = 0; i < samples.length; i++) {
|
||||
} else {
|
||||
var str = englishRefer[tarKey]
|
||||
}
|
||||
if(pages[i]=="setting.vue.js"){
|
||||
if(str){
|
||||
str = str.replace(/"/g, '\\"')
|
||||
}
|
||||
}
|
||||
var regExp = new RegExp("@@" + tarKey + "@@", "g")
|
||||
source = source.replace(regExp, str)
|
||||
}
|
||||
|
@@ -46,7 +46,7 @@
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>@@setlang@@</h5>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
|
||||
@@langlist@@
|
||||
<h5>@@backup@@</h5>
|
||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||
@@ -160,7 +160,9 @@
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="advanced()">@@advanced@@</button>
|
||||
<span class="advanced hide">@@advancedWarn@@</span>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>@@secondarycolor@@
|
||||
@@ -183,13 +185,48 @@
|
||||
</div>
|
||||
<input type="hidden" id="color-picker2_value">
|
||||
</div>
|
||||
<div>
|
||||
<div class="advanced hide">
|
||||
<h5>Accent</h5>@@accent@@
|
||||
<div id="color-picker3-wrap">
|
||||
<div class="color-picker" id="color-picker3"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker3_value">
|
||||
</div>
|
||||
<div class="advanced hide">
|
||||
<h5>Active</h5>@@active@@
|
||||
<div id="color-picker4-wrap">
|
||||
<div class="color-picker" id="color-picker4"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker4_value">
|
||||
</div>
|
||||
<div class="advanced hide">
|
||||
<h5>Modal</h5>@@modal@@
|
||||
<div id="color-picker5-wrap">
|
||||
<div class="color-picker" id="color-picker5"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker5_value">
|
||||
</div>
|
||||
<div class="advanced hide">
|
||||
<h5>Bottom</h5>@@bottom@@
|
||||
<div id="color-picker6-wrap">
|
||||
<div class="color-picker" id="color-picker6"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker6_value">
|
||||
</div>
|
||||
<div class="advanced hide">
|
||||
<h5>Postbox</h5>@@postbox@@
|
||||
<div id="color-picker7-wrap">
|
||||
<div class="color-picker" id="color-picker7"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker7_value">
|
||||
</div>
|
||||
<div class="advanced hide">
|
||||
<h5>Subcolor</h5>@@subcolor@@
|
||||
<div id="color-picker8-wrap">
|
||||
<div class="color-picker" id="color-picker8"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker8_value">
|
||||
</div>
|
||||
</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>
|
||||
|
@@ -92,7 +92,11 @@
|
||||
<button class="waves-effect btn windows hide" onclick="update('portable')"
|
||||
style="margin-left:15px;">@@portable@@</button>
|
||||
<button class="waves-effect btn linux hide" onclick="update('linux')"
|
||||
style="margin-left:15px;">@@download@@</button>
|
||||
style="margin-left:15px;">@@linux@@</button>
|
||||
<button class="waves-effect btn linux hide" onclick="update('linuxdeb')"
|
||||
style="margin-left:15px;">@@linuxdeb@@</button>
|
||||
<button class="waves-effect btn linux hide" onclick="update('linuxsnap')"
|
||||
style="margin-left:15px;">@@linuxsnap@@</button>
|
||||
<button class="waves-effect btn mac hide" onclick="update('mac')"
|
||||
style="margin-left:15px;">@@download@@</button>
|
||||
<br>
|
||||
@@ -169,13 +173,17 @@
|
||||
var file = "TheDesk-ia32.exe";
|
||||
}
|
||||
} else if (sel == "linux") {
|
||||
if (bit == "x64") {
|
||||
var url = json["linuxx64"];
|
||||
var file = "TheDesk-linux-x64.zip";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["linuxia64"];
|
||||
var file = "TheDesk-linux-ia32.zip";
|
||||
}
|
||||
var url = json["linuxx64"];
|
||||
var file = "thedesk.zip";
|
||||
} else if (sel == "linuxdeb") {
|
||||
var url = json["linuxdeb"];
|
||||
var url = json["mac"];
|
||||
postMessage(["openUrl", url], "*")
|
||||
return false;
|
||||
} else if (sel == "linuxsnap") {
|
||||
var url = json["linuxsnap"];
|
||||
postMessage(["openUrl", url], "*")
|
||||
return false;
|
||||
} else if (sel == "mac") {
|
||||
var url = json["mac"];
|
||||
postMessage(["openUrl", url], "*")
|
||||
|
@@ -932,10 +932,10 @@ electron-rebuild@^1.8.6:
|
||||
spawn-rx "^3.0.0"
|
||||
yargs "^13.2.4"
|
||||
|
||||
electron@^6.0.11:
|
||||
version "6.0.11"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-6.0.11.tgz#64effa71397045779a1ddbf51312a41ccf26f491"
|
||||
integrity sha512-mi1oHmeFIQrg+CDQ6lbugZAloOxuWPm/ecEKYe1230PGlDoWND7SYStiWQ2eI4YXAEOL/NvuY88ogemu1qhdBg==
|
||||
electron@^6.0.12:
|
||||
version "6.0.12"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-6.0.12.tgz#85bf0061e32f660256cfde95488f1cb75253bc94"
|
||||
integrity sha512-70ODZa1RP6K0gE9IV9YLCXPSyhLjXksCuYSSPb3MljbfwfHo5uE6X0CGxzm+54YuPdE2e7EPnWZxOOsJYrS5iQ==
|
||||
dependencies:
|
||||
"@types/node" "^10.12.18"
|
||||
electron-download "^4.1.0"
|
||||
@@ -2700,10 +2700,10 @@ supports-color@^5.3.0:
|
||||
dependencies:
|
||||
has-flag "^3.0.0"
|
||||
|
||||
sweetalert2@^8.18.0:
|
||||
version "8.18.0"
|
||||
resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-8.18.0.tgz#e8536aa0b1a1474ef36e5350ff4ae0cf473478b3"
|
||||
integrity sha512-t8r4oIisUd/fPsd4/YKuiWTKnrxZsolUVk/w7nGhMu5MKsuGh6J5sQ9Jtio+5xKg/w5QOJpH8TUhb5INuVo/YQ==
|
||||
sweetalert2@^8.18.3:
|
||||
version "8.18.3"
|
||||
resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-8.18.3.tgz#1cb6b5b0f28fe4b125cb7f8a9110315f5458b748"
|
||||
integrity sha512-ptDszEk0q8pUorWAXiVj1aafbG6IAO8kAZepeyfphSwb4vaM5JSXnqek/s8ZyIkPcH9M/l3QaoR2X9V0KD0VHA==
|
||||
|
||||
tar@^4.4.8:
|
||||
version "4.4.11"
|
||||
|
Reference in New Issue
Block a user