Merge pull request #66 from cutls/WIP-(before-CI)

TheDesk Usaimin (18.3.2)
This commit is contained in:
Cutls 2019-05-06 19:36:08 +09:00 committed by GitHub
commit 09b7b8633e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
64 changed files with 5475 additions and 4280 deletions

2
.gitignore vendored
View File

@ -5,8 +5,6 @@
TheDesk-* TheDesk-*
app/build app/build
build build
make.js
make_js.js
app/.DS_Store app/.DS_Store
.DS_Store .DS_Store
.vs/* .vs/*

View File

@ -1,5 +1,7 @@
# TheDesk # TheDesk
TheDesk Minami (19)はVueで書き直します(rewrite-vueブランチ参照)。18までのバージョンはTheDesk Kawaii (20)以降で継続します。
[![Build Status](https://travis-ci.org/cutls/TheDesk.svg?branch=master)](https://travis-ci.org/cutls/TheDesk) [![Build Status](https://travis-ci.org/cutls/TheDesk.svg?branch=master)](https://travis-ci.org/cutls/TheDesk)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/thedesk/localized.svg)](https://translate.thedesk.top/project/thedesk) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/thedesk/localized.svg)](https://translate.thedesk.top/project/thedesk)
Mastodon/Misskey client for PC(Windows/Linux/macOS) Mastodon/Misskey client for PC(Windows/Linux/macOS)
@ -27,6 +29,8 @@ The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.o
* [ico](https://dl.thedesk.top/press/TheDesk.ico) * [ico](https://dl.thedesk.top/press/TheDesk.ico)
* [icns](https://dl.thedesk.top/press/TheDesk.icns) * [icns](https://dl.thedesk.top/press/TheDesk.icns)
The default sound of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/)
## Terms of Use/利用規約 ## Terms of Use/利用規約
* [利用規約(Terms of Use(ja))](https://thedesk.top/tos.html) * [利用規約(Terms of Use(ja))](https://thedesk.top/tos.html)

View File

@ -76,7 +76,7 @@ a,button{
<img src="./img/desk.png" style="max-width:70%;"> <img src="./img/desk.png" style="max-width:70%;">
<h5>TheDesk</h5> <h5>TheDesk</h5>
<div class='container'> <div class='container'>
<div class='area-name1'>External version</div> <div class='area-name1'>Display version</div>
<div class='area-data1' id="now"></div> <div class='area-data1' id="now"></div>
<div class='area-name2'>Internal version</div> <div class='area-name2'>Internal version</div>
<div class='area-data2' id="ver"></div> <div class='area-data2' id="ver"></div>
@ -87,13 +87,17 @@ a,button{
<div class='area-name5'>Node.js</div> <div class='area-name5'>Node.js</div>
<div class='area-data5' id="node"></div> <div class='area-data5' id="node"></div>
</div> </div>
<div class="cp">Copyright &copy; TheDesk 2018 All rights reserved.<br><a href="https://thedesk.top" target="_blank">Web site</a></div> <div class="cp">Copyright &copy; <a href="https://cutls.com/@Cutls" target="_blank">Cutls P</a> 2018 All rights reserved.<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" 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">
<br><a href="https://thedesk.top" target="_blank">Web site</a></div>
<button onclick="window.close()" class="btn waves-effect indigo" style="width:calc(100% - 10px);"><i class="material-icons left">close</i>Close</button> <button onclick="window.close()" class="btn waves-effect indigo" style="width:calc(100% - 10px);"><i class="material-icons left">close</i>Close</button>
<script type="text/javascript" src="./js/ui/theme.js"></script> <script type="text/javascript" src="./js/ui/theme.js"></script>
<script> <script>
$("#now").text(localStorage.getItem("ver")); $("#now").text(localStorage.getItem("ver"));
var electron = require("electron"); var electron = require("electron");
var remote=electron.remote; var remote=electron.remote;
const shell=electron.shell;
//JSON.parse(fs.readFileSync(info_path, 'utf8')); //JSON.parse(fs.readFileSync(info_path, 'utf8'));
console.log(process.versions); console.log(process.versions);
$("#node").text(process.version); $("#node").text(process.version);
@ -104,6 +108,9 @@ a,button{
var ver=m[1]; var ver=m[1];
$("#ver").text(ver); $("#ver").text(ver);
} }
$(document).on('click', 'a', e => {
</script> var url = $(e.target).attr('href');
<script type="text/javascript" src="./js/platform/end.js"></script> shell.openExternal(url);
return false;
});
</script>

View File

@ -30,6 +30,8 @@ option {
} }
#mainView { #mainView {
padding: 10px; padding: 10px;
overflow:scroll;
height: auto;
} }
#message { #message {
display: none; display: none;

View File

@ -138,7 +138,7 @@ iframe {
.area-toot .emoji,.area-toot .emoji-img{ .area-toot .emoji,.area-toot .emoji-img{
width: 20px; width: 20px;
vertical-align: middle; vertical-align: middle;
margin: -3px 0 0; margin:-1px 0;
} }
.faicon_FTL{ .faicon_FTL{
display:none; display:none;
@ -249,6 +249,29 @@ grid-area: toot;
margin:2px; margin:2px;
grid-area: side; grid-area: side;
} }
.quote-renote{
display: grid;
grid-template-columns: 43px 2fr 1fr;
grid-template-areas: 'ricon ruser' 'ricon rtext';
border: 1px solid;
margin-top: 3px;
padding: 1px;
border-radius: 3px;
}
.renote-icon{
grid-area: ricon;
}
.renote-icon img{
width:43px;
}
.renote-user{
grid-area: ruser;
}
.renote-text{
grid-area: rtext;
}
.btn-flat{ .btn-flat{
color:var(--color); color:var(--color);
} }
@ -321,6 +344,7 @@ grid-area: toot;
p { p {
margin: 0; margin: 0;
margin-bottom: 0px; margin-bottom: 0px;
line-height:20px;
} }
p:not(:last-child){ p:not(:last-child){
margin-bottom: 10px; margin-bottom: 10px;

View File

@ -190,7 +190,7 @@ function verck(ver) {
} }
} }
if(show){ if(show){
Materialize.toast(obj.Text+toot+'<span class="sml grey-text">(スライドして消去)</span>', 86400); Materialize.toast(escapeHTML(obj.Text)+toot+'<span class="sml grey-text">(スライドして消去)</span>', 86400);
} }
} }
@ -211,9 +211,6 @@ function infowebsocket(){
console.log(JSON.parse(mess.data)); console.log(JSON.parse(mess.data));
var obj=JSON.parse(mess.data); var obj=JSON.parse(mess.data);
if(obj.type!="counter"){ if(obj.type!="counter"){
if(obj.id*1<=localStorage.getItem("last-notice-id")){
}else{
localStorage.setItem("last-notice-id",obj.id) localStorage.setItem("last-notice-id",obj.id)
var show=true; var show=true;
if(obj.toot!=""){ if(obj.toot!=""){
@ -242,9 +239,8 @@ function infowebsocket(){
} }
} }
if(show){ if(show){
Materialize.toast(obj.text+toot+'<span class="sml grey-text">(スライドして消去)</span>', 86400); Materialize.toast(escapeHTML(obj.Text)+toot+'<span class="sml grey-text">(スライドして消去)</span>', 86400);
} }
}
}else{ }else{
$("#persons").text(obj.text); $("#persons").text(obj.text);
} }

View File

@ -54,7 +54,13 @@ function defEmoji(target){
var emojiraw = newpack.filter(function(item, index){ var emojiraw = newpack.filter(function(item, index){
if (item.short_name == target) return true; if (item.short_name == target) return true;
}); });
emoji=twemoji.convert.fromCodePoint(emojiraw[0].unified); var hex=emojiraw[0].unified.split("-");
if(hex.length===2){
emoji=twemoji.convert.fromCodePoint(hex[0])+twemoji.convert.fromCodePoint(hex[1]);
}else{
emoji=twemoji.convert.fromCodePoint(hex[0]);
}
console.log(emoji)
var now = $("#textarea").val(); var now = $("#textarea").val();
var selin = localStorage.getItem("cursor"); var selin = localStorage.getItem("cursor");
var now = $("#textarea").val(); var now = $("#textarea").val();

View File

@ -189,7 +189,7 @@ var lang={
"lang_parse_clientmute":"muted", "lang_parse_clientmute":"muted",
"lang_parse_mute":" will be muted. You can remove on preferences.", "lang_parse_mute":" will be muted. You can remove on preferences.",
"lang_parse_voted":"Voted", "lang_parse_voted":"Voted",
"lang_parse_vote":"Voted", "lang_parse_vote":"Vote",
"lang_parse_unvoted":"Show the result without voting", "lang_parse_unvoted":"Show the result without voting",
"lang_parse_endedvote":"Expired", "lang_parse_endedvote":"Expired",
"lang_parse_thread":"Show thread", "lang_parse_thread":"Show thread",

View File

@ -364,6 +364,28 @@ function misskeyLogin(url) {
"reaction-write", "reaction-write",
"vote-read", "vote-read",
"vote-write" "vote-write"
/*
"read:account",
"write:account",
"read:drive",
"write:drive",
"read:blocks",
"write:blocks",
"read:favorites",
"write:favorites",
"read:following",
"write:following",
"read:messaging",
"write:messaging",
"read:mutes",
"write:mutes",
"write:notes",
"read:notifications",
"write:notifications",
"read:reactions",
"write:reactions",
"write:votes"
*/
] ]
})); }));
httpreq.onreadystatechange = function() { httpreq.onreadystatechange = function() {
@ -520,7 +542,7 @@ function getdata(domain, at) {
console.log(json); console.log(json);
if (json.error) { if (json.error) {
console.error("Error:" + json.error); console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured+"Error:" + json.error, Materialize.toast(lang.lang_fatalerroroccured+"Error:" + escapeHTML(json.error),
5000); 5000);
return; return;
} }
@ -795,7 +817,7 @@ input.addEventListener("focus", function() {
Object.keys(json.instances).forEach(function(key) { Object.keys(json.instances).forEach(function(key) {
var url = json.instances[key]; var url = json.instances[key];
urls = urls + ' <a onclick="login(\'' + url.name + urls = urls + ' <a onclick="login(\'' + url.name +
'\')" class="pointer">' + url.name + '</a> '; '\')" class="pointer">' +escapeHTML(url.name) + '</a> ';
}); });
$("#ins-suggest").html(urls); $("#ins-suggest").html(urls);
} }

View File

@ -181,4 +181,21 @@ const {
} = require('electron'); } = require('electron');
webviewDom.addEventListener('new-window', function(e) { webviewDom.addEventListener('new-window', function(e) {
shell.openExternal(e.url); shell.openExternal(e.url);
}); });
function playSound() {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
context = new AudioContext();
context.createBufferSource().start(0);
context.decodeAudioData(request.response, function (buf) {
console.log(source)
source.buffer = buf;
source.loop = false;
});
source = context.createBufferSource();
volumeControl = context.createGain();
source.connect(volumeControl);
volumeControl.connect(context.destination);
volumeControl.gain.value=0.8
console.log(volumeControl)
source.start(0);
}

View File

@ -62,7 +62,7 @@ function formattime(date){
}else{ }else{
str=str+date.getMinutes() str=str+date.getMinutes()
} }
return str; return escapeHTML(str);
} }
function formattimeutc(date){ function formattimeutc(date){
var str=date.getUTCFullYear()+"-"; var str=date.getUTCFullYear()+"-";
@ -87,7 +87,7 @@ function formattimeutc(date){
}else{ }else{
str=str+date.getUTCMinutes() str=str+date.getUTCMinutes()
} }
return str; return escapeHTML(str);
} }
var electron = require("electron"); var electron = require("electron");
var ipc = electron.ipcRenderer; var ipc = electron.ipcRenderer;

View File

@ -35,7 +35,7 @@ function emojiToggle(reaction) {
//絵文字リスト挿入 //絵文字リスト挿入
function emojiGet(parse, started) { function emojiGet(parse, started) {
$('#emoji-list').html('Loading...'); $('#emoji-list').text('Loading...');
var acct_id = $("#post-acct-sel").val(); var acct_id = $("#post-acct-sel").val();
var domain = localStorage.getItem("domain_" + acct_id); var domain = localStorage.getItem("domain_" + acct_id);
if (localStorage.getItem("mode_" + domain) != "misskey") { if (localStorage.getItem("mode_" + domain) != "misskey") {
@ -52,7 +52,7 @@ function emojiGet(parse, started) {
console.error(error); console.error(error);
}).then(function (json) { }).then(function (json) {
if (parse == "true") { if (parse == "true") {
$('#emoji-list').html('Parsing...'); $('#emoji-list').text('Parsing...');
//絵文字をマストドン公式と同順にソート //絵文字をマストドン公式と同順にソート
json.sort(function (a, b) { json.sort(function (a, b) {
if (a.shortcode < b.shortcode) return -1; if (a.shortcode < b.shortcode) return -1;
@ -96,7 +96,7 @@ function emojiGet(parse, started) {
}) })
}); });
if (parse == "true") { if (parse == "true") {
$('#emoji-list').html('Parsing...'); $('#emoji-list').text('Parsing...');
//絵文字をマストドン公式と同順にソート //絵文字をマストドン公式と同順にソート
md.sort(function (a, b) { md.sort(function (a, b) {
if (a.shortcode < b.shortcode) return -1; if (a.shortcode < b.shortcode) return -1;

View File

@ -234,7 +234,7 @@ function voterefresh(acct_id,id){
}else{ }else{
var myvote=""; var myvote="";
} }
poll=poll+'<div class="pointer vote" onclick="vote(\''+acct_id+'\',\''+json.id+'\','+choice.id+')">'+choice.text+'('+choice.votes+''+myvote+')</div>'; poll=poll+'<div class="pointer vote" onclick="vote(\''+acct_id+'\',\''+json.id+'\','+choice.id+')">'+escapeHTML(choice.text)+'('+choice.votes+''+myvote+')</div>';
}); });
$(".vote_"+json.id).html(poll) $(".vote_"+json.id).html(poll)
} }

View File

@ -298,7 +298,7 @@ function clear() {
$("#post-acct-sel").prop("disabled", false); $("#post-acct-sel").prop("disabled", false);
$("#days_poll").val(0); $("#days_poll").val(0);
$("#hours_poll").val(0); $("#hours_poll").val(0);
$("#mins_poll").val(0); $("#mins_poll").val(6);
$(".mastodon-choice").map(function() { $(".mastodon-choice").map(function() {
$(this).val(""); $(this).val("");
}); });

View File

@ -169,7 +169,7 @@ function cgNPs(q){
var tags = ""; var tags = "";
Object.keys(json).forEach(function(key4) { Object.keys(json).forEach(function(key4) {
var tag = json[key4]; var tag = json[key4];
tags = tags + '<a onclick="cgNP(\''+json[key4]+'\')" class="pointer">' + json[key4] + '</a> '; tags = tags + '<a onclick="cgNP(\''+json[key4]+'\')" class="pointer">' + escapeHTML(json[key4]) + '</a> ';
}); });
$("#suggest").html("Cinderella NowPlaying:" + tags); $("#suggest").html("Cinderella NowPlaying:" + tags);
}else{ }else{

View File

@ -63,8 +63,8 @@ function additional(acct_id, tlid) {
}).then(function(json) { }).then(function(json) {
if (json.title) { if (json.title) {
$("[toot-id=" + id + "] .additional").html( $("[toot-id=" + id + "] .additional").html(
"<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + json.title + "<br>" + "<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + escapeHTML(json.title) + "<br>" +
json.description + "</span>"); escapeHTML(json.description) + "</span>");
$("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed"); $("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed");
$("[toot-id=" + id + "]").addClass("parsed"); $("[toot-id=" + id + "]").addClass("parsed");
} }
@ -148,8 +148,8 @@ function additionalIndv(tlid, acct_id, id) {
}).then(function(json) { }).then(function(json) {
if (json.title) { if (json.title) {
$("[toot-id=" + id + "] .additional").html( $("[toot-id=" + id + "] .additional").html(
"<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + json.title + "<br>" + "<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + escapeHTML(json.title) + "<br>" +
json.description + "</span>"); escapeHTML(json.description) + "</span>");
$("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed"); $("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed");
$("[toot-id=" + id + "]").addClass("parsed"); $("[toot-id=" + id + "]").addClass("parsed");
} }

View File

@ -91,6 +91,9 @@ function details(id, acct_id, tlid, mode) {
} }
beforeToot(id, acct_id, dom); beforeToot(id, acct_id, dom);
userToot(id, acct_id, uid); userToot(id, acct_id, uid);
afterToot(id, acct_id, dom);
afterUserToot(id, acct_id, uid);
afterFTLToot(id, acct_id, dom);
faved(id, acct_id); faved(id, acct_id);
rted(id, acct_id); rted(id, acct_id);
if($("#toot-this div").hasClass("cvo")){ if($("#toot-this div").hasClass("cvo")){
@ -99,7 +102,7 @@ function details(id, acct_id, tlid, mode) {
$("#toot-this").addClass("cvo"); $("#toot-this").addClass("cvo");
} }
if(!$("#activator").hasClass("active")){ if(!$("#activator").hasClass("active")){
$('#det-col').collapsible('open', 1); $('#det-col').collapsible('open', 4);
} }
}); });
@ -332,6 +335,81 @@ function userToot(id, acct_id, user) {
} }
} }
//後のLTL
function afterToot(id, acct_id, domain) {
//var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_"+ acct_id + "_at");
var start = "https://" + domain +
"/api/v1/timelines/public?local=true&min_id=" + id;
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
},
}).then(function(response) {
return response.json();
}).catch(function(error) {
todo(error);
console.error(error);
}).then(function(json) {
var templete = parse(json, 'noauth', acct_id);
if(templete!=""){
$("#ltl-after .no-data").hide();
}
$("#ltl-after").html(templete);
jQuery("time.timeago").timeago();
});
}
//後のUTL
function afterUserToot(id, acct_id, user) {
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_"+ acct_id + "_at");
var start = "https://" + domain + "/api/v1/accounts/" + user + "/statuses?min_id=" + id;
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + at
},
}).then(function(response) {
return response.json();
}).catch(function(error) {
todo(error);
console.error(error);
}).then(function(json) {
var templete = parse(json, '', acct_id);
if(templete!=""){
$("#user-after .no-data").hide();
}
$("#user-after").html(templete);
jQuery("time.timeago").timeago();
});
}
//後のFTL
function afterFTLToot(id, acct_id, domain) {
//var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_"+ acct_id + "_at");
var start = "https://" + domain +
"/api/v1/timelines/public?min_id=" + id;
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
},
}).then(function(response) {
return response.json();
}).catch(function(error) {
todo(error);
console.error(error);
}).then(function(json) {
var templete = parse(json, 'noauth', acct_id);
if(templete!=""){
$("#ftl-after .no-data").hide();
}
$("#ftl-after").html(templete);
jQuery("time.timeago").timeago();
});
}
//ふぁぼ一覧 //ふぁぼ一覧
function faved(id, acct_id) { function faved(id, acct_id) {

View File

@ -251,7 +251,7 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
var via = ''; var via = '';
viashow="hide"; viashow="hide";
} else { } else {
var via = toot.application.name; var via = escapeHTML(toot.application.name);
//強調チェック //強調チェック
Object.keys(emp).forEach(function(key6) { Object.keys(emp).forEach(function(key6) {
var cli = emp[key6]; var cli = emp[key6];
@ -432,7 +432,7 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
if(word){ if(word){
var word=word.tag; var word=word.tag;
var regExp = new RegExp( word, "g" ) ; var regExp = new RegExp( word, "g" ) ;
content=content.replace(regExp,'<span class="emp">'+word+"</span>"); content=content.replace(regExp,'<span class="emp">'+escapeHTML(word)+"</span>");
} }
}); });
} }
@ -483,7 +483,7 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
for( var i=0; i<tickerdata.length; i++) { for( var i=0; i<tickerdata.length; i++) {
var value=tickerdata[i]; var value=tickerdata[i];
if(value.domain==thisdomain){ if(value.domain==thisdomain){
var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+value.name+'</span></div>'; var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+escapeHTML(value.name)+'</span></div>';
break; break;
} }
} }

View File

