Delete: can make file
This commit is contained in:
parent
eee3c34dd7
commit
5694cbd945
|
@ -1,158 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="bg">
|
||||
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<style>
|
||||
.acct {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 400px;
|
||||
background-color: #9e9e9e;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
#acct-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
color: white;
|
||||
align-items: flex-start
|
||||
}
|
||||
|
||||
.lts {
|
||||
font-size: 150%
|
||||
}
|
||||
|
||||
.colorsel {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.card .colorsel div:not(.exc) {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.card .colorsel div.exc {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.first {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.first .hide-first {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.bg.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false;
|
||||
</script>
|
||||
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<div class="hide-first">
|
||||
<a href="index.html" class="btn waves-effect orange nex"
|
||||
style="width:100%; max-width:200px;">Назад</a><br>
|
||||
<h5>Списък на профилите</h5>
|
||||
<div id="acct-list"></div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
<div>
|
||||
<h5>Добавяне на профил</h5><br>
|
||||
<div id="add">
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
Премахнете отметката за да пропуснете влизането с код. (Вход в Mastodon от Windows или macOS) (Препоръчително: pcheck)<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>Настройка на код</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>Влезте като Misskey</span>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
<span style="font-family:Open Sans;">Supports</span>
|
||||
<div id="support" class="collection transparent"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="auth" style="display:none">
|
||||
Поставете кода и затворете браузъра.<br>
|
||||
<input type="text" id="code" placeholder="Код">
|
||||
<button class="btn waves-effect" onclick="code()">Auth</button><br>
|
||||
</div>
|
||||
<div id="misskeylogin" style="display:none">
|
||||
<h5>AppSecret</h5>
|
||||
Прочетете <a href=\"https://thedesk.top/how-to-misskey-login.html\">Документацията</a>, за да влезете в Misskey.<br>
|
||||
<input type="hidden" id="misskey-url">
|
||||
<input type="text" id="misskey-key" placeholder="Код">
|
||||
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide-first">
|
||||
<h5>Основен профил</h5>
|
||||
<div class="input-field" style="width:300px"><span data-trans="your_acct">Изберете профил</span>
|
||||
<br>
|
||||
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
|
||||
<label></label>
|
||||
</div>
|
||||
Some instance data by <a href="https://instances.social" target="_blank">instances.social API</a><br>
|
||||
<h5 id="ins-title"></h5>
|
||||
Administered by:<a id="ins-admin"></a><br>
|
||||
<span id="ins-desc"></span><br>
|
||||
<img src="../../img/loading.svg" id="ins-prof" width="200"><br>
|
||||
<br>
|
||||
Домейн:<span id="ins-name"></span><br>
|
||||
Федерални сървъри:<span id="ins-connect"></span><br>
|
||||
Тоот:<span id="ins-toot"></span><br>
|
||||
Потребители:<span id="ins-user"></span>Потребители<br>
|
||||
Свързване:<span id="ins-per"></span>%<br>
|
||||
Mastodon версия:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
|
||||
</div>
|
||||
<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/common/sha256.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/tkn.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,476 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="bg" style="overflow:scroll">
|
||||
|
||||
<head>
|
||||
<title>Settings - TheDesk</title>
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</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">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
input {
|
||||
max-height: 50px !important
|
||||
}
|
||||
|
||||
.pcr-result {
|
||||
height: 1rem !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body id="mainView" style="overflow-y:scroll">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.bg.js"></script>
|
||||
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
|
||||
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||
<script type="text/javascript" src="setting.vue.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
|
||||
<h4>Предпочитания</h4>
|
||||
<ul class="collapsible" data-collapsible="accordion">
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">desktop_windows</i>Системни предпочитания
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Езици</h5>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
|
||||
<a onclick="changelang('ja')" class="pointer" style="margin-right:5px;">日本語</a><a onclick="changelang('en')" class="pointer" style="margin-right:5px;">English</a><a onclick="changelang('ps')" class="pointer" style="margin-right:5px;">Crowdin translate system(beta)</a><a onclick="changelang('bg')" class="pointer" style="margin-right:5px;">български</a><a onclick="changelang('cs')" class="pointer" style="margin-right:5px;">Česky</a><a onclick="changelang('de')" class="pointer" style="margin-right:5px;">Deutsch</a>
|
||||
<h5>Внос и износ на предпочитания</h5>
|
||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||
style="width:100%; max-width:200px;">Износ</button>
|
||||
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||
style="width:100%; max-width:200px;">Внос</button>
|
||||
<div id="envView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">Тест за уведомяване</a><br></template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Промяна</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>Шрифт</h5>
|
||||
Изберете любимия си шрифт с „Избор“ (само за Windows / macOS)<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>
|
||||
<br>
|
||||
<input type="text" style="width:150px" id="font">
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="settings()">Запази</button>
|
||||
<br>
|
||||
<h5>Папка за запазване</h5>
|
||||
TheDesk ще използва това местоназначение, когато се опитва да запази снимки или да прави екранни снимки.<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">Промяна</button>
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">color_lens</i>Теми
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h4>Изберете тема</h4>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<span>Black</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<span>White</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo"
|
||||
value="indigo" />
|
||||
<span>Indigo<span class="imas hide">(エンドレスナイト)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<span>Brown<span class="imas hide">(ビタースイート・タイム)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<span>Green<span class="imas hide">(ユースフルロマンス)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="blue" value="blue" />
|
||||
<span>Blue<span class="imas hide">(渚の花嫁)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom"
|
||||
value="custom" />
|
||||
<span>custom</span>
|
||||
</label>
|
||||
<div style="width:300px" id="sel-selector">
|
||||
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||
</div>
|
||||
<h4>Редактирайте и добавете персонализирани теми</h4>
|
||||
<div style="width:300px" id="edit-selector" data-add="Добавяне на нов">
|
||||
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||
<option value="add_new">Добавяне на нов</option>
|
||||
</select>
|
||||
</div>
|
||||
<h5>Име</h5>
|
||||
<input type="text" style="width:300px" id="custom_name" placeholder="Име...">
|
||||
<h5>Относно тази тема</h5>
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="Относно тази тема..."></textarea></div>
|
||||
<h5>Цветова схема</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||
checked="true" />
|
||||
<span>Dark</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>Компоненти на фона
|
||||
<div id="color-picker0-wrap">
|
||||
<div class="color-picker" id="color-picker0"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker0_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Secondary</h5>Цвят на фона
|
||||
<div id="color-picker1-wrap">
|
||||
<div class="color-picker" id="color-picker1"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker1_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Texts</h5>Цвят на текста
|
||||
<div id="color-picker2-wrap">
|
||||
<div class="color-picker" id="color-picker2"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker2_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Accent</h5>Фон на подсилването
|
||||
<div id="color-picker3-wrap">
|
||||
<div class="color-picker" id="color-picker3"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker3_value">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn-large waves-effect" onclick="customComp()">Промяна</button> <button
|
||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Изтрий</button><br><br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
|
||||
placeholder="JSON style" readonly><br>
|
||||
Споделете този код с друг TheDesk. Не споделяйте този код с MiAS.
|
||||
<h4>Импортиране на персонализирани теми</h4>
|
||||
Вземете още теми от <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a><br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
|
||||
placeholder="JSON/JSON5 style">
|
||||
<button class="btn waves-effect" onclick="customImp()">Внос</button><br>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">reorder</i>Предпочитания за времевата линия
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="tlView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Промяна</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</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>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">send</i>Предпочитания за публикуване
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="postView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span></label>
|
||||
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Промяна</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">keyboard</i>Keyboard shortcut Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Easy inserter</h5>
|
||||
Можете да вмъкнете всякакви букви и емотикони само с 3 клавиша<br>
|
||||
Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1">
|
||||
<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">
|
||||
<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">
|
||||
<button onclick="oks(3)" class="btn waves-effect" style="width:100px;">Запази</button><br><br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Client Mute</h5>
|
||||
<div id="mute-cli"></div>
|
||||
<h5>Client Emphasis</h5>
|
||||
Click client name on toots to toggle mute and emphasis.
|
||||
<h5>Words Mute</h5>
|
||||
Enter to set<br>
|
||||
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">Запази</button>
|
||||
<h5>Words Emphasis</h5>
|
||||
Enter to set<br>
|
||||
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||
<button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">Запази</button>
|
||||
<h5>Users Emphasis</h5>
|
||||
Set on users data modals.
|
||||
<span class="emphasized"> Use this color to emphasis </span>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<br><br>
|
||||
Click <i class="material-icons" style="font-size:24px;">music_note</i>icon to NowPlaying<br>
|
||||
<h5>Account Connection</h5>
|
||||
TheDesk save your data on thedesk.top server.<br>
|
||||
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||
onclick="spotifyAuth()" class="btn waves-effect" style="width:100px;">Запази</button></div>
|
||||
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i
|
||||
class="fa fa-spotify left"></i>Connect</a>
|
||||
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
|
||||
class="fa fa-spotify left"></i>Disconnect</a>
|
||||
<h5>@@templateedit@@</h5>
|
||||
@@templateeditwarn@@<br>
|
||||
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||
{url}</textarea><br>
|
||||
@@template1@@<br>
|
||||
@@template2@@<br>
|
||||
@@template3@@<br>
|
||||
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">Запази</button>
|
||||
<h5>Attach an Artwork of Spotify</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||
value="yes" />
|
||||
<span>Да</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||
value="no" />
|
||||
<span>Не</span>
|
||||
</label>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Speed</h5>
|
||||
1-100(default:10)<br>
|
||||
<p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Pitch</h5>
|
||||
0-100(default:50)<br>
|
||||
<p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Volume</h5>
|
||||
0-100(default:100)<br>
|
||||
<p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Test</h5>
|
||||
<input type="text" style="width:350px" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC.">
|
||||
<button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()"
|
||||
id="testplay">Play/Stop</button><br>
|
||||
<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">Запази</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<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>
|
||||
<br>
|
||||
<br>Keyboard shortcuts
|
||||
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
|
||||
<li>N:Open toot box</li>
|
||||
<li>X:Toggle toot box</li>
|
||||
<li>Ctrl+Enter:Post</li>
|
||||
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
|
||||
<li>Alt+Enter:Secondary Toot Button</li>
|
||||
<li>Ctrl+E:Make all notifications read</li>
|
||||
<li>Ctrl+U:@@keyselecttop@@</li>
|
||||
<li>Esc:Hide toot box</li>
|
||||
<li>F5:Super Reload</li>
|
||||
<li>Ctrl+Shift+C:Clear toot box</li>
|
||||
<li>Ctrl+Shift+S:Предпочитания</li>
|
||||
<li>Ctrl+Shift+M:Account Manager</li>
|
||||
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||
<li>Ctrl+Shift+P:Show profile of selecting</li>
|
||||
<li>←/→:Show next or previous image</li>
|
||||
<li>Mousewheel:Zoom a image</li>
|
||||
<div class="hide kirishima">
|
||||
以下Markdownに対応したインスタンスのみ。
|
||||
<br>
|
||||
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||
以下アスタルテにログインしている場合のみ
|
||||
<br>
|
||||
<li>Ctrl+R:
|
||||
<a href="https://astarte.thedesk.top">アスタルテ暇人ランキング</a>を開く
|
||||
</li><br>
|
||||
@@whenSelected@@
|
||||
<li>F:@@fav@@</li>
|
||||
<li>B:@@bt@@</li>
|
||||
<li>R:@@reply@@</li>
|
||||
</div>
|
||||
<button class="btn waves-effect red" style="width:100%; max-width:500px;"
|
||||
onclick="if(confirm('Изтриване на всички данни. Не можете да го отмените. Продължaвате?')){ localStorage.clear(); location.href='index.html'; }"><i
|
||||
class="material-icons left">delete</i>Reset(Danger)</button><br><br>
|
||||
<button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">info</i>About TheDesk</button>
|
||||
<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>
|
||||
<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>
|
||||
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>Поддръжка(Patreon)</a>
|
||||
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||
style="width:100%; max-width:500px; background-color: #f6c915"><i class="material-icons left">trending_up</i>Поддръжка(Liberapay)</a>
|
||||
<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</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fab fa-github left"></i>GitHub</a>
|
||||
<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="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||
class="pointer">Check update</a><br>
|
||||
<a href="oss.html">OSS License</a><br>
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
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
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
|
@ -1,552 +0,0 @@
|
|||
var yesno = [
|
||||
{
|
||||
text: "Да",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Не",
|
||||
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 = [
|
||||
{
|
||||
id: "popup",
|
||||
storage: "popup",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 0,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "Известие с изскачащ прозорец (за Windows)",
|
||||
desc: "Скрито ако е зададено на „0“",
|
||||
after: "сек"
|
||||
}
|
||||
}, {
|
||||
id: "notf",
|
||||
storage: "nativenotf",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Вътрешно уведомяване",
|
||||
desc: "Това не работи в Windows Portable вер.",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "width",
|
||||
storage: "width",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 300,
|
||||
text: {
|
||||
head: "Минимална ширина на колоните",
|
||||
desc: "Лентата за превъртане ще се покаже, когато размерът на прозореца е по-голям от размера на колони.",
|
||||
after: "px над"
|
||||
}
|
||||
}, {
|
||||
id: "fixwidth",
|
||||
storage: "fixwidth",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 300,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "Минимална ширина на браузъра TweetDeck",
|
||||
desc: "",
|
||||
after: "px над"
|
||||
}
|
||||
}, {
|
||||
id: "size",
|
||||
storage: "size",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 13,
|
||||
text: {
|
||||
head: "Размер на шрифта",
|
||||
desc: "<span style=\"font-size:13px\">13px(абсолютна стойност)</span>",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ha",
|
||||
storage: "ha",
|
||||
checkbox: true,
|
||||
setValue: false,
|
||||
text: {
|
||||
head: "Деактивиране на хардуерното ускорение",
|
||||
desc: "Автоматичното рестартиране",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Да",
|
||||
value: "true"
|
||||
}, {
|
||||
text: "Не",
|
||||
value: "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
];
|
||||
var tlConstruction = [
|
||||
{
|
||||
id: "time",
|
||||
storage: "datetype",
|
||||
checkbox: true,
|
||||
setValue: "absolute",
|
||||
text: {
|
||||
head: "Времеви формат",
|
||||
desc: "Относителен формат: „преди 1 минута“, „преди 3 дни“<br>Абсолютен формат:\"23:25:21\",\"2017/12/30 23:59:00\"<br>Смесен формат: някои от раздумките са с относителен-формат, други са с абсолютен формат.",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Относителен",
|
||||
value: "relative"
|
||||
}, {
|
||||
text: "Абсолютен",
|
||||
value: "absolute"
|
||||
}, {
|
||||
text: "Относителен и абсолютен",
|
||||
value: "double"
|
||||
}, {
|
||||
text: "Смесено",
|
||||
value: "medium"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "ul",
|
||||
storage: "locale",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Уникално място на Сървърите",
|
||||
desc: "Тази стойност е налична за някои Японски сървъри",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "nsfw",
|
||||
storage: "nsfw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Скриване на NSFW снимки",
|
||||
desc: "Силен ефект на размазване",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "cw",
|
||||
storage: "cw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Скриване на CW съдържание",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "rp",
|
||||
storage: "replyct",
|
||||
checkbox: true,
|
||||
setValue: "hidden",
|
||||
text: {
|
||||
head: "Стил на брояча на отговори",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Показване на 1+, ако отговорите са повече от 1.",
|
||||
value: "hidden"
|
||||
}, {
|
||||
text: "Показване на 1+, ако отговорите са повече от 1.",
|
||||
value: "all"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "gif",
|
||||
storage: "gif",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Анимация на анимирани GIF изображения",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "tag",
|
||||
storage: "tag-range",
|
||||
checkbox: true,
|
||||
setValue: "local",
|
||||
text: {
|
||||
head: "Tag в TL търсене",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Използване в обединената мрежа",
|
||||
value: "all"
|
||||
}, {
|
||||
text: "Използване в локалната мрежа",
|
||||
value: "local"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "via",
|
||||
storage: "viashow",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "С показване",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "mov",
|
||||
storage: "mouseover",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Hide action buttons without mouseover",
|
||||
desc: "You may feel 'mouseover' is unconfortable:(",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Mouseover to show",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Click to show",
|
||||
value: "click"
|
||||
}, {
|
||||
text: "Не",
|
||||
value: "no"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "notfm",
|
||||
storage: "setasread",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Show Notification marker, red colored bell and counter(if you show a notification column.)",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "sentence",
|
||||
storage: "sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "lines над or" }
|
||||
}, {
|
||||
id: "letters",
|
||||
storage: "letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "букви над" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "Auto folding",
|
||||
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.",
|
||||
}
|
||||
}, {
|
||||
id: "img-height",
|
||||
storage: "img-height",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 80,
|
||||
setValue: 200,
|
||||
text: {
|
||||
head: "Height of images",
|
||||
desc: "Option:Set \"full\" to uncrop.",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ticker",
|
||||
storage: "ticker_ok",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Enable #InstanceTicker",
|
||||
desc: "Show colorful stickers about the server. <a href=\"https://cdn.weep.me/mastodon/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "anime",
|
||||
storage: "animation",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Анимация на времевата линия",
|
||||
desc: "",
|
||||
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 = [
|
||||
{
|
||||
id: "cw-text",
|
||||
storage: "cw-text",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 150,
|
||||
setValue: "",
|
||||
text: {
|
||||
head: "Текст за предупреждение по подразбиране",
|
||||
desc: "",
|
||||
after: ""
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "cw_sentence",
|
||||
storage: "cw_sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "lines над or" }
|
||||
}, {
|
||||
id: "cw_letters",
|
||||
storage: "cw_letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "букви над" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "Предупреждение преди публикуване на дълга раздумка.",
|
||||
desc: "Показване на диалогов прозорец, когато правите твърде дълъг скрит текст.",
|
||||
}
|
||||
}, {
|
||||
id: "cws",
|
||||
storage: "always-cw",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Винаги да е зададено CW",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "vis",
|
||||
storage: "vis",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "Видимост по подразбиране",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Публично",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "Скрито",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "Частно",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "Директно",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "Памет(запомнено на всеки сървър)",
|
||||
value: "memory"
|
||||
}, {
|
||||
text: "Видимост по подразбиране (Зададени от предпочитанията в Mastodon сървъра)",
|
||||
value: "useapi"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "img",
|
||||
storage: "img",
|
||||
checkbox: true,
|
||||
setValue: "no-act",
|
||||
text: {
|
||||
head: "Предпочитания за публикуване на изображения",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Вмъкване на URL адрес на медия",
|
||||
value: "url"
|
||||
}, {
|
||||
text: "Без вмъкване",
|
||||
value: "no-act"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "box",
|
||||
storage: "box",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Действие на кутията за публикации",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Прибрана",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Отворена и след публикуване",
|
||||
value: "no"
|
||||
}, {
|
||||
text: "Постоянно отворена",
|
||||
value: "absolute"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "quote",
|
||||
storage: "quote",
|
||||
checkbox: true,
|
||||
setValue: "nothing",
|
||||
text: {
|
||||
head: "Quote format",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Only URL",
|
||||
value: "simple"
|
||||
}, {
|
||||
text: "URL and acct(mention to the user)",
|
||||
value: "mention"
|
||||
}, {
|
||||
text: "URL, text and acct(mention to the user)",
|
||||
value: "full"
|
||||
}, {
|
||||
text: "Disabled(Hide buttons on TLs)",
|
||||
value: "nothing"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "main",
|
||||
storage: "mainuse",
|
||||
checkbox: true,
|
||||
setValue: "remain",
|
||||
text: {
|
||||
head: "Default accounts of actions",
|
||||
desc: "Main account can be set on Account Manager.",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Account you used recently",
|
||||
value: "remain"
|
||||
}, {
|
||||
text: "Main account",
|
||||
value: "main"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "sec",
|
||||
storage: "sec",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "Secondary Toot Button",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Hidden",
|
||||
value: "nothing"
|
||||
}, {
|
||||
text: "Публично",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "Скрито",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "Частно",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "Директно",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "Local Only",
|
||||
value: "local",
|
||||
kirishima: true,
|
||||
kirishimaText: "非対応インスタンスでは「未収載」になります。"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "zero",
|
||||
storage: "emoji-zero-width",
|
||||
checkbox: true,
|
||||
setValue: "normal",
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Zero-width space when inserting emojis",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,254 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="bg">
|
||||
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Open Sans';
|
||||
-webkit-app-region: drag;
|
||||
cursor: move;
|
||||
padding: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#start {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100vw;
|
||||
height: calc(100vh - 2.5rem);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#checkbox {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
a,
|
||||
button,
|
||||
input,
|
||||
label,
|
||||
i {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
|
||||
#updskip {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.skipbtn {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px solid;
|
||||
margin-left: 5px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1px solid;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.skipbtn:hover {
|
||||
background-color: #b3e5fc;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#prog {
|
||||
font-size: 200%;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||
<!--a href="update.html">Reload</a-->
|
||||
<div id="start">
|
||||
<div id="box" class="show">
|
||||
<h2>TheDesk</h2>
|
||||
<p>Get latest TheDesk</p>
|
||||
<span id="now"></span>→<b id="ver"></b><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('portable')"
|
||||
style="margin-left:15px;">Portable ver.</button>
|
||||
<button class="waves-effect btn linux hide" onclick="update('linux')"
|
||||
style="margin-left:15px;">Start</button>
|
||||
<button class="waves-effect btn mac hide" onclick="update('mac')"
|
||||
style="margin-left:15px;">Start</button>
|
||||
<br>
|
||||
Some problems?<br>Please download on <a href=\"https://thedesk.top\">Oficial HP</a>.
|
||||
</div>
|
||||
<div id="skipper" class="hide">
|
||||
<h4>You may lose a cool experience!</h4>
|
||||
Skip this update<br>
|
||||
<div id="updskip">
|
||||
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||
<div>Until next TL loading</div>
|
||||
</a>
|
||||
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||
<div>Until next version</div>
|
||||
</a>
|
||||
</div>
|
||||
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">Continue updating</a>
|
||||
</div>
|
||||
<div id="dlnow" class="hide">
|
||||
<h4>Downloading...</h4>
|
||||
<h4 id="prog"></h4>
|
||||
<div class="progress">
|
||||
<div class="determinate" style="width: 0%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script>
|
||||
function skipper() {
|
||||
$("#dlnow").addClass("hide");
|
||||
$("#box").toggleClass("show");
|
||||
if ($("#box").hasClass("hide") && $("#skipper").hasClass("hide")) {
|
||||
$("#skipper").removeClass("hide");
|
||||
$("#skipper").addClass("show");
|
||||
} else {
|
||||
$("#box").toggleClass("hide");
|
||||
$("#skipper").toggleClass("hide");
|
||||
$("#skipper").toggleClass("show");
|
||||
}
|
||||
}
|
||||
verck();
|
||||
function update(sel) {
|
||||
$("#box").toggleClass("show");
|
||||
$("#box").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("show");
|
||||
$("#prog").text("");
|
||||
var bit = localStorage.getItem("bit");
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
if (sel == "install") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64"];
|
||||
var file = "TheDesk-setup.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32"];
|
||||
var file = "TheDesk-setup-ia32.exe";
|
||||
}
|
||||
} else if (sel == "portable") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64p"];
|
||||
var file = "TheDesk.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32p"];
|
||||
var file = "TheDesk-ia32.exe";
|
||||
}
|
||||
} else if (sel == "linux") {
|
||||
if (bit == "x64") {
|
||||
var url = json["linuxx64"];
|
||||
var file = "TheDesk-linux-x64.zip";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["linuxia64"];
|
||||
var file = "TheDesk-linux-ia32.zip";
|
||||
}
|
||||
} else if (sel == "mac") {
|
||||
var url = json["mac"];
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
}
|
||||
postMessage(["downloadButton", [url, file]], "*")
|
||||
});
|
||||
|
||||
}
|
||||
function quit() {
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
function updateProg(arg) {
|
||||
console.log(arg);
|
||||
$(".determinate").css("width", arg * 100 + "%");
|
||||
$("#prog").text(Math.floor(arg * 100) + "%");
|
||||
}
|
||||
function updateMess(arg) {
|
||||
console.log(arg);
|
||||
$("#prog").text(arg);
|
||||
}
|
||||
function verck() {
|
||||
var platform = localStorage.getItem("platform");
|
||||
var bit = localStorage.getItem("bit");
|
||||
if (platform == "win32") {
|
||||
$('.windows').removeClass("hide")
|
||||
} else if (platform == "linux") {
|
||||
$('.linux').removeClass("hide")
|
||||
} else if (platform == "darwin") {
|
||||
$('.mac').removeClass("hide")
|
||||
}
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
console.log(json);
|
||||
if (platform == "win32") {
|
||||
$("#ver").text(json.desk);
|
||||
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 = "bg";
|
||||
if (lang == "ja") {
|
||||
$("#det").html(json.detail);
|
||||
} else {
|
||||
$("#det").html(json.detail_en);
|
||||
}
|
||||
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
|
||||
});
|
||||
}
|
||||
function nextv() {
|
||||
localStorage.setItem("new-ver-skip", "true");
|
||||
window.close();
|
||||
}
|
||||
function enc(ver) {
|
||||
var ver = ver.replace(/\s/g, "");
|
||||
var ver = ver.replace(/\(/g, "-");
|
||||
var ver = ver.replace(/\)/g, "");
|
||||
var ver = ver.replace(/\[/g, "_");
|
||||
var ver = ver.replace(/\]/g, "");
|
||||
return ver;
|
||||
}
|
||||
</script>
|
|
@ -1,158 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="cs">
|
||||
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<style>
|
||||
.acct {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 400px;
|
||||
background-color: #9e9e9e;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
#acct-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
color: white;
|
||||
align-items: flex-start
|
||||
}
|
||||
|
||||
.lts {
|
||||
font-size: 150%
|
||||
}
|
||||
|
||||
.colorsel {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.card .colorsel div:not(.exc) {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.card .colorsel div.exc {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.first {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.first .hide-first {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.cs.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false;
|
||||
</script>
|
||||
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<div class="hide-first">
|
||||
<a href="index.html" class="btn waves-effect orange nex"
|
||||
style="width:100%; max-width:200px;">Zpět</a><br>
|
||||
<h5>Seznam účtů</h5>
|
||||
<div id="acct-list"></div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
<div>
|
||||
<h5>Přidat účet</h5><br>
|
||||
<div id="add">
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
Uncheck it to skip pasiting code.(login to Mastodon on Windows or macOS) (Recommended: pcheck)<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>Nastavení kódu</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>Přihlásit jako Misskey</span>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
<span style="font-family:Open Sans;">Supports</span>
|
||||
<div id="support" class="collection transparent"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="auth" style="display:none">
|
||||
Vložte kód a zavřete prohlížeč.<br>
|
||||
<input type="text" id="code" placeholder="Kód">
|
||||
<button class="btn waves-effect" onclick="code()">Auth</button><br>
|
||||
</div>
|
||||
<div id="misskeylogin" style="display:none">
|
||||
<h5>AppSecret</h5>
|
||||
Pro přihlášení do Misskey si přečtěte <a href=\"https://thedesk.top/how-to-misskey-login.html\">dokumentaci (ja)</a>.<br>
|
||||
<input type="hidden" id="misskey-url">
|
||||
<input type="text" id="misskey-key" placeholder="Kód">
|
||||
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide-first">
|
||||
<h5>Hlavní účet</h5>
|
||||
<div class="input-field" style="width:300px"><span data-trans="your_acct">Vyberte si účet</span>
|
||||
<br>
|
||||
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
|
||||
<label></label>
|
||||
</div>
|
||||
Some instance data by <a href="https://instances.social" target="_blank">instances.social API</a><br>
|
||||
<h5 id="ins-title"></h5>
|
||||
Administered by:<a id="ins-admin"></a><br>
|
||||
<span id="ins-desc"></span><br>
|
||||
<img src="../../img/loading.svg" id="ins-prof" width="200"><br>
|
||||
<br>
|
||||
Doména:<span id="ins-name"></span><br>
|
||||
Federované servery:<span id="ins-connect"></span><br>
|
||||
Tooty:<span id="ins-toot"></span><br>
|
||||
Uživatelé:<span id="ins-user"></span>Uživatelé<br>
|
||||
Spojení:<span id="ins-per"></span>%<br>
|
||||
Verze Mastodonu:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
|
||||
</div>
|
||||
<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/common/sha256.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/tkn.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,476 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="cs" style="overflow:scroll">
|
||||
|
||||
<head>
|
||||
<title>Settings - TheDesk</title>
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</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">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
input {
|
||||
max-height: 50px !important
|
||||
}
|
||||
|
||||
.pcr-result {
|
||||
height: 1rem !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body id="mainView" style="overflow-y:scroll">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.cs.js"></script>
|
||||
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
|
||||
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||
<script type="text/javascript" src="setting.vue.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
|
||||
<h4>Předvolby</h4>
|
||||
<ul class="collapsible" data-collapsible="accordion">
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">desktop_windows</i>Systémové předvolby
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Jazyky</h5>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
|
||||
<a onclick="changelang('ja')" class="pointer" style="margin-right:5px;">日本語</a><a onclick="changelang('en')" class="pointer" style="margin-right:5px;">English</a><a onclick="changelang('ps')" class="pointer" style="margin-right:5px;">Crowdin translate system(beta)</a><a onclick="changelang('bg')" class="pointer" style="margin-right:5px;">български</a><a onclick="changelang('cs')" class="pointer" style="margin-right:5px;">Česky</a><a onclick="changelang('de')" class="pointer" style="margin-right:5px;">Deutsch</a>
|
||||
<h5>Import a export předvoleb</h5>
|
||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||
style="width:100%; max-width:200px;">Export</button>
|
||||
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||
style="width:100%; max-width:200px;">Import</button>
|
||||
<div id="envView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">Odskoušet oznámení</a><br></template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Změnit</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>Písmo</h5>
|
||||
Select your favorite font to 'Select'(Windows/ macOS only)<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="font()">Vybrat</button><br>
|
||||
<div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div>
|
||||
<br>
|
||||
<input type="text" style="width:150px" id="font">
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="settings()">Uložit</button>
|
||||
<br>
|
||||
<h5>Folder to save</h5>
|
||||
TheDesk uses this value when it try to save pictures or take screenshots.<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">Změnit</button>
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">color_lens</i>Motivy
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h4>Vybrat motiv</h4>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<span>Black</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<span>White</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo"
|
||||
value="indigo" />
|
||||
<span>Indigo<span class="imas hide">(エンドレスナイト)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<span>Brown<span class="imas hide">(ビタースイート・タイム)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<span>Green<span class="imas hide">(ユースフルロマンス)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="blue" value="blue" />
|
||||
<span>Blue<span class="imas hide">(渚の花嫁)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom"
|
||||
value="custom" />
|
||||
<span>custom</span>
|
||||
</label>
|
||||
<div style="width:300px" id="sel-selector">
|
||||
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||
</div>
|
||||
<h4>Edit and add custom themes</h4>
|
||||
<div style="width:300px" id="edit-selector" data-add="Add new">
|
||||
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||
<option value="add_new">Add new</option>
|
||||
</select>
|
||||
</div>
|
||||
<h5>Name</h5>
|
||||
<input type="text" style="width:300px" id="custom_name" placeholder="Name...">
|
||||
<h5>About this theme</h5>
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="About this theme..."></textarea></div>
|
||||
<h5>Color scheme</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||
checked="true" />
|
||||
<span>Dark</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>Background of components
|
||||
<div id="color-picker0-wrap">
|
||||
<div class="color-picker" id="color-picker0"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker0_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Secondary</h5>Background color
|
||||
<div id="color-picker1-wrap">
|
||||
<div class="color-picker" id="color-picker1"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker1_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Texts</h5>Text color
|
||||
<div id="color-picker2-wrap">
|
||||
<div class="color-picker" id="color-picker2"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker2_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Accent</h5>Background of boosts
|
||||
<div id="color-picker3-wrap">
|
||||
<div class="color-picker" id="color-picker3"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker3_value">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn-large waves-effect" onclick="customComp()">Změnit</button> <button
|
||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Delete</button><br><br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
|
||||
placeholder="JSON style" readonly><br>
|
||||
Share this code with other TheDesk. Do not share this code with MiAS.
|
||||
<h4>Import of custom themes</h4>
|
||||
Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a><br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
|
||||
placeholder="JSON/JSON5 style">
|
||||
<button class="btn waves-effect" onclick="customImp()">Import</button><br>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">reorder</i>Timeline Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="tlView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Změnit</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>Custom sound</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>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">send</i>Posting Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="postView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span></label>
|
||||
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Změnit</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">keyboard</i>Keyboard shortcut Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Easy inserter</h5>
|
||||
You can insert any letters and emojis with only 3 keys<br>
|
||||
Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1">
|
||||
<button onclick="oks(1)" class="btn waves-effect" style="width:100px;">Uložit</button><br><br>
|
||||
Ctrl+Shift+2:<input type="text" style="width:150px" id="oks-2">
|
||||
<button onclick="oks(2)" class="btn waves-effect" style="width:100px;">Uložit</button><br><br>
|
||||
Ctrl+Shift+3:<input type="text" style="width:150px" id="oks-3">
|
||||
<button onclick="oks(3)" class="btn waves-effect" style="width:100px;">Uložit</button><br><br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Client Mute</h5>
|
||||
<div id="mute-cli"></div>
|
||||
<h5>Client Emphasis</h5>
|
||||
Click client name on toots to toggle mute and emphasis.
|
||||
<h5>Words Mute</h5>
|
||||
Enter to set<br>
|
||||
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">Uložit</button>
|
||||
<h5>Words Emphasis</h5>
|
||||
Enter to set<br>
|
||||
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||
<button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">Uložit</button>
|
||||
<h5>Users Emphasis</h5>
|
||||
Set on users data modals.
|
||||
<span class="emphasized"> Use this color to emphasis </span>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<br><br>
|
||||
Click <i class="material-icons" style="font-size:24px;">music_note</i>icon to NowPlaying<br>
|
||||
<h5>Account Connection</h5>
|
||||
TheDesk save your data on thedesk.top server.<br>
|
||||
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||
onclick="spotifyAuth()" class="btn waves-effect" style="width:100px;">Uložit</button></div>
|
||||
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i
|
||||
class="fa fa-spotify left"></i>Connect</a>
|
||||
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
|
||||
class="fa fa-spotify left"></i>Disconnect</a>
|
||||
<h5>@@templateedit@@</h5>
|
||||
@@templateeditwarn@@<br>
|
||||
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||
{url}</textarea><br>
|
||||
@@template1@@<br>
|
||||
@@template2@@<br>
|
||||
@@template3@@<br>
|
||||
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">Uložit</button>
|
||||
<h5>Attach an Artwork of Spotify</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||
value="yes" />
|
||||
<span>Ano</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||
value="no" />
|
||||
<span>Ne</span>
|
||||
</label>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Speed</h5>
|
||||
1-100(default:10)<br>
|
||||
<p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Pitch</h5>
|
||||
0-100(default:50)<br>
|
||||
<p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Volume</h5>
|
||||
0-100(default:100)<br>
|
||||
<p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Test</h5>
|
||||
<input type="text" style="width:350px" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC.">
|
||||
<button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()"
|
||||
id="testplay">Play/Stop</button><br>
|
||||
<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">Uložit</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<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>
|
||||
<br>
|
||||
<br>Keyboard shortcuts
|
||||
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
|
||||
<li>N:Open toot box</li>
|
||||
<li>X:Toggle toot box</li>
|
||||
<li>Ctrl+Enter:Post</li>
|
||||
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
|
||||
<li>Alt+Enter:Secondary Toot Button</li>
|
||||
<li>Ctrl+E:Make all notifications read</li>
|
||||
<li>Ctrl+U:@@keyselecttop@@</li>
|
||||
<li>Esc:Hide toot box</li>
|
||||
<li>F5:Super Reload</li>
|
||||
<li>Ctrl+Shift+C:Clear toot box</li>
|
||||
<li>Ctrl+Shift+S:Předvolby</li>
|
||||
<li>Ctrl+Shift+M:Account Manager</li>
|
||||
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||
<li>Ctrl+Shift+P:Show profile of selecting</li>
|
||||
<li>←/→:Show next or previous image</li>
|
||||
<li>Mousewheel:Zoom a image</li>
|
||||
<div class="hide kirishima">
|
||||
以下Markdownに対応したインスタンスのみ。
|
||||
<br>
|
||||
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||
以下アスタルテにログインしている場合のみ
|
||||
<br>
|
||||
<li>Ctrl+R:
|
||||
<a href="https://astarte.thedesk.top">アスタルテ暇人ランキング</a>を開く
|
||||
</li><br>
|
||||
@@whenSelected@@
|
||||
<li>F:@@fav@@</li>
|
||||
<li>B:@@bt@@</li>
|
||||
<li>R:@@reply@@</li>
|
||||
</div>
|
||||
<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
|
||||
class="material-icons left">delete</i>Reset(Danger)</button><br><br>
|
||||
<button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">info</i>About TheDesk</button>
|
||||
<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>
|
||||
<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>
|
||||
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>Support(Patreon)</a>
|
||||
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||
style="width:100%; max-width:500px; background-color: #f6c915"><i class="material-icons left">trending_up</i>Support(Liberapay)</a>
|
||||
<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</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fab fa-github left"></i>GitHub</a>
|
||||
<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="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||
class="pointer">Check update</a><br>
|
||||
<a href="oss.html">OSS License</a><br>
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
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
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
|
@ -1,552 +0,0 @@
|
|||
var yesno = [
|
||||
{
|
||||
text: "Ano",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Ne",
|
||||
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 = [
|
||||
{
|
||||
id: "popup",
|
||||
storage: "popup",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 0,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "Popupová oznámení (na Windows)",
|
||||
desc: "Hide to set \"0\"",
|
||||
after: "sec"
|
||||
}
|
||||
}, {
|
||||
id: "notf",
|
||||
storage: "nativenotf",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Native notification",
|
||||
desc: "This does not work on Windows Portable ver.",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "width",
|
||||
storage: "width",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 300,
|
||||
text: {
|
||||
head: "Minimum width of columns",
|
||||
desc: "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
after: "px above"
|
||||
}
|
||||
}, {
|
||||
id: "fixwidth",
|
||||
storage: "fixwidth",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 300,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "Minimální šířka TweetDeck prohlížeče",
|
||||
desc: "",
|
||||
after: "px above"
|
||||
}
|
||||
}, {
|
||||
id: "size",
|
||||
storage: "size",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 13,
|
||||
text: {
|
||||
head: "Velikost písma",
|
||||
desc: "<span style=\"font-size:13px\">13px(absolutní hodnota)</span>",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ha",
|
||||
storage: "ha",
|
||||
checkbox: true,
|
||||
setValue: false,
|
||||
text: {
|
||||
head: "Disable hardware acceleration",
|
||||
desc: "Auto restarted",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Ano",
|
||||
value: "true"
|
||||
}, {
|
||||
text: "Ne",
|
||||
value: "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
];
|
||||
var tlConstruction = [
|
||||
{
|
||||
id: "time",
|
||||
storage: "datetype",
|
||||
checkbox: true,
|
||||
setValue: "absolute",
|
||||
text: {
|
||||
head: "Časový formát",
|
||||
desc: "Relativní formát: „před 1 minutou“, „před 3 dny“<br>Absolutní formát: „23:25:21“, „2017/12/30 23:59:00“<br>Smíšený formát: tooty publikované dnes jsou v relativním formátu, ostatní jsou v absolutním formátu.",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Relativní",
|
||||
value: "relative"
|
||||
}, {
|
||||
text: "Absolutní",
|
||||
value: "absolute"
|
||||
}, {
|
||||
text: "Relativní i absolutní",
|
||||
value: "double"
|
||||
}, {
|
||||
text: "Smíšený",
|
||||
value: "medium"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "ul",
|
||||
storage: "locale",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Server's unique locale",
|
||||
desc: "This value is available on some Japanese servers",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "nsfw",
|
||||
storage: "nsfw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Skrývat citlivé obrázky",
|
||||
desc: "Silný efekt rozmazání",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "cw",
|
||||
storage: "cw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Skrývat obsah za varováními",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "rp",
|
||||
storage: "replyct",
|
||||
checkbox: true,
|
||||
setValue: "hidden",
|
||||
text: {
|
||||
head: "Reply counter style",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Show 1+ if the replies are more than 1.",
|
||||
value: "hidden"
|
||||
}, {
|
||||
text: "Show 1+ if the replies are more than 1.",
|
||||
value: "all"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "gif",
|
||||
storage: "gif",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Animated GIF images animation",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "tag",
|
||||
storage: "tag-range",
|
||||
checkbox: true,
|
||||
setValue: "local",
|
||||
text: {
|
||||
head: "Tag TL Search",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Use federated network",
|
||||
value: "all"
|
||||
}, {
|
||||
text: "Use local network",
|
||||
value: "local"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "via",
|
||||
storage: "viashow",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Show via",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "mov",
|
||||
storage: "mouseover",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Skrýt akční tlačítka bez přejetí myši",
|
||||
desc: "„Přejetí myši“ pro vás může být nepohodlné :(",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Zobrazit přejetím myši",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Zobrazit kliknutím",
|
||||
value: "click"
|
||||
}, {
|
||||
text: "Ne",
|
||||
value: "no"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "notfm",
|
||||
storage: "setasread",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Show Notification marker, red colored bell and counter(if you show a notification column.)",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "sentence",
|
||||
storage: "sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "lines above or" }
|
||||
}, {
|
||||
id: "letters",
|
||||
storage: "letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "letters above" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "Auto folding",
|
||||
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.",
|
||||
}
|
||||
}, {
|
||||
id: "img-height",
|
||||
storage: "img-height",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 80,
|
||||
setValue: 200,
|
||||
text: {
|
||||
head: "Height of images",
|
||||
desc: "Option:Set \"full\" to uncrop.",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ticker",
|
||||
storage: "ticker_ok",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Enable #InstanceTicker",
|
||||
desc: "Show colorful stickers about the server. <a href=\"https://cdn.weep.me/mastodon/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "anime",
|
||||
storage: "animation",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Animation of timelines",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "replySound",
|
||||
storage: "replySound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Sound(Reply)",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}, {
|
||||
id: "favSound",
|
||||
storage: "favSound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Sound(Fav)",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}, {
|
||||
id: "btSound",
|
||||
storage: "btSound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Sound(Boost)",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}, {
|
||||
id: "followSound",
|
||||
storage: "followSound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Sound(Follow)",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}
|
||||
];
|
||||
var postConstruction = [
|
||||
{
|
||||
id: "cw-text",
|
||||
storage: "cw-text",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 150,
|
||||
setValue: "",
|
||||
text: {
|
||||
head: "Default warining text",
|
||||
desc: "",
|
||||
after: ""
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "cw_sentence",
|
||||
storage: "cw_sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "lines above or" }
|
||||
}, {
|
||||
id: "cw_letters",
|
||||
storage: "cw_letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "letters above" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "Alert before posting a long toot.",
|
||||
desc: "Show dialog whether you make too-long text hidden.",
|
||||
}
|
||||
}, {
|
||||
id: "cws",
|
||||
storage: "always-cw",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Always CW set",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "vis",
|
||||
storage: "vis",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "Výchozí viditelnost",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Veřejné",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "Neuvedené",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "Soukromé",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "Přímé",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "Memory(memorized as each server)",
|
||||
value: "memory"
|
||||
}, {
|
||||
text: "Default of your visibility(Set on preferences of Mastodon server)",
|
||||
value: "useapi"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "img",
|
||||
storage: "img",
|
||||
checkbox: true,
|
||||
setValue: "no-act",
|
||||
text: {
|
||||
head: "Posting images preferences",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Insert media URL",
|
||||
value: "url"
|
||||
}, {
|
||||
text: "Insert nothig",
|
||||
value: "no-act"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "box",
|
||||
storage: "box",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Action of posting-box",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Folding",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Open after posting",
|
||||
value: "no"
|
||||
}, {
|
||||
text: "Absolutely open",
|
||||
value: "absolute"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "quote",
|
||||
storage: "quote",
|
||||
checkbox: true,
|
||||
setValue: "nothing",
|
||||
text: {
|
||||
head: "Quote format",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Only URL",
|
||||
value: "simple"
|
||||
}, {
|
||||
text: "URL and acct(mention to the user)",
|
||||
value: "mention"
|
||||
}, {
|
||||
text: "URL, text and acct(mention to the user)",
|
||||
value: "full"
|
||||
}, {
|
||||
text: "Disabled(Hide buttons on TLs)",
|
||||
value: "nothing"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "main",
|
||||
storage: "mainuse",
|
||||
checkbox: true,
|
||||
setValue: "remain",
|
||||
text: {
|
||||
head: "Default accounts of actions",
|
||||
desc: "Main account can be set on Account Manager.",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Account you used recently",
|
||||
value: "remain"
|
||||
}, {
|
||||
text: "Main account",
|
||||
value: "main"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "sec",
|
||||
storage: "sec",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "Secondary Toot Button",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Hidden",
|
||||
value: "nothing"
|
||||
}, {
|
||||
text: "Veřejné",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "Neuvedené",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "Soukromé",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "Přímé",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "Local Only",
|
||||
value: "local",
|
||||
kirishima: true,
|
||||
kirishimaText: "非対応インスタンスでは「未収載」になります。"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "zero",
|
||||
storage: "emoji-zero-width",
|
||||
checkbox: true,
|
||||
setValue: "normal",
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Zero-width space when inserting emojis",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,254 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="cs">
|
||||
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Open Sans';
|
||||
-webkit-app-region: drag;
|
||||
cursor: move;
|
||||
padding: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#start {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100vw;
|
||||
height: calc(100vh - 2.5rem);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#checkbox {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
a,
|
||||
button,
|
||||
input,
|
||||
label,
|
||||
i {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
|
||||
#updskip {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.skipbtn {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px solid;
|
||||
margin-left: 5px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1px solid;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.skipbtn:hover {
|
||||
background-color: #b3e5fc;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#prog {
|
||||
font-size: 200%;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||
<!--a href="update.html">Reload</a-->
|
||||
<div id="start">
|
||||
<div id="box" class="show">
|
||||
<h2>TheDesk</h2>
|
||||
<p>Získejte nejnovější TheDesk</p>
|
||||
<span id="now"></span>→<b id="ver"></b><br>
|
||||
<span id="det"></span><br>
|
||||
<button class="waves-effect btn windows hide" onclick="update('install')"
|
||||
style="margin-left:15px;">Verze instalátoru</button>
|
||||
<button class="waves-effect btn windows hide" onclick="update('portable')"
|
||||
style="margin-left:15px;">Přenosná verze</button>
|
||||
<button class="waves-effect btn linux hide" onclick="update('linux')"
|
||||
style="margin-left:15px;">Začít</button>
|
||||
<button class="waves-effect btn mac hide" onclick="update('mac')"
|
||||
style="margin-left:15px;">Začít</button>
|
||||
<br>
|
||||
Máte problémy?<br>Prosím stáhněte si aktualizaci na <a href=\"https://thedesk.top\">oficiální stránce</a>.
|
||||
</div>
|
||||
<div id="skipper" class="hide">
|
||||
<h4>Můžete ztratit úžasné nové funkce!</h4>
|
||||
Přeskočit tuto aktualizaci<br>
|
||||
<div id="updskip">
|
||||
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||
<div>Do dalšího načtení časové osy</div>
|
||||
</a>
|
||||
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||
<div>Do příští verze</div>
|
||||
</a>
|
||||
</div>
|
||||
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">Pokračovat v aktualizaci</a>
|
||||
</div>
|
||||
<div id="dlnow" class="hide">
|
||||
<h4>Stahuji...</h4>
|
||||
<h4 id="prog"></h4>
|
||||
<div class="progress">
|
||||
<div class="determinate" style="width: 0%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script>
|
||||
function skipper() {
|
||||
$("#dlnow").addClass("hide");
|
||||
$("#box").toggleClass("show");
|
||||
if ($("#box").hasClass("hide") && $("#skipper").hasClass("hide")) {
|
||||
$("#skipper").removeClass("hide");
|
||||
$("#skipper").addClass("show");
|
||||
} else {
|
||||
$("#box").toggleClass("hide");
|
||||
$("#skipper").toggleClass("hide");
|
||||
$("#skipper").toggleClass("show");
|
||||
}
|
||||
}
|
||||
verck();
|
||||
function update(sel) {
|
||||
$("#box").toggleClass("show");
|
||||
$("#box").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("show");
|
||||
$("#prog").text("");
|
||||
var bit = localStorage.getItem("bit");
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
if (sel == "install") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64"];
|
||||
var file = "TheDesk-setup.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32"];
|
||||
var file = "TheDesk-setup-ia32.exe";
|
||||
}
|
||||
} else if (sel == "portable") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64p"];
|
||||
var file = "TheDesk.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32p"];
|
||||
var file = "TheDesk-ia32.exe";
|
||||
}
|
||||
} else if (sel == "linux") {
|
||||
if (bit == "x64") {
|
||||
var url = json["linuxx64"];
|
||||
var file = "TheDesk-linux-x64.zip";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["linuxia64"];
|
||||
var file = "TheDesk-linux-ia32.zip";
|
||||
}
|
||||
} else if (sel == "mac") {
|
||||
var url = json["mac"];
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
}
|
||||
postMessage(["downloadButton", [url, file]], "*")
|
||||
});
|
||||
|
||||
}
|
||||
function quit() {
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
function updateProg(arg) {
|
||||
console.log(arg);
|
||||
$(".determinate").css("width", arg * 100 + "%");
|
||||
$("#prog").text(Math.floor(arg * 100) + "%");
|
||||
}
|
||||
function updateMess(arg) {
|
||||
console.log(arg);
|
||||
$("#prog").text(arg);
|
||||
}
|
||||
function verck() {
|
||||
var platform = localStorage.getItem("platform");
|
||||
var bit = localStorage.getItem("bit");
|
||||
if (platform == "win32") {
|
||||
$('.windows').removeClass("hide")
|
||||
} else if (platform == "linux") {
|
||||
$('.linux').removeClass("hide")
|
||||
} else if (platform == "darwin") {
|
||||
$('.mac').removeClass("hide")
|
||||
}
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
console.log(json);
|
||||
if (platform == "win32") {
|
||||
$("#ver").text(json.desk);
|
||||
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 = "cs";
|
||||
if (lang == "ja") {
|
||||
$("#det").html(json.detail);
|
||||
} else {
|
||||
$("#det").html(json.detail_en);
|
||||
}
|
||||
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
|
||||
});
|
||||
}
|
||||
function nextv() {
|
||||
localStorage.setItem("new-ver-skip", "true");
|
||||
window.close();
|
||||
}
|
||||
function enc(ver) {
|
||||
var ver = ver.replace(/\s/g, "");
|
||||
var ver = ver.replace(/\(/g, "-");
|
||||
var ver = ver.replace(/\)/g, "");
|
||||
var ver = ver.replace(/\[/g, "_");
|
||||
var ver = ver.replace(/\]/g, "");
|
||||
return ver;
|
||||
}
|
||||
</script>
|
|
@ -1,158 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="de">
|
||||
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<style>
|
||||
.acct {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 400px;
|
||||
background-color: #9e9e9e;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
#acct-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
color: white;
|
||||
align-items: flex-start
|
||||
}
|
||||
|
||||
.lts {
|
||||
font-size: 150%
|
||||
}
|
||||
|
||||
.colorsel {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.card .colorsel div:not(.exc) {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.card .colorsel div.exc {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.first {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.first .hide-first {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.de.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false;
|
||||
</script>
|
||||
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<div class="hide-first">
|
||||
<a href="index.html" class="btn waves-effect orange nex"
|
||||
style="width:100%; max-width:200px;">Zurück</a><br>
|
||||
<h5>Konten</h5>
|
||||
<div id="acct-list"></div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
<div>
|
||||
<h5>Konto hinzufügen</h5><br>
|
||||
<div id="add">
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
Uncheck it to skip pasiting code.(login to Mastodon on Windows or macOS) (Recommended: pcheck)<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>Code-Setup</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>Als Misskey anmelden</span>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
<span style="font-family:Open Sans;">Supports</span>
|
||||
<div id="support" class="collection transparent"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="auth" style="display:none">
|
||||
Fügen Sie den Code ein und schließen Sie den Browser.<br>
|
||||
<input type="text" id="code" placeholder="Code">
|
||||
<button class="btn waves-effect" onclick="code()">Auth</button><br>
|
||||
</div>
|
||||
<div id="misskeylogin" style="display:none">
|
||||
<h5>AppSecret</h5>
|
||||
Lies die <a href=\"https://thedesk.top/how-to-misskey-login.html\">Doku (japanisch)</a> um dich bei Misskey einzuloggen.<br>
|
||||
<input type="hidden" id="misskey-url">
|
||||
<input type="text" id="misskey-key" placeholder="Code">
|
||||
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide-first">
|
||||
<h5>Hauptkonto</h5>
|
||||
<div class="input-field" style="width:300px"><span data-trans="your_acct">Konto auswählen</span>
|
||||
<br>
|
||||
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
|
||||
<label></label>
|
||||
</div>
|
||||
Some instance data by <a href="https://instances.social" target="_blank">instances.social API</a><br>
|
||||
<h5 id="ins-title"></h5>
|
||||
Administered by:<a id="ins-admin"></a><br>
|
||||
<span id="ins-desc"></span><br>
|
||||
<img src="../../img/loading.svg" id="ins-prof" width="200"><br>
|
||||
<br>
|
||||
Domain:<span id="ins-name"></span><br>
|
||||
Föderierte Server:<span id="ins-connect"></span><br>
|
||||
Toots:<span id="ins-toot"></span><br>
|
||||
Nutzer:<span id="ins-user"></span>Nutzer<br>
|
||||
Verbindung:<span id="ins-per"></span>%<br>
|
||||
Mastodon Version:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
|
||||
</div>
|
||||
<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/common/sha256.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/tkn.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,476 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="de" style="overflow:scroll">
|
||||
|
||||
<head>
|
||||
<title>Settings - TheDesk</title>
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</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">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
input {
|
||||
max-height: 50px !important
|
||||
}
|
||||
|
||||
.pcr-result {
|
||||
height: 1rem !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body id="mainView" style="overflow-y:scroll">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.de.js"></script>
|
||||
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
|
||||
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||
<script type="text/javascript" src="setting.vue.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
|
||||
<h4>Einstellungen</h4>
|
||||
<ul class="collapsible" data-collapsible="accordion">
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">desktop_windows</i>Systemeinstellungen
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Sprachen</h5>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
|
||||
<a onclick="changelang('ja')" class="pointer" style="margin-right:5px;">日本語</a><a onclick="changelang('en')" class="pointer" style="margin-right:5px;">English</a><a onclick="changelang('ps')" class="pointer" style="margin-right:5px;">Crowdin translate system(beta)</a><a onclick="changelang('bg')" class="pointer" style="margin-right:5px;">български</a><a onclick="changelang('cs')" class="pointer" style="margin-right:5px;">Česky</a><a onclick="changelang('de')" class="pointer" style="margin-right:5px;">Deutsch</a>
|
||||
<h5>Import und Export von Einstellungen</h5>
|
||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||
style="width:100%; max-width:200px;">Export</button>
|
||||
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||
style="width:100%; max-width:200px;">Import</button>
|
||||
<div id="envView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">Benachrichtigungen testen</a><br></template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Ändern</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>Schriftart</h5>
|
||||
Wählen Sie Ihre Lieblingsschrift. 'Select'(nur Windows/ macOS)<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="font()">Auswahl</button><br>
|
||||
<div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div>
|
||||
<br>
|
||||
<input type="text" style="width:150px" id="font">
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="settings()">Speichern</button>
|
||||
<br>
|
||||
<h5>Ordner zum Speichern</h5>
|
||||
TheDesk verwendet diesen Ordner, wenn es versucht Bilder zu speichern oder Screenshots zu machen.<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">Ändern</button>
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">color_lens</i>Designs
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h4>Design auswählen</h4>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<span>Black</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<span>White</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo"
|
||||
value="indigo" />
|
||||
<span>Indigo<span class="imas hide">(エンドレスナイト)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<span>Brown<span class="imas hide">(ビタースイート・タイム)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<span>Green<span class="imas hide">(ユースフルロマンス)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="blue" value="blue" />
|
||||
<span>Blue<span class="imas hide">(渚の花嫁)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom"
|
||||
value="custom" />
|
||||
<span>custom</span>
|
||||
</label>
|
||||
<div style="width:300px" id="sel-selector">
|
||||
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||
</div>
|
||||
<h4>Bearbeiten und hinzufügen von eigenen Designs</h4>
|
||||
<div style="width:300px" id="edit-selector" data-add="Neues hinzufügen">
|
||||
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||
<option value="add_new">Neues hinzufügen</option>
|
||||
</select>
|
||||
</div>
|
||||
<h5>Name</h5>
|
||||
<input type="text" style="width:300px" id="custom_name" placeholder="Name...">
|
||||
<h5>Über dieses Design</h5>
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="Über dieses Design..."></textarea></div>
|
||||
<h5>Farbschema</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||
checked="true" />
|
||||
<span>Dark</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>Hintergrund der Komponenten
|
||||
<div id="color-picker0-wrap">
|
||||
<div class="color-picker" id="color-picker0"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker0_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Secondary</h5>Hintergrundfarbe
|
||||
<div id="color-picker1-wrap">
|
||||
<div class="color-picker" id="color-picker1"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker1_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Texts</h5>Textfarbe
|
||||
<div id="color-picker2-wrap">
|
||||
<div class="color-picker" id="color-picker2"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker2_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Accent</h5>Hintergrund des Boosts
|
||||
<div id="color-picker3-wrap">
|
||||
<div class="color-picker" id="color-picker3"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker3_value">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn-large waves-effect" onclick="customComp()">Ändern</button> <button
|
||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Löschen</button><br><br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
|
||||
placeholder="JSON style" readonly><br>
|
||||
Teilen Sie diesen Code mit anderen TheDesk. Teilen Sie diesen Code nicht mit MiAS.
|
||||
<h4>Import von eigenen Designs</h4>
|
||||
Mehr Designs auf: <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a><br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
|
||||
placeholder="JSON/JSON5 style">
|
||||
<button class="btn waves-effect" onclick="customImp()">Import</button><br>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">reorder</i>Verlaufseinstellungen
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="tlView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Ändern</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>Eigener Ton</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>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">send</i>Einstellungen für Tröts Senden
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="postView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span></label>
|
||||
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Ändern</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">keyboard</i>Tastaturkürzel Einstellungen
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Schnell Einfügen</h5>
|
||||
Sie können Buchstaben und Emojis mit 3-Tasten-Kombination einfügen<br>
|
||||
Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1">
|
||||
<button onclick="oks(1)" class="btn waves-effect" style="width:100px;">Speichern</button><br><br>
|
||||
Ctrl+Shift+2:<input type="text" style="width:150px" id="oks-2">
|
||||
<button onclick="oks(2)" class="btn waves-effect" style="width:100px;">Speichern</button><br><br>
|
||||
Ctrl+Shift+3:<input type="text" style="width:150px" id="oks-3">
|
||||
<button onclick="oks(3)" class="btn waves-effect" style="width:100px;">Speichern</button><br><br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">bookmark</i>Einstellungen für Stumm & Hervorheben
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Client Stumm</h5>
|
||||
<div id="mute-cli"></div>
|
||||
<h5>Client Hervorheben</h5>
|
||||
Klicken Sie auf den Client-Namen des Tröts, um Ausblenden oder Hervorheben umzuschalten.
|
||||
<h5>Wörter Ausblenden</h5>
|
||||
\"Enter\" zum setzen<br>
|
||||
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">Speichern</button>
|
||||
<h5>Wörter Hervorheben</h5>
|
||||
\"Enter\" zum setzen<br>
|
||||
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||
<button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">Speichern</button>
|
||||
<h5>Benutzer Hervorheben</h5>
|
||||
Set on users data modals.
|
||||
<span class="emphasized"> Diese Farbe zum Hervorheben verwenden </span>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="fab fa-spotify"></i>Spotify und NowPlaying Einstellungen
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<br><br>
|
||||
Klick <i class="material-icons" style="font-size:24px;">music_note</i>Symbol für NowPlaying<br>
|
||||
<h5>Kontoverbindung</h5>
|
||||
TheDesk speichert Ihre Daten auf dem thedesk.top Server.<br>
|
||||
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||
onclick="spotifyAuth()" class="btn waves-effect" style="width:100px;">Speichern</button></div>
|
||||
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i
|
||||
class="fa fa-spotify left"></i>Verbinden</a>
|
||||
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
|
||||
class="fa fa-spotify left"></i>Trennen</a>
|
||||
<h5>@@templateedit@@</h5>
|
||||
@@templateeditwarn@@<br>
|
||||
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||
{url}</textarea><br>
|
||||
@@template1@@<br>
|
||||
@@template2@@<br>
|
||||
@@template3@@<br>
|
||||
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">Speichern</button>
|
||||
<h5>Das Artwork von Spotify anhängen</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||
value="yes" />
|
||||
<span>Ja</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||
value="no" />
|
||||
<span>Nein</span>
|
||||
</label>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">hearing</i>Einstellungen Vorlesefunktion
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Geschwindigkeit</h5>
|
||||
1-100(Standard:10)<br>
|
||||
<p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Stimmlage</h5>
|
||||
0-100(Standard:50)<br>
|
||||
<p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Lautstärke</h5>
|
||||
0-100(Standard:100)<br>
|
||||
<p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Test</h5>
|
||||
<input type="text" style="width:350px" id="voicetxt" value="TheDesk ist ein Open-Source Mastodon Client für PC.">
|
||||
<button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()"
|
||||
id="testplay">Abspielen/Stoppen</button><br>
|
||||
<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">Speichern</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i
|
||||
class="material-icons left">undo</i>Zurück</a>
|
||||
<br>
|
||||
<br>Tastenkombinationen
|
||||
<li>Ctrl+1-9:Wechsle zu n(1-9)ten Spalte</li>
|
||||
<li>N:Tröt-Box öffnen</li>
|
||||
<li>X:Tröt-Box umschalten</li>
|
||||
<li>Ctrl+Enter:Senden</li>
|
||||
<li>Ctrl+Enter+Shift:Senden (Zweit-Tröt)</li>
|
||||
<li>Alt+Enter:Zweite Tröt-Tasten</li>
|
||||
<li>Ctrl+E:Markiere alle Benachrichtigungen als gelesen.</li>
|
||||
<li>Ctrl+U:Select the top & left(No.1 column) toot</li>
|
||||
<li>Esc:Tröt-Box ausblenden</li>
|
||||
<li>F5:Alles neu laden</li>
|
||||
<li>Ctrl+Shift+C:Eingabe löschen</li>
|
||||
<li>Ctrl+Shift+S:Einstellungen</li>
|
||||
<li>Ctrl+Shift+M:Kontenverwaltung</li>
|
||||
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||
<li>Ctrl+Shift+P:Ausgewähltes Profil anzeigen</li>
|
||||
<li>←/→:Nächstes oder vorheriges Bild anzeigen</li>
|
||||
<li>Mousewheel:Zoom a image</li>
|
||||
<div class="hide kirishima">
|
||||
以下Markdownに対応したインスタンスのみ。
|
||||
<br>
|
||||
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||
以下アスタルテにログインしている場合のみ
|
||||
<br>
|
||||
<li>Ctrl+R:
|
||||
<a href="https://astarte.thedesk.top">アスタルテ暇人ランキング</a>を開く
|
||||
</li><br>
|
||||
Wenn ein Tröt ausgewählt ist:
|
||||
<li>F:Diesen Tröt favorisieren</li>
|
||||
<li>B:Diesen Tröt verstärken</li>
|
||||
<li>R:Auf diesen Tröt antworten</li>
|
||||
</div>
|
||||
<button class="btn waves-effect red" style="width:100%; max-width:500px;"
|
||||
onclick="if(confirm('Alle Daten löschen. Kein Rückgängig mehr möglich! Fortfahren?')){ localStorage.clear(); location.href='index.html'; }"><i
|
||||
class="material-icons left">delete</i>Reset(Gefährlich)</button><br><br>
|
||||
<button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">info</i>Über TheDesk</button>
|
||||
<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>Homepage</a>
|
||||
<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>Unterstützen(Pixiv FANBOX)</a>
|
||||
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>Unterstützen(Patreon)</a>
|
||||
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||
style="width:100%; max-width:500px; background-color: #f6c915"><i class="material-icons left">trending_up</i>Unterstützen(Liberapay)</a>
|
||||
<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>Hilfe/Docs</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fab fa-github left"></i>GitHub</a>
|
||||
<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="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||
class="pointer">Nach Updates suchen</a><br>
|
||||
<a href="oss.html">OSS License</a><br>
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
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
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
|
@ -1,552 +0,0 @@
|
|||
var yesno = [
|
||||
{
|
||||
text: "Ja",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Nein",
|
||||
value: "no"
|
||||
}
|
||||
];
|
||||
var sound = [
|
||||
{
|
||||
text: "Ohne",
|
||||
value: "none"
|
||||
}, {
|
||||
text: "Standard",
|
||||
value: "default"
|
||||
}, {
|
||||
text: "Custom 1",
|
||||
value: "c1"
|
||||
}, {
|
||||
text: "Custom 2",
|
||||
value: "c2"
|
||||
}, {
|
||||
text: "Custom 3",
|
||||
value: "c3"
|
||||
}, {
|
||||
text: "Custom 4",
|
||||
value: "c4"
|
||||
}
|
||||
];
|
||||
var envConstruction = [
|
||||
{
|
||||
id: "popup",
|
||||
storage: "popup",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 0,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "Popup-Benachrichtigung(unter Windows)",
|
||||
desc: "Bei \"0\" Ausgeschaltet.",
|
||||
after: "Sek"
|
||||
}
|
||||
}, {
|
||||
id: "notf",
|
||||
storage: "nativenotf",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "System Benachrichtigungen",
|
||||
desc: "Dies funktioniert nicht mit der Portablen Windows Version.",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "width",
|
||||
storage: "width",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 300,
|
||||
text: {
|
||||
head: "Minimale Breite der Spalten",
|
||||
desc: "Die Scroll-Leiste wird angezeigt, wenn Spalten breiter als das Fenster sind.",
|
||||
after: "px über"
|
||||
}
|
||||
}, {
|
||||
id: "fixwidth",
|
||||
storage: "fixwidth",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 300,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "Minimale Breite des TweetDeck-Browsers",
|
||||
desc: "",
|
||||
after: "px über"
|
||||
}
|
||||
}, {
|
||||
id: "size",
|
||||
storage: "size",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 13,
|
||||
text: {
|
||||
head: "Schriftgröße",
|
||||
desc: "<span style=\"font-size:13px\">13px(Absoluter Wert)</span>",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ha",
|
||||
storage: "ha",
|
||||
checkbox: true,
|
||||
setValue: false,
|
||||
text: {
|
||||
head: "Hardwarebeschleunigung deaktivieren",
|
||||
desc: "Automatischer Neustart",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Ja",
|
||||
value: "true"
|
||||
}, {
|
||||
text: "Nein",
|
||||
value: "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
];
|
||||
var tlConstruction = [
|
||||
{
|
||||
id: "time",
|
||||
storage: "datetype",
|
||||
checkbox: true,
|
||||
setValue: "absolute",
|
||||
text: {
|
||||
head: "Zeitformat",
|
||||
desc: "Relatives Format:\"vor 1 Minuten\",\"vor 3 Tagen\"<br>Absolutes Format:\"23:25:21\",\"2017/12/30 23:59:00\"<br>Gemischtes Format:Die heute geposteten Zahn sind relativ formatiert, andere sind absolut formatiert.",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Relativ",
|
||||
value: "relative"
|
||||
}, {
|
||||
text: "Absolut",
|
||||
value: "absolute"
|
||||
}, {
|
||||
text: "Sowohl relativ als auch absolut",
|
||||
value: "double"
|
||||
}, {
|
||||
text: "Gemischt",
|
||||
value: "medium"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "ul",
|
||||
storage: "locale",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Server's unique locale",
|
||||
desc: "Dieser Wert ist auf einigen japanischen Servern verfügbar",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "nsfw",
|
||||
storage: "nsfw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "NSFW Bilder ausblenden",
|
||||
desc: "Starker Unschärfeeffekt",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "cw",
|
||||
storage: "cw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Hide CW contents",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "rp",
|
||||
storage: "replyct",
|
||||
checkbox: true,
|
||||
setValue: "hidden",
|
||||
text: {
|
||||
head: "Aussehen der Antwortzähler",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "1+ anzeigen, bei mehr als einer Antworten.",
|
||||
value: "hidden"
|
||||
}, {
|
||||
text: "1+ anzeigen, bei mehr als einer Antworten.",
|
||||
value: "all"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "gif",
|
||||
storage: "gif",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Animierte GIF-Bilder abspielen",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "tag",
|
||||
storage: "tag-range",
|
||||
checkbox: true,
|
||||
setValue: "local",
|
||||
text: {
|
||||
head: "Suche im Tag-Verlauf",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Auch in Verbundenen Netzwerken",
|
||||
value: "all"
|
||||
}, {
|
||||
text: "Nur im lokalen Netzwerk",
|
||||
value: "local"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "via",
|
||||
storage: "viashow",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Show via",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "mov",
|
||||
storage: "mouseover",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Aktionsbuttons ausblenden wenn der Mauszeiger weg ist.",
|
||||
desc: "Du wirst vielleicht das Gefühl haben, dass \"Mouseover\" unangenehm ist :-(",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Maus drüber zum Anzeigen",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Klicken um anzuzeigen",
|
||||
value: "click"
|
||||
}, {
|
||||
text: "Nein",
|
||||
value: "no"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "notfm",
|
||||
storage: "setasread",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Benachrichtigungs-Markierung, rote Klingel und Zähler anzeigen(wenn Sie eine Benachrichtigungsspalte haben.)",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "sentence",
|
||||
storage: "sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "Zeilen über oder" }
|
||||
}, {
|
||||
id: "letters",
|
||||
storage: "letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "Buchstaben über" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "Automatisches Zusammenfalten",
|
||||
desc: "TheDesk faltet nicht Tröts von 5 Zeichen oder weniger. Zusammengefaltet, werden keine Zeilen angezeigt. TheDesk zählen nur richtige Zeilen. (Zeilenumbrüche nicht.)",
|
||||
}
|
||||
}, {
|
||||
id: "img-height",
|
||||
storage: "img-height",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 80,
|
||||
setValue: 200,
|
||||
text: {
|
||||
head: "Höhe der Bilder",
|
||||
desc: "Option:Setze \"full\" für Unbeschnitten.",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ticker",
|
||||
storage: "ticker_ok",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Aktiviere #InstanceTicker",
|
||||
desc: "Zeigt bunte Sticker über den Server. <a href=\"https://wee.jp/\">Über #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "anime",
|
||||
storage: "animation",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Animation der Verläufe",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "replySound",
|
||||
storage: "replySound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Ton bei Antwort",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}, {
|
||||
id: "favSound",
|
||||
storage: "favSound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Ton bei Favorit",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}, {
|
||||
id: "btSound",
|
||||
storage: "btSound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Ton bei Verstärkung",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}, {
|
||||
id: "followSound",
|
||||
storage: "followSound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Ton bei Folgen",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}
|
||||
];
|
||||
var postConstruction = [
|
||||
{
|
||||
id: "cw-text",
|
||||
storage: "cw-text",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 150,
|
||||
setValue: "",
|
||||
text: {
|
||||
head: "Standard Warnung",
|
||||
desc: "",
|
||||
after: ""
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "cw_sentence",
|
||||
storage: "cw_sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "Zeilen über oder" }
|
||||
}, {
|
||||
id: "cw_letters",
|
||||
storage: "cw_letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "Buchstaben über" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "Warnung vor dem Versenden eines langen Toots.",
|
||||
desc: "Dialog anzeigen, ob Sie den zu langen Text verstecken möchten.",
|
||||
}
|
||||
}, {
|
||||
id: "cws",
|
||||
storage: "always-cw",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Always CW set",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "vis",
|
||||
storage: "vis",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "Standardsichtbarkeit",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Öffentlich",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "Nicht aufgeführt",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "Privat",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "Direkt",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "Merken (bei jeden Server gespeichert)",
|
||||
value: "memory"
|
||||
}, {
|
||||
text: "Ihrer Standard-Sichtbarkeit (Einstellungen des Mastodon-Servers setzen)",
|
||||
value: "useapi"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "img",
|
||||
storage: "img",
|
||||
checkbox: true,
|
||||
setValue: "no-act",
|
||||
text: {
|
||||
head: "Bilder-Einstellungen fürs Senden",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "MedienURL einfügen",
|
||||
value: "url"
|
||||
}, {
|
||||
text: "Nichts einfügen",
|
||||
value: "no-act"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "box",
|
||||
storage: "box",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Verhalten der Posting-Box",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Zusammengeklappt",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Nach dem Posting offen",
|
||||
value: "no"
|
||||
}, {
|
||||
text: "Alles geöffnet",
|
||||
value: "absolute"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "quote",
|
||||
storage: "quote",
|
||||
checkbox: true,
|
||||
setValue: "nothing",
|
||||
text: {
|
||||
head: "Zitierformat",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Nur URL",
|
||||
value: "simple"
|
||||
}, {
|
||||
text: "URL und Name (Hinweis auf den Benutzer)",
|
||||
value: "mention"
|
||||
}, {
|
||||
text: "URL, Text und Name(Hinweis auf den Benutzer)",
|
||||
value: "full"
|
||||
}, {
|
||||
text: "Deaktiviert (Taste in Verlauf ausgeblendet)",
|
||||
value: "nothing"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "main",
|
||||
storage: "mainuse",
|
||||
checkbox: true,
|
||||
setValue: "remain",
|
||||
text: {
|
||||
head: "Standard-Konto für Aktionen",
|
||||
desc: "Das Hauptkonto kann in der Kontoverwaltung gestellt werden.",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Konto, das Sie kürzlich verwendet haben",
|
||||
value: "remain"
|
||||
}, {
|
||||
text: "Hauptkonto",
|
||||
value: "main"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "sec",
|
||||
storage: "sec",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "Zweite Tröt-Tasten",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Versteckt",
|
||||
value: "nothing"
|
||||
}, {
|
||||
text: "Öffentlich",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "Nicht aufgeführt",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "Privat",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "Direkt",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "Nur lokal",
|
||||
value: "local",
|
||||
kirishima: true,
|
||||
kirishimaText: "非対応インスタンスでは「未収載」になります。"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "zero",
|
||||
storage: "emoji-zero-width",
|
||||
checkbox: true,
|
||||
setValue: "normal",
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Emojis ohne Abstand Einfügen",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,254 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="de">
|
||||
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Open Sans';
|
||||
-webkit-app-region: drag;
|
||||
cursor: move;
|
||||
padding: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#start {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100vw;
|
||||
height: calc(100vh - 2.5rem);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#checkbox {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
a,
|
||||
button,
|
||||
input,
|
||||
label,
|
||||
i {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
|
||||
#updskip {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.skipbtn {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px solid;
|
||||
margin-left: 5px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1px solid;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.skipbtn:hover {
|
||||
background-color: #b3e5fc;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#prog {
|
||||
font-size: 200%;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||
<!--a href="update.html">Reload</a-->
|
||||
<div id="start">
|
||||
<div id="box" class="show">
|
||||
<h2>TheDesk</h2>
|
||||
<p>Neusten TheDesk holen.</p>
|
||||
<span id="now"></span>→<b id="ver"></b><br>
|
||||
<span id="det"></span><br>
|
||||
<button class="waves-effect btn windows hide" onclick="update('install')"
|
||||
style="margin-left:15px;">Installer Version</button>
|
||||
<button class="waves-effect btn windows hide" onclick="update('portable')"
|
||||
style="margin-left:15px;">Portable Version</button>
|
||||
<button class="waves-effect btn linux hide" onclick="update('linux')"
|
||||
style="margin-left:15px;">Start</button>
|
||||
<button class="waves-effect btn mac hide" onclick="update('mac')"
|
||||
style="margin-left:15px;">Start</button>
|
||||
<br>
|
||||
Gibt es Probleme?<br>Bitte von <a href=\"https://thedesk.top\">Offizielle Homepage</a> herunterladen.
|
||||
</div>
|
||||
<div id="skipper" class="hide">
|
||||
<h4>Du kannst ein cooles Erlebnis verpassen!</h4>
|
||||
Update überspringen<br>
|
||||
<div id="updskip">
|
||||
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||
<div>Bis zur nächsten Verlaufsaktualisierung</div>
|
||||
</a>
|
||||
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||
<div>Bis zur nächsten Version</div>
|
||||
</a>
|
||||
</div>
|
||||
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">Aktualisieren fortsetzen</a>
|
||||
</div>
|
||||
<div id="dlnow" class="hide">
|
||||
<h4>Herunterladen...</h4>
|
||||
<h4 id="prog"></h4>
|
||||
<div class="progress">
|
||||
<div class="determinate" style="width: 0%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script>
|
||||
function skipper() {
|
||||
$("#dlnow").addClass("hide");
|
||||
$("#box").toggleClass("show");
|
||||
if ($("#box").hasClass("hide") && $("#skipper").hasClass("hide")) {
|
||||
$("#skipper").removeClass("hide");
|
||||
$("#skipper").addClass("show");
|
||||
} else {
|
||||
$("#box").toggleClass("hide");
|
||||
$("#skipper").toggleClass("hide");
|
||||
$("#skipper").toggleClass("show");
|
||||
}
|
||||
}
|
||||
verck();
|
||||
function update(sel) {
|
||||
$("#box").toggleClass("show");
|
||||
$("#box").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("show");
|
||||
$("#prog").text("");
|
||||
var bit = localStorage.getItem("bit");
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
if (sel == "install") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64"];
|
||||
var file = "TheDesk-setup.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32"];
|
||||
var file = "TheDesk-setup-ia32.exe";
|
||||
}
|
||||
} else if (sel == "portable") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64p"];
|
||||
var file = "TheDesk.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32p"];
|
||||
var file = "TheDesk-ia32.exe";
|
||||
}
|
||||
} else if (sel == "linux") {
|
||||
if (bit == "x64") {
|
||||
var url = json["linuxx64"];
|
||||
var file = "TheDesk-linux-x64.zip";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["linuxia64"];
|
||||
var file = "TheDesk-linux-ia32.zip";
|
||||
}
|
||||
} else if (sel == "mac") {
|
||||
var url = json["mac"];
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
}
|
||||
postMessage(["downloadButton", [url, file]], "*")
|
||||
});
|
||||
|
||||
}
|
||||
function quit() {
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
function updateProg(arg) {
|
||||
console.log(arg);
|
||||
$(".determinate").css("width", arg * 100 + "%");
|
||||
$("#prog").text(Math.floor(arg * 100) + "%");
|
||||
}
|
||||
function updateMess(arg) {
|
||||
console.log(arg);
|
||||
$("#prog").text(arg);
|
||||
}
|
||||
function verck() {
|
||||
var platform = localStorage.getItem("platform");
|
||||
var bit = localStorage.getItem("bit");
|
||||
if (platform == "win32") {
|
||||
$('.windows').removeClass("hide")
|
||||
} else if (platform == "linux") {
|
||||
$('.linux').removeClass("hide")
|
||||
} else if (platform == "darwin") {
|
||||
$('.mac').removeClass("hide")
|
||||
}
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
console.log(json);
|
||||
if (platform == "win32") {
|
||||
$("#ver").text(json.desk);
|
||||
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 = "de";
|
||||
if (lang == "ja") {
|
||||
$("#det").html(json.detail);
|
||||
} else {
|
||||
$("#det").html(json.detail_en);
|
||||
}
|
||||
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
|
||||
});
|
||||
}
|
||||
function nextv() {
|
||||
localStorage.setItem("new-ver-skip", "true");
|
||||
window.close();
|
||||
}
|
||||
function enc(ver) {
|
||||
var ver = ver.replace(/\s/g, "");
|
||||
var ver = ver.replace(/\(/g, "-");
|
||||
var ver = ver.replace(/\)/g, "");
|
||||
var ver = ver.replace(/\[/g, "_");
|
||||
var ver = ver.replace(/\]/g, "");
|
||||
return ver;
|
||||
}
|
||||
</script>
|
|
@ -1,158 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<style>
|
||||
.acct {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 400px;
|
||||
background-color: #9e9e9e;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
#acct-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
color: white;
|
||||
align-items: flex-start
|
||||
}
|
||||
|
||||
.lts {
|
||||
font-size: 150%
|
||||
}
|
||||
|
||||
.colorsel {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.card .colorsel div:not(.exc) {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.card .colorsel div.exc {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.first {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.first .hide-first {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.en.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false;
|
||||
</script>
|
||||
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<div class="hide-first">
|
||||
<a href="index.html" class="btn waves-effect orange nex"
|
||||
style="width:100%; max-width:200px;">Back</a><br>
|
||||
<h5>List of accounts</h5>
|
||||
<div id="acct-list"></div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
<div>
|
||||
<h5>Add an account</h5><br>
|
||||
<div id="add">
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
Uncheck it to skip pasiting code.(login to Mastodon on Windows or macOS) (Recommended: pcheck)<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>Code setup</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>Login as Misskey</span>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
<span style="font-family:Open Sans;">Supports</span>
|
||||
<div id="support" class="collection transparent"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="auth" style="display:none">
|
||||
Paste the code and close browser.<br>
|
||||
<input type="text" id="code" placeholder="Code">
|
||||
<button class="btn waves-effect" onclick="code()">Auth</button><br>
|
||||
</div>
|
||||
<div id="misskeylogin" style="display:none">
|
||||
<h5>AppSecret</h5>
|
||||
Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.<br>
|
||||
<input type="hidden" id="misskey-url">
|
||||
<input type="text" id="misskey-key" placeholder="Code">
|
||||
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide-first">
|
||||
<h5>Main an account</h5>
|
||||
<div class="input-field" style="width:300px"><span data-trans="your_acct">Select an account</span>
|
||||
<br>
|
||||
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
|
||||
<label></label>
|
||||
</div>
|
||||
Some instance data by <a href="https://instances.social" target="_blank">instances.social API</a><br>
|
||||
<h5 id="ins-title"></h5>
|
||||
Administered by:<a id="ins-admin"></a><br>
|
||||
<span id="ins-desc"></span><br>
|
||||
<img src="../../img/loading.svg" id="ins-prof" width="200"><br>
|
||||
<br>
|
||||
Domain:<span id="ins-name"></span><br>
|
||||
Federated servers:<span id="ins-connect"></span><br>
|
||||
Toots:<span id="ins-toot"></span><br>
|
||||
Users:<span id="ins-user"></span>Users<br>
|
||||
Connection:<span id="ins-per"></span>%<br>
|
||||
Mastodon version:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
|
||||
</div>
|
||||
<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/common/sha256.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/tkn.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,900 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="ja">
|
||||
<head>
|
||||
<title>OSS License - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans|IBM+Plex+Mono" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body style="overflow-y:scroll;">
|
||||
<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/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>
|
||||
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">
|
||||
<h5>TheDesk</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/cutls/TheDesk" target="_blank">cutls/TheDesk</a><br>
|
||||
<p style="text-align:center">GNU GENERAL PUBLIC LICENSE<br>
|
||||
Version 3, 29 June 2007</p>
|
||||
<a onclick="$('#thedesk,.trigger').toggleClass('hide')" class="pointer trigger">Show(About 5000 words)</a><br>
|
||||
<div class="hide" id="thedesk">
|
||||
<a onclick="$('#thedesk,.trigger').toggleClass('hide')" class="pointer trigger hide">Hide</a><br>
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. < http://fsf.org/ >
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.<br>
|
||||
<br>
|
||||
<p style="text-align:center">Preamble</p>
|
||||
<br>
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.<br>
|
||||
<br>
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.<br>
|
||||
<br>
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.<br>
|
||||
<br>
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.<br>
|
||||
<br>
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.<br>
|
||||
<br>
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.<br>
|
||||
<br>
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.<br>
|
||||
<br>
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.<br>
|
||||
<br>
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.<br>
|
||||
<br>
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.<br>
|
||||
<br>
|
||||
<p style="text-align:center">TERMS AND CONDITIONS</p>
|
||||
<br>
|
||||
0. Definitions.<br>
|
||||
<br>
|
||||
"This License" refers to version 3 of the GNU General Public License.<br>
|
||||
<br>
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.<br>
|
||||
<br>
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.<br>
|
||||
<br>
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.<br>
|
||||
<br>
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.<br>
|
||||
<br>
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.<br>
|
||||
<br>
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.<br>
|
||||
<br>
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.<br>
|
||||
<br>
|
||||
1. Source Code.<br>
|
||||
<br>
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.<br>
|
||||
<br>
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.<br>
|
||||
<br>
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.<br>
|
||||
<br>
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.<br>
|
||||
<br>
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.<br>
|
||||
<br>
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.<br>
|
||||
<br>
|
||||
2. Basic Permissions.<br>
|
||||
<br>
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.<br>
|
||||
<br>
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.<br>
|
||||
<br>
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.<br>
|
||||
<br>
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.<br>
|
||||
<br>
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.<br>
|
||||
<br>
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.<br>
|
||||
<br>
|
||||
4. Conveying Verbatim Copies.<br>
|
||||
<br>
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.<br>
|
||||
<br>
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.<br>
|
||||
<br>
|
||||
5. Conveying Modified Source Versions.<br>
|
||||
<br>
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:<br>
|
||||
<br>
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.<br>
|
||||
<br>
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".<br>
|
||||
<br>
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.<br>
|
||||
<br>
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.<br>
|
||||
<br>
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.<br>
|
||||
<br>
|
||||
6. Conveying Non-Source Forms.<br>
|
||||
<br>
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:<br>
|
||||
<br>
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.<br>
|
||||
<br>
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.<br>
|
||||
<br>
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.<br>
|
||||
<br>
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.<br>
|
||||
<br>
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.<br>
|
||||
<br>
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.<br>
|
||||
<br>
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.<br>
|
||||
<br>
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.<br>
|
||||
<br>
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).<br>
|
||||
<br>
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.<br>
|
||||
<br>
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.<br>
|
||||
<br>
|
||||
7. Additional Terms.<br>
|
||||
<br>
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.<br>
|
||||
<br>
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.<br>
|
||||
<br>
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:<br>
|
||||
<br>
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or<br>
|
||||
<br>
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or<br>
|
||||
<br>
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or<br>
|
||||
<br>
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or<br>
|
||||
<br>
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or<br>
|
||||
<br>
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.<br>
|
||||
<br>
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.<br>
|
||||
<br>
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.<br>
|
||||
<br>
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.<br>
|
||||
<br>
|
||||
8. Termination.<br>
|
||||
<br>
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).<br>
|
||||
<br>
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.<br>
|
||||
<br>
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.<br>
|
||||
<br>
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.<br>
|
||||
<br>
|
||||
9. Acceptance Not Required for Having Copies.<br>
|
||||
<br>
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.<br>
|
||||
<br>
|
||||
10. Automatic Licensing of Downstream Recipients.<br>
|
||||
<br>
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.<br>
|
||||
<br>
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.<br>
|
||||
<br>
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.<br>
|
||||
<br>
|
||||
11. Patents.<br>
|
||||
<br>
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".<br>
|
||||
<br>
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.<br>
|
||||
<br>
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.<br>
|
||||
<br>
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.<br>
|
||||
<br>
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.<br>
|
||||
<br>
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.<br>
|
||||
<br>
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.<br>
|
||||
<br>
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.<br>
|
||||
<br>
|
||||
12. No Surrender of Others' Freedom.<br>
|
||||
<br>
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.<br>
|
||||
<br>
|
||||
13. Use with the GNU Affero General Public License.<br>
|
||||
<br>
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.<br>
|
||||
<br>
|
||||
14. Revised Versions of this License.<br>
|
||||
<br>
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.<br>
|
||||
<br>
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.<br>
|
||||
<br>
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.<br>
|
||||
<br>
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.<br>
|
||||
<br>
|
||||
15. Disclaimer of Warranty.<br>
|
||||
<br>
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.<br>
|
||||
<br>
|
||||
16. Limitation of Liability.<br>
|
||||
<br>
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.<br>
|
||||
<br>
|
||||
17. Interpretation of Sections 15 and 16.<br>
|
||||
<br>
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.<br>
|
||||
<br>
|
||||
<p style="text-align:center">END OF TERMS AND CONDITIONS</p>
|
||||
<p style="text-align:center">How to Apply These Terms to Your New Programs</p>
|
||||
<br>
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.<br>
|
||||
<br>
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.<br>
|
||||
<br>
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author><br>
|
||||
<br>
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.<br>
|
||||
<br>
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.<br>
|
||||
<br>
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.<br>
|
||||
<br>
|
||||
Also add information on how to contact you by electronic and paper mail.<br>
|
||||
<br>
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:<br>
|
||||
<br>
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.<br>
|
||||
<br>
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".<br>
|
||||
<br>
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.<br>
|
||||
<br>
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
< http://www.gnu.org/philosophy/why-not-lgpl.html >.<br>
|
||||
<br>
|
||||
<a onclick="$('#thedesk,.trigger').toggleClass('hide')" class="pointer trigger hide">Hide</a>
|
||||
</div>
|
||||
<h5>Electron</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/electron/electron" target="_blank">electron/electron</a><br>
|
||||
Copyright (c) 2013-2018 GitHub Inc.<br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<br>
|
||||
|
||||
<h5>electron-dl</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/sindresorhus/electron-dl" target="_blank">sindresorhus/electron-dl</a><br>
|
||||
MIT License<br>
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:<br>
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
||||
THE USE OR OTHER DEALINGS IN THE SOFTWARE.<br>
|
||||
|
||||
<h5>Jimp</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/oliver-moran/jimp" target="_blank">oliver-moran/jimp</a><br>
|
||||
The MIT License (MIT)<br>
|
||||
<br>
|
||||
Copyright (c) 2014 Oliver Moran<br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.<br>
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.<br>
|
||||
|
||||
<h5>Twitter Emoji (Twemoji)</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/twitter/twemoji" target="_blank">twitter/twemoji</a><br>
|
||||
Copyright (c) 2018 Twitter, Inc and other contributors<br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.<br>
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE. <br>
|
||||
<br>
|
||||
<h5>Font Awesome</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/FortAwesome/Font-Awesome" target="_blank">FortAwesome/Font-Awesome</a><br>
|
||||
Font Awesome Free License<br>
|
||||
-------------------------<br>
|
||||
<br>
|
||||
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||
commercial projects, open source projects, or really almost whatever you want.
|
||||
Full Font Awesome Free license: https://fontawesome.com/license.<br>
|
||||
<br>
|
||||
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)<br>
|
||||
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
|
||||
packaged as SVG and JS file types.<br>
|
||||
<br>
|
||||
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)<br>
|
||||
In the Font Awesome Free download, the SIL OLF license applies to all icons
|
||||
packaged as web and desktop font files.<br>
|
||||
<br>
|
||||
# Code: MIT License (https://opensource.org/licenses/MIT)<br>
|
||||
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||
non-icon files.<br>
|
||||
<br>
|
||||
# Attribution<br>
|
||||
Attribution is required by MIT, SIL OLF, and CC BY licenses. Downloaded Font
|
||||
Awesome Free files already contain embedded comments with sufficient
|
||||
attribution, so you shouldn't need to do anything additional when using these
|
||||
files normally.<br>
|
||||
<br>
|
||||
We've kept attribution comments terse, so we ask that you do not actively work
|
||||
to remove them from files, especially code. They're a great way for folks to
|
||||
learn about Font Awesome.<br>
|
||||
<br>
|
||||
# Brand Icons<br>
|
||||
All brand icons are trademarks of their respective owners. The use of these
|
||||
trademarks does not indicate endorsement of the trademark holder by Font
|
||||
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||
to represent the company, product, or service to which they refer.**<br>
|
||||
|
||||
<h5>node-notifier</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/mikaelbr/node-notifier" target="_blank">mikaelbr/node-notifier</a><br>
|
||||
MIT License<br>
|
||||
<br>
|
||||
Copyright (c) 2017 Mikael Brevik<br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.<br>
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.<br>
|
||||
<h5>itunes-nowplaying-mac</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/rinsuki/itunes-nowplaying-mac" target="_blank">rinsuki/itunes-nowplaying-mac</a><br>
|
||||
MIT LICENSE
|
||||
<h5>Google Fonts</h5>
|
||||
<ul>
|
||||
<li>Open Sans:<a target="_blank" href="http://www.apache.org/licenses/LICENSE-2.0"> Apache License, Version 2.0 </a></li>
|
||||
<li>Material Icons:<a target="_blank" href="http://www.apache.org/licenses/LICENSE-2.0"> Apache License, Version 2.0 </a></li>
|
||||
<li>IBM Plex Mono:<a target="_blank" href="http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL_web"> Open Font License </a></li>
|
||||
</ul>
|
||||
<h5>emoji-data</h5>
|
||||
The MIT License (MIT)<br>
|
||||
<br>
|
||||
Copyright (c) 2013 Cal Henderson<br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.<br>
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.<br>
|
||||
<h5>#InstanceTicker</h5>
|
||||
The MIT License (MIT)<br>
|
||||
<br>
|
||||
ORIGINAL CSS © 小田急don <a href="https://odakyu.app/@ars42525">https://odakyu.app/@ars42525</a><br>
|
||||
#InstanceTicker © weep.me <a href="https://weep.me/@weep">https://weep.me/@weep</a><br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.<br>
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.<br>
|
||||
</article>
|
||||
<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>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
</body>
|
|
@ -1,476 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en" style="overflow:scroll">
|
||||
|
||||
<head>
|
||||
<title>Settings - TheDesk</title>
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</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">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
input {
|
||||
max-height: 50px !important
|
||||
}
|
||||
|
||||
.pcr-result {
|
||||
height: 1rem !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body id="mainView" style="overflow-y:scroll">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.en.js"></script>
|
||||
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
|
||||
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||
<script type="text/javascript" src="setting.vue.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
|
||||
<h4>Preferences</h4>
|
||||
<ul class="collapsible" data-collapsible="accordion">
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">desktop_windows</i>System Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Languages</h5>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
|
||||
<a onclick="changelang('ja')" class="pointer" style="margin-right:5px;">日本語</a><a onclick="changelang('en')" class="pointer" style="margin-right:5px;">English</a><a onclick="changelang('ps')" class="pointer" style="margin-right:5px;">Crowdin translate system(beta)</a><a onclick="changelang('bg')" class="pointer" style="margin-right:5px;">български</a><a onclick="changelang('cs')" class="pointer" style="margin-right:5px;">Česky</a><a onclick="changelang('de')" class="pointer" style="margin-right:5px;">Deutsch</a>
|
||||
<h5>Import and export of preferences</h5>
|
||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||
style="width:100%; max-width:200px;">Export</button>
|
||||
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||
style="width:100%; max-width:200px;">Import</button>
|
||||
<div id="envView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">Notification test</a><br></template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Change</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>Font</h5>
|
||||
Select your favorite font to 'Select'(Windows/ macOS only)<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="font()">Select</button><br>
|
||||
<div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div>
|
||||
<br>
|
||||
<input type="text" style="width:150px" id="font">
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="settings()">Save</button>
|
||||
<br>
|
||||
<h5>Folder to save</h5>
|
||||
TheDesk uses this value when it try to save pictures or take screenshots.<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">Change</button>
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">color_lens</i>Themes
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h4>Select theme</h4>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<span>Black</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<span>White</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo"
|
||||
value="indigo" />
|
||||
<span>Indigo<span class="imas hide">(エンドレスナイト)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<span>Brown<span class="imas hide">(ビタースイート・タイム)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<span>Green<span class="imas hide">(ユースフルロマンス)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="blue" value="blue" />
|
||||
<span>Blue<span class="imas hide">(渚の花嫁)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom"
|
||||
value="custom" />
|
||||
<span>custom</span>
|
||||
</label>
|
||||
<div style="width:300px" id="sel-selector">
|
||||
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||
</div>
|
||||
<h4>Edit and add custom themes</h4>
|
||||
<div style="width:300px" id="edit-selector" data-add="Add new">
|
||||
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||
<option value="add_new">Add new</option>
|
||||
</select>
|
||||
</div>
|
||||
<h5>Name</h5>
|
||||
<input type="text" style="width:300px" id="custom_name" placeholder="Name...">
|
||||
<h5>About this theme</h5>
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="About this theme..."></textarea></div>
|
||||
<h5>Color scheme</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||
checked="true" />
|
||||
<span>Dark</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>Background of components
|
||||
<div id="color-picker0-wrap">
|
||||
<div class="color-picker" id="color-picker0"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker0_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Secondary</h5>Background color
|
||||
<div id="color-picker1-wrap">
|
||||
<div class="color-picker" id="color-picker1"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker1_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Texts</h5>Text color
|
||||
<div id="color-picker2-wrap">
|
||||
<div class="color-picker" id="color-picker2"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker2_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Accent</h5>Background of boosts
|
||||
<div id="color-picker3-wrap">
|
||||
<div class="color-picker" id="color-picker3"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker3_value">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn-large waves-effect" onclick="customComp()">Change</button> <button
|
||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Delete</button><br><br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
|
||||
placeholder="JSON style" readonly><br>
|
||||
Share this code with other TheDesk. Do not share this code with MiAS.
|
||||
<h4>Import of custom themes</h4>
|
||||
Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a><br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
|
||||
placeholder="JSON/JSON5 style">
|
||||
<button class="btn waves-effect" onclick="customImp()">Import</button><br>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">reorder</i>Timeline Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="tlView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Change</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>Custom sound</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>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">send</i>Posting Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="postView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span></label>
|
||||
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">Change</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">keyboard</i>Keyboard shortcut Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Easy inserter</h5>
|
||||
You can insert any letters and emojis with only 3 keys<br>
|
||||
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>
|
||||
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>
|
||||
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>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Client Mute</h5>
|
||||
<div id="mute-cli"></div>
|
||||
<h5>Client Emphasis</h5>
|
||||
Click client name on toots to toggle mute and emphasis.
|
||||
<h5>Words Mute</h5>
|
||||
Enter to set<br>
|
||||
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">Save</button>
|
||||
<h5>Words Emphasis</h5>
|
||||
Enter to set<br>
|
||||
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||
<button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">Save</button>
|
||||
<h5>Users Emphasis</h5>
|
||||
Set on users data modals.
|
||||
<span class="emphasized"> Use this color to emphasis </span>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<br><br>
|
||||
Click <i class="material-icons" style="font-size:24px;">music_note</i>icon to NowPlaying<br>
|
||||
<h5>Account Connection</h5>
|
||||
TheDesk save your data on thedesk.top server.<br>
|
||||
<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>
|
||||
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i
|
||||
class="fa fa-spotify left"></i>Connect</a>
|
||||
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
|
||||
class="fa fa-spotify left"></i>Disconnect</a>
|
||||
<h5>@@templateedit@@</h5>
|
||||
@@templateeditwarn@@<br>
|
||||
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||
{url}</textarea><br>
|
||||
@@template1@@<br>
|
||||
@@template2@@<br>
|
||||
@@template3@@<br>
|
||||
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">Save</button>
|
||||
<h5>Attach an Artwork of Spotify</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||
value="yes" />
|
||||
<span>Yes</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||
value="no" />
|
||||
<span>No</span>
|
||||
</label>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Speed</h5>
|
||||
1-100(default:10)<br>
|
||||
<p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Pitch</h5>
|
||||
0-100(default:50)<br>
|
||||
<p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Volume</h5>
|
||||
0-100(default:100)<br>
|
||||
<p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>Test</h5>
|
||||
<input type="text" style="width:350px" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC.">
|
||||
<button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()"
|
||||
id="testplay">Play/Stop</button><br>
|
||||
<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">Save</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<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>
|
||||
<br>
|
||||
<br>Keyboard shortcuts
|
||||
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
|
||||
<li>N:Open toot box</li>
|
||||
<li>X:Toggle toot box</li>
|
||||
<li>Ctrl+Enter:Post</li>
|
||||
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
|
||||
<li>Alt+Enter:Secondary Toot Button</li>
|
||||
<li>Ctrl+E:Make all notifications read</li>
|
||||
<li>Ctrl+U:Select the top & left(No.1 column) toot</li>
|
||||
<li>Esc:Hide toot box</li>
|
||||
<li>F5:Super Reload</li>
|
||||
<li>Ctrl+Shift+C:Clear toot box</li>
|
||||
<li>Ctrl+Shift+S:Preferences</li>
|
||||
<li>Ctrl+Shift+M:Account Manager</li>
|
||||
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||
<li>Ctrl+Shift+P:Show profile of selecting</li>
|
||||
<li>←/→:Show next or previous image</li>
|
||||
<li>Mousewheel:Zoom a image</li>
|
||||
<div class="hide kirishima">
|
||||
以下Markdownに対応したインスタンスのみ。
|
||||
<br>
|
||||
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||
以下アスタルテにログインしている場合のみ
|
||||
<br>
|
||||
<li>Ctrl+R:
|
||||
<a href="https://astarte.thedesk.top">アスタルテ暇人ランキング</a>を開く
|
||||
</li><br>
|
||||
When a toot is selected:
|
||||
<li>F:Favourite this toot</li>
|
||||
<li>B:Boost this toot</li>
|
||||
<li>R:Reply to this toot</li>
|
||||
</div>
|
||||
<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
|
||||
class="material-icons left">delete</i>Reset(Danger)</button><br><br>
|
||||
<button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">info</i>About TheDesk</button>
|
||||
<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>
|
||||
<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>
|
||||
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>Support(Patreon)</a>
|
||||
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||
style="width:100%; max-width:500px; background-color: #f6c915"><i class="material-icons left">trending_up</i>Support(Liberapay)</a>
|
||||
<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</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fab fa-github left"></i>GitHub</a>
|
||||
<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="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||
class="pointer">Check update</a><br>
|
||||
<a href="oss.html">OSS License</a><br>
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
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
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
|
@ -1,552 +0,0 @@
|
|||
var yesno = [
|
||||
{
|
||||
text: "Yes",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "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 = [
|
||||
{
|
||||
id: "popup",
|
||||
storage: "popup",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 0,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "Popup notification(on Windows)",
|
||||
desc: "Hide to set \"0\"",
|
||||
after: "sec"
|
||||
}
|
||||
}, {
|
||||
id: "notf",
|
||||
storage: "nativenotf",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Native notification",
|
||||
desc: "This does not work on Windows Portable ver.",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "width",
|
||||
storage: "width",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 300,
|
||||
text: {
|
||||
head: "Minimum width of columns",
|
||||
desc: "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
after: "px above"
|
||||
}
|
||||
}, {
|
||||
id: "fixwidth",
|
||||
storage: "fixwidth",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 300,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "Minimum width of TweetDeck browser",
|
||||
desc: "",
|
||||
after: "px above"
|
||||
}
|
||||
}, {
|
||||
id: "size",
|
||||
storage: "size",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 13,
|
||||
text: {
|
||||
head: "Font size",
|
||||
desc: "<span style=\"font-size:13px\">13px(absolute value)</span>",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ha",
|
||||
storage: "ha",
|
||||
checkbox: true,
|
||||
setValue: false,
|
||||
text: {
|
||||
head: "Disable hardware acceleration",
|
||||
desc: "Auto restarted",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Yes",
|
||||
value: "true"
|
||||
}, {
|
||||
text: "No",
|
||||
value: "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
];
|
||||
var tlConstruction = [
|
||||
{
|
||||
id: "time",
|
||||
storage: "datetype",
|
||||
checkbox: true,
|
||||
setValue: "absolute",
|
||||
text: {
|
||||
head: "Time format",
|
||||
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.",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Relative",
|
||||
value: "relative"
|
||||
}, {
|
||||
text: "Absolute",
|
||||
value: "absolute"
|
||||
}, {
|
||||
text: "Both relative and absolute",
|
||||
value: "double"
|
||||
}, {
|
||||
text: "Mixed",
|
||||
value: "medium"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "ul",
|
||||
storage: "locale",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Server's unique locale",
|
||||
desc: "This value is available on some Japanese servers",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "nsfw",
|
||||
storage: "nsfw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Hide Mark sensitive pictures",
|
||||
desc: "Strong blur effect",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "cw",
|
||||
storage: "cw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Hide CW contents",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "rp",
|
||||
storage: "replyct",
|
||||
checkbox: true,
|
||||
setValue: "hidden",
|
||||
text: {
|
||||
head: "Reply counter style",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Show 1+ if the replies are more than 1.",
|
||||
value: "hidden"
|
||||
}, {
|
||||
text: "Show 1+ if the replies are more than 1.",
|
||||
value: "all"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "gif",
|
||||
storage: "gif",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Animated GIF images animation",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "tag",
|
||||
storage: "tag-range",
|
||||
checkbox: true,
|
||||
setValue: "local",
|
||||
text: {
|
||||
head: "Tag TL Search",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Use federated network",
|
||||
value: "all"
|
||||
}, {
|
||||
text: "Use local network",
|
||||
value: "local"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "via",
|
||||
storage: "viashow",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Show via",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "mov",
|
||||
storage: "mouseover",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Hide action buttons without mouseover",
|
||||
desc: "You may feel 'mouseover' is unconfortable:(",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Mouseover to show",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Click to show",
|
||||
value: "click"
|
||||
}, {
|
||||
text: "No",
|
||||
value: "no"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "notfm",
|
||||
storage: "setasread",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Show Notification marker, red colored bell and counter(if you show a notification column.)",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "sentence",
|
||||
storage: "sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "lines above or" }
|
||||
}, {
|
||||
id: "letters",
|
||||
storage: "letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "letters above" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "Auto folding",
|
||||
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.",
|
||||
}
|
||||
}, {
|
||||
id: "img-height",
|
||||
storage: "img-height",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 80,
|
||||
setValue: 200,
|
||||
text: {
|
||||
head: "Height of images",
|
||||
desc: "Option:Set \"full\" to uncrop.",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ticker",
|
||||
storage: "ticker_ok",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Enable #InstanceTicker",
|
||||
desc: "Show colorful stickers about the server. <a href=\"https://wee.jp/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "anime",
|
||||
storage: "animation",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Animation of timelines",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "replySound",
|
||||
storage: "replySound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Sound(Reply)",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}, {
|
||||
id: "favSound",
|
||||
storage: "favSound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Sound(Fav)",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}, {
|
||||
id: "btSound",
|
||||
storage: "btSound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Sound(Boost)",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}, {
|
||||
id: "followSound",
|
||||
storage: "followSound",
|
||||
checkbox: true,
|
||||
setValue: "none",
|
||||
text: {
|
||||
head: "Sound(Follow)",
|
||||
desc: "",
|
||||
checkbox: sound
|
||||
}
|
||||
}
|
||||
];
|
||||
var postConstruction = [
|
||||
{
|
||||
id: "cw-text",
|
||||
storage: "cw-text",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 150,
|
||||
setValue: "",
|
||||
text: {
|
||||
head: "Default warining text",
|
||||
desc: "",
|
||||
after: ""
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "cw_sentence",
|
||||
storage: "cw_sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "lines above or" }
|
||||
}, {
|
||||
id: "cw_letters",
|
||||
storage: "cw_letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "letters above" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "Alert before posting a long toot.",
|
||||
desc: "Show dialog whether you make too-long text hidden.",
|
||||
}
|
||||
}, {
|
||||
id: "cws",
|
||||
storage: "always-cw",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Always CW set",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "vis",
|
||||
storage: "vis",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "Default visibility",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Public",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "Unlisted",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "Private",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "Direct",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "Memory(memorized as each server)",
|
||||
value: "memory"
|
||||
}, {
|
||||
text: "Default of your visibility(Set on preferences of Mastodon server)",
|
||||
value: "useapi"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "img",
|
||||
storage: "img",
|
||||
checkbox: true,
|
||||
setValue: "no-act",
|
||||
text: {
|
||||
head: "Posting images preferences",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Insert media URL",
|
||||
value: "url"
|
||||
}, {
|
||||
text: "Insert nothig",
|
||||
value: "no-act"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "box",
|
||||
storage: "box",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "Action of posting-box",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Folding",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "Open after posting",
|
||||
value: "no"
|
||||
}, {
|
||||
text: "Absolutely open",
|
||||
value: "absolute"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "quote",
|
||||
storage: "quote",
|
||||
checkbox: true,
|
||||
setValue: "nothing",
|
||||
text: {
|
||||
head: "Quote format",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Only URL",
|
||||
value: "simple"
|
||||
}, {
|
||||
text: "URL and acct(mention to the user)",
|
||||
value: "mention"
|
||||
}, {
|
||||
text: "URL, text and acct(mention to the user)",
|
||||
value: "full"
|
||||
}, {
|
||||
text: "Disabled(Hide buttons on TLs)",
|
||||
value: "nothing"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "main",
|
||||
storage: "mainuse",
|
||||
checkbox: true,
|
||||
setValue: "remain",
|
||||
text: {
|
||||
head: "Default accounts of actions",
|
||||
desc: "Main account can be set on Account Manager.",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Account you used recently",
|
||||
value: "remain"
|
||||
}, {
|
||||
text: "Main account",
|
||||
value: "main"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "sec",
|
||||
storage: "sec",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "Secondary Toot Button",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "Hidden",
|
||||
value: "nothing"
|
||||
}, {
|
||||
text: "Public",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "Unlisted",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "Private",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "Direct",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "Local Only",
|
||||
value: "local",
|
||||
kirishima: true,
|
||||
kirishimaText: "非対応インスタンスでは「未収載」になります。"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "zero",
|
||||
storage: "emoji-zero-width",
|
||||
checkbox: true,
|
||||
setValue: "normal",
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "Zero-width space when inserting emojis",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,254 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Open Sans';
|
||||
-webkit-app-region: drag;
|
||||
cursor: move;
|
||||
padding: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#start {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100vw;
|
||||
height: calc(100vh - 2.5rem);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#checkbox {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
a,
|
||||
button,
|
||||
input,
|
||||
label,
|
||||
i {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
|
||||
#updskip {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.skipbtn {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px solid;
|
||||
margin-left: 5px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1px solid;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.skipbtn:hover {
|
||||
background-color: #b3e5fc;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#prog {
|
||||
font-size: 200%;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||
<!--a href="update.html">Reload</a-->
|
||||
<div id="start">
|
||||
<div id="box" class="show">
|
||||
<h2>TheDesk</h2>
|
||||
<p>Get latest TheDesk</p>
|
||||
<span id="now"></span>→<b id="ver"></b><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('portable')"
|
||||
style="margin-left:15px;">Portable ver.</button>
|
||||
<button class="waves-effect btn linux hide" onclick="update('linux')"
|
||||
style="margin-left:15px;">Start</button>
|
||||
<button class="waves-effect btn mac hide" onclick="update('mac')"
|
||||
style="margin-left:15px;">Start</button>
|
||||
<br>
|
||||
Some problems?<br>Please download on <a href=\"https://thedesk.top\">Oficial HP</a>.
|
||||
</div>
|
||||
<div id="skipper" class="hide">
|
||||
<h4>You may lose a cool experience!</h4>
|
||||
Skip this update<br>
|
||||
<div id="updskip">
|
||||
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||
<div>Until next TL loading</div>
|
||||
</a>
|
||||
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||
<div>Until next version</div>
|
||||
</a>
|
||||
</div>
|
||||
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">Continue updating</a>
|
||||
</div>
|
||||
<div id="dlnow" class="hide">
|
||||
<h4>Downloading...</h4>
|
||||
<h4 id="prog"></h4>
|
||||
<div class="progress">
|
||||
<div class="determinate" style="width: 0%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script>
|
||||
function skipper() {
|
||||
$("#dlnow").addClass("hide");
|
||||
$("#box").toggleClass("show");
|
||||
if ($("#box").hasClass("hide") && $("#skipper").hasClass("hide")) {
|
||||
$("#skipper").removeClass("hide");
|
||||
$("#skipper").addClass("show");
|
||||
} else {
|
||||
$("#box").toggleClass("hide");
|
||||
$("#skipper").toggleClass("hide");
|
||||
$("#skipper").toggleClass("show");
|
||||
}
|
||||
}
|
||||
verck();
|
||||
function update(sel) {
|
||||
$("#box").toggleClass("show");
|
||||
$("#box").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("show");
|
||||
$("#prog").text("");
|
||||
var bit = localStorage.getItem("bit");
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
if (sel == "install") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64"];
|
||||
var file = "TheDesk-setup.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32"];
|
||||
var file = "TheDesk-setup-ia32.exe";
|
||||
}
|
||||
} else if (sel == "portable") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64p"];
|
||||
var file = "TheDesk.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32p"];
|
||||
var file = "TheDesk-ia32.exe";
|
||||
}
|
||||
} else if (sel == "linux") {
|
||||
if (bit == "x64") {
|
||||
var url = json["linuxx64"];
|
||||
var file = "TheDesk-linux-x64.zip";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["linuxia64"];
|
||||
var file = "TheDesk-linux-ia32.zip";
|
||||
}
|
||||
} else if (sel == "mac") {
|
||||
var url = json["mac"];
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
}
|
||||
postMessage(["downloadButton", [url, file]], "*")
|
||||
});
|
||||
|
||||
}
|
||||
function quit() {
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
function updateProg(arg) {
|
||||
console.log(arg);
|
||||
$(".determinate").css("width", arg * 100 + "%");
|
||||
$("#prog").text(Math.floor(arg * 100) + "%");
|
||||
}
|
||||
function updateMess(arg) {
|
||||
console.log(arg);
|
||||
$("#prog").text(arg);
|
||||
}
|
||||
function verck() {
|
||||
var platform = localStorage.getItem("platform");
|
||||
var bit = localStorage.getItem("bit");
|
||||
if (platform == "win32") {
|
||||
$('.windows').removeClass("hide")
|
||||
} else if (platform == "linux") {
|
||||
$('.linux').removeClass("hide")
|
||||
} else if (platform == "darwin") {
|
||||
$('.mac').removeClass("hide")
|
||||
}
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
console.log(json);
|
||||
if (platform == "win32") {
|
||||
$("#ver").text(json.desk);
|
||||
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 = "en";
|
||||
if (lang == "ja") {
|
||||
$("#det").html(json.detail);
|
||||
} else {
|
||||
$("#det").html(json.detail_en);
|
||||
}
|
||||
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
|
||||
});
|
||||
}
|
||||
function nextv() {
|
||||
localStorage.setItem("new-ver-skip", "true");
|
||||
window.close();
|
||||
}
|
||||
function enc(ver) {
|
||||
var ver = ver.replace(/\s/g, "");
|
||||
var ver = ver.replace(/\(/g, "-");
|
||||
var ver = ver.replace(/\)/g, "");
|
||||
var ver = ver.replace(/\[/g, "_");
|
||||
var ver = ver.replace(/\]/g, "");
|
||||
return ver;
|
||||
}
|
||||
</script>
|
|
@ -1,158 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="ja">
|
||||
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<style>
|
||||
.acct {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 400px;
|
||||
background-color: #9e9e9e;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
#acct-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
color: white;
|
||||
align-items: flex-start
|
||||
}
|
||||
|
||||
.lts {
|
||||
font-size: 150%
|
||||
}
|
||||
|
||||
.colorsel {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.card .colorsel div:not(.exc) {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.card .colorsel div.exc {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.first {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.first .hide-first {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ja.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false;
|
||||
</script>
|
||||
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<div class="hide-first">
|
||||
<a href="index.html" class="btn waves-effect orange nex"
|
||||
style="width:100%; max-width:200px;">戻る</a><br>
|
||||
<h5>アカウント一覧</h5>
|
||||
<div id="acct-list"></div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
<div>
|
||||
<h5>アカウントを追加</h5><br>
|
||||
<div id="add">
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
チェックを外すとコード貼り付けをスキップできます。(<u>Mastodon</u>にWindowsやmacOSからログインする場合)失敗する場合はチェックを入れてください。<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>コードセットアップ</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>Misskeyとしてログイン</span>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
<span style="font-family:Open Sans;">Supports</span>
|
||||
<div id="support" class="collection transparent"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="auth" style="display:none">
|
||||
指定されたコードを貼り付けてください。ログインウィンドウは閉じていただいて構いません。<br>
|
||||
<input type="text" id="code" placeholder="コードを入力">
|
||||
<button class="btn waves-effect" onclick="code()">Auth</button><br>
|
||||
</div>
|
||||
<div id="misskeylogin" style="display:none">
|
||||
<h5>AppSecret</h5>
|
||||
<a href=\"https://thedesk.top/how-to-misskey-login.html\">ドキュメント</a>を参照して正しいコードを入れてください。<br>
|
||||
<input type="hidden" id="misskey-url">
|
||||
<input type="text" id="misskey-key" placeholder="コードを入力">
|
||||
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide-first">
|
||||
<h5>メインアカウント</h5>
|
||||
<div class="input-field" style="width:300px"><span data-trans="your_acct">アカウントを選択</span>
|
||||
<br>
|
||||
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
|
||||
<label></label>
|
||||
</div>
|
||||
Some instance data by <a href="https://instances.social" target="_blank">instances.social API</a><br>
|
||||
<h5 id="ins-title"></h5>
|
||||
Administered by:<a id="ins-admin"></a><br>
|
||||
<span id="ins-desc"></span><br>
|
||||
<img src="../../img/loading.svg" id="ins-prof" width="200"><br>
|
||||
<br>
|
||||
ドメイン名:<span id="ins-name"></span><br>
|
||||
接続サーバー数:<span id="ins-connect"></span>個<br>
|
||||
トゥート数:<span id="ins-toot"></span>個<br>
|
||||
ユーザー数:<span id="ins-user"></span>ユーザー数<br>
|
||||
コネクション:<span id="ins-per"></span>%<br>
|
||||
Mastodonバージョン:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
|
||||
</div>
|
||||
<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/common/sha256.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/tkn.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
|
@ -1,109 +0,0 @@
|
|||
<!doctype html>
|
||||
<!--Vue.jsでなんかTLづくりやってみようみたいなやつ。そっ閉じ推奨。-->
|
||||
<html lang="ja">
|
||||
<head>
|
||||
<title>Beta - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<a href="index.html">Back</a>
|
||||
<div id="tl">
|
||||
<div :id="pub_id" class="cvo" :class="boostback" v-bind:class="{ 'faved': fav_app, 'rted': rt_app, 'pinned':pin_app,'hasmedia':hasmedia}"
|
||||
:toot-id="id" :unique-id="uniqueid" :data-medias="media_ids" :unixtime="unixtime" :data-notfIndv="if_notf"
|
||||
@mouseover="mov('mv')" @click="mov('cl')" @mouseout="resetmv('mv')">
|
||||
<div class="area-notice"><span class="gray sharesta"><span v-if="notice"><i class="big-text fa" :class="rticon"></i>{{dis_name}}(@{{acct}})<br></span></span></div>
|
||||
<div class="area-icon">
|
||||
<a @click="udg" :user="acct" class="udg"><img :src="avatar" width="40" class="prof-img" :user="acct"></a>
|
||||
<a @click="udg" :user="acct" class="udg" v-if="notice"><img :src="avatar" width="40" class="notf-icon prof-img" :user="acct"></a>
|
||||
</div>
|
||||
|
||||
Yeah
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var app = new Vue({
|
||||
el: '#tl',
|
||||
data: {
|
||||
tlid:0,
|
||||
pub_id:"pub_123",
|
||||
id: 123,
|
||||
uniqueid:1234,
|
||||
boostback:'a',
|
||||
fav_app:true,
|
||||
rt_app:true,
|
||||
pin_app:false,
|
||||
hasmedia:false,
|
||||
media_ids:'',
|
||||
unixtime:'1238954',
|
||||
if_notf:''
|
||||
},
|
||||
methods: {
|
||||
mov: function (c) {
|
||||
mov(this.id,this.tlid,c)
|
||||
},
|
||||
resetmv: function (c) {
|
||||
resetmv(c)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
function mov(a,b,c){
|
||||
console.log(a+":"+b+":"+c);
|
||||
}
|
||||
function resetmv(a){
|
||||
console.log(a);
|
||||
}
|
||||
</script>
|
||||
<!--@mouseover="mov({{id}},{{tlid}},'mv')" @click="mov({{id}},{{tlid}},'cl')" @mouseout="resetmv('mv')"-->
|
||||
<!--
|
||||
<div id="pub_toot.id" class="cvo boostback fav_app rt_app pin_app hasmedia" toot-id="id" unique-id="uniqueid" data-medias="media_ids " unixtime="date(obj[key].created_at, unix)" if_notf onmouseover="mov(toot.id,tlid,mv)" onclick="mov(toot.id,tlid,cl)" onmouseout="resetmv(mv)">
|
||||
<div class="area-notice"><span class="gray sharesta">noticehome</span></div>
|
||||
<div class="area-icon">
|
||||
<a onclick="udg(toot.account.id,acct_id);" user="toot.account.acct" class="udg"><img src="avatar" width="40" class="prof-img" user="toot.account.acct"></a>noticeavatar
|
||||
</div>
|
||||
<div class="area-display_name">
|
||||
<div class="flex-name"><span class="user">dis_name</span><span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis; cursor:text;">@toot.account.acctlocked</span></div>
|
||||
<div class="flex-time"><span class="cbadge cbadge-hover pointer waves-effect" onclick="tootUriCopy(toot.url);" title="date(toot.created_at, absolute)(lang_parse_clickcopyurl[lang])"><i class="fa fa-clock-o"></i>
|
||||
date(toot.created_at, datetype)</span>
|
||||
</div></div>
|
||||
<div class="area-toot"><span class="api_spoil cw_text_toot.id">spoilspoiler_show</span><span class="toot spoiler">content</span>
|
||||
viewer
|
||||
</div><div class="area-additional"><span class="additional">analyze</span>mentionstags</div>
|
||||
<div class="area-vis"></div>
|
||||
<div class="area-actions mouseover">
|
||||
<div class="action">vis</div>
|
||||
<div class="action antinoauth"><a onclick="detEx(toot.url,main)" class="waves-effect waves-dark details" style="padding:0">lang_parse_det[lang]</a></div>
|
||||
<div class="action disp["re"] noauth"><a onclick="re(toot.id,toot.account.acct,acct_id,visen)" class="waves-effect waves-dark btn-flat" style="padding:0" title="lang_parse_replyto[lang]">
|
||||
<i class="fa fa-share"></i><span class="rep_ct">replyct</a></span></a></div>
|
||||
<div class="action can_rt disp["rt"] noauth"><a onclick="rt(toot.id,acct_id,tlid)" class="waves-effect waves-dark btn-flat" style="padding:0" title="lang_parse_bt[lang]"><i class="text-darken-3 fa fa-retweet
|
||||
if_rt rt_toot.id"></i><span class="rt_ct">toot.reblogs_count
|
||||
</span></a></div>
|
||||
<div class="action can_rt disp["qt"] noauth"><a onclick="qt(toot.id,acct_id
|
||||
,toot.account.acct ,toot.url
|
||||
)" class="waves-effect waves-dark btn-flat" style="padding:0" title="lang_parse_quote[lang]"><i class="text-darken-3 fa fa-quote-right"></i></a></div>
|
||||
<div class="action disp["fav"] noauth"><a onclick="fav(toot.id,acct_id
|
||||
,tlid
|
||||
)" class="waves-effect waves-dark btn-flat" style="padding:0" title="lang_parse_fav[lang]"><i class="fa text-darken-3 fa-star
|
||||
if_fav fav_toot.id"></i><span class="fav_ct">toot.favourites_count
|
||||
</a></span></div>
|
||||
<div class="if_mine action disp["del"] noauth"><a onclick="del(toot.id,
|
||||
acct_id
|
||||
)" class="waves-effect waves-dark btn-flat" style="padding:0" title="lang_parse_del[lang]"><i class="fa fa-trash-o"></i></a></div>
|
||||
<div class="if_mine action pin disp["pin"] noauth"><a onclick="pin(toot.id,
|
||||
acct_id
|
||||
)" class="waves-effect waves-dark btn-flat" style="padding:0" title="lang_parse_pin[lang]"><i class="fa fa-map-pin pin_toot.id if_pin"></i></a></div>
|
||||
<div class="if_mine action disp["red"] noauth"><a onclick="redraft(toot.id,
|
||||
acct_id
|
||||
)" class="waves-effect waves-dark btn-flat" style="padding:0" title="lang_parse_redraft[lang]"><i class="material-icons">redo</i></a></div>trans
|
||||
<span class="cbadge viabadge waves-effect viashow mine_via" onclick="client($.strip_tags(via))" title="via $.strip_tags(via)">via
|
||||
via
|
||||
</span>
|
||||
</div><div class="area-side mouseover"><div class="action if_mine noauth"><a onclick="toggleAction(toot.id,tlid,acct_id)" class="waves-effect waves-dark btn-flat" style="padding:0"><i class="text-darken-3 material-icons act-icon">expand_more</i></a></div>
|
||||
<div class="action noauth"><a onclick="details(toot.id,acct_id
|
||||
,tlid)" class="waves-effect waves-dark btn-flat details" style="padding:0"><i class="text-darken-3 material-icons">more_vert</i></a></div>
|
||||
</div></div>
|
||||
</div></div>
|
||||
-->
|
File diff suppressed because it is too large
Load Diff
|
@ -1,899 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="ja">
|
||||
<head>
|
||||
<title>OSS License - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body style="overflow-y:scroll;">
|
||||
<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/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>戻る</a>
|
||||
<article style="width:500px; max-width:100%; margin:15px; font-family:Arial,Helvetica">
|
||||
<h5>TheDesk</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/cutls/TheDesk" target="_blank">cutls/TheDesk</a><br>
|
||||
<p style="text-align:center">GNU GENERAL PUBLIC LICENSE<br>
|
||||
Version 3, 29 June 2007</p>
|
||||
<a onclick="$('#thedesk,.trigger').toggleClass('hide')" class="pointer trigger">見る(約5000語)</a><br>
|
||||
<div class="hide" id="thedesk">
|
||||
<a onclick="$('#thedesk,.trigger').toggleClass('hide')" class="pointer trigger hide">隠す</a><br>
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. < http://fsf.org/ >
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.<br>
|
||||
<br>
|
||||
<p style="text-align:center">Preamble</p>
|
||||
<br>
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.<br>
|
||||
<br>
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.<br>
|
||||
<br>
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.<br>
|
||||
<br>
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.<br>
|
||||
<br>
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.<br>
|
||||
<br>
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.<br>
|
||||
<br>
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.<br>
|
||||
<br>
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.<br>
|
||||
<br>
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.<br>
|
||||
<br>
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.<br>
|
||||
<br>
|
||||
<p style="text-align:center">TERMS AND CONDITIONS</p>
|
||||
<br>
|
||||
0. Definitions.<br>
|
||||
<br>
|
||||
"This License" refers to version 3 of the GNU General Public License.<br>
|
||||
<br>
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.<br>
|
||||
<br>
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.<br>
|
||||
<br>
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.<br>
|
||||
<br>
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.<br>
|
||||
<br>
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.<br>
|
||||
<br>
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.<br>
|
||||
<br>
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.<br>
|
||||
<br>
|
||||
1. Source Code.<br>
|
||||
<br>
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.<br>
|
||||
<br>
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.<br>
|
||||
<br>
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.<br>
|
||||
<br>
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.<br>
|
||||
<br>
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.<br>
|
||||
<br>
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.<br>
|
||||
<br>
|
||||
2. Basic Permissions.<br>
|
||||
<br>
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.<br>
|
||||
<br>
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.<br>
|
||||
<br>
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.<br>
|
||||
<br>
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.<br>
|
||||
<br>
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.<br>
|
||||
<br>
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.<br>
|
||||
<br>
|
||||
4. Conveying Verbatim Copies.<br>
|
||||
<br>
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.<br>
|
||||
<br>
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.<br>
|
||||
<br>
|
||||
5. Conveying Modified Source Versions.<br>
|
||||
<br>
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:<br>
|
||||
<br>
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.<br>
|
||||
<br>
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".<br>
|
||||
<br>
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.<br>
|
||||
<br>
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.<br>
|
||||
<br>
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.<br>
|
||||
<br>
|
||||
6. Conveying Non-Source Forms.<br>
|
||||
<br>
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:<br>
|
||||
<br>
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.<br>
|
||||
<br>
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.<br>
|
||||
<br>
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.<br>
|
||||
<br>
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.<br>
|
||||
<br>
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.<br>
|
||||
<br>
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.<br>
|
||||
<br>
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.<br>
|
||||
<br>
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.<br>
|
||||
<br>
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).<br>
|
||||
<br>
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.<br>
|
||||
<br>
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.<br>
|
||||
<br>
|
||||
7. Additional Terms.<br>
|
||||
<br>
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.<br>
|
||||
<br>
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.<br>
|
||||
<br>
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:<br>
|
||||
<br>
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or<br>
|
||||
<br>
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or<br>
|
||||
<br>
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or<br>
|
||||
<br>
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or<br>
|
||||
<br>
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or<br>
|
||||
<br>
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.<br>
|
||||
<br>
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.<br>
|
||||
<br>
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.<br>
|
||||
<br>
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.<br>
|
||||
<br>
|
||||
8. Termination.<br>
|
||||
<br>
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).<br>
|
||||
<br>
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.<br>
|
||||
<br>
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.<br>
|
||||
<br>
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.<br>
|
||||
<br>
|
||||
9. Acceptance Not Required for Having Copies.<br>
|
||||
<br>
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.<br>
|
||||
<br>
|
||||
10. Automatic Licensing of Downstream Recipients.<br>
|
||||
<br>
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.<br>
|
||||
<br>
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.<br>
|
||||
<br>
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.<br>
|
||||
<br>
|
||||
11. Patents.<br>
|
||||
<br>
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".<br>
|
||||
<br>
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.<br>
|
||||
<br>
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.<br>
|
||||
<br>
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.<br>
|
||||
<br>
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.<br>
|
||||
<br>
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.<br>
|
||||
<br>
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.<br>
|
||||
<br>
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.<br>
|
||||
<br>
|
||||
12. No Surrender of Others' Freedom.<br>
|
||||
<br>
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.<br>
|
||||
<br>
|
||||
13. Use with the GNU Affero General Public License.<br>
|
||||
<br>
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.<br>
|
||||
<br>
|
||||
14. Revised Versions of this License.<br>
|
||||
<br>
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.<br>
|
||||
<br>
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.<br>
|
||||
<br>
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.<br>
|
||||
<br>
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.<br>
|
||||
<br>
|
||||
15. Disclaimer of Warranty.<br>
|
||||
<br>
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.<br>
|
||||
<br>
|
||||
16. Limitation of Liability.<br>
|
||||
<br>
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.<br>
|
||||
<br>
|
||||
17. Interpretation of Sections 15 and 16.<br>
|
||||
<br>
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.<br>
|
||||
<br>
|
||||
<p style="text-align:center">END OF TERMS AND CONDITIONS</p>
|
||||
<p style="text-align:center">How to Apply These Terms to Your New Programs</p>
|
||||
<br>
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.<br>
|
||||
<br>
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.<br>
|
||||
<br>
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author><br>
|
||||
<br>
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.<br>
|
||||
<br>
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.<br>
|
||||
<br>
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.<br>
|
||||
<br>
|
||||
Also add information on how to contact you by electronic and paper mail.<br>
|
||||
<br>
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:<br>
|
||||
<br>
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.<br>
|
||||
<br>
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".<br>
|
||||
<br>
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.<br>
|
||||
<br>
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
< http://www.gnu.org/philosophy/why-not-lgpl.html >.<br>
|
||||
<br>
|
||||
<a onclick="$('#thedesk,.trigger').toggleClass('hide')" class="pointer trigger hide">隠す</a>
|
||||
</div>
|
||||
<h5>Electron</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/electron/electron" target="_blank">electron/electron</a><br>
|
||||
Copyright (c) 2013-2018 GitHub Inc.<br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<br>
|
||||
|
||||
<h5>electron-dl</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/sindresorhus/electron-dl" target="_blank">sindresorhus/electron-dl</a><br>
|
||||
MIT License<br>
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:<br>
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
||||
THE USE OR OTHER DEALINGS IN THE SOFTWARE.<br>
|
||||
|
||||
<h5>Jimp</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/oliver-moran/jimp" target="_blank">oliver-moran/jimp</a><br>
|
||||
The MIT License (MIT)<br>
|
||||
<br>
|
||||
Copyright (c) 2014 Oliver Moran<br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.<br>
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.<br>
|
||||
|
||||
<h5>Twitter Emoji (Twemoji)</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/twitter/twemoji" target="_blank">twitter/twemoji</a><br>
|
||||
Copyright (c) 2018 Twitter, Inc and other contributors<br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.<br>
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE. <br>
|
||||
<br>
|
||||
<h5>Font Awesome</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/FortAwesome/Font-Awesome" target="_blank">FortAwesome/Font-Awesome</a><br>
|
||||
Font Awesome Free License<br>
|
||||
-------------------------<br>
|
||||
<br>
|
||||
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||
commercial projects, open source projects, or really almost whatever you want.
|
||||
Full Font Awesome Free license: https://fontawesome.com/license.<br>
|
||||
<br>
|
||||
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)<br>
|
||||
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
|
||||
packaged as SVG and JS file types.<br>
|
||||
<br>
|
||||
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)<br>
|
||||
In the Font Awesome Free download, the SIL OLF license applies to all icons
|
||||
packaged as web and desktop font files.<br>
|
||||
<br>
|
||||
# Code: MIT License (https://opensource.org/licenses/MIT)<br>
|
||||
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||
non-icon files.<br>
|
||||
<br>
|
||||
# Attribution<br>
|
||||
Attribution is required by MIT, SIL OLF, and CC BY licenses. Downloaded Font
|
||||
Awesome Free files already contain embedded comments with sufficient
|
||||
attribution, so you shouldn't need to do anything additional when using these
|
||||
files normally.<br>
|
||||
<br>
|
||||
We've kept attribution comments terse, so we ask that you do not actively work
|
||||
to remove them from files, especially code. They're a great way for folks to
|
||||
learn about Font Awesome.<br>
|
||||
<br>
|
||||
# Brand Icons<br>
|
||||
All brand icons are trademarks of their respective owners. The use of these
|
||||
trademarks does not indicate endorsement of the trademark holder by Font
|
||||
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||
to represent the company, product, or service to which they refer.**<br>
|
||||
|
||||
<h5>node-notifier</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/mikaelbr/node-notifier" target="_blank">mikaelbr/node-notifier</a><br>
|
||||
MIT License<br>
|
||||
<br>
|
||||
Copyright (c) 2017 Mikael Brevik<br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.<br>
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.<br>
|
||||
<h5>itunes-nowplaying-mac</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/rinsuki/itunes-nowplaying-mac" target="_blank">rinsuki/itunes-nowplaying-mac</a><br>
|
||||
MIT LICENSE
|
||||
<h5>Google Fonts</h5>
|
||||
<ul>
|
||||
<li>Open Sans:<a target="_blank" href="http://www.apache.org/licenses/LICENSE-2.0"> Apache License, Version 2.0 </a></li>
|
||||
<li>Material Icons:<a target="_blank" href="http://www.apache.org/licenses/LICENSE-2.0"> Apache License, Version 2.0 </a></li>
|
||||
<li>IBM Plex Mono:<a target="_blank" href="http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL_web"> Open Font License </a></li>
|
||||
</ul>
|
||||
<h5>emoji-data</h5>
|
||||
The MIT License (MIT)<br>
|
||||
<br>
|
||||
Copyright (c) 2013 Cal Henderson<br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.<br>
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.<br>
|
||||
<h5>#InstanceTicker</h5>
|
||||
The MIT License (MIT)<br>
|
||||
<br>
|
||||
ORIGINAL CSS © 小田急don <a href="https://odakyu.app/@ars42525">https://odakyu.app/@ars42525</a><br>
|
||||
#InstanceTicker © weep.me <a href="https://weep.me/@weep">https://weep.me/@weep</a><br>
|
||||
<br>
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:<br>
|
||||
<br>
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.<br>
|
||||
<br>
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.<br>
|
||||
</article>
|
||||
<a href="setting.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i class="material-icons left">undo</i>戻る</a>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
</body>
|
|
@ -1,476 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="ja" style="overflow:scroll">
|
||||
|
||||
<head>
|
||||
<title>Settings - TheDesk</title>
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</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">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
input {
|
||||
max-height: 50px !important
|
||||
}
|
||||
|
||||
.pcr-result {
|
||||
height: 1rem !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body id="mainView" style="overflow-y:scroll">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ja.js"></script>
|
||||
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
|
||||
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||
<script type="text/javascript" src="setting.vue.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
|
||||
<h4>設定</h4>
|
||||
<ul class="collapsible" data-collapsible="accordion">
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">desktop_windows</i>環境設定
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>言語</h5>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
|
||||
<a onclick="changelang('ja')" class="pointer" style="margin-right:5px;">日本語</a><a onclick="changelang('en')" class="pointer" style="margin-right:5px;">English</a><a onclick="changelang('ps')" class="pointer" style="margin-right:5px;">Crowdin translate system(beta)</a><a onclick="changelang('bg')" class="pointer" style="margin-right:5px;">български</a><a onclick="changelang('cs')" class="pointer" style="margin-right:5px;">Česky</a><a onclick="changelang('de')" class="pointer" style="margin-right:5px;">Deutsch</a>
|
||||
<h5>設定のインポートとエクスポート</h5>
|
||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||
style="width:100%; max-width:200px;">エクスポート</button>
|
||||
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||
style="width:100%; max-width:200px;">インポート</button>
|
||||
<div id="envView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">通知テスト</a><br></template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">変更</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>フォント</h5>
|
||||
「選択」を押してフォントを選んでください。(Linuxでは動きません)<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>
|
||||
<br>
|
||||
<input type="text" style="width:150px" id="font">
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="settings()">設定</button>
|
||||
<br>
|
||||
<h5>デフォルトの保存先</h5>
|
||||
画像ダウンロードやスクリーンショットに影響します。<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">変更</button>
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">color_lens</i>テーマの設定
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h4>テーマの選択</h4>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<span>Black</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<span>White</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo"
|
||||
value="indigo" />
|
||||
<span>Indigo<span class="imas hide">(エンドレスナイト)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<span>Brown<span class="imas hide">(ビタースイート・タイム)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<span>Green<span class="imas hide">(ユースフルロマンス)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="blue" value="blue" />
|
||||
<span>Blue<span class="imas hide">(渚の花嫁)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom"
|
||||
value="custom" />
|
||||
<span>custom</span>
|
||||
</label>
|
||||
<div style="width:300px" id="sel-selector">
|
||||
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||
</div>
|
||||
<h4>カスタムテーマの作成・編集</h4>
|
||||
<div style="width:300px" id="edit-selector" data-add="新規作成">
|
||||
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||
<option value="add_new">新規作成</option>
|
||||
</select>
|
||||
</div>
|
||||
<h5>名前</h5>
|
||||
<input type="text" style="width:300px" id="custom_name" placeholder="名前...">
|
||||
<h5>説明</h5>
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="説明..."></textarea></div>
|
||||
<h5>色の系統</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||
checked="true" />
|
||||
<span>Dark</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>補助要素に使われる背景色
|
||||
<div id="color-picker0-wrap">
|
||||
<div class="color-picker" id="color-picker0"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker0_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Secondary</h5>全体の背景色など
|
||||
<div id="color-picker1-wrap">
|
||||
<div class="color-picker" id="color-picker1"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker1_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Texts</h5>テキストの色
|
||||
<div id="color-picker2-wrap">
|
||||
<div class="color-picker" id="color-picker2"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker2_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Accent</h5>ブーストの背景色など
|
||||
<div id="color-picker3-wrap">
|
||||
<div class="color-picker" id="color-picker3"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker3_value">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn-large waves-effect" onclick="customComp()">変更</button> <button
|
||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">削除</button><br><br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
|
||||
placeholder="JSON style" readonly><br>
|
||||
このコードは他のTheDeskなどとシェアできます。このコードをMiASに貼ることはご遠慮ください。詳細:<a href=\"https://thedesk.top/mias.html\" target=\"_blank\">テーマ互換性</a>
|
||||
<h4>カスタムテーマのインポート</h4>
|
||||
<a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>上の80を超えるテーマを張り付けることもできます。<br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
|
||||
placeholder="JSON/JSON5 style">
|
||||
<button class="btn waves-effect" onclick="customImp()">インポート</button><br>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">reorder</i>タイムラインの設定
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="tlView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">変更</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</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>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">send</i>投稿設定
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="postView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span></label>
|
||||
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">変更</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">keyboard</i>キーボードショートカットの設定
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>簡単文字入力</h5>
|
||||
絵文字やタグ、>BTなどを登録しておくとすぐに入力できます。<br>
|
||||
Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1">
|
||||
<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">
|
||||
<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">
|
||||
<button onclick="oks(3)" class="btn waves-effect" style="width:100px;">設定</button><br><br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">bookmark</i>ミュート・強調の設定
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>クライアントミュート</h5>
|
||||
<div id="mute-cli"></div>
|
||||
<h5>クライアント強調</h5>
|
||||
各トゥートのクライアントをクリックすると設定できます。
|
||||
<h5>ワードミュート</h5>
|
||||
Enterで確定<br>
|
||||
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">設定</button>
|
||||
<h5>ワード強調</h5>
|
||||
Enterで確定<br>
|
||||
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||
<button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">設定</button>
|
||||
<h5>ユーザー強調</h5>
|
||||
各ユーザーのデータ表示画面で設定できます。
|
||||
<span class="emphasized"> 強調色(テーマによって異なります。) </span>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="fab fa-spotify"></i>SpotifyとNowPlayingの設定
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<br><br>
|
||||
<i class="material-icons" style="font-size:24px;">music_note</i>ボタンから簡単にNowPlayingができます。<br>
|
||||
<h5>アカウントの連携</h5>
|
||||
APIの性質上,thedesk.topへアクセスします。<br>
|
||||
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||
onclick="spotifyAuth()" class="btn waves-effect" style="width:100px;">設定</button></div>
|
||||
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i
|
||||
class="fa fa-spotify left"></i>接続</a>
|
||||
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
|
||||
class="fa fa-spotify left"></i>切断</a>
|
||||
<h5>テンプレートの編集</h5>
|
||||
以下を編集してテンプレートを変更できます。<br>
|
||||
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||
{url}</textarea><br>
|
||||
Spotify:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/{url}:各曲のSpotifyのURL<br>
|
||||
macOS:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/作曲家{composer}/サンプルレート{hz}/ビットレート{bitRate}/ジャンル{genre}<br>
|
||||
<br>
|
||||
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">設定</button>
|
||||
<h5>アルバムアートワークを添付する(Spotify)</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||
value="yes" />
|
||||
<span>はい</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||
value="no" />
|
||||
<span>いいえ</span>
|
||||
</label>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">hearing</i>読み上げの設定
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>読み上げの速さ</h5>
|
||||
1-100まで、デフォルトは10。<br>
|
||||
<p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>読み上げの高さ</h5>
|
||||
0-100まで、デフォルトは50。(大きくなるほど高い)<br>
|
||||
<p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>読み上げの音量</h5>
|
||||
0-100まで、デフォルトは100。<br>
|
||||
<p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>テスト</h5>
|
||||
<input type="text" style="width:350px" id="voicetxt" value="これはテスト音声です。TheDeskはオープンソースのPC向けマストドンクライアントです。マルチサーバーやマルチカラムに対応しています。">
|
||||
<button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()"
|
||||
id="testplay">再生/停止</button><br>
|
||||
<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">設定</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i
|
||||
class="material-icons left">undo</i>戻る</a>
|
||||
<br>
|
||||
<br>キーボードショートカット一覧
|
||||
<li>Ctrl+1-9:1番目~9番目のTLにスクロール</li>
|
||||
<li>N:投稿パネルを開く</li>
|
||||
<li>X:投稿パネルを開閉</li>
|
||||
<li>Ctrl+Enter:投稿</li>
|
||||
<li>Ctrl+Enter+Shift:投稿(セカンダリートゥート)</li>
|
||||
<li>Alt+Enter:セカンダリートゥートボタン</li>
|
||||
<li>Ctrl+E:全ての通知を既読にする</li>
|
||||
<li>Ctrl+U:一番上の一番左のトゥートを選択</li>
|
||||
<li>Esc:投稿パネルを消す</li>
|
||||
<li>F5:スーパーリロード</li>
|
||||
<li>Ctrl+Shift+C:入力内容を消す</li>
|
||||
<li>Ctrl+Shift+S:設定</li>
|
||||
<li>Ctrl+Shift+M:アカウントマネージャ</li>
|
||||
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||
<li>Ctrl+Shift+P:現在選択中のプロフィール</li>
|
||||
<li>←/→:イメージビューワー起動時に画像切り替え</li>
|
||||
<li>マウスホイール:イメージビューワー時に拡大縮小</li>
|
||||
<div class="hide kirishima">
|
||||
以下Markdownに対応したインスタンスのみ。
|
||||
<br>
|
||||
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||
以下アスタルテにログインしている場合のみ
|
||||
<br>
|
||||
<li>Ctrl+R:
|
||||
<a href="https://astarte.thedesk.top">アスタルテ暇人ランキング</a>を開く
|
||||
</li><br>
|
||||
選択時
|
||||
<li>F:お気に入り登録</li>
|
||||
<li>B:ブースト</li>
|
||||
<li>R:返信</li>
|
||||
</div>
|
||||
<button class="btn waves-effect red" style="width:100%; max-width:500px;"
|
||||
onclick="if(confirm('全てのデータを削除します。この操作は取り消せません。')){ localStorage.clear(); location.href='index.html'; }"><i
|
||||
class="material-icons left">delete</i>初期化</button><br><br>
|
||||
<button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i
|
||||
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
|
||||
class="material-icons left">web</i>公式HP</a>
|
||||
<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>
|
||||
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>支援(Patreon)</a>
|
||||
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||
style="width:100%; max-width:500px; background-color: #f6c915"><i class="material-icons left">trending_up</i>支援(Liberapay)</a>
|
||||
<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</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fab fa-github left"></i>GitHub</a>
|
||||
<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="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||
class="pointer">アップデートを確認</a><br>
|
||||
<a href="oss.html">OSS License(オープンソースライセンス)</a><br>
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
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
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
|
@ -1,552 +0,0 @@
|
|||
var yesno = [
|
||||
{
|
||||
text: "はい",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "いいえ",
|
||||
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 = [
|
||||
{
|
||||
id: "popup",
|
||||
storage: "popup",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 0,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "新規通知のポップアップお知らせの表示秒数",
|
||||
desc: "0に設定すると表示されません",
|
||||
after: "秒"
|
||||
}
|
||||
}, {
|
||||
id: "notf",
|
||||
storage: "nativenotf",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "ネイティブ通知設定",
|
||||
desc: "Portableバージョンでは表示できません。",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "width",
|
||||
storage: "width",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 300,
|
||||
text: {
|
||||
head: "マルチカラムの最低横幅",
|
||||
desc: "画面全体の横幅÷コラム数がこの値を超えた時、横スクロールとなります。",
|
||||
after: "px 以上"
|
||||
}
|
||||
}, {
|
||||
id: "fixwidth",
|
||||
storage: "fixwidth",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 300,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "TweetDeckの限定の最低横幅",
|
||||
desc: "",
|
||||
after: "px 以上"
|
||||
}
|
||||
}, {
|
||||
id: "size",
|
||||
storage: "size",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 13,
|
||||
text: {
|
||||
head: "フォントサイズ",
|
||||
desc: "<span style=\"font-size:13px\">13px(絶対指定)</span>",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ha",
|
||||
storage: "ha",
|
||||
checkbox: true,
|
||||
setValue: false,
|
||||
text: {
|
||||
head: "ハードウェアアクセラレーションの無効化",
|
||||
desc: "表示(特に設定画面)が乱れる場合に「はい」を選択してください。自動で再起動します。",
|
||||
checkbox: [
|
||||
{
|
||||
text: "はい",
|
||||
value: "true"
|
||||
}, {
|
||||
text: "いいえ",
|
||||
value: "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
];
|
||||
var tlConstruction = [
|
||||
{
|
||||
id: "time",
|
||||
storage: "datetype",
|
||||
checkbox: true,
|
||||
setValue: "absolute",
|
||||
text: {
|
||||
head: "時間表記設定",
|
||||
desc: "相対時間の例:\"1分前\",\"3日前\"<br>絶対時間の例\"23:25:21\",\"2017年12月30日 23:59:00\"<br>混合表示は、当日のトゥートのみ相対、それ以外は絶対で表示 ",
|
||||
checkbox: [
|
||||
{
|
||||
text: "相対時間",
|
||||
value: "relative"
|
||||
}, {
|
||||
text: "絶対時間",
|
||||
value: "absolute"
|
||||
}, {
|
||||
text: "両方表示",
|
||||
value: "double"
|
||||
}, {
|
||||
text: "混合表示",
|
||||
value: "medium"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "ul",
|
||||
storage: "locale",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "独自ロケールを使用",
|
||||
desc: "対応サーバーではそのサーバーにあわせた言語表示ができます。",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "nsfw",
|
||||
storage: "nsfw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "非表示設定の画像を隠す",
|
||||
desc: "きつめのぼかしがかかります。",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "cw",
|
||||
storage: "cw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "非表示設定のテキスト(CW)を隠す",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "rp",
|
||||
storage: "replyct",
|
||||
checkbox: true,
|
||||
setValue: "hidden",
|
||||
text: {
|
||||
head: "リプライ数表示",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "2以上のとき1+と表示",
|
||||
value: "hidden"
|
||||
}, {
|
||||
text: "2以上のとき1+と表示",
|
||||
value: "all"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "gif",
|
||||
storage: "gif",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "アイコンのアニメーションを再生する",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "tag",
|
||||
storage: "tag-range",
|
||||
checkbox: true,
|
||||
setValue: "local",
|
||||
text: {
|
||||
head: "タグタイムラインの表示範囲",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "接続しているサーバー",
|
||||
value: "all"
|
||||
}, {
|
||||
text: "検索対象のサーバーのみ",
|
||||
value: "local"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "via",
|
||||
storage: "viashow",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "viaを表示する",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "mov",
|
||||
storage: "mouseover",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "アクションメニューを非表示",
|
||||
desc: "「マウスオーバー」はすこし鬱陶しいと思うかもしれません。",
|
||||
checkbox: [
|
||||
{
|
||||
text: "マウスオーバーで表示",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "クリックで表示",
|
||||
value: "click"
|
||||
}, {
|
||||
text: "いいえ",
|
||||
value: "no"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "notfm",
|
||||
storage: "setasread",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "通知を開いているとき、通知新着お知らせを表示する",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "sentence",
|
||||
storage: "sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "行 以上 または" }
|
||||
}, {
|
||||
id: "letters",
|
||||
storage: "letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "文字 以上" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "指定行数以上を折りたたむ",
|
||||
desc: "5文字以下のトゥートは折りたたみません。また、折りたたみ時は改行が描画されません。改行のみを行数とカウントします。",
|
||||
}
|
||||
}, {
|
||||
id: "img-height",
|
||||
storage: "img-height",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 80,
|
||||
setValue: 200,
|
||||
text: {
|
||||
head: "画像の高さ",
|
||||
desc: "オプション:「full」と指定すると全ての画像をクロップしません。",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ticker",
|
||||
storage: "ticker_ok",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "#InstanceTickerを使う",
|
||||
desc: "トゥートした人の所属サーバーをわかりやすく彩ります(自サーバー以外のトゥート向け)。<a href=\"https://https://wee.jp/\">#InstanceTickerについて</a> Copyright 2018 weepjp, kyori19.",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "anime",
|
||||
storage: "animation",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "タイムラインのアニメーション",
|
||||
desc: "",
|
||||
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 = [
|
||||
{
|
||||
id: "cw-text",
|
||||
storage: "cw-text",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 150,
|
||||
setValue: "",
|
||||
text: {
|
||||
head: "デフォルトの警告文",
|
||||
desc: "",
|
||||
after: ""
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "cw_sentence",
|
||||
storage: "cw_sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "行 以上 または" }
|
||||
}, {
|
||||
id: "cw_letters",
|
||||
storage: "cw_letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "文字 以上" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "長文投稿時に警告",
|
||||
desc: "下で指定した以上のトゥートを投稿するときにCWするかのダイアログを表示します。",
|
||||
}
|
||||
}, {
|
||||
id: "cws",
|
||||
storage: "always-cw",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "標準でCWを設定",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "vis",
|
||||
storage: "vis",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "デフォルトの公開設定",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "公開(Public)",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "未収載(Unlisted)",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "非公開(Private)",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "ダイレクト(Direct)",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "前回の投稿設定を記憶する(サーバーごとに記憶されます)",
|
||||
value: "memory"
|
||||
}, {
|
||||
text: "マストドンアカウント設定の既定値",
|
||||
value: "useapi"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "img",
|
||||
storage: "img",
|
||||
checkbox: true,
|
||||
setValue: "no-act",
|
||||
text: {
|
||||
head: "画像投稿設定",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "画像を投稿し、画像のURLを最後に表示",
|
||||
value: "url"
|
||||
}, {
|
||||
text: "画像を投稿するがURLは表示しない",
|
||||
value: "no-act"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "box",
|
||||
storage: "box",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "投稿ボックスの挙動",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "たたむ",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "投稿後も隠さない",
|
||||
value: "no"
|
||||
}, {
|
||||
text: "枠外クリックで閉じない(起動時に展開)",
|
||||
value: "absolute"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "quote",
|
||||
storage: "quote",
|
||||
checkbox: true,
|
||||
setValue: "nothing",
|
||||
text: {
|
||||
head: "引用形式",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "URLのみ",
|
||||
value: "simple"
|
||||
}, {
|
||||
text: "URLとアカウント名(相手に通知)",
|
||||
value: "mention"
|
||||
}, {
|
||||
text: "本文・URL・アカウント名",
|
||||
value: "full"
|
||||
}, {
|
||||
text: "使わない(TL上にボタンも表示されません)",
|
||||
value: "nothing"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "main",
|
||||
storage: "mainuse",
|
||||
checkbox: true,
|
||||
setValue: "remain",
|
||||
text: {
|
||||
head: "投稿後や起動時のアカウント",
|
||||
desc: "メインアカウントはアカウント設定で指定できます。投稿以外のアカウント選択にも影響します。",
|
||||
checkbox: [
|
||||
{
|
||||
text: "最後に使用したアカウント",
|
||||
value: "remain"
|
||||
}, {
|
||||
text: "メインアカウント",
|
||||
value: "main"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "sec",
|
||||
storage: "sec",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "セカンダリートゥートボタン",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "表示しない",
|
||||
value: "nothing"
|
||||
}, {
|
||||
text: "公開(Public)",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "未収載(Unlisted)",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "非公開(Private)",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "ダイレクト(Direct)",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "ローカル限定",
|
||||
value: "local",
|
||||
kirishima: true,
|
||||
kirishimaText: "非対応インスタンスでは「未収載」になります。"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "zero",
|
||||
storage: "emoji-zero-width",
|
||||
checkbox: true,
|
||||
setValue: "normal",
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "絵文字にゼロ幅スペースを使う",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,254 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="ja">
|
||||
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Open Sans';
|
||||
-webkit-app-region: drag;
|
||||
cursor: move;
|
||||
padding: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#start {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100vw;
|
||||
height: calc(100vh - 2.5rem);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#checkbox {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
a,
|
||||
button,
|
||||
input,
|
||||
label,
|
||||
i {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
|
||||
#updskip {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.skipbtn {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px solid;
|
||||
margin-left: 5px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1px solid;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.skipbtn:hover {
|
||||
background-color: #b3e5fc;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#prog {
|
||||
font-size: 200%;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||
<!--a href="update.html">Reload</a-->
|
||||
<div id="start">
|
||||
<div id="box" class="show">
|
||||
<h2>TheDesk</h2>
|
||||
<p>アップデートがあります</p>
|
||||
<span id="now"></span>→<b id="ver"></b><br>
|
||||
<span id="det"></span><br>
|
||||
<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;">ポータブル版</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;">開始</button>
|
||||
<br>
|
||||
問題が発生しますか?<br><a href=\"https://thedesk.top\">公式HP</a>からダウンロードをお試しください。
|
||||
</div>
|
||||
<div id="skipper" class="hide">
|
||||
<h4>アップデートは必ず行ってください</h4>
|
||||
アップデートをスキップする<br>
|
||||
<div id="updskip">
|
||||
<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>次のバージョンが出るまで</div>
|
||||
</a>
|
||||
</div>
|
||||
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">アップデートを続行</a>
|
||||
</div>
|
||||
<div id="dlnow" class="hide">
|
||||
<h4>ダウンロード中</h4>
|
||||
<h4 id="prog"></h4>
|
||||
<div class="progress">
|
||||
<div class="determinate" style="width: 0%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script>
|
||||
function skipper() {
|
||||
$("#dlnow").addClass("hide");
|
||||
$("#box").toggleClass("show");
|
||||
if ($("#box").hasClass("hide") && $("#skipper").hasClass("hide")) {
|
||||
$("#skipper").removeClass("hide");
|
||||
$("#skipper").addClass("show");
|
||||
} else {
|
||||
$("#box").toggleClass("hide");
|
||||
$("#skipper").toggleClass("hide");
|
||||
$("#skipper").toggleClass("show");
|
||||
}
|
||||
}
|
||||
verck();
|
||||
function update(sel) {
|
||||
$("#box").toggleClass("show");
|
||||
$("#box").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("show");
|
||||
$("#prog").text("");
|
||||
var bit = localStorage.getItem("bit");
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
if (sel == "install") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64"];
|
||||
var file = "TheDesk-setup.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32"];
|
||||
var file = "TheDesk-setup-ia32.exe";
|
||||
}
|
||||
} else if (sel == "portable") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64p"];
|
||||
var file = "TheDesk.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32p"];
|
||||
var file = "TheDesk-ia32.exe";
|
||||
}
|
||||
} else if (sel == "linux") {
|
||||
if (bit == "x64") {
|
||||
var url = json["linuxx64"];
|
||||
var file = "TheDesk-linux-x64.zip";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["linuxia64"];
|
||||
var file = "TheDesk-linux-ia32.zip";
|
||||
}
|
||||
} else if (sel == "mac") {
|
||||
var url = json["mac"];
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
}
|
||||
postMessage(["downloadButton", [url, file]], "*")
|
||||
});
|
||||
|
||||
}
|
||||
function quit() {
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
function updateProg(arg) {
|
||||
console.log(arg);
|
||||
$(".determinate").css("width", arg * 100 + "%");
|
||||
$("#prog").text(Math.floor(arg * 100) + "%");
|
||||
}
|
||||
function updateMess(arg) {
|
||||
console.log(arg);
|
||||
$("#prog").text(arg);
|
||||
}
|
||||
function verck() {
|
||||
var platform = localStorage.getItem("platform");
|
||||
var bit = localStorage.getItem("bit");
|
||||
if (platform == "win32") {
|
||||
$('.windows').removeClass("hide")
|
||||
} else if (platform == "linux") {
|
||||
$('.linux').removeClass("hide")
|
||||
} else if (platform == "darwin") {
|
||||
$('.mac').removeClass("hide")
|
||||
}
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
console.log(json);
|
||||
if (platform == "win32") {
|
||||
$("#ver").text(json.desk);
|
||||
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"));
|
||||
|
||||
});
|
||||
}
|
||||
function nextv() {
|
||||
localStorage.setItem("new-ver-skip", "true");
|
||||
window.close();
|
||||
}
|
||||
function enc(ver) {
|
||||
var ver = ver.replace(/\s/g, "");
|
||||
var ver = ver.replace(/\(/g, "-");
|
||||
var ver = ver.replace(/\)/g, "");
|
||||
var ver = ver.replace(/\[/g, "_");
|
||||
var ver = ver.replace(/\]/g, "");
|
||||
return ver;
|
||||
}
|
||||
</script>
|
|
@ -1,158 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="ps">
|
||||
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<style>
|
||||
.acct {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 400px;
|
||||
background-color: #9e9e9e;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
#acct-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
color: white;
|
||||
align-items: flex-start
|
||||
}
|
||||
|
||||
.lts {
|
||||
font-size: 150%
|
||||
}
|
||||
|
||||
.colorsel {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.card .colorsel div:not(.exc) {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.card .colorsel div.exc {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.first {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.first .hide-first {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ps.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false;
|
||||
</script>
|
||||
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<div class="hide-first">
|
||||
<a href="index.html" class="btn waves-effect orange nex"
|
||||
style="width:100%; max-width:200px;">crwdns366:0crwdne366:0</a><br>
|
||||
<h5>crwdns365:0crwdne365:0</h5>
|
||||
<div id="acct-list"></div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
<div>
|
||||
<h5>crwdns367:0crwdne367:0</h5><br>
|
||||
<div id="add">
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
crwdns368:0crwdne368:0<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>crwdns369:0crwdne369:0</span>
|
||||
</label>
|
||||
<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>crwdns382:0crwdne382:0</span>
|
||||
</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
<span style="font-family:Open Sans;">Supports</span>
|
||||
<div id="support" class="collection transparent"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="auth" style="display:none">
|
||||
crwdns372:0crwdne372:0<br>
|
||||
<input type="text" id="code" placeholder="crwdns373:0crwdne373:0">
|
||||
<button class="btn waves-effect" onclick="code()">Auth</button><br>
|
||||
</div>
|
||||
<div id="misskeylogin" style="display:none">
|
||||
<h5>AppSecret</h5>
|
||||
crwdns383:0crwdne383:0<br>
|
||||
<input type="hidden" id="misskey-url">
|
||||
<input type="text" id="misskey-key" placeholder="crwdns373:0crwdne373:0">
|
||||
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide-first">
|
||||
<h5>crwdns370:0crwdne370:0</h5>
|
||||
<div class="input-field" style="width:300px"><span data-trans="your_acct">crwdns371:0crwdne371:0</span>
|
||||
<br>
|
||||
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
|
||||
<label></label>
|
||||
</div>
|
||||
Some instance data by <a href="https://instances.social" target="_blank">instances.social API</a><br>
|
||||
<h5 id="ins-title"></h5>
|
||||
Administered by:<a id="ins-admin"></a><br>
|
||||
<span id="ins-desc"></span><br>
|
||||
<img src="../../img/loading.svg" id="ins-prof" width="200"><br>
|
||||
<br>
|
||||
crwdns374:0crwdne374:0:<span id="ins-name"></span><br>
|
||||
crwdns375:0crwdne375:0:<span id="ins-connect"></span>crwdns381:0crwdne381:0<br>
|
||||
crwdns376:0crwdne376:0:<span id="ins-toot"></span>crwdns381:0crwdne381:0<br>
|
||||
crwdns377:0crwdne377:0:<span id="ins-user"></span>crwdns377:0crwdne377:0<br>
|
||||
crwdns379:0crwdne379:0:<span id="ins-per"></span>%<br>
|
||||
crwdns380:0crwdne380:0:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
|
||||
</div>
|
||||
<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/common/sha256.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/tkn.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,476 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="ps" style="overflow:scroll">
|
||||
|
||||
<head>
|
||||
<title>Settings - TheDesk</title>
|
||||
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</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">
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
input {
|
||||
max-height: 50px !important
|
||||
}
|
||||
|
||||
.pcr-result {
|
||||
height: 1rem !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body id="mainView" style="overflow-y:scroll">
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ps.js"></script>
|
||||
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
|
||||
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||
<script type="text/javascript" src="setting.vue.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
|
||||
<h4>crwdns524:0crwdne524:0</h4>
|
||||
<ul class="collapsible" data-collapsible="accordion">
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">desktop_windows</i>crwdns529:0crwdne529:0
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>crwdns530:0crwdne530:0</h5>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
|
||||
<a onclick="changelang('ja')" class="pointer" style="margin-right:5px;">日本語</a><a onclick="changelang('en')" class="pointer" style="margin-right:5px;">English</a><a onclick="changelang('ps')" class="pointer" style="margin-right:5px;">Crowdin translate system(beta)</a><a onclick="changelang('bg')" class="pointer" style="margin-right:5px;">български</a><a onclick="changelang('cs')" class="pointer" style="margin-right:5px;">Česky</a><a onclick="changelang('de')" class="pointer" style="margin-right:5px;">Deutsch</a>
|
||||
<h5>crwdns531:0crwdne531:0</h5>
|
||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||
style="width:100%; max-width:200px;">crwdns533:0crwdne533:0</button>
|
||||
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||
style="width:100%; max-width:200px;">crwdns532:0crwdne532:0</button>
|
||||
<div id="envView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">crwdns540:0crwdne540:0</a><br></template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">crwdns528:0crwdne528:0</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>crwdns544:0crwdne544:0</h5>
|
||||
crwdns1900:0crwdne1900:0<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="font()">crwdns1896:0crwdne1896:0</button><br>
|
||||
<div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div>
|
||||
<br>
|
||||
<input type="text" style="width:150px" id="font">
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="settings()">crwdns525:0crwdne525:0</button>
|
||||
<br>
|
||||
<h5>crwdns547:0crwdne547:0</h5>
|
||||
crwdns548:0crwdne548:0<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">crwdns528:0crwdne528:0</button>
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">color_lens</i>crwdns534:0crwdne534:0
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h4>crwdns2422:0crwdne2422:0</h4>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
|
||||
<span>Black</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
|
||||
<span>White</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo"
|
||||
value="indigo" />
|
||||
<span>Indigo<span class="imas hide">(エンドレスナイト)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
|
||||
<span>Brown<span class="imas hide">(ビタースイート・タイム)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
|
||||
<span>Green<span class="imas hide">(ユースフルロマンス)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="blue" value="blue" />
|
||||
<span>Blue<span class="imas hide">(渚の花嫁)</span></span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom"
|
||||
value="custom" />
|
||||
<span>custom</span>
|
||||
</label>
|
||||
<div style="width:300px" id="sel-selector">
|
||||
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||
</div>
|
||||
<h4>crwdns2424:0crwdne2424:0</h4>
|
||||
<div style="width:300px" id="edit-selector" data-add="crwdns2436:0crwdne2436:0">
|
||||
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||
<option value="add_new">crwdns2436:0crwdne2436:0</option>
|
||||
</select>
|
||||
</div>
|
||||
<h5>crwdns2438:0crwdne2438:0</h5>
|
||||
<input type="text" style="width:300px" id="custom_name" placeholder="crwdns2438:0crwdne2438:0...">
|
||||
<h5>crwdns2440:0crwdne2440:0</h5>
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="crwdns2440:0crwdne2440:0..."></textarea></div>
|
||||
<h5>crwdns2426:0crwdne2426:0</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||
checked="true" />
|
||||
<span>Dark</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||
value="light" />
|
||||
<span>Light</span>
|
||||
</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
<h5>Primary</h5>crwdns2430:0crwdne2430:0
|
||||
<div id="color-picker0-wrap">
|
||||
<div class="color-picker" id="color-picker0"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker0_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Secondary</h5>crwdns2428:0crwdne2428:0
|
||||
<div id="color-picker1-wrap">
|
||||
<div class="color-picker" id="color-picker1"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker1_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Texts</h5>crwdns2432:0crwdne2432:0
|
||||
<div id="color-picker2-wrap">
|
||||
<div class="color-picker" id="color-picker2"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker2_value">
|
||||
</div>
|
||||
<div>
|
||||
<h5>Accent</h5>crwdns2434:0crwdne2434:0
|
||||
<div id="color-picker3-wrap">
|
||||
<div class="color-picker" id="color-picker3"></div>
|
||||
</div>
|
||||
<input type="hidden" id="color-picker3_value">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn-large waves-effect" onclick="customComp()">crwdns528:0crwdne528:0</button> <button
|
||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">@@delete@@</button><br><br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
|
||||
placeholder="JSON style" readonly><br>
|
||||
crwdns2442:0crwdne2442:0
|
||||
<h4>crwdns2444:0crwdne2444:0</h4>
|
||||
@@cImpWarn@@<br>
|
||||
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
|
||||
placeholder="JSON/JSON5 style">
|
||||
<button class="btn waves-effect" onclick="customImp()">crwdns532:0crwdne532:0</button><br>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">reorder</i>crwdns550:0crwdne550:0
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="tlView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<label>
|
||||
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span>
|
||||
</label>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">crwdns528:0crwdne528:0</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</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>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">send</i>crwdns587:0crwdne587:0
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<div id="postView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if="item.text.desc">
|
||||
<span v-html="item.text.desc"></span><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
<span>{{check.text}}</span></label>
|
||||
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.doubleText">
|
||||
<template v-for="(textbox, j) in item.data">
|
||||
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||
</template>
|
||||
</template>
|
||||
<template v-else>
|
||||
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||
</template>
|
||||
<button class="btn waves-effect" style="width:100px;"
|
||||
v-on:click="complete(i)">crwdns528:0crwdne528:0</button>
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">keyboard</i>crwdns611:0crwdne611:0
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>crwdns612:0crwdne612:0</h5>
|
||||
crwdns613:0crwdne613:0<br>
|
||||
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>
|
||||
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>
|
||||
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>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">bookmark</i>crwdns614:0crwdne614:0
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>crwdns615:0crwdne615:0</h5>
|
||||
<div id="mute-cli"></div>
|
||||
<h5>crwdns616:0crwdne616:0</h5>
|
||||
crwdns617:0crwdne617:0
|
||||
<h5>crwdns619:0crwdne619:0</h5>
|
||||
crwdns618:0crwdne618:0<br>
|
||||
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button>
|
||||
<h5>crwdns620:0crwdne620:0</h5>
|
||||
crwdns618:0crwdne618:0<br>
|
||||
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||
<button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button>
|
||||
<h5>crwdns621:0crwdne621:0</h5>
|
||||
crwdns622:0crwdne622:0
|
||||
<span class="emphasized"> crwdns623:0crwdne623:0 </span>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="fab fa-spotify"></i>crwdns624:0crwdne624:0
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<br><br>
|
||||
crwdns625:0crwdne625:0<i class="material-icons" style="font-size:24px;">music_note</i>crwdns626:0crwdne626:0<br>
|
||||
<h5>crwdns627:0crwdne627:0</h5>
|
||||
crwdns628:0crwdne628:0<br>
|
||||
<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>
|
||||
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i
|
||||
class="fa fa-spotify left"></i>crwdns629:0crwdne629:0</a>
|
||||
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
|
||||
class="fa fa-spotify left"></i>crwdns630:0crwdne630:0</a>
|
||||
<h5>@@templateedit@@</h5>
|
||||
@@templateeditwarn@@<br>
|
||||
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||
{url}</textarea><br>
|
||||
@@template1@@<br>
|
||||
@@template2@@<br>
|
||||
@@template3@@<br>
|
||||
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button>
|
||||
<h5>crwdns635:0crwdne635:0</h5>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||
value="yes" />
|
||||
<span>crwdns526:0crwdne526:0</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||
value="no" />
|
||||
<span>crwdns527:0crwdne527:0</span>
|
||||
</label>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">hearing</i>crwdns636:0crwdne636:0
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>crwdns637:0crwdne637:0</h5>
|
||||
crwdns638:0crwdne638:0<br>
|
||||
<p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>crwdns639:0crwdne639:0</h5>
|
||||
crwdns640:0crwdne640:0<br>
|
||||
<p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>crwdns641:0crwdne641:0</h5>
|
||||
crwdns642:0crwdne642:0<br>
|
||||
<p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>crwdns643:0crwdne643:0</h5>
|
||||
<input type="text" style="width:350px" id="voicetxt" value="crwdns644:0crwdne644:0">
|
||||
<button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()"
|
||||
id="testplay">crwdns645:0crwdne645:0</button><br>
|
||||
<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">crwdns525:0crwdne525:0</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<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>
|
||||
<br>
|
||||
<br>crwdns647:0crwdne647:0
|
||||
<li>Ctrl+1-9:crwdns648:0crwdne648:0</li>
|
||||
<li>N:crwdns649:0crwdne649:0</li>
|
||||
<li>X:crwdns650:0crwdne650:0</li>
|
||||
<li>Ctrl+Enter:crwdns651:0crwdne651:0</li>
|
||||
<li>Ctrl+Enter+Shift:crwdns1924:0crwdne1924:0</li>
|
||||
<li>Alt+Enter:crwdns1916:0crwdne1916:0</li>
|
||||
<li>Ctrl+E:crwdns652:0crwdne652:0</li>
|
||||
<li>Ctrl+U:@@keyselecttop@@</li>
|
||||
<li>Esc:crwdns653:0crwdne653:0</li>
|
||||
<li>F5:crwdns654:0crwdne654:0</li>
|
||||
<li>Ctrl+Shift+C:crwdns655:0crwdne655:0</li>
|
||||
<li>Ctrl+Shift+S:crwdns524:0crwdne524:0</li>
|
||||
<li>Ctrl+Shift+M:crwdns656:0crwdne656:0</li>
|
||||
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||
<li>Ctrl+Shift+P:crwdns657:0crwdne657:0</li>
|
||||
<li>←/→:crwdns658:0crwdne658:0</li>
|
||||
<li>crwdns659:0crwdne659:0</li>
|
||||
<div class="hide kirishima">
|
||||
以下Markdownに対応したインスタンスのみ。
|
||||
<br>
|
||||
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||
以下アスタルテにログインしている場合のみ
|
||||
<br>
|
||||
<li>Ctrl+R:
|
||||
<a href="https://astarte.thedesk.top">アスタルテ暇人ランキング</a>を開く
|
||||
</li><br>
|
||||
@@whenSelected@@
|
||||
<li>F:@@fav@@</li>
|
||||
<li>B:@@bt@@</li>
|
||||
<li>R:@@reply@@</li>
|
||||
</div>
|
||||
<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
|
||||
class="material-icons left">delete</i>crwdns660:0crwdne660:0</button><br><br>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>crwdns664:0crwdne664:0(Patreon)</a>
|
||||
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||
style="width:100%; max-width:500px; background-color: #f6c915"><i class="material-icons left">trending_up</i>crwdns664:0crwdne664:0(Liberapay)</a>
|
||||
<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</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fab fa-github left"></i>GitHub</a>
|
||||
<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="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||
class="pointer">crwdns667:0crwdne667:0</a><br>
|
||||
<a href="oss.html">OSS Licensecrwdns668:0crwdne668:0</a><br>
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
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
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
|
@ -1,552 +0,0 @@
|
|||
var yesno = [
|
||||
{
|
||||
text: "crwdns526:0crwdne526:0",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "crwdns527:0crwdne527:0",
|
||||
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 = [
|
||||
{
|
||||
id: "popup",
|
||||
storage: "popup",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 0,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "crwdns1898:0crwdne1898:0",
|
||||
desc: "crwdns536:0crwdne536:0",
|
||||
after: "crwdns537:0crwdne537:0"
|
||||
}
|
||||
}, {
|
||||
id: "notf",
|
||||
storage: "nativenotf",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "crwdns538:0crwdne538:0",
|
||||
desc: "crwdns539:0crwdne539:0",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "width",
|
||||
storage: "width",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 300,
|
||||
text: {
|
||||
head: "crwdns2376:0crwdne2376:0",
|
||||
desc: "crwdns542:0crwdne542:0",
|
||||
after: "px crwdns543:0crwdne543:0"
|
||||
}
|
||||
}, {
|
||||
id: "fixwidth",
|
||||
storage: "fixwidth",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
setValue: 300,
|
||||
width: 50,
|
||||
text: {
|
||||
head: "crwdns2378:0crwdne2378:0",
|
||||
desc: "crwdns2380:0crwdne2380:0",
|
||||
after: "px crwdns543:0crwdne543:0"
|
||||
}
|
||||
}, {
|
||||
id: "size",
|
||||
storage: "size",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 50,
|
||||
setValue: 13,
|
||||
text: {
|
||||
head: "crwdns546:0crwdne546:0",
|
||||
desc: "<span style=\"font-size:13px\">13px(crwdns549:0crwdne549:0)</span>",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ha",
|
||||
storage: "ha",
|
||||
checkbox: true,
|
||||
setValue: false,
|
||||
text: {
|
||||
head: "@@hardwareAcceleration@@",
|
||||
desc: "@@hardwareAccelerationWarn@@",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns526:0crwdne526:0",
|
||||
value: "true"
|
||||
}, {
|
||||
text: "crwdns527:0crwdne527:0",
|
||||
value: "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
];
|
||||
var tlConstruction = [
|
||||
{
|
||||
id: "time",
|
||||
storage: "datetype",
|
||||
checkbox: true,
|
||||
setValue: "absolute",
|
||||
text: {
|
||||
head: "crwdns551:0crwdne551:0",
|
||||
desc: "crwdns552:0crwdne552:0<br>crwdns553:0crwdne553:0<br>crwdns554:0crwdne554:0",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns555:0crwdne555:0",
|
||||
value: "relative"
|
||||
}, {
|
||||
text: "crwdns1902:0crwdne1902:0",
|
||||
value: "absolute"
|
||||
}, {
|
||||
text: "crwdns557:0crwdne557:0",
|
||||
value: "double"
|
||||
}, {
|
||||
text: "crwdns558:0crwdne558:0",
|
||||
value: "medium"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "ul",
|
||||
storage: "locale",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "crwdns1904:0crwdne1904:0",
|
||||
desc: "crwdns1906:0crwdne1906:0",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "nsfw",
|
||||
storage: "nsfw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "crwdns561:0crwdne561:0",
|
||||
desc: "crwdns562:0crwdne562:0",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "cw",
|
||||
storage: "cw",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "crwdns563:0crwdne563:0",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "rp",
|
||||
storage: "replyct",
|
||||
checkbox: true,
|
||||
setValue: "hidden",
|
||||
text: {
|
||||
head: "crwdns564:0crwdne564:0",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns565:0crwdne565:0",
|
||||
value: "hidden"
|
||||
}, {
|
||||
text: "crwdns565:0crwdne565:0",
|
||||
value: "all"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "gif",
|
||||
storage: "gif",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "crwdns567:0crwdne567:0",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "tag",
|
||||
storage: "tag-range",
|
||||
checkbox: true,
|
||||
setValue: "local",
|
||||
text: {
|
||||
head: "crwdns572:0crwdne572:0",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns573:0crwdne573:0",
|
||||
value: "all"
|
||||
}, {
|
||||
text: "crwdns574:0crwdne574:0",
|
||||
value: "local"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "via",
|
||||
storage: "viashow",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "crwdns575:0crwdne575:0",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "mov",
|
||||
storage: "mouseover",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "crwdns576:0crwdne576:0",
|
||||
desc: "crwdns577:0crwdne577:0",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns578:0crwdne578:0",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "crwdns579:0crwdne579:0",
|
||||
value: "click"
|
||||
}, {
|
||||
text: "crwdns527:0crwdne527:0",
|
||||
value: "no"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "notfm",
|
||||
storage: "setasread",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "crwdns580:0crwdne580:0",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "sentence",
|
||||
storage: "sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "crwdns583:0crwdne583:0 crwdns543:0crwdne543:0 crwdns585:0crwdne585:0" }
|
||||
}, {
|
||||
id: "letters",
|
||||
storage: "letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "crwdns584:0crwdne584:0 crwdns543:0crwdne543:0" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "crwdns581:0crwdne581:0",
|
||||
desc: "crwdns582:0crwdne582:0",
|
||||
}
|
||||
}, {
|
||||
id: "img-height",
|
||||
storage: "img-height",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 80,
|
||||
setValue: 200,
|
||||
text: {
|
||||
head: "crwdns586:0crwdne586:0",
|
||||
desc: "@@imgheightwarn@@",
|
||||
after: "px"
|
||||
}
|
||||
}, {
|
||||
id: "ticker",
|
||||
storage: "ticker_ok",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "crwdns1908:0crwdne1908:0",
|
||||
desc: "crwdns1910:0crwdne1910:0",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "anime",
|
||||
storage: "animation",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "crwdns2446:0crwdne2446:0",
|
||||
desc: "",
|
||||
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 = [
|
||||
{
|
||||
id: "cw-text",
|
||||
storage: "cw-text",
|
||||
checkbox: false,
|
||||
doubleText: false,
|
||||
width: 150,
|
||||
setValue: "",
|
||||
text: {
|
||||
head: "crwdns590:0crwdne590:0",
|
||||
desc: "",
|
||||
after: ""
|
||||
}
|
||||
}, {
|
||||
checkbox: false,
|
||||
doubleText: true,
|
||||
data: [
|
||||
{
|
||||
id: "cw_sentence",
|
||||
storage: "cw_sentence",
|
||||
width: 50,
|
||||
setValue: 500,
|
||||
text: { after: "crwdns583:0crwdne583:0 crwdns543:0crwdne543:0 crwdns585:0crwdne585:0" }
|
||||
}, {
|
||||
id: "cw_letters",
|
||||
storage: "cw_letters",
|
||||
width: 50,
|
||||
setValue: 7000,
|
||||
text: { after: "crwdns584:0crwdne584:0 crwdns543:0crwdne543:0" }
|
||||
}
|
||||
],
|
||||
text: {
|
||||
head: "crwdns588:0crwdne588:0",
|
||||
desc: "crwdns589:0crwdne589:0",
|
||||
}
|
||||
}, {
|
||||
id: "cws",
|
||||
storage: "always-cw",
|
||||
checkbox: true,
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "crwdns591:0crwdne591:0",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "vis",
|
||||
storage: "vis",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "crwdns592:0crwdne592:0",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns593:0crwdne593:0",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "crwdns594:0crwdne594:0",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "crwdns595:0crwdne595:0",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "crwdns596:0crwdne596:0",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "crwdns1912:0crwdne1912:0",
|
||||
value: "memory"
|
||||
}, {
|
||||
text: "crwdns1914:0crwdne1914:0",
|
||||
value: "useapi"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "img",
|
||||
storage: "img",
|
||||
checkbox: true,
|
||||
setValue: "no-act",
|
||||
text: {
|
||||
head: "crwdns599:0crwdne599:0",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns600:0crwdne600:0",
|
||||
value: "url"
|
||||
}, {
|
||||
text: "crwdns601:0crwdne601:0",
|
||||
value: "no-act"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "box",
|
||||
storage: "box",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "crwdns568:0crwdne568:0",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns569:0crwdne569:0",
|
||||
value: "yes"
|
||||
}, {
|
||||
text: "crwdns571:0crwdne571:0",
|
||||
value: "no"
|
||||
}, {
|
||||
text: "crwdns570:0crwdne570:0",
|
||||
value: "absolute"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "quote",
|
||||
storage: "quote",
|
||||
checkbox: true,
|
||||
setValue: "nothing",
|
||||
text: {
|
||||
head: "crwdns603:0crwdne603:0",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns604:0crwdne604:0",
|
||||
value: "simple"
|
||||
}, {
|
||||
text: "crwdns605:0crwdne605:0",
|
||||
value: "mention"
|
||||
}, {
|
||||
text: "crwdns606:0crwdne606:0",
|
||||
value: "full"
|
||||
}, {
|
||||
text: "@@notqt@@",
|
||||
value: "nothing"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "main",
|
||||
storage: "mainuse",
|
||||
checkbox: true,
|
||||
setValue: "remain",
|
||||
text: {
|
||||
head: "crwdns607:0crwdne607:0",
|
||||
desc: "crwdns608:0crwdne608:0",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns609:0crwdne609:0",
|
||||
value: "remain"
|
||||
}, {
|
||||
text: "crwdns610:0crwdne610:0",
|
||||
value: "main"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "sec",
|
||||
storage: "sec",
|
||||
checkbox: true,
|
||||
setValue: "public",
|
||||
text: {
|
||||
head: "crwdns1916:0crwdne1916:0",
|
||||
desc: "",
|
||||
checkbox: [
|
||||
{
|
||||
text: "crwdns1920:0crwdne1920:0",
|
||||
value: "nothing"
|
||||
}, {
|
||||
text: "crwdns593:0crwdne593:0",
|
||||
value: "public"
|
||||
}, {
|
||||
text: "crwdns594:0crwdne594:0",
|
||||
value: "unlisted"
|
||||
}, {
|
||||
text: "crwdns595:0crwdne595:0",
|
||||
value: "private"
|
||||
}, {
|
||||
text: "crwdns596:0crwdne596:0",
|
||||
value: "direct"
|
||||
}, {
|
||||
text: "crwdns1922:0crwdne1922:0",
|
||||
value: "local",
|
||||
kirishima: true,
|
||||
kirishimaText: "非対応インスタンスでは「未収載」になります。"
|
||||
}
|
||||
]
|
||||
}
|
||||
}, {
|
||||
id: "zero",
|
||||
storage: "emoji-zero-width",
|
||||
checkbox: true,
|
||||
setValue: "normal",
|
||||
setValue: "no",
|
||||
text: {
|
||||
head: "@@zeroWidthEmoji@@",
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,254 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="ps">
|
||||
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Open Sans';
|
||||
-webkit-app-region: drag;
|
||||
cursor: move;
|
||||
padding: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#start {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100vw;
|
||||
height: calc(100vh - 2.5rem);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#checkbox {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
a,
|
||||
button,
|
||||
input,
|
||||
label,
|
||||
i {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
|
||||
#updskip {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.skipbtn {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
border: 1px solid;
|
||||
margin-left: 5px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1px solid;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.skipbtn:hover {
|
||||
background-color: #b3e5fc;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#prog {
|
||||
font-size: 200%;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||
<!--a href="update.html">Reload</a-->
|
||||
<div id="start">
|
||||
<div id="box" class="show">
|
||||
<h2>TheDesk</h2>
|
||||
<p>crwdns669:0crwdne669:0</p>
|
||||
<span id="now"></span>→<b id="ver"></b><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('portable')"
|
||||
style="margin-left:15px;">crwdns1950:0crwdne1950:0</button>
|
||||
<button class="waves-effect btn linux hide" onclick="update('linux')"
|
||||
style="margin-left:15px;">crwdns670:0crwdne670:0</button>
|
||||
<button class="waves-effect btn mac hide" onclick="update('mac')"
|
||||
style="margin-left:15px;">crwdns670:0crwdne670:0</button>
|
||||
<br>
|
||||
crwdns678:0crwdne678:0<br>crwdns679:0crwdne679:0
|
||||
</div>
|
||||
<div id="skipper" class="hide">
|
||||
<h4>crwdns674:0crwdne674:0</h4>
|
||||
crwdns675:0crwdne675:0<br>
|
||||
<div id="updskip">
|
||||
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||
<div>crwdns676:0crwdne676:0</div>
|
||||
</a>
|
||||
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||
<div>crwdns677:0crwdne677:0</div>
|
||||
</a>
|
||||
</div>
|
||||
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">crwdns680:0crwdne680:0</a>
|
||||
</div>
|
||||
<div id="dlnow" class="hide">
|
||||
<h4>crwdns681:0crwdne681:0</h4>
|
||||
<h4 id="prog"></h4>
|
||||
<div class="progress">
|
||||
<div class="determinate" style="width: 0%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script>
|
||||
function skipper() {
|
||||
$("#dlnow").addClass("hide");
|
||||
$("#box").toggleClass("show");
|
||||
if ($("#box").hasClass("hide") && $("#skipper").hasClass("hide")) {
|
||||
$("#skipper").removeClass("hide");
|
||||
$("#skipper").addClass("show");
|
||||
} else {
|
||||
$("#box").toggleClass("hide");
|
||||
$("#skipper").toggleClass("hide");
|
||||
$("#skipper").toggleClass("show");
|
||||
}
|
||||
}
|
||||
verck();
|
||||
function update(sel) {
|
||||
$("#box").toggleClass("show");
|
||||
$("#box").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("hide");
|
||||
$("#dlnow").toggleClass("show");
|
||||
$("#prog").text("");
|
||||
var bit = localStorage.getItem("bit");
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
if (sel == "install") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64"];
|
||||
var file = "TheDesk-setup.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32"];
|
||||
var file = "TheDesk-setup-ia32.exe";
|
||||
}
|
||||
} else if (sel == "portable") {
|
||||
if (bit == "x64") {
|
||||
var url = json["winx64p"];
|
||||
var file = "TheDesk.exe";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["winia32p"];
|
||||
var file = "TheDesk-ia32.exe";
|
||||
}
|
||||
} else if (sel == "linux") {
|
||||
if (bit == "x64") {
|
||||
var url = json["linuxx64"];
|
||||
var file = "TheDesk-linux-x64.zip";
|
||||
} else if (bit == "ia32") {
|
||||
var url = json["linuxia64"];
|
||||
var file = "TheDesk-linux-ia32.zip";
|
||||
}
|
||||
} else if (sel == "mac") {
|
||||
var url = json["mac"];
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
}
|
||||
postMessage(["downloadButton", [url, file]], "*")
|
||||
});
|
||||
|
||||
}
|
||||
function quit() {
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
function updateProg(arg) {
|
||||
console.log(arg);
|
||||
$(".determinate").css("width", arg * 100 + "%");
|
||||
$("#prog").text(Math.floor(arg * 100) + "%");
|
||||
}
|
||||
function updateMess(arg) {
|
||||
console.log(arg);
|
||||
$("#prog").text(arg);
|
||||
}
|
||||
function verck() {
|
||||
var platform = localStorage.getItem("platform");
|
||||
var bit = localStorage.getItem("bit");
|
||||
if (platform == "win32") {
|
||||
$('.windows').removeClass("hide")
|
||||
} else if (platform == "linux") {
|
||||
$('.linux').removeClass("hide")
|
||||
} else if (platform == "darwin") {
|
||||
$('.mac').removeClass("hide")
|
||||
}
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
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) {
|
||||
console.log(json);
|
||||
if (platform == "win32") {
|
||||
$("#ver").text(json.desk);
|
||||
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 = "ps";
|
||||
if (lang == "ja") {
|
||||
$("#det").html(json.detail);
|
||||
} else {
|
||||
$("#det").html(json.detail_en);
|
||||
}
|
||||
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
|
||||
});
|
||||
}
|
||||
function nextv() {
|
||||
localStorage.setItem("new-ver-skip", "true");
|
||||
window.close();
|
||||
}
|
||||
function enc(ver) {
|
||||
var ver = ver.replace(/\s/g, "");
|
||||
var ver = ver.replace(/\(/g, "-");
|
||||
var ver = ver.replace(/\)/g, "");
|
||||
var ver = ver.replace(/\[/g, "_");
|
||||
var ver = ver.replace(/\]/g, "");
|
||||
return ver;
|
||||
}
|
||||
</script>
|
Loading…
Reference in New Issue
Block a user