Merge: master
27
.github/ISSUE_TEMPLATE/bug-report-english.md
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
name: Bug report English
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: "\U0001F41Bbug"
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Describe the bug: a clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Click on '....'
|
||||
2. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Environment**
|
||||
- OS: [e.g. macOS High Sierra , Windows 10 Pro 1903, Ubuntu 19.04]
|
||||
- Version: [e.g. Usamin (18.0.0)]
|
||||
Check at 'Application,' 'About TheDesk' at top of the window.
|
||||
- Your instance: [e.g. mastodon.social]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
27
.github/ISSUE_TEMPLATE/bug-report-japanese----------.md
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
name: Bug report Japanese(日本語のバグ報告)
|
||||
about: 迅速なバグ撲滅のために
|
||||
title: ''
|
||||
labels: "\U0001F41Bbug"
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
バグの簡単な説明を最初に入れます。
|
||||
|
||||
**再現方法**
|
||||
このようにするとバグが発生しました。
|
||||
1. '....'をクリックすると
|
||||
2. エラーが出ます
|
||||
|
||||
**本来の挙動**
|
||||
本来どのように動くのが望ましいかを記入
|
||||
|
||||
**環境**
|
||||
- OS: [例 macOS High Sierra , Windows 10 Pro 1903, Ubuntu 19.04]
|
||||
- バージョン: [例 Usamin (18.0.0)]
|
||||
TheDesk画面上部の「アプリケーション」から「TheDeskについて」で確認
|
||||
- インスタンス: [例. mastodon.social]
|
||||
|
||||
**追記**
|
||||
追記
|
7
.gitignore
vendored
|
@ -13,3 +13,10 @@ app/.tkn
|
|||
app/node_modules
|
||||
app/js/login/tkn.js
|
||||
app/package-lock.json
|
||||
app/view/en
|
||||
app/view/ja
|
||||
app/view/de
|
||||
app/view/bg
|
||||
app/view/cs
|
||||
app/view/ps
|
||||
app/git
|
||||
|
|
|
@ -11,6 +11,7 @@ before_deploy:
|
|||
- cd app
|
||||
- VERSION=$(cat package.json | grep version | head -1 | awk -F= "{ print $2 }" | sed 's/[version:,\",]//g' | tr -d '[[:space:]]')
|
||||
- npm install
|
||||
- npm run construct
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then electron-builder --mac -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then electron-builder --linux --x64 -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../build;else :;fi
|
||||
|
|
20
README.md
|
@ -5,6 +5,7 @@
|
|||
|
||||
[![Build Status](https://travis-ci.org/cutls/TheDesk.svg?branch=master)](https://travis-ci.org/cutls/TheDesk)
|
||||
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/thedesk/localized.svg)](https://translate.thedesk.top/project/thedesk)
|
||||
[![FOSSA Status](https://bit.ly/2N4cLd1)](https://bit.ly/31zqMmZ)
|
||||
[![Version](https://flat.badgen.net/github/release/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases)
|
||||
![Contributors](https://flat.badgen.net/github/contributors/cutls/TheDesk)
|
||||
Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
||||
|
@ -13,6 +14,7 @@ Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
|||
Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge/?site=thedesk.top)](https://status.cutls.com)
|
||||
|
||||
<a href="https://www.patreon.com/cutls"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160"></a>
|
||||
<a href="https://liberapay.com/cutls/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a>
|
||||
![Screenshots1](https://thedesk.top/img/scr1.png)
|
||||
|
||||
## License
|
||||
|
@ -20,12 +22,13 @@ Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge
|
|||
[GNU General Public License v3.0](https://github.com/cutls/TheDesk/blob/master/LICENSE)
|
||||
|
||||
The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/)
|
||||
[Press Kit](https://dl.thedesk.top/press/TheDesk+PressKit.zip)
|
||||
[Press Kit](https://d2upiril6ywqp9.cloudfront.net/press/TheDesk+PressKit.zip)
|
||||
|
||||
* [PNG](https://dl.thedesk.top/press/TheDesk.png)
|
||||
* [Monotone SVG](https://dl.thedesk.top/press/TheDesk.svg)
|
||||
* [ico](https://dl.thedesk.top/press/TheDesk.ico)
|
||||
* [icns](https://dl.thedesk.top/press/TheDesk.icns)
|
||||
* [PNG 512x512](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.png)
|
||||
* [SVG 4095x4096](https://d2upiril6ywqp9.cloudfront.net/press/thedesk-fullcolor.svg)
|
||||
* [ico 256x256](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ico)
|
||||
* [icns old](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.icns)
|
||||
* [Illustrator .ai](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ai)
|
||||
|
||||
The default sounds of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/)
|
||||
|
||||
|
@ -38,6 +41,7 @@ The default sounds of notifications is provided [Creative Commons BY](https://cr
|
|||
|
||||
* 日本語(Japanese)
|
||||
* English
|
||||
* de, cs, bg(from Crowdin)
|
||||
|
||||
### Translation
|
||||
|
||||
|
@ -81,6 +85,7 @@ git clone https://github.com/cutls/TheDesk
|
|||
cd TheDesk/app
|
||||
npm install
|
||||
npm install --only=dev
|
||||
npm run construct
|
||||
```
|
||||
|
||||
### electron-builder(Recommended)
|
||||
|
@ -123,3 +128,8 @@ macOS
|
|||
Did you find a bug with Pleroma accounts?
|
||||
Pleroma **does not** follow Mastodon API rules completely although Pleroma developers say so.
|
||||
Please write issues to improve TheDesk affinity with Pleroma.
|
||||
|
||||
## Vulnerabilities when `npm i`???
|
||||
|
||||
No, if your npm says materialize-css has vulnerabilities(CVE-2019-11002/3/4), look at [here](https://github.com/Dogfalo/materialize/issues/6286) under discussion.
|
||||
|
||||
|
|
21
README_ja.md
|
@ -5,6 +5,7 @@
|
|||
|
||||
[![Build Status](https://travis-ci.org/cutls/TheDesk.svg?branch=master)](https://travis-ci.org/cutls/TheDesk)
|
||||
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/thedesk/localized.svg)](https://translate.thedesk.top/project/thedesk)
|
||||
[![FOSSA Status](https://bit.ly/2N4cLd1)](https://bit.ly/31zqMmZ)
|
||||
[![Version](https://flat.badgen.net/github/release/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases)
|
||||
![Contributors](https://flat.badgen.net/github/contributors/cutls/TheDesk)
|
||||
Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
||||
|
@ -20,12 +21,13 @@ Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge
|
|||
[GNU General Public License v3.0](https://github.com/cutls/TheDesk/blob/master/LICENSE)
|
||||
|
||||
アイコンは[クリエイティブ・コモンズ 表示-非営利-継承](https://creativecommons.org/licenses/by-nc-sa/4.0/)で提供されています。
|
||||
[プレスキット](https://dl.thedesk.top/press/TheDesk+PressKit.zip)
|
||||
[プレスキット](https://d2upiril6ywqp9.cloudfront.net/press/TheDesk+PressKit.zip)
|
||||
|
||||
* [PNG](https://dl.thedesk.top/press/TheDesk.png)
|
||||
* [Monotone SVG](https://dl.thedesk.top/press/TheDesk.svg)
|
||||
* [ico](https://dl.thedesk.top/press/TheDesk.ico)
|
||||
* [icns](https://dl.thedesk.top/press/TheDesk.icns)
|
||||
* [PNG 512x512](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.png)
|
||||
* [SVG 4095x4096](https://d2upiril6ywqp9.cloudfront.net/press/thedesk-fullcolor.svg)
|
||||
* [ico 256x256](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ico)
|
||||
* [icns old](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.icns)
|
||||
* [Illustrator .ai](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ai)
|
||||
|
||||
標準の通知音は [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/) で提供されています。
|
||||
|
||||
|
@ -38,6 +40,7 @@ Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge
|
|||
|
||||
* 日本語
|
||||
* English(英語)
|
||||
* ドイツ語, チェコ語, ブルガリア語(from Crowdin)
|
||||
|
||||
### 翻訳
|
||||
|
||||
|
@ -70,7 +73,7 @@ Linuxビルダー
|
|||
|
||||
* [ぽぷんじゃ](https://popon.pptdn.jp/@popn_ja)
|
||||
|
||||
iTunes NowPlayingにアルバムアートワークを付けてくれた人
|
||||
コーダー
|
||||
|
||||
* [kPherox](https://pl.kpherox.dev/kPherox)
|
||||
|
||||
|
@ -82,6 +85,7 @@ git clone https://github.com/cutls/TheDesk
|
|||
cd TheDesk/app
|
||||
npm install
|
||||
npm install --only=dev
|
||||
npm run construct
|
||||
```
|
||||
|
||||
### electron-builder(推奨)
|
||||
|
@ -129,3 +133,8 @@ Issuesに書いてある問題についてはなるべく対処しますので
|
|||
## 詳しく
|
||||
|
||||
[TheDesk - マストドン日本語ウィキ](https://ja.mstdn.wiki/TheDesk)
|
||||
|
||||
## `npm i`したら脆弱性あるって言われた
|
||||
|
||||
materialize-cssの脆弱性(CVE-2019-11002/3/4)については[こちら](https://github.com/Dogfalo/materialize/issues/6286)で本当に脆弱性かどうか議論しています。
|
||||
実際には害が無いものと思われます。
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
font-family: 'Open Sans';
|
||||
-webkit-app-region: drag;
|
||||
cursor: move;
|
||||
padding: 5px;
|
||||
padding-top: 15px;
|
||||
}
|
||||
|
||||
a,
|
||||
|
@ -27,7 +29,7 @@
|
|||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
|
||||
grid-template-areas: 'name1 data1''name2 data2''name3 data3''name4 data4''name5 data5';
|
||||
grid-template-areas: 'name1 data1''name2 data2''name3 data3''name4 data4''name5 data5''name6 data6';
|
||||
text-align: left;
|
||||
margin: 5px;
|
||||
}
|
||||
|
@ -71,6 +73,14 @@
|
|||
.area-data5 {
|
||||
grid-area: data5;
|
||||
}
|
||||
|
||||
.area-name6 {
|
||||
grid-area: name6;
|
||||
}
|
||||
|
||||
.area-data6 {
|
||||
grid-area: data6;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
@ -78,19 +88,21 @@
|
|||
<script type="text/javascript" src="./node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="./js/platform/first-not-view.js"></script>
|
||||
<script type="text/javascript" src="./node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<img src="./img/desk.png" style="max-width:62%;">
|
||||
<img src="./img/desk.svg" style="max-width:62%;">
|
||||
<h5>TheDesk</h5>
|
||||
<div class="container">
|
||||
<div class="area-name1">Display version</div>
|
||||
<div class="area-data1" id="now"></div>
|
||||
<div class="area-name2">Internal version</div>
|
||||
<div class="area-data2" id="ver"></div>
|
||||
<div class="area-name3">Chromium</div>
|
||||
<div class="area-data3" id="chrome"></div>
|
||||
<div class="area-name4">Electron</div>
|
||||
<div class="area-data4" id="electron"></div>
|
||||
<div class="area-name5">Node.js</div>
|
||||
<div class="area-data5" id="node"></div>
|
||||
<div class="area-name3">Commit(7chars)</div>
|
||||
<div class="area-data3" id="hash"></div>
|
||||
<div class="area-name4">Chromium</div>
|
||||
<div class="area-data4" id="chrome"></div>
|
||||
<div class="area-name5">Electron</div>
|
||||
<div class="area-data5" id="electron"></div>
|
||||
<div class="area-name6">Node.js</div>
|
||||
<div class="area-data6" id="node"></div>
|
||||
</div>
|
||||
<div class="cp">Copyright © TheDesk 2018<br>
|
||||
Main developer(author): <a href="https://cutls.com/@Cutls" target="_blank">Cutls P</a><br>
|
||||
|
@ -114,6 +126,7 @@
|
|||
var ver = m[1];
|
||||
$("#ver").text(ver);
|
||||
}
|
||||
$("#hash").html('<a href="https://github.com/cutls/TheDesk/commits/' + about[3] + '" target="_blank">' + about[3].slice(0, 7) + '</a>');
|
||||
$(document).on('click', 'a', e => {
|
||||
var url = $(e.target).attr('href');
|
||||
postMessage(["openUrl", url], "*")
|
||||
|
|
BIN
app/build/thedesk.ico
Normal file
After Width: | Height: | Size: 9.4 KiB |
|
@ -7,12 +7,8 @@ body {
|
|||
cursor: default;
|
||||
font-size: 13px;
|
||||
height: 100vh;
|
||||
background-color: var(--bg);
|
||||
color: var(--color);
|
||||
}
|
||||
body {
|
||||
border: thin solid gray;
|
||||
}
|
||||
.btn {
|
||||
margin: 5px;
|
||||
text-transform: none;
|
||||
|
@ -238,9 +234,6 @@ blockquote:before,
|
|||
#drag-content {
|
||||
font-size: 2rem;
|
||||
}
|
||||
.radio {
|
||||
font-family: "Baloo Bhai";
|
||||
}
|
||||
#pip {
|
||||
z-index: 504;
|
||||
width: 418px;
|
||||
|
@ -307,6 +300,9 @@ blockquote:before,
|
|||
.tabs {
|
||||
background-color: var(--subcolor);
|
||||
}
|
||||
.collapsible-header:focus {
|
||||
background-color: var(--subcolor) !important;
|
||||
}
|
||||
.modal-footer {
|
||||
background-color: var(--modalfooter) !important;
|
||||
}
|
||||
|
@ -336,13 +332,16 @@ blockquote:before,
|
|||
padding: 5px;
|
||||
border: thin solid gray;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
}
|
||||
#menu-wrapper {
|
||||
margin-left: -5px;
|
||||
display: flex;
|
||||
height: calc(100% - 3.5rem);
|
||||
overflow: hidden;
|
||||
}
|
||||
#left-menu {
|
||||
width: 170px;
|
||||
width: 230px;
|
||||
}
|
||||
#left-menu div {
|
||||
padding-left: 5px;
|
||||
|
@ -362,8 +361,7 @@ blockquote:before,
|
|||
background-color: var(--emphasized);
|
||||
}
|
||||
#right-menu {
|
||||
width: 380px;
|
||||
max-height: 375px;
|
||||
width: 100%;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
padding: 5px;
|
||||
|
@ -474,3 +472,32 @@ input, textarea {
|
|||
background: #607d8b;
|
||||
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
/* Web Fonts */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local('Open Sans Light'), local('OpenSans-Light'), url(https://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN_r8OUuhp.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Material Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/materialicons/v48/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');
|
||||
}
|
||||
.material-icons {
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px;
|
||||
line-height: 1;
|
||||
letter-spacing: normal;
|
||||
text-transform: none;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
word-wrap: normal;
|
||||
direction: ltr;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
|
@ -7,15 +7,18 @@
|
|||
background-color: var(--postbox);
|
||||
border: thin solid gray;
|
||||
z-index: 501;
|
||||
min-width: 300px;
|
||||
max-width: 100%;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
}
|
||||
textarea {
|
||||
min-height: 100px !important;
|
||||
font-family: inherit;
|
||||
}
|
||||
#post-box .ui-resizable-s, #post-box .ui-resizable-se{
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.cancel {
|
||||
font-size: 0.5rem;
|
||||
|
@ -108,21 +111,16 @@ textarea {
|
|||
}
|
||||
#left-side {
|
||||
float: left;
|
||||
width: 300px;
|
||||
overflow-x: hidden;
|
||||
height: calc(100% - 32px);
|
||||
}
|
||||
#right-side {
|
||||
display: none;
|
||||
float: left;
|
||||
width: 300px;
|
||||
padding: 5px;
|
||||
}
|
||||
#poll {
|
||||
}
|
||||
.poll-provider {
|
||||
position: absolute;
|
||||
height: calc(100% - 90px);
|
||||
overflow-y: scroll;
|
||||
top: 90px;
|
||||
overflow-x: hidden;
|
||||
height: calc(100% - 32px);
|
||||
}
|
||||
#posttgl,#toot-post-btn {
|
||||
background-color: var(--accentbtn);
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
--accentbtn: #009688;
|
||||
--selected: #c0c0c0;
|
||||
--selectedWithShare: #b2babd;
|
||||
--gray: #757575;
|
||||
}
|
||||
#imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
|
@ -40,6 +41,7 @@
|
|||
--accentbtn: #3f51b5;
|
||||
--selected: #3f3f3f;
|
||||
--selectedWithShare: #003a30;
|
||||
--gray: #cccccc;
|
||||
}
|
||||
.blacktheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
|
@ -63,6 +65,7 @@
|
|||
--accentbtn: #00acc1;
|
||||
--selected: #214f8a;
|
||||
--selectedWithShare: #003a30;
|
||||
--gray: #cccccc ;
|
||||
}
|
||||
.indigotheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
|
@ -86,6 +89,7 @@
|
|||
--accentbtn: #827717;
|
||||
--selected: #6d352b;
|
||||
--selectedWithShare: #003a30;
|
||||
--gray: #cccccc;
|
||||
}
|
||||
.browntheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
|
@ -109,6 +113,7 @@
|
|||
--accentbtn: #33691e;
|
||||
--selected: #78c17a;
|
||||
--selectedWithShare: #caa266;
|
||||
--gray: #757575;
|
||||
}
|
||||
.greentheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
|
@ -132,6 +137,7 @@
|
|||
--accentbtn: #2f7bb7;
|
||||
--selected: #9dcade;
|
||||
--selectedWithShare: #c1dac4;
|
||||
--gray: #757575;
|
||||
}
|
||||
.bluetheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
|
|
|
@ -47,6 +47,10 @@
|
|||
#bottom .leftside {
|
||||
display: flex;
|
||||
}
|
||||
#tips {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
#bottom #tips img {
|
||||
vertical-align: -3px;
|
||||
}
|
||||
|
@ -64,7 +68,7 @@
|
|||
}
|
||||
#bottom .btnsgroup {
|
||||
border: 1px solid;
|
||||
padding: 1px;
|
||||
padding-top: 1px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
margin-right: 15px;
|
||||
|
@ -94,7 +98,8 @@
|
|||
display: none;
|
||||
}
|
||||
}
|
||||
iframe {
|
||||
iframe,
|
||||
.cvo video {
|
||||
max-width: 100%;
|
||||
max-height: 300px;
|
||||
}
|
||||
|
@ -127,7 +132,7 @@ iframe {
|
|||
}
|
||||
.marquee {
|
||||
width: 100%;
|
||||
padding: .5em 0;
|
||||
padding: 0.5em 0;
|
||||
overflow: hidden;
|
||||
margin-bottom: 0;
|
||||
position: relative;
|
||||
|
@ -147,7 +152,8 @@ iframe {
|
|||
-webkit-transform: translate(0);
|
||||
transform: translate(0);
|
||||
}
|
||||
99%, 100% {
|
||||
99%,
|
||||
100% {
|
||||
-webkit-transform: translate(-100%);
|
||||
transform: translate(-100%);
|
||||
}
|
||||
|
@ -158,6 +164,7 @@ iframe {
|
|||
height: 100%;
|
||||
border: thin solid gray;
|
||||
overflow: hidden;
|
||||
border-top: none;
|
||||
}
|
||||
.box .pin,
|
||||
#his-data .pin {
|
||||
|
@ -208,7 +215,8 @@ iframe {
|
|||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: 43px 2fr 1fr;
|
||||
grid-template-areas: "notice notice notice" "icon display_name display_name" "icon toot toot" "vis additional additional" "actions actions side";
|
||||
grid-template-rows: auto 1.6rem 1fr auto 2.5rem;
|
||||
grid-template-areas: "notice notice notice" "icon display_name display_name" "space toot toot" "space additional additional" "vis actions side";
|
||||
}
|
||||
.cvo h1,
|
||||
.cvo h2,
|
||||
|
@ -253,7 +261,8 @@ iframe {
|
|||
.area-toot {
|
||||
cursor: text;
|
||||
user-select: auto;
|
||||
margin: 2px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
margin-left: 5px;
|
||||
grid-area: toot;
|
||||
}
|
||||
|
@ -271,32 +280,49 @@ iframe {
|
|||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.acct-note p {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
.area-toot.acct-note p:not(:first-child) {
|
||||
display: none;
|
||||
}
|
||||
.area-toot.acct-note p:first-child:after {
|
||||
content: "...";
|
||||
color: var(--gray);
|
||||
}
|
||||
|
||||
.area-actions {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
top: -20px;
|
||||
top: -5px;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
width: 250px;
|
||||
max-width: 100%;
|
||||
grid-area: actions;
|
||||
}
|
||||
.area-vis {
|
||||
margin: 2px;
|
||||
grid-area: vis;
|
||||
text-align: center;
|
||||
}
|
||||
.area-side {
|
||||
display: flex;
|
||||
top: -5px;
|
||||
position: relative;
|
||||
justify-content: flex-end;
|
||||
margin: 2px;
|
||||
grid-area: side;
|
||||
}
|
||||
|
||||
.quote-inline {
|
||||
display: none;
|
||||
}
|
||||
.quote-renote {
|
||||
display: grid;
|
||||
grid-template-columns: 43px 2fr 1fr;
|
||||
grid-template-areas: "ricon ruser" "ricon rtext";
|
||||
grid-template-columns: 43px 2fr 25px;
|
||||
grid-template-areas: "ricon ruser rdet" "ricon rtext rdet";
|
||||
border: 1px solid;
|
||||
margin-top: 3px;
|
||||
padding: 1px;
|
||||
|
@ -304,9 +330,13 @@ iframe {
|
|||
}
|
||||
.renote-icon {
|
||||
grid-area: ricon;
|
||||
padding: 5px;
|
||||
}
|
||||
.renote-details {
|
||||
grid-area: rdet;
|
||||
}
|
||||
.renote-icon img {
|
||||
width: 43px;
|
||||
width: 100%;
|
||||
}
|
||||
.renote-user {
|
||||
grid-area: ruser;
|
||||
|
@ -340,7 +370,7 @@ iframe {
|
|||
}
|
||||
|
||||
.gray {
|
||||
color: gray;
|
||||
color: var(--gray);
|
||||
}
|
||||
.sml {
|
||||
font-size: 0.8em;
|
||||
|
@ -374,6 +404,7 @@ iframe {
|
|||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
height: calc(0.8em + 8px);
|
||||
user-select: none;
|
||||
}
|
||||
.cbadge-hover {
|
||||
color: var(--color);
|
||||
|
@ -411,7 +442,7 @@ p:not(:last-child) {
|
|||
z-index: 500;
|
||||
padding: 5px;
|
||||
display: grid;
|
||||
grid-template-columns: 40px 48px 1fr 24px;
|
||||
grid-template-columns: 40px 1fr 1fr 24px;
|
||||
grid-template-rows: 30px 30px;
|
||||
grid-template-areas: "notice notice_name notice_name a2" "notice a1 sta a3" "notf-box notf-box notf-box notf-box";
|
||||
}
|
||||
|
@ -436,7 +467,6 @@ p:not(:last-child) {
|
|||
}
|
||||
|
||||
.area-a1 {
|
||||
text-align: center;
|
||||
grid-area: a1;
|
||||
}
|
||||
.area-sta {
|
||||
|
@ -506,11 +536,6 @@ p:not(:last-child) {
|
|||
0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3),
|
||||
0px -10px 10px 0px rgba(0, 0, 0, 0.3) inset;
|
||||
}
|
||||
#src-contents {
|
||||
min-height: 100px;
|
||||
max-height: 190px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.type-b {
|
||||
display: none;
|
||||
}
|
||||
|
@ -611,6 +636,20 @@ audio{
|
|||
.translate {
|
||||
white-space: normal;
|
||||
}
|
||||
.cw_btn {
|
||||
margin: 3px;
|
||||
background-color: var(--emphasized);
|
||||
color: var(--color);
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
border-radius: 3px;
|
||||
border: 1px solid var(--color);
|
||||
}
|
||||
.vis-data {
|
||||
font-size: 1rem !important;
|
||||
margin: 5px;
|
||||
user-select: none;
|
||||
}
|
||||
@keyframes jump {
|
||||
0% {
|
||||
transform: translateY(0);
|
||||
|
@ -663,3 +702,9 @@ audio{
|
|||
animation-duration: 0.1s;
|
||||
animation-name: fadeInDown;
|
||||
}
|
||||
.urbadge {
|
||||
line-height: normal;
|
||||
height: 2rem;
|
||||
font-size: 1rem;
|
||||
background-color: #009688;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,10 @@
|
|||
background-image: url("../../loading.svg");
|
||||
overflow-y: hidden;
|
||||
}
|
||||
#his-data-content {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
#his-name {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
@ -13,16 +17,17 @@
|
|||
margin-right: 5px;
|
||||
}
|
||||
.his-float {
|
||||
float: left;
|
||||
overflow-y: scroll;
|
||||
padding: 5px;
|
||||
}
|
||||
#his-float-data {
|
||||
width: 400px;
|
||||
height: 100%;
|
||||
}
|
||||
#his-leftside {
|
||||
width: 500px;
|
||||
}
|
||||
#his-float-timeline {
|
||||
width: calc(100% - 400px);
|
||||
max-width: 775px;
|
||||
height: 100%;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
@ -61,21 +66,30 @@
|
|||
#his-data a:not(.mention) span:last-of-type {
|
||||
display: none;
|
||||
}
|
||||
#his-data a .rep_ct,
|
||||
#his-data a .rt_ct,
|
||||
#his-data a .fav_ct {
|
||||
display: inline !important;
|
||||
}
|
||||
#his-data-show {
|
||||
margin: 20px;
|
||||
margin-left: 50px;
|
||||
margin-right: 50px;
|
||||
background-color: var(--his-data);
|
||||
width: calc(100% - 20px);
|
||||
height: calc(100% - 20px);
|
||||
margin-bottom: 0;
|
||||
padding: 5px;
|
||||
}
|
||||
.tab-content {
|
||||
#his-data-wrap {
|
||||
display: flex;
|
||||
}
|
||||
.his-var-content {
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
height: calc(100% - 240px);
|
||||
height: calc(100% - 45px);
|
||||
}
|
||||
.my-data-width {
|
||||
width: 10%;
|
||||
#my-data-nav .btn {
|
||||
width: 140px;
|
||||
}
|
||||
.active-back {
|
||||
background-color: var(--active);
|
||||
|
@ -102,7 +116,11 @@
|
|||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 2rem;
|
||||
width: 90%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
}
|
||||
#hisdropdown{
|
||||
background-color: var(--bg);
|
||||
}
|
||||
#hisdropdown li:hover{
|
||||
background-color: var(--active);
|
||||
}
|
BIN
app/img/desk.png
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 11 KiB |
35
app/img/desk.svg
Normal file
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 4096 4096" style="enable-background:new 0 0 4096 4096;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{display:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{fill:#545251;stroke:#040000;stroke-miterlimit:10;}
|
||||
.st3{fill:#F0842E;}
|
||||
.st4{fill:#364C9F;}
|
||||
.st5{fill:#FFFFFF;stroke:#040000;stroke-miterlimit:10;}
|
||||
.st6{fill-rule:evenodd;clip-rule:evenodd;fill:#040000;}
|
||||
.st7{fill-rule:evenodd;clip-rule:evenodd;fill:none;}
|
||||
</style>
|
||||
<g id="レイヤー_1" class="st0">
|
||||
</g>
|
||||
<g id="レイヤー_2">
|
||||
<polyline class="st1" points="1128.5,650.67 3378,1950 3378,2137 1128.5,3432.67 "/>
|
||||
<rect x="678.5" y="128.48" class="st2" width="450" height="3821.5"/>
|
||||
|
||||
<rect x="1915.71" y="-583.55" transform="matrix(0.5 -0.866 0.866 0.5 225.753 2341.5386)" class="st3" width="450" height="3117.62"/>
|
||||
|
||||
<rect x="1915.5" y="1555.41" transform="matrix(0.5 0.866 -0.866 0.5 3762.031 -299.6245)" class="st4" width="450" height="3105.58"/>
|
||||
<path class="st5" d="M714.5,2953.5"/>
|
||||
<path id="path1891" class="st6" d="M1592.47,2584h456.47c0-64.89-4.63-77.76-112.1-77.76c17.17-51.5,86.95-176.11,125.73-176.11
|
||||
c34.31,0,75.24,1.89,75.24,80.17c0,88.87,149.56,232.16,185.82,173.7c54.04-87.12-92.91-60.55-92.91-270.65
|
||||
c0-287.43,167.74-246.51,167.74-407.99c0-80.79-22.32-91.7-22.32-149.46c0-76.34,67.25-71.91,54.17-135.2
|
||||
c-9.04-43.72-16.11-78.78-21.38-131.65c-3.74-37.51-4.93-77.5-43.9-75.89c-45.78,1.89-63.15,82.47-134.31,88.25
|
||||
c-71.02,5.77-131.57-60.46-159.06-51c-27.25,9.38-18.68,83.32-2.52,135.83c25.4,82.54,80.79,189.86-20.2,206.02
|
||||
c-100.99,16.16-274.69,32.32-399.92,197.94s-120.6,359.99-169.66,420.11C1314.72,2612.08,1146,2529.23,1146,2697.11
|
||||
c0,75.16,127.35,129.27,147.55,105.03c20.2-24.24-171.62-96.46,43.01-181.78C1519.91,2547.46,1536.28,2532.58,1592.47,2584z"/>
|
||||
<rect class="st7" width="4096" height="4096"/>
|
||||
<path class="st1" d="M-58,1122"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -1,122 +1,35 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 4096 4096" style="enable-background:new 0 0 4096 4096;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{display:none;}
|
||||
.st1{fill:none;}
|
||||
.st2{fill:#FFFFFF;}
|
||||
.st3{fill:#FFFFFF;}
|
||||
.st4{fill:#FFFFFF;}
|
||||
.st5{fill:#none;}
|
||||
.st6{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
|
||||
.st7{fill-rule:evenodd;clip-rule:evenodd;fill:none;}
|
||||
</style>
|
||||
<g id="レイヤー_1" class="st0">
|
||||
</g>
|
||||
<g id="レイヤー_2">
|
||||
<polyline class="st1" points="1128.5,650.67 3378,1950 3378,2137 1128.5,3432.67 "/>
|
||||
<rect x="678.5" y="128.48" class="st2" width="450" height="3821.5"/>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="7.11022in" height="7.11022in"
|
||||
viewBox="0 0 512 512">
|
||||
<path id="選択範囲 #1"
|
||||
fill="white" stroke="white" stroke-width="1"
|
||||
d="M 96.00,16.00
|
||||
C 99.85,16.01 102.39,15.12 104.00,19.00
|
||||
104.00,19.00 97.00,19.00 97.00,19.00
|
||||
97.00,19.00 108.00,22.07 108.00,22.07
|
||||
108.00,22.07 144.00,43.08 144.00,43.08
|
||||
144.00,43.08 181.83,64.31 181.83,64.31
|
||||
181.83,64.31 223.00,88.26 223.00,88.26
|
||||
223.00,88.26 247.00,102.22 247.00,102.22
|
||||
247.00,102.22 257.00,107.00 257.00,107.00
|
||||
260.09,110.36 266.43,114.39 271.00,115.00
|
||||
271.00,115.00 298.00,133.00 298.00,133.00
|
||||
298.00,133.00 300.00,132.00 300.00,132.00
|
||||
300.00,132.00 312.00,141.00 312.00,141.00
|
||||
312.00,141.00 314.00,140.00 314.00,140.00
|
||||
318.40,144.39 334.83,152.80 341.00,156.45
|
||||
341.00,156.45 404.00,192.94 404.00,192.94
|
||||
404.00,192.94 425.67,205.63 425.67,205.63
|
||||
428.70,208.64 426.87,211.86 425.12,215.00
|
||||
425.12,215.00 412.26,237.00 412.26,237.00
|
||||
410.65,240.07 409.02,245.62 404.90,245.68
|
||||
401.70,245.72 396.83,242.47 394.00,240.87
|
||||
394.00,240.87 370.00,226.89 370.00,226.89
|
||||
370.00,226.89 282.00,176.51 282.00,176.51
|
||||
282.00,176.51 271.00,169.52 271.00,169.52
|
||||
271.00,169.52 261.00,164.31 261.00,164.31
|
||||
257.45,162.08 251.05,157.46 247.00,157.00
|
||||
247.00,157.00 234.00,148.55 234.00,148.55
|
||||
234.00,148.55 208.17,133.78 208.17,133.78
|
||||
208.17,133.78 190.00,124.00 190.00,124.00
|
||||
190.00,124.00 163.00,107.60 163.00,107.60
|
||||
163.00,107.60 103.00,73.00 103.00,73.00
|
||||
103.00,73.00 103.00,453.00 103.00,453.00
|
||||
103.00,453.00 127.00,439.42 127.00,439.42
|
||||
127.00,439.42 170.00,414.58 170.00,414.58
|
||||
170.00,414.58 237.17,376.24 237.17,376.24
|
||||
237.17,376.24 256.00,364.59 256.00,364.59
|
||||
256.00,364.59 264.00,360.53 264.00,360.53
|
||||
264.00,360.53 285.00,348.20 285.00,348.20
|
||||
285.00,348.20 292.99,344.12 292.99,344.12
|
||||
292.99,344.12 299.28,339.83 299.28,339.83
|
||||
299.28,339.83 320.00,328.41 320.00,328.41
|
||||
320.00,328.41 362.00,304.05 362.00,304.05
|
||||
362.00,304.05 371.91,297.68 371.91,297.68
|
||||
371.91,297.68 379.04,294.41 379.04,294.41
|
||||
379.04,294.41 410.00,276.00 410.00,276.00
|
||||
410.00,276.00 416.00,285.00 416.00,285.00
|
||||
416.81,288.83 421.21,296.21 424.00,299.00
|
||||
424.00,299.00 423.00,301.00 423.00,301.00
|
||||
427.24,303.72 430.62,312.17 432.00,317.00
|
||||
432.00,317.00 388.00,342.67 388.00,342.67
|
||||
388.00,342.67 317.00,383.55 317.00,383.55
|
||||
317.00,383.55 279.00,405.32 279.00,405.32
|
||||
279.00,405.32 264.00,415.00 264.00,415.00
|
||||
264.00,415.00 262.00,414.00 262.00,414.00
|
||||
262.00,414.00 250.00,423.00 250.00,423.00
|
||||
250.00,423.00 248.00,422.00 248.00,422.00
|
||||
248.00,422.00 238.00,428.92 238.00,428.92
|
||||
238.00,428.92 218.00,440.67 218.00,440.67
|
||||
218.00,440.67 207.00,448.00 207.00,448.00
|
||||
207.00,448.00 193.00,455.18 193.00,455.18
|
||||
193.00,455.18 176.00,465.08 176.00,465.08
|
||||
176.00,465.08 166.09,470.31 166.09,470.31
|
||||
166.09,470.31 137.00,487.31 137.00,487.31
|
||||
137.00,487.31 103.00,506.00 103.00,506.00
|
||||
103.00,506.00 104.00,509.00 104.00,509.00
|
||||
104.00,509.00 57.00,509.00 57.00,509.00
|
||||
57.00,509.00 57.00,16.00 57.00,16.00
|
||||
57.00,16.00 96.00,16.00 96.00,16.00 Z
|
||||
M 102.00,72.00
|
||||
C 102.00,72.00 103.00,73.00 103.00,73.00
|
||||
103.00,73.00 103.00,72.00 103.00,72.00
|
||||
103.00,72.00 102.00,72.00 102.00,72.00 Z
|
||||
M 261.00,190.61
|
||||
C 270.30,188.63 274.03,177.15 280.77,179.78
|
||||
284.36,181.18 284.28,187.65 284.72,191.00
|
||||
285.35,195.85 287.64,207.99 286.57,212.00
|
||||
285.51,216.00 282.42,218.30 280.78,222.00
|
||||
277.54,229.29 282.79,236.85 282.99,245.00
|
||||
283.38,261.24 274.02,264.52 266.36,276.00
|
||||
261.36,283.50 258.58,297.05 259.09,306.00
|
||||
259.91,320.41 263.09,322.38 271.02,333.00
|
||||
273.09,335.77 275.09,339.39 272.11,342.37
|
||||
269.94,344.63 266.39,343.51 264.00,342.37
|
||||
258.40,339.52 252.76,332.51 249.91,327.00
|
||||
246.61,320.60 248.26,314.37 244.57,310.23
|
||||
240.72,305.90 235.19,306.50 231.18,310.23
|
||||
225.69,315.34 221.16,325.22 218.00,332.00
|
||||
226.04,333.96 232.79,331.61 234.00,342.00
|
||||
234.00,342.00 175.00,342.00 175.00,342.00
|
||||
166.62,341.85 166.77,339.11 162.00,338.56
|
||||
158.39,338.15 148.72,341.68 145.00,343.05
|
||||
138.31,345.53 120.54,352.22 119.64,360.00
|
||||
119.01,365.49 125.06,367.91 127.00,374.00
|
||||
115.41,373.03 104.20,364.93 108.88,352.00
|
||||
111.36,345.12 117.06,343.57 123.00,340.75
|
||||
132.86,336.05 141.94,332.38 149.58,323.96
|
||||
151.40,321.95 154.62,318.26 155.92,316.00
|
||||
155.92,316.00 166.03,283.00 166.03,283.00
|
||||
169.87,271.08 179.16,256.26 189.00,248.52
|
||||
199.37,240.36 208.38,237.36 221.00,234.66
|
||||
226.45,233.50 237.77,232.36 240.99,227.79
|
||||
244.55,222.75 241.98,216.26 240.34,211.00
|
||||
237.46,201.77 234.64,193.69 237.00,184.00
|
||||
244.82,185.47 252.94,192.32 261.00,190.61 Z
|
||||
M 102.00,453.00
|
||||
C 102.00,453.00 103.00,454.00 103.00,454.00
|
||||
103.00,454.00 103.00,453.00 103.00,453.00
|
||||
103.00,453.00 102.00,453.00 102.00,453.00 Z
|
||||
M 102.00,505.00
|
||||
C 102.00,505.00 103.00,506.00 103.00,506.00
|
||||
103.00,506.00 103.00,505.00 103.00,505.00
|
||||
103.00,505.00 102.00,505.00 102.00,505.00 Z" />
|
||||
<rect x="1915.71" y="-583.55" transform="matrix(0.5 -0.866 0.866 0.5 225.753 2341.5386)" class="st3" width="450" height="3117.62"/>
|
||||
|
||||
<rect x="1915.5" y="1555.41" transform="matrix(0.5 0.866 -0.866 0.5 3762.031 -299.6245)" class="st4" width="450" height="3105.58"/>
|
||||
<path class="st5" d="M714.5,2953.5"/>
|
||||
<path id="path1891" class="st6" d="M1592.47,2584h456.47c0-64.89-4.63-77.76-112.1-77.76c17.17-51.5,86.95-176.11,125.73-176.11
|
||||
c34.31,0,75.24,1.89,75.24,80.17c0,88.87,149.56,232.16,185.82,173.7c54.04-87.12-92.91-60.55-92.91-270.65
|
||||
c0-287.43,167.74-246.51,167.74-407.99c0-80.79-22.32-91.7-22.32-149.46c0-76.34,67.25-71.91,54.17-135.2
|
||||
c-9.04-43.72-16.11-78.78-21.38-131.65c-3.74-37.51-4.93-77.5-43.9-75.89c-45.78,1.89-63.15,82.47-134.31,88.25
|
||||
c-71.02,5.77-131.57-60.46-159.06-51c-27.25,9.38-18.68,83.32-2.52,135.83c25.4,82.54,80.79,189.86-20.2,206.02
|
||||
c-100.99,16.16-274.69,32.32-399.92,197.94s-120.6,359.99-169.66,420.11C1314.72,2612.08,1146,2529.23,1146,2697.11
|
||||
c0,75.16,127.35,129.27,147.55,105.03c20.2-24.24-171.62-96.46,43.01-181.78C1519.91,2547.46,1536.28,2532.58,1592.47,2584z"/>
|
||||
<rect class="st7" width="4096" height="4096"/>
|
||||
<path class="st1" d="M-58,1122"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 434 B |
Before Width: | Height: | Size: 34 KiB |
132
app/img/thinking.svg
Normal file
|
@ -0,0 +1,132 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 4096 4096" style="enable-background:new 0 0 4096 4096;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#040000;}
|
||||
.st1{fill:#040000;stroke:#040000;stroke-miterlimit:10;}
|
||||
.st2{clip-path:url(#SVGID_2_);}
|
||||
.st3{clip-path:url(#SVGID_4_);}
|
||||
.st4{fill:none;}
|
||||
.st5{fill:#FFFFFF;}
|
||||
.st6{fill:#545251;stroke:#040000;stroke-miterlimit:10;}
|
||||
.st7{fill:#F0842E;}
|
||||
.st8{fill:#3D4FA0;}
|
||||
.st9{fill:#63451F;stroke:#FFFFFF;stroke-width:20;stroke-miterlimit:10;}
|
||||
.st10{fill:#63451F;}
|
||||
</style>
|
||||
<g id="DrawBlack">
|
||||
<polyline id="BG_1_" class="st0" points="1128.5,650.67 3378,1950 3378,2137 1128.5,3432.67 "/>
|
||||
<rect id="Left_1_" x="678.5" y="128.48" class="st1" width="450" height="3821.5"/>
|
||||
|
||||
<rect id="Top_1_" x="1915.71" y="-583.55" transform="matrix(0.5 -0.866 0.866 0.5 225.753 2341.5386)" class="st0" width="450" height="3117.62"/>
|
||||
<g id="Finger_1_">
|
||||
<g>
|
||||
<defs>
|
||||
|
||||
<rect id="SVGID_1_" x="-626.54" y="666.18" transform="matrix(0.9063 -0.4226 0.4226 0.9063 -723.8983 1097.2598)" width="5478.6" height="3030.2"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_2_">
|
||||
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
|
||||
</clipPath>
|
||||
<g id="g14_3_" class="st2">
|
||||
<g id="g44_1_" transform="translate(17.2764,0.8682)">
|
||||
<path id="path46_1_" class="st0" d="M2605.11,3533.86c0,0,159.85-112.71,149-195.05c-10.68-85.2-127.58-48.89-127.58-48.89
|
||||
s136.18-82.82,112.7-180.35c-22.17-91.83-167.38-48.54-167.38-48.54s119.56-92.9,85.39-182.75
|
||||
c-28.87-75.6-188.03-44.94-188.03-44.94s651.47-417.09,718.51-459.5c66.86-42.42,160.29-131.95,87.28-198.12
|
||||
c-72.76-66.37-205.83-7.85-269.88,32.69c-64.01,40.62-874.42,553.28-1153.93,730.24c-29.84,18.84-169.66,107.16-186.59,118.03
|
||||
c-69.96,44.42-112.22,42.02-74.07-13.01c51.14-73.63,74.73-139.7,55.45-222.1c-20.44-86.69-114.31-161.6-159.65-186.44
|
||||
c-84.35-46.21-197.27-61.16-306.71-33.34c-170.83,43.44-256.98,149.65-157.15,218.26c149.29,102.66,148.88,244.02,37.82,381.07
|
||||
c-261.05,322.06-363.57,512.7-142.28,713.95c241.24,219.53,812.72,166.75,1276.35-126.35
|
||||
C2218.92,3773.38,2605.11,3533.86,2605.11,3533.86"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Eyes_1_">
|
||||
<g>
|
||||
<defs>
|
||||
<rect id="SVGID_3_" x="95.01" y="544.01" width="3526.99" height="3526.99"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_4_">
|
||||
<use xlink:href="#SVGID_3_" style="overflow:visible;"/>
|
||||
</clipPath>
|
||||
<g id="g14_2_" class="st3">
|
||||
<g id="g24_1_" transform="translate(15.4063,25.5)">
|
||||
<path id="path26_1_" class="st0" d="M1588.99,1547.21c0,135.3-87.78,244.93-195.94,244.93
|
||||
c-108.16,0-195.94-109.63-195.94-244.93c0-135.2,87.78-244.93,195.94-244.93C1501.21,1302.28,1588.99,1412.01,1588.99,1547.21"
|
||||
/>
|
||||
</g>
|
||||
<g id="g32_1_" transform="translate(9.6709,29.667)">
|
||||
<path id="path34_1_" class="st0" d="M1032.82,1134.8c-16.07-8.52-29.69-21.85-38.31-38.99c-21.16-42.03-3.92-90.82,38.5-109.04
|
||||
c417.95-179.29,754.29-4.21,768.39,3.33c42.42,22.63,59.57,73.28,38.31,113.06c-21.16,39.68-72.5,53.49-114.92,31.16
|
||||
c-12.05-6.27-277.46-140.3-615.07,4.6C1084.54,1149.59,1056.13,1147.24,1032.82,1134.8"/>
|
||||
</g>
|
||||
<g id="g36_1_" transform="translate(14.7427,16.4277)">
|
||||
<path id="path38_1_" class="st0" d="M1524.64,2445.12c-13.32-12.44-23.12-28.71-27.04-47.61c-9.7-45.95,19.4-88.76,65.15-95.42
|
||||
c449.89-66.43,730.09,188.99,741.94,199.86c35.27,32.72,38.7,85.92,8.03,119.04c-30.57,32.92-83.77,33.11-118.94,0.59
|
||||
c-10.19-9.01-232.39-206.52-595.87-152.93C1570.78,2472.65,1543.94,2463.15,1524.64,2445.12"/>
|
||||
</g>
|
||||
<g id="g40_1_" transform="translate(20.4307,25.917)">
|
||||
<path id="path42_1_" class="st0" d="M2076.21,1505.94c-15.28-9.6-28.02-23.81-35.47-41.54c-18.32-43.3,2.25-90.92,45.75-106.2
|
||||
c429.22-150.48,752.91,47.03,766.53,55.55c40.66,25.47,54.28,77.1,30.47,115.41c-23.71,38.21-76.03,48.5-116.68,23.32
|
||||
c-11.76-7.15-267.27-158.81-613.99-37.23C2126.96,1524.26,2098.75,1519.95,2076.21,1505.94"/>
|
||||
</g>
|
||||
<g id="g28_1_" transform="translate(26,24.5)">
|
||||
<path id="path30_1_" class="st0" d="M2616.28,1646.19c0,135.3-87.69,244.93-195.94,244.93
|
||||
c-108.16,0-195.94-109.63-195.94-244.93c0-135.2,87.78-244.93,195.94-244.93C2528.6,1401.26,2616.28,1510.99,2616.28,1646.19"
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Path">
|
||||
<path id="CutLine" class="st4" d="M528,128C532-14,669,0,669,0h346l2629,1464c0,0,78,34,28,108s-217,359-217,359s-22,9,9,226
|
||||
s-204,313-204,313l-545,356c0,0,421.37,492.67,29.68,732.33S1798,4056,1798,4056s28.13,15-290.94,15s-828.56,0-828.56,0
|
||||
S531,4102,528,3904S528,128,528,128z"/>
|
||||
</g>
|
||||
<g id="Draw">
|
||||
<polyline id="BG" class="st5" points="1128.5,650.67 3378,1950 3378,2137 1128.5,3432.67 "/>
|
||||
<rect id="Left" x="678.5" y="128.48" class="st6" width="450" height="3821.5"/>
|
||||
|
||||
<rect id="Top" x="1915.71" y="-583.55" transform="matrix(0.5 -0.866 0.866 0.5 225.753 2341.5386)" class="st7" width="450" height="3117.62"/>
|
||||
<g id="Finger">
|
||||
<g id="g44" transform="translate(17.2764,0.8682)">
|
||||
<path id="path46" class="st8" d="M2605.11,3533.86c0,0,159.85-112.71,149-195.05c-10.68-85.2-127.58-48.89-127.58-48.89
|
||||
s136.18-82.82,112.7-180.35c-22.17-91.83-167.38-48.54-167.38-48.54s119.56-92.9,85.39-182.75
|
||||
c-28.87-75.6-188.03-44.94-188.03-44.94s651.47-417.09,718.51-459.5c66.86-42.42,160.29-131.95,87.28-198.12
|
||||
c-72.76-66.37-205.83-7.85-269.88,32.69c-64.01,40.62-874.42,553.28-1153.93,730.24c-29.84,18.84-169.66,107.16-186.59,118.03
|
||||
c-69.96,44.42-112.22,42.02-74.07-13.01c51.14-73.63,74.73-139.7,55.45-222.1c-20.44-86.69-114.31-161.6-159.65-186.44
|
||||
c-84.35-46.21-197.27-61.16-306.71-33.34c-170.83,43.44-256.98,149.65-157.15,218.26c149.29,102.66,148.88,244.02,37.82,381.07
|
||||
c-261.05,322.06-363.57,512.7-142.28,713.95c241.24,219.53,812.72,166.75,1276.35-126.35
|
||||
C2218.92,3773.38,2605.11,3533.86,2605.11,3533.86"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Eyes">
|
||||
<g id="g24" transform="translate(15.4063,25.5)">
|
||||
<path id="path26" class="st9" d="M1588.99,1547.21c0,135.3-87.78,244.93-195.94,244.93c-108.16,0-195.94-109.63-195.94-244.93
|
||||
c0-135.2,87.78-244.93,195.94-244.93C1501.21,1302.28,1588.99,1412.01,1588.99,1547.21"/>
|
||||
</g>
|
||||
<g id="g32" transform="translate(9.6709,29.667)">
|
||||
<path id="path34" class="st9" d="M1032.82,1134.8c-16.07-8.52-29.69-21.85-38.31-38.99c-21.16-42.03-3.92-90.82,38.5-109.04
|
||||
c417.95-179.29,754.29-4.21,768.39,3.33c42.42,22.63,59.57,73.28,38.31,113.06c-21.16,39.68-72.5,53.49-114.92,31.16
|
||||
c-12.05-6.27-277.46-140.3-615.07,4.6C1084.54,1149.59,1056.13,1147.24,1032.82,1134.8"/>
|
||||
</g>
|
||||
<g id="g36" transform="translate(14.7427,16.4277)">
|
||||
<path id="path38" class="st9" d="M1524.64,2445.12c-13.32-12.44-23.12-28.71-27.04-47.61c-9.7-45.95,19.4-88.76,65.15-95.42
|
||||
c449.89-66.43,730.09,188.99,741.94,199.86c35.27,32.72,38.7,85.92,8.03,119.04c-30.57,32.92-83.77,33.11-118.94,0.59
|
||||
c-10.19-9.01-232.39-206.52-595.87-152.93C1570.78,2472.65,1543.94,2463.15,1524.64,2445.12"/>
|
||||
</g>
|
||||
<g id="g40" transform="translate(20.4307,25.917)">
|
||||
<path id="path42" class="st9" d="M2076.21,1505.94c-15.28-9.6-28.02-23.81-35.47-41.54c-18.32-43.3,2.25-90.92,45.75-106.2
|
||||
c429.22-150.48,752.91,47.03,766.53,55.55c40.66,25.47,54.28,77.1,30.47,115.41c-23.71,38.21-76.03,48.5-116.68,23.32
|
||||
c-11.76-7.15-267.27-158.81-613.99-37.23C2126.96,1524.26,2098.75,1519.95,2076.21,1505.94"/>
|
||||
</g>
|
||||
<g id="g28" transform="translate(26,24.5)">
|
||||
<path id="path30" class="st10" d="M2616.28,1646.19c0,135.3-87.69,244.93-195.94,244.93c-108.16,0-195.94-109.63-195.94-244.93
|
||||
c0-135.2,87.78-244.93,195.94-244.93C2528.6,1401.26,2616.28,1510.99,2616.28,1646.19"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 41 KiB |
|
@ -138,7 +138,7 @@ $(function ($) {
|
|||
if (e.code == "ArrowLeft") {
|
||||
//left
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
imgCont('next');
|
||||
imgCont('prev');
|
||||
return false;
|
||||
}
|
||||
if (selectedColumn > 0) {
|
||||
|
@ -159,7 +159,7 @@ $(function ($) {
|
|||
} else if (e.code == "ArrowRight") {
|
||||
//right
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
imgCont('prev');
|
||||
imgCont('next');
|
||||
return false;
|
||||
}
|
||||
if (selectedColumn < $(".tl-box").length - 1) {
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
}
|
||||
};
|
||||
var $t = $.timeago;
|
||||
|
||||
$.extend($.timeago, {
|
||||
settings: {
|
||||
refreshMillis: 60000,
|
||||
|
@ -47,22 +46,22 @@
|
|||
cutoff: 0,
|
||||
autoDispose: true,
|
||||
strings: {
|
||||
prefixAgo: null,
|
||||
prefixFromNow: "今から",
|
||||
suffixAgo: "",
|
||||
suffixFromNow: "",
|
||||
inPast: '',
|
||||
seconds: "%d秒前",
|
||||
minute: "1分前",
|
||||
minutes: "%d分前",
|
||||
hour: "1時間前",
|
||||
hours: "%d時間前",
|
||||
day: "昨日",
|
||||
days: "%d日前",
|
||||
month: "昨月",
|
||||
months: "%dヶ月前",
|
||||
year: "去年",
|
||||
years: "%d年前",
|
||||
prefixAgo: lang.lang_time_prefixAgo,
|
||||
prefixFromNow: lang.lang_time_prefixFromNow,
|
||||
suffixAgo: lang.lang_time_suffixAgo,
|
||||
suffixFromNow: lang.lang_time_suffixFromNow,
|
||||
inPast: lang.lang_time_inPast,
|
||||
seconds: lang.lang_time_seconds,
|
||||
minute: lang.lang_time_minute,
|
||||
minutes: lang.lang_time_minutes,
|
||||
hour: lang.lang_time_hour,
|
||||
hours: lang.lang_time_hours,
|
||||
day: lang.lang_time_day,
|
||||
days: lang.lang_time_days,
|
||||
month: lang.lang_time_month,
|
||||
months: lang.lang_time_months,
|
||||
year: lang.lang_time_year,
|
||||
years: lang.lang_time_years,
|
||||
wordSeparator: " ",
|
||||
numbers: []
|
||||
}
|
||||
|
|
|
@ -133,6 +133,8 @@ function verck(ver) {
|
|||
if (obj.ID * 1 <= last) {
|
||||
break;
|
||||
} else {
|
||||
if (obj.type == "textv2") {
|
||||
if (~obj.languages.indexOf(lang.language)) {
|
||||
var show = true;
|
||||
if (obj.toot != "") {
|
||||
var toot = '<button class="btn-flat toast-action" onclick="detEx(\'' + obj.toot + '\',\'main\')">Show</button>';
|
||||
|
@ -163,6 +165,8 @@ function verck(ver) {
|
|||
M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -179,6 +183,8 @@ function infowebsocket() {
|
|||
console.log([tlid, ":Receive Streaming:", JSON.parse(mess.data)]);
|
||||
var obj = JSON.parse(mess.data);
|
||||
if (obj.type != "counter") {
|
||||
if (obj.type == "textv2") {
|
||||
if (~obj.languages.indexOf(lang.language)) {
|
||||
localStorage.setItem("last-notice-id", obj.id)
|
||||
var show = true;
|
||||
if (obj.toot != "") {
|
||||
|
@ -207,7 +213,11 @@ function infowebsocket() {
|
|||
}
|
||||
}
|
||||
if (show) {
|
||||
M.toast({ html: escapeHTML(obj.Text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 })
|
||||
console.log(obj.text)
|
||||
console.log(escapeHTML(obj.text))
|
||||
M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 })
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$("#persons").text(obj.text);
|
||||
|
|
|
@ -50,6 +50,10 @@ function customEmoji() {
|
|||
emojiList('home')
|
||||
}
|
||||
function defEmoji(target) {
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if (!selin) {
|
||||
selin = 0;
|
||||
}
|
||||
var emojiraw = newpack.filter(function (item, index) {
|
||||
if (item.short_name == target) return true;
|
||||
});
|
||||
|
@ -60,22 +64,11 @@ function defEmoji(target) {
|
|||
emoji = twemoji.convert.fromCodePoint(hex[0]);
|
||||
}
|
||||
var now = $("#textarea").val();
|
||||
var selin = localStorage.getItem("cursor");
|
||||
var now = $("#textarea").val();
|
||||
if (selin > 0) {
|
||||
var before = now.substr(0, selin);
|
||||
var after = now.substr(selin, now.length);
|
||||
newt = before + emoji + after;
|
||||
} else {
|
||||
newt = emoji + now;
|
||||
}
|
||||
$("#textarea").val(newt);
|
||||
$("#textarea").focus();
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if (!selin) {
|
||||
selin = 0;
|
||||
}
|
||||
localStorage.setItem("cursor", selin);
|
||||
}
|
||||
function faicon() {
|
||||
var json = faicons;
|
||||
|
|
3
app/js/lang/json5Tojson.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
const JSON5 = require('json5')
|
||||
const fs = require("fs")
|
||||
fs.writeFileSync("main.json", JSON.stringify(JSON5.parse(fs.readFileSync("lang." + process.argv[2] + ".js", 'utf8').replace("var lang = ", ""))))
|
247
app/js/lang/lang.bg.js
Normal file
|
@ -0,0 +1,247 @@
|
|||
var lang={
|
||||
"language": "en",
|
||||
"lang_toot": "Раздумай",
|
||||
"lang_there": "Да",
|
||||
"lang_nothing": "Няма",
|
||||
"lang_yesno": "Да",
|
||||
"lang_no": "Не",
|
||||
"lang_progress": "Изчакайте...",
|
||||
"lang_edit": "Редактиране",
|
||||
"lang_del": "Изтрий",
|
||||
"lang_add": "Добави",
|
||||
"lang_fatalerroroccured": "Възникнаха някои грешки, моля рестартирайте Desk.",
|
||||
"lang_speech": "Google US English",
|
||||
"lang_lang": "Език",
|
||||
"lang_langlocale": "Английски",
|
||||
"lang_back": "Назад",
|
||||
"lang_set": "Задай",
|
||||
"lang_langadd": "Преведете TheDesk на други езици или проверете TheDesk на <a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\"> GitHub </a>. TheDesk се нуждае от вашата помощ.",
|
||||
"lang_time_prefixAgo": null,
|
||||
"lang_time_prefixFromNow": null,
|
||||
"lang_time_suffixAgo": null,
|
||||
"lang_time_suffixFromNow": null,
|
||||
"lang_time_inPast": null,
|
||||
"lang_time_seconds": "%d s",
|
||||
"lang_time_minute": "1 m",
|
||||
"lang_time_minutes": "%d m",
|
||||
"lang_time_hour": "1 h",
|
||||
"lang_time_hours": "%d h",
|
||||
"lang_time_day": "1 d",
|
||||
"lang_time_days": "%d d",
|
||||
"lang_time_month": "1 month",
|
||||
"lang_time_months": "%d months",
|
||||
"lang_time_year": "y",
|
||||
"lang_time_years": "%d y",
|
||||
"lang_version_usever": "Не е намерена актуализация({{ver}})",
|
||||
"lang_version_skipver": "Актуализацията бе игнорирана.",
|
||||
"lang_version_platform": "Искате ли автоматични актуализации? (За потребителите инсталирали от Microsoft Store, изберете „Не“)",
|
||||
"lang_version_platform_linux": "Искате ли автоматични актуализации? (За потребителите инсталирали от Snapcraft, изберете „Не“)",
|
||||
"lang_version_platform_mac": "Искате ли автоматични актуализации? (За потребителите на Homebrew Cask изберете „Не“)",
|
||||
"lang_login_noauth": "Показване на TL на нерегистрирани профили",
|
||||
"lang_manager_info": "За тази инстанция",
|
||||
"lang_manager_refresh": "Обнови",
|
||||
"lang_manager_delete": "Излизане",
|
||||
"lang_manager_color": "Цвят на профила",
|
||||
"lang_manager_confirm": "е на път да излезе. Продължаване?",
|
||||
"lang_manager_mainAcct": "Готово: изберете основния профил",
|
||||
"lang_manager_def": "По подразбиране",
|
||||
"lang_manager_none": "Няма",
|
||||
"lang_manager_godev": "Отворете DevCenter на Misskey. Ние показваме официални документи, на които се позоваваме.",
|
||||
"lang_manager_logout": "Излизане",
|
||||
"lang_bbmd_misskey": "TheDesk разглежда \"@\" като отговор, но поставя друг параметър. Ако не е включено в Mastodon това означава, че е в Home на Misskey.",
|
||||
"lang_emoji_get": "Вземи емотикони",
|
||||
"lang_emoji_custom": "Персонализирани емотикони",
|
||||
"lang_defaultemojis_text": "Още емотикони {{cat}}",
|
||||
"lang_postimg_previewdis": "не може да се визуализира",
|
||||
"lang_postimg_aftupload": "Не можете да променяте профилите след качването.",
|
||||
"lang_postimg_delete": "Изтрийте това изображение.",
|
||||
"lang_post_tagTL": "Тази раздумка не съдържа маркер по подразбиране. Тази раздумка няма да се показва в локалния TL. Продължавате?",
|
||||
"lang_post_tagVis": "Тази раздумка (не е \"публична\") не е показана с този етикет в ТЛ.",
|
||||
"lang_post_cwtitle": "Авто CW Сигнал",
|
||||
"lang_post_cwtxt": "На път сте да публикувате по-дълга раздумка, отколкото е зададена.\nТекст на предупреждението:",
|
||||
"lang_post_btn1": "Отказ (няма да се публикува)",
|
||||
"lang_post_btn2": "Текстът да се скрива автоматично",
|
||||
"lang_post_btn3": "Продължете към публикуването",
|
||||
"lang_status_favWarn": "Ще отнеме минута раздумката отдалечено да стане любима.",
|
||||
"lang_status_btWarn": "Ще отнеме минута раздумката отдалечено да бъде подсилена.",
|
||||
"lang_status_follow": "Следване",
|
||||
"lang_status_unfollow": "Спри следенето",
|
||||
"lang_status_block": "Блокирай",
|
||||
"lang_status_unblock": "Отблокирай",
|
||||
"lang_status_mute": "Без звук",
|
||||
"lang_status_unmute": "Със звук",
|
||||
"lang_status_redraftTitle": "Изтрий & върни",
|
||||
"lang_status_redraft": "Продължете да изтривате & преработвате? Ще изгубите статуса на тази раздумка. В тази функция може да се съдържат някои грешки. Снимките от тази раздумка ще бъдат изтрити на по-стари от Mastodon 2.4.1.",
|
||||
"lang_status_emphas": "'s toots are emphasized. Please reload after this action.",
|
||||
"lang_status_unemphas": "'s toots are not emphasized. Please reload after this action.",
|
||||
"lang_status_unendorse": "Not feature on profile",
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_details_nodata": "No data",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
"lang_details_url": "URL of this toot is cliped.",
|
||||
"lang_details_txt": "Content of this toot is cliped.",
|
||||
"lang_filter_nodata": "No data",
|
||||
"lang_filter_errordegree": "Please check a context",
|
||||
"lang_list_nodata": "No data",
|
||||
"lang_list_show": "Show",
|
||||
"lang_list_users": "Users list",
|
||||
"lang_list_nouser": "No users in this list.",
|
||||
"lang_list_add": "Add to the list",
|
||||
"lang_list_add_misskey": "(perhaps this user has been listed)",
|
||||
"lang_list_remove": "Remove from the list",
|
||||
"lang_notf_new": " new notifications",
|
||||
"lang_speech_refresh": "Save value about TTS config",
|
||||
"lang_src_ts": "chronological order",
|
||||
"lang_src_people": " people toot",
|
||||
"lang_tags_always": "Always toots with ",
|
||||
"lang_tags_realtime": "Tag-stream toot",
|
||||
"lang_tags_tagunpin": "Unpin {{tag}}",
|
||||
"lang_tags_unrealtime": "Disable TsT",
|
||||
"lang_tags_tagwarn": "Автоматично попълване на {{tag}}, ако раздумката няма {{tag}}",
|
||||
"lang_tl_media": "Media",
|
||||
"lang_tl_reconnect": "Reconnect to streaming API",
|
||||
"lang_img_DLDone": "Downloaded:",
|
||||
"lang_layout_gotop": "Go top of this column. When icon is red, this column cannot connect straming API. Please reload.",
|
||||
"lang_layout_thisacct": "{{notf}} of this account",
|
||||
"lang_layout_delthis": "Remove this column",
|
||||
"lang_layout_setthis": "Preferences of this column",
|
||||
"lang_layout_mediafil": "Media filtering",
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reconnect to streaming API",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Показване в BT режим (ИЗКЛ./Изключване BT/ Само в BT)",
|
||||
"lang_layout_leftFold": "Стъпка наляво",
|
||||
"lang_layout_leftUnfold": "Док отдясно",
|
||||
"lang_layout_deleteColumn": "Премахване на тази колона",
|
||||
"lang_layout_deleteColumnDesc": "Премахване на тази колона",
|
||||
"lang_sort_gothis": "Отидете в тази колона",
|
||||
"lang_sort_remthis": "Премахване на тази колона",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
"lang_spotify_imgno": "Not attach an album artwork",
|
||||
"lang_spotify_acct": "Connect TheDesk to Spotify",
|
||||
"lang_spotify_np": "Готово:шаблон на NowPlaying",
|
||||
"lang_setting_npprovide": "NowPlaying provider:{{set}}",
|
||||
"lang_hisdata_frcreq": "Required Mastodon 2.4.3 and above",
|
||||
"lang_hisdata_frcwarn": "Unfollow accounts will be shown.",
|
||||
"lang_hisdata_taketime": "It will take 30s ~ several minutes",
|
||||
"lang_hisdata_notonmisskey": "Misskey is unable to request.",
|
||||
"lang_hisdata_key": "This user is proofed by {{set}}",
|
||||
"lang_showontl_movetxt": "This account was moved",
|
||||
"lang_showontl_movebtn": "Continue on the new account",
|
||||
"lang_showontl_botacct": "[bot]",
|
||||
"lang_showontl_followed": "Following you",
|
||||
"lang_showontl_notf": "Notification ",
|
||||
"lang_showontl_domain": "Domain ",
|
||||
"lang_showontl_listwarn": "Follow to add this user to lists.",
|
||||
"lang_showontl_verified": "This website is verified by owner at ",
|
||||
"lang_parse_mentioned": " replied to you",
|
||||
"lang_parse_faved": " favourited your toot",
|
||||
"lang_parse_bted": " boosted your toot",
|
||||
"lang_parse_btedsimple": " boosted",
|
||||
"lang_parse_polled": "'s poll",
|
||||
"lang_parse_notftime": "Actioned at",
|
||||
"lang_parse_cwshow": "Show",
|
||||
"lang_parse_fulltext": "Full size text:",
|
||||
"lang_parse_autofold": "Auto folded",
|
||||
"lang_parse_more": "More",
|
||||
"lang_parse_url": "URL Analyzer",
|
||||
"lang_parse_tagTL": "Timeline of {{tag}}",
|
||||
"lang_parse_tagtoot": "Toot with {{tag}}",
|
||||
"lang_parse_tagpin": "Pin {{tag}}",
|
||||
"lang_parse_public": "Public",
|
||||
"lang_parse_unlisted": "Unlisted",
|
||||
"lang_parse_private": "Private",
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
"lang_parse_quote": "Quote this toot",
|
||||
"lang_parse_del": "Изтрийте тази раздумка",
|
||||
"lang_parse_pin": "Pin this toot",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_redraft": "Изтрий & върни",
|
||||
"lang_parse_followed": "Followed you",
|
||||
"lang_parse_clientop": "Operation of this client",
|
||||
"lang_parse_clienttxt": " will be",
|
||||
"lang_parse_clientno": "done nothing",
|
||||
"lang_parse_clientemp": "emphasized(/not emphasized)",
|
||||
"lang_parse_clientmute": "muted",
|
||||
"lang_parse_mute": " will be muted. You can remove on preferences.",
|
||||
"lang_parse_voted": "Voted",
|
||||
"lang_parse_vote": "Vote",
|
||||
"lang_parse_unvoted": "Show the result without voting",
|
||||
"lang_parse_endedvote": "Expired",
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "NSFW media",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
"lang_misskeyparse_tagnostr": "No streaming API on Tag TLs",
|
||||
"lang_misskeyparse_listnostr": "No streaming API on List TLs",
|
||||
"lang_misskeyparse_home": "Home",
|
||||
"lang_misskeyparse_followers": "Follower",
|
||||
"lang_misskeyparse_specified": "Specified User",
|
||||
"lang_misskeyparse_qt": "Misskey renote(quote) mode:Ctrl+Shift+Enter to clear",
|
||||
"lang_misskeyparse_renoted": " renoted your following post.",
|
||||
"lang_misskeyparse_quoted": " quoted your following post.",
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
"lang_setting_cws": "Always CW on:{{set}}",
|
||||
"lang_setting_rp": "Reply counter:{{set}}",
|
||||
"lang_setting_vis": "Default visibility:{{set}}",
|
||||
"lang_setting_popup": "Popup notification:{{set}}",
|
||||
"lang_setting_off": "Off",
|
||||
"lang_setting_s": "s",
|
||||
"lang_setting_box": "Default toot box action:{{set}}",
|
||||
"lang_setting_gif": "GIF:{{set}}",
|
||||
"lang_setting_selt": "Автоматично сгъване:{{set1}} линии по-нагоре,{{set2}} букви по-нагоре",
|
||||
"lang_setting_autocw": "Автоматично CW:{{set1}} линии по-нагоре, {{set2}} букви по-нагоре",
|
||||
"lang_setting_width": "Minimam width:{{set}}",
|
||||
"lang_setting_fixwidth": "TweetDeck fixed width:{{set}}px",
|
||||
"lang_setting_img": "After posting an image:{{set}}",
|
||||
"lang_setting_font": "Fonts:{{set}}",
|
||||
"lang_setting_default": "default font",
|
||||
"lang_setting_size": "Font size:{{set}}px",
|
||||
"lang_setting_imgheight": "Image height:{{set}}px",
|
||||
"lang_setting_ticker": "#InstanceTicker:{{set}}px",
|
||||
"lang_setting_animation": "Animation: {{set}}",
|
||||
"lang_setting_tag": "Tag TL:{{set}}",
|
||||
"lang_setting_boxConfirm": "Post box:{{set}}",
|
||||
"lang_setting_ul": "Native locale:{{set}}",
|
||||
"lang_setting_notf": "Native notification:{{set}}",
|
||||
"lang_setting_quote": "Quote format:{{set}}",
|
||||
"lang_setting_via": "Via:{{set}}",
|
||||
"lang_setting_mov": "Action buttons hiding:{{set}}",
|
||||
"lang_setting_setasread": "Notification markers:{{set}}",
|
||||
"lang_setting_main": "Default account:{{set}}",
|
||||
"lang_setting_sec": "Secondary toot button:{{set}}",
|
||||
"lang_setting_ksref": "Keyboard shortcuts are refreshed.",
|
||||
"lang_setting_nomuting": "No client is muted.",
|
||||
"lang_setting_notftest": " Notification test ",
|
||||
"lang_setting_notftestprof": "Your icon is shown.",
|
||||
"lang_setting_exportwarn": "Only important data will be exported. You must keep this data secure.",
|
||||
"lang_setting_importwarn": "Всички данни ще бъдат изтрити."
|
||||
}
|
247
app/js/lang/lang.cs.js
Normal file
|
@ -0,0 +1,247 @@
|
|||
var lang={
|
||||
"language": "cs",
|
||||
"lang_toot": "Toot",
|
||||
"lang_there": "Ano",
|
||||
"lang_nothing": "Nic",
|
||||
"lang_yesno": "Ano",
|
||||
"lang_no": "Ne",
|
||||
"lang_progress": "Čekejte...",
|
||||
"lang_edit": "Upravit",
|
||||
"lang_del": "Smazat",
|
||||
"lang_add": "Přidat",
|
||||
"lang_fatalerroroccured": "Vyskytly se nějaké chyby, prosím restartujte TheDesk.",
|
||||
"lang_speech": "Google Čeština",
|
||||
"lang_lang": "Jazyk",
|
||||
"lang_langlocale": "Čeština",
|
||||
"lang_back": "Zpět",
|
||||
"lang_set": "Nastavit",
|
||||
"lang_langadd": "Přeložte TheDesk do jiných jazyků nebo opravte existující překlad na <a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHubu</a> nebo <a href=\"https://translate.thedesk.top/\" target=\"_blank\">Crowdinu</a>. TheDesk potřebuje vaši pomoc.",
|
||||
"lang_time_prefixAgo": null,
|
||||
"lang_time_prefixFromNow": null,
|
||||
"lang_time_suffixAgo": null,
|
||||
"lang_time_suffixFromNow": null,
|
||||
"lang_time_inPast": null,
|
||||
"lang_time_seconds": "%d s",
|
||||
"lang_time_minute": "1 m",
|
||||
"lang_time_minutes": "%d m",
|
||||
"lang_time_hour": "1 h",
|
||||
"lang_time_hours": "%d h",
|
||||
"lang_time_day": "1 d",
|
||||
"lang_time_days": "%d d",
|
||||
"lang_time_month": "1 month",
|
||||
"lang_time_months": "%d months",
|
||||
"lang_time_year": "y",
|
||||
"lang_time_years": "%d y",
|
||||
"lang_version_usever": "Nebyla nalezena žádná aktualizace ({{ver}})",
|
||||
"lang_version_skipver": "Aktualizace byla ignorována.",
|
||||
"lang_version_platform": "Do you want auto-updates?(users installed on Microsoft Store select 'No')",
|
||||
"lang_version_platform_linux": "Do you want auto-updates?(users installed on Snapcraft select 'No')",
|
||||
"lang_version_platform_mac": "Do you want auto-updates?(Homebrew Cask users select 'No')",
|
||||
"lang_login_noauth": "Zobrazit časové osy nepřihlášených účtů",
|
||||
"lang_manager_info": "O tomto serveru",
|
||||
"lang_manager_refresh": "Obnovit",
|
||||
"lang_manager_delete": "Odhlásit",
|
||||
"lang_manager_color": "Barva účtu",
|
||||
"lang_manager_confirm": "se chce odhlásit. Pokračovat?",
|
||||
"lang_manager_mainAcct": "Hotovo: vyberte hlavní účet",
|
||||
"lang_manager_def": "Výchozí",
|
||||
"lang_manager_none": "Žádný",
|
||||
"lang_manager_godev": "Otevřené vývojářské centrum softwaru Misskey. Zobrazujeme také oficiální dokumentaci.",
|
||||
"lang_manager_logout": "Logout",
|
||||
"lang_bbmd_misskey": "TheDesk považuje „@“ za odpověď, ale vkládá ho do jiných parametrů. „Neuvedeno“ na Mastodonu znamená „Domů“ na Misskey.",
|
||||
"lang_emoji_get": "Získat emoji",
|
||||
"lang_emoji_custom": "Vlastní emoji",
|
||||
"lang_defaultemojis_text": "Emojis about {{cat}}",
|
||||
"lang_postimg_previewdis": "nelze vytvořit náhled",
|
||||
"lang_postimg_aftupload": "Po nahrání nemůžete změnit účty.",
|
||||
"lang_postimg_delete": "Delete this image.",
|
||||
"lang_post_tagTL": "Tento toot neobsahuje výchozí hashtag. Tento toot nebude zobrazen na výchozí časové ose. Pokračovat?",
|
||||
"lang_post_tagVis": "Tento toot (ne „veřejný“ toot) není zobrazen na časové ose tohoto hashtagu.",
|
||||
"lang_post_cwtitle": "Automatické varování o obsahu",
|
||||
"lang_post_cwtxt": "Chcete napsat delší toot, než jste nastavil/a.\nText varování:",
|
||||
"lang_post_btn1": "Zrušit (příspěvek nebude publikován)",
|
||||
"lang_post_btn2": "Skrýt text automaticky",
|
||||
"lang_post_btn3": "Pokračovat k přispívání",
|
||||
"lang_status_favWarn": "Oblíbení vzdáleného tootu bude chvíli trvat.",
|
||||
"lang_status_btWarn": "Boostnutí vzdáleného tootu bude chvíli trvat.",
|
||||
"lang_status_follow": "Sledovat",
|
||||
"lang_status_unfollow": "Přestat sledovat",
|
||||
"lang_status_block": "Blokovat",
|
||||
"lang_status_unblock": "Odblokovat",
|
||||
"lang_status_mute": "Ignorovat",
|
||||
"lang_status_unmute": "Přestat ignorovat",
|
||||
"lang_status_redraftTitle": "Delete & redraft",
|
||||
"lang_status_redraft": "Chcete pokračovat k vymazání a přepsání? Ztratíte odpovědi na tento toot. Tato funkce může obashovat několik chyb. Obrázky v tomto tootu budou na verzi Mastodonu starší než 2.4.1 smazány.",
|
||||
"lang_status_emphas": ": tooty tohoto uživatele jsou zdůrazněny. Po této akci prosím obnovte stránku.",
|
||||
"lang_status_unemphas": ": tooty tohoto uživatele nejsou zdůrazněny. Po této akci prosím obnovte stránku.",
|
||||
"lang_status_unendorse": "Nepředstavit na profilu",
|
||||
"lang_status_endorse": "Představit na profilu",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_suggest_nodata": "Pro zobrazení návrhu prosím získejte seznam emoji.",
|
||||
"lang_usetxtbox_reply": "Režim odpovězení. Pro vymazání stiskněte Ctrl+Shift+C.",
|
||||
"lang_cards_check": " kontrolovat",
|
||||
"lang_cards_pip": "Režim PiP",
|
||||
"lang_details_nodata": "Žádná data",
|
||||
"lang_details_filtered": "Filtrovaný toot",
|
||||
"lang_details_embed": "HTML pro vložení je zkopírován.",
|
||||
"lang_details_url": "URL adresa tohoto tootu je zkopírována.",
|
||||
"lang_details_txt": "Obsah tohoto tootu je zkopírován.",
|
||||
"lang_filter_nodata": "Žádná data",
|
||||
"lang_filter_errordegree": "Prosím zkontrolujte kontext",
|
||||
"lang_list_nodata": "Žádná data",
|
||||
"lang_list_show": "Zobrazit",
|
||||
"lang_list_users": "Seznam uživatelů",
|
||||
"lang_list_nouser": "Žádní uživatelé na tomto seznamu.",
|
||||
"lang_list_add": "Přidat na seznam",
|
||||
"lang_list_add_misskey": "(perhaps this user has been listed)",
|
||||
"lang_list_remove": "Odstranit ze seznamu",
|
||||
"lang_notf_new": " nových oznámení",
|
||||
"lang_speech_refresh": "Uložit hodnotu nastavení TTS",
|
||||
"lang_src_ts": "chronologické pořadí",
|
||||
"lang_src_people": " lidí tootují",
|
||||
"lang_tags_always": "Vždy tootnout s ",
|
||||
"lang_tags_realtime": "Tag-stream toot",
|
||||
"lang_tags_tagunpin": "Odepnout {{tag}}",
|
||||
"lang_tags_unrealtime": "Disable TsT",
|
||||
"lang_tags_tagwarn": "Auto complete {{tag}}, if toot without {{tag}}",
|
||||
"lang_tl_media": "Média",
|
||||
"lang_tl_reconnect": "Reconnect to streaming API",
|
||||
"lang_img_DLDone": "Downloaded:",
|
||||
"lang_layout_gotop": "Go top of this column. When icon is red, this column cannot connect straming API. Please reload.",
|
||||
"lang_layout_thisacct": "{{notf}} tohoto účtu",
|
||||
"lang_layout_delthis": "Odstranit tento sloupec",
|
||||
"lang_layout_setthis": "Nastavení tohoto sloupce",
|
||||
"lang_layout_mediafil": "Filtrování médií",
|
||||
"lang_layout_linkana": "Automatický analyzátor odkazů",
|
||||
"lang_layout_linkanades": "Automatický analyzátor odkazů",
|
||||
"lang_layout_tts": "Převod textu na řeč ",
|
||||
"lang_layout_reconnect": "Reconnect to streaming API",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[Žádná data]<br>Obnovte stránku klávesami F5/⌘+R",
|
||||
"lang_layout_dm": "Přímá zpráva",
|
||||
"lang_layout_webviewmode": "Preferovat WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
"lang_layout_deleteColumnDesc": "Delete this column",
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
"lang_spotify_imgno": "Not attach an album artwork",
|
||||
"lang_spotify_acct": "Spojit TheDesk se Spotify",
|
||||
"lang_spotify_np": "Hotovo: šablona NowPlaying",
|
||||
"lang_setting_npprovide": "NowPlaying provider:{{set}}",
|
||||
"lang_hisdata_frcreq": "Vyžaduje Mastodon 2.4.3 nebo vyšší verzi",
|
||||
"lang_hisdata_frcwarn": "Budou zobrazeny již nesledované účty.",
|
||||
"lang_hisdata_taketime": "It will take 30s ~ several minutes",
|
||||
"lang_hisdata_notonmisskey": "Misskey is unable to request.",
|
||||
"lang_hisdata_key": "This user is proofed by {{set}}",
|
||||
"lang_showontl_movetxt": "Tento účet byl přesunut",
|
||||
"lang_showontl_movebtn": "Continue on the new account",
|
||||
"lang_showontl_botacct": "[robot]",
|
||||
"lang_showontl_followed": "Sledují vás",
|
||||
"lang_showontl_notf": "Oznámení ",
|
||||
"lang_showontl_domain": "Doména ",
|
||||
"lang_showontl_listwarn": "Follow to add this user to lists.",
|
||||
"lang_showontl_verified": "This website is verified by owner at ",
|
||||
"lang_parse_mentioned": " vám odpověděl/a",
|
||||
"lang_parse_faved": " si oblíbil/a váš toot",
|
||||
"lang_parse_bted": " boostnul/a váš toot",
|
||||
"lang_parse_btedsimple": " boostnul/a",
|
||||
"lang_parse_polled": "'s poll",
|
||||
"lang_parse_notftime": "Provedeno",
|
||||
"lang_parse_cwshow": "Zobrazit",
|
||||
"lang_parse_fulltext": "Celý text:",
|
||||
"lang_parse_autofold": "Auto folded",
|
||||
"lang_parse_more": "Více",
|
||||
"lang_parse_url": "Analyzátor URL",
|
||||
"lang_parse_tagTL": "Časová osa {{tag}}",
|
||||
"lang_parse_tagtoot": "Tootnout s hashtagem {{tag}}",
|
||||
"lang_parse_tagpin": "Připnout {{tag}}",
|
||||
"lang_parse_public": "Veřejný",
|
||||
"lang_parse_unlisted": "Neuvedený",
|
||||
"lang_parse_private": "Soukromý",
|
||||
"lang_parse_direct": "Přímý",
|
||||
"lang_parse_clickcopy": "Klikněte pro zkopírování textu tohoto tootu",
|
||||
"lang_parse_clickcopyurl": "Klikněte pro zkopírování URL adresy tohoto tootu",
|
||||
"lang_parse_trans": "Přeložit do japonštiny",
|
||||
"lang_parse_replyto": "Odpovědět na tento toot",
|
||||
"lang_parse_bt": "Boostnout tento toot",
|
||||
"lang_parse_fav": "Oblíbit si tento toot",
|
||||
"lang_parse_quote": "Citovat tento toot",
|
||||
"lang_parse_del": "Smazat tento toot",
|
||||
"lang_parse_pin": "Připnout tento toot",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_redraft": "Vymazat a přepsat",
|
||||
"lang_parse_followed": "vás nyní sleduje",
|
||||
"lang_parse_clientop": "Operace tohoto klienta",
|
||||
"lang_parse_clienttxt": " bude",
|
||||
"lang_parse_clientno": "nic nedělat",
|
||||
"lang_parse_clientemp": "zdůrazněna (nebo nezdůrazněna)",
|
||||
"lang_parse_clientmute": "ztlumena",
|
||||
"lang_parse_mute": " bude ztlumena. To můžete odstranit v nastavení.",
|
||||
"lang_parse_voted": "Voted",
|
||||
"lang_parse_vote": "Vote",
|
||||
"lang_parse_unvoted": "Show the result without voting",
|
||||
"lang_parse_endedvote": "Expired",
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "NSFW media",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Znovusdílení",
|
||||
"lang_misskeyparse_renoteqt": "Renotování",
|
||||
"lang_misskeyparse_reaction": "Reakce",
|
||||
"lang_misskeyparse_tagnostr": "Žádné streamovací API na časových osách hashtagů",
|
||||
"lang_misskeyparse_listnostr": "Žádné streamovací API na časových osách seznamů",
|
||||
"lang_misskeyparse_home": "Domů",
|
||||
"lang_misskeyparse_followers": "Sledující",
|
||||
"lang_misskeyparse_specified": "Určený uživatel",
|
||||
"lang_misskeyparse_qt": "Režim renotování (citace) Misskey: pro vymazání stiskněte Ctrl+Shift+Enter",
|
||||
"lang_misskeyparse_renoted": " renotoval/a váš následující příspěvek.",
|
||||
"lang_misskeyparse_quoted": " citoval/a váš následující příspěvek.",
|
||||
"lang_misskeyparse_reacted": " reagoval/a na váš následující příspěvek.",
|
||||
"lang_setting_time": "Časový formát: {{set}}",
|
||||
"lang_setting_theme": "Motiv: {{set}}",
|
||||
"lang_setting_nsfw": "Citlivý obsah: {{set}}",
|
||||
"lang_setting_cw": "Varování: {{set}}",
|
||||
"lang_setting_cwtext": "Výchozí text varování: {{set}}",
|
||||
"lang_setting_cws": "Vždy zapnout varování na: {{set}}",
|
||||
"lang_setting_rp": "Počitadlo odpovědí: {{set}}",
|
||||
"lang_setting_vis": "Výchozí viditelnost: {{set}}",
|
||||
"lang_setting_popup": "Popupové oznámení: {{set}}",
|
||||
"lang_setting_off": "Vyl",
|
||||
"lang_setting_s": "s",
|
||||
"lang_setting_box": "Výchozí akce tootového pole: {{set}}",
|
||||
"lang_setting_gif": "GIF: {{set}}",
|
||||
"lang_setting_selt": "Auto fold:{{set1}} lines and above, {{set2}} letters and above",
|
||||
"lang_setting_autocw": "Auto CW:{{set1}} lines and above, {{set2}} letters and above",
|
||||
"lang_setting_width": "Minimam width:{{set}}",
|
||||
"lang_setting_fixwidth": "TweetDeck fixed width:{{set}}px",
|
||||
"lang_setting_img": "After posting an image:{{set}}",
|
||||
"lang_setting_font": "Písma: {{set}}",
|
||||
"lang_setting_default": "výchozí písmo",
|
||||
"lang_setting_size": "Velikost písma: {{set}} px",
|
||||
"lang_setting_imgheight": "Výška obrázků: {{set}} px",
|
||||
"lang_setting_ticker": "#InstanceTicker: {{set}} px",
|
||||
"lang_setting_animation": "Animation: {{set}}",
|
||||
"lang_setting_tag": "Časová osa hashtagu: {{set}}",
|
||||
"lang_setting_boxConfirm": "Post box:{{set}}",
|
||||
"lang_setting_ul": "Native locale:{{set}}",
|
||||
"lang_setting_notf": "Native notification:{{set}}",
|
||||
"lang_setting_quote": "Formát citace: {{set}}",
|
||||
"lang_setting_via": "Přes: {{set}}",
|
||||
"lang_setting_mov": "Action buttons hiding:{{set}}",
|
||||
"lang_setting_setasread": "Notification markers:{{set}}",
|
||||
"lang_setting_main": "Default account:{{set}}",
|
||||
"lang_setting_sec": "Secondary toot button:{{set}}",
|
||||
"lang_setting_ksref": "Keyboard shortcuts are refreshed.",
|
||||
"lang_setting_nomuting": "Žádný klient není ztlumen.",
|
||||
"lang_setting_notftest": " Test oznámení ",
|
||||
"lang_setting_notftestprof": "Vaše ikona je zobrazena.",
|
||||
"lang_setting_exportwarn": "Budou exportována pouze důležitá data. Tato data musíte udržet v bezpečí.",
|
||||
"lang_setting_importwarn": "Všechna data budou smazána."
|
||||
}
|
247
app/js/lang/lang.de.js
Normal file
|
@ -0,0 +1,247 @@
|
|||
var lang={
|
||||
"language": "en",
|
||||
"lang_toot": "Tröt",
|
||||
"lang_there": "Ja",
|
||||
"lang_nothing": "Ohne",
|
||||
"lang_yesno": "Ja",
|
||||
"lang_no": "Nein",
|
||||
"lang_progress": "Warten...",
|
||||
"lang_edit": "Bearbeiten",
|
||||
"lang_del": "Löschen",
|
||||
"lang_add": "Hinzufügen",
|
||||
"lang_fatalerroroccured": "Ein Fehler ist aufgetreten, bitte starten Sie TheDesk neu.",
|
||||
"lang_speech": "Google US Englisch",
|
||||
"lang_lang": "Sprache",
|
||||
"lang_langlocale": "Englisch",
|
||||
"lang_back": "Zurück",
|
||||
"lang_set": "Setzen",
|
||||
"lang_langadd": "Übersetzen oder korrigieren Sie TheDesk in andere Sprachen auf <a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHub</a>. TheDesk benötigt Ihre Hilfe.",
|
||||
"lang_time_prefixAgo": null,
|
||||
"lang_time_prefixFromNow": null,
|
||||
"lang_time_suffixAgo": null,
|
||||
"lang_time_suffixFromNow": null,
|
||||
"lang_time_inPast": null,
|
||||
"lang_time_seconds": "%d s",
|
||||
"lang_time_minute": "1 m",
|
||||
"lang_time_minutes": "%d m",
|
||||
"lang_time_hour": "1 h",
|
||||
"lang_time_hours": "%d h",
|
||||
"lang_time_day": "1 d",
|
||||
"lang_time_days": "%d d",
|
||||
"lang_time_month": "1 month",
|
||||
"lang_time_months": "%d months",
|
||||
"lang_time_year": "y",
|
||||
"lang_time_years": "%d y",
|
||||
"lang_version_usever": "Keine Aktualisierung gefunden({{ver}})",
|
||||
"lang_version_skipver": "Update wurde ignoriert.",
|
||||
"lang_version_platform": "Möchten Sie automatische Updates?(Benutzer im Microsoft Store wählen 'Nein')",
|
||||
"lang_version_platform_linux": "Möchten Sie automatische Updates?(Benutzer auf Snapcraft wählen 'Nein')",
|
||||
"lang_version_platform_mac": "Möchten Sie automatische Updates?(Homebrew Cask Benutzer wählen 'Nein')",
|
||||
"lang_login_noauth": "Verläufe von nicht angemeldeten Konten anzeigen",
|
||||
"lang_manager_info": "Über diese Instanz",
|
||||
"lang_manager_refresh": "Aktualisieren",
|
||||
"lang_manager_delete": "Abmelden",
|
||||
"lang_manager_color": "Kontofarbe",
|
||||
"lang_manager_confirm": "ist im Begriff, sich auszuloggen. Fortfahren?",
|
||||
"lang_manager_mainAcct": "Fertig:Hauptkonto wählen",
|
||||
"lang_manager_def": "Standard",
|
||||
"lang_manager_none": "Ohne",
|
||||
"lang_manager_godev": "Öffnen Sie das DevCenter von Misskey. Wir zeigen auch ein offizielles Dokument als Referenz.",
|
||||
"lang_manager_logout": "Abmelden",
|
||||
"lang_bbmd_misskey": "TheDesk betrachtet \"@\" als Antwort, setzt aber einen anderen Parameter. Nicht auf Mastodon gelistet bedeutet Home on Misskey.",
|
||||
"lang_emoji_get": "Hole Emojis",
|
||||
"lang_emoji_custom": "Eigene Emojis",
|
||||
"lang_defaultemojis_text": "Emojis über {{cat}}",
|
||||
"lang_postimg_previewdis": "keine Vorschau",
|
||||
"lang_postimg_aftupload": "Sie können die Konten nach dem Hochladen nicht mehr ändern.",
|
||||
"lang_postimg_delete": "Dieses Bild löschen.",
|
||||
"lang_post_tagTL": "Dieses Tröt enthält keinen Standard-Tag. Er wird in dem lokalen Verlauf nicht angezeigt. Fortfahren?",
|
||||
"lang_post_tagVis": "Dieser Tröt (nicht 'öffentlicher' Tröt) wird nicht in diesem Tag-Verlauf angezeigt.",
|
||||
"lang_post_cwtitle": "Auto CW Alert",
|
||||
"lang_post_cwtxt": "Du bist dabei, länger zu posten, als du eingestellt hast.\nWarntext:",
|
||||
"lang_post_btn1": "Abbrechen (wird nicht gesendet)",
|
||||
"lang_post_btn2": "Text automatisch ausblenden",
|
||||
"lang_post_btn3": "Weiter mit Senden",
|
||||
"lang_status_favWarn": "Es braucht einen Moment, um ein entferntes Tröt zu favorisieren.",
|
||||
"lang_status_btWarn": "Es braucht einen Moment, um ein entferntes Tröt zu verstärken.",
|
||||
"lang_status_follow": "Folgen",
|
||||
"lang_status_unfollow": "Nicht mehr folgen",
|
||||
"lang_status_block": "Blockieren",
|
||||
"lang_status_unblock": "Freigeben",
|
||||
"lang_status_mute": "Stummschalten",
|
||||
"lang_status_unmute": "Stummschalten aufheben",
|
||||
"lang_status_redraftTitle": "Löschen & Neuentwerfen",
|
||||
"lang_status_redraft": "Weiter mit löschen & neu entwerfen? Du verlierst den Status dieses Tröts. Diese Aktion kann einige Fehler enthalten. Bilder dieses Tröts werden auf älteren Versionen als Mastodon 2.4.1 gelöscht.",
|
||||
"lang_status_emphas": "'s Tröts werden hervorgehoben. Bitte laden Sie nach dieser Aktion neu.",
|
||||
"lang_status_unemphas": "'s Tröts werden nicht hervorgehoben. Bitte laden Sie nach dieser Aktion neu.",
|
||||
"lang_status_unendorse": "Nicht auf dem Profil zeigen",
|
||||
"lang_status_endorse": "Auf dem Profil zeigen",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Antwortmodus. Strg+Umschalt+C zum Löschen.",
|
||||
"lang_cards_check": " überprüfen",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_details_nodata": "Keine Daten",
|
||||
"lang_details_filtered": "Gefilterter Tröt",
|
||||
"lang_details_embed": "Eingefügtes HTML wurde entfernt.",
|
||||
"lang_details_url": "URL dieses Tröts wurde entfernt.",
|
||||
"lang_details_txt": "Inhalt dieses Tröts wurde entfernt.",
|
||||
"lang_filter_nodata": "Keine Daten",
|
||||
"lang_filter_errordegree": "Bitte überprüfen Sie den Kontext",
|
||||
"lang_list_nodata": "Keine Daten",
|
||||
"lang_list_show": "Anzeigen",
|
||||
"lang_list_users": "Benutzerliste",
|
||||
"lang_list_nouser": "Keine Benutzer in dieser Liste.",
|
||||
"lang_list_add": "Zur Liste hinzufügen",
|
||||
"lang_list_add_misskey": "(vielleicht wurde dieser Benutzer aufgelistet)",
|
||||
"lang_list_remove": "Aus Liste entfernen",
|
||||
"lang_notf_new": " neue Benachrichtigungen",
|
||||
"lang_speech_refresh": "Sichern der Vorlesefunktionseinstellungen",
|
||||
"lang_src_ts": "chronologische Reihenfolge",
|
||||
"lang_src_people": " Leute Tröt",
|
||||
"lang_tags_always": "Immer Tröten mit ",
|
||||
"lang_tags_realtime": "Tag-Stream Tröt",
|
||||
"lang_tags_tagunpin": "{{tag}} entsperren",
|
||||
"lang_tags_unrealtime": "Disable TsT",
|
||||
"lang_tags_tagwarn": "Automatisch {{tag}} anfügen, wenn Tröt ohne {{tag}} ist",
|
||||
"lang_tl_media": "Medien",
|
||||
"lang_tl_reconnect": "Mit Streaming API erneut verbinden",
|
||||
"lang_img_DLDone": "Heruntergeladen:",
|
||||
"lang_layout_gotop": "Gehen Sie zum Anfang dieser Spalte. Wenn das Symbol rot ist, kann diese Spalte keine Verbindung zur Streaming-API herstellen. Bitte neu laden.",
|
||||
"lang_layout_thisacct": "{{notf}} dieses Kontos",
|
||||
"lang_layout_delthis": "Diese Spalte löschen",
|
||||
"lang_layout_setthis": "Einstellungen dieser Spalte",
|
||||
"lang_layout_mediafil": "Medien filtern",
|
||||
"lang_layout_linkana": "Automatische Link-Analyse",
|
||||
"lang_layout_linkanades": "Automatische Link-Analyse",
|
||||
"lang_layout_tts": "Sprachausgabe ",
|
||||
"lang_layout_reconnect": "Mit Streaming API erneut verbinden",
|
||||
"lang_layout_headercolor": "Kopfzeilenfarbe dieser Spalte",
|
||||
"lang_layout_nodata": "[Keine Daten]<br>F5/⌘+R zum Neu laden",
|
||||
"lang_layout_dm": "Direkte Nachricht",
|
||||
"lang_layout_webviewmode": "Web-Ansicht bevorzugen",
|
||||
"lang_excluded": "Ausgeschlossene Benachrichtigungsart",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_leftFold": "Nach links Stapeln",
|
||||
"lang_layout_leftUnfold": "Rechts Anheften",
|
||||
"lang_layout_deleteColumn": "Diese Spalte löschen",
|
||||
"lang_layout_deleteColumnDesc": "Diese Spalte löschen",
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_sort_gothis": "Gehe zu dieser Spalte",
|
||||
"lang_sort_remthis": "Diese Spalte löschen",
|
||||
"lang_spotify_img": "Albumcover anhängen",
|
||||
"lang_spotify_imgno": "Kein Albumcover anhängen",
|
||||
"lang_spotify_acct": "TheDesk mit Spotify verbinden",
|
||||
"lang_spotify_np": "Done:Vorlage für NowPlaying",
|
||||
"lang_setting_npprovide": "NowPlaying Provider:{{set}}",
|
||||
"lang_hisdata_frcreq": "Benötigte Mastodon 2.4.3 und höher",
|
||||
"lang_hisdata_frcwarn": "Unfollow accounts will be shown.",
|
||||
"lang_hisdata_taketime": "Es dauert 30s bis mehrere Minuten",
|
||||
"lang_hisdata_notonmisskey": "Misskey kann nicht angefordert werden.",
|
||||
"lang_hisdata_key": "Dieser Benutzer ist von {{set}} überprüft",
|
||||
"lang_showontl_movetxt": "Dieses Konto wurde verschoben",
|
||||
"lang_showontl_movebtn": "Auf dem neuen Konto fortfahren",
|
||||
"lang_showontl_botacct": "[bot]",
|
||||
"lang_showontl_followed": "Folgt dir",
|
||||
"lang_showontl_notf": "Benachrichtigung ",
|
||||
"lang_showontl_domain": "Domain ",
|
||||
"lang_showontl_listwarn": "Folgen, um diesen Benutzer zu Listen hinzuzufügen.",
|
||||
"lang_showontl_verified": "This website is verified by owner at ",
|
||||
"lang_parse_mentioned": " hat dir geantwortet",
|
||||
"lang_parse_faved": " favorisierte deinen Tröt",
|
||||
"lang_parse_bted": " hat deinen Tröt verstärkt",
|
||||
"lang_parse_btedsimple": " verstärkt",
|
||||
"lang_parse_polled": "'s Umfrage",
|
||||
"lang_parse_notftime": "Bearbeitet am",
|
||||
"lang_parse_cwshow": "Anzeigen",
|
||||
"lang_parse_fulltext": "Full size text:",
|
||||
"lang_parse_autofold": "Automatisches Zusammenfalten",
|
||||
"lang_parse_more": "Mehr",
|
||||
"lang_parse_url": "URL-Analyse",
|
||||
"lang_parse_tagTL": "Verlauf von {{tag}}",
|
||||
"lang_parse_tagtoot": "Tröt mit {{tag}}",
|
||||
"lang_parse_tagpin": "Pin {{tag}}",
|
||||
"lang_parse_public": "Öffentlich",
|
||||
"lang_parse_unlisted": "Nicht aufgeführt",
|
||||
"lang_parse_private": "Privat",
|
||||
"lang_parse_direct": "Direkt",
|
||||
"lang_parse_clickcopy": "Klicken, um den Text dieses Tröts zu kopieren",
|
||||
"lang_parse_clickcopyurl": "Klicken, um die URL dieses Tröts zu kopieren",
|
||||
"lang_parse_trans": "Übersetzen nach Japanisch",
|
||||
"lang_parse_replyto": "Auf diesen Tröt antworten",
|
||||
"lang_parse_bt": "Diesen Tröt verstärken",
|
||||
"lang_parse_fav": "Diesen Tröt favorisieren",
|
||||
"lang_parse_quote": "Diesen Tröt zitieren",
|
||||
"lang_parse_del": "Diesen Tröt löschen",
|
||||
"lang_parse_pin": "Dieses Tröt fixieren",
|
||||
"lang_parse_det": "Details über Ihr Hauptkonto.",
|
||||
"lang_parse_redraft": "Löschen & Neuentwerfen",
|
||||
"lang_parse_followed": "Folgt dir",
|
||||
"lang_parse_clientop": "Aktion dieses Clients",
|
||||
"lang_parse_clienttxt": " wird",
|
||||
"lang_parse_clientno": "Nichts unternehmen",
|
||||
"lang_parse_clientemp": "Hervorgehoben(/nicht hervorgehoben)",
|
||||
"lang_parse_clientmute": "Stumm",
|
||||
"lang_parse_mute": " wird stumm gemacht. Kann in den Einstellungen wieder entfernt werden.",
|
||||
"lang_parse_voted": "Abgestimmt",
|
||||
"lang_parse_vote": "Abstimmen",
|
||||
"lang_parse_unvoted": "Ergebnis ohne Abstimmung anzeigen",
|
||||
"lang_parse_endedvote": "Abgelaufen",
|
||||
"lang_parse_thread": "Konversation anzeigen",
|
||||
"lang_parse_unknown": "Angehängte Datei",
|
||||
"lang_parse_nsfw": "NSFW Medien",
|
||||
"lang_parse_notffilter": "Benachrichtigungen dieses Benutzers anzeigen",
|
||||
"lang_misskeyparse_renote": "Weiterleiten",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaktion",
|
||||
"lang_misskeyparse_tagnostr": "Keine Streaming-API für Tag-Verläufe",
|
||||
"lang_misskeyparse_listnostr": "Keine Streaming-API fpr Listen-Verläufe",
|
||||
"lang_misskeyparse_home": "Startseite",
|
||||
"lang_misskeyparse_followers": "Abonnent",
|
||||
"lang_misskeyparse_specified": "Ausgewählte Benutzer",
|
||||
"lang_misskeyparse_qt": "Misskey renote(quote) mode:Ctrl+Shift+Enter to clear",
|
||||
"lang_misskeyparse_renoted": " hat deinen folgenden Beitrag zurückgewiesen.",
|
||||
"lang_misskeyparse_quoted": " zitierte deinen folgenden Beitrag.",
|
||||
"lang_misskeyparse_reacted": " hat auf Ihren folgenden Beitrag reagiert.",
|
||||
"lang_setting_time": "Zeitformat:{{set}}",
|
||||
"lang_setting_theme": "Design:{{set}}",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
"lang_setting_cws": "Always CW on:{{set}}",
|
||||
"lang_setting_rp": "Antwortzähler:{{set}}",
|
||||
"lang_setting_vis": "Standardsichtbarkeit:{{set}}",
|
||||
"lang_setting_popup": "Popup-Benachrichtigung:{{set}}",
|
||||
"lang_setting_off": "Aus",
|
||||
"lang_setting_s": "s",
|
||||
"lang_setting_box": "Standard-Tröt-Box-Aktion:{{set}}",
|
||||
"lang_setting_gif": "GIF:{{set}}",
|
||||
"lang_setting_selt": "Auto-Falten:{{set1}} Zeilen und höher, {{set2}} Buchstaben und höher",
|
||||
"lang_setting_autocw": "Auto CW:{{set1}} lines and above, {{set2}} letters and above",
|
||||
"lang_setting_width": "Minimale Breite:{{set}}",
|
||||
"lang_setting_fixwidth": "TweetDeck feste Breite:{{set}}px",
|
||||
"lang_setting_img": "Nach dem Posten eines Bildes:{{set}}",
|
||||
"lang_setting_font": "Schriftart:{{set}}",
|
||||
"lang_setting_default": "Standard-Schriftart",
|
||||
"lang_setting_size": "Schriftgröße:{{set}}px",
|
||||
"lang_setting_imgheight": "Bildhöhe:{{set}}px",
|
||||
"lang_setting_ticker": "#InstanceTicker:{{set}}px",
|
||||
"lang_setting_animation": "Animation: {{set}}",
|
||||
"lang_setting_tag": "Tag-Verlauf:{{set}}",
|
||||
"lang_setting_boxConfirm": "Postfach:{{set}}",
|
||||
"lang_setting_ul": "Muttersprache:{{set}}",
|
||||
"lang_setting_notf": "System Benachrichtigungen:{{set}}",
|
||||
"lang_setting_quote": "Zitierformat:{{set}}",
|
||||
"lang_setting_via": "Via:{{set}}",
|
||||
"lang_setting_mov": "Aktionstasten verstecken:{{set}}",
|
||||
"lang_setting_setasread": "Benachrichtigungs-Markierungen:{{set}}",
|
||||
"lang_setting_main": "Standard-Konto:{{set}}",
|
||||
"lang_setting_sec": "Zweite Tröt-Taste:{{set}}",
|
||||
"lang_setting_ksref": "Tastaturkürzel werden aktualisiert.",
|
||||
"lang_setting_nomuting": "Kein Client ist stumm.",
|
||||
"lang_setting_notftest": " Benachrichtigungen testen ",
|
||||
"lang_setting_notftestprof": "Ihr Symbol wird angezeigt.",
|
||||
"lang_setting_exportwarn": "Nur wichtige Daten werden exportiert. Sie müssen diese Daten sichern.",
|
||||
"lang_setting_importwarn": "Alle Daten werden gelöscht."
|
||||
}
|
|
@ -18,6 +18,23 @@ var lang = {
|
|||
"lang_back": "Back",
|
||||
"lang_set": "Set",
|
||||
"lang_langadd": "Translate TheDesk to other languages or proofread TheDesk on <a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHub</a>. TheDesk needs your help.",
|
||||
//common/time.js
|
||||
"lang_time_prefixAgo": null,
|
||||
"lang_time_prefixFromNow": null,
|
||||
"lang_time_suffixAgo": null,
|
||||
"lang_time_suffixFromNow": null,
|
||||
"lang_time_inPast": null,
|
||||
"lang_time_seconds": "%d s",
|
||||
"lang_time_minute": "1 m",
|
||||
"lang_time_minutes": "%d m",
|
||||
"lang_time_hour": "1 h",
|
||||
"lang_time_hours": "%d h",
|
||||
"lang_time_day": "1 d",
|
||||
"lang_time_days": "%d d",
|
||||
"lang_time_month": "1 month",
|
||||
"lang_time_months": "%d months",
|
||||
"lang_time_year": "y",
|
||||
"lang_time_years": "%d y",
|
||||
//common/version.js
|
||||
"lang_version_usever": "No update is found({{ver}})",
|
||||
"lang_version_skipver": "Update was ignored.",
|
||||
|
@ -72,6 +89,8 @@ var lang = {
|
|||
"lang_status_unemphas": "'s toots are not emphasized. Please reload after this action.",
|
||||
"lang_status_unendorse": "Not feature on profile",
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
//post/suggest.js
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
//post/use-txtbox.js
|
||||
|
@ -123,7 +142,7 @@ var lang = {
|
|||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reconnect to streaming API",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
|
@ -134,6 +153,7 @@ var lang = {
|
|||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
"lang_layout_deleteColumnDesc": "Delete this column",
|
||||
"lang_layout_unread": "Unread",
|
||||
//ui/sort.js
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
|
@ -201,7 +221,7 @@ var lang = {
|
|||
"lang_parse_endedvote": "Expired",
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "NSFW media",
|
||||
"lang_parse_nsfw": "sensitive media",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
//misskey
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
|
@ -219,7 +239,7 @@ var lang = {
|
|||
//setting
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
"lang_setting_cws": "Always CW on:{{set}}",
|
||||
|
|
|
@ -18,6 +18,23 @@ var lang = {
|
|||
"lang_back": "戻る",
|
||||
"lang_set": "設定",
|
||||
"lang_langadd": "<a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHub</a>から翻訳に参加できます。英語の校正(緊急)や他言語に翻訳していただける方を募集しております。",
|
||||
//common/time.js
|
||||
"lang_time_prefixAgo": null,
|
||||
"lang_time_prefixFromNow": "今から",
|
||||
"lang_time_suffixAgo": "",
|
||||
"lang_time_suffixFromNow": "",
|
||||
"lang_time_inPast": '',
|
||||
"lang_time_seconds": "%d秒前",
|
||||
"lang_time_minute": "1分前",
|
||||
"lang_time_minutes": "%d分前",
|
||||
"lang_time_hour": "1時間前",
|
||||
"lang_time_hours": "%d時間前",
|
||||
"lang_time_day": "昨日",
|
||||
"lang_time_days": "%d日前",
|
||||
"lang_time_month": "昨月",
|
||||
"lang_time_months": "%dヶ月前",
|
||||
"lang_time_year": "去年",
|
||||
"lang_time_years": "%d年前",
|
||||
//common/version.js
|
||||
"lang_version_usever": "お使いのバージョン{{ver}}は最新です。",
|
||||
"lang_version_skipver": "アップデートはスキップされました。",
|
||||
|
@ -72,6 +89,8 @@ var lang = {
|
|||
"lang_status_unemphas": "を強調解除します。リロードしてください。",
|
||||
"lang_status_unendorse": "紹介解除",
|
||||
"lang_status_endorse": "プロフで紹介する",
|
||||
"lang_status_followers": "フォロワー",
|
||||
"lang_status_active": "最新トゥート",
|
||||
//post/suggest.js
|
||||
"lang_suggest_nodata": "サジェストのために絵文字リストを取得してください。",
|
||||
//post/use-txtbox.js
|
||||
|
@ -123,7 +142,7 @@ var lang = {
|
|||
"lang_layout_linkana": "リンク解析",
|
||||
"lang_layout_linkanades": "リンクの解析を切り替え",
|
||||
"lang_layout_tts": "読み上げ",
|
||||
"lang_layout_reconnect": "ストリーミング再接続",
|
||||
"lang_layout_reconnect": "カラム再読込",
|
||||
"lang_layout_headercolor": "TLヘッダーカラー",
|
||||
"lang_layout_nodata": "[ここにトゥートはありません。]<br>F5/⌘+Rで再読込できます。",
|
||||
"lang_layout_dm": "ダイレクトメッセージ",
|
||||
|
@ -134,6 +153,7 @@ var lang = {
|
|||
"lang_layout_leftUnfold": "右へ出す",
|
||||
"lang_layout_deleteColumn": "カラム削除",
|
||||
"lang_layout_deleteColumnDesc": "カラムを削除しますか?",
|
||||
"lang_layout_unread": "未読",
|
||||
//ui/sort.js
|
||||
"lang_sort_gothis": "このカラムへ",
|
||||
"lang_sort_remthis": "このカラムを削除",
|
||||
|
|
|
@ -9,16 +9,11 @@ var idata = {
|
|||
"kirishima.cloud_public": "パブリックタイムライン",
|
||||
"minohdon.jp": "instance",
|
||||
"minohdon.jp_name": "箕面どん",
|
||||
"minohdon.jp_letters": "500",
|
||||
"minohdon.jp_bbcode": "disabled",
|
||||
"minohdon.jp_markdown": "disabled",
|
||||
"minohdon.jp_glitch": "disabled",
|
||||
"fedibird.com":"instance",
|
||||
"fedibird.com_name":"Fedibird",
|
||||
"fedibird.com_quote":"enabled",
|
||||
"mastodos.com": "instance",
|
||||
"mastodos.com_name": "マストどす",
|
||||
"mastodos.com_letters": "500",
|
||||
"mastodos.com_bbcode": "disabled",
|
||||
"mastodos.com_markdown": "disabled",
|
||||
"mastodos.com_glitch": "disabled",
|
||||
"dev.kirishima.cloud": "hidden",
|
||||
"dev.kirishima.cloud_name": "アスタルテ(Dev)",
|
||||
"dev.kirishima.cloud_letters": "6229",
|
||||
|
@ -27,15 +22,8 @@ var idata = {
|
|||
"dev.kirishima.cloud_glitch": "enabled",
|
||||
"mstdn.y-zu.org": "instance",
|
||||
"mstdn.y-zu.org_name": "Yづドン(Y-zuDon)",
|
||||
"mstdn.y-zu.org_letters": "500",
|
||||
"mstdn.y-zu.org_bbcode": "disabled",
|
||||
"mstdn.y-zu.org_markdown": "enabled",
|
||||
"mstdn.y-zu.org_glitch": "disabled",
|
||||
"imastodon.net": "instance",
|
||||
"imastodon.net_name": "im@stodon",
|
||||
"imastodon.net_letters": "500",
|
||||
"imastodon.net_bbcode": "disabled",
|
||||
"imastodon.net_markdown": "disabled",
|
||||
"imastodon.net_home": "オフィス",
|
||||
"imastodon.net_local": "楽屋",
|
||||
"imastodon.net_notification": "ホワイトボード",
|
||||
|
@ -44,12 +32,6 @@ var idata = {
|
|||
"imastodon.net_fav": "の頭にティンときたようです",
|
||||
"imastodon.net_bt": ":「わかるわ」",
|
||||
"imastodon.net_follow": "名刺をいただきました",
|
||||
"imastodon.net_glitch": "disabled",
|
||||
"mstdn.osaka": "instance",
|
||||
"mstdn.osaka_name": "大阪丼",
|
||||
"mstdn.osaka_letters": "500",
|
||||
"mstdn.osaka_bbcode": "disabled",
|
||||
"mstdn.osaka_markdown": "disabled",
|
||||
"mstdn.osaka_home": "ウチ",
|
||||
"mstdn.osaka_local": "近所",
|
||||
"mstdn.osaka_notification": "あめちゃん",
|
||||
|
@ -58,12 +40,9 @@ var idata = {
|
|||
"mstdn.osaka_fav": "がええやん言いました",
|
||||
"mstdn.osaka_bt": "がしばいた",
|
||||
"mstdn.osaka_follow": "ツルまれました",
|
||||
"mstdn.osaka_glitch": "disabled",
|
||||
"mstdn.kemono-friends.info": "instance",
|
||||
"mstdn.kemono-friends.info_name": "ますとどんちほー",
|
||||
"mstdn.kemono-friends.info_letters": "1024",
|
||||
"mstdn.kemono-friends.info_bbcode": "disabled",
|
||||
"mstdn.kemono-friends.info_markdown": "disabled",
|
||||
"mstdn.kemono-friends.info_home": "なわばり",
|
||||
"mstdn.kemono-friends.info_local": "ますとどんちほー",
|
||||
"mstdn.kemono-friends.info_notification": "ねえねえ!",
|
||||
|
@ -71,19 +50,13 @@ var idata = {
|
|||
"mstdn.kemono-friends.info_post": "がおー!",
|
||||
"mstdn.kemono-friends.info_fav": ":「すごーい」",
|
||||
"mstdn.kemono-friends.info_bt": ":「たーのしー」",
|
||||
"mstdn.kemono-friends.info_glitch": "disabled",
|
||||
"itabashi.0j0.jp": "instance",
|
||||
"itabashi.0j0.jp_name": "板橋丼",
|
||||
"itabashi.0j0.jp_letters": "1024",
|
||||
"itabashi.0j0.jp_bbcode": "disabled",
|
||||
"itabashi.0j0.jp_markdown": "disabled",
|
||||
"itabashi.0j0.jp_glitch": "disabled",
|
||||
"itabashi.0j0.jp_quote":"enabled",
|
||||
"dtp-mstdn.jp": "instance",
|
||||
"dtp-mstdn.jp_name": "DTP鯖",
|
||||
"dtp-mstdn.jp_letters": "500",
|
||||
"dtp-mstdn.jp_bbcode": "disabled",
|
||||
"dtp-mstdn.jp_markdown": "disabled",
|
||||
"dtp-mstdn.jp_glitch": "disabled",
|
||||
"dtp-mstdn.jp_name": "dtp-mstdn.jp",
|
||||
"dtp-mstdn.jp_quote":"enabled",
|
||||
"misskey.io": "misskey",
|
||||
"misskey.io_name": "misskey.io",
|
||||
"misskey.io_letters": "1000",
|
||||
|
@ -93,7 +66,7 @@ var idata = {
|
|||
"misskey.io_post": "Post",
|
||||
"misskey.io_fav": " reacted your post.",
|
||||
"misskey.io_bt": " reposted your post.",
|
||||
"misskey.dev": "misskey.dev",
|
||||
"misskey.dev": "misskey",
|
||||
"misskey.dev_name": "misskey.dev",
|
||||
"misskey.dev_letters": "1024",
|
||||
"misskey.dev_bbcode": "disabled",
|
||||
|
@ -105,10 +78,11 @@ var idata = {
|
|||
"precure.ml": "instance",
|
||||
"precure.ml_name": "キュアスタ!",
|
||||
"precure.ml_letters": "1024",
|
||||
"precure.ml_bbcode": "disabled",
|
||||
"precure.ml_markdown": "disabled",
|
||||
"precure.ml_post": "キュア!",
|
||||
"precure.ml_glitch": "disabled"
|
||||
"odakyu.app_quote":"enabled",
|
||||
"nitiasa.com_quote":"enabled",
|
||||
"biwakodon.com_quote":"enabled",
|
||||
"comm.cx_quote":"enabled"
|
||||
};
|
||||
|
||||
localStorage.setItem("instance", JSON.stringify(idata));
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
//アスタルテ判定初期化
|
||||
|
||||
localStorage.removeItem("kirishima")
|
||||
localStorage.removeItem("quoters")
|
||||
localStorage.removeItem("imas")
|
||||
localStorage.removeItem("image");
|
||||
localStorage.removeItem("stable")
|
||||
|
@ -42,7 +43,8 @@ function ck() {
|
|||
ticker();
|
||||
multiSelector(false);
|
||||
verck(ver);
|
||||
$("#something-wrong img").attr("src", "../../img/thinkingdesk.png")
|
||||
$(".stw").show()
|
||||
$("#something-wrong img").attr("src", "../../img/thinking.svg")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -289,7 +291,7 @@ function refresh(target, loadskip) {
|
|||
localStorage.setItem("user-id_" + target, json["id"]);
|
||||
localStorage.setItem("prof_" + target, avatar);
|
||||
localStorage.setItem("follow_" + target, json["following_count"]);
|
||||
obj[target] = ref;
|
||||
console.log(obj)
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
if (!loadskip) {
|
||||
|
@ -313,7 +315,6 @@ function ckdb(acct_id) {
|
|||
localStorage.removeItem("followlocale_" + acct_id);
|
||||
if (domain == "kirishima.cloud") {
|
||||
localStorage.setItem("kirishima", "true");
|
||||
$("#ranking-btn").show();
|
||||
} else if (domain == "imastodon.net") {
|
||||
localStorage.setItem("imas", "true");
|
||||
$(".imasonly").show();
|
||||
|
@ -321,8 +322,13 @@ function ckdb(acct_id) {
|
|||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var bbcode = domain + "_bbcode";
|
||||
var letters = domain + "_letters";
|
||||
var quoteMarker = domain + "_quote";
|
||||
if (localStorage.getItem("instance")) {
|
||||
var json = JSON.parse(localStorage.getItem("instance"));
|
||||
if (json[quoteMarker] == "enabled") {
|
||||
localStorage.setItem("quoters", "true");
|
||||
localStorage.setItem("quote_" + acct_id, "true");
|
||||
}
|
||||
if (json[bbcode]) {
|
||||
if (json[bbcode] == "enabled") {
|
||||
localStorage.setItem("bb_" + acct_id, "true");
|
||||
|
@ -450,7 +456,7 @@ function multiSelector(parseC) {
|
|||
$("#local-button").removeClass("hide")
|
||||
}
|
||||
var profimg = acct.prof;
|
||||
localStorage.setItem("prof_" + key, profimg);
|
||||
//localStorage.setItem("prof_" + key, profimg);
|
||||
if (!profimg) {
|
||||
profimg = "../../img/missing.svg";
|
||||
}
|
||||
|
@ -488,10 +494,11 @@ function multiSelector(parseC) {
|
|||
});
|
||||
$("#src-acct-sel").append('<option value="tootsearch">Tootsearch</option>');
|
||||
$("#add-acct-sel").append('<option value="noauth">' + lang.lang_login_noauth + '</option><option value="webview">Twitter</option>');
|
||||
$("#dir-acct-sel").append('<option value="noauth">' + lang.lang_login_noauth + '</option>');
|
||||
}
|
||||
$('select').formSelect();
|
||||
if(!parseC){
|
||||
parseColumn(true);
|
||||
parseColumn(null, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -286,10 +286,6 @@ function support() {
|
|||
templete = '<a onclick="login(\'' + key +
|
||||
'\')" class="collection-item pointer transparent">' + idata[key + "_name"] + '(' + key + ')</a>';
|
||||
$("#support").append(templete);
|
||||
} else if (instance == "misskey") {
|
||||
templete = '<a onclick="misskeyLogin(\'' + key +
|
||||
'\')" class="collection-item pointer transparent">' + idata[key + "_name"] + '(' + key + ')</a>';
|
||||
$("#support").append(templete);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -139,9 +139,12 @@ onmessage = function (e) {
|
|||
} else if (e.data[0] == "toastSaved") {
|
||||
M.toast({ html: lang.lang_img_DLDone + e.data[1][0] + '<button class="btn-flat toast-action" onclick="openFinder(\'' + e.data[1][1] + '\')">Show</button>', displayLength: 5000 })
|
||||
} else if (e.data[0] == "parseColumn") {
|
||||
parseColumn()
|
||||
parseColumn(e.data[1])
|
||||
} else if (e.data[0] == "exportSettingsCore") {
|
||||
exportSettingsCore()
|
||||
var exp = exportSettingsCore()
|
||||
postMessage(["exportSettingsCoreComplete", [e.data[1], exp]], "*")
|
||||
} else if (e.data[0] == "importSettingsCore") {
|
||||
importSettingsCore(e.data[1])
|
||||
}else if (e.data[0] == "fontList") {
|
||||
fontList(e.data[1])
|
||||
} else if (e.data[0] == "customSoundSave") {
|
||||
|
|
|
@ -2,6 +2,7 @@ function postMessage(e){
|
|||
console.log(e)
|
||||
return false;
|
||||
}
|
||||
document.title="TheDesk"
|
||||
$.strip_tags = function (str, allowed) {
|
||||
if (!str) {
|
||||
return "";
|
||||
|
|
|
@ -30,6 +30,8 @@ onmessage = function (e) {
|
|||
ipc.send('lang', e.data[1]);
|
||||
} else if (e.data[0] == "exportSettings") {
|
||||
ipc.send('exportSettings', e.data[1]);
|
||||
} else if (e.data[0] == "exportSettingsCoreComplete") {
|
||||
ipc.send('export', e.data[1]);
|
||||
} else if (e.data[0] == "importSettings") {
|
||||
ipc.send('importSettings', e.data[1]);
|
||||
} else if (e.data[0] == "customSound") {
|
||||
|
@ -45,14 +47,12 @@ onmessage = function (e) {
|
|||
} else if (e.data[0] == "aboutData") {
|
||||
ipc.send('aboutData', "");
|
||||
} else if (e.data[0] == "itunes") {
|
||||
console.log("NowPlaying" + ipc.listenerCount('itunes-np'))
|
||||
if (ipc.listenerCount('itunes-np') > 1) {
|
||||
return false;
|
||||
} else {
|
||||
console.log("NowPlaying")
|
||||
ipc.send("itunes", e.data[1])
|
||||
}
|
||||
} else if (e.data[0] == "themeCSSRequest") {
|
||||
ipc.send('theme-css-request', e.data[1]);
|
||||
} else if (e.data[0] == "customCSSRequest") {
|
||||
ipc.send('custom-css-request', e.data[1]);
|
||||
} else if (e.data[0] == "downloadButton") {
|
||||
ipc.send('download-btn', e.data[1]);
|
||||
} else if (e.data[0] == "nano") {
|
||||
|
@ -64,7 +64,7 @@ ipc.send("getPlatform", "")
|
|||
ipc.on('platform', function (event, args) {
|
||||
localStorage.setItem("platform", args[0])
|
||||
localStorage.setItem("bit", args[1])
|
||||
localStorage.setItem("about", JSON.stringify([args[2], args[3], args[4]]))
|
||||
localStorage.setItem("about", JSON.stringify([args[2], args[3], args[4], args[5]]))
|
||||
})
|
||||
|
||||
ipc.on('reload', function (event, arg) {
|
||||
|
@ -113,14 +113,13 @@ ipc.on('general-dl-message', function (event, arg) {
|
|||
})
|
||||
//setting.js
|
||||
ipc.on('langres', function (event, arg) {
|
||||
location.href = "../" + lang + "/setting.html"
|
||||
location.href = "../" + arg + "/setting.html"
|
||||
});
|
||||
ipc.on('exportSettingsFile', function (event, savedFiles) {
|
||||
var exp = exportSettingsCore()
|
||||
ipc.send('export', [savedFiles, JSON.stringify(exp)]);
|
||||
postMessage(["alert", "Done"], "*")
|
||||
//cards
|
||||
//lang
|
||||
ipc.on('exportSettingsFile', function (event, arg) {
|
||||
postMessage(["exportSettingsCore", arg], "*")
|
||||
});
|
||||
ipc.on('exportAllComplete', function (event, arg) {
|
||||
postMessage(["alert", "Complete"], "*")
|
||||
});
|
||||
ipc.on('config', function (event, arg) {
|
||||
postMessage(["importSettingsCore", arg], "*")
|
||||
|
@ -148,7 +147,7 @@ ipc.on('theme-json-create-complete', function (event, args) {
|
|||
postMessage(["ctLoad", ""], "*")
|
||||
});
|
||||
//spotify.js
|
||||
ipc.once('itunes-np', function (event, arg) {
|
||||
ipc.on('itunes-np', function (event, arg) {
|
||||
postMessage(["npCore", arg], "*")
|
||||
})
|
||||
//tips.js
|
||||
|
|
|
@ -10,11 +10,18 @@ function emojiToggle(reaction) {
|
|||
if (!selin) {
|
||||
selin = 0;
|
||||
}
|
||||
localStorage.setItem("cursor", selin);
|
||||
|
||||
if ($("#emoji").hasClass("hide")) {
|
||||
$("#emoji").removeClass("hide")
|
||||
$("#right-side").show()
|
||||
$("#right-side").css("width", "300px")
|
||||
$("#left-side").css("width", "calc(100% - 300px)")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1 + 300
|
||||
} else {
|
||||
width = 600
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
$("#suggest").html("");
|
||||
if (!localStorage.getItem("emoji_" + acct_id)) {
|
||||
var html =
|
||||
|
@ -25,9 +32,18 @@ function emojiToggle(reaction) {
|
|||
}
|
||||
} else {
|
||||
$("#poll").addClass("hide")
|
||||
$("#right-side").hide()
|
||||
$("#right-side").css("width", "300px")
|
||||
$("#emoji").addClass("hide")
|
||||
$("#suggest").html("");
|
||||
$("#right-side").hide()
|
||||
$("#left-side").css("width", "100%")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1
|
||||
} else {
|
||||
width = 300
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
}
|
||||
|
||||
|
||||
|
@ -173,35 +189,31 @@ function emojiList(target, reaction) {
|
|||
//絵文字など様々なものをテキストボックスに挿入
|
||||
function emojiInsert(code, del) {
|
||||
var now = $("#textarea").val();
|
||||
var selin = localStorage.getItem("cursor");
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if (localStorage.getItem("emoji-zero-width") == "yes") {
|
||||
var brank = "";
|
||||
var blank = "";
|
||||
} else {
|
||||
var brank = " ";
|
||||
var blank = " ";
|
||||
}
|
||||
var now = $("#textarea").val();
|
||||
if (selin > 0) {
|
||||
var before = now.substr(0, selin);
|
||||
var after = now.substr(selin, now.length);
|
||||
newt = before + brank + code + brank + after;
|
||||
} else {
|
||||
newt = code + brank;
|
||||
if (before.slice(-1) != " ") {
|
||||
before = before + blank
|
||||
}
|
||||
var after = now.substr(selin, now.length);
|
||||
if (after.slice(-1) != " ") {
|
||||
after = blank + after
|
||||
}
|
||||
newt = before + code + after;
|
||||
if (!del) {
|
||||
$("#textarea").val(newt);
|
||||
//emoji();
|
||||
} else {
|
||||
var regExp = new RegExp(del.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
var now = now.replace(regExp, "");
|
||||
$("#textarea").val(now + brank + code);
|
||||
$("#textarea").val(now + blank + code);
|
||||
}
|
||||
|
||||
$("#textarea").focus();
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if (!selin) {
|
||||
selin = 0;
|
||||
}
|
||||
localStorage.setItem("cursor", selin);
|
||||
}
|
||||
//改行挿入
|
||||
function brInsert(code) {
|
||||
|
|
|
@ -79,6 +79,10 @@ function post(mode, postvis) {
|
|||
if (media) {
|
||||
toot.media_ids = media.split(",");
|
||||
}
|
||||
var quote = $("#quote").val();
|
||||
if (quote) {
|
||||
toot.quote_id = quote;
|
||||
}
|
||||
if ($("#nsfw").hasClass("nsfw-avail")) {
|
||||
var nsfw = "true";
|
||||
toot.sensitive = nsfw;
|
||||
|
@ -110,7 +114,7 @@ function post(mode, postvis) {
|
|||
} else {
|
||||
var scheduled = "";
|
||||
}
|
||||
if ($("#poll-sel").val() == "mastodon-poll") {
|
||||
if (!$("#poll").hasClass("hide")) {
|
||||
var options = [];
|
||||
$(".mastodon-choice").map(function () {
|
||||
var choice = $(this).val();
|
||||
|
@ -243,6 +247,7 @@ function clear() {
|
|||
}
|
||||
$("#textarea").attr("placeholder", lang.lang_toot);
|
||||
$("#reply").val("");
|
||||
$("#quote").val("");
|
||||
$("#media").val("");
|
||||
var cwt = localStorage.getItem("cw-text");
|
||||
if (cwt) {
|
||||
|
@ -274,6 +279,8 @@ function clear() {
|
|||
$("#days_poll").val(0);
|
||||
$("#hours_poll").val(0);
|
||||
$("#mins_poll").val(6);
|
||||
$("#poll").addClass("hide")
|
||||
$("#pollsta").text(lang.lang_no)
|
||||
$(".mastodon-choice").map(function () {
|
||||
$(this).val("");
|
||||
});
|
||||
|
|
|
@ -116,16 +116,12 @@ function follow(acct_id, remote) {
|
|||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var user = $("#his-acct").text();
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/following/" + flagm;
|
||||
var user = $("#his-acct").text();
|
||||
var ent = { "i": at, "userId": id }
|
||||
} else if (remote == "true" && flag == "follow") {
|
||||
var start = "https://" + domain + "/api/v1/follows";
|
||||
var user = $("#his-acct").text();
|
||||
var ent = { "uri": user }
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
|
||||
var ent = {}
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
|
@ -151,15 +147,28 @@ function follow(acct_id, remote) {
|
|||
|
||||
//ブロック
|
||||
function block(acct_id) {
|
||||
if ($("#his-data").hasClass("blocking")) {
|
||||
var flag = "unblock";
|
||||
var txt = lang.lang_status_unmute
|
||||
} else {
|
||||
var flag = "block";
|
||||
var txt = lang.lang_status_block
|
||||
}
|
||||
Swal.fire({
|
||||
title: txt,
|
||||
text: "",
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
if (!acct_id) {
|
||||
var acct_id = $('#his-data').attr("use-acct");
|
||||
}
|
||||
var id = $("#his-data").attr("user-id");
|
||||
if ($("#his-data").hasClass("blocking")) {
|
||||
var flag = "unblock";
|
||||
} else {
|
||||
var flag = "block";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
|
||||
|
@ -181,20 +190,36 @@ function block(acct_id) {
|
|||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
//ミュート
|
||||
function muteDo(acct_id) {
|
||||
if ($("#his-data").hasClass("muting")) {
|
||||
var flag = "unmute";
|
||||
var flagm = "delete";
|
||||
var txt = lang.lang_status_unmute
|
||||
} else {
|
||||
var flag = "mute";
|
||||
var flagm = "create";
|
||||
var txt = lang.lang_status_mute
|
||||
}
|
||||
Swal.fire({
|
||||
title: txt,
|
||||
text: "",
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
if (!acct_id) {
|
||||
var acct_id = $('#his-data').attr("use-acct");
|
||||
}
|
||||
var id = $("#his-data").attr("user-id");
|
||||
if ($("#his-data").hasClass("muting")) {
|
||||
var flag = "unmute";
|
||||
var flagm = "delete";
|
||||
} else {
|
||||
var flag = "mute";
|
||||
var flagm = "create";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
|
@ -223,6 +248,9 @@ function muteDo(acct_id) {
|
|||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
//投稿削除
|
||||
function del(id, acct_id) {
|
||||
|
@ -471,7 +499,9 @@ function staEx(mode) {
|
|||
}
|
||||
function toggleAction(id, tlid, acct_id) {
|
||||
if (tlid == "notf") {
|
||||
var tlide = "[data-notf=" + acct_id + "]";
|
||||
var tlide = "[data-acct=" + acct_id + "] .notf-timeline";
|
||||
} else if (tlid == "user") {
|
||||
var tlide = "#his-tl-contents";
|
||||
} else {
|
||||
var tlide = "[tlid=" + tlid + "]";
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ var oldSuggest;
|
|||
var suggest;
|
||||
|
||||
input.addEventListener("focus", function () {
|
||||
localStorage.removeItem("cursor");
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
$("#suggest").html("");
|
||||
window.clearInterval(timer);
|
||||
|
@ -17,6 +18,15 @@ input.addEventListener("focus", function () {
|
|||
$("#suggest").html("");
|
||||
if ($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")) {
|
||||
$("#right-side").hide()
|
||||
$("#right-side").css("width", "300px")
|
||||
$("#left-side").css("width", "100%")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1
|
||||
} else {
|
||||
width = 300
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -41,11 +51,29 @@ input.addEventListener("focus", function () {
|
|||
}
|
||||
if (ehtml != "") {
|
||||
$("#right-side").show()
|
||||
$("#right-side").css("width", "200px")
|
||||
$("#left-side").css("width", "calc(100% - 200px)")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1 + 200
|
||||
} else {
|
||||
width = 600
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
$("#poll").addClass("hide")
|
||||
$("#emoji").addClass("hide")
|
||||
} else {
|
||||
if ($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")) {
|
||||
$("#right-side").hide()
|
||||
$("#right-side").css("width", "300px")
|
||||
$("#left-side").css("width", "100%")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1
|
||||
} else {
|
||||
width = 300
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
}
|
||||
}
|
||||
$("#suggest").html(ehtml);
|
||||
|
@ -61,6 +89,15 @@ input.addEventListener("focus", function () {
|
|||
$("#suggest").html("");
|
||||
if ($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")) {
|
||||
$("#right-side").hide()
|
||||
$("#right-side").css("width", "300px")
|
||||
$("#left-side").css("width", "100%")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1
|
||||
} else {
|
||||
width = 300
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -118,6 +155,15 @@ input.addEventListener("focus", function () {
|
|||
});
|
||||
$("#suggest").html(ins);
|
||||
$("#right-side").show()
|
||||
$("#right-side").css("width", "200px")
|
||||
$("#left-side").css("width", "calc(100% - 200px)")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1 + 200
|
||||
} else {
|
||||
width = 600
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
$("#poll").addClass("hide")
|
||||
$("#emoji").addClass("hide")
|
||||
}
|
||||
|
@ -126,17 +172,38 @@ input.addEventListener("focus", function () {
|
|||
Object.keys(json.accounts).forEach(function (key3) {
|
||||
var acct = json.accounts[key3];
|
||||
if (acct.acct != q) {
|
||||
//Instance Actorって…
|
||||
if (acct.username.indexOf(".") < 0) {
|
||||
accts = accts + '<a onclick="tagInsert(\'@' + acct.acct +
|
||||
'\',\'@' + q + '\')" class="pointer">@' + acct.acct + '</a><br>';
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#right-side").show()
|
||||
$("#right-side").css("width", "200px")
|
||||
$("#left-side").css("width", "calc(100% - 200px)")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1 + 200
|
||||
} else {
|
||||
width = 600
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
$("#suggest").html(accts);
|
||||
$("#poll").addClass("hide")
|
||||
$("#emoji").addClass("hide")
|
||||
} else {
|
||||
if ($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")) {
|
||||
$("#right-side").hide()
|
||||
$("#right-side").css("width", "300px")
|
||||
$("#left-side").css("width", "100%")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1
|
||||
} else {
|
||||
width = 300
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -171,6 +238,13 @@ function tagInsert(code, del) {
|
|||
$("#textarea").focus();
|
||||
if ($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")) {
|
||||
$("#right-side").hide()
|
||||
$("#right-side").css("width", "300px")
|
||||
$("#left-side").css("width", "50%")
|
||||
var width = localStorage.getItem("postbox-width").replace("px", "") * 1;
|
||||
if (!width) {
|
||||
width = 300
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
}
|
||||
$("#suggest").html("");
|
||||
}
|
||||
|
|
|
@ -57,8 +57,23 @@ function qt(id, acct_id, at, url) {
|
|||
html = html.replace(/<\/p>/, "\n");
|
||||
html = $.strip_tags(html);
|
||||
$("#textarea").val("\n" + "@" + at + " " + html + "\n" + url);
|
||||
}
|
||||
} else if (qt == "apiQuote") {
|
||||
clear();
|
||||
localStorage.setItem("nohide", true);
|
||||
show();
|
||||
$("#quote").val(id);
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').formSelect();
|
||||
$("#textarea").attr("placeholder", lang.lang_usetxtbox_reply);
|
||||
$("#textarea").focus();
|
||||
var profimg = localStorage.getItem("prof_" + acct_id);
|
||||
if (!profimg) {
|
||||
profimg = "../../img/missing.svg";
|
||||
}
|
||||
$("#acct-sel-prof").attr("src", profimg);
|
||||
}
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$('select').formSelect();
|
||||
$("#textarea").focus();
|
||||
}
|
|
@ -422,6 +422,7 @@ function faved(id, acct_id) {
|
|||
$("#toot-fav .no-data").hide();
|
||||
}
|
||||
$("#toot-fav").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -445,6 +446,7 @@ function rted(id, acct_id) {
|
|||
}).then(function (json) {
|
||||
var templete = userparse(json, '', acct_id);
|
||||
$("#toot-rt").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
//URL等のコピー
|
||||
|
|
69
app/js/tl/directory.js
Normal file
|
@ -0,0 +1,69 @@
|
|||
//ディレクトリ
|
||||
//ディレクトリトグル
|
||||
function dirMenu() {
|
||||
$("#dir-contents").html("");
|
||||
directory();
|
||||
$("#left-menu div").removeClass("active");
|
||||
$("#dirMenu").addClass("active");
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#dir-box").removeClass("hide");
|
||||
}
|
||||
function dirselCk() {
|
||||
var acct = $("#dir-acct-sel").val();
|
||||
if (acct == "noauth") {
|
||||
$("#dirNoAuth").removeClass("hide");
|
||||
} else {
|
||||
$("#dirNoAuth").addClass("hide");
|
||||
directory();
|
||||
}
|
||||
}
|
||||
function directory(isMore) {
|
||||
var order = $("[name=sort]:checked").val()
|
||||
if (!order) {
|
||||
order = "active"
|
||||
}
|
||||
var local_only = $("#local_only:checked").val()
|
||||
if (local_only) {
|
||||
local_only = "true"
|
||||
} else {
|
||||
local_only = "false"
|
||||
}
|
||||
var acct_id = $("#dir-acct-sel").val();
|
||||
if (acct_id == "noauth") {
|
||||
var domain = $("#dirNoAuth-url").val();
|
||||
var at = "";
|
||||
} else {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
}
|
||||
if (isMore) {
|
||||
var addOffset = $("#dir-contents .cvo").length
|
||||
} else {
|
||||
var addOffset = 0
|
||||
$("#dir-contents").html("");
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/directory?order=" + order + "&local=" + local_only + "&offset=" + addOffset
|
||||
console.log(start)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
//todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
$("#moreDir").removeClass("disabled")
|
||||
var html = userparse(json, null, acct_id, "dir", null)
|
||||
$("#dir-contents").append(html)
|
||||
jQuery("time.timeago").timeago();
|
||||
} else {
|
||||
$("#moreDir").addClass("disabled")
|
||||
}
|
||||
|
||||
});
|
||||
}
|
|
@ -77,12 +77,12 @@ function catchToggle(tlid) {
|
|||
localStorage.removeItem("catch_" + tlid);
|
||||
$("#sta-del-" + tlid).text("Off");
|
||||
$("#sta-del-" + tlid).css("color", 'red');
|
||||
parseColumn();
|
||||
parseColumn(tlid);
|
||||
} else {
|
||||
localStorage.setItem("catch_" + tlid, "true");
|
||||
$("#sta-del-" + tlid).text("On");
|
||||
$("#sta-del-" + tlid).css("color", '#009688');
|
||||
parseColumn();
|
||||
parseColumn(tlid);
|
||||
}
|
||||
}
|
||||
function catchCheck(tlid) {
|
||||
|
@ -421,7 +421,7 @@ function exclude(key) {
|
|||
} else {
|
||||
}
|
||||
localStorage.setItem("exclude-" + key, excludetxt)
|
||||
parseColumn();
|
||||
parseColumn(key);
|
||||
}
|
||||
function excludeCk(key, target) {
|
||||
var exc = localStorage.getItem("exclude-" + key);
|
||||
|
@ -444,7 +444,7 @@ function checkNotfFilter(tlid){
|
|||
}
|
||||
function resetNotfFilter(tlid){
|
||||
localStorage.setItem("exclude-" + tlid, "")
|
||||
parseColumn();
|
||||
parseColumn(tlid);
|
||||
}
|
||||
function notfFilter(id,tlid,acct_id){
|
||||
var excludetxt = localStorage.getItem("exclude-" + tlid);
|
||||
|
@ -454,5 +454,5 @@ function notfFilter(id,tlid,acct_id){
|
|||
excludetxt = "?account_id="+id
|
||||
}
|
||||
localStorage.setItem("exclude-" + tlid, excludetxt)
|
||||
parseColumn();
|
||||
parseColumn(tlid);
|
||||
}
|
|
@ -135,6 +135,7 @@ function listUser(id, acct_id) {
|
|||
templete = lang.lang_list_nouser;
|
||||
}
|
||||
$("#lists-user").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
} else {
|
||||
$("#lists-user").html(lang.lang_list_nouser);
|
||||
}
|
||||
|
|
|
@ -184,9 +184,9 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
noticeavatar = toot.user.avatarUrl;
|
||||
}
|
||||
noticeavatar = '<a onclick="udg(\'' + toot.user.id +
|
||||
'\',' + acct_id + ');" user="' + toot.user.username + '" class="udg">' +
|
||||
'\',' + acct_id + ');" user="' + toot.user.username + '" class="udg notf-icon">' +
|
||||
'<img src="' + noticeavatar +
|
||||
'" width="20" class="notf-icon prof-img" user="' + toot.user.username +
|
||||
'" width="20" class="prof-img" user="' + toot.user.username +
|
||||
'"></a>';
|
||||
if (toot.type == "reply") {
|
||||
var what = lang.lang_parse_mentioned;
|
||||
|
@ -375,7 +375,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var api_spoil = "gray";
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
|
||||
'\')" class="nex parsed">' + lang.lang_parse_cwshow + '</a><br>';
|
||||
'\')" class="nex parsed cw_btn">' + lang.lang_parse_cwshow + '</a><br>';
|
||||
} else {
|
||||
var ct1 = nl2br(toot.text).split('<br />').length - 2;
|
||||
var ct2 = nl2br(toot.text).split('<br>').length - 2;
|
||||
|
@ -387,7 +387,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
'</span><span class="gray">' + lang.lang_parse_autofold + '</span>';
|
||||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
|
||||
'\')" class="nex parsed">' + lang.lang_parse_more + '</a><br>';
|
||||
'\')" class="nex parsed cw_btn">' + lang.lang_parse_more + '</a><br>';
|
||||
} else {
|
||||
var content = escapeHTMLtemp(toot.text);
|
||||
if (toot.cw) {
|
||||
|
@ -510,7 +510,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
acct_id + ')" id="' + id + '-image-' + key2 + '" data-url="' + url +
|
||||
'" data-type="image" class="img-parsed"><img src="' +
|
||||
purl + '" class="' + sense +
|
||||
' toot-img pointer" style="width:' + cwdt + '%; height:' + imh + 'px;"></a></span>';
|
||||
' toot-img pointer" style="width:' + cwdt + '%; height:' + imh + 'px;" onerror="this.src=\'../../img/loading.svg\'"></a></span>';
|
||||
}
|
||||
|
||||
});
|
||||
|
@ -788,7 +788,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
'\',' + acct_id + ');" user="' + toot.user.username + '" class="udg">' +
|
||||
'<img src="' + avatar +
|
||||
'" width="40" class="prof-img" user="' + toot.user.username +
|
||||
'"></a></div>' +
|
||||
'" onerror="this.src=\'../../img/loading.svg\'"></a></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;"> @' +
|
||||
|
|
|
@ -98,6 +98,16 @@ function notfColumn(acct_id, tlid, sys) {
|
|||
}
|
||||
$("#notf-box").addClass("fetched");
|
||||
todc();
|
||||
//Markers
|
||||
var markers = localStorage.getItem("markers");
|
||||
if (markers == "no") {
|
||||
markers = false;
|
||||
} else {
|
||||
markers = true
|
||||
}
|
||||
if (markers) {
|
||||
getMarker(tlid, "notf", acct_id)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!misskey) {
|
||||
|
@ -224,7 +234,7 @@ function notfWS(misskey, acct_id, tlid, domain, at) {
|
|||
|
||||
}
|
||||
websocketNotf[acct_id].onmessage = function (mess) {
|
||||
console.log(["Receive Streaming API(Notf):" + acct_id + "(" + domain + ")", JSON.parse(JSON.parse(mess.data).payload)]);
|
||||
//console.log(["Receive Streaming API(Notf):" + acct_id + "(" + domain + ")", JSON.parse(JSON.parse(mess.data).payload)]);
|
||||
var popup = localStorage.getItem("popup");
|
||||
if (!popup) {
|
||||
popup = 0;
|
||||
|
@ -234,6 +244,8 @@ function notfWS(misskey, acct_id, tlid, domain, at) {
|
|||
if (type == "notification") {
|
||||
var templete = "";
|
||||
localStorage.setItem("lastnotf_" + acct_id, obj.id);
|
||||
if (!$("#unread_" + tlid + " .material-icons").hasClass("teal-text")) {
|
||||
//markers show中はダメ
|
||||
if (obj.type != "follow") {
|
||||
templete = parse([obj], 'notf', acct_id, 'notf', popup);
|
||||
} else {
|
||||
|
@ -244,6 +256,7 @@ function notfWS(misskey, acct_id, tlid, domain, at) {
|
|||
$("div[data-const=notf_" + acct_id + "]").prepend(templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
}
|
||||
} else if (type == "delete") {
|
||||
$("[toot-id=" + obj + "]").hide();
|
||||
$("[toot-id=" + obj + "]").remove();
|
||||
|
|
|
@ -25,7 +25,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
if (qt == "nothing" || !qt) {
|
||||
var qtClass = "hide";
|
||||
} else {
|
||||
if (qt == "apiQuote") {
|
||||
if (localStorage.getItem("quote_" + acct_id)) {
|
||||
var qtClass = "";
|
||||
} else {
|
||||
var qtClass = "hide";
|
||||
}
|
||||
} else {
|
||||
var qtClass = "";
|
||||
}
|
||||
}
|
||||
var datetype = localStorage.getItem("datetype");
|
||||
var nsfwtype = localStorage.getItem("nsfw");
|
||||
|
@ -183,6 +191,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
var times = [];
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var toot = obj[key];
|
||||
|
||||
if (type == "dm") {
|
||||
var dmid = toot.id;
|
||||
toot = toot.last_status;
|
||||
|
@ -331,7 +340,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
localStorage.setItem("notice-mem", noticetext);
|
||||
noticetext = "";
|
||||
}
|
||||
var if_notf = 'data-notfIndv="' + acct_id + "_" + toot.id + '"';
|
||||
var if_notf = 'data-notfIndv="' + acct_id + "_" + toot.id + '" data-notf="' + toot.id + '"';
|
||||
var toot = toot.status;
|
||||
var dis_name = escapeHTML(toot.account.display_name);
|
||||
if (toot.account.emojis) {
|
||||
|
@ -359,10 +368,10 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
noticeavatar = toot.account.avatar_static;
|
||||
}
|
||||
noticeavatar = '<a onclick="udg(\'' + toot.account.id +
|
||||
'\',' + acct_id + ');" user="' + toot.account.acct + '" class="udg">' +
|
||||
'\',' + acct_id + ');" user="' + toot.account.acct + '" class="notf-icon udg">' +
|
||||
'<img draggable="false" src="' + noticeavatar +
|
||||
'" width="20" class="notf-icon prof-img" user="' + toot.account.acct +
|
||||
'"></a>';
|
||||
'" width="20" class="prof-img" user="' + toot.account.acct +
|
||||
'" onerror="this.src=\'../../img/loading.svg\'"></a>';
|
||||
var rebtxt = lang.lang_parse_btedsimple;
|
||||
var rticon = "fa-retweet light-blue-text";
|
||||
if (localStorage.getItem("domain_" + acct_id) == "imastodon.net" && !locale) {
|
||||
|
@ -376,6 +385,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
var uniqueid = toot.id;
|
||||
var toot = toot.reblog;
|
||||
var dis_name = escapeHTML(toot.account.display_name);
|
||||
if (!dis_name) {
|
||||
dis_name = toot.account.acct
|
||||
}
|
||||
if (toot.account.emojis) {
|
||||
var actemojick = toot.account.emojis[0];
|
||||
} else {
|
||||
|
@ -414,6 +426,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (toot.content) {
|
||||
var id = toot.id;
|
||||
if (mix == "home") {
|
||||
var home = ""
|
||||
|
@ -460,10 +473,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var api_spoil = "gray";
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
|
||||
'\')" class="nex parsed">' + lang.lang_parse_cwshow + '</a><br>';
|
||||
'\')" class="nex parsed cw_btn">' + lang.lang_parse_cwshow + '</a><br>';
|
||||
} else {
|
||||
if (toot.content) {
|
||||
var ct1 = toot.content.split('</p>').length + toot.content.split('<br />').length - 2;
|
||||
var ct2 = toot.content.split('</p>').length + toot.content.split('<br>').length - 2;
|
||||
} else {
|
||||
var ct1 = 100;
|
||||
var ct2 = 100;
|
||||
}
|
||||
if (ct1 > ct2) { var ct = ct1; } else { var ct = ct2; }
|
||||
if ((sent < ct && $.mb_strlen($.strip_tags(toot.content)) > 5) || ($.strip_tags(toot.content).length > ltr && $.mb_strlen($.strip_tags(toot.content)) > 5)) {
|
||||
var content = '<span class="gray">' + lang.lang_parse_fulltext + '</span><br>' + toot.content
|
||||
|
@ -472,7 +490,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
'</span><span class="gray">' + lang.lang_parse_autofold + '</span>';
|
||||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
|
||||
'\')" class="nex parsed">' + lang.lang_parse_more + '</a><br>';
|
||||
'\')" class="nex parsed cw_btn">' + lang.lang_parse_more + '</a><br>';
|
||||
} else {
|
||||
var content = toot.content;
|
||||
var spoil = escapeHTML(toot.spoiler_text);
|
||||
|
@ -496,6 +514,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
var regExp = new RegExp('href="' + urlindv + '"', "g")
|
||||
content = content.replace(regExp, 'href="' + eUrl + '"')
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -537,7 +556,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
}
|
||||
poll = poll + '<div class="' + voteclass + ' vote vote_' + acct_id + '_' + toot.poll.id + '_' + keyc + '" onclick="' + votesel + '">' + escapeHTML(choice.title) + '<span class="vote_' + acct_id + '_' + toot.poll.id + '_result ' + result_hide + '">(' + choice.votes_count + ')</span></div>';
|
||||
});
|
||||
poll = '<div class="vote_' + acct_id + '_' + toot.poll.id + '">' + poll + myvote + '<span class="cbadge cbadge-hover" title="' + date(toot.poll.expires_at, 'absolute') +
|
||||
poll = '<div class="vote_' + acct_id + '_' + toot.poll.id + '">' + poll + myvote + '<a onclick="voteMastodonrefresh(\'' + acct_id + '\',\'' + toot.poll.id + '\')" class="pointer">' + lang.lang_manager_refresh + '</a><span class="cbadge cbadge-hover" title="' + date(toot.poll.expires_at, 'absolute') +
|
||||
'"><i class="far fa-calendar-times"></i>' +
|
||||
ended + '</span></div>';
|
||||
}
|
||||
|
@ -583,7 +602,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
acct_id + '\')" id="' + id + '-image-' + key2 + '" data-url="' + url +
|
||||
'" data-type="' + media.type + '" class="img-parsed img-link" style="width:calc(' + cwdt + '% - 1px); height:' + imh + ';"><img draggable="false" src="' +
|
||||
purl + '" class="' + sense +
|
||||
' toot-img pointer">' + nsfwmes + '</a>';
|
||||
' toot-img pointer" onerror="this.src=\'../../img/loading.svg\'">' + nsfwmes + '</a>';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -619,6 +638,11 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
mentions = '<div style="float:right">' + mentions + '</div>';
|
||||
} else {
|
||||
var to_mention = [toot.account.acct];
|
||||
//メンションじゃなくてもlang_parse_thread
|
||||
if (toot.in_reply_to_id) {
|
||||
mentions = '<div style="float:right"><a onclick="details(\'' + toot.id + '\',' + acct_id +
|
||||
',\'' + tlid + '\')" class="pointer waves-effect">' + lang.lang_parse_thread + '</a></div>';
|
||||
}
|
||||
}
|
||||
var tagck = toot.tags[0];
|
||||
var tags = "";
|
||||
|
@ -626,9 +650,10 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
if (tagck) {
|
||||
Object.keys(toot.tags).forEach(function (key4) {
|
||||
var tag = toot.tags[key4];
|
||||
var featured = ' <a onclick="tagFeature(\'' + tag.name + '\',' + acct_id +')" class="pointer" title="add it to Featured tags">Feature</a> '
|
||||
tags = tags + '<span class="hide" data-tag="' + tag.name + '">#' + tag.name + ':<a onclick="tl(\'tag\',\'' + tag.name + '\',' + acct_id +
|
||||
',\'add\')" class="pointer" title="' + lang.lang_parse_tagTL.replace("{{tag}}", '#' + tag.name) + '">TL</a> <a onclick="brInsert(\'#' + tag.name + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}", '#' + tag.name) + '">Toot</a> ' +
|
||||
'<a onclick="tagPin(\'' + tag.name + '\')" class="pointer" title="' + lang.lang_parse_tagpin.replace("{{tag}}", '#' + tag.name) + '">Pin</a></span> ';
|
||||
'<a onclick="tagPin(\'' + tag.name + '\')" class="pointer" title="' + lang.lang_parse_tagpin.replace("{{tag}}", '#' + tag.name) + '">Pin</a>' + featured + '</span> ';
|
||||
});
|
||||
tags = '<div style="float:right">' + tags + '</div>';
|
||||
}
|
||||
|
@ -646,19 +671,19 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
var visen = toot.visibility;
|
||||
if (visen == "public") {
|
||||
var vis =
|
||||
'<i class="text-darken-3 material-icons gray sml vis-data pointer" title="' + lang.lang_parse_public + '(' + lang.lang_parse_clickcopy + ')" data-vis="public" onclick="staCopy(\'' + id + '\')" style="font-size:1rem;">public</i>';
|
||||
'<i class="text-darken-3 material-icons gray sml vis-data pointer" title="' + lang.lang_parse_public + '(' + lang.lang_parse_clickcopy + ')" data-vis="public" onclick="staCopy(\'' + id + '\')">public</i>';
|
||||
var can_rt = "";
|
||||
} else if (visen == "unlisted") {
|
||||
var vis =
|
||||
'<i class="text-darken-3 material-icons blue-text vis-data pointer" title="' + lang.lang_parse_unlisted + '(' + lang.lang_parse_clickcopy + ')" data-vis="unlisted" onclick="staCopy(\'' + id + '\')" style="font-size:1rem;">lock_open</i>';
|
||||
'<i class="text-darken-3 material-icons blue-text vis-data pointer" title="' + lang.lang_parse_unlisted + '(' + lang.lang_parse_clickcopy + ')" data-vis="unlisted" onclick="staCopy(\'' + id + '\')">lock_open</i>';
|
||||
var can_rt = "";
|
||||
} else if (visen == "private") {
|
||||
var vis =
|
||||
'<i class="text-darken-3 material-icons orange-text vis-data pointer" title="' + lang.lang_parse_private + '(' + lang.lang_parse_clickcopy + ')" data-vis="private" onclick="staCopy(\'' + id + '\')" style="font-size:1rem;">lock</i>';
|
||||
'<i class="text-darken-3 material-icons orange-text vis-data pointer" title="' + lang.lang_parse_private + '(' + lang.lang_parse_clickcopy + ')" data-vis="private" onclick="staCopy(\'' + id + '\')">lock</i>';
|
||||
var can_rt = "unvisible";
|
||||
} else if (visen == "direct") {
|
||||
var vis =
|
||||
'<i class="text-darken-3 material-icons red-text vis-data pointer" title="' + lang.lang_parse_direct + '(' + lang.lang_parse_clickcopy + ')" data-vis="direct" onclick="staCopy(\'' + id + '\')" style="font-size:1rem;">mail</i>';
|
||||
'<i class="text-darken-3 material-icons red-text vis-data pointer" title="' + lang.lang_parse_direct + '(' + lang.lang_parse_clickcopy + ')" data-vis="direct" onclick="staCopy(\'' + id + '\')">mail</i>';
|
||||
var can_rt = "unvisible";
|
||||
}
|
||||
if (toot.account.acct == localStorage.getItem("user_" + acct_id)) {
|
||||
|
@ -817,7 +842,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
for (var i = 0; i < tickerdata.length; i++) {
|
||||
var value = tickerdata[i];
|
||||
if (value.domain == thisdomain) {
|
||||
var tickerdom = '<div style="background:linear-gradient(to left,transparent, ' + value.bg + ' 96%) !important; color:' + value.text + ';width:100%; height:0.9rem; font-size:0.8rem;"><img draggable="false" src="' + value.image + '" style="height:100%;"><span style="position:relative; top:-0.2rem;"> ' + escapeHTML(value.name) + '</span></div>';
|
||||
var tickerdom = '<div style="user-select:none;cursor:default;background:linear-gradient(90deg, ' + value.bg + ', transparent 96%) !important; color:' + value.text + ';width:100%; height:0.9rem; font-size:0.8rem;"><img draggable="false" src="' + value.image + '" style="height:100%;" onerror="this.src=\'../../img/loading.svg\'"><span style="position:relative; top:-0.2rem;"> ' + escapeHTML(value.name) + '</span></div>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -825,7 +850,14 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
}
|
||||
//Quote
|
||||
if (toot.quote) {
|
||||
poll = poll + '<div class="quote-renote"><div class="renote-icon"><img src="' + toot.quote.account.avatar + '"></div><div class="renote-user">' + escapeHTML(toot.quote.account.display_name) + '</div><div class="renote-text">' + toot.quote.content + '</div></div>'
|
||||
var quoteUser = toot.quote.account.display_name
|
||||
if (!quoteUser) {
|
||||
quoteUser = toot.quote.account.acct
|
||||
}
|
||||
poll = poll + '<div class="quote-renote"><div class="renote-icon"><a onclick="udg(\'' + toot.quote.account.id +
|
||||
'\',' + acct_id + ');" user="' + toot.quote.account.acct + '" class="udg"><img draggable="false" src="' + toot.quote.account.avatar + '"></a>' +
|
||||
'</div><div class="renote-user">' + escapeHTML(quoteUser) + '</div><div class="renote-text">' + toot.quote.content + '</div><div class="renote-details"><a onclick="details(\'' + toot.quote.id + '\',' + acct_id +
|
||||
',\'' + tlid + '\',\'normal\')" class="waves-effect waves-dark btn-flat details" style="padding:0"><i class="text-darken-3 material-icons">more_vert</i></a></div></div>'
|
||||
}
|
||||
templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' +
|
||||
boostback + ' ' + fav_app + ' ' + rt_app + ' ' + pin_app +
|
||||
|
@ -837,7 +869,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
'\',' + acct_id + ');" user="' + toot.account.acct + '" class="udg">' +
|
||||
'<img draggable="false" src="' + avatar +
|
||||
'" width="40" class="prof-img" user="' + toot.account.acct +
|
||||
'"></a>' + noticeavatar + '</div>' +
|
||||
'" onerror="this.src=\'../../img/loading.svg\'"></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;"> @' +
|
||||
|
@ -855,9 +887,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
'</div><div class="area-additional"><span class="additional">' + analyze +
|
||||
'</span>' +
|
||||
'' + mentions + tags + '</div>' +
|
||||
'<div class="area-vis"></div>' +
|
||||
'<div class="area-vis">' + 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.lang_parse_det + '</a></div>' +
|
||||
'<div class="action ' + antidmHide + '"><a onclick="details(\'' + toot.id + '\',' + acct_id + ',\'' + tlid + '\',\'normal\')" class="waves-effect waves-dark details" style="padding:0">' + lang.lang_parse_thread + '</a></div>' +
|
||||
'<div class="action ' + disp["re"] + ' ' + noauth + '"><a onclick="re(\'' + toot.id +
|
||||
|
@ -894,6 +925,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
|||
',\'' + tlid + '\',\'normal\')" class="waves-effect waves-dark btn-flat details ' + dmHide + '" style="padding:0"><i class="text-darken-3 material-icons">more_vert</i></a></div>' +
|
||||
'</div></div>' +
|
||||
'</div></div>';
|
||||
}
|
||||
});
|
||||
if (mix == "mix") {
|
||||
return [templete, local, times]
|
||||
|
@ -922,6 +954,8 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
|||
} else {
|
||||
var notf = false;
|
||||
}
|
||||
//Instance Actorって…
|
||||
if (toot.username.indexOf(".") < 0) {
|
||||
if (toot.locked) {
|
||||
var locked = ' <i class="fas fa-lock red-text"></i>';
|
||||
} else {
|
||||
|
@ -1006,29 +1040,40 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
|||
} else {
|
||||
var avatar = "../../img/missing.svg";
|
||||
}
|
||||
|
||||
if (tlid == "dir" && acct_id == "noauth") {
|
||||
var udg = '<a onclick="udgEx(\'' + toot.url + '\',\'main\');" user="' + toot.acct + '" class="udg">'
|
||||
} else {
|
||||
var udg = '<a onclick="udg(\'' + toot.id + '\',' +
|
||||
acct_id + ');" user="' + toot.acct + '" class="udg">'
|
||||
}
|
||||
var latest = date(toot.last_status_at, "relative");
|
||||
if (toot.last_status_at) {
|
||||
var latesthtml = '<div class="cbadge" style="width:100px;">Last: ' + latest +
|
||||
'</div>'
|
||||
} else {
|
||||
var latesthtml = ""
|
||||
}
|
||||
templete = templete +
|
||||
'<div class="cvo" style="padding-top:5px;" user-id="' + toot.id + '"><div class="area-notice">' +
|
||||
notftext +
|
||||
'</div><div class="area-icon"><a onclick="udg(\'' + toot.id + '\',' +
|
||||
acct_id + ');" user="' + toot.acct + '" class="udg">' +
|
||||
'</div><div class="area-icon">' + udg +
|
||||
'<img draggable="false" src="' + avatar + '" width="40" class="prof-img" user="' + toot
|
||||
.acct + '"></a></div>' +
|
||||
.acct + '" onerror="this.src=\'../../img/loading.svg\'"></a></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;user-select:auto; cursor:text;"> @' +
|
||||
toot.acct + locked + '</span>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div style="justify-content:space-around" class="area-toot"> <div class="cbadge" style="width:100px;">Follows:' +
|
||||
'<div class="area-toot acct-note">' + toot.note.replace(/<br\s?\/?>.+/g, '<span class="gray">...</span>') + '</div>' +
|
||||
'<div style="justify-content:space-around;top:5px" class="area-actions"> <div class="cbadge" style="width:100px;">' + lang.lang_status_follow + ':' +
|
||||
toot.following_count +
|
||||
'</div><div class="cbadge" style="width:100px;">Followers:' + toot.followers_count +
|
||||
'</div>' + authhtml +
|
||||
'</div>' +
|
||||
'</div><div class="cbadge" style="width:100px;">' + lang.lang_status_followers + ':' + toot.followers_count +
|
||||
'</div>' + latesthtml + authhtml +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
return templete;
|
||||
|
|
|
@ -2,11 +2,31 @@
|
|||
function pollToggle() {
|
||||
if ($("#poll").hasClass("hide")) {
|
||||
$("#right-side").show()
|
||||
$("#right-side").css("width", "300px")
|
||||
$("#left-side").css("width", "calc(100% - 300px)")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1 + 300
|
||||
} else {
|
||||
width = 600
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
$("#poll").removeClass("hide")
|
||||
$("#pollsta").text(lang.lang_yesno)
|
||||
} else {
|
||||
$("#right-side").hide()
|
||||
$("#left-side").css("width", "100%")
|
||||
$("#right-side").css("width", "300px")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
width = width.replace("px", "") * 1
|
||||
} else {
|
||||
width = 300
|
||||
}
|
||||
$("#post-box").css("width", width + "px")
|
||||
$("#emoji").addClass("hide")
|
||||
$("#poll").addClass("hide")
|
||||
$("#pollsta").text(lang.lang_no)
|
||||
}
|
||||
}
|
||||
function pollProviderCk() {
|
||||
|
@ -89,8 +109,9 @@ function voteMastodonrefresh(acct_id, id) {
|
|||
var start = "https://" + domain + "/api/v1/polls/" + id;
|
||||
httpreqd.open('GET', start, true);
|
||||
httpreqd.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreqd.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreqd.responseType = 'json';
|
||||
httpreqd.send(JSON.stringify({ i: at, noteId: id }));
|
||||
httpreqd.send();
|
||||
httpreqd.onreadystatechange = function () {
|
||||
if (httpreqd.readyState == 4) {
|
||||
var json = httpreqd.response;
|
||||
|
@ -109,7 +130,7 @@ function voteMastodonrefresh(acct_id, id) {
|
|||
}
|
||||
poll = poll + '<div class="pointer vote vote_' + acct_id + '_' + json.id + '_' + keyc + '" onclick="' + votesel + '">' + escapeHTML(choice.title) + '<span class="vote_' + acct_id + '_' + json.id + '_result ' + result_hide + '">(' + choice.votes_count + ')</span></div>';
|
||||
});
|
||||
poll = poll + myvote + '<span class="cbadge cbadge-hover" title="' + date(json.expires_at, 'absolute') +
|
||||
poll = poll + myvote + '<a onclick="voteMastodonrefresh(\'' + acct_id + '\',\'' + json.id + '\')" class="pointer">' + lang.lang_manager_refresh + '</a><span class="cbadge cbadge-hover" title="' + date(json.expires_at, 'absolute') +
|
||||
'"><i class="far fa-calendar-times"></i>' +
|
||||
date(json.expires_at, datetype) + '</span>';
|
||||
$('.vote_' + acct_id + '_' + json.id).html(poll)
|
||||
|
|
|
@ -56,12 +56,12 @@ function voiceToggle(tlid) {
|
|||
speechSynthesis.cancel()
|
||||
$("#sta-voice-" + tlid).text("Off");
|
||||
$("#sta-voice-" + tlid).css("color", 'red');
|
||||
parseColumn();
|
||||
parseColumn(tlid);
|
||||
} else {
|
||||
localStorage.setItem("voice_" + tlid, "true");
|
||||
$("#sta-voice-" + tlid).text("On");
|
||||
$("#sta-voice-" + tlid).css("color", '#009688');
|
||||
parseColumn();
|
||||
parseColumn(tlid);
|
||||
}
|
||||
}
|
||||
function voiceCheck(tlid) {
|
||||
|
|
|
@ -1,17 +1,24 @@
|
|||
//検索
|
||||
//検索ボックストグル
|
||||
function searchMenu() {
|
||||
$("#src-contents").html("");
|
||||
trend();
|
||||
$("#left-menu div").removeClass("active");
|
||||
$("#searchMenu").addClass("active");
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#src-box").removeClass("hide");
|
||||
$('ul.tabs').tabs('select_tab', 'src-sta');
|
||||
$("#src-contents").html("");
|
||||
//$('ul.tabs').tabs('select_tab', 'src-sta');
|
||||
}
|
||||
|
||||
//検索取得
|
||||
function src(mode) {
|
||||
function src(mode, offset) {
|
||||
if(!offset){
|
||||
$("#src-contents").html("");
|
||||
var add = ""
|
||||
}else{
|
||||
var add = "&type=accounts&offset=" + $("#src-accts .cvo").length
|
||||
}
|
||||
|
||||
var q = $("#src").val();
|
||||
var acct_id = $("#src-acct-sel").val();
|
||||
if (acct_id == "tootsearch") {
|
||||
|
@ -27,7 +34,7 @@ function src(mode) {
|
|||
var user = $('#his-data').attr("user-id");
|
||||
}
|
||||
if (!mode) {
|
||||
var start = "https://" + domain + "/api/v2/search?q=" + q
|
||||
var start = "https://" + domain + "/api/v2/search?q=" + q + add
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/search?q=" + q
|
||||
}
|
||||
|
@ -68,7 +75,12 @@ function src(mode) {
|
|||
//アカウント
|
||||
if (json.accounts[0]) {
|
||||
var templete = userparse(json.accounts, '', acct_id);
|
||||
$("#src-contents").append("<br>Accounts<br>" + templete);
|
||||
if(!offset){
|
||||
$("#src-contents").append("<br>Accounts<div id=\"src-accts\">" + templete + '</div><a onclick="src(false,\'more\')" class="pointer">more...</a>');
|
||||
}else{
|
||||
$("#src-accts").append(templete)
|
||||
}
|
||||
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
|
@ -85,7 +97,7 @@ function tsAdd(q) {
|
|||
obj.push(add);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
parseColumn();
|
||||
parseColumn('add');
|
||||
}
|
||||
function tootsearch(tlid, q) {
|
||||
var start = "https://tootsearch.chotto.moe/api/v1/search?from=0&sort=created_at%3Adesc&q=" + q
|
||||
|
@ -193,3 +205,48 @@ function graphDraw(tag, acct_id) {
|
|||
<path d="M0,0 L10,0 20,10 20,50" fill="#3F51B5"></path>
|
||||
</svg>
|
||||
*/
|
||||
function trend(){
|
||||
console.log("get trend")
|
||||
$("#src-contents").html("");
|
||||
var acct_id = $("#src-acct-sel").val();
|
||||
if(acct_id=="tootsearch"){
|
||||
return false;
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/trends"
|
||||
console.log(start)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
//todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
var tags = "";
|
||||
Object.keys(json).forEach(function(keye) {
|
||||
var tag = json[keye];
|
||||
var his=tag.history;
|
||||
var max=Math.max.apply(null, [his[0].uses,his[1].uses,his[2].uses,his[3].uses,his[4].uses,his[5].uses,his[6].uses]);
|
||||
var six=50-(his[6].uses/max*50);
|
||||
var five=50-(his[5].uses/max*50);
|
||||
var four=50-(his[4].uses/max*50);
|
||||
var three=50-(his[3].uses/max*50);
|
||||
var two=50-(his[2].uses/max*50);
|
||||
var one=50-(his[1].uses/max*50);
|
||||
var zero=50-(his[0].uses/max*50);
|
||||
tags = '<svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
|
||||
'<g><path d="M0,'+six+' L10,'+five+' 20,'+four+' 30,'+three+' 40,'+two+' 50,'+one+' 60,'+zero+'" style="stroke: #9e9e9e; stroke-width: 1;fill: none;"></path></g>'+
|
||||
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang.lang_src_people+"<br><br>";
|
||||
|
||||
$("#src-contents").append(tags);
|
||||
});
|
||||
|
||||
});
|
||||
}
|
|
@ -10,7 +10,7 @@ if (location.search) {
|
|||
}
|
||||
//よく使うタグ
|
||||
function tagShow(tag) {
|
||||
$("[data-tag=" + decodeURI(tag) + "]").toggleClass("hide");
|
||||
$("[data-tag=" + decodeURI(tag).toLowerCase() + "]").toggleClass("hide");
|
||||
}
|
||||
//タグ追加
|
||||
function tagPin(tag) {
|
||||
|
@ -128,3 +128,26 @@ function autoToot(tag) {
|
|||
}
|
||||
favTag();
|
||||
}
|
||||
//タグをフィーチャー
|
||||
function tagFeature(name, acct_id){
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/featured_tags"
|
||||
fetch(start, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: name
|
||||
})
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
return false;
|
||||
}).then(function (json) {
|
||||
console.log(json)
|
||||
M.toast({ html: "Complete: " + escapeHTML(name), displayLength: 3000 })
|
||||
});
|
||||
}
|
255
app/js/tl/tl.js
|
@ -2,6 +2,7 @@
|
|||
moreloading = false;
|
||||
function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
scrollevent();
|
||||
$("#unread_" + tlid + " .material-icons").removeClass("teal-text")
|
||||
localStorage.removeItem("morelock");
|
||||
localStorage.removeItem("pool");
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
|
@ -20,7 +21,7 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
|||
obj.push(add);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
parseColumn();
|
||||
parseColumn('add');
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -149,6 +150,18 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
|||
jQuery("time.timeago").timeago();
|
||||
todc();
|
||||
reload(type, '', acct_id, tlid, data, mute, delc, voice);
|
||||
if (type == "home" || type == "notf") {
|
||||
//Markers
|
||||
var markers = localStorage.getItem("markers");
|
||||
if (markers == "no") {
|
||||
markers = false;
|
||||
} else {
|
||||
markers = true
|
||||
}
|
||||
if (markers) {
|
||||
getMarker(tlid, type, acct_id)
|
||||
}
|
||||
}
|
||||
$(window).scrollTop(0);
|
||||
});
|
||||
}
|
||||
|
@ -217,7 +230,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
|||
websocket[wsid] = new WebSocket(start);
|
||||
websocket[wsid].onopen = function (mess) {
|
||||
console.table({ "tlid": tlid, "type": "Connect Streaming API" + type, "domain": domain, "message": [mess] })
|
||||
$("#notice_icon_" + tlid).removeClass("red-text");
|
||||
$("#notice_icon_" + tlid).removeClass("red-text")
|
||||
}
|
||||
websocket[wsid].onmessage = function (mess) {
|
||||
console.log([tlid + ":Receive Streaming API:", JSON.parse(mess.data)]);
|
||||
|
@ -256,12 +269,14 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
|||
$("#timeline_" + tlid + " [toot-id=" + JSON.parse(mess.data).payload + "]").addClass("emphasized");
|
||||
$("#timeline_" + tlid + " [toot-id=" + JSON.parse(mess.data).payload + "]").addClass("by_delcatch");
|
||||
} else {
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").hide();
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").remove();
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").hide()
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").remove()
|
||||
}
|
||||
|
||||
} else if (typeA == "update" || typeA == "conversation") {
|
||||
localStorage.removeItem("delete");
|
||||
localStorage.removeItem("delete")
|
||||
if (!$("#unread_" + tlid + " .material-icons").hasClass("teal-text")) {
|
||||
//markers show中はダメ
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload);
|
||||
if ($("#timeline_" + tlid + " [toot-id=" + obj.id + "]").length < 1) {
|
||||
if (voice) {
|
||||
|
@ -287,6 +302,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
|||
}
|
||||
|
||||
todc();
|
||||
}
|
||||
} else if (typeA == "filters_changed") {
|
||||
filterUpdate(acct_id);
|
||||
}
|
||||
|
@ -298,7 +314,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
|||
console.error("Error closing");
|
||||
console.error(error);
|
||||
if (mode == "error") {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
$("#notice_icon_" + tlid).addClass("red-text")
|
||||
todo('WebSocket Error ' + error);
|
||||
} else {
|
||||
var errorct = localStorage.getItem("wserror_" + tlid) * 1 + 1;
|
||||
|
@ -312,7 +328,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
|||
websocket[wsid].onclose = function () {
|
||||
console.warn("Closing " + tlid);
|
||||
if (mode == "error") {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
$("#notice_icon_" + tlid).addClass("red-text")
|
||||
todo('WebSocket Closed');
|
||||
} else {
|
||||
var errorct = localStorage.getItem("wserror_" + tlid) * 1 + 1;
|
||||
|
@ -824,4 +840,229 @@ function reconnector(tlid, type, acct_id, data, mode) {
|
|||
M.toast({ html: lang.lang_tl_reconnect, displayLength: 2000 })
|
||||
|
||||
}
|
||||
function columnReload(tlid, type) {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
$("#unread_" + tlid + " .material-icons").removeClass("teal-text")
|
||||
if (type == "mix" || type == "integrated" || type == "plus") {
|
||||
if (localStorage.getItem("voice_" + tlid)) {
|
||||
var voice = true;
|
||||
} else {
|
||||
var voice = false;
|
||||
}
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
var wssh = localStorage.getItem("wssH_" + tlid);
|
||||
websocketHome[wssh].close();
|
||||
var wssl = localStorage.getItem("wssL_" + tlid);
|
||||
websocketLocal[wssl].close();
|
||||
parseColumn(tlid)
|
||||
} else if (type == "notf") {
|
||||
$("#notice_icon_" + tlid).removeClass("red-text");
|
||||
notfColumn(acct_id, tlid, "")
|
||||
} else {
|
||||
var wss = localStorage.getItem("wss_" + tlid);
|
||||
websocket[wss].close();
|
||||
if (localStorage.getItem("voice_" + tlid)) {
|
||||
var voice = true;
|
||||
} else {
|
||||
var voice = false;
|
||||
}
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
parseColumn(tlid)
|
||||
}
|
||||
}
|
||||
strAliveInt()
|
||||
//Markers
|
||||
function getMarker(tlid, type, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (type == "home") {
|
||||
var add = "home"
|
||||
} else if (type == "notf") {
|
||||
var add = "notifications"
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/markers?timeline=" + add
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
$("#unread_" + tlid).attr("title", lang.lang_layout_unread + ":" + lang.lang_nothing)
|
||||
$("#unread_" + tlid).attr("data-id", "")
|
||||
return false;
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
if (json[add]) {
|
||||
json = json[add]
|
||||
$("#unread_" + tlid).attr("title", lang.lang_layout_unread + ":" + json.updated_at + ' v' + json.version)
|
||||
$("#unread_" + tlid).attr("data-id", json.last_read_id)
|
||||
} else {
|
||||
$("#unread_" + tlid).attr("title", lang.lang_layout_unread + ":" + lang.lang_nothing)
|
||||
$("#unread_" + tlid).attr("data-id", "")
|
||||
}
|
||||
} else {
|
||||
$("#unread_" + tlid).attr("title", lang.lang_layout_unread + ":" + lang.lang_nothing)
|
||||
$("#unread_" + tlid).attr("data-id", "")
|
||||
}
|
||||
});
|
||||
}
|
||||
function showUnread(tlid, type, acct_id) {
|
||||
if ($("#unread_" + tlid + " .material-icons").hasClass("teal-text")) {
|
||||
goTop(tlid)
|
||||
return
|
||||
}
|
||||
$("#unread_" + tlid + " .material-icons").addClass("teal-text")
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var id = $("#unread_" + tlid).attr("data-id")
|
||||
if (type == "home") {
|
||||
var add = "timelines/home?min_id=" + id
|
||||
} else if (type == "notf") {
|
||||
var add = "notifications?min_id=" + id
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/" + add
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (!json || !json.length) {
|
||||
columnReload(tlid, type)
|
||||
}
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
var templete = parse(json, type, acct_id, tlid, "", mute, type);
|
||||
var len = json.length - 1
|
||||
$("#timeline_" + tlid).html(templete);
|
||||
if ($("#timeline_" + tlid + " .cvo:eq(" + len + ")").length) {
|
||||
var to = $("#timeline_" + tlid + " .cvo:eq(" + len + ")").offset().top
|
||||
$("#timeline_box_" + tlid + "_box .tl-box").scrollTop(to)
|
||||
}
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
todc();
|
||||
});
|
||||
}
|
||||
var ueloadlock = false
|
||||
function ueload(tlid) {
|
||||
if (ueloadlock) {
|
||||
return false
|
||||
}
|
||||
ueloadlock = true
|
||||
var multi = localStorage.getItem("column")
|
||||
var obj = JSON.parse(multi)
|
||||
var acct_id = obj[tlid * 1].domain
|
||||
var type = obj[tlid * 1].type
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
var id = $("#timeline_" + tlid + " .cvo:eq(0)").attr("unique-id")
|
||||
if (type == "home") {
|
||||
var add = "timelines/home?min_id=" + id
|
||||
} else if (type == "notf") {
|
||||
var add = "notifications?min_id=" + id
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/" + add
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (!json) {
|
||||
columnReload(tlid, type)
|
||||
}
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
var templete = parse(json, '', acct_id, tlid, "", mute, type);
|
||||
var len = json.length - 1
|
||||
$("#timeline_" + tlid).prepend(templete);
|
||||
if ($("#timeline_" + tlid + " .cvo:eq(" + len + ")").length) {
|
||||
var to = $("#timeline_" + tlid + " .cvo:eq(" + len + ")").offset().top
|
||||
$("#timeline_box_" + tlid + "_box .tl-box").scrollTop(to)
|
||||
}
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
todc();
|
||||
ueloadlock = false
|
||||
});
|
||||
}
|
||||
function asRead() {
|
||||
//Markers
|
||||
var markers = localStorage.getItem("markers");
|
||||
if (markers == "no") {
|
||||
markers = false;
|
||||
} else {
|
||||
markers = true
|
||||
}
|
||||
if (markers) {
|
||||
var multi = localStorage.getItem("column")
|
||||
var obj = JSON.parse(multi)
|
||||
for (var i = 0; i < obj.length; i++) {
|
||||
var acct_id = obj[i].domain
|
||||
var type = obj[i].type
|
||||
if (type == "home" || type == "notf") {
|
||||
if (type == "home") {
|
||||
var id = $("#timeline_" + i + " .cvo:eq(0)").attr("unique-id")
|
||||
var poster = {
|
||||
home: {
|
||||
last_read_id: id
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var id = $("#timeline_" + i + " .cvo:eq(0)").attr("data-notf")
|
||||
var poster = {
|
||||
notifications: {
|
||||
last_read_id: id
|
||||
}
|
||||
}
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var httpreq = new XMLHttpRequest();
|
||||
var start = "https://" + domain + "/api/v1/markers"
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify(poster));
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
console.log(json)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cbTimer1 = setInterval(asRead, 60000);
|
13
app/js/ui/jquery-ui.min.js
vendored
|
@ -20,7 +20,11 @@ $('.type').click(function () {
|
|||
$("#type-sel").val($(this).attr("data-type"))
|
||||
})
|
||||
//最初、カラム変更時に発火
|
||||
function parseColumn(dontclose) {
|
||||
function parseColumn(target, dontclose) {
|
||||
if (target === 0) {
|
||||
//this is kuso
|
||||
target = "zero"
|
||||
}
|
||||
console.log("%c Parse column", "color:red;font-size:125%");
|
||||
var size = localStorage.getItem("size");
|
||||
if (size) {
|
||||
|
@ -31,7 +35,7 @@ function parseColumn(dontclose) {
|
|||
if (localStorage.getItem("menu-done")) {
|
||||
$("#fukidashi").addClass("hide")
|
||||
}
|
||||
if (!dontclose) {
|
||||
if (!dontclose && !target) {
|
||||
tlCloser();
|
||||
}
|
||||
|
||||
|
@ -76,13 +80,36 @@ function parseColumn(dontclose) {
|
|||
} else {
|
||||
var obj = JSON.parse(col);
|
||||
}
|
||||
var numtarget = false
|
||||
if (target == "add") {
|
||||
var tlidtar = obj.length - 1
|
||||
obj = [obj[tlidtar]]
|
||||
} else if (target) {
|
||||
var tlidtar = target
|
||||
if (target == "zero") {
|
||||
target = 0
|
||||
}
|
||||
obj = [obj[target]]
|
||||
numtarget = true
|
||||
} else {
|
||||
var tlidtar = null
|
||||
if ($("#timeline-container").length) {
|
||||
$("#timeline-container").html("");
|
||||
}
|
||||
}
|
||||
var basekey = 0;
|
||||
for (var key = 0; key < obj.length; key++) {
|
||||
var next = key + 1;
|
||||
//acctって言いながらタイムライン
|
||||
var acct = obj[key];
|
||||
if (tlidtar) {
|
||||
if (tlidtar == "zero") {
|
||||
key = 0
|
||||
} else {
|
||||
key = tlidtar
|
||||
}
|
||||
|
||||
}
|
||||
if (acct.type == "notf") {
|
||||
var notf_attr = ' data-notf=' + acct.domain;
|
||||
var if_notf = "hide";
|
||||
|
@ -163,6 +190,7 @@ function parseColumn(dontclose) {
|
|||
} else {
|
||||
var animecss = "";
|
||||
}
|
||||
var unread = '<a id="unread_' + key + '" onclick="showUnread(' + key + ',\'' + acct.type + '\',\'' + acct.domain + '\')" class="setting nex" title="' + lang.lang_layout_unread + '"><i class="material-icons waves-effect nex">more</i></a>'
|
||||
if (acct.type == "notf") {
|
||||
var exclude = lang.lang_excluded + ':<br><label><input type="checkbox" class="filled-in" id="exc-reply-' + key + '" ' + excludeCk(key, "mention") + ' /><span><i class="fas fa-share exc-icons"></i></span></label> ' +
|
||||
'<label><input type="checkbox" class="filled-in" id="exc-fav-' + key + '" ' + excludeCk(key, "favourite") + ' /><span><i class="fas fa-star exc-icons"></i></span></label> ' +
|
||||
|
@ -174,17 +202,31 @@ function parseColumn(dontclose) {
|
|||
exclude = exclude + '<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter(' + key + ')">Clear all</button>'
|
||||
}
|
||||
exclude = exclude + "<br>";
|
||||
|
||||
} else if (acct.type == "home") {
|
||||
var exclude = '<a onclick="ebtToggle(' + key +
|
||||
')" class="setting nex"><i class="fas fa-retweet waves-effect nex" title="' + lang.lang_layout_excludingbt + '" style="font-size:24px"></i><span id="sta-bt-' +
|
||||
key + '">Off</span></a>' + lang.lang_layout_excludingbt + '<br>';
|
||||
|
||||
} else {
|
||||
var exclude = "";
|
||||
unread = ""
|
||||
}
|
||||
var markers = localStorage.getItem("markers");
|
||||
if (markers == "no") {
|
||||
markers = false;
|
||||
} else {
|
||||
markers = true
|
||||
}
|
||||
if (!markers) {
|
||||
unread = ""
|
||||
}
|
||||
if (!acct.left_fold) {
|
||||
basekey = key;
|
||||
if (!numtarget) {
|
||||
var basehtml = '<div style="' + css + '" class="box ' + animecss + '" id="timeline_box_' + basekey + '_parentBox"></div>';
|
||||
$("#timeline-container").append(basehtml);
|
||||
}
|
||||
var left_hold = '<a onclick="leftFoldSet(' + key + ')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_leftFold + '">view_agenda</i></a>' + lang.lang_layout_leftFold + '</span><br>';
|
||||
} else {
|
||||
var left_hold = '<a onclick="leftFoldRemove(' + key + ')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_leftUnfold + '">view_column</i></a>' + lang.lang_layout_leftUnfold + '</span><br>';
|
||||
|
@ -206,7 +248,7 @@ function parseColumn(dontclose) {
|
|||
'<div class="area-notice_name"><span id="notice_' + key + '" class="tl-title"></span></div>' +
|
||||
'<div class="area-a1"><a onclick="notfToggle(' + acct.domain + ',' + key +
|
||||
')" class="setting nex ' + if_notf + '" title="' + unique_notf + '"' + icnsert + '><i class="material-icons waves-effect nex notf-icon_' +
|
||||
acct.domain + '">notifications</i></div><div class="area-sta"><span class="new badge teal notf-reply_' + acct.domain + ' hide" data-badge-caption="Reply">0</span><span class="new badge yellow black-text notf-fav_' + acct.domain + ' hide" data-badge-caption="Fav">0</span><span class="new badge blue notf-bt_' + acct.domain + ' hide" data-badge-caption="BT">0</span><span class="new badge orange notf-follow_' + acct.domain + ' hide" data-badge-caption="Follow">0</span></a></div>' +
|
||||
acct.domain + '">notifications</i></a>' + unread + '</div><div class="area-sta"><span class="new badge teal notf-reply_' + acct.domain + ' hide" data-badge-caption="Reply">0</span><span class="new badge yellow black-text notf-fav_' + acct.domain + ' hide" data-badge-caption="Fav">0</span><span class="new badge blue notf-bt_' + acct.domain + ' hide" data-badge-caption="BT">0</span><span class="new badge orange notf-follow_' + acct.domain + ' hide" data-badge-caption="Follow">0</span></div>' +
|
||||
'<div class="area-a2"><a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_delthis + '"' + icnsert + '>cancel</i></a></div>' +
|
||||
'<div class="area-a3"><a onclick="setToggle(' + key +
|
||||
|
@ -220,10 +262,14 @@ function parseColumn(dontclose) {
|
|||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_linkanades + '">link</i><span id="sta-card-' +
|
||||
key + '">On</span></a>' + lang.lang_layout_linkana + '<br><a onclick="voiceToggle(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_tts + '">hearing</i><span id="sta-voice-' +
|
||||
key + '">On</span></a>' + lang.lang_layout_tts + 'TL<br><a onclick="reconnector(' + key +
|
||||
',\'' + acct.type + '\',\'' + acct.domain + '\',\'' + escapeHTML(acct.data) + '\')" class="setting nex ' + if_notf + ' ' + if_misskey_hide + '"><i class="material-icons waves-effect nex ' + if_notf + '" title="' + lang.lang_layout_reconnect + '">low_priority</i></a><span class="' + if_notf + '">' + lang.lang_layout_reconnect + '</span><br>' + lang.lang_layout_headercolor + '<br><div id="picker_' + key + '" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key +
|
||||
key + ',\'' + acct.type + '\'">On</span></a>' + lang.lang_layout_tts + 'TL<br><a onclick="columnReload(' + key +
|
||||
',\'' + acct.type + '\')" class="setting nex ' + if_misskey_hide + '"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_reconnect + '">refresh</i></a><span>' + lang.lang_layout_reconnect + '</span><br>' + lang.lang_layout_headercolor + '<br><div id="picker_' + key + '" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key +
|
||||
'" class="tl ' + acct.type + '-timeline " tlid="' + key + '" data-type="' + acct.type + '" data-acct="' + acct.domain + '" data-const="' + acct.type + '_' + acct.domain + '"><div id="landing_' + key + '" style="text-align:center">' + lang.lang_layout_nodata + '</div></div></div>'
|
||||
$('#timeline_box_' + basekey + '_parentBox').append(html);
|
||||
if (numtarget) {
|
||||
$('timeline_box_' + key + '_box').html(html)
|
||||
} else {
|
||||
$('#timeline_box_' + basekey + '_parentBox').append(html)
|
||||
}
|
||||
localStorage.removeItem("pool_" + key);
|
||||
if (acct.data) {
|
||||
var data = acct.data;
|
||||
|
@ -257,6 +303,7 @@ function parseColumn(dontclose) {
|
|||
$("#bottom").removeClass("reverse");
|
||||
$(".leftside").removeClass("reverse");
|
||||
}
|
||||
$("#bottom").removeClass("hide");
|
||||
if (localStorage.getItem("sec") && localStorage.getItem("sec") != "nothing") {
|
||||
secvis(localStorage.getItem("sec"));
|
||||
}
|
||||
|
@ -336,7 +383,7 @@ function addColumn() {
|
|||
localStorage.setItem("column", json);
|
||||
}
|
||||
|
||||
parseColumn();
|
||||
parseColumn('add');
|
||||
}
|
||||
function addselCk() {
|
||||
var acct = $("#add-acct-sel").val();
|
||||
|
@ -380,8 +427,8 @@ function removeColumn(tlid) {
|
|||
obj.splice(tlid, 1);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
parseColumn()
|
||||
sortLoad()
|
||||
$("#timeline_box_" + tlid + "_parentBox").remove()
|
||||
}
|
||||
$("#sort-box").removeClass("hide");
|
||||
$("#sort-box").addClass("show");
|
||||
|
|
|
@ -17,6 +17,16 @@ function menu() {
|
|||
}
|
||||
$('#menu').css("left", left + "px")
|
||||
$('#menu').css("top", top + "px")
|
||||
var height = localStorage.getItem("menu-height");
|
||||
var width = localStorage.getItem("menu-width");
|
||||
if(height){
|
||||
$('#menu').css("height", height + "px")
|
||||
}else{
|
||||
$('#menu').css("height", "460px")
|
||||
}
|
||||
if(width){
|
||||
$('#menu').css("width", width + "px")
|
||||
}
|
||||
$('#menu').fadeIn();
|
||||
$("#menu-bar").html("TheDesk " + localStorage.getItem("ver"));
|
||||
$(".menu-content").addClass("hide");
|
||||
|
@ -49,6 +59,14 @@ $(function () {
|
|||
localStorage.setItem("menu-top", top);
|
||||
}
|
||||
});
|
||||
$("#menu").resizable({
|
||||
minHeight: 150,
|
||||
minWidth: 200,
|
||||
stop: function (event, ui) {
|
||||
localStorage.setItem("menu-height", ui.size.height);
|
||||
localStorage.setItem("menu-width", ui.size.width);
|
||||
}
|
||||
});
|
||||
});
|
||||
function help() {
|
||||
postMessage(["openUrl", "https://docs.thedesk.top"], "*")
|
||||
|
|
|
@ -2,6 +2,15 @@
|
|||
//✕隠す
|
||||
function hide() {
|
||||
$("#right-side").hide()
|
||||
$("#right-side").css("width", "300px")
|
||||
$("#left-side").css("width", "100%")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if(width){
|
||||
width = width.replace("px", "") * 1
|
||||
} else {
|
||||
width = 300
|
||||
}
|
||||
$("#post-box").css("width", width)
|
||||
$('#post-box').fadeOut()
|
||||
$("#post-box").removeClass("appear")
|
||||
$("#emoji").addClass("hide")
|
||||
|
@ -38,6 +47,12 @@ function show() {
|
|||
}
|
||||
$('#post-box').css("left", left + "px")
|
||||
$('#post-box').css("top", top + "px")
|
||||
var width = localStorage.getItem("postbox-width");
|
||||
if (width) {
|
||||
$('#post-box').css("width", width + "px")
|
||||
} else {
|
||||
$('#post-box').css("width", "300px")
|
||||
}
|
||||
$('#post-box').fadeIn();
|
||||
$('#textarea').characterCounter();
|
||||
}
|
||||
|
@ -62,6 +77,14 @@ $(function () {
|
|||
localStorage.setItem("postbox-top", top);
|
||||
}
|
||||
});
|
||||
$("#post-box").resizable({
|
||||
minHeight: 150,
|
||||
minWidth: 100,
|
||||
stop: function (event, ui) {
|
||||
$("#textarea").blur()
|
||||
localStorage.setItem("postbox-width", ui.size.width);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//コード受信
|
||||
|
|
|
@ -9,14 +9,18 @@ scrollevent();
|
|||
function scrollck() {
|
||||
$(".tl-box").each(function (i, elem) {
|
||||
var tlid = $(this).attr('tlid');
|
||||
//一番上ならためていた新しいトゥートを表示
|
||||
//一番上ならためていた新しいトゥートを表示ないしtealなら未読管理モード
|
||||
if ($(this).scrollTop() === 0) {
|
||||
if (!$("#unread_" + tlid + " .material-icons").hasClass("teal-text")) {
|
||||
var pool = localStorage.getItem("pool_" + tlid);
|
||||
if (pool) {
|
||||
$("#timeline_" + tlid).prepend(pool);
|
||||
jQuery("time.timeago").timeago();
|
||||
localStorage.removeItem("pool_" + tlid);
|
||||
}
|
||||
} else {
|
||||
ueload(tlid)
|
||||
}
|
||||
//自動リフレッシュ
|
||||
if ($("#timeline_" + tlid + " .cvo").length > 30) {
|
||||
for (var i = 30; i < $("#timeline_" + tlid + " .cvo").length; i++) {
|
||||
|
@ -35,6 +39,15 @@ function scrollck() {
|
|||
}
|
||||
|
||||
function goTop(id) {
|
||||
if ($("#unread_" + id + " .material-icons").hasClass("teal-text")) {
|
||||
$("#unread_" + id + " .material-icons").removeClass("teal-text")
|
||||
var multi = localStorage.getItem("column")
|
||||
var obj = JSON.parse(multi)
|
||||
var acct_id = obj[id * 1].domain
|
||||
var type = obj[id * 1].type
|
||||
console.log(id, type)
|
||||
columnReload(id, type)
|
||||
}
|
||||
if ($("#timeline_box_" + id + "_box .tl-box").scrollTop() > 500) {
|
||||
$("#timeline_box_" + id + "_box .tl-box").scrollTop(500)
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ var tlView = new Vue({
|
|||
});
|
||||
var postView = new Vue({
|
||||
el: '#postView',
|
||||
data: { config: postConstruction, kirishima: localStorage.getItem('kirishima') },
|
||||
data: { config: postConstruction, kirishima: localStorage.getItem('kirishima'), quoters: localStorage.getItem('quoters') },
|
||||
methods: {
|
||||
complete: function (i, val) {
|
||||
var ls = postView.config[i];
|
||||
|
@ -323,6 +323,11 @@ function exportSettingsCore() {
|
|||
var tagarr = localStorage.getItem("tag");
|
||||
var favtag = JSON.parse(tagarr);
|
||||
exp.favoriteTags = favtag;
|
||||
exp.revisons = 2.1
|
||||
exp.meta = {}
|
||||
exp.meta.date = new Date()
|
||||
exp.meta.thedesk = localStorage.getItem("ver")
|
||||
exp.meta.platform = localStorage.getItem("platform")
|
||||
return exp;
|
||||
}
|
||||
function importSettings() {
|
||||
|
@ -340,8 +345,7 @@ function importSettings() {
|
|||
}
|
||||
})
|
||||
}
|
||||
function importSettingsCore(arg) {
|
||||
var obj = JSON.parse(arg);
|
||||
function importSettingsCore(obj) {
|
||||
if (obj) {
|
||||
localStorage.clear();
|
||||
localStorage.setItem("multi", JSON.stringify(obj.accts));
|
||||
|
@ -356,7 +360,7 @@ function importSettingsCore(arg) {
|
|||
}
|
||||
localStorage.setItem("column", JSON.stringify(obj.columns));
|
||||
if (obj.config) {
|
||||
//Version 2
|
||||
//Version 2~
|
||||
var max = envView.config.length;
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = envView.config[i].storage;
|
||||
|
@ -659,7 +663,6 @@ window.onload = function () {
|
|||
checkSpotify();
|
||||
voiceSettingLoad();
|
||||
oksload();
|
||||
npprovider();
|
||||
ctLoad()
|
||||
};
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
//ソートデータ読み込み
|
||||
function sortload() {
|
||||
function sortLoad () {
|
||||
$("#sort").html("");
|
||||
var col = localStorage.getItem("column");
|
||||
if (col) {
|
||||
var obj = JSON.parse(col);
|
||||
|
@ -104,7 +105,7 @@ function sort() {
|
|||
localStorage.setItem("column", json);
|
||||
$("#sort").html("");
|
||||
M.toast({ html: "Sorted", displayLength: 3000 })
|
||||
sortload();
|
||||
sortLoad();
|
||||
parseColumn();
|
||||
sortMenu()
|
||||
}
|
||||
|
@ -115,5 +116,5 @@ function sortMenu() {
|
|||
$(".menu-content").addClass("hide");
|
||||
$("#sort-box").removeClass("hide");
|
||||
$("#sort").html("");
|
||||
sortload();
|
||||
sortLoad();
|
||||
}
|
|
@ -165,24 +165,6 @@ function spotifySave() {
|
|||
localStorage.setItem("np-temp", temp);
|
||||
M.toast({ html: lang.lang_spotify_np, displayLength: 3000 })
|
||||
}
|
||||
function npprovider() {
|
||||
var provd = $("[name=npp]:checked").val();
|
||||
if (!provd) {
|
||||
if (localStorage.getItem("np_provider")) {
|
||||
$("[value=" + localStorage.getItem("np_provider") + "]").prop("checked", true);
|
||||
} else {
|
||||
$("[value=AIMP]").prop("checked", true);
|
||||
localStorage.setItem("np_provider", "AIMP");
|
||||
}
|
||||
} else {
|
||||
if (provd != localStorage.getItem("np_provider")) {
|
||||
M.toast({ html: lang.lang_setting_npprovide.replace("{{set}}", provd), displayLength: 3000 })
|
||||
}
|
||||
localStorage.setItem("np_provider", provd);
|
||||
postMessage(["itunes", ["set", provd]], "*")
|
||||
|
||||
}
|
||||
}
|
||||
if (location.search) {
|
||||
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/);
|
||||
var mode = m[1];
|
||||
|
@ -196,10 +178,3 @@ if (location.search) {
|
|||
}
|
||||
|
||||
}
|
||||
$("#npbtn").click(function () {
|
||||
nowplaying('spotify');
|
||||
});
|
||||
$("#npbtn").bind('contextmenu', function () {
|
||||
nowplaying('itunes');
|
||||
return false;
|
||||
});
|
|
@ -7,22 +7,26 @@ function themes(theme) {
|
|||
localStorage.setItem("theme", "black");
|
||||
}
|
||||
}
|
||||
$("html").removeClass("indigotheme");
|
||||
$("html").removeClass("greentheme");
|
||||
$("html").removeClass("browntheme");
|
||||
$("html").removeClass("blacktheme");
|
||||
$("html").removeClass("customtheme");
|
||||
$("html").addClass(theme + "theme");
|
||||
var el = document.getElementsByTagName("html")[0]
|
||||
|
||||
el.classList.remove('indigotheme');
|
||||
el.classList.remove('greentheme');
|
||||
el.classList.remove('browntheme');
|
||||
el.classList.remove('blacktheme');
|
||||
el.classList.remove('bluetheme');
|
||||
el.classList.remove('customtheme');
|
||||
el.classList.add(theme + "theme");
|
||||
var font = localStorage.getItem("font");
|
||||
if (font) {
|
||||
$("html").css("font-family", font);
|
||||
el.style.fontFamily = font;
|
||||
} else {
|
||||
$("html").css("font-family", "");
|
||||
el.style.fontFamily = "";
|
||||
}
|
||||
if (theme == "custom") {
|
||||
if (localStorage.getItem("customtheme-id")) {
|
||||
postMessage(["themeCSSRequest", localStorage.getItem("customtheme-id")], "*")
|
||||
}
|
||||
}
|
||||
el.style.backgroundColor = "var(--bg)";
|
||||
}
|
||||
themes();
|
|
@ -25,7 +25,7 @@ function tips(mode) {
|
|||
clearInterval(spotStart);
|
||||
if (mode == "ver") {
|
||||
tipsToggle()
|
||||
$("#tips-text").html('<img src="../../img/desk.png" width="20" onclick="todo(\'!TheDesk! It\\\'s a nice client!\')"><span style="font-size:20px">TheDesk</span> ' + localStorage.getItem("ver") + '[<i class="material-icons" style="font-size:1.2rem;top: 3px;position: relative;">supervisor_account</i><span id="persons">1+</span>]')
|
||||
$("#tips-text").html('<img src="../../img/desk.png" width="20" onclick="todo(\'TheDesk is a nice client!: TheDesk ' + localStorage.getItem("ver") + ' git: '+ gitHash +'\')">TheDesk ' + localStorage.getItem("ver") + ' {'+ gitHash.slice(0, 7) +'} [<i class="material-icons" style="font-size:1.2rem;top: 3px;position: relative;">supervisor_account</i><span id="persons">1+</span>]')
|
||||
localStorage.setItem("tips", "ver")
|
||||
} else if (mode == "clock") {
|
||||
tipsToggle()
|
||||
|
|
|
@ -162,7 +162,7 @@ function flw(user, more, acct_id) {
|
|||
} else {
|
||||
$("#his-follow-list-contents").html(templete);
|
||||
}
|
||||
|
||||
jQuery("time.timeago").timeago();
|
||||
|
||||
});
|
||||
}
|
||||
|
@ -228,7 +228,7 @@ function fer(user, more, acct_id) {
|
|||
} else {
|
||||
$("#his-follower-list-contents").html(templete);
|
||||
}
|
||||
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -390,7 +390,7 @@ function showBlo(more, acct_id) {
|
|||
} else {
|
||||
$("#his-blocking-list-contents").html(templete);
|
||||
}
|
||||
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -453,7 +453,7 @@ function showReq(more, acct_id) {
|
|||
} else {
|
||||
$("#his-request-list-contents").html(templete);
|
||||
}
|
||||
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -550,15 +550,19 @@ function showFrl(more, acct_id) {
|
|||
} else {
|
||||
$("#his-follow-recom-contents").html(templete);
|
||||
}
|
||||
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
//Keybase
|
||||
function udAdd(start) {
|
||||
fetch(start, {
|
||||
function udAdd(acct_id, id, start) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var proof = "https://" + domain + "/api/v1/accounts/" + id + "/identity_proofs"
|
||||
fetch(proof, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Accept': 'application/json'
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
//body: JSON.stringify({})
|
||||
}).then(function (response) {
|
||||
|
@ -567,17 +571,11 @@ function udAdd(start) {
|
|||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
var fields = json.attachment;
|
||||
var fields = json;
|
||||
for (var i = 0; i < fields.length; i++) {
|
||||
if (fields[i].type == "IdentityProof") {
|
||||
if (fields[i].signatureAlgorithm == "keybase") {
|
||||
var html = '<a href="https://keybase.io/' + fields[i].name + '" target="_blank" class="cbadge teal waves-effect" style="max-width:200px;" title="' + lang.lang_hisdata_key.replace("{{set}}", escapeHTML(fields[i].signatureAlgorithm)) + '"><i class="fas fa-key" aria-hidden="true"></i>' + escapeHTML(fields[i].signatureAlgorithm) + ':' + escapeHTML(fields[i].name) + '</a>';
|
||||
} else {
|
||||
var html = '<span class="cbadge teal" style="max-width:200px;" title="' + lang.lang_hisdata_key.replace("{{set}}", escapeHTML(fields[i].signatureAlgorithm)) + '"><i class="fas fa-key" aria-hidden="true"></i>' + escapeHTML(fields[i].signatureAlgorithm) + ':' + escapeHTML(fields[i].name) + '</span>';
|
||||
}
|
||||
var html = '<a href="' + fields[i].proof_url + '" target="_blank" class="cbadge teal waves-effect" style="max-width:200px;" title="' + lang.lang_hisdata_key.replace("{{set}}", escapeHTML(fields[i].provider)) + '"><i class="fas fa-key" aria-hidden="true"></i>' + escapeHTML(fields[i].provider) + ':' + escapeHTML(fields[i].provider_username) + '</a>';
|
||||
$("#his-proof-prof").append(html)
|
||||
}
|
||||
}
|
||||
});
|
||||
fetch("https://notestock.osa-p.net/api/v1/isstock.json?id=" + start.replace("@", "users/"), {
|
||||
method: 'GET',
|
||||
|
@ -622,12 +620,17 @@ function showMat() {
|
|||
var templete = "";
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var user = json[key];
|
||||
if (user.avatar) {
|
||||
var avatar = user.avatar
|
||||
} else {
|
||||
var avatar = "../../img/loading.svg"
|
||||
}
|
||||
templete = templete +
|
||||
'<div class="" style="padding-top:5px;">' +
|
||||
'<div style="padding:0; margin:0; width:400px; max-width:100%; display:flex; align-items:flex-end;">' +
|
||||
'<div style="flex-basis:40px;"><a onclick="udgEx(\'' + user.user + '\',' +
|
||||
acct_id + ');" user="' + user.user + '" class="udg">' +
|
||||
'<img src="' + user.avatar + '" width="40" class="prof-img" user="' + user.user + '"></a></div>' +
|
||||
'<img src="' + avatar + '" width="40" class="prof-img" user="' + user.user + '"></a></div>' +
|
||||
'<div style="flex-grow:3; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"><big>' +
|
||||
escapeHTML(user.screen_name) + '</big></div>' +
|
||||
'<div class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"> @' +
|
||||
|
|
|
@ -79,8 +79,10 @@ function udg(user, acct_id) {
|
|||
}
|
||||
//moved設定時
|
||||
if (json.moved) {
|
||||
M.toast({ html: lang.lang_showontl_movetxt + '<button class="btn-flat toast-action" onclick="udg(\'' +
|
||||
json.moved.id + '\',\'' + acct_id + '\')">' + lang.lang_showontl_movebtn + '</button>', displayLength: 4000 })
|
||||
M.toast({
|
||||
html: lang.lang_showontl_movetxt + '<button class="btn-flat toast-action" onclick="udg(\'' +
|
||||
json.moved.id + '\',\'' + acct_id + '\')">' + lang.lang_showontl_movebtn + '</button>', displayLength: 4000
|
||||
})
|
||||
}
|
||||
$('#his-data').modal('open');
|
||||
$('#his-data').attr("user-id", user);
|
||||
|
@ -164,7 +166,7 @@ function udg(user, acct_id) {
|
|||
}
|
||||
$("#his-des").attr("data-acct", acct_id);
|
||||
$('#his-data').css('background-size', 'cover');
|
||||
$("#his-data .tab-content").css("height", $("#his-float-timeline").height() - 70 + "px")
|
||||
$("#his-float-timeline").css("height", $("#his-data-show").height() + "px")
|
||||
localStorage.setItem("history", user);
|
||||
//自分の時
|
||||
if (json.acct == localStorage.getItem("user_" + acct_id)) {
|
||||
|
@ -203,7 +205,7 @@ function udg(user, acct_id) {
|
|||
}
|
||||
todc();
|
||||
//外部データ取得(死かもしれないので)
|
||||
udAdd(json.url);
|
||||
udAdd(acct_id, user, json.url);
|
||||
});
|
||||
}
|
||||
function misskeyUdg(user, acct_id) {
|
||||
|
@ -403,8 +405,9 @@ function relations(user, acct_id) {
|
|||
}
|
||||
//Blocked
|
||||
if (json.blocked_by) {
|
||||
$("#his-float-timeline").hide();
|
||||
$("#his-float-blocked").show();
|
||||
$("#my-data-nav .btn").addClass("disabled")
|
||||
$(".his-var-content").hide();
|
||||
$("#his-float-blocked").show()
|
||||
$("#his-follow-btn").hide()
|
||||
}
|
||||
|
||||
|
@ -428,8 +431,9 @@ function hisclose() {
|
|||
localStorage.removeItem("history");
|
||||
}
|
||||
function reset() {
|
||||
$(".tab-content:eq(0)").show();
|
||||
$(".tab-content:gt(0)").hide();
|
||||
$(".his-var-content:eq(0)").show();
|
||||
$(".his-var-content:gt(0)").hide();
|
||||
$("#my-data-nav .btn").removeClass("disabled")
|
||||
$(".active-back").removeClass("active-back");
|
||||
$(".column-first").addClass("active-back");
|
||||
$("#his-name").text("Loading");
|
||||
|
@ -478,10 +482,13 @@ function reset() {
|
|||
$("#his-main-acct").show();
|
||||
$("#his-proof-prof").html("")
|
||||
}
|
||||
$('#my-data-nav .tab').on('click', function () {
|
||||
var target = $(this).find("a").attr("go");
|
||||
$("#my-data-nav .tab").removeClass("active-back");
|
||||
$('#my-data-nav .anc-link').on('click', function () {
|
||||
var target = $(this).attr("go");
|
||||
if (target) {
|
||||
$("#my-data-nav .anc-link").removeClass("active-back");
|
||||
$(this).addClass("active-back");
|
||||
$(target).show();
|
||||
$(".tab-content:not(" + target + ")").hide();
|
||||
$(".his-var-content:not(" + target + ")").hide();
|
||||
}
|
||||
|
||||
});
|
75
app/main.js
|
@ -18,6 +18,44 @@ const app = electron.app;
|
|||
const BrowserWindow = electron.BrowserWindow;
|
||||
// メインウィンドウはGCされないようにグローバル宣言
|
||||
let mainWindow;
|
||||
|
||||
// アプリが多重起動しないようにする
|
||||
const gotTheLock = app.requestSingleInstanceLock()
|
||||
|
||||
if (!gotTheLock) {
|
||||
app.quit()
|
||||
} else {
|
||||
app.on('second-instance', () => {
|
||||
// 多重起動を試みた場合、既に存在するウィンドウにフォーカスを移す
|
||||
// Someone tried to run a second instance, we should focus our window.
|
||||
if (mainWindow) {
|
||||
if (mainWindow.isMinimized()) mainWindow.restore()
|
||||
mainWindow.focus()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (process.argv.indexOf("--dev") === -1) {
|
||||
var packaged = true;
|
||||
} else {
|
||||
var packaged = false;
|
||||
console.log(
|
||||
"||\\\\\\ \n"+
|
||||
"|||| \\\\\\\\ \n"+
|
||||
"|||| \\\\\\\\ \n"+
|
||||
"|||| Am I a \\\\\\\\ \n"+
|
||||
"|||| cat? ^ ^ \\\\\\\\\\ _____ _ ____ _ \n"+
|
||||
"|||| (.-.) \\\\\\\\\\ |_ _| |__ ___| _ \\ ___ ___| | __\n"+
|
||||
"|||| ___> ) ||||| | | | '_ \\ / _ \\ | | |/ _ \\/ __| |/ /\n"+
|
||||
"|||| < _ _) ////// | | | | | | __/ |_| | __/\__ \\ < \n"+
|
||||
"|||| |_||_| ///// |_| |_| |_|\\___|____/ \\___||___/_|\\_\\ \n"+
|
||||
"|||| ///// \n"+
|
||||
"|||| /////\n"+
|
||||
"|||| /////\n"+
|
||||
"||||//////"
|
||||
)
|
||||
console.log("Welcome!")
|
||||
}
|
||||
var info_path = join(app.getPath("userData"), "window-size.json");
|
||||
var max_info_path = join(app.getPath("userData"), "max-window-size.json");
|
||||
var lang_path = join(app.getPath("userData"), "language");
|
||||
|
@ -25,9 +63,9 @@ var ha_path = join(app.getPath("userData"), "hardwareAcceleration");
|
|||
try {
|
||||
fs.readFileSync(ha_path, 'utf8');
|
||||
app.disableHardwareAcceleration()
|
||||
console.log("disabled: HA");
|
||||
if(!packaged) console.log("disabled: Hardware Acceleration");
|
||||
} catch{
|
||||
console.log("enabled: HA");
|
||||
if(!packaged) console.log("enabled: Hardware Acceleration");
|
||||
}
|
||||
var window_size;
|
||||
try {
|
||||
|
@ -74,13 +112,18 @@ app.on('activate', function () {
|
|||
|
||||
function createWindow() {
|
||||
if (isFile(lang_path)) {
|
||||
console.log("exist");
|
||||
var lang = fs.readFileSync(lang_path, 'utf8');
|
||||
} else {
|
||||
var langs = app.getLocale();
|
||||
console.log(langs);
|
||||
if (~langs.indexOf("ja")) {
|
||||
lang = "ja";
|
||||
} else if (~langs.indexOf("de")) {
|
||||
lang = "de";
|
||||
} else if (~langs.indexOf("cs")) {
|
||||
lang = "cs";
|
||||
} else if (~langs.indexOf("bg")) {
|
||||
lang = "bg";
|
||||
} else {
|
||||
lang = "en";
|
||||
}
|
||||
|
@ -88,8 +131,8 @@ function createWindow() {
|
|||
fs.writeFileSync(lang_path, lang);
|
||||
});
|
||||
}
|
||||
console.log(app.getLocale());
|
||||
console.log("launch:" + lang);
|
||||
if(!packaged) console.log("your lang:" + app.getLocale());
|
||||
if(!packaged) console.log("launch:" + lang);
|
||||
// メイン画面の表示。ウィンドウの幅、高さを指定できる
|
||||
var platform = process.platform;
|
||||
var bit = process.arch;
|
||||
|
@ -101,7 +144,7 @@ function createWindow() {
|
|||
contextIsolation: true,
|
||||
preload: join(__dirname, "js", "platform", "preload.js")
|
||||
},
|
||||
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, icon: __dirname + '/desk.png'
|
||||
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, icon: __dirname + '/desk.png', show: false
|
||||
}
|
||||
} else if (platform == "win32") {
|
||||
var arg = {
|
||||
|
@ -111,7 +154,7 @@ function createWindow() {
|
|||
contextIsolation: true,
|
||||
preload: join(__dirname, "js", "platform", "preload.js")
|
||||
},
|
||||
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true
|
||||
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true, show: false
|
||||
}
|
||||
} else if (platform == "darwin") {
|
||||
var arg = {
|
||||
|
@ -121,10 +164,16 @@ function createWindow() {
|
|||
contextIsolation: true,
|
||||
preload: join(__dirname, "js", "platform", "preload.js")
|
||||
},
|
||||
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true
|
||||
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true, show: false
|
||||
}
|
||||
}
|
||||
mainWindow = new BrowserWindow(arg);
|
||||
mainWindow.once('page-title-updated', () => {
|
||||
mainWindow.show()
|
||||
if (window_size.max) {
|
||||
mainWindow.maximize();
|
||||
}
|
||||
})
|
||||
electron.session.defaultSession.clearCache(() => { })
|
||||
if (process.argv) {
|
||||
if (process.argv[1]) {
|
||||
|
@ -146,9 +195,6 @@ function createWindow() {
|
|||
if (!window_size.x && !window_size.y) {
|
||||
mainWindow.center();
|
||||
}
|
||||
if (window_size.max) {
|
||||
mainWindow.maximize();
|
||||
}
|
||||
// ウィンドウが閉じられたらアプリも終了
|
||||
mainWindow.on('closed', function () {
|
||||
electron.ipcMain.removeAllListeners();
|
||||
|
@ -173,12 +219,7 @@ function createWindow() {
|
|||
|
||||
var platform = process.platform;
|
||||
var bit = process.arch;
|
||||
if (process.argv.indexOf("--dev") === -1) {
|
||||
packaged = true;
|
||||
} else {
|
||||
packaged = false;
|
||||
}
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, packaged, dir)));
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, packaged, dir, dirname)));
|
||||
//CSS
|
||||
css.css(mainWindow);
|
||||
//アップデータとダウンロード
|
||||
|
|
|
@ -55,11 +55,13 @@ function css(mainWindow) {
|
|||
var beforehover = "#757575";
|
||||
var selected = "#3f3f3f"
|
||||
var selectedWithShare = "#b2babd"
|
||||
var gray = "#757575"
|
||||
} else {
|
||||
var drag = "rgba(0, 0, 0, 0.8)";
|
||||
var beforehover = "#9e9e9e";
|
||||
var selected = "#c0c0c0"
|
||||
var selectedWithShare = "#003a30"
|
||||
var gray = "#cccccc"
|
||||
}
|
||||
if (json.props) {
|
||||
if (json.props.TheDeskAccent) {
|
||||
|
@ -79,7 +81,9 @@ function css(mainWindow) {
|
|||
secondary +
|
||||
";--active:" + primary + ";--postbox:" + primary + ";--modalfooter:" +
|
||||
primary +
|
||||
";--accentbtn:" + primary + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare + "}.customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
";--accentbtn:" + primary + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare + "}"+
|
||||
"--gray:" + gray + ";"+
|
||||
".customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
e.sender.webContents.send('theme-css-response', css);
|
||||
} catch (e) {
|
||||
var css = "";
|
||||
|
|
|
@ -26,11 +26,9 @@ function dl(mainWindow, lang_path, base, dirname) {
|
|||
"transparent": false, // ウィンドウの背景を透過
|
||||
"frame": false, // 枠の無いウィンドウ
|
||||
"resizable": false
|
||||
});
|
||||
//updatewin.openDevTools()
|
||||
})
|
||||
var lang = fs.readFileSync(lang_path, 'utf8');
|
||||
updatewin.loadURL(base + lang + '/update.html');
|
||||
|
||||
return "true"
|
||||
} else {
|
||||
return false;
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
// Create the Application's main menu
|
||||
function templete(lang, mainWindow, packaged, dir) {
|
||||
function templete(lang, mainWindow, packaged, dir, dirname) {
|
||||
if(lang !="ja" && lang != "en"){
|
||||
lang = "en"
|
||||
}
|
||||
const electron = require("electron");
|
||||
const app = electron.app;
|
||||
const BrowserWindow = electron.BrowserWindow;
|
||||
const join = require('path').join;
|
||||
const dict = {
|
||||
"application": {
|
||||
"ja": "アプリケーション",
|
||||
|
@ -98,9 +102,9 @@ function templete(lang, mainWindow, packaged, dir) {
|
|||
webviewTag: false,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: "../js/platform/preload.js"
|
||||
preload: join(dirname , "js", "platform", "preload.js")
|
||||
},
|
||||
width: 300, height: 460,
|
||||
width: 300, height: 500,
|
||||
"transparent": false, // ウィンドウの背景を透過
|
||||
"frame": false, // 枠の無いウィンドウ
|
||||
"resizable": false
|
||||
|
|
|
@ -8,19 +8,7 @@ function np(mainWindow) {
|
|||
//Verified on Windows
|
||||
console.log("Access");
|
||||
if (args[0] == "set") {
|
||||
var { NowPlaying, PlayerName } = require("nowplaying-node");
|
||||
var nppath = join(app.getPath("userData"), "nowplaying");
|
||||
var npProvider;
|
||||
try {
|
||||
npProvider = args[1];
|
||||
} catch (e) {
|
||||
npProvider = "AIMP";
|
||||
}
|
||||
var myAIMP = new NowPlaying({
|
||||
fetchCover: true,
|
||||
player: PlayerName[npProvider],
|
||||
});
|
||||
fs.writeFileSync(nppath, npProvider);
|
||||
|
||||
} else {
|
||||
var platform = process.platform;
|
||||
var bit = process.arch;
|
||||
|
@ -35,34 +23,7 @@ function np(mainWindow) {
|
|||
e.sender.webContents.send('itunes-np', error);
|
||||
}
|
||||
} else {
|
||||
var { NowPlaying, PlayerName } = require("nowplaying-node");
|
||||
var nppath = join(app.getPath("userData"), "nowplaying");
|
||||
var npProvider;
|
||||
try {
|
||||
npProvider = fs.readFileSync(nppath, 'utf8');
|
||||
} catch (e) {
|
||||
npProvider = "AIMP";
|
||||
}
|
||||
var myAIMP = new NowPlaying({
|
||||
fetchCover: true,
|
||||
player: PlayerName[npProvider],
|
||||
});
|
||||
myAIMP.update();
|
||||
var path = myAIMP.getCoverPath();
|
||||
if (path) {
|
||||
var bin = fs.readFileSync(path, 'base64');
|
||||
} else {
|
||||
var bin = false;
|
||||
}
|
||||
|
||||
var value = {
|
||||
win: true,
|
||||
name: myAIMP.getTitle(),
|
||||
artist: myAIMP.getArtist(),
|
||||
album: myAIMP.getAlbum(),
|
||||
path: bin
|
||||
}
|
||||
e.sender.webContents.send('itunes-np', value);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ function system(mainWindow, dir, lang, dirname) {
|
|||
const join = require('path').join;
|
||||
var Jimp = require("jimp");
|
||||
const fs = require("fs");
|
||||
var JSON5 = require('json5');
|
||||
var ipc = electron.ipcMain;
|
||||
var tmp_img = join(app.getPath("userData"), "tmp.png");
|
||||
var ha_path = join(app.getPath("userData"), "hardwareAcceleration");
|
||||
|
@ -42,21 +43,26 @@ function system(mainWindow, dir, lang, dirname) {
|
|||
});
|
||||
//プラットフォーム
|
||||
ipc.on('getPlatform', function (e, arg) {
|
||||
e.sender.webContents.send('platform', [process.platform, process.arch, process.version, process.versions.chrome, process.versions.electron]);
|
||||
try {
|
||||
var gitHash = fs.readFileSync("git", 'utf8')
|
||||
} catch{
|
||||
var gitHash = null
|
||||
}
|
||||
e.sender.webContents.send('platform', [process.platform, process.arch, process.version, process.versions.chrome, process.versions.electron, gitHash]);
|
||||
})
|
||||
//言語
|
||||
ipc.on('lang', function (e, arg) {
|
||||
|
||||
console.log("set:" + arg);
|
||||
fs.writeFileSync(lang_path, arg);
|
||||
e.sender.webContents.send('langres', "");
|
||||
e.sender.webContents.send('langres', arg);
|
||||
})
|
||||
//エクスポートのダイアログ
|
||||
ipc.on('exportSettings', function (e, args) {
|
||||
dialog.showSaveDialog(null, {
|
||||
title: 'Export',
|
||||
properties: ['openFile', 'createDirectory'],
|
||||
defaultPath: "export.thedeskconfigv2"
|
||||
defaultPath: "export.thedeskconfig.json5"
|
||||
}, (savedFiles) => {
|
||||
if (!savedFiles) {
|
||||
return false;
|
||||
|
@ -70,13 +76,13 @@ function system(mainWindow, dir, lang, dirname) {
|
|||
title: 'Import',
|
||||
properties: ['openFile'],
|
||||
filters: [
|
||||
{ name: 'TheDesk Config', extensions: ['thedeskconfig', 'thedeskconfigv2'] },
|
||||
{ name: 'TheDesk Config', extensions: ['thedeskconfig', 'thedeskconfigv2', 'json5'] },
|
||||
]
|
||||
}, (fileNames) => {
|
||||
if (!fileNames) {
|
||||
return false;
|
||||
}
|
||||
e.sender.webContents.send('config', fs.readFileSync(arg, 'utf8'));
|
||||
e.sender.webContents.send('config', JSON5.parse(fs.readFileSync(fileNames[0], 'utf8')));
|
||||
})
|
||||
})
|
||||
//保存フォルダのダイアログ
|
||||
|
@ -125,10 +131,12 @@ function system(mainWindow, dir, lang, dirname) {
|
|||
var window = new BrowserWindow({
|
||||
webPreferences: {
|
||||
webviewTag: false,
|
||||
nodeIntegration: false
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(dirname, "js", "platform", "preload.js")
|
||||
},
|
||||
width: 300,
|
||||
height: 480,
|
||||
height: 500,
|
||||
"transparent": false, // ウィンドウの背景を透過
|
||||
"frame": false, // 枠の無いウィンドウ
|
||||
"resizable": false
|
||||
|
@ -187,7 +195,8 @@ function system(mainWindow, dir, lang, dirname) {
|
|||
|
||||
|
||||
ipc.on('export', (e, args) => {
|
||||
fs.writeFileSync(args[0], args[1]);
|
||||
fs.writeFileSync(args[0], JSON5.stringify(args[1]));
|
||||
e.sender.webContents.send('exportAllComplete', "");
|
||||
});
|
||||
//フォント
|
||||
function object_array_sort(data, key, order, fn) {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "thedesk",
|
||||
"version": "18.7.0",
|
||||
"version": "18.9.2",
|
||||
"description": "TheDesk is a Mastodon client for PC.",
|
||||
"repository": "https://github.com/cutls/TheDesk",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"construct": "cd view/make && node make",
|
||||
"construct": "cd view/make && node make --automatic && cd ../../",
|
||||
"dev": "electron ./ --dev",
|
||||
"dist": "build --linux snap",
|
||||
"build:js": "node build.js",
|
||||
|
@ -49,9 +49,11 @@
|
|||
],
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.10.1",
|
||||
"electron-dl": "^1.14.0",
|
||||
"jimp": "^0.6.4",
|
||||
"jimp": "^0.7.0",
|
||||
"jquery": "^3.4.1",
|
||||
"jquery-ui-dist": "^1.12.1",
|
||||
"json5": "^2.1.0",
|
||||
"materialize-css": "^1.0.0",
|
||||
"node-notifier": "^5.4.0",
|
||||
|
@ -60,14 +62,13 @@
|
|||
"vue": "^2.6.10"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"nowplaying-node": "git+https://github.com/cutls/nowplaying-node",
|
||||
"itunes-nowplaying-mac": "git+https://github.com/rinsuki/itunes-nowplaying-mac#pull/4/head",
|
||||
"itunes-nowplaying-mac": "kPherox/itunes-nowplaying-mac#get-artworks-base64",
|
||||
"font-manager": "^0.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"electron": "^5.0.4",
|
||||
"electron": "^6.0.0",
|
||||
"electron-builder": "^21.1.5",
|
||||
"readline-sync": "1.4.9"
|
||||
"readline-sync": "1.4.10"
|
||||
},
|
||||
"build": {
|
||||
"productName": "TheDesk",
|
||||
|
@ -116,8 +117,8 @@
|
|||
]
|
||||
},
|
||||
"electronDownload": {
|
||||
"version": "5.0.4"
|
||||
"version": "6.0.0"
|
||||
},
|
||||
"electronVersion": "5.0.4"
|
||||
"electronVersion": "6.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,159 +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/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href='../../css/tl.css' rel='stylesheet' type='text/css'>
|
||||
<link href='../../css/userdata.css' rel='stylesheet' type='text/css'>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||
<style>
|
||||
.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>
|
|
@ -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,508 +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='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" 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>
|
||||
<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="fa fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>NowPlaying Provider(Windows)</h5>
|
||||
macOS and Linux are not supported. AIMP and iTunes were checked by developer. <br>CAD:foobar2000, MusicBee,J. River Media Center, Media Jukebox<br>WLM:Last.fm Client, TTPlayer, OpenPandora, Zune.<br> For foobar2000, <a href="http://poiru.github.com/foo-cad/">foo_cad plugin</a> is required. And MusicBee requires CAD.<br>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
|
||||
<span>AIMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes"
|
||||
value="ITUNES" />
|
||||
<span>iTunes</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="npmm"
|
||||
value="MEDIAMONKEY" />
|
||||
<span>MediaMonkey</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="winamp"
|
||||
value="WINAMP" />
|
||||
<span>Winamp</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wmp" value="WMP" />
|
||||
<span>WMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
|
||||
<span>WLM</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
|
||||
<span>CAD</span>
|
||||
</label>
|
||||
<br><br>
|
||||
Click <i class="material-icons" style="font-size:24px;">music_note</i>icon to NowPlaying<br>
|
||||
<h5>Account Connection</h5>
|
||||
TheDesk save your data on thedesk.top server.<br>
|
||||
<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://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">list</i>Help/Docs(Constructing)</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
|
||||
<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 NSFW 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://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: "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,255 +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">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" 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,159 +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/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href='../../css/tl.css' rel='stylesheet' type='text/css'>
|
||||
<link href='../../css/userdata.css' rel='stylesheet' type='text/css'>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||
<style>
|
||||
.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>
|
||||
-->
|
|
@ -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,508 +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='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" 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>
|
||||
<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="fa fa-spotify"></i>SpotifyとNowPlayingの設定
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>NowPlayingのソース(Windows)</h5>
|
||||
macOSやLinuxでは動作しません。AIMPとiTunes以外未検証です。<br>foobar2000, MusicBee,J. River Media Center, Media JukeboxはCADを、Last.fm Client, TTPlayer, OpenPandora, ZuneはWLMを選んでください。<br>ただし、foobar2000は<a href="http://poiru.github.com/foo-cad/">foo_cad plugin</a>が必要です。MusicBeeもCADを有効にする必要があります。<br>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
|
||||
<span>AIMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes"
|
||||
value="ITUNES" />
|
||||
<span>iTunes</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="npmm"
|
||||
value="MEDIAMONKEY" />
|
||||
<span>MediaMonkey</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="winamp"
|
||||
value="WINAMP" />
|
||||
<span>Winamp</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wmp" value="WMP" />
|
||||
<span>WMP</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
|
||||
<span>WLM</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
|
||||
<span>CAD</span>
|
||||
</label>
|
||||
<br><br>
|
||||
<i class="material-icons" style="font-size:24px;">music_note</i>ボタンから簡単にNowPlayingができます。<br>
|
||||
<h5>アカウントの連携</h5>
|
||||
APIの性質上,thedesk.topへアクセスします。<br>
|
||||
<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>@@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>アルバムアートワークを添付する(Spotify/Windows)</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://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">list</i>ヘルプ/Docs(Constructing)</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
|
||||
<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: "非表示設定の画像(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: "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://cdn.weep.me/mastodon/">#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,255 +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">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" 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>
|
|
@ -7,10 +7,9 @@
|
|||
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href='../../css/tl.css' rel='stylesheet' type='text/css'>
|
||||
<link href='../../css/userdata.css' rel='stylesheet' type='text/css'>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||
<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;
|
||||
|
|
|
@ -2,18 +2,17 @@
|
|||
<html lang="@@lang@@">
|
||||
|
||||
<head>
|
||||
<title>TheDesk</title>
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<script type="text/javascript" src="../../js/ui/theme.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 rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
|
||||
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../node_modules/jquery-ui-dist/jquery-ui.min.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="../../css/post.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/sort.css" rel="stylesheet" type="text/css">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300|Baloo+Bhai" rel="stylesheet">
|
||||
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
@@comment-start@@
|
||||
<script type="text/javascript">
|
||||
|
@ -26,20 +25,9 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<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.@@lang@@.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/blurhash.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/version.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/punycode.js"></script>
|
||||
<script>
|
||||
var ver = "@@versionLetter@@";
|
||||
var gitHash = "@@gitHash@@"
|
||||
//betaを入れるとバージョンチェックしない
|
||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
|
||||
//var ver="beta";
|
||||
|
@ -67,12 +55,12 @@
|
|||
<div class="row" style="margin-bottom:0;">
|
||||
</span>
|
||||
<div class="" style="float:left;">
|
||||
<a onclick="profShow()" style="vertical-align:-2.5rem;" class="pointer mize">
|
||||
<a onclick="profShow()" style="vertical-align:-1.7rem;" class="pointer mize">
|
||||
<img src="../../img/missing.svg" id="acct-sel-prof" title="@@showSelectProf@@(Ctrl+Shift+P)"
|
||||
data-trans-title="post_box_prof" width="24px">
|
||||
</a>
|
||||
</div>
|
||||
<div class="input-field mize" style="float:left; width:calc(100% - 24px)">
|
||||
<div class="input-field mize" style="float:left; width:calc(100% - 24px); margin-top:0;">
|
||||
<select id="post-acct-sel" class="acct-sel" onchange="mdCheck()"></select>
|
||||
</div>
|
||||
<span class="cancel">
|
||||
|
@ -148,7 +136,7 @@
|
|||
<a onclick="previewEdit()">Edit</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="input-field col s12" id="toot-field" style="margin-top: 10px;">
|
||||
<div class="input-field col s12" id="toot-field" style="margin-top: 0;margin-bottom: 0;">
|
||||
|
||||
<textarea id="textarea" class="materialize-textarea unmize" style="margin-bottom:0;"
|
||||
data-length="500"></textarea>
|
||||
|
@ -181,8 +169,8 @@
|
|||
<div id="preview" class="mize"></div>
|
||||
<span class=" sml mize"><span data-trans="reply">@@replyMode@@</span>:
|
||||
<span id="rec">@@no@@</span>/<span data-trans="file">@@temp@@</span>:
|
||||
<span id="mec">@@nothing@@</span>/<span data-trans="vis">@@vis@@</span>:
|
||||
<span id="vis">public</span>
|
||||
<span id="mec">@@nothing@@</span>/@@poll@@:<span id="pollsta">@@no@@</span>
|
||||
<span id="vis" class="hide">public</span>
|
||||
</span>
|
||||
<br>
|
||||
<input type="text" id="cw-text" placeholder="@@cwtext@@" class="mize" style="margin:0">
|
||||
|
@ -232,6 +220,7 @@
|
|||
</ul>
|
||||
<!--hidden area-->
|
||||
<input type="hidden" id="reply">
|
||||
<input type="hidden" id="quote">
|
||||
<input type="hidden" id="media">
|
||||
<!--END hidden area-->
|
||||
</div>
|
||||
|
@ -244,9 +233,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="right-side">
|
||||
<div id="suggest"></div>
|
||||
<div id="suggest" class="right-side-content"></div>
|
||||
<!--絵文字ピッカー-->
|
||||
<div id="emoji" class="hide">
|
||||
<div id="emoji" class="hide right-side-content">
|
||||
<span class="gray sml">@@emojiWarn@@
|
||||
<a onclick="emojiGet('true')" class="pointer">@@refreshEmoji@@</a>
|
||||
<br>
|
||||
|
@ -301,12 +290,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<!--Poll UI-->
|
||||
<div id="poll" class="hide">
|
||||
<select id="poll-sel" onchange="pollProviderCk()">
|
||||
<option value="nothing">@@pollDdisabled@@</option>
|
||||
<option value="mastodon-poll">Mastodon(2.8~)</option>
|
||||
</select>
|
||||
<div id="mastodon-poll" class="poll-provider hide">
|
||||
<div id="poll" class="hide right-side-content">
|
||||
<div id="mastodon-poll" class="poll-provider">
|
||||
<input type="text" class="mastodon-choice" placeholder="@@choice@@1">
|
||||
<input type="text" class="mastodon-choice" placeholder="@@choice@@2">
|
||||
<input type="text" class="mastodon-choice" placeholder="@@choice@@3">
|
||||
|
@ -438,7 +423,9 @@
|
|||
<div id="his-data" class="modal bottom-sheet modal-fixed-footer" style="max-height:750px; height:90%;">
|
||||
<div id="his-data-content" class="modal-content" style="padding-bottom: 0;overflow-y:hidden;">
|
||||
<div id="his-data-show">
|
||||
<div id="his-data-wrap">
|
||||
<div class="his-float" id="his-float-data">
|
||||
<div id="his-leftside">
|
||||
<div id="his-basic-prof">
|
||||
<img src="../../img/loading.svg" id="his-prof" draggable="false">
|
||||
<span id="his-name">Loading...</span><span class="gray" id="his-bot"></span>
|
||||
|
@ -468,82 +455,81 @@
|
|||
id="his-end-btn" onclick="pinUser()">@@endorse@@</a><br>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin"
|
||||
onclick="profbrws()">@@openinbrowser@@</a>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-my-data" id="his-main-acct"
|
||||
onclick="setMain()" style="width: calc(100% - 10px)">@@mainacct@@</a><br>
|
||||
</div><br>
|
||||
<div id="his-matching-list">
|
||||
@@likeUserDes@@<br>
|
||||
Powered by <a href="https://vinayaka.distsn.org/" target="_blank">Mastodon User Matching</a><br>
|
||||
<div id="his-matching-list-contents" class="cont-series"></div>
|
||||
<button class="btn waves-effect " onclick="showMat()" style="width:100%;">@@get@@</button>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-my-data"
|
||||
id="his-main-acct" onclick="setMain()"
|
||||
style="width: calc(100% - 10px)">@@mainacct@@</a><br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="his-float" id="his-float-timeline">
|
||||
<div id="my-data-nav">
|
||||
<ul class="tabs transparent">
|
||||
<li class="tab col my-data-width active-back column-first">
|
||||
<a go="#his-tl" title="@@timeline@@"><i class="material-icons">timeline</i></a>
|
||||
<a go="#his-tl" title="@@timeline@@"
|
||||
class="btn active-back column-first anc-link waves-effect"><i
|
||||
class="material-icons">timeline</i>@@timeline@@</a>
|
||||
<a go="#his-follow-list" title="@@follow@@" class="btn anc-link waves-effect"><i
|
||||
class="material-icons">people</i>→@@follow@@</a>
|
||||
<a go="#his-follower-list" title="@@follower@@" class="btn anc-link waves-effect"><i
|
||||
class="material-icons">people</i>←@@follower@@</a>
|
||||
<a go="#his-list" title="@@list@@" class="btn only-his-data anc-link waves-effect"><i
|
||||
class="material-icons">list</i>@@list@@</a>
|
||||
<a go="#his-fav-list" title="@@favRegist@@"
|
||||
class="btn only-my-data anc-link waves-effect"><i
|
||||
class="material-icons">star</i>@@favRegist@@</a>
|
||||
<a class="dropdown-trigger btn waves-effect" href="#" data-target="hisdropdown"><i
|
||||
class="material-icons">more_vert</i>@@more@@</a>
|
||||
<!-- Dropdown Structure -->
|
||||
<ul id="hisdropdown" class="dropdown-content">
|
||||
<li class="anc-link only-my-data" go="#his-blocking-list">
|
||||
<a href="#" title="@@blocks@@"><i class="material-icons">block</i>@@blocks@@</a>
|
||||
</li>
|
||||
<li class="tab col my-data-width">
|
||||
<a go="#his-follow-list" title="@@follow@@"><i class="material-icons">people</i>→</a>
|
||||
<li class="anc-link only-my-data" go="#his-muting-list">
|
||||
<a href="#" title="@@mute@@"><i
|
||||
class="material-icons">voice_over_off</i>@@mute@@</a>
|
||||
</li>
|
||||
<li class="tab col my-data-width">
|
||||
<a go="#his-follower-list" title="@@follower@@"><i
|
||||
class="material-icons">people</i>←</a>
|
||||
<li class="anc-link only-my-data" go="#his-domain-list">
|
||||
<a href="#" title="@@domainBlock@@"><i
|
||||
class="material-icons">cancel_schedule_send</i>@@domainBlock@@</a>
|
||||
</li>
|
||||
<li class="tab col my-data-width only-his-data">
|
||||
<a go="#his-action" title="@@operateOtherAcct@@"><i
|
||||
class="material-icons">account_box</i></a>
|
||||
<li class="anc-link only-my-data" go="#his-prof-list">
|
||||
<a href="#" title="@@editProf@@"><i
|
||||
class="material-icons">create</i>@@editProf@@</a>
|
||||
</li>
|
||||
<li class="tab col my-data-width only-his-data">
|
||||
<a go="#his-list" title="@@list@@"><i class="material-icons">list</i></a>
|
||||
<li class="anc-link only-my-data" go="#his-request-list">
|
||||
<a href="#" title="@@followReq@@"><i
|
||||
class="material-icons">how_to_reg</i>@@followReq@@</a>
|
||||
</li>
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-fav-list" title="@@favRegist@@"><i class="material-icons">star</i></a>
|
||||
<li class="anc-link only-my-data" go="#his-follow-recom-list">
|
||||
<a href="#" title="@@frc@@"><i class="material-icons">recent_actors</i>@@frc@@</a>
|
||||
</li>
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list" title="@@blocks@@"><i class="material-icons">block</i></a>
|
||||
<li class="anc-link only-his-data" go="#his-action">
|
||||
<a href="#" title="@@operateOtherAcct@@"><i
|
||||
class="material-icons">account_box</i>@@operateOtherAcct@@</a>
|
||||
</li>
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list" title="@@blocks@@"><i
|
||||
class="material-icons">voice_over_off</i></a>
|
||||
</li>
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-domain-list" title="@@domainBlock@@"><i
|
||||
class="material-icons">language</i><i class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-prof-list" title="@@editProf@@"><i class="material-icons">create</i></a>
|
||||
</li>
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-request-list" title="@@followReq@@"><i
|
||||
class="material-icons">how_to_reg</i></a>
|
||||
</li>
|
||||
<li class="tab col my-data-width only-my-data">
|
||||
<a go="#his-follow-recom-list" title="@@frc@@"><i
|
||||
class="material-icons">recent_actors</i></a>
|
||||
<li class="anc-link" go="#his-matching-list">
|
||||
<a href="#" title="@@likeUserDes@@"><i class="material-icons">group_work</i>User
|
||||
Matching</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="his-tl" class="tab-content">
|
||||
<div id="his-tl" class="his-var-content">
|
||||
<div id="his-tl-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="utl('--now','more')">@@more@@</button>
|
||||
</div>
|
||||
<div id="his-follow-list" class="tab-content">
|
||||
<div id="his-follow-list" class="his-var-content">
|
||||
<div id="his-follow-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="flw('--now','more')">@@more@@</button>
|
||||
</div>
|
||||
<div id="his-follower-list" class="tab-content">
|
||||
<div id="his-follower-list" class="his-var-content">
|
||||
<div id="his-follower-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="fer('--now','more')">@@more@@</button>
|
||||
</div>
|
||||
<div id="his-action" class="tab-content">
|
||||
<div id="his-action" class="his-var-content">
|
||||
@@useOtherAcct1@@@@revoverJP@@@@follow@@(@@warnUseOtherAcct@@)<br>
|
||||
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>
|
||||
@@revoverJPde@@
|
||||
|
@ -552,30 +538,30 @@
|
|||
<a href="#!" class="waves-effect btn"
|
||||
onclick="udgEx('selector', 'selector')">@@openProf@@</a><br>
|
||||
</div>
|
||||
<div id="his-list" class="tab-content">
|
||||
<div id="his-list" class="his-var-content">
|
||||
<div id="his-lists-a">@@warnListRegist@@</div>
|
||||
|
||||
<div id="his-lists-b"></div>
|
||||
</div>
|
||||
<div id="his-fav-list" class="tab-content">
|
||||
<div id="his-fav-list" class="his-var-content">
|
||||
<div id="his-fav-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect" style="width:100%; padding:0;"
|
||||
onclick="showFav('more')">@@more@@</button>
|
||||
</div>
|
||||
<div id="his-blocking-list" class="tab-content">
|
||||
<div id="his-blocking-list" class="his-var-content">
|
||||
<div id="his-blocking-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="showBlo('more')">@@more@@</button>
|
||||
</div>
|
||||
<div id="his-muting-list" class="tab-content">
|
||||
<div id="his-muting-list" class="his-var-content">
|
||||
<div id="his-muting-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="showMut('more')">@@more@@</button>
|
||||
</div>
|
||||
<div id="his-domain-list" class="tab-content">
|
||||
<div id="his-domain-list" class="his-var-content">
|
||||
<div id="his-domain-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
|
@ -585,13 +571,14 @@
|
|||
<button class="btn waves-effect" onclick="addDomainblock()">@@add@@</button>
|
||||
<br>
|
||||
</div>
|
||||
<div id="his-prof-list" class="tab-content">@@name@@
|
||||
<div id="his-prof-list" class="his-var-content">@@name@@
|
||||
<br>
|
||||
<input type="text" placeholder="@@name@@" id="his-name-val" style="max-width:250px;">
|
||||
<br>@@note@@
|
||||
<br>
|
||||
<div class="input-field col s12">
|
||||
<textarea placeholder="@@note@@" id="his-des-val" class="materialize-textarea"></textarea>
|
||||
<textarea placeholder="@@note@@" id="his-des-val"
|
||||
class="materialize-textarea"></textarea>
|
||||
<label for="his-des-val">@@note@@</label>
|
||||
</div>
|
||||
<button class="btn waves-effect" style="width:100%; padding:0;"
|
||||
|
@ -605,22 +592,31 @@
|
|||
<input type="file" onchange="imgChange(this,'header')">
|
||||
</span>
|
||||
</div>
|
||||
<div id="his-request-list" class="tab-content">
|
||||
<div id="his-request-list" class="his-var-content">
|
||||
<div id="his-request-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="showReq('more')">@@more@@</button>
|
||||
</div>
|
||||
<div id="his-follow-recom-list" class="tab-content">
|
||||
<div id="his-follow-recom-list" class="his-var-content">
|
||||
<div id="his-follow-recom-contents" class="cont-series">
|
||||
</div>
|
||||
</div>
|
||||
<div id="his-matching-list" class="his-var-content">
|
||||
@@likeUserDes@@<br>
|
||||
Powered by <a href="https://distsn.org/" target="_blank">Mastodon User
|
||||
Matching</a><br>
|
||||
<div id="his-matching-list-contents" class="cont-series"></div>
|
||||
<button class="btn waves-effect " onclick="showMat()"
|
||||
style="width:100%; padding:0;">@@get@@</button>
|
||||
</div>
|
||||
<div class="his-float" id="his-float-blocked">
|
||||
<div id="his-float-blocked">
|
||||
<div>@@blocked@@</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="modal-action waves-effect waves-green btn-flat" id="his-history-btn"
|
||||
onclick="historyShow()">@@historyBack@@</button>
|
||||
|
@ -681,21 +677,30 @@
|
|||
<a href="https://thedesk.top" target="_blank">HP</a><br>
|
||||
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
|
||||
<br>
|
||||
<div id="release-Usamin_18-7-0" class="release-do" style="display:none; ">
|
||||
<div id="release-Usamin_18-9-2" class="release-do" style="display:none; ">
|
||||
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
|
||||
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
|
||||
Pixiv Fanboxでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note Usamin (18.7.0)</h5>
|
||||
<span style="font-size :120%">・<u>トゥートを矢印キーで選択してR,B,Fで返信,BT,ふぁぼ</u></span><br>
|
||||
・Pleromaでトゥート内のトゥートへのリンクをクリックしたときの挙動を修正。<br>
|
||||
・アップロードに失敗したときに何もできなくなるバグを修正。<br>
|
||||
・設定画面の詳細説明が表示されないバグを修正。<br>
|
||||
・カラム名がオーバーフローしてしまうバグを修正。<br>
|
||||
・トゥートのリプライ元をたどる挙動を修正。<br>
|
||||
・カードが長くて(特にSpotify)邪魔な問題を修正。<br>
|
||||
・トゥート詳細画面でレイアウトが崩れる不具合を修正。<br>
|
||||
・このクライアントは勝手に特定のドメインをブロックするみたいなことはしていません。
|
||||
<h5>Release Note Usamin (18.9.2)</h5>
|
||||
・トゥートボックスが閉じない、消えない不具合を修正。
|
||||
<h5>Release Note Usamin (18.9.1)</h5>
|
||||
・トゥートボックスのリサイズを横だけにした<br>
|
||||
・アンケートが上手く作成できない不具合を修正。
|
||||
<h5>Release Note Usamin (18.9.0)</h5>
|
||||
・設定エクスポートファイルが変更された<br>
|
||||
.thedeskconfigv2: 17.2.0~18.8.3<br>
|
||||
.thedeskconfig: 16.0.1~17.2.0<br>
|
||||
.json5: 本バージョン以降<br>
|
||||
<u>エクスポート可能な形式</u><br>
|
||||
.json5<br>
|
||||
<u>インポート可能な形式</u><br>
|
||||
.thedeskconfigv2, .thedeskconfig, .json5<br>
|
||||
・カスタムCSSを読み込める(自己責任): macOS: /Users/:user/Library/Application Support/TheDesk | Windows: C:\Users\:user\AppData\Roaming\thedesk<br>
|
||||
・(v3.0|m追従)プロフィールディレクトリ読み込み<br>
|
||||
・(v3.0|m追従)最終アクティブ時間をユーザー一覧表示時に一緒に表示<br>
|
||||
・自己紹介をユーザー一覧表示時に一緒に表示<br>
|
||||
・メニューとトゥートボックスがリサイズ可能になった<br>
|
||||
</div>
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
|
@ -712,6 +717,10 @@
|
|||
target="_blank">
|
||||
@@PatreonSupport@@
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light black-text" href="https://liberapay.com/cutls"
|
||||
target="_blank" style="background-color: #f6c915">
|
||||
Liberapay
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
@@AWLSupport@@
|
||||
|
@ -750,6 +759,8 @@
|
|||
class="material-icons">search</i><span>@@search@@</span></div>
|
||||
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i
|
||||
class="material-icons">view_headline</i><span>@@list@@</span></div>
|
||||
<div class="waves-effect" onclick="dirMenu()" id="dirMenu"><i
|
||||
class="material-icons">recent_actors</i><span>@@directory@@</span></div>
|
||||
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i
|
||||
class="material-icons">filter_list</i><span>@@filter@@</span></div>
|
||||
<div class="waves-effect" onclick="help()"><i
|
||||
|
@ -839,6 +850,36 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--ディレクトリ-->
|
||||
<div id="dir-box" class="hide menu-content">
|
||||
<div class="input-field">
|
||||
<select id="dir-acct-sel" class="acct-sel" onchange="dirselCk()"></select>
|
||||
</div>
|
||||
<div id="dirNoAuth" class="hide">
|
||||
<input id="dirNoAuth-url" type="text" class="validate" style="width:calc( 70% - 40px);"
|
||||
placeholder="e.g:mastodon.social">
|
||||
<button class="btn waves-effect indigo" style="width: 120px;padding: 0;padding-left: 15px;"
|
||||
onclick="directory()">
|
||||
<i class="material-icons left" style="margin:0">search</i>@@show@@
|
||||
</button>
|
||||
</div>
|
||||
<label>
|
||||
<input class="with-gap" onchange="directory()" name="sort" type="radio" value="active" checked>
|
||||
<span>@@active@@</span>
|
||||
</label>
|
||||
<label>
|
||||
<input class="with-gap" onchange="directory()" name="sort" type="radio" value="new">
|
||||
<span>@@newcomer@@</span>
|
||||
</label><br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="local_only" value="true" onchange="directory()" />
|
||||
<span>@@local_only@@</span>
|
||||
</label>
|
||||
<div id="dir-contents"></div>
|
||||
<button class="btn waves-effect teal disabled" style="width: 100%" id="moreDir"
|
||||
onclick="directory('more')">@@more@@
|
||||
</button>
|
||||
</div>
|
||||
<!--並べ替え-->
|
||||
<div id="sort-box" class="hide menu-content">
|
||||
<ul id="sort"></ul>
|
||||
|
@ -942,14 +983,14 @@
|
|||
<!--TLのTL-->
|
||||
<div id="timeline-container">
|
||||
<div id="something-wrong">
|
||||
<img src="" style="width:150px;margin:5px;display:none;" draggable="false">
|
||||
<div>@@helloTheDesk@@</div>
|
||||
<img src="../../img/desk.svg" style="width:150px;margin:5px;display:none;" draggable="false">
|
||||
<div class="stw" style="display: none">@@helloTheDesk@@</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--bottom-->
|
||||
<div id="bottom" class="reverse">
|
||||
<div id="bottom" class="reverse hide">
|
||||
<div class="leftside reverse">
|
||||
<div id="dambox">
|
||||
<button id="posttgl" class="btn waves-effect"
|
||||
|
@ -998,10 +1039,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="tips" class="hide">
|
||||
<a onclick="tipsToggle()" class="nex waves-effect" style="float:left">
|
||||
<a onclick="tipsToggle()" class="nex waves-effect">
|
||||
<i class="material-icons nex" title="@@changeTips@@" data-trans-title="tips">bubble_chart</i>
|
||||
</a>
|
||||
<div id="tips-text" style="float:left; width:300px;"></div>
|
||||
<div id="tips-text" style="width:300px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1012,7 +1053,7 @@
|
|||
(これは支援の有無に関わらず定期的に出ます。)<br>
|
||||
あなたのMastodon, Misskeyライフを邪魔してしまって申し訳ありません。<br>
|
||||
乞食のようなマネをしてご支援をお願いするのもどうかと思いますが、少々お時間をください。<br>
|
||||
<br>
|
||||
ご安心ください。インターネット上のフリー百科事典のような高圧的支援要求はいたしません。コーヒーも要求いたしません。<br>
|
||||
あなたはMastodon, MisskeyクライアントにTheDeskを選びました。これは奇跡的なことです。今考えればブラウザからアクセスした方が良かったのではと感じることかと存じます。<br>
|
||||
それでも、あなたはTheDeskを使っています。<br>
|
||||
TheDeskは2018年1月13日に最初のバージョンが出ました。それから圧倒的な機能数でゴリ押しするクライアントになっています。<br>
|
||||
|
@ -1037,6 +1078,10 @@
|
|||
target="_blank">
|
||||
@@PatreonSupport@@
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light black-text" href="https://liberapay.com/cutls"
|
||||
target="_blank" style="background-color: #f6c915">
|
||||
Liberapay
|
||||
</a>
|
||||
</div>
|
||||
<div id="support-btm-right">
|
||||
<h5>@@once@@</h5>
|
||||
|
@ -1061,6 +1106,20 @@
|
|||
<!--Radio Happy(Yui) Taku Inoue-->
|
||||
<audio src="" id="radio"></audio>
|
||||
<!--JS-->
|
||||
<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.@@lang@@.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/blurhash.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/version.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/jquery-ui-dist/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/punycode.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||
<script src="https://twemoji.maxcdn.com/2/twemoji.min.js?2.7"></script>
|
||||
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||
|
@ -1076,6 +1135,7 @@
|
|||
<script type="text/javascript" src="../../js/tl/datails.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/mix.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/src.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/directory.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/filter.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/tag.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/list.js"></script>
|
||||
|
@ -1086,7 +1146,6 @@
|
|||
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/login.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/img.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/pip.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/sort.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||
|
|
22
app/view/make/language/bg/acct.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"list": "Списък на профилите",
|
||||
"back": "Назад",
|
||||
"add": "Добавяне на профил",
|
||||
"codesetupwarn": "Премахнете отметката за да пропуснете влизането с код. (Вход в Mastodon от Windows или macOS) (Препоръчително: pcheck)",
|
||||
"codesetup": "Настройка на код",
|
||||
"mainacct": "Основен профил",
|
||||
"selacct": "Изберете профил",
|
||||
"codepastewarn": "Поставете кода и затворете браузъра.",
|
||||
"codepaste": "Код",
|
||||
"domain": "Домейн",
|
||||
"connect": "Федерални сървъри",
|
||||
"toots": "Тоот",
|
||||
"users": "Потребители",
|
||||
"users2": "потребители",
|
||||
"safety": "Свързване",
|
||||
"ver": "Mastodon версия",
|
||||
"ko": "",
|
||||
"thisismisskey": "Влезте като Misskey",
|
||||
"misskeylogin": "Прочетете <a href=\"https://thedesk.top/how-to-misskey-login.html\">Документацията</a>, за да влезете в Misskey.",
|
||||
"nodata": "Няма данни"
|
||||
}
|
172
app/view/make/language/bg/index.json
Normal file
|
@ -0,0 +1,172 @@
|
|||
{
|
||||
"draghere": "Плъзнете тук за да качите",
|
||||
"close": "Затвори",
|
||||
"showSelectProf": "Показване на профила на избрания акаунт",
|
||||
"closethisbox": "Затвори полето",
|
||||
"toot": "Тоот",
|
||||
"post-new": "Нова публикация",
|
||||
"nsfwDes": "Маркирайте медията като чувствителна",
|
||||
"cwDes": "Скриване на текста зад предупреждение",
|
||||
"selfile": "Прикачи..",
|
||||
"insertEmoji": "Емотикони",
|
||||
"NPSpotify": "Възпроизвеждане сега (Spotify)",
|
||||
"NPiTunes": "Възпроизвеждане сега (macOS)",
|
||||
"schedule": "Планиран тоот",
|
||||
"postat": "Публикация в",
|
||||
"scheduleWarn": "2.7.0 ~ Минимален интервал от време:5мин. (часовникът на сървъра може да не е точен.)",
|
||||
"clearToot": "Изчисти тоот кутията",
|
||||
"replyMode": "Отговор",
|
||||
"no": "Не",
|
||||
"yes": "Да",
|
||||
"temp": "Прикачени файлове",
|
||||
"nothing": "Няма",
|
||||
"vis": "Регулирайте поверителността на състоянието",
|
||||
"cwtext": "Текст за предупреждение",
|
||||
"selectVis": "Регулирайте поверителността на състоянието",
|
||||
"publicJP": "",
|
||||
"unlistedJP": "",
|
||||
"privateJP": "",
|
||||
"localJP": "Само местно",
|
||||
"sectoot": "Втори Тоот",
|
||||
"directJP": "",
|
||||
"emojiWarn": "",
|
||||
"emojiInsertWarn": "Някои емотикони не могат да бъдат вмъкнати.",
|
||||
"refreshEmoji": "Обнови списъка с емотиконите",
|
||||
"closeThisBox": "Затвори полето",
|
||||
"showThisEmoji": " са показани.",
|
||||
"customEmoji": "Персонализирани емотикони",
|
||||
"peopleEmoji": "Емоти с хора",
|
||||
"natureEmoji": "Емоти с природа",
|
||||
"foodEmoji": "Емоти с храни",
|
||||
"activityEmoji": "Емоти с дейности",
|
||||
"placeEmoji": "Емоти с места",
|
||||
"thingsEmoji": "Емоти с инструменти",
|
||||
"symbolEmoji": "Емоти със символи",
|
||||
"flagsEmoji": "Емоти с флагове",
|
||||
"poll": "Анкета",
|
||||
"pollDdisabled": "Анкети: Деактивирани",
|
||||
"pollProvider": "Доставчик на Анкета",
|
||||
"polluntil": "Скриване на броя на гласовете, докато хората гласуват.",
|
||||
"choice": "Избор",
|
||||
"pollmulti": "Многоброен избор",
|
||||
"expires_in": "Изтича в...(сек)",
|
||||
"contextBefore": "Контекст преди този тоот",
|
||||
"thisToot": "Този тоот",
|
||||
"contextAfter": "Контекст след този тоот",
|
||||
"beforeLTL": "Локален TL преди тоот",
|
||||
"beforeUTL": "Потребителски TL преди тоот",
|
||||
"afterLTL": "Локален TL след този тоот)",
|
||||
"afterUTL": "Потребителски TL преди този тоот",
|
||||
"afterFTL": "Федерализиран TL след този тоот",
|
||||
"favedPeople": "Хора, които го харесват",
|
||||
"btedPeople": "Хората, които го подсилиха",
|
||||
"useOtherAcct1": "Използване на друг профил",
|
||||
"useOtherAcct2": ":unfav и unBT са деактивирани.",
|
||||
"reply": "Отговор",
|
||||
"bt": "Подсилване",
|
||||
"favRegist": "Любими",
|
||||
"openBrowser": "Отваряне в браузъра",
|
||||
"screenshot": "Направете снимка на екрана",
|
||||
"copyURL": "Копирай URL адреса на този тоот",
|
||||
"embed": "Закрепи",
|
||||
"toots": "Тоот",
|
||||
"follow": "Следвам",
|
||||
"follower": "Последователи",
|
||||
"timeline": "Времева линия",
|
||||
"operateOtherAcct": "Свързан-профил",
|
||||
"list": "Списък",
|
||||
"makeNew": "Запази",
|
||||
"blocks": "Блокове",
|
||||
"mutes": "Заглушаване",
|
||||
"block": "Блокове",
|
||||
"mute": "Заглуши",
|
||||
"domainBlock": "Блок домейн",
|
||||
"editProf": "Редактиране на профила",
|
||||
"change": "Запази",
|
||||
"followReq": "Следвайте исканията",
|
||||
"likeHimOrHer": "Наподобяващ",
|
||||
"endorse": "Функция в профила",
|
||||
"openinbrowser": "Отваряне в браузъра",
|
||||
"mainacct": "Set it an main account",
|
||||
"frc": "Предложени",
|
||||
"more": "Още",
|
||||
"revoverJP": " да се ",
|
||||
"warnUseOtherAcct": "(Невъзможно да се спре на следването)",
|
||||
"revoverJPde": "",
|
||||
"or": "или",
|
||||
"openProf": "Показване на профила",
|
||||
"warnListRegist": "Следвайте, за да добавите този потребител към списъците.",
|
||||
"blockDomain": "Добавете домейн за блокиране",
|
||||
"name": "Показвано име",
|
||||
"note": "Бележка",
|
||||
"editProfImg": "Промяна на аватар",
|
||||
"editHeader": "Промяна на снимката в заглавието",
|
||||
"blocked": "Вие сте блокирани. Защо?",
|
||||
"likeUserDes": "Намерете хора подобни на този потребител.",
|
||||
"get": "Намери",
|
||||
"historyBack": "Назад",
|
||||
"empUser": "Подчертайте този потребител",
|
||||
"supportme": "Подкрепете TheDesk!",
|
||||
"TheDeskDes": "TheDesk няма реклама, няма нужда от такса за отключване на премиум функции. Нуждаем се от вашата приятелска подкрепа!",
|
||||
"PatreonSupport": "Support on Patreon",
|
||||
"PixivSupport": "Подкрепете в Pixiv FANBOX",
|
||||
"AWLSupport": "Списък с желания от Amazon",
|
||||
"SendAmazonGift1": "Дай ми Amazon Gift Card:",
|
||||
"SendAmazonGift2": "",
|
||||
"monthly": "Monthly",
|
||||
"once": "Once",
|
||||
"local": "Местно",
|
||||
"localMedia": "Местна (медия)",
|
||||
"home": "Начало",
|
||||
"fed": "Федерални",
|
||||
"fedMedia": "Федерални (Медии)",
|
||||
"dm": "Директни съобщения",
|
||||
"integratedTLDes": "Интегриране (Местно/Начало)",
|
||||
"localPlusDes": "LTL+Отговор+BT",
|
||||
"notf": "Известия",
|
||||
"showThisTL": "Показване на този TL:",
|
||||
"webviewWarn": "TweetDeck с потребителски TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Код</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Клавишните комбинации ще ви дразнят. Когато се почувствате така, маркирате „Предпочитам WebView“ в горната част на колоната.",
|
||||
"add": "Добави",
|
||||
"search": "Търсене",
|
||||
"sortSet": "Подредба",
|
||||
"selectAcct": "Профил (превъртете, за да покажете всички)",
|
||||
"listLocale": "Списък",
|
||||
"filterWord": "Филтриране на думи",
|
||||
"degree": "Контекстно филтриране",
|
||||
"conver": "Разговори",
|
||||
"option": "Настройки",
|
||||
"matchWord": "Цяла дума",
|
||||
"warnMatchWord": "Ница на латински език",
|
||||
"except": "Пусни вместо да е скрито",
|
||||
"exceptWorn": "Филтрираните тоот ще изчезнат необратимо, дори ако по-късно филтърът бъде премахнат",
|
||||
"avalableBefore": "Изтича след",
|
||||
"warnAvBefore": "Изключване или „0“ означава „Никога“",
|
||||
"warnAvBefore2": "Тази стойност може да съдържа някои грешки",
|
||||
"unlimited": "Никога",
|
||||
"days": "ден(а)",
|
||||
"hours": "час(а)",
|
||||
"mins": "минута(и)",
|
||||
"secs": "секунда(и)",
|
||||
"warnOnIntegratedTL": "Интегрираният TL/Plus TL ще скрие думите за и двете: Местно-филтриране и за Локално-филтриране.",
|
||||
"helloTheDesk": "Вътрешна грешка: моля изчистете всички данни (в страницата с настройки) <b> Всички данни ще бъдат изтрити.</b>",
|
||||
"addColumn": "Добавете колона",
|
||||
"sortColumns": "Подредба",
|
||||
"acctMan": "Мениджър на профила",
|
||||
"filter": "Филтър",
|
||||
"setting": "Настройки",
|
||||
"reverse": "Обръщане на Тоот бутона",
|
||||
"f5": "Презареди TL",
|
||||
"nanoDes": "Най-малкият Мастодон,",
|
||||
"verTips": "Версия",
|
||||
"clockTips": "Часовник",
|
||||
"ramTips": "Състояние на RAM",
|
||||
"changeTips": "Промени Обърни",
|
||||
"help": "Помощ",
|
||||
"about": "За TheDesk",
|
||||
"hereAddColumns": "<- Добави ТЛ",
|
||||
"show": "Show",
|
||||
"directory": "Directory",
|
||||
"active": "Recently active",
|
||||
"newcomer": "New arrivals",
|
||||
"local_only": "Local only"
|
||||
}
|
188
app/view/make/language/bg/setting.json
Normal file
|
@ -0,0 +1,188 @@
|
|||
{
|
||||
"setting": "Предпочитания",
|
||||
"set": "Запази",
|
||||
"yes": "Да",
|
||||
"no": "Не",
|
||||
"none": "Няма",
|
||||
"default": "По подразбиране",
|
||||
"change": "Промяна",
|
||||
"select": "Избери",
|
||||
"env": "Системни предпочитания",
|
||||
"setlang": "Езици",
|
||||
"backup": "Внос и износ на предпочитания",
|
||||
"import": "Внос",
|
||||
"export": "Износ",
|
||||
"hardwareAcceleration": "Деактивиране на хардуерното ускорение",
|
||||
"hardwareAccelerationWarn": "Автоматичното рестартиране",
|
||||
"theme": "Теми",
|
||||
"popup": "Известие с изскачащ прозорец (за Windows)",
|
||||
"popupwarn": "Скрито ако е зададено на „0“",
|
||||
"s": "сек",
|
||||
"nativenotf": "Вътрешно уведомяване",
|
||||
"nnwarn": "Това не работи в Windows Portable вер.",
|
||||
"nntest": "Тест за уведомяване",
|
||||
"minwidth": "Минимална ширина на колоните",
|
||||
"minwidthwarn": "Лентата за превъртане ще се покаже, когато размерът на прозореца е по-голям от размера на колони.",
|
||||
"fixwidth": "Минимална ширина на браузъра TweetDeck",
|
||||
"fixwidthwarn": "",
|
||||
"above": "над",
|
||||
"font": "Шрифт",
|
||||
"fontwarn": "Изберете любимия си шрифт с „Избор“ (само за Windows / macOS)",
|
||||
"fontsize": "Размер на шрифта",
|
||||
"savefolder": "Папка за запазване",
|
||||
"savefolderwarn": "TheDesk ще използва това местоназначение, когато се опитва да запази снимки или да прави екранни снимки.",
|
||||
"absolute": "абсолютна стойност",
|
||||
"themeSel": "Изберете тема",
|
||||
"customtheme": "Редактирайте и добавете персонализирани теми",
|
||||
"customthemeDirection": "Цветова схема",
|
||||
"primary": "Цвят на фона",
|
||||
"secondarycolor": "Компоненти на фона",
|
||||
"text": "Цвят на текста",
|
||||
"accent": "Фон на подсилването",
|
||||
"add_new": "Добавяне на нов",
|
||||
"name": "Име",
|
||||
"desc": "Относно тази тема",
|
||||
"customShare": "Споделете този код с друг TheDesk. Не споделяйте този код с MiAS.",
|
||||
"customImport": "Импортиране на персонализирани теми",
|
||||
"delete": "Изтрий",
|
||||
"cImpWarn": "Вземете още теми от <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Предпочитания за времевата линия",
|
||||
"timemode": "Времеви формат",
|
||||
"relativetime": "Относителен формат: „преди 1 минута“, „преди 3 дни“",
|
||||
"absolutetime": "Абсолютен формат:\"23:25:21\",\"2017/12/30 23:59:00\"",
|
||||
"mixtime": "Смесен формат: някои от раздумките са с относителен-формат, други са с абсолютен формат.",
|
||||
"relativesel": "Относителен",
|
||||
"absolutesel": "Абсолютен",
|
||||
"doublesel": "Относителен и абсолютен",
|
||||
"mixsel": "Смесено",
|
||||
"locale": "Уникално място на Сървърите",
|
||||
"localewarn": "Тази стойност е налична за някои Японски сървъри",
|
||||
"nswf": "Скриване на NSFW снимки",
|
||||
"nsfwwarn": "Силен ефект на размазване",
|
||||
"cw": "Скриване на CW съдържание",
|
||||
"replyct": "Стил на брояча на отговори",
|
||||
"replyct_hidden": "Показване на 1+, ако отговорите са повече от 1.",
|
||||
"replyct_full": "Покажи пълния брой (1,2...)",
|
||||
"gif": "Анимация на анимирани GIF изображения",
|
||||
"box": "Действие на кутията за публикации",
|
||||
"boxyes": "Прибрана",
|
||||
"boxabs": "Постоянно отворена",
|
||||
"boxno": "Отворена и след публикуване",
|
||||
"tag": "Tag в TL търсене",
|
||||
"tagfed": "Използване в обединената мрежа",
|
||||
"taglocal": "Използване в локалната мрежа",
|
||||
"via": "С показване",
|
||||
"mouseover": "Hide action buttons without mouseover",
|
||||
"mouseoverwarn": "You may feel 'mouseover' is unconfortable:(",
|
||||
"mv": "Mouseover to show",
|
||||
"mvclick": "Click to show",
|
||||
"notfmarker": "Show Notification marker, red colored bell and counter(if you show a notification column.)",
|
||||
"autofold": "Auto folding",
|
||||
"autofoldwarn": "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.",
|
||||
"lines": "lines",
|
||||
"letters": "букви",
|
||||
"or": "or",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://cdn.weep.me/mastodon/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
"animation": "Анимация на времевата линия",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
"replySound": "Звук (Отговор)",
|
||||
"favSound": "Звук(Фаворит)",
|
||||
"btSound": "Звук(Подсилване)",
|
||||
"followSound": "Звук(Харесване)",
|
||||
"customSound": "Персонализиран звук",
|
||||
"post": "Предпочитания за публикуване",
|
||||
"autocw": "Предупреждение преди публикуване на дълга раздумка.",
|
||||
"autocwwarn": "Показване на диалогов прозорец, когато правите твърде дълъг скрит текст.",
|
||||
"defaultcw": "Текст за предупреждение по подразбиране",
|
||||
"cws": "Винаги да е зададено CW",
|
||||
"defaultvis": "Видимост по подразбиране",
|
||||
"public": "Публично",
|
||||
"unlisted": "Скрито",
|
||||
"private": "Частно",
|
||||
"direct": "Директно",
|
||||
"memory": "Памет(запомнено на всеки сървър)",
|
||||
"useapi": "Видимост по подразбиране (Зададени от предпочитанията в Mastodon сървъра)",
|
||||
"postimg": "Предпочитания за публикуване на изображения",
|
||||
"showurl": "Вмъкване на URL адрес на медия",
|
||||
"nourl": "Без вмъкване",
|
||||
"disabled": "Disabled",
|
||||
"quote": "Quote format",
|
||||
"simple": "Only URL",
|
||||
"mention": "URL and acct(mention to the user)",
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
"usemainacct": "Main account",
|
||||
"secondary": "Secondary Toot Button",
|
||||
"secwarn": "Toot with other visibility setting",
|
||||
"nothing": "Hidden",
|
||||
"localonly": "Local Only",
|
||||
"zeroWidthEmoji": "Zero-width space when inserting emojis",
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "Можете да вмъкнете всякакви букви и емотикони само с 3 клавиша",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
"cliwarn": "Click client name on toots to toggle mute and emphasis.",
|
||||
"enter": "Enter to set",
|
||||
"wordmute": "Words Mute",
|
||||
"wordemp": "Words Emphasis",
|
||||
"useremp": "Users Emphasis",
|
||||
"useerempwarn": "Set on users data modals.",
|
||||
"empcolorwarn": "Use this color to emphasis",
|
||||
"spotify": "Spotify and NowPlaying Preferences",
|
||||
"spotifynote1": "Click ",
|
||||
"spotifynote2": "icon to NowPlaying",
|
||||
"link": "Account Connection",
|
||||
"linkwarn": "TheDesk save your data on thedesk.top server.",
|
||||
"connect": "Connect",
|
||||
"disconnect": "Disconnect",
|
||||
"templeteedit": "Промяна на шаблон",
|
||||
"templeteeditwarn": "",
|
||||
"templete1": "Spotify:{song}:Име на песен/{album}:Име на албум/{artist}:Име на изпълнителя/{url}:URL адрес в Spotify",
|
||||
"templete2": "macOS:{song}:Име на песен/{album}:Име на албум/{artist}:ме на изпълнител/композитор:{composer}/честота на излъчване: {hz}/битрейт:{bitRate}/жанр:{genre}",
|
||||
"templete3": "",
|
||||
"postartwork": "Attach an Artwork of Spotify",
|
||||
"tts": "TTS(text to speech) Preferences",
|
||||
"speed": "Speed",
|
||||
"speedwarn": "1-100(default:10)",
|
||||
"pitch": "Pitch",
|
||||
"pitchwarn": "0-100(default:50)",
|
||||
"vol": "Volume",
|
||||
"volwarn": "0-100(default:100)",
|
||||
"test": "Test",
|
||||
"sample": "TheDesk is an open-source Mastodon client for PC.",
|
||||
"playstop": "Play/Stop",
|
||||
"back": "Back",
|
||||
"keyscs": "Keyboard shortcuts",
|
||||
"keyscr": "Jump to n(1-9)th column",
|
||||
"keynew": "Open toot box",
|
||||
"keytoggle": "Toggle toot box",
|
||||
"keypost": "Post",
|
||||
"keysecpost": "Post(secondary toot)",
|
||||
"keyunread": "Make all notifications read",
|
||||
"keyesc": "Hide toot box",
|
||||
"keyf5": "Super Reload",
|
||||
"keyclear": "Clear toot box",
|
||||
"keyacctman": "Account Manager",
|
||||
"keyshowprof": "Show profile of selecting",
|
||||
"keyrow": "Show next or previous image",
|
||||
"keyzoom": "Mousewheel:Zoom a image",
|
||||
"reset": "Reset(Danger)",
|
||||
"resetconfirm": "Изтриване на всички данни. Не можете да го отмените. Продължaвате?",
|
||||
"about": "About TheDesk",
|
||||
"hp": "Website",
|
||||
"support": "Поддръжка",
|
||||
"help": "Help",
|
||||
"sushi": "Give me a sushi!",
|
||||
"checkup": "Check update",
|
||||
"ossJP": ""
|
||||
}
|