@ -30,7 +30,7 @@ function list(){
var lists = ""; var lists = "";
Object.keys(json).forEach(function(key) { Object.keys(json).forEach(function(key) {
var list = json[key]; var list = json[key];
lists = lists + list.title+':<a onclick="listShow(\'' + list.id + '\',\'' + list.title + '\',\'' + acct_id + lists = lists + escapeHTML(list.title)+':<a onclick="listShow(\'' + list.id + '\',\'' + escapeHTML(list.title) + '\',\'' + acct_id +
'\')" class="pointer">'+lang.lang_list_show+'</a><br>'; '\')" class="pointer">'+lang.lang_list_show+'</a><br>';
}); });
$("#lists").html(lists); $("#lists").html(lists);
@ -57,7 +57,7 @@ function list(){
var lists = ""; var lists = "";
Object.keys(json).forEach(function(key) { Object.keys(json).forEach(function(key) {
var list = json[key]; var list = json[key];
lists = lists + list.title+':<a onclick="listShow(\'' + list.id + '\',\'' + list.title + '\',\'' + acct_id + lists = lists + escapeHTML(list.title)+':<a onclick="listShow(\'' + list.id + '\',\'' + escapeHTML(list.title) + '\',\'' + acct_id +
'\')" class="pointer">'+lang.lang_list_show+'</a>/<a onclick="listUser(\'' + list.id + '\',' + acct_id + '\')" class="pointer">'+lang.lang_list_show+'</a>/<a onclick="listUser(\'' + list.id + '\',' + acct_id +
')" class="pointer">'+lang.lang_list_users+'</a><br>'; ')" class="pointer">'+lang.lang_list_users+'</a><br>';
}); });
@ -193,7 +193,7 @@ function hisList(user,acct_id){
Object.keys(json).forEach(function(key) { Object.keys(json).forEach(function(key) {
var list = json[key]; var list = json[key];
lists = lists + '<a onclick="listRemove(\'' + list.id + '\',\'' + user + '\',\'' + acct_id + lists = lists + '<a onclick="listRemove(\'' + list.id + '\',\'' + user + '\',\'' + acct_id +
'\')" class="pointer">'+list.title+'</a><br> '; '\')" class="pointer">'+escapeHTML(list.title)+'</a><br> ';
}); });
$("#his-lists-b").html(lists); $("#his-lists-b").html(lists);
}else{ }else{
@ -217,7 +217,7 @@ function hisList(user,acct_id){
var lists = ""; var lists = "";
Object.keys(json).forEach(function(key) { Object.keys(json).forEach(function(key) {
var list = json[key]; var list = json[key];
lists = lists + list.title+':<a onclick="listShow(\'' + list.id + '\',\'' + list.title + '\',\'' + acct_id + lists = lists + list.title+':<a onclick="listShow(\'' + list.id + '\',\'' + escapeHTML(list.title) + '\',\'' + acct_id +
'\')" class="pointer">'+lang.lang_list_show+'</a>/<a onclick="listAdd(\'' + list.id + '\',\'' + user + '\',\'' + acct_id + '\')" class="pointer">'+lang.lang_list_show+'</a>/<a onclick="listAdd(\'' + list.id + '\',\'' + user + '\',\'' + acct_id +
'\')" class="pointer">'+lang.lang_list_add+lang.lang_list_add_misskey+'</a><br>'; '\')" class="pointer">'+lang.lang_list_add+lang.lang_list_add_misskey+'</a><br>';
}); });

View File

@ -286,7 +286,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
} }
var if_notf='data-notfIndv="'+acct_id+"_"+toot.id+'"'; var if_notf='data-notfIndv="'+acct_id+"_"+toot.id+'"';
var toot = toot.note; var toot = toot.note;
var dis_name=escapeHTMLtemp(toot.user.name); var dis_name=escapeHTML(toot.user.name);
}else{ }else{
var if_notf=""; var if_notf="";
if (toot.renote) { if (toot.renote) {
@ -296,8 +296,10 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
")<br>"; ")<br>";
var boostback = "shared"; var boostback = "shared";
var uniqueid=toot.id; var uniqueid=toot.id;
var toot = toot.renote; if(!toot.text){
var dis_name=escapeHTMLtemp(toot.user.name); var toot = toot.renote;
}
var dis_name=escapeHTML(toot.user.name);
var uniqueid=toot.id; var uniqueid=toot.id;
var actemojick=false var actemojick=false
} else { } else {
@ -340,7 +342,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
if(toot.viaMobile){ if(toot.viaMobile){
var via = '<span style="font-style: italic;">Mobile</span>'; var via = '<span style="font-style: italic;">Mobile</span>';
}else{ }else{
var via = '<span style="font-style: italic;">Unknown</span>'; var via = '';
} }
} else { } else {
var via = toot.app.name; var via = toot.app.name;
@ -360,7 +362,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
}); });
} }
if ((toot.cw || toot.cw=="") && cw) { if ((toot.cw || toot.cw=="") && cw) {
var content = toot.text; var content = escapeHTML(toot.text);
var spoil = escapeHTMLtemp(toot.cw); var spoil = escapeHTMLtemp(toot.cw);
var spoiler = "cw cw_hide_" + toot.id; var spoiler = "cw cw_hide_" + toot.id;
var api_spoil = "gray"; var api_spoil = "gray";
@ -616,7 +618,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
for( var i=0; i<tickerdata.length; i++) { for( var i=0; i<tickerdata.length; i++) {
var value=tickerdata[i]; var value=tickerdata[i];
if(value.domain==thisdomain){ if(value.domain==thisdomain){
var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+value.name+'</span></div>'; var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+escapeHTML(value.name)+'</span></div>';
break; break;
} }
} }
@ -632,13 +634,15 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
}else{ }else{
var myvote=""; var myvote="";
} }
poll=poll+'<div class="pointer vote" onclick="vote(\''+acct_id+'\',\''+toot.id+'\','+choice.id+')">'+choice.text+'('+choice.votes+''+myvote+')</div>'; poll=poll+'<div class="pointer vote" onclick="vote(\''+acct_id+'\',\''+toot.id+'\','+choice.id+')">'+escapeHTML(choice.text)+'('+choice.votes+''+myvote+')</div>';
}); });
poll='<div class="vote_'+toot.id+'">'+poll+'</div>'; poll='<div class="vote_'+toot.id+'">'+poll+'</div>';
} }
/* //引用Renote
if(toot.renote){
*/ poll=poll+'<div class="quote-renote"><div class="renote-icon"><a onclick="udg(\'' + toot.renote.user.id +
'\',' + acct_id + ');" user="' + toot.renote.user.username + '" class="udg"><img src="'+toot.renote.user.avatarUrl+'"></a></div><div class="renote-user">'+escapeHTML(toot.renote.user.name)+'</div><div class="renote-text">'+escapeHTML(toot.renote.text)+'</div></div>'
}
if(localStorage.getItem("emojiReaction_" + acct_id)=="disabled"){ if(localStorage.getItem("emojiReaction_" + acct_id)=="disabled"){
var freeReact="hide"; var freeReact="hide";
}else{ }else{
@ -667,7 +671,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
var emoji = obj[i]; var emoji = obj[i];
if (":"+emoji.shortcode+":"==keye) { if (":"+emoji.shortcode+":"==keye) {
if (emoji) { if (emoji) {
addReact=addReact+ '<span class="reaction "><a onclick="reaction(\''+keye+'\',\'' + toot.id + '\',' + acct_id + addReact=addReact+ '<span class="reaction"><a onclick="reaction(\''+keye+'\',\'' + toot.id + '\',' + acct_id +
',\'' + tlid +'\')" class="waves-effect waves-dark btn-flat pointer" style="padding:0;margin-left:3px;"><img src="'+emoji.url+'" style="width:13px;"></a><span class="re-'+emoji.shortcode+'ct">'+thisReact+ ',\'' + tlid +'\')" class="waves-effect waves-dark btn-flat pointer" style="padding:0;margin-left:3px;"><img src="'+emoji.url+'" style="width:13px;"></a><span class="re-'+emoji.shortcode+'ct">'+thisReact+
'</span></span>'; '</span></span>';
} }
@ -837,7 +841,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
acct_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+ ')" 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_tagstemp(via)+'\')" title="via ' + $.strip_tagstemp(via) + '">via ' + '<span class="cbadge viabadge waves-effect '+viashow+' '+mine_via+'" onclick="client(\''+$.strip_tagstemp(via)+'\')" title="via ' + $.strip_tagstemp(via) + '">via ' +
via + escapeHTML(via) +
'</span>'+ '</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>' + '</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>' +
'<div class="action '+noauth+'"><a onclick="details(\'' + toot.id + '\',' + acct_id + '<div class="action '+noauth+'"><a onclick="details(\'' + toot.id + '\',' + acct_id +
@ -913,7 +917,7 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
var dis_name=escapeHTMLtemp(toot.name); var dis_name=escapeHTMLtemp(toot.name);
dis_name=twemoji.parse(dis_name); dis_name=twemoji.parse(dis_name);
}else{ }else{
var dis_name=toot.name; var dis_name=toot.username;
} }
templete = templete + templete = templete +
'<div class="cvo" style="padding-top:5px;" user-id="' + toot.id + '"><div class="area-notice">' + '<div class="cvo" style="padding-top:5px;" user-id="' + toot.id + '"><div class="area-notice">' +

View File

@ -94,12 +94,14 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
websocketLocal[wslid] = new WebSocket(startLocal); websocketLocal[wslid] = new WebSocket(startLocal);
websocketHome[wshid].onopen = function(mess) { websocketHome[wshid].onopen = function(mess) {
localStorage.setItem("wssH_" + tlid, wshid); localStorage.setItem("wssH_" + tlid, wshid);
console.log("Connect Streaming API(Integrated:Home)"); console.log(tlid + ":Connect Streaming API(Integrated:Home)");
console.log(mess);
$("#notice_icon_" + tlid).removeClass("red-text"); $("#notice_icon_" + tlid).removeClass("red-text");
} }
websocketLocal[wslid].onopen = function(mess) { websocketLocal[wslid].onopen = function(mess) {
localStorage.setItem("wssL_" + tlid, wslid); localStorage.setItem("wssL_" + tlid, wslid);
console.log("Connect Streaming API(Integrated:Local)"); console.log(tlid + ":Connect Streaming API(Integrated:Local)");
console.log(mess);
$("#notice_icon_" + tlid).removeClass("red-text"); $("#notice_icon_" + tlid).removeClass("red-text");
} }
websocketLocal[wslid].onmessage = function(mess) { websocketLocal[wslid].onmessage = function(mess) {
@ -195,39 +197,57 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
} }
} }
websocketLocal[wslid].onerror = function(error) { websocketLocal[wslid].onerror = function(error) {
console.error('WebSocket Error ' + error); console.error('WebSocketLocal Error')
console.error(error);
if(mode=="error"){ if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text"); $("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Error ' + error); todo('WebSocket Error ' + error);
}else{ }else{
reconnector(tlid,TLtype,acct_id,"","error"); var errorct=localStorage.getItem("wserror_" + tlid)*1+1;
localStorage.setItem("wserror_" + tlid,errorct);
if(errorct<3){
reconnector(tlid,TLtype,acct_id,"","error");
}
} }
}; };
websocketLocal[wslid].onclose = function() { websocketLocal[wslid].onclose = function() {
console.error('WebSocketLocal Closing by error:' + tlid); console.log('WebSocketLocal Closing:' + tlid);
if(mode=="error"){ if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text"); $("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Closed'); todo('WebSocket Closed');
}else{ }else{
reconnector(tlid,TLtype,acct_id,"","error"); var errorct=localStorage.getItem("wserror_" + tlid)*1+1;
localStorage.setItem("wserror_" + tlid,errorct);
if(errorct<3){
reconnector(tlid,TLtype,acct_id,"","error");
}
} }
}; };
websocketHome[wshid].onerror = function(error) { websocketHome[wshid].onerror = function(error) {
console.error('WebSocket Error ' + error); console.error('WebSocketHome Error')
console.error(error);
if(mode=="error"){ if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text"); $("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Error ' + error); todo('WebSocket Error ' + error);
}else{ }else{
reconnector(tlid,TLtype,acct_id,"","error"); var errorct=localStorage.getItem("wserror_" + tlid)*1+1;
localStorage.setItem("wserror_" + tlid,errorct);
if(errorct<3){
reconnector(tlid,TLtype,acct_id,"","error");
}
} }
}; };
websocketHome[wshid].onclose = function() { websocketHome[wshid].onclose = function() {
console.error('WebSocketHome Closing by error:' + tlid); console.log('WebSocketHome Closing:' + tlid);
if(mode=="error"){ if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text"); $("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Closed'); todo('WebSocket Closed');
}else{ }else{
reconnector(tlid,TLtype,acct_id,"","error"); var errorct=localStorage.getItem("wserror_" + tlid)*1+1;
localStorage.setItem("wserror_" + tlid,errorct);
if(errorct<3){
reconnector(tlid,TLtype,acct_id,"","error");
}
} }
}; };

View File

@ -112,73 +112,6 @@ function notfColumn(acct_id, tlid, sys){
at; at;
} }
console.log(start);
var wsid = websocketNotf.length;
websocketNotf[acct_id] = new WebSocket(start);
console.log(websocketNotf);
websocketNotf[acct_id].onopen = function(mess) {
console.log("Connect Streaming API(Notf):");
console.log(mess);
$("i[data-notf=" + acct_id +"]").removeClass("red-text");
}
websocketNotf[acct_id].onmessage = function(mess) {
console.log("Receive Streaming API(Notf):"+acct_id);
var popup = localStorage.getItem("popup");
if (!popup) {
popup = 0;
}
console.log(domain)
if(misskey){
console.log("misskey")
console.log(JSON.parse(mess.data));
if (JSON.parse(mess.data).type == "notification") {
var obj = JSON.parse(mess.data).body;
console.log(obj);
if(obj.type!="follow"){
templete = misskeyParse([obj], 'notf', acct_id, 'notf', popup);
}else{
templete = misskeyUserparse([obj], 'notf', acct_id, 'notf', popup);
}
if(obj.type=="reaction"){
console.log("refresh")
reactRefresh(acct_id,obj.note.id)
}
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
$("div[data-notf=" + acct_id +"]").prepend(templete);
}
jQuery("time.timeago").timeago();
}else if(JSON.parse(mess.data).type == "note-updated"){
var obj = JSON.parse(mess.data).body.note;
reactRefreshCore(obj)
}
}else{
var obj = JSON.parse(JSON.parse(mess.data).payload);
console.log(obj);
var type = JSON.parse(mess.data).event;
if (type == "notification") {
var templete="";
localStorage.setItem("lastnotf_" + acct_id,obj.id);
if(obj.type!="follow"){
templete = parse([obj], 'notf', acct_id, 'notf', popup);
}else{
templete = userparse([obj], 'notf', acct_id, 'notf', popup);
}
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
$(".tl[data-notf=" + acct_id +"]").prepend(templete);
}
$(".notf-timeline[data-acct=" + acct_id +"]").prepend(templete);
jQuery("time.timeago").timeago();
} else if (type == "delete") {
$("[toot-id=" + obj + "]").hide();
$("[toot-id=" + obj + "]").remove();
}
}
}
websocketNotf[acct_id].onerror = function(error) {
console.error('WebSocket Error ' + error);
};
} }
function notfCommon(acct_id, tlid, sys) { function notfCommon(acct_id, tlid, sys) {
todo("Notifications Loading..."); todo("Notifications Loading...");
@ -318,6 +251,7 @@ function notfCommon(acct_id, tlid, sys) {
} }
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){ if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
$("div[data-notf=" + acct_id +"]").prepend(templete); $("div[data-notf=" + acct_id +"]").prepend(templete);
$("div[data-const=notf_"+acct_id+"]").prepend(templete);
} }
jQuery("time.timeago").timeago(); jQuery("time.timeago").timeago();
}else if(JSON.parse(mess.data).type == "note-updated"){ }else if(JSON.parse(mess.data).type == "note-updated"){
@ -338,6 +272,7 @@ function notfCommon(acct_id, tlid, sys) {
} }
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){ if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
$("div[data-notf=" + acct_id +"]").prepend(templete); $("div[data-notf=" + acct_id +"]").prepend(templete);
$("div[data-const=notf_"+acct_id+"]").prepend(templete);
} }
jQuery("time.timeago").timeago(); jQuery("time.timeago").timeago();
} else if (type == "delete") { } else if (type == "delete") {

View File

@ -251,16 +251,28 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
$(".notf-reply_" + acct_id).text(replyct*1-(-1)); $(".notf-reply_" + acct_id).text(replyct*1-(-1));
localStorage.setItem("notf-reply_" + acct_id,replyct*1-(-1)) localStorage.setItem("notf-reply_" + acct_id,replyct*1-(-1))
$(".notf-reply_" + acct_id).removeClass("hide") $(".notf-reply_" + acct_id).removeClass("hide")
var sound=localStorage.getItem("replySound");
if(sound=="default"){
var file="../../source/notif3.wav"
}
}else if (toot.type == "reblog") { }else if (toot.type == "reblog") {
var btct=localStorage.getItem("notf-bt_" + acct_id) var btct=localStorage.getItem("notf-bt_" + acct_id)
$(".notf-bt_" + acct_id).text(btct*1-(-1)); $(".notf-bt_" + acct_id).text(btct*1-(-1));
localStorage.setItem("notf-bt_" + acct_id,btct*1-(-1)) localStorage.setItem("notf-bt_" + acct_id,btct*1-(-1))
$(".notf-bt_" + acct_id).removeClass("hide") $(".notf-bt_" + acct_id).removeClass("hide")
var sound=localStorage.getItem("btSound");
if(sound=="default"){
var file="../../source/notif2.wav"
}
}else if (toot.type == "favourite") { }else if (toot.type == "favourite") {
var favct=localStorage.getItem("notf-fav_" + acct_id) var favct=localStorage.getItem("notf-fav_" + acct_id)
$(".notf-fav_" + acct_id).text(favct*1-(-1)); $(".notf-fav_" + acct_id).text(favct*1-(-1));
localStorage.setItem("notf-fav_" + acct_id,favct*1-(-1)) localStorage.setItem("notf-fav_" + acct_id,favct*1-(-1))
$(".notf-fav_" + acct_id).removeClass("hide") $(".notf-fav_" + acct_id).removeClass("hide")
var sound=localStorage.getItem("favSound");
if(sound=="default"){
var file="../../source/notif.wav"
}
} }
} }
@ -268,6 +280,23 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
if(popup>0){ if(popup>0){
Materialize.toast("["+domain+"]"+escapeHTML(toot.account.display_name)+what, popup * 1000); Materialize.toast("["+domain+"]"+escapeHTML(toot.account.display_name)+what, popup * 1000);
} }
//通知音
if(sound=="c1"){
var file=localStorage.getItem("custom1");
}else if(sound=="c2"){
var file=localStorage.getItem("custom2");
}else if(sound=="c3"){
var file=localStorage.getItem("custom3");
}else if(sound=="c4"){
var file=localStorage.getItem("custom4");
}
if(file){
request = new XMLHttpRequest();
request.open("GET", file, true);
request.responseType = "arraybuffer";
request.onload = playSound;
request.send();
}
if(native=="yes"){ if(native=="yes"){
var electron = require("electron"); var electron = require("electron");
var ipc = electron.ipcRenderer; var ipc = electron.ipcRenderer;
@ -395,7 +424,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var via = ''; var via = '';
viashow="hide"; viashow="hide";
} else { } else {
var via = toot.application.name; var via = escapeHTML(toot.application.name);
//強調チェック //強調チェック
Object.keys(emp).forEach(function(key6) { Object.keys(emp).forEach(function(key6) {
var cli = emp[key6]; var cli = emp[key6];
@ -452,6 +481,40 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var viewer = ""; var viewer = "";
var hasmedia = ""; var hasmedia = "";
var youtube = ""; var youtube = "";
//Poll
var poll="";
if(toot.poll){
var choices=toot.poll.options;
if(toot.poll.voted){
var myvote=lang.lang_parse_voted;
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){
myvote=myvote+'<a onclick="showResult(\''+acct_id+'\',\''+toot.poll.id+'\')" class="pointer">'+lang.lang_parse_unvoted+"</a>";
}
var result_hide="hide";
}
if(toot.poll.expired){
var ended=lang.lang_parse_endedvote;
}else{
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){
var votesel='voteSelMastodon(\''+acct_id+'\',\''+toot.poll.id+'\','+keyc+','+toot.poll.multiple+')';
var voteclass="pointer waves-effect waves-light";
}else{
var votesel="";
var voteclass="";
}
poll=poll+'<div class="'+voteclass+' vote vote_'+acct_id+'_'+toot.poll.id+'_'+keyc+'" onclick="'+votesel+'">'+escapeHTML(choice.title)+'<span class="vote_'+acct_id+'_'+toot.poll.id+'_result '+result_hide+'">('+choice.votes_count+')</span></div>';
});
poll='<div class="vote_'+acct_id+'_'+toot.poll.id+'">'+poll+myvote+'<span class="cbadge cbadge-hover" title="' + date(toot.poll.expires_at, 'absolute') +
'"><i class="far fa-calendar-times"></i>' +
ended+ '</span></div>';
}
if(toot.emojis){ if(toot.emojis){
var emojick = toot.emojis[0]; var emojick = toot.emojis[0];
}else{ }else{
@ -467,6 +530,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var regExp = new RegExp(":" + shortcode + ":", "g"); var regExp = new RegExp(":" + shortcode + ":", "g");
content = content.replace(regExp, emoji_url); content = content.replace(regExp, emoji_url);
spoil = spoil.replace(regExp, emoji_url); spoil = spoil.replace(regExp, emoji_url);
poll = poll.replace(regExp, emoji_url);
}); });
} }
//ニコフレ絵文字 //ニコフレ絵文字
@ -485,6 +549,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var regExp = new RegExp(":" + shortcode + ":", "g"); var regExp = new RegExp(":" + shortcode + ":", "g");
content = content.replace(regExp, emoji_url); content = content.replace(regExp, emoji_url);
spoil = spoil.replace(regExp, emoji_url); spoil = spoil.replace(regExp, emoji_url);
poll = poll.replace(regExp, emoji_url);
}); });
} }
//デフォ絵文字 //デフォ絵文字
@ -501,6 +566,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
if(notice){ if(notice){
notice=twemoji.parse(notice); notice=twemoji.parse(notice);
} }
if(poll){
poll=twemoji.parse(poll);
}
var mediack = toot.media_attachments[0]; var mediack = toot.media_attachments[0];
//メディアがあれば //メディアがあれば
var media_ids=""; var media_ids="";
@ -698,45 +766,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
for( var i=0; i<tickerdata.length; i++) { for( var i=0; i<tickerdata.length; i++) {
var value=tickerdata[i]; var value=tickerdata[i];
if(value.domain==thisdomain){ if(value.domain==thisdomain){
var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img draggable="false" src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+value.name+'</span></div>'; var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img draggable="false" src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+escapeHTML(value.name)+'</span></div>';
break; break;
} }
} }
} }
} }
//Poll //Quote
var poll=""; if(toot.quote){
if(toot.poll){ poll=poll+'<div class="quote-renote"><div class="renote-icon"><img src="'+toot.quote.account.avatar+'"></div><div class="renote-user">'+escapeHTML(toot.quote.account.display_name)+'</div><div class="renote-text">'+toot.quote.content+'</div></div>'
var choices=toot.poll.options;
if(toot.poll.voted){
var myvote=lang.lang_parse_voted;
var result_hide="";
}else{
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){
myvote=myvote+'<a onclick="showResult(\''+acct_id+'\',\''+toot.poll.id+'\')" class="pointer">'+lang.lang_parse_unvoted+"</a>";
}
var result_hide="hide";
}
if(toot.poll.expired){
var ended=lang.lang_parse_endedvote;
}else{
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){
var votesel='voteSelMastodon(\''+acct_id+'\',\''+toot.poll.id+'\','+keyc+','+toot.poll.multiple+')';
var voteclass="pointer waves-effect waves-light";
}else{
var votesel="";
var voteclass="";
}
poll=poll+'<div class="'+voteclass+' vote vote_'+acct_id+'_'+toot.poll.id+'_'+keyc+'" onclick="'+votesel+'">'+escapeHTML(choice.title)+'<span class="vote_'+acct_id+'_'+toot.poll.id+'_result '+result_hide+'">('+choice.votes_count+')</span></div>';
});
poll='<div class="vote_'+acct_id+'_'+toot.poll.id+'">'+poll+myvote+'<span class="cbadge cbadge-hover" title="' + date(toot.poll.expires_at, 'absolute') +
'"><i class="far fa-calendar-times"></i>' +
ended+ '</span></div>';
} }
templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' + templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' +
boostback + ' ' + fav_app + ' ' + rt_app + ' ' + pin_app + boostback + ' ' + fav_app + ' ' + rt_app + ' ' + pin_app +
@ -760,8 +798,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
'</div></div>' + '</div></div>' +
'<div class="area-toot">'+tickerdom+'<span class="' + '<div class="area-toot">'+tickerdom+'<span class="' +
api_spoil + ' cw_text_' + toot.id + '"><span class="cw_text">' + spoil + "</span>" + spoiler_show + api_spoil + ' cw_text_' + toot.id + '"><span class="cw_text">' + spoil + "</span>" + spoiler_show +
'</span><span class="toot ' + spoiler + '">' + content +poll+ '</span><span class="toot ' + spoiler + '">' + content +
'</span>' + '</span>' + poll +
'' + viewer + '' + '' + viewer + '' +
'</div><div class="area-additional"><span class="additional">' + analyze + '</div><div class="area-additional"><span class="additional">' + analyze +
'</span>' + '</span>' +
@ -791,7 +829,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
'</a></span></div>' + '</a></span></div>' +
'<div class="' + if_mine + ' action '+disp["del"]+' '+noauth+'"><a onclick="del(\'' + toot.id + '\',' + '<div class="' + if_mine + ' action '+disp["del"]+' '+noauth+'"><a onclick="del(\'' + toot.id + '\',' +
acct_id + acct_id +
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_del+'"><i class="far fa-trash"></i></a></div>' + ')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_del+'"><i class="fas fa-trash"></i></a></div>' +
'<div class="' + if_mine + ' action pin '+disp["pin"]+' '+noauth+'"><a onclick="pin(\'' + toot.id + '\',' + '<div class="' + if_mine + ' action pin '+disp["pin"]+' '+noauth+'"><a onclick="pin(\'' + toot.id + '\',' +
acct_id + acct_id +
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_pin+'"><i class="fas fa-map-pin pin_' + toot.id + ' '+if_pin+'"></i></a></div>' ')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_pin+'"><i class="fas fa-map-pin pin_' + toot.id + ' '+if_pin+'"></i></a></div>'
@ -962,7 +1000,7 @@ function client(name) {
if(!obj){ if(!obj){
var obj=[]; var obj=[];
obj.push(name); obj.push(name);
Materialize.toast(name+lang.lang_status_emphas, 2000); Materialize.toast(escapeHTML(name)+lang.lang_status_emphas, 2000);
}else{ }else{
var can; var can;
Object.keys(obj).forEach(function(key) { Object.keys(obj).forEach(function(key) {
@ -972,12 +1010,12 @@ function client(name) {
}else{ }else{
can=true; can=true;
obj.splice(key, 1); obj.splice(key, 1);
Materialize.toast(name+lang.lang_status_unemphas, 2000); Materialize.toast(escapeHTML(name)+lang.lang_status_unemphas, 2000);
} }
}); });
if(!can){ if(!can){
obj.push(name); obj.push(name);
Materialize.toast(name+lang.lang_status_emphas, 2000); Materialize.toast(escapeHTML(name)+lang.lang_status_emphas, 2000);
}else{ }else{
} }
@ -993,7 +1031,7 @@ function client(name) {
obj.push(name); obj.push(name);
var json = JSON.stringify(obj); var json = JSON.stringify(obj);
localStorage.setItem("client_mute", json); localStorage.setItem("client_mute", json);
Materialize.toast(name+lang.lang_parse_mute, 2000); Materialize.toast(escapeHTML(name)+lang.lang_parse_mute, 2000);
}else{ }else{
return; return;
} }

View File

@ -108,7 +108,7 @@ function voteMastodonrefresh(acct_id,id){
if(!json.voted){ if(!json.voted){
votesel='voteSelMastodon(\''+acct_id+'\',\''+json.id+'\','+keyc+','+json.multiple+')'; votesel='voteSelMastodon(\''+acct_id+'\',\''+json.id+'\','+keyc+','+json.multiple+')';
} }
poll=poll+'<div class="pointer vote vote_'+acct_id+'_'+json.id+'_'+keyc+'" onclick="'+votesel+'">'+choice.title+'<span class="vote_'+acct_id+'_'+json.id+'_result '+result_hide+'">('+choice.votes_count+')</span></div>'; poll=poll+'<div class="pointer vote vote_'+acct_id+'_'+json.id+'_'+keyc+'" onclick="'+votesel+'">'+escapeHTML(choice.title)+'<span class="vote_'+acct_id+'_'+json.id+'_result '+result_hide+'">('+choice.votes_count+')</span></div>';
}); });
poll=poll+myvote+'<span class="cbadge cbadge-hover" title="' + date(json.expires_at, 'absolute') + poll=poll+myvote+'<span class="cbadge cbadge-hover" title="' + date(json.expires_at, 'absolute') +
'"><i class="far fa-calendar-times"></i>' + '"><i class="far fa-calendar-times"></i>' +

View File

@ -52,7 +52,7 @@ function src(mode) {
var tag = json.hashtags[key4]; var tag = json.hashtags[key4];
if(mode){ if(mode){
tags = tags + '<a onclick="tl(\'tag\',\'' + tag + '\',\'' + acct_id + tags = tags + '<a onclick="tl(\'tag\',\'' + tag + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + tag + '</a><br> '; '\',\'add\')" class="pointer">#' + escapeHTML(tag) + '</a><br> ';
}else{ }else{
tags=tags+graphDraw(tag); tags=tags+graphDraw(tag);
} }
@ -186,13 +186,13 @@ function graphDraw(tag){
var zero=50-(his[0].uses/max*50); var zero=50-(his[0].uses/max*50);
if(max===0){ if(max===0){
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+ tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots&nbsp;<a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id + '</svg><span style="font-size:200%">'+his[0].uses+'</span>toots&nbsp;<a onclick="tl(\'tag\',\'' + escapeHTML(tag.name) + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + tag.name + '</a>&nbsp;'+his[0].accounts+lang.lang_src_people; '\',\'add\')" class="pointer">#' + escapeHTML(tag.name) + '</a>&nbsp;'+his[0].accounts+lang.lang_src_people;
}else{ }else{
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+ tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
'<g><path d="M0,'+six+' L10,'+five+' 20,'+four+' 30,'+three+' 40,'+two+' 50,'+one+' 60,'+zero+'" style="stroke: #9e9e9e; stroke-width: 1;fill: none;"></path></g>'+ '<g><path d="M0,'+six+' L10,'+five+' 20,'+four+' 30,'+three+' 40,'+two+' 50,'+one+' 60,'+zero+'" style="stroke: #9e9e9e; stroke-width: 1;fill: none;"></path></g>'+
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots&nbsp;<a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id + '</svg><span style="font-size:200%">'+his[0].uses+'</span>toots&nbsp;<a onclick="tl(\'tag\',\'' + escapeHTML(tag.name) + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + tag.name + '</a>&nbsp;'+his[0].accounts+lang.lang_src_people; '\',\'add\')" class="pointer">#' + escapeHTML(tag.name) + '</a>&nbsp;'+his[0].accounts+lang.lang_src_people;
} }
return tags; return tags;

View File

@ -65,6 +65,7 @@ function favTag(){
var ptt=lang.lang_tags_unrealtime; var ptt=lang.lang_tags_unrealtime;
var nowon="("+lang.lang_tags_realtime+")"; var nowon="("+lang.lang_tags_realtime+")";
} }
tag=escapeHTML(tag);
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a>'+nowon+'<span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="' +lang.lang_parse_tagTL.replace("{{tag}}" ,'#'+tag)+ '">TL</a> <a onclick="brInsert(\'#' + tag + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">Toot</a> '+ tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a>'+nowon+'<span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="' +lang.lang_parse_tagTL.replace("{{tag}}" ,'#'+tag)+ '">TL</a> <a onclick="brInsert(\'#' + tag + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">Toot</a> '+
'<a onclick="autoToot(\'' + tag + '\');" class="pointer" title="'+lang.lang_tags_always + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">'+ptt+'</a> <a onclick="tagRemove(\'' + key + '\')" class="pointer" title="' +lang.lang_tags_tagunpin.replace("{{tag}}" ,'#'+tag)+ '">'+lang.lang_del+'</a></span> '; '<a onclick="autoToot(\'' + tag + '\');" class="pointer" title="'+lang.lang_tags_always + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">'+ptt+'</a> <a onclick="tagRemove(\'' + key + '\')" class="pointer" title="' +lang.lang_tags_tagunpin.replace("{{tag}}" ,'#'+tag)+ '">'+lang.lang_del+'</a></span> ';
}); });
@ -96,6 +97,7 @@ function trendTag(){
var tags=""; var tags="";
json=json.score; json=json.score;
Object.keys(json).forEach(function(tag) { Object.keys(json).forEach(function(tag) {
tag=escapeHTML(tag);
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a><span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="#' + tag + 'のタイムライン">TL</a> <a onclick="show();brInsert(\'#' + tag + '\')" class="pointer" title="#' + tag + 'でトゥート">Toot</a></span> '; tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a><span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="#' + tag + 'のタイムライン">TL</a> <a onclick="show();brInsert(\'#' + tag + '\')" class="pointer" title="#' + tag + 'でトゥート">Toot</a></span> ';
}); });
$("#taglist").append('<div class="trendtag">アイマストドントレンドタグ<i class="material-icons pointer" onclick="trendTag()" style="font-size:12px">refresh</i>:' + tags+'</div>'); $("#taglist").append('<div class="trendtag">アイマストドントレンドタグ<i class="material-icons pointer" onclick="trendTag()" style="font-size:12px">refresh</i>:' + tags+'</div>');
@ -115,6 +117,7 @@ function tagTL(a,b,c,d){
tl(a,b,acct_id,d); tl(a,b,acct_id,d);
} }
function autoToot(tag){ function autoToot(tag){
tag=escapeHTML(tag)
var nowPT=localStorage.getItem("stable") var nowPT=localStorage.getItem("stable")
if(nowPT==tag){ if(nowPT==tag){
localStorage.removeItem("stable"); localStorage.removeItem("stable");

View File

@ -337,8 +337,8 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
return false; return false;
}; };
websocket[wsid].onclose = function() { websocket[wsid].onclose = function() {
console.error("Closing"); console.log("Closing");
console.error(tlid); console.log(tlid);
if(mode=="error"){ if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text"); $("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Closed'); todo('WebSocket Closed');
@ -660,7 +660,7 @@ function cap(type, data, acct_id) {
var response="Federated TL(Media)"; var response="Federated TL(Media)";
} }
} else if (type == "tag") { } else if (type == "tag") {
var response= "#" + data var response= "#" + escapeHTML(data)
} else if (type == "list") { } else if (type == "list") {
var ltitle=localStorage.getItem("list_"+data+"_"+acct_id); var ltitle=localStorage.getItem("list_"+data+"_"+acct_id);
var response= "List(" + ltitle + ")" var response= "List(" + ltitle + ")"
@ -685,7 +685,7 @@ function cap(type, data, acct_id) {
}else if (type == "webview") { }else if (type == "webview") {
var response="Twitter" var response="Twitter"
}else if (type == "tootsearch") { }else if (type == "tootsearch") {
var response="tootsearch(" + data + ")"; var response="tootsearch(" + escapeHTML(data) + ")";
} }
return response; return response;
} }
@ -788,7 +788,7 @@ function strAliveInt(){
} }
function reconnector(tlid,type,acct_id,data,mode){ function reconnector(tlid,type,acct_id,data,mode){
console.log("Reconnector:"+mode) console.log("Reconnector:"+mode)
if(type=="mix" || type=="plus"){ if(type=="mix" || type=="integrated" || type=="plus"){
if(localStorage.getItem("voice_" + tlid)){ if(localStorage.getItem("voice_" + tlid)){
var voice=true; var voice=true;
}else{ }else{
@ -801,10 +801,11 @@ function reconnector(tlid,type,acct_id,data,mode){
} }
var wssh=localStorage.getItem("wssH_" + tlid); var wssh=localStorage.getItem("wssH_" + tlid);
websocketHome[wssh].close(); websocketHome[wssh].close();
var wssh=localStorage.getItem("wssL_" + tlid); var wssl=localStorage.getItem("wssL_" + tlid);
websocketLocal[wssl].close(); websocketLocal[wssl].close();
mixre(acct_id, tlid, type, mute,"",voice,mode); mixre(acct_id, tlid, type, mute,"",voice,mode);
}else if(type=="notf"){ }else if(type=="notf"){
notfColumn(acct_id, tlid, "")
}else{ }else{
var wss=localStorage.getItem("wss_" + tlid); var wss=localStorage.getItem("wss_" + tlid);
websocket[wss].close(); websocket[wss].close();

View File

@ -28,6 +28,9 @@ function parseColumn() {
$(".toot-reset").css("font-size", size + "px"); $(".toot-reset").css("font-size", size + "px");
$(".cont-series").css("font-size", size + "px"); $(".cont-series").css("font-size", size + "px");
} }
if(localStorage.getItem("menu-done")){
$("#fukidashi").addClass("hide")
}
tlCloser(); tlCloser();
var multi = localStorage.getItem("multi"); var multi = localStorage.getItem("multi");
if (multi) { if (multi) {
@ -198,8 +201,8 @@ function parseColumn() {
key + '">On</span></a>'+lang.lang_layout_linkana +'<br><a onclick="voiceToggle(' + key + key + '">On</span></a>'+lang.lang_layout_linkana +'<br><a onclick="voiceToggle(' + key +
')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_layout_tts +'">hearing</i><span id="sta-voice-' + ')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_layout_tts +'">hearing</i><span id="sta-voice-' +
key + '">On</span></a>'+lang.lang_layout_tts +'TL<br><a onclick="reconnector(' + key + key + '">On</span></a>'+lang.lang_layout_tts +'TL<br><a onclick="reconnector(' + key +
',\''+acct.type+'\',\''+acct.domain+'\',\''+acct.data+'\')" class="setting nex '+if_notf+'"><i class="material-icons waves-effect nex '+if_notf+'" title="'+lang.lang_layout_reconnect+'">low_priority</i></a><span class="'+if_notf+'">'+lang.lang_layout_reconnect+'</span><br>'+lang.lang_layout_headercolor +'<br><div id="picker_'+key+'" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key + ',\''+acct.type+'\',\''+acct.domain+'\',\''+escapeHTML(acct.data)+'\')" class="setting nex '+if_notf+'"><i class="material-icons waves-effect nex '+if_notf+'" title="'+lang.lang_layout_reconnect+'">low_priority</i></a><span class="'+if_notf+'">'+lang.lang_layout_reconnect+'</span><br>'+lang.lang_layout_headercolor +'<br><div id="picker_'+key+'" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key +
'" class="tl '+acct.type+'-timeline " tlid="' + key + '" data-type="' + acct.type + '" data-acct="'+acct.domain+'"><div id="landing_'+key+'" style="text-align:center">'+lang.lang_layout_nodata +'</div></div></div>' '" class="tl '+acct.type+'-timeline " tlid="' + key + '" data-type="' + acct.type + '" data-acct="'+acct.domain+'" data-const="' + acct.type + '_'+acct.domain+'"><div id="landing_'+key+'" style="text-align:center">'+lang.lang_layout_nodata +'</div></div></div>'
$('#timeline_box_' + basekey + '_parentBox').append(html); $('#timeline_box_' + basekey + '_parentBox').append(html);
localStorage.removeItem("pool_" + key); localStorage.removeItem("pool_" + key);
if (acct.data) { if (acct.data) {

View File

@ -1,4 +1,6 @@
function menu(){ function menu(){
localStorage.setItem("menu-done",true);
$("#fukidashi").addClass("hide")
if(!$("#menu").hasClass("appear")){ if(!$("#menu").hasClass("appear")){
$("#menu").addClass("appear") $("#menu").addClass("appear")
var left=localStorage.getItem("menu-left"); var left=localStorage.getItem("menu-left");

View File

@ -123,6 +123,10 @@ function load() {
var font = ""; var font = "";
} }
$("#font").val(font); $("#font").val(font);
$("#c1-file").text(localStorage.getItem("custom1"))
$("#c2-file").text(localStorage.getItem("custom2"));
$("#c3-file").text(localStorage.getItem("custom3"));
$("#c4-file").text(localStorage.getItem("custom4"));
} }
function climute(){ function climute(){
@ -636,6 +640,22 @@ ipc.on('theme-json-create-complete', function (event, args) {
$("#custom_import").val(""); $("#custom_import").val("");
ctLoad() ctLoad()
}); });
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])
});
}
window.onload = function() { window.onload = function() {
//最初に読む //最初に読む
load(); load();

View File

@ -32,7 +32,7 @@ function sortload(){
var acctdata=user+"@"+domain; var acctdata=user+"@"+domain;
} }
var html='<li class="drag-content" data-id="'+key+'" data-flag="'+flag+'"'+insert+'><div class="sorticon"><i class="material-icons">'+icon(acct.type)+'</i></div><div class="sorttitle">'+cap(acct.type, acct.data,acct.domain)+'</div><div class="sortaction"><a onclick="goColumn(' + key + var html='<li class="drag-content" data-id="'+key+'" data-flag="'+flag+'"'+insert+'><div class="sorticon"><i class="material-icons">'+icon(acct.type)+'</i></div><div class="sorttitle">'+cap(acct.type, escapeHTML(acct.data),acct.domain)+'</div><div class="sortaction"><a onclick="goColumn(' + key +
')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_sort_gothis+'">forward</i></a> <a onclick="removeColumn(' + key + ')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_sort_gothis+'">forward</i></a> <a onclick="removeColumn(' + key +
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a></div><div class="sortacct">'+acctdata+'</div></li>'; ')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a></div><div class="sortacct">'+acctdata+'</div></li>';
$("#sort").append(html); $("#sort").append(html);
@ -103,7 +103,7 @@ function sort(){
var json = JSON.stringify(newobj); var json = JSON.stringify(newobj);
localStorage.setItem("column", json); localStorage.setItem("column", json);
$("#sort").html(""); $("#sort").html("");
Materialize.toast("並べ替え完了。", 3000); Materialize.toast("Sorted", 3000);
sortload(); sortload();
parseColumn(); parseColumn();
sortMenu() sortMenu()

View File

@ -57,7 +57,7 @@ function startmem(){
var use=arg[0]; var use=arg[0];
var cpu=arg[1]; var cpu=arg[1];
var total=arg[2] var total=arg[2]
$("#tips-text").html(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)+"%)") $("#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)+"%)")
}) })
} }
//トレンドタグ //トレンドタグ
@ -83,7 +83,7 @@ function trendTagonTip(){
var tags=""; var tags="";
json=json.score; json=json.score;
Object.keys(json).forEach(function(tag) { Object.keys(json).forEach(function(tag) {
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a><span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="#' + tag + 'のタイムライン">TL</a> <a onclick="show();brInsert(\'#' + tag + '\')" class="pointer" title="#' + tag + 'でトゥート">Toot</a></span><br>'; tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + escapeHTML(tag) + '</a><span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="#' + tag + 'のタイムライン">TL</a> <a onclick="show();brInsert(\'#' + tag + '\')" class="pointer" title="#' + tag + 'でトゥート">Toot</a></span><br>';
}); });
$("#tips-text").html('<div class="trendtag">トレンドタグ<i class="material-icons pointer" onclick="trendTagonTip()" style="font-size:12px">refresh</i>:<br>' + tags+'</div>'); $("#tips-text").html('<div class="trendtag">トレンドタグ<i class="material-icons pointer" onclick="trendTagonTip()" style="font-size:12px">refresh</i>:<br>' + tags+'</div>');
trendTagonTipInterval() trendTagonTipInterval()

View File

@ -571,15 +571,30 @@ function udAdd(start) {
for(var i=0;i<fields.length;i++){ for(var i=0;i<fields.length;i++){
if(fields[i].type=="IdentityProof"){ if(fields[i].type=="IdentityProof"){
if(fields[i].signatureAlgorithm=="keybase"){ if(fields[i].signatureAlgorithm=="keybase"){
var html='<a href="https://keybase.io/'+fields[i].name+'" target="_blank" class="cbadge teal waves-effect" style="max-width:200px;" title="'+lang.lang_hisdata_key.replace("{{set}}",fields[i].signatureAlgorithm)+'"><i class="fas fa-key" aria-hidden="true"></i>'+fields[i].signatureAlgorithm+':'+fields[i].name+'</a>'; var html='<a href="https://keybase.io/'+fields[i].name+'" target="_blank" class="cbadge teal waves-effect" style="max-width:200px;" title="'+lang.lang_hisdata_key.replace("{{set}}",escapeHTML(fields[i].signatureAlgorithm))+'"><i class="fas fa-key" aria-hidden="true"></i>'+escapeHTML(fields[i].signatureAlgorithm)+':'+escapeHTML(fields[i].name)+'</a>';
}else{ }else{
var html='<span class="cbadge teal" style="max-width:200px;" title="'+lang.lang_hisdata_key.replace("{{set}}",fields[i].signatureAlgorithm)+'"><i class="fas fa-key" aria-hidden="true"></i>'+fields[i].signatureAlgorithm+':'+fields[i].name+'</span>'; var html='<span class="cbadge teal" style="max-width:200px;" title="'+lang.lang_hisdata_key.replace("{{set}}",escapeHTML(fields[i].signatureAlgorithm))+'"><i class="fas fa-key" aria-hidden="true"></i>'+escapeHTML(fields[i].signatureAlgorithm)+':'+escapeHTML(fields[i].name)+'</span>';
} }
$("#his-proof-prof").append(html) $("#his-proof-prof").append(html)
} }
} }
}); });
fetch("https://notestock.osa-p.net/api/v1/isstock.json?id="+start.replace("@","users/"), {
method: 'GET',
headers: {
'Accept': 'application/json'
},
}).then(function(response) {
return response.json();
}).catch(function(error) {
todo(error);
console.error(error);
}).then(function(json) {
if(json.user.public_view){
var html='<a href="'+json.user.url+'" target="_blank" class="cbadge purple waves-effect" style="max-width:200px;" title="Notestock">Notestock</a>';
$("#his-proof-prof").append(html)
}
});
} }

View File

@ -157,8 +157,7 @@ function udg(user, acct_id) {
var when=""; var when="";
var color="inherit" var color="inherit"
} }
fval=twemoji.parse(fval); note=note+'<tr><td class="his-field-title">'+twemoji.parse(escapeHTML(fname))+'</td><td class="his-field-content" title="'+when+'" style="background-color:'+color+'">'+twemoji.parse(fval)+'</td></tr>';
note=note+'<tr><td class="his-field-title">'+fname+'</td><td class="his-field-content" title="'+when+'" style="background-color:'+color+'">'+fval+'</td></tr>';
} }
note=note+'</table>' note=note+'</table>'
$("#his-des").html(twemoji.parse(note)); $("#his-des").html(twemoji.parse(note));
@ -185,10 +184,10 @@ function udg(user, acct_id) {
showFrl('', acct_id); showFrl('', acct_id);
$("#his-name-val").val(json.display_name); $("#his-name-val").val(json.display_name);
if(json.fields.length>0){ if(json.fields.length>0){
$("#his-f1-name").val(json.fields[0].name); $("#his-f1-val").val($.strip_tags(json.fields[0].value)); if(json.fields[0]){$("#his-f1-name").val(json.fields[0].name); $("#his-f1-val").val($.strip_tags(json.fields[0].value));}
$("#his-f2-name").val(json.fields[1].name); $("#his-f2-val").val($.strip_tags(json.fields[1].value)); if(json.fields[1]){$("#his-f2-name").val(json.fields[1].name); $("#his-f2-val").val($.strip_tags(json.fields[1].value));}
$("#his-f3-name").val(json.fields[2].name); $("#his-f3-val").val($.strip_tags(json.fields[2].value)); if(json.fields[2]){$("#his-f3-name").val(json.fields[2].name); $("#his-f3-val").val($.strip_tags(json.fields[2].value));}
$("#his-f4-name").val(json.fields[3].name); $("#his-f4-val").val($.strip_tags(json.fields[3].value)); if(json.fields[3]){$("#his-f4-name").val(json.fields[3].name); $("#his-f4-val").val($.strip_tags(json.fields[3].value));}
} }
var des = json.note; var des = json.note;
des = des.replace(/<br \/>/g, "\n") des = des.replace(/<br \/>/g, "\n")
@ -279,7 +278,7 @@ function misskeyUdg(user, acct_id) {
$("#his-follow").text(json.followingCount); $("#his-follow").text(json.followingCount);
$("#his-follower").text(json.followersCount); $("#his-follower").text(json.followersCount);
$("#his-since").text(crat(json.createdAt)); $("#his-since").text(crat(json.createdAt));
var note=json.description; var note=escapeHTML(json.description);
$("#his-des").html(twemoji.parse(note)); $("#his-des").html(twemoji.parse(note));
if(json.isCat){ if(json.isCat){
$("#his-bot").html("Cat"+twemoji.parse("😺")); $("#his-bot").html("Cat"+twemoji.parse("😺"));

590
app/package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "thedesk", "name": "thedesk",
"version": "18.2.1", "version": "18.3.1",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -18,8 +18,7 @@
"abbrev": { "abbrev": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
"optional": true
}, },
"ajv": { "ajv": {
"version": "6.10.0", "version": "6.10.0",
@ -158,14 +157,12 @@
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
"optional": true
}, },
"are-we-there-yet": { "are-we-there-yet": {
"version": "1.1.5", "version": "1.1.5",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"optional": true,
"requires": { "requires": {
"delegates": "^1.0.0", "delegates": "^1.0.0",
"readable-stream": "^2.0.6" "readable-stream": "^2.0.6"
@ -248,7 +245,7 @@
"version": "0.0.9", "version": "0.0.9",
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"optional": true, "dev": true,
"requires": { "requires": {
"inherits": "~2.0.0" "inherits": "~2.0.0"
} }
@ -475,6 +472,12 @@
"supports-color": "^5.3.0" "supports-color": "^5.3.0"
} }
}, },
"chownr": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
"integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
"optional": true
},
"chromium-pickle-js": { "chromium-pickle-js": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
@ -493,6 +496,21 @@
"integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
"dev": true "dev": true
}, },
"cli-cursor": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"dev": true,
"requires": {
"restore-cursor": "^2.0.0"
}
},
"cli-spinners": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.1.0.tgz",
"integrity": "sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA==",
"dev": true
},
"cliui": { "cliui": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
@ -537,6 +555,12 @@
} }
} }
}, },
"clone": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
"integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
"dev": true
},
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@ -557,6 +581,12 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true "dev": true
}, },
"colors": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz",
"integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==",
"dev": true
},
"combined-stream": { "combined-stream": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
@ -605,8 +635,7 @@
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@ -676,6 +705,15 @@
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"dev": true "dev": true
}, },
"defaults": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
"integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
"dev": true,
"requires": {
"clone": "^1.0.2"
}
},
"delayed-stream": { "delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@ -684,8 +722,13 @@
"delegates": { "delegates": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
"optional": true },
"detect-libc": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
"dev": true
}, },
"dmg-builder": { "dmg-builder": {
"version": "6.6.0", "version": "6.6.0",
@ -914,6 +957,165 @@
} }
} }
}, },
"electron-rebuild": {
"version": "1.8.4",
"resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.4.tgz",
"integrity": "sha512-QBUZg1due+R0bww5rNd4gEcsKczyhxyLrxSFZlKihwHRxaiHrGut532JAUe0fRz+VIU4WNSfNKyZ/ZwSGjaDhA==",
"dev": true,
"requires": {
"colors": "^1.3.3",
"debug": "^4.1.1",
"detect-libc": "^1.0.3",
"fs-extra": "^7.0.1",
"node-abi": "^2.7.0",
"node-gyp": "^3.8.0",
"ora": "^3.0.0",
"spawn-rx": "^3.0.0",
"yargs": "^12.0.5"
},
"dependencies": {
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
},
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
"locate-path": "^3.0.0"
}
},
"get-caller-file": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
"dev": true
},
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"dev": true
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true
},
"node-gyp": {
"version": "3.8.0",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
"integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
"dev": true,
"requires": {
"fstream": "^1.0.0",
"glob": "^7.0.3",
"graceful-fs": "^4.1.2",
"mkdirp": "^0.5.0",
"nopt": "2 || 3",
"npmlog": "0 || 1 || 2 || 3 || 4",
"osenv": "0",
"request": "^2.87.0",
"rimraf": "2",
"semver": "~5.3.0",
"tar": "^2.0.0",
"which": "1"
}
},
"require-main-filename": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
"dev": true
},
"semver": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
"dev": true
},
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
}
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "^3.0.0"
}
},
"tar": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
"dev": true,
"requires": {
"block-stream": "*",
"fstream": "^1.0.2",
"inherits": "2"
}
},
"yargs": {
"version": "12.0.5",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
"integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
"dev": true,
"requires": {
"cliui": "^4.0.0",
"decamelize": "^1.2.0",
"find-up": "^3.0.0",
"get-caller-file": "^1.0.1",
"os-locale": "^3.0.0",
"require-directory": "^2.1.1",
"require-main-filename": "^1.0.1",
"set-blocking": "^2.0.0",
"string-width": "^2.0.0",
"which-module": "^2.0.0",
"y18n": "^3.2.1 || ^4.0.0",
"yargs-parser": "^11.1.1"
}
},
"yargs-parser": {
"version": "11.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
"integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
}
}
},
"emoji-regex": { "emoji-regex": {
"version": "7.0.3", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
@ -1118,17 +1320,25 @@
"fs-extra": "^7.0.1" "fs-extra": "^7.0.1"
} }
}, },
"fs-minipass": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
"integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"optional": true,
"requires": {
"minipass": "^2.2.1"
}
},
"fs.realpath": { "fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
"optional": true
}, },
"fstream": { "fstream": {
"version": "1.0.11", "version": "1.0.11",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
"optional": true, "dev": true,
"requires": { "requires": {
"graceful-fs": "^4.1.2", "graceful-fs": "^4.1.2",
"inherits": "~2.0.0", "inherits": "~2.0.0",
@ -1140,7 +1350,6 @@
"version": "2.7.4", "version": "2.7.4",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"optional": true,
"requires": { "requires": {
"aproba": "^1.0.3", "aproba": "^1.0.3",
"console-control-strings": "^1.0.0", "console-control-strings": "^1.0.0",
@ -1182,7 +1391,6 @@
"version": "7.1.3", "version": "7.1.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"optional": true,
"requires": { "requires": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
@ -1262,8 +1470,7 @@
"has-unicode": { "has-unicode": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
"optional": true
}, },
"hosted-git-info": { "hosted-git-info": {
"version": "2.7.1", "version": "2.7.1",
@ -1315,7 +1522,6 @@
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"optional": true,
"requires": { "requires": {
"once": "^1.3.0", "once": "^1.3.0",
"wrappy": "1" "wrappy": "1"
@ -1620,6 +1826,21 @@
"path-exists": "^3.0.0" "path-exists": "^3.0.0"
} }
}, },
"lodash.assign": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
"integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
"dev": true
},
"log-symbols": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
"integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
"dev": true,
"requires": {
"chalk": "^2.0.1"
}
},
"loud-rejection": { "loud-rejection": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
@ -1767,6 +1988,36 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
}, },
"minipass": {
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
"integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
},
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"yallist": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
}
}
},
"minizlib": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"optional": true,
"requires": {
"minipass": "^2.2.1"
}
},
"mkdirp": { "mkdirp": {
"version": "0.5.1", "version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
@ -1797,19 +2048,27 @@
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true "dev": true
}, },
"node-abi": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.8.0.tgz",
"integrity": "sha512-1/aa2clS0pue0HjckL62CsbhWWU35HARvBDXcJtYKbYR7LnIutmpxmXbuDMV9kEviD2lP/wACOgWmmwljghHyQ==",
"dev": true,
"requires": {
"semver": "^5.4.1"
}
},
"node-addon-api": { "node-addon-api": {
"version": "1.6.2", "version": "1.6.3",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.2.tgz", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.3.tgz",
"integrity": "sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA==", "integrity": "sha512-FXWH6mqjWgU8ewuahp4spec8LkroFZK2NicOv6bNwZC3kcwZUI8LeZdG80UzTSLLhK4T7MsgNwlYDVRlDdfTDg==",
"optional": true "optional": true
}, },
"node-gyp": { "node-gyp": {
"version": "3.8.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz",
"integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "integrity": "sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==",
"optional": true, "optional": true,
"requires": { "requires": {
"fstream": "^1.0.0",
"glob": "^7.0.3", "glob": "^7.0.3",
"graceful-fs": "^4.1.2", "graceful-fs": "^4.1.2",
"mkdirp": "^0.5.0", "mkdirp": "^0.5.0",
@ -1819,138 +2078,15 @@
"request": "^2.87.0", "request": "^2.87.0",
"rimraf": "2", "rimraf": "2",
"semver": "~5.3.0", "semver": "~5.3.0",
"tar": "^2.0.0", "tar": "^4.4.8",
"which": "1" "which": "1"
}, },
"dependencies": { "dependencies": {
"ajv": {
"version": "6.10.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
"integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
"optional": true,
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"aws4": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
"optional": true
},
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"optional": true
},
"fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"optional": true
},
"har-validator": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
"optional": true,
"requires": {
"ajv": "^6.5.5",
"har-schema": "^2.0.0"
}
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"optional": true
},
"mime-db": {
"version": "1.38.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
"integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
"optional": true
},
"mime-types": {
"version": "2.1.22",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
"integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
"optional": true,
"requires": {
"mime-db": "~1.38.0"
}
},
"oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"optional": true
},
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"optional": true
},
"request": {
"version": "2.88.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
"optional": true,
"requires": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
"caseless": "~0.12.0",
"combined-stream": "~1.0.6",
"extend": "~3.0.2",
"forever-agent": "~0.6.1",
"form-data": "~2.3.2",
"har-validator": "~5.1.0",
"http-signature": "~1.2.0",
"is-typedarray": "~1.0.0",
"isstream": "~0.1.2",
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.19",
"oauth-sign": "~0.9.0",
"performance-now": "^2.1.0",
"qs": "~6.5.2",
"safe-buffer": "^5.1.2",
"tough-cookie": "~2.4.3",
"tunnel-agent": "^0.6.0",
"uuid": "^3.3.2"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"optional": true
},
"semver": { "semver": {
"version": "5.3.0", "version": "5.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
"optional": true "optional": true
},
"tough-cookie": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"optional": true,
"requires": {
"psl": "^1.1.24",
"punycode": "^1.4.1"
}
},
"uuid": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
"optional": true
} }
} }
}, },
@ -1969,7 +2105,6 @@
"version": "3.0.6", "version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"optional": true,
"requires": { "requires": {
"abbrev": "1" "abbrev": "1"
} }
@ -1988,13 +2123,12 @@
}, },
"nowplaying-node": { "nowplaying-node": {
"version": "0.1.3", "version": "0.1.3",
"resolved": "https://registry.npmjs.org/nowplaying-node/-/nowplaying-node-0.1.3.tgz", "resolved": "git+https://github.com/cutls/nowplaying-node.git#1641fc3c7fad8cd1f10f15a2517ada67a8de802c",
"integrity": "sha512-nEvuw93xmgZS7X1XqUaLJXhd4iB54xjTOnYuEEoPMBHHs3QWGECNKvnD0uDBCe269sUK8Z5InX5rPjzf3vRVrw==",
"optional": true, "optional": true,
"requires": { "requires": {
"@types/node": "^10.1.2", "@types/node": "^10.1.2",
"node-addon-api": "^1.2.0", "node-addon-api": "^1.2.0",
"node-gyp": "^3.6.2" "node-gyp": ">=4.0.0"
} }
}, },
"npm-run-path": { "npm-run-path": {
@ -2010,7 +2144,6 @@
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"optional": true,
"requires": { "requires": {
"are-we-there-yet": "~1.1.2", "are-we-there-yet": "~1.1.2",
"console-control-strings": "~1.1.0", "console-control-strings": "~1.1.0",
@ -2070,11 +2203,58 @@
"wrappy": "1" "wrappy": "1"
} }
}, },
"onetime": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"dev": true,
"requires": {
"mimic-fn": "^1.0.0"
},
"dependencies": {
"mimic-fn": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
}
}
},
"ora": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
"integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
"dev": true,
"requires": {
"chalk": "^2.4.2",
"cli-cursor": "^2.1.0",
"cli-spinners": "^2.0.0",
"log-symbols": "^2.2.0",
"strip-ansi": "^5.2.0",
"wcwidth": "^1.0.1"
},
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dev": true,
"requires": {
"ansi-regex": "^4.1.0"
}
}
}
},
"os-homedir": { "os-homedir": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
"optional": true
}, },
"os-locale": { "os-locale": {
"version": "3.1.0", "version": "3.1.0",
@ -2129,14 +2309,12 @@
"os-tmpdir": { "os-tmpdir": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
"optional": true
}, },
"osenv": { "osenv": {
"version": "0.1.5", "version": "0.1.5",
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"optional": true,
"requires": { "requires": {
"os-homedir": "^1.0.0", "os-homedir": "^1.0.0",
"os-tmpdir": "^1.0.0" "os-tmpdir": "^1.0.0"
@ -2258,8 +2436,7 @@
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
"optional": true
}, },
"path-is-inside": { "path-is-inside": {
"version": "1.0.2", "version": "1.0.2",
@ -2601,13 +2778,31 @@
"path-parse": "^1.0.6" "path-parse": "^1.0.6"
} }
}, },
"rimraf": { "restore-cursor": {
"version": "2.6.2", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"optional": true, "dev": true,
"requires": { "requires": {
"glob": "^7.0.5" "onetime": "^2.0.0",
"signal-exit": "^3.0.2"
}
},
"rimraf": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"requires": {
"glob": "^7.1.3"
}
},
"rxjs": {
"version": "6.5.1",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz",
"integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==",
"dev": true,
"requires": {
"tslib": "^1.9.0"
} }
}, },
"safe-buffer": { "safe-buffer": {
@ -2719,6 +2914,17 @@
"source-map": "^0.6.0" "source-map": "^0.6.0"
} }
}, },
"spawn-rx": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz",
"integrity": "sha512-dw4Ryg/KMNfkKa5ezAR5aZe9wNwPdKlnHEXtHOjVnyEDSPQyOpIPPRtcIiu7127SmtHhaCjw21yC43HliW0iIg==",
"dev": true,
"requires": {
"debug": "^2.5.1",
"lodash.assign": "^4.2.0",
"rxjs": "^6.3.1"
}
},
"spdx-correct": { "spdx-correct": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
@ -2872,14 +3078,32 @@
} }
}, },
"tar": { "tar": {
"version": "2.2.1", "version": "4.4.8",
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"optional": true, "optional": true,
"requires": { "requires": {
"block-stream": "*", "chownr": "^1.1.1",
"fstream": "^1.0.2", "fs-minipass": "^1.2.5",
"inherits": "2" "minipass": "^2.3.4",
"minizlib": "^1.1.1",
"mkdirp": "^0.5.0",
"safe-buffer": "^5.1.2",
"yallist": "^3.0.2"
},
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"optional": true
},
"yallist": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
"optional": true
}
} }
}, },
"temp-file": { "temp-file": {
@ -2993,6 +3217,12 @@
"utf8-byte-length": "^1.0.1" "utf8-byte-length": "^1.0.1"
} }
}, },
"tslib": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
"dev": true
},
"tunnel-agent": { "tunnel-agent": {
"version": "0.6.0", "version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
@ -3150,6 +3380,15 @@
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.9.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.9.tgz",
"integrity": "sha512-t1+tvH8hybPM86oNne3ZozCD02zj/VoZIiojOBPJLjwBn7hxYU5e1gBObFpq8ts1NEn1VhPf/hVXBDAJ3X5ljg==" "integrity": "sha512-t1+tvH8hybPM86oNne3ZozCD02zj/VoZIiojOBPJLjwBn7hxYU5e1gBObFpq8ts1NEn1VhPf/hVXBDAJ3X5ljg=="
}, },
"wcwidth": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
"integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
"dev": true,
"requires": {
"defaults": "^1.0.3"
}
},
"which": { "which": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@ -3168,7 +3407,6 @@
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"optional": true,
"requires": { "requires": {
"string-width": "^1.0.2 || 2" "string-width": "^1.0.2 || 2"
} }
@ -3217,7 +3455,7 @@
}, },
"wrap-ansi": { "wrap-ansi": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"dev": true, "dev": true,
"requires": { "requires": {

View File

@ -1,6 +1,6 @@
{ {
"name": "thedesk", "name": "thedesk",
"version": "18.2.3", "version": "18.3.2",
"description": "TheDesk is a Mastodon client for PC.", "description": "TheDesk is a Mastodon client for PC.",
"repository": "https://github.com/cutls/TheDesk", "repository": "https://github.com/cutls/TheDesk",
"main": "main.js", "main": "main.js",
@ -35,7 +35,7 @@
}, },
{ {
"name": "kPherox", "name": "kPherox",
"url": "https://www.kr-kp.com/", "url": "https://pawoo.net/@kPherox",
"email": "admin@mail.kr-kp.com" "email": "admin@mail.kr-kp.com"
} }
], ],
@ -49,7 +49,7 @@
"vue": "^2.6.9" "vue": "^2.6.9"
}, },
"optionalDependencies": { "optionalDependencies": {
"nowplaying-node": "^0.1.3", "nowplaying-node": "git+https://github.com/cutls/nowplaying-node",
"itunes-nowplaying-mac": "git+https://github.com/rinsuki/itunes-nowplaying-mac#pull/4/head", "itunes-nowplaying-mac": "git+https://github.com/rinsuki/itunes-nowplaying-mac#pull/4/head",
"font-manager": "^0.3.0" "font-manager": "^0.3.0"
}, },
@ -94,7 +94,10 @@
"category": "Network" "category": "Network"
}, },
"mac": { "mac": {
"target": ["dmg","zip"] "target": [
"dmg",
"zip"
]
}, },
"electronDownload": { "electronDownload": {
"version": "4.1.4" "version": "4.1.4"

BIN
app/source/notif.wav Normal file

Binary file not shown.

BIN
app/source/notif2.wav Normal file

Binary file not shown.

BIN
app/source/notif3.wav Normal file

Binary file not shown.

View File

@ -1,5 +1,5 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="ja">
<head> <head>
<title>Account Manager - TheDesk</title> <title>Account Manager - TheDesk</title>
<meta content="width=device-width,initial-scale=1.0" name="viewport"> <meta content="width=device-width,initial-scale=1.0" name="viewport">
@ -40,7 +40,7 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="../../js/common/jquery.js"></script> <script type="text/javascript" src="../../js/common/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.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="../../js/common/materialize.js"></script>
<script type="text/javascript" src="../../js/lang/lang.en.js"></script> <script type="text/javascript" src="../../js/lang/lang.ja.js"></script>
<script> <script>
var misskeytoken=false; var misskeytoken=false;
</script> </script>
@ -48,23 +48,23 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="../../js/common/time.js"></script> <script type="text/javascript" src="../../js/common/time.js"></script>
<script type="text/javascript" src="../../js/common/modal.js"></script> <script type="text/javascript" src="../../js/common/modal.js"></script>
<div class="hide-first"> <div class="hide-first">
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">Back</a><br> <a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">戻る</a><br>
<h5>List of accounts</h5> <h5>アカウント一覧</h5>
<div id="acct-list"></div> <div id="acct-list"></div>
<div class="divider"></div> <div class="divider"></div>
</div> </div>
<div> <div>
<h5>Add an account</h5><br> <h5>アカウントを追加</h5><br>
<div id="add"> <div id="add">
<div class="row"> <div class="row">
<div class="col s8"> <div class="col s8">
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp"> <input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
<div id="ins-suggest"></div> <div id="ins-suggest"></div>
Uncheck it to skip pasiting code.(login to Mastodon on Windows or macOS) (Recommended: pcheck)<br> チェックを外すとコード貼り付けをスキップできます。(<u>Mastodon</u>にWindowsやmacOSからログインする場合)失敗する場合はチェックを入れてください。<br>
<input type="checkbox" class="filled-in" id="linux" /> <input type="checkbox" class="filled-in" id="linux" />
<label for="linux">Code setup</label><br> <label for="linux">コードセットアップ</label><br>
<input type="checkbox" class="filled-in" id="misskey" /> <input type="checkbox" class="filled-in" id="misskey" />
<label for="misskey">Login as Misskey</label><br> <label for="misskey">Misskeyとしてログイン</label><br>
<button class="btn waves-effect" onclick="instance()">Login</button><br> <button class="btn waves-effect" onclick="instance()">Login</button><br>
</div> </div>
<div class="col s4"> <div class="col s4">
@ -73,21 +73,21 @@ body,html{overflow-y: scroll;}
</div> </div>
</div></div> </div></div>
<div id="auth" style="display:none"> <div id="auth" style="display:none">
Paste the code and close browser.<br> 指定されたコードを貼り付けてください。ログインウィンドウは閉じていただいて構いません。<br>
<input type="text" id="code" placeholder="Code"> <input type="text" id="code" placeholder="コードを入力">
<button class="btn waves-effect" onclick="code()">Auth</button><br> <button class="btn waves-effect" onclick="code()">Auth</button><br>
</div> </div>
<div id="misskeylogin" style="display:none"> <div id="misskeylogin" style="display:none">
<h5>AppSecret</h5> <h5>AppSecret</h5>
Read <a href="https://thedesk.top/how-to-misskey-login.html">Docs(ja)</a> to login Misskey.<br> <a href="https://thedesk.top/how-to-misskey-login.html">ドキュメント</a>を参照して正しいコードを入れてください。<br>
<input type="hidden" id="misskey-url"> <input type="hidden" id="misskey-url">
<input type="text" id="misskey-key" placeholder="Code"> <input type="text" id="misskey-key" placeholder="コードを入力">
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br> <button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br>
</div> </div>
</div> </div>
<div class="hide-first"> <div class="hide-first">
<h5>Main an account</h5> <h5>メインアカウント</h5>
<div class="input-field" style="width:300px"><span data-trans="your_acct">Select an account</span> <div class="input-field" style="width:300px"><span data-trans="your_acct">アカウントを選択</span>
<br> <br>
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select> <select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
<label></label> <label></label>
@ -98,12 +98,12 @@ Administered by:<a id="ins-admin"></a><br>
<span id="ins-desc"></span><br> <span id="ins-desc"></span><br>
<img src="../../img/loading.svg" id="ins-prof" width="200"><br> <img src="../../img/loading.svg" id="ins-prof" width="200"><br>
<br> <br>
Domain:<span id="ins-name"></span><br> ドメイン名:<span id="ins-name"></span><br>
Federated servers:<span id="ins-connect"></span><br> 接続サーバー数:<span id="ins-connect"></span><br>
Toots:<span id="ins-toot"></span><br> トゥート数:<span id="ins-toot"></span><br>
Users:<span id="ins-user"></span>Users<br> ユーザー数:<span id="ins-user"></span>ユーザー数<br>
Connection:<span id="ins-per"></span>%<br> コネクション:<span id="ins-per"></span>%<br>
Mastodon version:<span id="ins-ver"></span>@<span id="ins-upd"></span><br> Mastodonバージョン:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
</div> </div>
<script type="text/javascript" src="../../js/ui/theme.js"></script> <script type="text/javascript" src="../../js/ui/theme.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script> <script type="text/javascript" src="../../js/platform/end.js"></script>

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,7 @@
<script type="text/javascript" src="../../js/platform/first.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="../../js/common/materialize.js"></script>
<a href="setting.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i class="material-icons left">undo</i>Back</a> <a href="setting.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i class="material-icons left">undo</i>Back</a>
LICENSE of TheDesk:<a href="https://github.com/cutls/TheDesk/blob/master/LICENSE.md">TheDesk LICENSE (Latest Ver.)</a><br> LICENSE of TheDesk:<a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">TheDesk LICENSE (Latest Ver.)</a><br>
<article style="width:500px; max-width:100%; margin:15px; font-family:Arial,Helvetica"> <article style="width:500px; max-width:100%; margin:15px; font-family:Arial,Helvetica">
<h5>TheDesk</h5> <h5>TheDesk</h5>
<i class="fa fa-github"></i><a href="https://github.com/cutls/TheDesk" target="_blank">cutls/TheDesk</a><br> <i class="fa fa-github"></i><a href="https://github.com/cutls/TheDesk" target="_blank">cutls/TheDesk</a><br>

View File

@ -1,5 +1,5 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="ja" style="overflow:scroll">
<head> <head>
<title>Settings - TheDesk</title> <title>Settings - TheDesk</title>
@ -22,7 +22,6 @@
input { input {
max-height: 50px !important max-height: 50px !important
} }
.pcr-result { .pcr-result {
height: 1rem !important; height: 1rem !important;
} }
@ -33,34 +32,34 @@
<script type="text/javascript" src="../../js/common/jquery.js"></script> <script type="text/javascript" src="../../js/common/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.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="../../js/common/materialize.js"></script>
<script type="text/javascript" src="../../js/lang/lang.en.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="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
<script src="../../node_modules/vue/dist/vue.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="setting.vue.js"></script>
<h4>Preferences</h4> <h4>設定</h4>
<ul class="collapsible" data-collapsible="accordion"> <ul class="collapsible" data-collapsible="accordion">
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">desktop_windows</i>System Preferences <i class="material-icons">desktop_windows</i>環境設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h5>Languages</h5> <h5>言語</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>
<a href="../ja/setting.html" onclick="changelang('ja')">日本語(Japanese)</a>/<a href="../en/setting.html" onclick="changelang('en')">English</a>/<a href="../ps/setting.html" onclick="changelang('ps')">Crowdin web translate</a>/ @@langlist@@
<h5>Import and export of preferences</h5> <h5>設定のインポートとエクスポート</h5>
<button onclick="exportSettings()" class="btn waves-effect lime darken-3" <button onclick="exportSettings()" class="btn waves-effect lime darken-3"
style="width:100%; max-width:200px;">Export</button> style="width:100%; max-width:200px;">エクスポート</button>
<button onclick="importSettings()" class="btn waves-effect cyan darken-3" <button onclick="importSettings()" class="btn waves-effect cyan darken-3"
style="width:100%; max-width:200px;">Import</button> style="width:100%; max-width:200px;">インポート</button>
<div id="envView"> <div id="envView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.id=='notf'"><a onclick="notftest()" <template v-if="item.id=='notf'"><a onclick="notftest()"
class="pointer">Notification test</a><br></template> class="pointer">通知テスト</a><br></template>
<template v-if="item.checkbox"> <template v-if="item.checkbox">
<template v-for="(check, j) in item.text.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" <input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
@ -80,30 +79,30 @@
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}} v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template> </template>
<button class="btn waves-effect" style="width:100px;" <button class="btn waves-effect" style="width:100px;"
v-on:click="complete(i)">Change</button> v-on:click="complete(i)">変更</button>
</template><br> </template><br>
</template> </template>
</div> </div>
<h5>Font</h5> <h5>フォント</h5>
Select your favorite font to 'Select'<br> 「選択」を押してフォントを選んでください。(Linuxでは動きません)<br>
<button class="btn waves-effect" style="width:100px;" onclick="font()">Select</button><br> <button class="btn waves-effect" style="width:100px;" onclick="font()">選択</button><br>
<div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div> <div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div>
<br> <br>
<input type="text" style="width:150px" id="font"> <input type="text" style="width:150px" id="font">
<button class="btn waves-effect" style="width:100px;" onclick="settings()">Save</button> <button class="btn waves-effect" style="width:100px;" onclick="settings()">設定</button>
<br> <br>
<h5>Folder to save</h5> <h5>デフォルトの保存先</h5>
TheDesk uses this value when it try to save pictures or take screenshots.<br> 画像ダウンロードやスクリーンショットに影響します。<br>
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">Change</button> <button class="btn waves-effect" style="width:100px;" onclick="savefolder()">変更</button>
<br> <br>
</div> </div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">color_lens</i>Themes <i class="material-icons">color_lens</i>テーマの設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h4>Select theme</h4> <h4>テーマの選択</h4>
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" /> <input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
<label for="black">Black</label> <label for="black">Black</label>
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" /> <input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
@ -119,73 +118,73 @@
<div style="width:300px" id="sel-selector"> <div style="width:300px" id="sel-selector">
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select> <select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
</div> </div>
<h4>Edit and add custom themes</h4> <h4>カスタムテーマの作成・編集</h4>
<div style="width:300px" id="edit-selector" data-add="Add new"> <div style="width:300px" id="edit-selector" data-add="新規作成">
<select id="custom-edit-sel" class="custom-sel" onchange="custom()"> <select id="custom-edit-sel" class="custom-sel" onchange="custom()">
<option value="add_new">Add new</option> <option value="add_new">新規作成</option>
</select> </select>
</div> </div>
<h5>Name</h5> <h5>名前</h5>
<input type="text" style="width:300px" id="custom_name" placeholder="Name..."> <input type="text" style="width:300px" id="custom_name" placeholder="名前...">
<h5>About this theme</h5> <h5>説明</h5>
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea" <div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
placeholder="About this theme..."></textarea></div> placeholder="説明..."></textarea></div>
<h5>Color scheme</h5> <h5>色の系統</h5>
<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" /> <input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
<label for="dark">Dark</label> <label for="dark">Dark</label>
<input class="with-gap" name="derection" type="radio" id="light" value="light" /> <input class="with-gap" name="direction" type="radio" id="light" value="light" />
<label for="light">Light</label> <label for="light">Light</label>
<div id="pickers"> <div id="pickers">
<div> <div>
<h5>Primary</h5>Background of components <h5>Primary</h5>補助要素に使われる背景色
<div id="color-picker0-wrap"> <div id="color-picker0-wrap">
<div class="color-picker" id="color-picker0"></div> <div class="color-picker" id="color-picker0"></div>
</div> </div>
<input type="hidden" id="color-picker0_value"> <input type="hidden" id="color-picker0_value">
</div> </div>
<div> <div>
<h5>Secondary</h5>Background color <h5>Secondary</h5>全体の背景色など
<div id="color-picker1-wrap"> <div id="color-picker1-wrap">
<div class="color-picker" id="color-picker1"></div> <div class="color-picker" id="color-picker1"></div>
</div> </div>
<input type="hidden" id="color-picker1_value"> <input type="hidden" id="color-picker1_value">
</div> </div>
<div> <div>
<h5>Texts</h5>Text color <h5>Texts</h5>テキストの色
<div id="color-picker2-wrap"> <div id="color-picker2-wrap">
<div class="color-picker" id="color-picker2"></div> <div class="color-picker" id="color-picker2"></div>
</div> </div>
<input type="hidden" id="color-picker2_value"> <input type="hidden" id="color-picker2_value">
</div> </div>
<div> <div>
<h5>Accent</h5>Background of boosts <h5>Accent</h5>ブーストの背景色など
<div id="color-picker3-wrap"> <div id="color-picker3-wrap">
<div class="color-picker" id="color-picker3"></div> <div class="color-picker" id="color-picker3"></div>
</div> </div>
<input type="hidden" id="color-picker3_value"> <input type="hidden" id="color-picker3_value">
</div> </div>
</div> </div>
<button class="btn-large waves-effect" onclick="customComp()">Change</button>&nbsp;<button <button class="btn-large waves-effect" onclick="customComp()">変更</button>&nbsp;<button
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Delete</button><br><br> 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" id="custom_json" class="materialize-textarea"
placeholder="JSON style" readonly><br> placeholder="JSON style" readonly><br>
Share this code with other TheDesk. Do not share this code with MiAS. このコードは他のTheDeskなどとシェアできます。このコードをMiASに貼ることはご遠慮ください。詳細:<a href="https://thedesk.top/mias.html" target="_blank">テーマ互換性</a>
<h4>Import of custom themes</h4> <h4>カスタムテーマのインポート</h4>
Get more themes on <a href="https://assets.msky.cafe/" target="_blank">MiAS</a><br> <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" id="custom_import" class="materialize-textarea"
placeholder="JSON/JSON5 style"> placeholder="JSON/JSON5 style">
<button class="btn waves-effect" onclick="customImp()">Import</button><br> <button class="btn waves-effect" onclick="customImp()">インポート</button><br>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">reorder</i>Timeline Preferences <i class="material-icons">reorder</i>タイムラインの設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<div id="tlView"> <div id="tlView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.checkbox"> <template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox"> <template v-for="(check, j) in item.text.checkbox">
@ -206,22 +205,27 @@
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}} v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template> </template>
<button class="btn waves-effect" style="width:100px;" <button class="btn waves-effect" style="width:100px;"
v-on:click="complete(i)">Change</button> v-on:click="complete(i)">変更</button>
</template><br> </template><br>
</template> </template>
</div> </div>
<h5>カスタム通知音</h5>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span id="c3-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span id="c4-file"></span><br>
</div> </div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">send</i>Posting Preferences <i class="material-icons">send</i>投稿設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<div id="postView"> <div id="postView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.checkbox"> <template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox"> <template v-for="(check, j) in item.text.checkbox">
@ -245,7 +249,7 @@
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}} v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template> </template>
<button class="btn waves-effect" style="width:100px;" <button class="btn waves-effect" style="width:100px;"
v-on:click="complete(i)">Change</button> v-on:click="complete(i)">変更</button>
</template><br> </template><br>
</template> </template>
</div> </div>
@ -253,49 +257,49 @@
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">keyboard</i>Keyboard shortcut Preferences <i class="material-icons">keyboard</i>キーボードショートカットの設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h5>Easy inserter</h5> <h5>簡単文字入力</h5>
You can insert any letters and emojis with only 3 keys<br> 絵文字やタグ、&gt;BTなどを登録しておくとすぐに入力できます。<br>
Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1"> Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1">
<button onclick="oks(1)" class="btn waves-effect" style="width:100px;">Save</button><br><br> <button onclick="oks(1)" class="btn waves-effect" style="width:100px;">設定</button><br><br>
Ctrl+Shift+2:<input type="text" style="width:150px" id="oks-2"> Ctrl+Shift+2:<input type="text" style="width:150px" id="oks-2">
<button onclick="oks(2)" class="btn waves-effect" style="width:100px;">Save</button><br><br> <button onclick="oks(2)" class="btn waves-effect" style="width:100px;">設定</button><br><br>
Ctrl+Shift+3:<input type="text" style="width:150px" id="oks-3"> Ctrl+Shift+3:<input type="text" style="width:150px" id="oks-3">
<button onclick="oks(3)" class="btn waves-effect" style="width:100px;">Save</button><br><br> <button onclick="oks(3)" class="btn waves-effect" style="width:100px;">設定</button><br><br>
</div> </div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences <i class="material-icons">bookmark</i>ミュート・強調の設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h5>Client Mute</h5> <h5>クライアントミュート</h5>
<div id="mute-cli"></div> <div id="mute-cli"></div>
<h5>Client Emphasis</h5> <h5>クライアント強調</h5>
Click client name on toots to toggle mute and emphasis. 各トゥートのクライアントをクリックすると設定できます。
<h5>Words Mute</h5> <h5>ワードミュート</h5>
Enter to set<br> Enterで確定<br>
<div class="chips" id="wordmute" style="background-color:gray;"></div> <div class="chips" id="wordmute" style="background-color:gray;"></div>
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">Save</button> <button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">設定</button>
<h5>Words Emphasis</h5> <h5>ワード強調</h5>
Enter to set<br> Enterで確定<br>
<div class="chips" id="wordemp" style="background-color:gray;"></div> <div class="chips" id="wordemp" style="background-color:gray;"></div>
<button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">Save</button> <button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">設定</button>
<h5>Users Emphasis</h5> <h5>ユーザー強調</h5>
Set on users data modals. 各ユーザーのデータ表示画面で設定できます。
<span class="emphasized"> Use this color to emphasis </span> <span class="emphasized"> 強調色(テーマによって異なります。) </span>
</div> </div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="fa fa-spotify"></i>Spotify and NowPlaying Preferences <i class="fa fa-spotify"></i>SpotifyとNowPlayingの設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h5>NowPlaying Provider(Windows)</h5> <h5>NowPlayingのソース(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> 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" /> <input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
<label for="aimp">AIMP</label> <label for="aimp">AIMP</label>
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes" value="ITUNES" /> <input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes" value="ITUNES" />
@ -310,80 +314,80 @@
<label for="wlm">WLM</label> <label for="wlm">WLM</label>
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" /> <input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
<label for="cad">CAD</label><br><br> <label for="cad">CAD</label><br><br>
Click <i class="material-icons" style="font-size:24px;">music_note</i>icon to NowPlaying<br> <i class="material-icons" style="font-size:24px;">music_note</i>ボタンから簡単にNowPlayingができます。<br>
<h5>Account Connection</h5> <h5>アカウントの連携</h5>
TheDesk save your data on thedesk.top server.<br> APIの性質上thedesk.topへアクセスします。<br>
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button <div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
onclick="spotifyAuth()" class="btn waves-effect" style="width:100px;">Save</button></div> onclick="spotifyAuth()" class="btn waves-effect" style="width:100px;">設定</button></div>
<a onclick="spotifyConnect()" class="btn waves-effect nex" <a onclick="spotifyConnect()" class="btn waves-effect nex"
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i
class="fa fa-spotify left"></i>Connect</a> class="fa fa-spotify left"></i>接続</a>
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled" <a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
class="fa fa-spotify left"></i>Disconnect</a> class="fa fa-spotify left"></i>切断</a>
<h5>Edit a template</h5> <h5>テンプレートの編集</h5>
<br> 以下を編集してテンプレートを変更できます。<br>
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist} <textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
{url}</textarea><br> {url}</textarea><br>
Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify<br> Spotify:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/{url}:各曲のSpotifyのURL<br>
macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}<br> macOS:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/作曲家{composer}/サンプルレート{hz}/ビットレート{bitRate}/ジャンル{genre}<br>
Windows:{song}:Song name/{album}:Album name/{artist}:Artist name<br> Windows:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名<br>
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">Save</button> <button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">設定</button>
<h5>Attach an Artwork of Spotify</h5> <h5>アルバムアートワークを添付する(Spotify/Windows)</h5>
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes" value="yes" /> <input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes" value="yes" />
<label for="awk_yes">Yes</label> <label for="awk_yes">はい</label>
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no" value="no" /> <input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no" value="no" />
<label for="awk_no">No</label> <label for="awk_no">いいえ</label>
<br> <br>
</div> </div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">hearing</i>TTS(text to speech) Preferences <i class="material-icons">hearing</i>読み上げの設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h5>Speed</h5> <h5>読み上げの速さ</h5>
1-100(default:10)<br> 1-100まで、デフォルトは10。<br>
<p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10" <p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10"
style="width:500px; max-width:100%" /></p> style="width:500px; max-width:100%" /></p>
<h5>Pitch</h5> <h5>読み上げの高さ</h5>
0-100(default:50)<br> 0-100まで、デフォルトは50。(大きくなるほど高い)<br>
<p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50" <p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50"
style="width:500px; max-width:100%" /></p> style="width:500px; max-width:100%" /></p>
<h5>Volume</h5> <h5>読み上げの音量</h5>
0-100(default:100)<br> 0-100まで、デフォルトは100。<br>
<p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100" <p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100"
style="width:500px; max-width:100%" /></p> style="width:500px; max-width:100%" /></p>
<h5>Test</h5> <h5>テスト</h5>
<input type="text" style="width:350px" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC."> <input type="text" style="width:350px" id="voicetxt" value="これはテスト音声です。TheDeskはオープンソースのPC向けマストドンクライアントです。マルチサーバーやマルチカラムに対応しています。">
<button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()" <button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()"
id="testplay">Play/Stop</button><br> id="testplay">再生/停止</button><br>
<br> <br>
<button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">Save</button> <button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">設定</button>
</div> </div>
</li> </li>
</ul> </ul>
<br> <br>
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i <a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i
class="material-icons left">undo</i>Back</a> class="material-icons left">undo</i>戻る</a>
<br> <br>
<br>Keyboard shortcuts <br>キーボードショートカット一覧
<li>Ctrl+1-9:Jump to n(1-9)th column</li> <li>Ctrl+1-9:1番目9番目のTLにスクロール</li>
<li>N:Open toot box</li> <li>N:投稿パネルを開く</li>
<li>X:Toggle toot box</li> <li>X:投稿パネルを開閉</li>
<li>Ctrl+Enter:Post</li> <li>Ctrl+Enter:投稿</li>
<li>Ctrl+Enter+Shift:Post(secondary toot)</li> <li>Ctrl+Enter+Shift:投稿(セカンダリートゥート)</li>
<li>Alt+Enter:Secondary Toot Button</li> <li>Alt+Enter:セカンダリートゥートボタン</li>
<li>Ctrl+E:Make all notifications read</li> <li>Ctrl+E:全ての通知を既読にする</li>
<li>Esc:Hide toot box</li> <li>Esc:投稿パネルを消す</li>
<li>F5:Super Reload</li> <li>F5:スーパーリロード</li>
<li>Ctrl+Shift+C:Clear toot box</li> <li>Ctrl+Shift+C:入力内容を消す</li>
<li>Ctrl+Shift+S:Preferences</li> <li>Ctrl+Shift+S:設定</li>
<li>Ctrl+Shift+M:Account Manager</li> <li>Ctrl+Shift+M:アカウントマネージャ</li>
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li> <li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
<li>Ctrl+Shift+P:Show profile of selecting</li> <li>Ctrl+Shift+P:現在選択中のプロフィール</li>
<li>←/→:Show next or previous image</li> <li>←/→:イメージビューワー起動時に画像切り替え</li>
<li>Mousewheel:Zoom a image</li> <li>マウスホイール:イメージビューワー時に拡大縮小</li>
<div class="hide kirishima"> <div class="hide kirishima">
以下Markdownに対応したインスタンスのみ。 以下Markdownに対応したインスタンスのみ。
<br> <br>
@ -397,35 +401,33 @@
</li><br> </li><br>
</div> </div>
<button class="btn waves-effect red" style="width:100%; max-width:500px;" <button class="btn waves-effect red" style="width:100%; max-width:500px;"
onclick="if(confirm('Delete all data. You cannot undo. Continue?')){ localStorage.clear(); location.href='index.html'; }"><i onclick="if(confirm('全てのデータを削除します。この操作は取り消せません。')){ localStorage.clear(); location.href='index.html'; }"><i
class="material-icons left">delete</i>Reset(Danger)</button><br><br> class="material-icons left">delete</i>初期化</button><br><br>
<button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i <button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i
class="material-icons left">info</i>About TheDesk</button> class="material-icons left">info</i>このソフトについて</button>
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i <a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i
class="material-icons left">web</i>Website</a> class="material-icons left">web</i>公式HP</a>
<a href="https://enty.jp/Cutls" class="btn waves-effect purple lighten-2" style="width:100%; max-width:500px;"><i
class="material-icons left">trending_up</i>Support(Enty)</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2" <a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>Support(Pixiv FANBOX)</a> style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>支援(Pixiv FANBOX)</a>
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i <a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
class="material-icons left">list</i>Help/Docs(Constructing)</a> class="material-icons left">list</i>ヘルプ/Docs(Constructing)</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2" <a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a> style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
<a href="index.html?mode=user&code=Cutls@kirishima.cloud" class="btn waves-effect blue lighten-2" <a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
style="width:100%; max-width:500px;"><img src="../../img/desk_full.svg" class="left" width="25" style="width:100%; max-width:500px;"><img src="../../img/desk_full.svg" class="left" width="25"
style="padding-top:5px;">Developer: Cutls@kirishima.cloud</a> style="padding-top:5px;">Developer: Cutls@cutls.com</a>
<br> <br>
Kyash<br> Kyash<br>
<img src="../../img/kyash.png" width="100"><br> <img src="../../img/kyash.png" width="100"><br>
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';" <a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
class="pointer">Check update</a><br> class="pointer">アップデートを確認</a><br>
<a href="oss.html">OSS License</a><br> <a href="oss.html">OSS License(オープンソースライセンス)</a><br>
<span style="font-family:Open Sans;">Copyright &copy; TheDesk 2018 All Rights Reserved. <span style="font-family:Open Sans;">Copyright &copy; Cutls P 2018 All Rights Reserved.
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy
Policy</a> Policy</a>
<br>Developer: Cutls P( <br>Developer: Cutls P(
<a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>) <a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
<br> <br>
</span><br> </span><br>
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br> TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>

View File

@ -1,12 +1,33 @@
var yesno=[ var yesno=[
{ {
text:"Yes", text:"はい",
value:"yes" value:"yes"
},{ },{
text:"No", text:"いいえ",
value:"no" value:"no"
} }
]; ];
var sound=[
{
text:"なし",
value:"none"
},{
text:"既定",
value:"default"
},{
text:"Custom 1",
value:"c1"
},{
text:"Custom 2",
value:"c2"
},{
text:"Custom 3",
value:"c3"
},{
text:"Custom 4",
value:"c4"
}
];
var envConstruction=[ var envConstruction=[
{ {
id:"popup", id:"popup",
@ -16,9 +37,9 @@ var envConstruction=[
setValue:0, setValue:0,
width:50, width:50,
text:{ text:{
head:"Popup notification(on Windows)", head:"新規通知のポップアップお知らせの表示秒数",
desc:'Hide to set "0"', desc:'0に設定すると表示されません',
after:"sec" after:""
} }
},{ },{
id:"notf", id:"notf",
@ -26,8 +47,8 @@ var envConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"Native notification", head:"ネイティブ通知設定",
desc:"This does not work on Windows Portable ver.", desc:"Portableバージョンでは表示できません。",
checkbox:yesno checkbox:yesno
} }
},{ },{
@ -38,9 +59,9 @@ var envConstruction=[
width:50, width:50,
setValue:300, setValue:300,
text:{ text:{
head:"Minimum width of columns", head:"マルチカラムの最低横幅",
desc:"Scroll bar will be shown when your window size is more than ammounts of columns.", desc:"画面全体の横幅÷コラム数がこの値を超えた時、横スクロールとなります。",
after:"px above" after:"px 以上"
} }
},{ },{
id:"fixwidth", id:"fixwidth",
@ -50,9 +71,9 @@ var envConstruction=[
setValue:300, setValue:300,
width:50, width:50,
text:{ text:{
head:"Minimum width of TweetDeck browser", head:"TweetDeckの限定の最低横幅",
desc:"", desc:"",
after:"px above" after:"px 以上"
} }
},{ },{
id:"size", id:"size",
@ -62,8 +83,8 @@ var envConstruction=[
width:50, width:50,
setValue:13, setValue:13,
text:{ text:{
head:"Font size", head:"フォントサイズ",
desc:'<span style="font-size:13px">13px(absolute value)</span>', desc:'<span style="font-size:13px">13px(絶対指定)</span>',
after:"px" after:"px"
} }
},{ },{
@ -72,14 +93,14 @@ var envConstruction=[
checkbox:true, checkbox:true,
setValue:false, setValue:false,
text:{ text:{
head:"Disable hardware acceleration", head:"ハードウェアアクセラレーションの無効化",
desc:"Auto restarted", desc:"表示(特に設定画面)が乱れる場合に「はい」を選択してください。自動で再起動します。",
checkbox:[ checkbox:[
{ {
text:"Yes", text:"はい",
value:"true" value:"true"
},{ },{
text:"No", text:"いいえ",
value:"false" value:"false"
} }
] ]
@ -93,20 +114,20 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"absolute", setValue:"absolute",
text:{ text:{
head:"Time format", head:"時間表記設定",
desc:'Relative format:"1 minutes ago","3 days ago"<br>Absolute format:"23:25:21","2017/12/30 23:59:00"<br>Mixed format:toots posted today are relative-format, others are absolute-format.', desc:'相対時間の例:"1分前","3日前"<br>絶対時間の例"23:25:21","2017年12月30日 23:59:00"<br>混合表示は、当日のトゥートのみ相対、それ以外は絶対で表示 ',
checkbox:[ checkbox:[
{ {
text:"Relative", text:"相対時間",
value:"relative" value:"relative"
},{ },{
text:"Absolute", text:"絶対時間",
value:"absolute" value:"absolute"
},{ },{
text:"Both relative and absolute", text:"両方表示",
value:"double" value:"double"
},{ },{
text:"Mixed", text:"混合表示",
value:"medium" value:"medium"
} }
@ -118,8 +139,8 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"Server's unique locale", head:"独自ロケールを使用",
desc:"This value is available on some Japanese servers", desc:"対応サーバーではそのサーバーにあわせた言語表示ができます。",
checkbox:yesno checkbox:yesno
} }
},{ },{
@ -128,8 +149,8 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"Hide NSFW pictures", head:"非表示設定の画像(NSFW)を隠す",
desc:"Strong blur effect", desc:"きつめのぼかしがかかります。",
checkbox:yesno checkbox:yesno
} }
},{ },{
@ -138,7 +159,7 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"Hide CW contents", head:"非表示設定のテキスト(CW)を隠す",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
@ -148,14 +169,14 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"hidden", setValue:"hidden",
text:{ text:{
head:"Reply counter style", head:"リプライ数表示",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"Show 1+ if the replies are more than 1.", text:"2以上のとき1+と表示",
value:"hidden" value:"hidden"
},{ },{
text:"Show 1+ if the replies are more than 1.", text:"2以上のとき1+と表示",
value:"all" value:"all"
} }
@ -167,7 +188,7 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"Animated GIF images animation", head:"アイコンのアニメーションを再生する",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
@ -177,14 +198,14 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"local", setValue:"local",
text:{ text:{
head:"Tag TL Search", head:"タグタイムラインの表示範囲",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"Use federated network", text:"接続しているサーバー",
value:"all" value:"all"
},{ },{
text:"Use local network", text:"検索対象のサーバーのみ",
value:"local" value:"local"
} }
@ -196,7 +217,7 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"no", setValue:"no",
text:{ text:{
head:"Show via", head:"viaを表示する",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
@ -206,17 +227,17 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"no", setValue:"no",
text:{ text:{
head:"Hide action buttons without mouseover", head:"アクションメニューを非表示",
desc:"You may feel 'mouseover' is unconfortable:(", desc:"「マウスオーバー」はすこし鬱陶しいと思うかもしれません。",
checkbox:[ checkbox:[
{ {
text:"Mouseover to show", text:"マウスオーバーで表示",
value:"yes" value:"yes"
},{ },{
text:"Click to show", text:"クリックで表示",
value:"click" value:"click"
},{ },{
text:"No", text:"いいえ",
value:"no" value:"no"
} }
@ -228,7 +249,7 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"Show Notification marker, red colored bell and counter(if you show a notification column.)", head:"通知を開いているとき、通知新着お知らせを表示する",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
@ -241,18 +262,18 @@ var tlConstruction=[
storage:"sentence", storage:"sentence",
width:50, width:50,
setValue:500, setValue:500,
text:{after:"lines above or"} text:{after:"行 以上 または"}
},{ },{
id:"letters", id:"letters",
storage:"letters", storage:"letters",
width:50, width:50,
setValue:7000, setValue:7000,
text:{after:"letters above"} text:{after:"文字 以上"}
} }
], ],
text:{ text:{
head:"Auto folding", head:"指定行数以上を折りたたむ",
desc:"TheDesk does not collapse totes of 5 characters or less. Also, when collapsing, newlines are not shown. TheDesk count only newlines as the number of lines.", desc:"5文字以下のトゥートは折りたたみません。また、折りたたみ時は改行が描画されません。改行のみを行数とカウントします。",
} }
},{ },{
id:"img-height", id:"img-height",
@ -262,8 +283,8 @@ var tlConstruction=[
width:80, width:80,
setValue:200, setValue:200,
text:{ text:{
head:"Height of images", head:"画像の高さ",
desc:'Option:Set "full" to uncrop.', desc:'オプション:「full」と指定すると全ての画像をクロップしません。',
after:"px" after:"px"
} }
},{ },{
@ -272,8 +293,8 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"no", setValue:"no",
text:{ text:{
head:"Enable #InstanceTicker", head:"#InstanceTickerを使う",
desc:'Show colorful stickers about the server. <a href="https://cdn.weep.me/mastodon/">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.', desc:'トゥートした人の所属サーバーをわかりやすく彩ります(自サーバー以外のトゥート向け)。<a href="https://cdn.weep.me/mastodon/">#InstanceTickerについて</a> Copyright 2018 weepjp, kyori19.',
checkbox:yesno checkbox:yesno
} }
},{ },{
@ -282,10 +303,50 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"Animation of timelines", head:"タイムラインのアニメーション",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
},{
id:"replySound",
storage:"replySound",
checkbox:true,
setValue:"none",
text:{
head:"リプライの通知音",
desc:"",
checkbox:sound
}
},{
id:"favSound",
storage:"favSound",
checkbox:true,
setValue:"none",
text:{
head:"お気に入り登録の通知音",
desc:"",
checkbox:sound
}
},{
id:"btSound",
storage:"btSound",
checkbox:true,
setValue:"none",
text:{
head:"ブーストの通知音",
desc:"",
checkbox:sound
}
},{
id:"followSound",
storage:"followSound",
checkbox:true,
setValue:"none",
text:{
head:"フォローの通知音",
desc:"",
checkbox:sound
}
} }
]; ];
var postConstruction=[ var postConstruction=[
@ -297,7 +358,7 @@ var postConstruction=[
width:150, width:150,
setValue:"", setValue:"",
text:{ text:{
head:"Default warining text", head:"デフォルトの警告文",
desc:"", desc:"",
after:"" after:""
} }
@ -310,18 +371,18 @@ var postConstruction=[
storage:"cw_sentence", storage:"cw_sentence",
width:50, width:50,
setValue:500, setValue:500,
text:{after:"lines above or"} text:{after:"行 以上 または"}
},{ },{
id:"cw_letters", id:"cw_letters",
storage:"cw_letters", storage:"cw_letters",
width:50, width:50,
setValue:7000, setValue:7000,
text:{after:"letters above"} text:{after:"文字 以上"}
} }
], ],
text:{ text:{
head:"Alert before posting a long toot.", head:"長文投稿時に警告",
desc:"Show dialog whether you make too-long text hidden.", desc:"下で指定した以上のトゥートを投稿するときにCWするかのダイアログを表示します。",
} }
},{ },{
id:"cws", id:"cws",
@ -329,7 +390,7 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"no", setValue:"no",
text:{ text:{
head:"Always CW set", head:"標準でCWを設定",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
@ -339,26 +400,26 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"public", setValue:"public",
text:{ text:{
head:"Default visibility", head:"デフォルトの公開設定",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"Public", text:"公開(Public)",
value:"public" value:"public"
},{ },{
text:"Unlisted", text:"未収載(Unlisted)",
value:"unlisted" value:"unlisted"
},{ },{
text:"Private", text:"非公開(Private)",
value:"private" value:"private"
},{ },{
text:"Direct", text:"ダイレクト(Direct)",
value:"direct" value:"direct"
},{ },{
text:"Memory(memorized as each server)", text:"前回の投稿設定を記憶する(サーバーごとに記憶されます)",
value:"memory" value:"memory"
},{ },{
text:"Default of your visibility(Set on preferences of Mastodon server)", text:"マストドンアカウント設定の既定値",
value:"useapi" value:"useapi"
} }
] ]
@ -369,14 +430,14 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"no-act", setValue:"no-act",
text:{ text:{
head:"Posting images preferences", head:"画像投稿設定",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"Insert media URL", text:"画像を投稿し、画像のURLを最後に表示",
value:"url" value:"url"
},{ },{
text:"Insert nothig", text:"画像を投稿するがURLは表示しない",
value:"no-act" value:"no-act"
} }
] ]
@ -387,17 +448,17 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"Action of posting-box", head:"投稿ボックスの挙動",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"Folding", text:"たたむ",
value:"yes" value:"yes"
},{ },{
text:"Open after posting", text:"投稿後も隠さない",
value:"no" value:"no"
},{ },{
text:"Absolutely open", text:"枠外クリックで閉じない(起動時に展開)",
value:"absolute" value:"absolute"
} }
] ]
@ -408,20 +469,20 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"nothing", setValue:"nothing",
text:{ text:{
head:"Quote format", head:"引用形式",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"Only URL", text:"URLのみ",
value:"simple" value:"simple"
},{ },{
text:"URL and acct(mention to the user)", text:"URLとアカウント名(相手に通知)",
value:"mention" value:"mention"
},{ },{
text:"URL, text and acct(mention to the user)", text:"本文・URL・アカウント名",
value:"full" value:"full"
},{ },{
text:"Disabled(Hide buttons on TLs)", text:"使わない(TL上にボタンも表示されません)",
value:"nothing" value:"nothing"
} }
] ]
@ -432,14 +493,14 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"remain", setValue:"remain",
text:{ text:{
head:"Default accounts of actions", head:"投稿後や起動時のアカウント",
desc:"Main account can be set on Account Manager.", desc:"メインアカウントはアカウント設定で指定できます。投稿以外のアカウント選択にも影響します。",
checkbox:[ checkbox:[
{ {
text:"Account you used recently", text:"最後に使用したアカウント",
value:"remain" value:"remain"
},{ },{
text:"Main account", text:"メインアカウント",
value:"main" value:"main"
} }
] ]
@ -450,26 +511,26 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"public", setValue:"public",
text:{ text:{
head:"Secondary Toot Button", head:"セカンダリートゥートボタン",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"Hidden", text:"表示しない",
value:"nothing" value:"nothing"
},{ },{
text:"Public", text:"公開(Public)",
value:"public" value:"public"
},{ },{
text:"Unlisted", text:"未収載(Unlisted)",
value:"unlisted" value:"unlisted"
},{ },{
text:"Private", text:"非公開(Private)",
value:"private" value:"private"
},{ },{
text:"Direct", text:"ダイレクト(Direct)",
value:"direct" value:"direct"
},{ },{
text:"Local Only", text:"ローカル限定",
value:"local", value:"local",
kirishima:true, kirishima:true,
kirishimaText:"非対応インスタンスでは「未収載」になります。" kirishimaText:"非対応インスタンスでは「未収載」になります。"
@ -483,7 +544,7 @@ var postConstruction=[
setValue:"normal", setValue:"normal",
setValue:"no", setValue:"no",
text:{ text:{
head:"Zero-width space when inserting emojis", head:"絵文字にゼロ幅スペースを使う",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }

View File

@ -1,5 +1,5 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="ja">
<head> <head>
<title>Update - TheDesk</title> <title>Update - TheDesk</title>
<link href="../../css/materialize.css" type="text/css" rel="stylesheet"> <link href="../../css/materialize.css" type="text/css" rel="stylesheet">
@ -72,27 +72,27 @@ a,button,input,label,i{
<div id="start"> <div id="start">
<div id="box" class="show"> <div id="box" class="show">
<h2>TheDesk</h2> <h2>TheDesk</h2>
<p>Get latest TheDesk</p> <p>アップデートがあります</p>
<span id="now"></span><b id="ver"></b><br> <span id="now"></span><b id="ver"></b><br>
<span id="det"></span><br> <span id="det"></span><br>
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">Installer ver.</button> <button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">インストーラー版(推奨)</button>
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">Portable ver.</button> <button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">ポータブル版</button>
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">Start</button> <button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">開始</button>
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">Start</button> <button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">開始</button>
<br> <br>
Some problems?<br>Please download on <a href="https://thedesk.top">Oficial HP</a>. 問題が発生しますか?<br><a href="https://thedesk.top">公式HP</a>からダウンロードをお試しください。
</div> </div>
<div id="skipper" class="hide"> <div id="skipper" class="hide">
<h4>You may lose a cool experience!</h4> <h4>アップデートは必ず行ってください</h4>
Skip this update<br> アップデートをスキップする<br>
<div id="updskip"> <div id="updskip">
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>Until next TL loading</div></a> <a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>次回TL表示時まで</div></a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>Until next version</div></a> <a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>次のバージョンが出るまで</div></a>
</div> </div>
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">Continue updating</a> <a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">アップデートを続行</a>
</div> </div>
<div id="dlnow" class="hide"> <div id="dlnow" class="hide">
<h4>Downloading...</h4> <h4>ダウンロード中</h4>
<h4 id="prog"></h4> <h4 id="prog"></h4>
</div> </div>
</div> </div>
@ -197,10 +197,24 @@ function verck(){
todo(error); todo(error);
console.error(error); console.error(error);
}).then(function(json) { }).then(function(json) {
console.log(json); console.log(json);
$("#ver").text(json.desk); if(platform=="win32"){
localStorage.setItem("next-ver",json.desk); $("#ver").text(json.desk);
$("#det").html(json.detail); localStorage.setItem("next-ver",json.desk);
}else if(platform=="linux"){
$("#ver").text(json.desk_linux);
localStorage.setItem("next-ver",json.desk_linux);
}else if(platform=="darwin"){
$("#ver").text(json.desk_mac);
localStorage.setItem("next-ver",json.desk_mac);
}
var lang="ja";
if(lang=="ja"){
$("#det").html(json.detail);
}else{
$("#det").html(json.detail_en);
}
$("#now").text(localStorage.getItem("ver")); $("#now").text(localStorage.getItem("ver"));
}); });

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
<!doctype html> <!doctype html>
<html lang="ja"> <html lang="ja" style="overflow:scroll">
<head> <head>
<title>Settings - TheDesk</title> <title>Settings - TheDesk</title>
@ -22,7 +22,6 @@
input { input {
max-height: 50px !important max-height: 50px !important
} }
.pcr-result { .pcr-result {
height: 1rem !important; height: 1rem !important;
} }
@ -47,7 +46,7 @@
<div class="collapsible-body"> <div class="collapsible-body">
<h5>言語</h5> <h5>言語</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>
<a href="../ja/setting.html" onclick="changelang('ja')">日本語(Japanese)</a>/<a href="../en/setting.html" onclick="changelang('en')">English</a>/<a href="../ps/setting.html" onclick="changelang('ps')">Crowdin web translate</a>/ @@langlist@@
<h5>設定のインポートとエクスポート</h5> <h5>設定のインポートとエクスポート</h5>
<button onclick="exportSettings()" class="btn waves-effect lime darken-3" <button onclick="exportSettings()" class="btn waves-effect lime darken-3"
style="width:100%; max-width:200px;">エクスポート</button> style="width:100%; max-width:200px;">エクスポート</button>
@ -56,8 +55,8 @@
<div id="envView"> <div id="envView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.id=='notf'"><a onclick="notftest()" <template v-if="item.id=='notf'"><a onclick="notftest()"
class="pointer">通知テスト</a><br></template> class="pointer">通知テスト</a><br></template>
@ -85,7 +84,7 @@
</template> </template>
</div> </div>
<h5>フォント</h5> <h5>フォント</h5>
「選択」を押してフォントを選んでください。<br> 「選択」を押してフォントを選んでください。(Linuxでは動きません)<br>
<button class="btn waves-effect" style="width:100px;" onclick="font()">選択</button><br> <button class="btn waves-effect" style="width:100px;" onclick="font()">選択</button><br>
<div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div> <div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div>
<br> <br>
@ -131,9 +130,9 @@
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea" <div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
placeholder="説明..."></textarea></div> placeholder="説明..."></textarea></div>
<h5>色の系統</h5> <h5>色の系統</h5>
<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" /> <input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
<label for="dark">Dark</label> <label for="dark">Dark</label>
<input class="with-gap" name="derection" type="radio" id="light" value="light" /> <input class="with-gap" name="direction" type="radio" id="light" value="light" />
<label for="light">Light</label> <label for="light">Light</label>
<div id="pickers"> <div id="pickers">
<div> <div>
@ -158,11 +157,11 @@
<input type="hidden" id="color-picker2_value"> <input type="hidden" id="color-picker2_value">
</div> </div>
<div> <div>
<h5>Accent</h5>ブーストの背景色など <h5>Accent</h5>ブーストの背景色など
<div id="color-picker3-wrap"> <div id="color-picker3-wrap">
<div class="color-picker" id="color-picker3"></div> <div class="color-picker" id="color-picker3"></div>
</div> </div>
<input type="hidden" id="color-picker3_value"> <input type="hidden" id="color-picker3_value">
</div> </div>
</div> </div>
<button class="btn-large waves-effect" onclick="customComp()">変更</button>&nbsp;<button <button class="btn-large waves-effect" onclick="customComp()">変更</button>&nbsp;<button
@ -184,8 +183,8 @@
<div id="tlView"> <div id="tlView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.checkbox"> <template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox"> <template v-for="(check, j) in item.text.checkbox">
@ -210,6 +209,11 @@
</template><br> </template><br>
</template> </template>
</div> </div>
<h5>カスタム通知音</h5>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span id="c3-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span id="c4-file"></span><br>
</div> </div>
</li> </li>
<li> <li>
@ -220,8 +224,8 @@
<div id="postView"> <div id="postView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.checkbox"> <template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox"> <template v-for="(check, j) in item.text.checkbox">
@ -403,29 +407,27 @@
class="material-icons left">info</i>このソフトについて</button> class="material-icons left">info</i>このソフトについて</button>
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i <a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i
class="material-icons left">web</i>公式HP</a> class="material-icons left">web</i>公式HP</a>
<a href="https://enty.jp/Cutls" class="btn waves-effect purple lighten-2" style="width:100%; max-width:500px;"><i
class="material-icons left">trending_up</i>支援(Enty)</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2" <a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>支援(Pixiv FANBOX)</a> style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>支援(Pixiv FANBOX)</a>
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i <a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
class="material-icons left">list</i>ヘルプ/Docs(Constructing)</a> class="material-icons left">list</i>ヘルプ/Docs(Constructing)</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2" <a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a> style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
<a href="index.html?mode=user&code=Cutls@kirishima.cloud" class="btn waves-effect blue lighten-2" <a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
style="width:100%; max-width:500px;"><img src="../../img/desk_full.svg" class="left" width="25" style="width:100%; max-width:500px;"><img src="../../img/desk_full.svg" class="left" width="25"
style="padding-top:5px;">Developer: Cutls@kirishima.cloud</a> style="padding-top:5px;">Developer: Cutls@cutls.com</a>
<br> <br>
Kyash<br> Kyash<br>
<img src="../../img/kyash.png" width="100"><br> <img src="../../img/kyash.png" width="100"><br>
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';" <a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
class="pointer">アップデートを確認</a><br> class="pointer">アップデートを確認</a><br>
<a href="oss.html">OSS License(オープンソースライセンス)</a><br> <a href="oss.html">OSS License(オープンソースライセンス)</a><br>
<span style="font-family:Open Sans;">Copyright &copy; TheDesk 2018 All Rights Reserved. <span style="font-family:Open Sans;">Copyright &copy; Cutls P 2018 All Rights Reserved.
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy
Policy</a> Policy</a>
<br>Developer: Cutls P( <br>Developer: Cutls P(
<a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>) <a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
<br> <br>
</span><br> </span><br>
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br> TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>

View File

@ -7,6 +7,27 @@ var yesno=[
value:"no" value:"no"
} }
]; ];
var sound=[
{
text:"なし",
value:"none"
},{
text:"既定",
value:"default"
},{
text:"Custom 1",
value:"c1"
},{
text:"Custom 2",
value:"c2"
},{
text:"Custom 3",
value:"c3"
},{
text:"Custom 4",
value:"c4"
}
];
var envConstruction=[ var envConstruction=[
{ {
id:"popup", id:"popup",
@ -286,6 +307,46 @@ var tlConstruction=[
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
},{
id:"replySound",
storage:"replySound",
checkbox:true,
setValue:"none",
text:{
head:"リプライの通知音",
desc:"",
checkbox:sound
}
},{
id:"favSound",
storage:"favSound",
checkbox:true,
setValue:"none",
text:{
head:"お気に入り登録の通知音",
desc:"",
checkbox:sound
}
},{
id:"btSound",
storage:"btSound",
checkbox:true,
setValue:"none",
text:{
head:"ブーストの通知音",
desc:"",
checkbox:sound
}
},{
id:"followSound",
storage:"followSound",
checkbox:true,
setValue:"none",
text:{
head:"フォローの通知音",
desc:"",
checkbox:sound
}
} }
]; ];
var postConstruction=[ var postConstruction=[

View File

@ -1,5 +1,5 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="ja">
<head> <head>
<title>Update - TheDesk</title> <title>Update - TheDesk</title>
<link href="../../css/materialize.css" type="text/css" rel="stylesheet"> <link href="../../css/materialize.css" type="text/css" rel="stylesheet">
@ -197,10 +197,24 @@ function verck(){
todo(error); todo(error);
console.error(error); console.error(error);
}).then(function(json) { }).then(function(json) {
console.log(json); console.log(json);
$("#ver").text(json.desk); if(platform=="win32"){
localStorage.setItem("next-ver",json.desk); $("#ver").text(json.desk);
$("#det").html(json.detail); localStorage.setItem("next-ver",json.desk);
}else if(platform=="linux"){
$("#ver").text(json.desk_linux);
localStorage.setItem("next-ver",json.desk_linux);
}else if(platform=="darwin"){
$("#ver").text(json.desk_mac);
localStorage.setItem("next-ver",json.desk_mac);
}
var lang="ja";
if(lang=="ja"){
$("#det").html(json.detail);
}else{
$("#det").html(json.detail_en);
}
$("#now").text(localStorage.getItem("ver")); $("#now").text(localStorage.getItem("ver"));
}); });

View File

@ -1,5 +1,5 @@
<!doctype html> <!doctype html>
<html lang="{{lang}}"> <html lang="@@lang@@">
<head> <head>
<title>Account Manager - TheDesk</title> <title>Account Manager - TheDesk</title>
<meta content="width=device-width,initial-scale=1.0" name="viewport"> <meta content="width=device-width,initial-scale=1.0" name="viewport">
@ -28,19 +28,19 @@ body,html{overflow-y: scroll;}
} }
</style> </style>
<meta charset="utf-8"> <meta charset="utf-8">
{{comment-start}} @@comment-start@@
<script type="text/javascript"> <script type="text/javascript">
var _jipt = []; var _jipt = [];
_jipt.push(['project', 'thedesk']); _jipt.push(['project', 'thedesk']);
</script> </script>
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script> <script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
{{comment-end}} @@comment-end@@
</head> </head>
<body id="mainView"> <body id="mainView">
<script type="text/javascript" src="../../js/common/jquery.js"></script> <script type="text/javascript" src="../../js/common/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.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="../../js/common/materialize.js"></script>
<script type="text/javascript" src="../../js/lang/lang.{{lang}}.js"></script> <script type="text/javascript" src="../../js/lang/lang.@@lang@@.js"></script>
<script> <script>
var misskeytoken=false; var misskeytoken=false;
</script> </script>
@ -48,23 +48,23 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="../../js/common/time.js"></script> <script type="text/javascript" src="../../js/common/time.js"></script>
<script type="text/javascript" src="../../js/common/modal.js"></script> <script type="text/javascript" src="../../js/common/modal.js"></script>
<div class="hide-first"> <div class="hide-first">
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">{{back}}</a><br> <a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">@@back@@</a><br>
<h5>{{list}}</h5> <h5>@@list@@</h5>
<div id="acct-list"></div> <div id="acct-list"></div>
<div class="divider"></div> <div class="divider"></div>
</div> </div>
<div> <div>
<h5>{{add}}</h5><br> <h5>@@add@@</h5><br>
<div id="add"> <div id="add">
<div class="row"> <div class="row">
<div class="col s8"> <div class="col s8">
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp"> <input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
<div id="ins-suggest"></div> <div id="ins-suggest"></div>
{{codesetupwarn}}<br> @@codesetupwarn@@<br>
<input type="checkbox" class="filled-in" id="linux" /> <input type="checkbox" class="filled-in" id="linux" />
<label for="linux">{{codesetup}}</label><br> <label for="linux">@@codesetup@@</label><br>
<input type="checkbox" class="filled-in" id="misskey" /> <input type="checkbox" class="filled-in" id="misskey" />
<label for="misskey">{{thisismisskey}}</label><br> <label for="misskey">@@thisismisskey@@</label><br>
<button class="btn waves-effect" onclick="instance()">Login</button><br> <button class="btn waves-effect" onclick="instance()">Login</button><br>
</div> </div>
<div class="col s4"> <div class="col s4">
@ -73,21 +73,21 @@ body,html{overflow-y: scroll;}
</div> </div>
</div></div> </div></div>
<div id="auth" style="display:none"> <div id="auth" style="display:none">
{{codepastewarn}}<br> @@codepastewarn@@<br>
<input type="text" id="code" placeholder="{{codepaste}}"> <input type="text" id="code" placeholder="@@codepaste@@">
<button class="btn waves-effect" onclick="code()">Auth</button><br> <button class="btn waves-effect" onclick="code()">Auth</button><br>
</div> </div>
<div id="misskeylogin" style="display:none"> <div id="misskeylogin" style="display:none">
<h5>AppSecret</h5> <h5>AppSecret</h5>
{{misskeylogin}}<br> @@misskeylogin@@<br>
<input type="hidden" id="misskey-url"> <input type="hidden" id="misskey-url">
<input type="text" id="misskey-key" placeholder="{{codepaste}}"> <input type="text" id="misskey-key" placeholder="@@codepaste@@">
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br> <button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br>
</div> </div>
</div> </div>
<div class="hide-first"> <div class="hide-first">
<h5>{{mainacct}}</h5> <h5>@@mainacct@@</h5>
<div class="input-field" style="width:300px"><span data-trans="your_acct">{{selacct}}</span> <div class="input-field" style="width:300px"><span data-trans="your_acct">@@selacct@@</span>
<br> <br>
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select> <select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
<label></label> <label></label>
@ -98,12 +98,12 @@ Administered by:<a id="ins-admin"></a><br>
<span id="ins-desc"></span><br> <span id="ins-desc"></span><br>
<img src="../../img/loading.svg" id="ins-prof" width="200"><br> <img src="../../img/loading.svg" id="ins-prof" width="200"><br>
<br> <br>
{{domain}}:<span id="ins-name"></span><br> @@domain@@:<span id="ins-name"></span><br>
{{connect}}:<span id="ins-connect"></span>{{ko}}<br> @@connect@@:<span id="ins-connect"></span>@@ko@@<br>
{{toots}}:<span id="ins-toot"></span>{{ko}}<br> @@toots@@:<span id="ins-toot"></span>@@ko@@<br>
{{users}}:<span id="ins-user"></span>{{users}}<br> @@users@@:<span id="ins-user"></span>@@users@@<br>
{{safety}}:<span id="ins-per"></span>%<br> @@safety@@:<span id="ins-per"></span>%<br>
{{ver}}:<span id="ins-ver"></span>@<span id="ins-upd"></span><br> @@ver@@:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
</div> </div>
<script type="text/javascript" src="../../js/ui/theme.js"></script> <script type="text/javascript" src="../../js/ui/theme.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script> <script type="text/javascript" src="../../js/platform/end.js"></script>

File diff suppressed because it is too large Load Diff

View File

@ -56,6 +56,9 @@
"contextAfter":"Context after this toot", "contextAfter":"Context after this toot",
"beforeLTL":"Local TL before this toot", "beforeLTL":"Local TL before this toot",
"beforeUTL":"User TL before this toot", "beforeUTL":"User TL before this toot",
"afterLTL":"Local TL after this toot)",
"afterUTL":"User TL before this toot",
"afterFTL":"Federated TL after this toot",
"favedPeople":"People who favourited it", "favedPeople":"People who favourited it",
"btedPeople":"People who boosted it", "btedPeople":"People who boosted it",
"useOtherAcct1":"Use other account", "useOtherAcct1":"Use other account",
@ -158,5 +161,6 @@
"ramTips":"RAM status", "ramTips":"RAM status",
"changeTips":"Change Tips", "changeTips":"Change Tips",
"help":"Help", "help":"Help",
"about":"About TheDesk" "about":"About TheDesk",
"hereAddColumns":"<- Add TL"
} }

View File

@ -56,6 +56,9 @@
"contextAfter":"これより後の会話", "contextAfter":"これより後の会話",
"beforeLTL":"これより前のLocal TL(エアリプソース確認)", "beforeLTL":"これより前のLocal TL(エアリプソース確認)",
"beforeUTL":"これより前のユーザーTL(BTソース確認)", "beforeUTL":"これより前のユーザーTL(BTソース確認)",
"afterLTL":"これより後のLocal TL(言及確認)",
"afterUTL":"これより後のユーザーTL(言及確認)",
"afterFTL":"これより後の連合TL(言及確認)",
"favedPeople":"このトゥートをお気に入りに登録した人", "favedPeople":"このトゥートをお気に入りに登録した人",
"btedPeople":"このトゥートをブーストした人", "btedPeople":"このトゥートをブーストした人",
"useOtherAcct1":"他のアカウントを使用", "useOtherAcct1":"他のアカウントを使用",
@ -158,5 +161,6 @@
"ramTips":"システムメモリ容量", "ramTips":"システムメモリ容量",
"changeTips":"Tips変更", "changeTips":"Tips変更",
"help":"ヘルプ", "help":"ヘルプ",
"about":"このソフトについて" "about":"このソフトについて",
"hereAddColumns":"←ここからTL追加"
} }

View File

@ -3,6 +3,8 @@
"set":"Save", "set":"Save",
"yes":"Yes", "yes":"Yes",
"no":"No", "no":"No",
"none":"None",
"default":"Default",
"change":"Change", "change":"Change",
"select":"Select", "select":"Select",
"env":"System Preferences", "env":"System Preferences",
@ -25,7 +27,7 @@
"fixwidthwarn":"", "fixwidthwarn":"",
"above":"above", "above":"above",
"font":"Font", "font":"Font",
"fontwarn":"Select your favorite font to 'Select'", "fontwarn":"Select your favorite font to 'Select'(Windows/ macOS only)",
"fontsize":"Font size", "fontsize":"Font size",
"savefolder":"Folder to save", "savefolder":"Folder to save",
"savefolderwarn":"TheDesk uses this value when it try to save pictures or take screenshots.", "savefolderwarn":"TheDesk uses this value when it try to save pictures or take screenshots.",
@ -85,6 +87,11 @@
"ticker":"Enable #InstanceTicker", "ticker":"Enable #InstanceTicker",
"tickerwarn":"Show colorful stickers about the server. <a href=\"https://cdn.weep.me/mastodon/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.", "tickerwarn":"Show colorful stickers about the server. <a href=\"https://cdn.weep.me/mastodon/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
"animation":"Animation of timelines", "animation":"Animation of timelines",
"replySound":"Sound(Reply)",
"favSound":"Sound(Fav)",
"btSound":"Sound(Boost)",
"followSound":"Sound(Follow)",
"customSound":"Custom sound",
"post":"Posting Preferences", "post":"Posting Preferences",
"autocw":"Alert before posting a long toot.", "autocw":"Alert before posting a long toot.",
"autocwwarn":"Show dialog whether you make too-long text hidden.", "autocwwarn":"Show dialog whether you make too-long text hidden.",

View File

@ -3,6 +3,8 @@
"set":"設定", "set":"設定",
"yes":"はい", "yes":"はい",
"no":"いいえ", "no":"いいえ",
"none":"なし",
"default":"既定",
"change":"変更", "change":"変更",
"select":"選択", "select":"選択",
"env":"環境設定", "env":"環境設定",
@ -25,7 +27,7 @@
"fixwidthwarn":"", "fixwidthwarn":"",
"above":"以上", "above":"以上",
"font":"フォント", "font":"フォント",
"fontwarn":"「選択」を押してフォントを選んでください。", "fontwarn":"「選択」を押してフォントを選んでください。(Linuxでは動きません)",
"fontsize":"フォントサイズ", "fontsize":"フォントサイズ",
"savefolder":"デフォルトの保存先", "savefolder":"デフォルトの保存先",
"savefolderwarn":"画像ダウンロードやスクリーンショットに影響します。", "savefolderwarn":"画像ダウンロードやスクリーンショットに影響します。",
@ -85,6 +87,11 @@
"ticker":"#InstanceTickerを使う", "ticker":"#InstanceTickerを使う",
"tickerwarn":"トゥートした人の所属サーバーをわかりやすく彩ります(自サーバー以外のトゥート向け)。<a href=\"https://cdn.weep.me/mastodon/\">#InstanceTickerについて</a> Copyright 2018 weepjp, kyori19.", "tickerwarn":"トゥートした人の所属サーバーをわかりやすく彩ります(自サーバー以外のトゥート向け)。<a href=\"https://cdn.weep.me/mastodon/\">#InstanceTickerについて</a> Copyright 2018 weepjp, kyori19.",
"animation":"タイムラインのアニメーション", "animation":"タイムラインのアニメーション",
"replySound":"リプライの通知音",
"favSound":"お気に入り登録の通知音",
"btSound":"ブーストの通知音",
"followSound":"フォローの通知音",
"customSound":"カスタム通知音",
"post":"投稿設定", "post":"投稿設定",
"autocw":"長文投稿時に警告", "autocw":"長文投稿時に警告",
"autocwwarn":"下で指定した以上のトゥートを投稿するときにCWするかのダイアログを表示します。", "autocwwarn":"下で指定した以上のトゥートを投稿するときにCWするかのダイアログを表示します。",

30
app/view/make/make.js Normal file
View File

@ -0,0 +1,30 @@
const fs = require("fs")
const ver="Usamin (18.3.2)"
const langs=["ja","en","ps"]
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"]
for(let i=0; i<samples.length; i++){
let sample=samples[i]
let source = fs.readFileSync(sample, 'utf8')
for(let j=0; j<langs.length; j++){
let lang=langs[j]
let target = JSON.parse(fs.readFileSync("language/"+simples[i]+"."+lang+".json", 'utf8'))
Object.keys(target).forEach(function(key) {
let str = target[key]
var regExp = new RegExp("@@" + key + "@@", "g")
source = source.replace(regExp, str)
})
if(lang=="ps"){
source = source.replace(/@@comment-start@@/g, "")
source = source.replace(/@@comment-end@@/g, "")
}else{
source = source.replace(/@@comment-start@@/g, "<!--")
source = source.replace(/@@comment-end@@/g, "-->")
}
source = source.replace(/@@versionLetter@@/g, ver)
source = source.replace(/@@lang@@/g, lang)
fs.writeFileSync("../"+lang+"/"+pages[i], source)
}
}

View File

@ -1,5 +1,5 @@
<!doctype html> <!doctype html>
<html lang="@@lang@@"> <html lang="@@lang@@" style="overflow:scroll">
<head> <head>
<title>Settings - TheDesk</title> <title>Settings - TheDesk</title>
@ -22,7 +22,6 @@
input { input {
max-height: 50px !important max-height: 50px !important
} }
.pcr-result { .pcr-result {
height: 1rem !important; height: 1rem !important;
} }
@ -56,8 +55,8 @@
<div id="envView"> <div id="envView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.id=='notf'"><a onclick="notftest()" <template v-if="item.id=='notf'"><a onclick="notftest()"
class="pointer">@@nntest@@</a><br></template> class="pointer">@@nntest@@</a><br></template>
@ -131,9 +130,9 @@
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea" <div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
placeholder="@@desc@@..."></textarea></div> placeholder="@@desc@@..."></textarea></div>
<h5>@@customthemeDirection@@</h5> <h5>@@customthemeDirection@@</h5>
<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" /> <input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
<label for="dark">Dark</label> <label for="dark">Dark</label>
<input class="with-gap" name="derection" type="radio" id="light" value="light" /> <input class="with-gap" name="direction" type="radio" id="light" value="light" />
<label for="light">Light</label> <label for="light">Light</label>
<div id="pickers"> <div id="pickers">
<div> <div>
@ -158,11 +157,11 @@
<input type="hidden" id="color-picker2_value"> <input type="hidden" id="color-picker2_value">
</div> </div>
<div> <div>
<h5>Accent</h5>@@accent@@ <h5>Accent</h5>@@accent@@
<div id="color-picker3-wrap"> <div id="color-picker3-wrap">
<div class="color-picker" id="color-picker3"></div> <div class="color-picker" id="color-picker3"></div>
</div> </div>
<input type="hidden" id="color-picker3_value"> <input type="hidden" id="color-picker3_value">
</div> </div>
</div> </div>
<button class="btn-large waves-effect" onclick="customComp()">@@change@@</button>&nbsp;<button <button class="btn-large waves-effect" onclick="customComp()">@@change@@</button>&nbsp;<button
@ -184,8 +183,8 @@
<div id="tlView"> <div id="tlView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.checkbox"> <template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox"> <template v-for="(check, j) in item.text.checkbox">
@ -210,6 +209,11 @@
</template><br> </template><br>
</template> </template>
</div> </div>
<h5>@@customSound@@</h5>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span id="c3-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span id="c4-file"></span><br>
</div> </div>
</li> </li>
<li> <li>
@ -220,8 +224,8 @@
<div id="postView"> <div id="postView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.checkbox"> <template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox"> <template v-for="(check, j) in item.text.checkbox">
@ -403,29 +407,27 @@
class="material-icons left">info</i>@@about@@</button> class="material-icons left">info</i>@@about@@</button>
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i <a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i
class="material-icons left">web</i>@@hp@@</a> class="material-icons left">web</i>@@hp@@</a>
<a href="https://enty.jp/Cutls" class="btn waves-effect purple lighten-2" style="width:100%; max-width:500px;"><i
class="material-icons left">trending_up</i>@@support@@(Enty)</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2" <a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>@@support@@(Pixiv FANBOX)</a> style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>@@support@@(Pixiv FANBOX)</a>
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i <a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
class="material-icons left">list</i>@@help@@/Docs(Constructing)</a> class="material-icons left">list</i>@@help@@/Docs(Constructing)</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2" <a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a> style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
<a href="index.html?mode=user&code=Cutls@kirishima.cloud" class="btn waves-effect blue lighten-2" <a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
style="width:100%; max-width:500px;"><img src="../../img/desk_full.svg" class="left" width="25" style="width:100%; max-width:500px;"><img src="../../img/desk_full.svg" class="left" width="25"
style="padding-top:5px;">Developer: Cutls@kirishima.cloud</a> style="padding-top:5px;">Developer: Cutls@cutls.com</a>
<br> <br>
Kyash<br> Kyash<br>
<img src="../../img/kyash.png" width="100"><br> <img src="../../img/kyash.png" width="100"><br>
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';" <a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
class="pointer">@@checkup@@</a><br> class="pointer">@@checkup@@</a><br>
<a href="oss.html">OSS License@@ossJP@@</a><br> <a href="oss.html">OSS License@@ossJP@@</a><br>
<span style="font-family:Open Sans;">Copyright &copy; TheDesk 2018 All Rights Reserved. <span style="font-family:Open Sans;">Copyright &copy; Cutls P 2018 All Rights Reserved.
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy
Policy</a> Policy</a>
<br>Developer: Cutls P( <br>Developer: Cutls P(
<a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>) <a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
<br> <br>
</span><br> </span><br>
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br> TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>

View File

@ -7,6 +7,27 @@ var yesno=[
value:"no" value:"no"
} }
]; ];
var sound=[
{
text:"@@none@@",
value:"none"
},{
text:"@@default@@",
value:"default"
},{
text:"Custom 1",
value:"c1"
},{
text:"Custom 2",
value:"c2"
},{
text:"Custom 3",
value:"c3"
},{
text:"Custom 4",
value:"c4"
}
];
var envConstruction=[ var envConstruction=[
{ {
id:"popup", id:"popup",
@ -286,6 +307,46 @@ var tlConstruction=[
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
},{
id:"replySound",
storage:"replySound",
checkbox:true,
setValue:"none",
text:{
head:"@@replySound@@",
desc:"",
checkbox:sound
}
},{
id:"favSound",
storage:"favSound",
checkbox:true,
setValue:"none",
text:{
head:"@@favSound@@",
desc:"",
checkbox:sound
}
},{
id:"btSound",
storage:"btSound",
checkbox:true,
setValue:"none",
text:{
head:"@@btSound@@",
desc:"",
checkbox:sound
}
},{
id:"followSound",
storage:"followSound",
checkbox:true,
setValue:"none",
text:{
head:"@@followSound@@",
desc:"",
checkbox:sound
}
} }
]; ];
var postConstruction=[ var postConstruction=[

View File

@ -1,18 +1,18 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="@@lang@@">
<head> <head>
<title>Update - TheDesk</title> <title>Update - TheDesk</title>
<link href="../../css/materialize.css" type="text/css" rel="stylesheet"> <link href="../../css/materialize.css" type="text/css" rel="stylesheet">
<link href="../../css/master.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"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
<meta charset="utf-8"> <meta charset="utf-8">
{{comment-start}} @@comment-start@@
<script type="text/javascript"> <script type="text/javascript">
var _jipt = []; var _jipt = [];
_jipt.push(['project', 'thedesk']); _jipt.push(['project', 'thedesk']);
</script> </script>
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script> <script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
{{comment-end}} @@comment-end@@
</head> </head>
<body> <body>
<style> <style>
@ -72,27 +72,27 @@ a,button,input,label,i{
<div id="start"> <div id="start">
<div id="box" class="show"> <div id="box" class="show">
<h2>TheDesk</h2> <h2>TheDesk</h2>
<p>{{updatehere}}</p> <p>@@updatehere@@</p>
<span id="now"></span><b id="ver"></b><br> <span id="now"></span><b id="ver"></b><br>
<span id="det"></span><br> <span id="det"></span><br>
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">{{installer}}</button> <button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">@@installer@@</button>
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">{{portable}}</button> <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> <button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">@@download@@</button>
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">{{download}}</button> <button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">@@download@@</button>
<br> <br>
{{problem1}}<br>{{problem2}} @@problem1@@<br>@@problem2@@
</div> </div>
<div id="skipper" class="hide"> <div id="skipper" class="hide">
<h4>{{sureupd}}</h4> <h4>@@sureupd@@</h4>
{{skipupd}}<br> @@skipupd@@<br>
<div id="updskip"> <div id="updskip">
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>{{nexttl}}</div></a> <a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>@@nexttl@@</div></a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>{{nextver}}</div></a> <a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>@@nextver@@</div></a>
</div> </div>
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">{{continue}}</a> <a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">@@continue@@</a>
</div> </div>
<div id="dlnow" class="hide"> <div id="dlnow" class="hide">
<h4>{{dlnow}}</h4> <h4>@@dlnow@@</h4>
<h4 id="prog"></h4> <h4 id="prog"></h4>
</div> </div>
</div> </div>
@ -197,10 +197,24 @@ function verck(){
todo(error); todo(error);
console.error(error); console.error(error);
}).then(function(json) { }).then(function(json) {
console.log(json); console.log(json);
$("#ver").text(json.desk); if(platform=="win32"){
localStorage.setItem("next-ver",json.desk); $("#ver").text(json.desk);
$("#det").html(json.detail); localStorage.setItem("next-ver",json.desk);
}else if(platform=="linux"){
$("#ver").text(json.desk_linux);
localStorage.setItem("next-ver",json.desk_linux);
}else if(platform=="darwin"){
$("#ver").text(json.desk_mac);
localStorage.setItem("next-ver",json.desk_mac);
}
var lang="@@lang@@";
if(lang=="ja"){
$("#det").html(json.detail);
}else{
$("#det").html(json.detail_en);
}
$("#now").text(localStorage.getItem("ver")); $("#now").text(localStorage.getItem("ver"));
}); });

View File

@ -1,5 +1,5 @@
<!doctype html> <!doctype html>
<html lang="ps"> <html lang="ja">
<head> <head>
<title>Account Manager - TheDesk</title> <title>Account Manager - TheDesk</title>
<meta content="width=device-width,initial-scale=1.0" name="viewport"> <meta content="width=device-width,initial-scale=1.0" name="viewport">
@ -28,19 +28,19 @@ body,html{overflow-y: scroll;}
} }
</style> </style>
<meta charset="utf-8"> <meta charset="utf-8">
<!--
<script type="text/javascript"> <script type="text/javascript">
var _jipt = []; var _jipt = [];
_jipt.push(['project', 'thedesk']); _jipt.push(['project', 'thedesk']);
</script> </script>
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script> <script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
-->
</head> </head>
<body id="mainView"> <body id="mainView">
<script type="text/javascript" src="../../js/common/jquery.js"></script> <script type="text/javascript" src="../../js/common/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.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="../../js/common/materialize.js"></script>
<script type="text/javascript" src="../../js/lang/lang.ps.js"></script> <script type="text/javascript" src="../../js/lang/lang.ja.js"></script>
<script> <script>
var misskeytoken=false; var misskeytoken=false;
</script> </script>
@ -48,23 +48,23 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="../../js/common/time.js"></script> <script type="text/javascript" src="../../js/common/time.js"></script>
<script type="text/javascript" src="../../js/common/modal.js"></script> <script type="text/javascript" src="../../js/common/modal.js"></script>
<div class="hide-first"> <div class="hide-first">
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">crwdns366:0crwdne366:0</a><br> <a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">戻る</a><br>
<h5>crwdns365:0crwdne365:0</h5> <h5>アカウント一覧</h5>
<div id="acct-list"></div> <div id="acct-list"></div>
<div class="divider"></div> <div class="divider"></div>
</div> </div>
<div> <div>
<h5>crwdns367:0crwdne367:0</h5><br> <h5>アカウントを追加</h5><br>
<div id="add"> <div id="add">
<div class="row"> <div class="row">
<div class="col s8"> <div class="col s8">
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp"> <input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
<div id="ins-suggest"></div> <div id="ins-suggest"></div>
crwdns368:0crwdne368:0<br> チェックを外すとコード貼り付けをスキップできます。(<u>Mastodon</u>にWindowsやmacOSからログインする場合)失敗する場合はチェックを入れてください。<br>
<input type="checkbox" class="filled-in" id="linux" /> <input type="checkbox" class="filled-in" id="linux" />
<label for="linux">crwdns369:0crwdne369:0</label><br> <label for="linux">コードセットアップ</label><br>
<input type="checkbox" class="filled-in" id="misskey" /> <input type="checkbox" class="filled-in" id="misskey" />
<label for="misskey">crwdns382:0crwdne382:0</label><br> <label for="misskey">Misskeyとしてログイン</label><br>
<button class="btn waves-effect" onclick="instance()">Login</button><br> <button class="btn waves-effect" onclick="instance()">Login</button><br>
</div> </div>
<div class="col s4"> <div class="col s4">
@ -73,21 +73,21 @@ body,html{overflow-y: scroll;}
</div> </div>
</div></div> </div></div>
<div id="auth" style="display:none"> <div id="auth" style="display:none">
crwdns372:0crwdne372:0<br> 指定されたコードを貼り付けてください。ログインウィンドウは閉じていただいて構いません。<br>
<input type="text" id="code" placeholder="crwdns373:0crwdne373:0"> <input type="text" id="code" placeholder="コードを入力">
<button class="btn waves-effect" onclick="code()">Auth</button><br> <button class="btn waves-effect" onclick="code()">Auth</button><br>
</div> </div>
<div id="misskeylogin" style="display:none"> <div id="misskeylogin" style="display:none">
<h5>AppSecret</h5> <h5>AppSecret</h5>
crwdns383:0crwdne383:0<br> <a href="https://thedesk.top/how-to-misskey-login.html">ドキュメント</a>を参照して正しいコードを入れてください。<br>
<input type="hidden" id="misskey-url"> <input type="hidden" id="misskey-url">
<input type="text" id="misskey-key" placeholder="crwdns373:0crwdne373:0"> <input type="text" id="misskey-key" placeholder="コードを入力">
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br> <button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br>
</div> </div>
</div> </div>
<div class="hide-first"> <div class="hide-first">
<h5>crwdns370:0crwdne370:0</h5> <h5>メインアカウント</h5>
<div class="input-field" style="width:300px"><span data-trans="your_acct">crwdns371:0crwdne371:0</span> <div class="input-field" style="width:300px"><span data-trans="your_acct">アカウントを選択</span>
<br> <br>
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select> <select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
<label></label> <label></label>
@ -98,12 +98,12 @@ Administered by:<a id="ins-admin"></a><br>
<span id="ins-desc"></span><br> <span id="ins-desc"></span><br>
<img src="../../img/loading.svg" id="ins-prof" width="200"><br> <img src="../../img/loading.svg" id="ins-prof" width="200"><br>
<br> <br>
crwdns374:0crwdne374:0:<span id="ins-name"></span><br> ドメイン名:<span id="ins-name"></span><br>
crwdns375:0crwdne375:0:<span id="ins-connect"></span>crwdns381:0crwdne381:0<br> 接続サーバー数:<span id="ins-connect"></span><br>
crwdns376:0crwdne376:0:<span id="ins-toot"></span>crwdns381:0crwdne381:0<br> トゥート数:<span id="ins-toot"></span><br>
crwdns377:0crwdne377:0:<span id="ins-user"></span>crwdns377:0crwdne377:0<br> ユーザー数:<span id="ins-user"></span>ユーザー数<br>
crwdns379:0crwdne379:0:<span id="ins-per"></span>%<br> コネクション:<span id="ins-per"></span>%<br>
crwdns380:0crwdne380:0:<span id="ins-ver"></span>@<span id="ins-upd"></span><br> Mastodonバージョン:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
</div> </div>
<script type="text/javascript" src="../../js/ui/theme.js"></script> <script type="text/javascript" src="../../js/ui/theme.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script> <script type="text/javascript" src="../../js/platform/end.js"></script>

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,15 @@
<!doctype html> <!doctype html>
<html lang="ps"> <html lang="ja" style="overflow:scroll">
<head> <head>
<title>Settings - TheDesk</title> <title>Settings - TheDesk</title>
<!--
<script type="text/javascript"> <script type="text/javascript">
var _jipt = []; var _jipt = [];
_jipt.push(['project', 'thedesk']); _jipt.push(['project', 'thedesk']);
</script> </script>
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script> <script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
-->
<meta content="width=device-width,initial-scale=1.0" name="viewport"> <meta content="width=device-width,initial-scale=1.0" name="viewport">
<link href="../../css/materialize.css" type="text/css" rel="stylesheet"> <link href="../../css/materialize.css" type="text/css" rel="stylesheet">
<link href="../../css/themes.css" type="text/css" rel="stylesheet"> <link href="../../css/themes.css" type="text/css" rel="stylesheet">
@ -22,7 +22,6 @@
input { input {
max-height: 50px !important max-height: 50px !important
} }
.pcr-result { .pcr-result {
height: 1rem !important; height: 1rem !important;
} }
@ -33,34 +32,34 @@
<script type="text/javascript" src="../../js/common/jquery.js"></script> <script type="text/javascript" src="../../js/common/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.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="../../js/common/materialize.js"></script>
<script type="text/javascript" src="../../js/lang/lang.ps.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="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
<script src="../../node_modules/vue/dist/vue.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="setting.vue.js"></script>
<h4>crwdns524:0crwdne524:0</h4> <h4>設定</h4>
<ul class="collapsible" data-collapsible="accordion"> <ul class="collapsible" data-collapsible="accordion">
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">desktop_windows</i>crwdns529:0crwdne529:0 <i class="material-icons">desktop_windows</i>環境設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h5>crwdns530:0crwdne530:0</h5> <h5>言語</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>
<a href="../ja/setting.html" onclick="changelang('ja')">日本語(Japanese)</a>/<a href="../en/setting.html" onclick="changelang('en')">English</a>/<a href="../ps/setting.html" onclick="changelang('ps')">Crowdin web translate</a>/ @@langlist@@
<h5>crwdns531:0crwdne531:0</h5> <h5>設定のインポートとエクスポート</h5>
<button onclick="exportSettings()" class="btn waves-effect lime darken-3" <button onclick="exportSettings()" class="btn waves-effect lime darken-3"
style="width:100%; max-width:200px;">crwdns533:0crwdne533:0</button> style="width:100%; max-width:200px;">エクスポート</button>
<button onclick="importSettings()" class="btn waves-effect cyan darken-3" <button onclick="importSettings()" class="btn waves-effect cyan darken-3"
style="width:100%; max-width:200px;">crwdns532:0crwdne532:0</button> style="width:100%; max-width:200px;">インポート</button>
<div id="envView"> <div id="envView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.id=='notf'"><a onclick="notftest()" <template v-if="item.id=='notf'"><a onclick="notftest()"
class="pointer">crwdns540:0crwdne540:0</a><br></template> class="pointer">通知テスト</a><br></template>
<template v-if="item.checkbox"> <template v-if="item.checkbox">
<template v-for="(check, j) in item.text.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" <input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
@ -80,30 +79,30 @@
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}} v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template> </template>
<button class="btn waves-effect" style="width:100px;" <button class="btn waves-effect" style="width:100px;"
v-on:click="complete(i)">crwdns528:0crwdne528:0</button> v-on:click="complete(i)">変更</button>
</template><br> </template><br>
</template> </template>
</div> </div>
<h5>crwdns544:0crwdne544:0</h5> <h5>フォント</h5>
crwdns1900:0crwdne1900:0<br> 「選択」を押してフォントを選んでください。(Linuxでは動きません)<br>
<button class="btn waves-effect" style="width:100px;" onclick="font()">crwdns1896:0crwdne1896:0</button><br> <button class="btn waves-effect" style="width:100px;" onclick="font()">選択</button><br>
<div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div> <div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div>
<br> <br>
<input type="text" style="width:150px" id="font"> <input type="text" style="width:150px" id="font">
<button class="btn waves-effect" style="width:100px;" onclick="settings()">crwdns525:0crwdne525:0</button> <button class="btn waves-effect" style="width:100px;" onclick="settings()">設定</button>
<br> <br>
<h5>crwdns547:0crwdne547:0</h5> <h5>デフォルトの保存先</h5>
crwdns548:0crwdne548:0<br> 画像ダウンロードやスクリーンショットに影響します。<br>
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">crwdns528:0crwdne528:0</button> <button class="btn waves-effect" style="width:100px;" onclick="savefolder()">変更</button>
<br> <br>
</div> </div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">color_lens</i>crwdns534:0crwdne534:0 <i class="material-icons">color_lens</i>テーマの設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h4>crwdns2422:0crwdne2422:0</h4> <h4>テーマの選択</h4>
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" /> <input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
<label for="black">Black</label> <label for="black">Black</label>
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" /> <input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
@ -119,73 +118,73 @@
<div style="width:300px" id="sel-selector"> <div style="width:300px" id="sel-selector">
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select> <select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
</div> </div>
<h4>crwdns2424:0crwdne2424:0</h4> <h4>カスタムテーマの作成・編集</h4>
<div style="width:300px" id="edit-selector" data-add="crwdns2436:0crwdne2436:0"> <div style="width:300px" id="edit-selector" data-add="新規作成">
<select id="custom-edit-sel" class="custom-sel" onchange="custom()"> <select id="custom-edit-sel" class="custom-sel" onchange="custom()">
<option value="add_new">crwdns2436:0crwdne2436:0</option> <option value="add_new">新規作成</option>
</select> </select>
</div> </div>
<h5>crwdns2438:0crwdne2438:0</h5> <h5>名前</h5>
<input type="text" style="width:300px" id="custom_name" placeholder="crwdns2438:0crwdne2438:0..."> <input type="text" style="width:300px" id="custom_name" placeholder="名前...">
<h5>crwdns2440:0crwdne2440:0</h5> <h5>説明</h5>
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea" <div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
placeholder="crwdns2440:0crwdne2440:0..."></textarea></div> placeholder="説明..."></textarea></div>
<h5>crwdns2426:0crwdne2426:0</h5> <h5>色の系統</h5>
<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" /> <input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
<label for="dark">Dark</label> <label for="dark">Dark</label>
<input class="with-gap" name="derection" type="radio" id="light" value="light" /> <input class="with-gap" name="direction" type="radio" id="light" value="light" />
<label for="light">Light</label> <label for="light">Light</label>
<div id="pickers"> <div id="pickers">
<div> <div>
<h5>Primary</h5>crwdns2430:0crwdne2430:0 <h5>Primary</h5>補助要素に使われる背景色
<div id="color-picker0-wrap"> <div id="color-picker0-wrap">
<div class="color-picker" id="color-picker0"></div> <div class="color-picker" id="color-picker0"></div>
</div> </div>
<input type="hidden" id="color-picker0_value"> <input type="hidden" id="color-picker0_value">
</div> </div>
<div> <div>
<h5>Secondary</h5>crwdns2428:0crwdne2428:0 <h5>Secondary</h5>全体の背景色など
<div id="color-picker1-wrap"> <div id="color-picker1-wrap">
<div class="color-picker" id="color-picker1"></div> <div class="color-picker" id="color-picker1"></div>
</div> </div>
<input type="hidden" id="color-picker1_value"> <input type="hidden" id="color-picker1_value">
</div> </div>
<div> <div>
<h5>Texts</h5>crwdns2432:0crwdne2432:0 <h5>Texts</h5>テキストの色
<div id="color-picker2-wrap"> <div id="color-picker2-wrap">
<div class="color-picker" id="color-picker2"></div> <div class="color-picker" id="color-picker2"></div>
</div> </div>
<input type="hidden" id="color-picker2_value"> <input type="hidden" id="color-picker2_value">
</div> </div>
<div> <div>
<h5>Accent</h5>crwdns2434:0crwdne2434:0 <h5>Accent</h5>ブーストの背景色など
<div id="color-picker3-wrap"> <div id="color-picker3-wrap">
<div class="color-picker" id="color-picker3"></div> <div class="color-picker" id="color-picker3"></div>
</div> </div>
<input type="hidden" id="color-picker3_value"> <input type="hidden" id="color-picker3_value">
</div> </div>
</div> </div>
<button class="btn-large waves-effect" onclick="customComp()">crwdns528:0crwdne528:0</button>&nbsp;<button <button class="btn-large waves-effect" onclick="customComp()">変更</button>&nbsp;<button
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">@@delete@@</button><br><br> 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" id="custom_json" class="materialize-textarea"
placeholder="JSON style" readonly><br> placeholder="JSON style" readonly><br>
crwdns2442:0crwdne2442:0 このコードは他のTheDeskなどとシェアできます。このコードをMiASに貼ることはご遠慮ください。詳細:<a href="https://thedesk.top/mias.html" target="_blank">テーマ互換性</a>
<h4>crwdns2444:0crwdne2444:0</h4> <h4>カスタムテーマのインポート</h4>
@@cImpWarn@@<br> <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" id="custom_import" class="materialize-textarea"
placeholder="JSON/JSON5 style"> placeholder="JSON/JSON5 style">
<button class="btn waves-effect" onclick="customImp()">crwdns532:0crwdne532:0</button><br> <button class="btn waves-effect" onclick="customImp()">インポート</button><br>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">reorder</i>crwdns550:0crwdne550:0 <i class="material-icons">reorder</i>タイムラインの設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<div id="tlView"> <div id="tlView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.checkbox"> <template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox"> <template v-for="(check, j) in item.text.checkbox">
@ -206,22 +205,27 @@
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}} v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template> </template>
<button class="btn waves-effect" style="width:100px;" <button class="btn waves-effect" style="width:100px;"
v-on:click="complete(i)">crwdns528:0crwdne528:0</button> v-on:click="complete(i)">変更</button>
</template><br> </template><br>
</template> </template>
</div> </div>
<h5>カスタム通知音</h5>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span id="c3-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span id="c4-file"></span><br>
</div> </div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">send</i>crwdns587:0crwdne587:0 <i class="material-icons">send</i>投稿設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<div id="postView"> <div id="postView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
<template v-if=item.text.desc> <template v-if="item.text.desc">
<templete v-html=item.text.desc></templete><br> <templete v-html="item.text.desc"></templete><br>
</template> </template>
<template v-if="item.checkbox"> <template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox"> <template v-for="(check, j) in item.text.checkbox">
@ -245,7 +249,7 @@
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}} v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template> </template>
<button class="btn waves-effect" style="width:100px;" <button class="btn waves-effect" style="width:100px;"
v-on:click="complete(i)">crwdns528:0crwdne528:0</button> v-on:click="complete(i)">変更</button>
</template><br> </template><br>
</template> </template>
</div> </div>
@ -253,49 +257,49 @@
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">keyboard</i>crwdns611:0crwdne611:0 <i class="material-icons">keyboard</i>キーボードショートカットの設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h5>crwdns612:0crwdne612:0</h5> <h5>簡単文字入力</h5>
crwdns613:0crwdne613:0<br> 絵文字やタグ、&gt;BTなどを登録しておくとすぐに入力できます。<br>
Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1"> Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1">
<button onclick="oks(1)" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button><br><br> <button onclick="oks(1)" class="btn waves-effect" style="width:100px;">設定</button><br><br>
Ctrl+Shift+2:<input type="text" style="width:150px" id="oks-2"> Ctrl+Shift+2:<input type="text" style="width:150px" id="oks-2">
<button onclick="oks(2)" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button><br><br> <button onclick="oks(2)" class="btn waves-effect" style="width:100px;">設定</button><br><br>
Ctrl+Shift+3:<input type="text" style="width:150px" id="oks-3"> Ctrl+Shift+3:<input type="text" style="width:150px" id="oks-3">
<button onclick="oks(3)" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button><br><br> <button onclick="oks(3)" class="btn waves-effect" style="width:100px;">設定</button><br><br>
</div> </div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">bookmark</i>crwdns614:0crwdne614:0 <i class="material-icons">bookmark</i>ミュート・強調の設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h5>crwdns615:0crwdne615:0</h5> <h5>クライアントミュート</h5>
<div id="mute-cli"></div> <div id="mute-cli"></div>
<h5>crwdns616:0crwdne616:0</h5> <h5>クライアント強調</h5>
crwdns617:0crwdne617:0 各トゥートのクライアントをクリックすると設定できます。
<h5>crwdns619:0crwdne619:0</h5> <h5>ワードミュート</h5>
crwdns618:0crwdne618:0<br> Enterで確定<br>
<div class="chips" id="wordmute" style="background-color:gray;"></div> <div class="chips" id="wordmute" style="background-color:gray;"></div>
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button> <button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">設定</button>
<h5>crwdns620:0crwdne620:0</h5> <h5>ワード強調</h5>
crwdns618:0crwdne618:0<br> Enterで確定<br>
<div class="chips" id="wordemp" style="background-color:gray;"></div> <div class="chips" id="wordemp" style="background-color:gray;"></div>
<button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button> <button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">設定</button>
<h5>crwdns621:0crwdne621:0</h5> <h5>ユーザー強調</h5>
crwdns622:0crwdne622:0 各ユーザーのデータ表示画面で設定できます。
<span class="emphasized"> crwdns623:0crwdne623:0 </span> <span class="emphasized"> 強調色(テーマによって異なります。) </span>
</div> </div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="fa fa-spotify"></i>crwdns624:0crwdne624:0 <i class="fa fa-spotify"></i>SpotifyとNowPlayingの設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h5>crwdns2354:0crwdne2354:0</h5> <h5>NowPlayingのソース(Windows)</h5>
crwdns2356:0crwdne2356:0<br> 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" /> <input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
<label for="aimp">AIMP</label> <label for="aimp">AIMP</label>
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes" value="ITUNES" /> <input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes" value="ITUNES" />
@ -310,80 +314,80 @@
<label for="wlm">WLM</label> <label for="wlm">WLM</label>
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" /> <input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
<label for="cad">CAD</label><br><br> <label for="cad">CAD</label><br><br>
crwdns625:0crwdne625:0<i class="material-icons" style="font-size:24px;">music_note</i>crwdns626:0crwdne626:0<br> <i class="material-icons" style="font-size:24px;">music_note</i>ボタンから簡単にNowPlayingができます。<br>
<h5>crwdns627:0crwdne627:0</h5> <h5>アカウントの連携</h5>
crwdns628:0crwdne628:0<br> APIの性質上thedesk.topへアクセスします。<br>
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button <div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
onclick="spotifyAuth()" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button></div> onclick="spotifyAuth()" class="btn waves-effect" style="width:100px;">設定</button></div>
<a onclick="spotifyConnect()" class="btn waves-effect nex" <a onclick="spotifyConnect()" class="btn waves-effect nex"
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i
class="fa fa-spotify left"></i>crwdns629:0crwdne629:0</a> class="fa fa-spotify left"></i>接続</a>
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled" <a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
class="fa fa-spotify left"></i>crwdns630:0crwdne630:0</a> class="fa fa-spotify left"></i>切断</a>
<h5>crwdns631:0crwdne631:0</h5> <h5>テンプレートの編集</h5>
crwdns632:0crwdne632:0<br> 以下を編集してテンプレートを変更できます。<br>
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist} <textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
{url}</textarea><br> {url}</textarea><br>
crwdns2358:0{song}crwdnd2358:0{album}crwdnd2358:0{artist}crwdnd2358:0{url}crwdne2358:0<br> Spotify:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/{url}:各曲のSpotifyのURL<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> macOS:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/作曲家{composer}/サンプルレート{hz}/ビットレート{bitRate}/ジャンル{genre}<br>
crwdns2362:0{song}crwdnd2362:0{album}crwdnd2362:0{artist}crwdne2362:0<br> Windows:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名<br>
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button> <button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">設定</button>
<h5>crwdns635:0crwdne635:0</h5> <h5>アルバムアートワークを添付する(Spotify/Windows)</h5>
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes" value="yes" /> <input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes" value="yes" />
<label for="awk_yes">crwdns526:0crwdne526:0</label> <label for="awk_yes">はい</label>
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no" value="no" /> <input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no" value="no" />
<label for="awk_no">crwdns527:0crwdne527:0</label> <label for="awk_no">いいえ</label>
<br> <br>
</div> </div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">hearing</i>crwdns636:0crwdne636:0 <i class="material-icons">hearing</i>読み上げの設定
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<h5>crwdns637:0crwdne637:0</h5> <h5>読み上げの速さ</h5>
crwdns638:0crwdne638:0<br> 1-100まで、デフォルトは10。<br>
<p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10" <p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10"
style="width:500px; max-width:100%" /></p> style="width:500px; max-width:100%" /></p>
<h5>crwdns639:0crwdne639:0</h5> <h5>読み上げの高さ</h5>
crwdns640:0crwdne640:0<br> 0-100まで、デフォルトは50。(大きくなるほど高い)<br>
<p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50" <p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50"
style="width:500px; max-width:100%" /></p> style="width:500px; max-width:100%" /></p>
<h5>crwdns641:0crwdne641:0</h5> <h5>読み上げの音量</h5>
crwdns642:0crwdne642:0<br> 0-100まで、デフォルトは100。<br>
<p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100" <p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100"
style="width:500px; max-width:100%" /></p> style="width:500px; max-width:100%" /></p>
<h5>crwdns643:0crwdne643:0</h5> <h5>テスト</h5>
<input type="text" style="width:350px" id="voicetxt" value="crwdns644:0crwdne644:0"> <input type="text" style="width:350px" id="voicetxt" value="これはテスト音声です。TheDeskはオープンソースのPC向けマストドンクライアントです。マルチサーバーやマルチカラムに対応しています。">
<button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()" <button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()"
id="testplay">crwdns645:0crwdne645:0</button><br> id="testplay">再生/停止</button><br>
<br> <br>
<button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">crwdns525:0crwdne525:0</button> <button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">設定</button>
</div> </div>
</li> </li>
</ul> </ul>
<br> <br>
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i <a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i
class="material-icons left">undo</i>crwdns646:0crwdne646:0</a> class="material-icons left">undo</i>戻る</a>
<br> <br>
<br>crwdns647:0crwdne647:0 <br>キーボードショートカット一覧
<li>Ctrl+1-9:crwdns648:0crwdne648:0</li> <li>Ctrl+1-9:1番目9番目のTLにスクロール</li>
<li>N:crwdns649:0crwdne649:0</li> <li>N:投稿パネルを開く</li>
<li>X:crwdns650:0crwdne650:0</li> <li>X:投稿パネルを開閉</li>
<li>Ctrl+Enter:crwdns651:0crwdne651:0</li> <li>Ctrl+Enter:投稿</li>
<li>Ctrl+Enter+Shift:crwdns1924:0crwdne1924:0</li> <li>Ctrl+Enter+Shift:投稿(セカンダリートゥート)</li>
<li>Alt+Enter:crwdns1916:0crwdne1916:0</li> <li>Alt+Enter:セカンダリートゥートボタン</li>
<li>Ctrl+E:crwdns652:0crwdne652:0</li> <li>Ctrl+E:全ての通知を既読にする</li>
<li>Esc:crwdns653:0crwdne653:0</li> <li>Esc:投稿パネルを消す</li>
<li>F5:crwdns654:0crwdne654:0</li> <li>F5:スーパーリロード</li>
<li>Ctrl+Shift+C:crwdns655:0crwdne655:0</li> <li>Ctrl+Shift+C:入力内容を消す</li>
<li>Ctrl+Shift+S:crwdns524:0crwdne524:0</li> <li>Ctrl+Shift+S:設定</li>
<li>Ctrl+Shift+M:crwdns656:0crwdne656:0</li> <li>Ctrl+Shift+M:アカウントマネージャ</li>
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li> <li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
<li>Ctrl+Shift+P:crwdns657:0crwdne657:0</li> <li>Ctrl+Shift+P:現在選択中のプロフィール</li>
<li>←/→:crwdns658:0crwdne658:0</li> <li>←/→:イメージビューワー起動時に画像切り替え</li>
<li>crwdns659:0crwdne659:0</li> <li>マウスホイール:イメージビューワー時に拡大縮小</li>
<div class="hide kirishima"> <div class="hide kirishima">
以下Markdownに対応したインスタンスのみ。 以下Markdownに対応したインスタンスのみ。
<br> <br>
@ -397,35 +401,33 @@
</li><br> </li><br>
</div> </div>
<button class="btn waves-effect red" style="width:100%; max-width:500px;" <button class="btn waves-effect red" style="width:100%; max-width:500px;"
onclick="if(confirm('crwdns661:0crwdne661:0')){ localStorage.clear(); location.href='index.html'; }"><i onclick="if(confirm('全てのデータを削除します。この操作は取り消せません。')){ localStorage.clear(); location.href='index.html'; }"><i
class="material-icons left">delete</i>crwdns660:0crwdne660:0</button><br><br> class="material-icons left">delete</i>初期化</button><br><br>
<button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i <button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i
class="material-icons left">info</i>crwdns662:0crwdne662:0</button> class="material-icons left">info</i>このソフトについて</button>
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i <a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i
class="material-icons left">web</i>crwdns663:0crwdne663:0</a> class="material-icons left">web</i>公式HP</a>
<a href="https://enty.jp/Cutls" class="btn waves-effect purple lighten-2" style="width:100%; max-width:500px;"><i
class="material-icons left">trending_up</i>crwdns664:0crwdne664:0(Enty)</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2" <a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>crwdns664:0crwdne664:0(Pixiv FANBOX)</a> style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>支援(Pixiv FANBOX)</a>
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i <a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
class="material-icons left">list</i>crwdns665:0crwdne665:0/Docs(Constructing)</a> class="material-icons left">list</i>ヘルプ/Docs(Constructing)</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2" <a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a> style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
<a href="index.html?mode=user&code=Cutls@kirishima.cloud" class="btn waves-effect blue lighten-2" <a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
style="width:100%; max-width:500px;"><img src="../../img/desk_full.svg" class="left" width="25" style="width:100%; max-width:500px;"><img src="../../img/desk_full.svg" class="left" width="25"
style="padding-top:5px;">Developer: Cutls@kirishima.cloud</a> style="padding-top:5px;">Developer: Cutls@cutls.com</a>
<br> <br>
Kyash<br> Kyash<br>
<img src="../../img/kyash.png" width="100"><br> <img src="../../img/kyash.png" width="100"><br>
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';" <a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
class="pointer">crwdns667:0crwdne667:0</a><br> class="pointer">アップデートを確認</a><br>
<a href="oss.html">OSS Licensecrwdns668:0crwdne668:0</a><br> <a href="oss.html">OSS License(オープンソースライセンス)</a><br>
<span style="font-family:Open Sans;">Copyright &copy; TheDesk 2018 All Rights Reserved. <span style="font-family:Open Sans;">Copyright &copy; Cutls P 2018 All Rights Reserved.
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy
Policy</a> Policy</a>
<br>Developer: Cutls P( <br>Developer: Cutls P(
<a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>) <a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
<br> <br>
</span><br> </span><br>
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br> TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>

View File

@ -1,12 +1,33 @@
var yesno=[ var yesno=[
{ {
text:"crwdns526:0crwdne526:0", text:"はい",
value:"yes" value:"yes"
},{ },{
text:"crwdns527:0crwdne527:0", text:"いいえ",
value:"no" value:"no"
} }
]; ];
var sound=[
{
text:"なし",
value:"none"
},{
text:"既定",
value:"default"
},{
text:"Custom 1",
value:"c1"
},{
text:"Custom 2",
value:"c2"
},{
text:"Custom 3",
value:"c3"
},{
text:"Custom 4",
value:"c4"
}
];
var envConstruction=[ var envConstruction=[
{ {
id:"popup", id:"popup",
@ -16,9 +37,9 @@ var envConstruction=[
setValue:0, setValue:0,
width:50, width:50,
text:{ text:{
head:"crwdns1898:0crwdne1898:0", head:"新規通知のポップアップお知らせの表示秒数",
desc:'crwdns536:0crwdne536:0', desc:'0に設定すると表示されません',
after:"crwdns537:0crwdne537:0" after:""
} }
},{ },{
id:"notf", id:"notf",
@ -26,8 +47,8 @@ var envConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"crwdns538:0crwdne538:0", head:"ネイティブ通知設定",
desc:"crwdns539:0crwdne539:0", desc:"Portableバージョンでは表示できません。",
checkbox:yesno checkbox:yesno
} }
},{ },{
@ -38,9 +59,9 @@ var envConstruction=[
width:50, width:50,
setValue:300, setValue:300,
text:{ text:{
head:"crwdns2376:0crwdne2376:0", head:"マルチカラムの最低横幅",
desc:"crwdns542:0crwdne542:0", desc:"画面全体の横幅÷コラム数がこの値を超えた時、横スクロールとなります。",
after:"px crwdns543:0crwdne543:0" after:"px 以上"
} }
},{ },{
id:"fixwidth", id:"fixwidth",
@ -50,9 +71,9 @@ var envConstruction=[
setValue:300, setValue:300,
width:50, width:50,
text:{ text:{
head:"crwdns2378:0crwdne2378:0", head:"TweetDeckの限定の最低横幅",
desc:"crwdns2380:0crwdne2380:0", desc:"",
after:"px crwdns543:0crwdne543:0" after:"px 以上"
} }
},{ },{
id:"size", id:"size",
@ -62,8 +83,8 @@ var envConstruction=[
width:50, width:50,
setValue:13, setValue:13,
text:{ text:{
head:"crwdns546:0crwdne546:0", head:"フォントサイズ",
desc:'<span style="font-size:13px">13px(crwdns549:0crwdne549:0)</span>', desc:'<span style="font-size:13px">13px(絶対指定)</span>',
after:"px" after:"px"
} }
},{ },{
@ -72,14 +93,14 @@ var envConstruction=[
checkbox:true, checkbox:true,
setValue:false, setValue:false,
text:{ text:{
head:"@@hardwareAcceleration@@", head:"ハードウェアアクセラレーションの無効化",
desc:"@@hardwareAccelerationWarn@@", desc:"表示(特に設定画面)が乱れる場合に「はい」を選択してください。自動で再起動します。",
checkbox:[ checkbox:[
{ {
text:"crwdns526:0crwdne526:0", text:"はい",
value:"true" value:"true"
},{ },{
text:"crwdns527:0crwdne527:0", text:"いいえ",
value:"false" value:"false"
} }
] ]
@ -93,20 +114,20 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"absolute", setValue:"absolute",
text:{ text:{
head:"crwdns551:0crwdne551:0", head:"時間表記設定",
desc:'crwdns552:0crwdne552:0<br>crwdns553:0crwdne553:0<br>crwdns554:0crwdne554:0', desc:'相対時間の例:"1分前","3日前"<br>絶対時間の例"23:25:21","2017年12月30日 23:59:00"<br>混合表示は、当日のトゥートのみ相対、それ以外は絶対で表示 ',
checkbox:[ checkbox:[
{ {
text:"crwdns555:0crwdne555:0", text:"相対時間",
value:"relative" value:"relative"
},{ },{
text:"crwdns1902:0crwdne1902:0", text:"絶対時間",
value:"absolute" value:"absolute"
},{ },{
text:"crwdns557:0crwdne557:0", text:"両方表示",
value:"double" value:"double"
},{ },{
text:"crwdns558:0crwdne558:0", text:"混合表示",
value:"medium" value:"medium"
} }
@ -118,8 +139,8 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"crwdns1904:0crwdne1904:0", head:"独自ロケールを使用",
desc:"crwdns1906:0crwdne1906:0", desc:"対応サーバーではそのサーバーにあわせた言語表示ができます。",
checkbox:yesno checkbox:yesno
} }
},{ },{
@ -128,8 +149,8 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"crwdns561:0crwdne561:0", head:"非表示設定の画像(NSFW)を隠す",
desc:"crwdns562:0crwdne562:0", desc:"きつめのぼかしがかかります。",
checkbox:yesno checkbox:yesno
} }
},{ },{
@ -138,7 +159,7 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"crwdns563:0crwdne563:0", head:"非表示設定のテキスト(CW)を隠す",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
@ -148,14 +169,14 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"hidden", setValue:"hidden",
text:{ text:{
head:"crwdns564:0crwdne564:0", head:"リプライ数表示",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"crwdns565:0crwdne565:0", text:"2以上のとき1+と表示",
value:"hidden" value:"hidden"
},{ },{
text:"crwdns565:0crwdne565:0", text:"2以上のとき1+と表示",
value:"all" value:"all"
} }
@ -167,7 +188,7 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"crwdns567:0crwdne567:0", head:"アイコンのアニメーションを再生する",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
@ -177,14 +198,14 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"local", setValue:"local",
text:{ text:{
head:"crwdns572:0crwdne572:0", head:"タグタイムラインの表示範囲",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"crwdns573:0crwdne573:0", text:"接続しているサーバー",
value:"all" value:"all"
},{ },{
text:"crwdns574:0crwdne574:0", text:"検索対象のサーバーのみ",
value:"local" value:"local"
} }
@ -196,7 +217,7 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"no", setValue:"no",
text:{ text:{
head:"crwdns575:0crwdne575:0", head:"viaを表示する",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
@ -206,17 +227,17 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"no", setValue:"no",
text:{ text:{
head:"crwdns576:0crwdne576:0", head:"アクションメニューを非表示",
desc:"crwdns577:0crwdne577:0", desc:"「マウスオーバー」はすこし鬱陶しいと思うかもしれません。",
checkbox:[ checkbox:[
{ {
text:"crwdns578:0crwdne578:0", text:"マウスオーバーで表示",
value:"yes" value:"yes"
},{ },{
text:"crwdns579:0crwdne579:0", text:"クリックで表示",
value:"click" value:"click"
},{ },{
text:"crwdns527:0crwdne527:0", text:"いいえ",
value:"no" value:"no"
} }
@ -228,7 +249,7 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"crwdns580:0crwdne580:0", head:"通知を開いているとき、通知新着お知らせを表示する",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
@ -241,18 +262,18 @@ var tlConstruction=[
storage:"sentence", storage:"sentence",
width:50, width:50,
setValue:500, setValue:500,
text:{after:"crwdns583:0crwdne583:0 crwdns543:0crwdne543:0 crwdns585:0crwdne585:0"} text:{after:"行 以上 または"}
},{ },{
id:"letters", id:"letters",
storage:"letters", storage:"letters",
width:50, width:50,
setValue:7000, setValue:7000,
text:{after:"crwdns584:0crwdne584:0 crwdns543:0crwdne543:0"} text:{after:"文字 以上"}
} }
], ],
text:{ text:{
head:"crwdns581:0crwdne581:0", head:"指定行数以上を折りたたむ",
desc:"crwdns582:0crwdne582:0", desc:"5文字以下のトゥートは折りたたみません。また、折りたたみ時は改行が描画されません。改行のみを行数とカウントします。",
} }
},{ },{
id:"img-height", id:"img-height",
@ -262,8 +283,8 @@ var tlConstruction=[
width:80, width:80,
setValue:200, setValue:200,
text:{ text:{
head:"crwdns586:0crwdne586:0", head:"画像の高さ",
desc:'@@imgheightwarn@@', desc:'オプション:「full」と指定すると全ての画像をクロップしません。',
after:"px" after:"px"
} }
},{ },{
@ -272,8 +293,8 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"no", setValue:"no",
text:{ text:{
head:"crwdns1908:0crwdne1908:0", head:"#InstanceTickerを使う",
desc:'crwdns1910:0crwdne1910:0', desc:'トゥートした人の所属サーバーをわかりやすく彩ります(自サーバー以外のトゥート向け)。<a href="https://cdn.weep.me/mastodon/">#InstanceTickerについて</a> Copyright 2018 weepjp, kyori19.',
checkbox:yesno checkbox:yesno
} }
},{ },{
@ -282,10 +303,50 @@ var tlConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"crwdns2446:0crwdne2446:0", head:"タイムラインのアニメーション",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
},{
id:"replySound",
storage:"replySound",
checkbox:true,
setValue:"none",
text:{
head:"リプライの通知音",
desc:"",
checkbox:sound
}
},{
id:"favSound",
storage:"favSound",
checkbox:true,
setValue:"none",
text:{
head:"お気に入り登録の通知音",
desc:"",
checkbox:sound
}
},{
id:"btSound",
storage:"btSound",
checkbox:true,
setValue:"none",
text:{
head:"ブーストの通知音",
desc:"",
checkbox:sound
}
},{
id:"followSound",
storage:"followSound",
checkbox:true,
setValue:"none",
text:{
head:"フォローの通知音",
desc:"",
checkbox:sound
}
} }
]; ];
var postConstruction=[ var postConstruction=[
@ -297,7 +358,7 @@ var postConstruction=[
width:150, width:150,
setValue:"", setValue:"",
text:{ text:{
head:"crwdns590:0crwdne590:0", head:"デフォルトの警告文",
desc:"", desc:"",
after:"" after:""
} }
@ -310,18 +371,18 @@ var postConstruction=[
storage:"cw_sentence", storage:"cw_sentence",
width:50, width:50,
setValue:500, setValue:500,
text:{after:"crwdns583:0crwdne583:0 crwdns543:0crwdne543:0 crwdns585:0crwdne585:0"} text:{after:"行 以上 または"}
},{ },{
id:"cw_letters", id:"cw_letters",
storage:"cw_letters", storage:"cw_letters",
width:50, width:50,
setValue:7000, setValue:7000,
text:{after:"crwdns584:0crwdne584:0 crwdns543:0crwdne543:0"} text:{after:"文字 以上"}
} }
], ],
text:{ text:{
head:"crwdns588:0crwdne588:0", head:"長文投稿時に警告",
desc:"crwdns589:0crwdne589:0", desc:"下で指定した以上のトゥートを投稿するときにCWするかのダイアログを表示します。",
} }
},{ },{
id:"cws", id:"cws",
@ -329,7 +390,7 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"no", setValue:"no",
text:{ text:{
head:"crwdns591:0crwdne591:0", head:"標準でCWを設定",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }
@ -339,26 +400,26 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"public", setValue:"public",
text:{ text:{
head:"crwdns592:0crwdne592:0", head:"デフォルトの公開設定",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"crwdns593:0crwdne593:0", text:"公開(Public)",
value:"public" value:"public"
},{ },{
text:"crwdns594:0crwdne594:0", text:"未収載(Unlisted)",
value:"unlisted" value:"unlisted"
},{ },{
text:"crwdns595:0crwdne595:0", text:"非公開(Private)",
value:"private" value:"private"
},{ },{
text:"crwdns596:0crwdne596:0", text:"ダイレクト(Direct)",
value:"direct" value:"direct"
},{ },{
text:"crwdns1912:0crwdne1912:0", text:"前回の投稿設定を記憶する(サーバーごとに記憶されます)",
value:"memory" value:"memory"
},{ },{
text:"crwdns1914:0crwdne1914:0", text:"マストドンアカウント設定の既定値",
value:"useapi" value:"useapi"
} }
] ]
@ -369,14 +430,14 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"no-act", setValue:"no-act",
text:{ text:{
head:"crwdns599:0crwdne599:0", head:"画像投稿設定",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"crwdns600:0crwdne600:0", text:"画像を投稿し、画像のURLを最後に表示",
value:"url" value:"url"
},{ },{
text:"crwdns601:0crwdne601:0", text:"画像を投稿するがURLは表示しない",
value:"no-act" value:"no-act"
} }
] ]
@ -387,17 +448,17 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"yes", setValue:"yes",
text:{ text:{
head:"crwdns568:0crwdne568:0", head:"投稿ボックスの挙動",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"crwdns569:0crwdne569:0", text:"たたむ",
value:"yes" value:"yes"
},{ },{
text:"crwdns571:0crwdne571:0", text:"投稿後も隠さない",
value:"no" value:"no"
},{ },{
text:"crwdns570:0crwdne570:0", text:"枠外クリックで閉じない(起動時に展開)",
value:"absolute" value:"absolute"
} }
] ]
@ -408,20 +469,20 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"nothing", setValue:"nothing",
text:{ text:{
head:"crwdns603:0crwdne603:0", head:"引用形式",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"crwdns604:0crwdne604:0", text:"URLのみ",
value:"simple" value:"simple"
},{ },{
text:"crwdns605:0crwdne605:0", text:"URLとアカウント名(相手に通知)",
value:"mention" value:"mention"
},{ },{
text:"crwdns606:0crwdne606:0", text:"本文・URL・アカウント名",
value:"full" value:"full"
},{ },{
text:"@@notqt@@", text:"使わない(TL上にボタンも表示されません)",
value:"nothing" value:"nothing"
} }
] ]
@ -432,14 +493,14 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"remain", setValue:"remain",
text:{ text:{
head:"crwdns607:0crwdne607:0", head:"投稿後や起動時のアカウント",
desc:"crwdns608:0crwdne608:0", desc:"メインアカウントはアカウント設定で指定できます。投稿以外のアカウント選択にも影響します。",
checkbox:[ checkbox:[
{ {
text:"crwdns609:0crwdne609:0", text:"最後に使用したアカウント",
value:"remain" value:"remain"
},{ },{
text:"crwdns610:0crwdne610:0", text:"メインアカウント",
value:"main" value:"main"
} }
] ]
@ -450,26 +511,26 @@ var postConstruction=[
checkbox:true, checkbox:true,
setValue:"public", setValue:"public",
text:{ text:{
head:"crwdns1916:0crwdne1916:0", head:"セカンダリートゥートボタン",
desc:"", desc:"",
checkbox:[ checkbox:[
{ {
text:"crwdns1920:0crwdne1920:0", text:"表示しない",
value:"nothing" value:"nothing"
},{ },{
text:"crwdns593:0crwdne593:0", text:"公開(Public)",
value:"public" value:"public"
},{ },{
text:"crwdns594:0crwdne594:0", text:"未収載(Unlisted)",
value:"unlisted" value:"unlisted"
},{ },{
text:"crwdns595:0crwdne595:0", text:"非公開(Private)",
value:"private" value:"private"
},{ },{
text:"crwdns596:0crwdne596:0", text:"ダイレクト(Direct)",
value:"direct" value:"direct"
},{ },{
text:"crwdns1922:0crwdne1922:0", text:"ローカル限定",
value:"local", value:"local",
kirishima:true, kirishima:true,
kirishimaText:"非対応インスタンスでは「未収載」になります。" kirishimaText:"非対応インスタンスでは「未収載」になります。"
@ -483,7 +544,7 @@ var postConstruction=[
setValue:"normal", setValue:"normal",
setValue:"no", setValue:"no",
text:{ text:{
head:"@@zeroWidthEmoji@@", head:"絵文字にゼロ幅スペースを使う",
desc:"", desc:"",
checkbox:yesno checkbox:yesno
} }

View File

@ -1,18 +1,18 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="ja">
<head> <head>
<title>Update - TheDesk</title> <title>Update - TheDesk</title>
<link href="../../css/materialize.css" type="text/css" rel="stylesheet"> <link href="../../css/materialize.css" type="text/css" rel="stylesheet">
<link href="../../css/master.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"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
<meta charset="utf-8"> <meta charset="utf-8">
<!--
<script type="text/javascript"> <script type="text/javascript">
var _jipt = []; var _jipt = [];
_jipt.push(['project', 'thedesk']); _jipt.push(['project', 'thedesk']);
</script> </script>
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script> <script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
-->
</head> </head>
<body> <body>
<style> <style>
@ -72,27 +72,27 @@ a,button,input,label,i{
<div id="start"> <div id="start">
<div id="box" class="show"> <div id="box" class="show">
<h2>TheDesk</h2> <h2>TheDesk</h2>
<p>crwdns669:0crwdne669:0</p> <p>アップデートがあります</p>
<span id="now"></span><b id="ver"></b><br> <span id="now"></span><b id="ver"></b><br>
<span id="det"></span><br> <span id="det"></span><br>
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">crwdns2382:0crwdne2382:0</button> <button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">インストーラー版(推奨)</button>
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">crwdns1950:0crwdne1950:0</button> <button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">ポータブル版</button>
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">crwdns670:0crwdne670:0</button> <button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">開始</button>
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">crwdns670:0crwdne670:0</button> <button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">開始</button>
<br> <br>
crwdns678:0crwdne678:0<br>crwdns679:0crwdne679:0 問題が発生しますか?<br><a href="https://thedesk.top">公式HP</a>からダウンロードをお試しください。
</div> </div>
<div id="skipper" class="hide"> <div id="skipper" class="hide">
<h4>crwdns674:0crwdne674:0</h4> <h4>アップデートは必ず行ってください</h4>
crwdns675:0crwdne675:0<br> アップデートをスキップする<br>
<div id="updskip"> <div id="updskip">
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>crwdns676:0crwdne676:0</div></a> <a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>次回TL表示時まで</div></a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>crwdns677:0crwdne677:0</div></a> <a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>次のバージョンが出るまで</div></a>
</div> </div>
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">crwdns680:0crwdne680:0</a> <a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">アップデートを続行</a>
</div> </div>
<div id="dlnow" class="hide"> <div id="dlnow" class="hide">
<h4>crwdns681:0crwdne681:0</h4> <h4>ダウンロード中</h4>
<h4 id="prog"></h4> <h4 id="prog"></h4>
</div> </div>
</div> </div>
@ -197,10 +197,24 @@ function verck(){
todo(error); todo(error);
console.error(error); console.error(error);
}).then(function(json) { }).then(function(json) {
console.log(json); console.log(json);
$("#ver").text(json.desk); if(platform=="win32"){
localStorage.setItem("next-ver",json.desk); $("#ver").text(json.desk);
$("#det").html(json.detail); localStorage.setItem("next-ver",json.desk);
}else if(platform=="linux"){
$("#ver").text(json.desk_linux);
localStorage.setItem("next-ver",json.desk_linux);
}else if(platform=="darwin"){
$("#ver").text(json.desk_mac);
localStorage.setItem("next-ver",json.desk_mac);
}
var lang="ja";
if(lang=="ja"){
$("#det").html(json.detail);
}else{
$("#det").html(json.detail_en);
}
$("#now").text(localStorage.getItem("ver")); $("#now").text(localStorage.getItem("ver"));
}); });