Compare commits

...

60 Commits

Author SHA1 Message Date
cutls
8eadb8287d today shinchoku 2020-08-31 00:23:55 +09:00
cutls
541ebbbb19 today shinchoku 2020-07-21 12:44:53 +09:00
cutls
d92a9ae1ae today shinchoku 2020-07-21 09:06:58 +09:00
cutls
47749dde7b readme 2020-07-12 03:49:48 +09:00
cutls
78a8c2bdce Today shinchoku 2020-07-12 00:48:15 +09:00
cutls
2c54e43e37 Shinchoku 2020-07-10 22:33:12 +09:00
cutls
fba3b99b54 it 2020-07-10 14:22:26 +09:00
cutls
489d95f23f fix 2020-07-10 14:21:24 +09:00
cutls
5d01dafeb3 WIP: ditch jQuery and duplicated funcs 2020-07-10 14:16:39 +09:00
cutls
b0bd85ccc6 Merge branch 'master' of github.com:cutls/TheDesk 2020-07-05 19:32:44 +09:00
cutls
9fc570e183 maxim 2020-07-05 19:32:31 +09:00
Cutls
695d812ecb Update README.md 2020-07-04 18:25:49 +09:00
cutls
ef6db98da5 revert like 2020-07-04 18:20:35 +09:00
cutls
cd38819a7a add maxim 2020-07-04 18:03:04 +09:00
cutls
f207ed274b TheDesk 21.0.4 (Mayu) 2020-07-04 11:38:51 +09:00
cutls
c3691783de Merge branch 'master' of github.com:cutls/TheDesk 2020-07-04 11:32:25 +09:00
Cutls
7171831b14 Merge pull request #274 from cutls/dependabot/npm_and_yarn/app/chokidar-3.4.0
Bump chokidar from 3.3.1 to 3.4.0 in /app
2020-07-04 11:32:04 +09:00
dependabot-preview[bot]
fa14921421 Bump chokidar from 3.3.1 to 3.4.0 in /app
Bumps [chokidar](https://github.com/paulmillr/chokidar) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/paulmillr/chokidar/releases)
- [Commits](https://github.com/paulmillr/chokidar/compare/3.3.1...3.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-04 02:31:27 +00:00
Cutls
475a80acdd New Crowdin translations (#278)
* New translations index.json (Greek)

* New translations setting.json (Czech)

* New translations index.json (Danish)

* New translations setting.json (Danish)

* New translations index.json (German)

* New translations setting.json (German)

* New translations index.json (Finnish)

* New translations setting.json (Finnish)

* New translations index.json (Hebrew)

* New translations setting.json (Hebrew)

* New translations index.json (Hungarian)

* New translations index.json (Romanian)

* New translations index.json (Czech)

* New translations setting.json (Greek)

* New translations setting.json (Catalan)

* New translations index.json (Afrikaans)

* New translations setting.json (Romanian)

* New translations index.json (French)

* New translations setting.json (French)

* New translations index.json (Spanish)

* New translations setting.json (Spanish)

* New translations setting.json (Bulgarian)

* New translations index.json (Catalan)

* New translations index.json (Bulgarian)

* New translations setting.json (Arabic)

* New translations index.json (Arabic)

* New translations setting.json (Afrikaans)

* New translations index.json (Chinese Traditional)

* New translations setting.json (Chinese Simplified)

* New translations index.json (Chinese Simplified)

* New translations setting.json (Turkish)

* New translations setting.json (Ukrainian)

* New translations index.json (Ukrainian)

* New translations index.json (Turkish)

* New translations setting.json (Chinese Traditional)

* New translations setting.json (Spanish, Argentina)

* New translations index.json (Vietnamese)

* New translations setting.json (Vietnamese)

* New translations index.json (Portuguese, Brazilian)

* New translations setting.json (Portuguese, Brazilian)

* New translations index.json (Spanish, Argentina)

* New translations index.json (English)

* New translations setting.json (Swedish)

* New translations index.json (Polish)

* New translations setting.json (Hungarian)

* New translations index.json (Italian)

* New translations setting.json (Italian)

* New translations index.json (Dutch)

* New translations setting.json (Dutch)

* New translations index.json (Norwegian)

* New translations setting.json (Norwegian)

* New translations index.json (Swedish)

* New translations setting.json (Polish)

* New translations index.json (Portuguese)

* New translations setting.json (Portuguese)

* New translations index.json (Russian)

* New translations setting.json (Russian)

* New translations index.json (Serbian (Cyrillic))

* New translations setting.json (Serbian (Cyrillic))

* New translations setting.json (English)

* New translations index.json (Afrikaans)

* New translations index.json (Romanian)

* New translations index.json (Bulgarian)

* New translations index.json (Arabic)

* New translations index.json (Spanish)

* New translations index.json (French)

* New translations index.json (Ukrainian)

* New translations index.json (Turkish)

* New translations index.json (Swedish)

* New translations index.json (Serbian (Cyrillic))

* New translations index.json (Russian)

* New translations index.json (Portuguese, Brazilian)

* New translations index.json (English)

* New translations index.json (Spanish, Argentina)

* New translations index.json (Chinese Simplified)

* New translations index.json (Vietnamese)

* New translations index.json (Chinese Traditional)

* New translations index.json (Portuguese)

* New translations index.json (Greek)

* New translations index.json (German)

* New translations index.json (Danish)

* New translations index.json (Finnish)

* New translations index.json (Czech)

* New translations index.json (Catalan)

* New translations index.json (Polish)

* New translations index.json (Norwegian)

* New translations index.json (Dutch)

* New translations index.json (Italian)

* New translations index.json (Hungarian)

* New translations index.json (Hebrew)

* New translations main.json (Catalan)

* New translations main.json (Czech)

* New translations main.json (Bulgarian)

* New translations main.json (Danish)

* New translations main.json (German)

* New translations main.json (Spanish)

* New translations main.json (Romanian)

* New translations main.json (French)

* New translations main.json (Arabic)

* New translations main.json (Afrikaans)

* New translations main.json (Chinese Simplified)

* New translations main.json (Ukrainian)

* New translations main.json (Turkish)

* New translations main.json (Swedish)

* New translations main.json (English)

* New translations main.json (Spanish, Argentina)

* New translations main.json (Portuguese, Brazilian)

* New translations main.json (Vietnamese)

* New translations main.json (Chinese Traditional)

* New translations main.json (Serbian (Cyrillic))

* New translations main.json (Hungarian)

* New translations main.json (Hebrew)

* New translations main.json (Italian)

* New translations main.json (Finnish)

* New translations main.json (Greek)

* New translations main.json (Russian)

* New translations main.json (Portuguese)

* New translations main.json (Polish)

* New translations main.json (Norwegian)

* New translations main.json (Dutch)

* New translations main.json (Swedish)

* New translations main.json (Serbian (Cyrillic))

* New translations main.json (Russian)

* New translations main.json (Turkish)

* New translations main.json (Portuguese)

* New translations main.json (Polish)

* New translations main.json (Norwegian)

* New translations main.json (Vietnamese)

* New translations main.json (English)

* New translations main.json (Spanish, Argentina)

* New translations main.json (Portuguese, Brazilian)

* New translations main.json (Chinese Traditional)

* New translations main.json (Chinese Simplified)

* New translations main.json (Ukrainian)

* New translations main.json (Dutch)

* New translations main.json (Catalan)

* New translations main.json (Bulgarian)

* New translations main.json (Arabic)

* New translations main.json (Afrikaans)

* New translations main.json (Spanish)

* New translations main.json (French)

* New translations main.json (Romanian)

* New translations main.json (Czech)

* New translations main.json (Finnish)

* New translations main.json (Italian)

* New translations main.json (Hungarian)

* New translations main.json (Hebrew)

* New translations main.json (Greek)

* New translations main.json (German)

* New translations main.json (Danish)

* New translations main.json (Swedish)

* New translations main.json (Serbian (Cyrillic))

* New translations main.json (Russian)

* New translations main.json (Turkish)

* New translations main.json (Portuguese)

* New translations main.json (Polish)

* New translations main.json (Norwegian)

* New translations main.json (Vietnamese)

* New translations main.json (English)

* New translations main.json (Spanish, Argentina)

* New translations main.json (Portuguese, Brazilian)

* New translations main.json (Chinese Traditional)

* New translations main.json (Chinese Simplified)

* New translations main.json (Ukrainian)

* New translations main.json (Dutch)

* New translations main.json (Catalan)

* New translations main.json (Bulgarian)

* New translations main.json (Arabic)

* New translations main.json (Afrikaans)

* New translations main.json (Spanish)

* New translations main.json (French)

* New translations main.json (Romanian)

* New translations main.json (Czech)

* New translations main.json (Finnish)

* New translations main.json (Italian)

* New translations main.json (Hungarian)

* New translations main.json (Hebrew)

* New translations main.json (Greek)

* New translations main.json (German)

* New translations main.json (Danish)

* New translations acct.json (Romanian)

* New translations acct.json (Danish)

* New translations acct.json (German)

* New translations acct.json (Greek)

* New translations acct.json (Finnish)

* New translations acct.json (Hebrew)

* New translations acct.json (Czech)

* New translations acct.json (Afrikaans)

* New translations acct.json (French)

* New translations acct.json (Spanish)

* New translations acct.json (Bulgarian)

* New translations acct.json (Arabic)

* New translations acct.json (Catalan)

* New translations acct.json (Chinese Simplified)

* New translations acct.json (Chinese Traditional)

* New translations acct.json (Ukrainian)

* New translations acct.json (Turkish)

* New translations acct.json (Spanish, Argentina)

* New translations acct.json (English)

* New translations acct.json (Vietnamese)

* New translations acct.json (Portuguese, Brazilian)

* New translations acct.json (Dutch)

* New translations acct.json (Hungarian)

* New translations acct.json (Italian)

* New translations acct.json (Norwegian)

* New translations acct.json (Polish)

* New translations acct.json (Swedish)

* New translations acct.json (Serbian (Cyrillic))

* New translations acct.json (Russian)

* New translations acct.json (Portuguese)

* New translations index.json (German)
2020-07-04 11:31:09 +09:00
Cutls
9826c3f33e Merge pull request #279 from cutls/dependabot/npm_and_yarn/app/jquery-3.5.1
Bump jquery from 3.5.0 to 3.5.1 in /app
2020-07-04 11:30:50 +09:00
Cutls
ecee949547 Merge pull request #281 from cutls/dependabot/npm_and_yarn/app/electron-rebuild-1.11.0
Bump electron-rebuild from 1.10.1 to 1.11.0 in /app
2020-07-04 11:30:36 +09:00
Cutls
95eea7051f Merge branch 'master' into dependabot/npm_and_yarn/app/electron-rebuild-1.11.0 2020-07-04 11:30:21 +09:00
Cutls
74e3ea41a7 Merge pull request #293 from cutls/dependabot/npm_and_yarn/app/electron-builder-22.7.0
Bump electron-builder from 22.5.1 to 22.7.0 in /app
2020-07-04 11:29:46 +09:00
dependabot-preview[bot]
dc27db920a Bump electron-builder from 22.5.1 to 22.7.0 in /app
Bumps [electron-builder](https://github.com/electron-userland/electron-builder) from 22.5.1 to 22.7.0.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/compare/v22.5.1...v22.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-04 02:28:57 +00:00
dependabot-preview[bot]
b2724fe362 Bump jquery from 3.5.0 to 3.5.1 in /app
Bumps [jquery](https://github.com/jquery/jquery) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](https://github.com/jquery/jquery/compare/3.5.0...3.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-04 02:28:47 +00:00
Cutls
5d43a5b159 Merge pull request #304 from cutls/dependabot/npm_and_yarn/app/electron-dl-3.0.1
Bump electron-dl from 3.0.0 to 3.0.1 in /app
2020-07-04 11:28:34 +09:00
Cutls
7435f3ddfd Merge branch 'master' into dependabot/npm_and_yarn/app/electron-dl-3.0.1 2020-07-04 11:28:18 +09:00
Cutls
94b6de6d3f Merge pull request #309 from cutls/dependabot/npm_and_yarn/app/fortawesome/fontawesome-free-5.13.1
Bump @fortawesome/fontawesome-free from 5.13.0 to 5.13.1 in /app
2020-07-04 11:27:36 +09:00
Cutls
1eb49e9a26 Merge pull request #311 from cutls/dependabot/npm_and_yarn/app/sweetalert2-9.15.2
Bump sweetalert2 from 9.10.12 to 9.15.2 in /app
2020-07-04 11:27:23 +09:00
Cutls
0893aa4ee1 Merge pull request #313 from cutls/dependabot/npm_and_yarn/app/jimp-0.14.0
Bump jimp from 0.10.3 to 0.14.0 in /app
2020-07-04 11:27:10 +09:00
cutls
ccdd9fba88 Introduce Electron 9.0.5 2020-07-04 11:26:46 +09:00
dependabot-preview[bot]
01dc5ff700 Bump electron-rebuild from 1.10.1 to 1.11.0 in /app
Bumps [electron-rebuild](https://github.com/electron/electron-rebuild) from 1.10.1 to 1.11.0.
- [Release notes](https://github.com/electron/electron-rebuild/releases)
- [Changelog](https://github.com/electron/electron-rebuild/blob/master/.releaserc.json)
- [Commits](https://github.com/electron/electron-rebuild/compare/v1.10.1...v1.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-04 02:12:00 +00:00
Cutls
346e8319df Merge pull request #310 from cutls/dependabot/npm_and_yarn/app/electron-9.0.5
Bump electron from 8.2.3 to 9.0.5 in /app
2020-07-04 11:10:08 +09:00
Cutls
5ca7046d5c Merge pull request #312 from heguro/fix-quote-muted
Fix quote_muted
2020-06-30 14:19:11 +09:00
dependabot-preview[bot]
f39e851211 Bump jimp from 0.10.3 to 0.14.0 in /app
Bumps [jimp](https://github.com/oliver-moran/jimp) from 0.10.3 to 0.14.0.
- [Release notes](https://github.com/oliver-moran/jimp/releases)
- [Changelog](https://github.com/oliver-moran/jimp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oliver-moran/jimp/compare/v0.10.3...v0.14.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-29 20:15:35 +00:00
heguro
3747020876 Fix quote_muted 2020-06-26 14:22:30 +09:00
dependabot-preview[bot]
5ed5a9ade3 Bump sweetalert2 from 9.10.12 to 9.15.2 in /app
Bumps [sweetalert2](https://github.com/sweetalert2/sweetalert2) from 9.10.12 to 9.15.2.
- [Release notes](https://github.com/sweetalert2/sweetalert2/releases)
- [Changelog](https://github.com/sweetalert2/sweetalert2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sweetalert2/sweetalert2/compare/v9.10.12...v9.15.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 03:48:09 +00:00
dependabot-preview[bot]
04f157353f Bump electron from 8.2.3 to 9.0.5 in /app
Bumps [electron](https://github.com/electron/electron) from 8.2.3 to 9.0.5.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/master/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v8.2.3...v9.0.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-23 05:46:03 +00:00
dependabot-preview[bot]
a1bbcc9be2 Bump @fortawesome/fontawesome-free from 5.13.0 to 5.13.1 in /app
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 5.13.0 to 5.13.1.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/5.13.0...5.13.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-19 20:18:38 +00:00
cutls
1266ef44ee Beta: fedibird expires_at 2020-06-16 15:08:27 +09:00
dependabot-preview[bot]
0da36709d5 Bump electron-dl from 3.0.0 to 3.0.1 in /app
Bumps [electron-dl](https://github.com/sindresorhus/electron-dl) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/sindresorhus/electron-dl/releases)
- [Commits](https://github.com/sindresorhus/electron-dl/compare/v3.0.0...v3.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-16 02:57:33 +00:00
cutls
2b5637f388 netlify 2020-06-16 11:36:03 +09:00
cutls
6d478906a0 width mistake 2020-06-16 11:22:58 +09:00
cutls
e436aed6c5 TheDesk 21.0.3 (Mayu) 2020-06-16 11:06:22 +09:00
cutls
25867690f3 re-challenge 2020-06-16 11:00:12 +09:00
cutls
b5efbebadb TheDesk 21.0.2 (Mayu) 2020-06-16 10:42:10 +09:00
cutls
e93f860c0c directly import setting 2020-06-13 01:59:05 +09:00
cutls
df04ebca4c quote_muted param 2020-06-13 01:46:26 +09:00
cutls
d2aaf2c2cf timeline delete bug 2020-06-13 01:40:32 +09:00
cutls
8386cd675c votebutton-fixed, and <pre> fixed 2020-06-13 01:33:30 +09:00
cutls
ad7b3cf485 follow request 2020-06-12 22:13:06 +09:00
cutls
f9f2aeab23 font change error 2020-06-12 21:06:12 +09:00
cutls
ea735d279f font-change bug 2020-06-12 20:58:10 +09:00
cutls
fa616d56fd Merge branch 'master' of github.com:cutls/TheDesk 2020-06-10 12:09:32 +09:00
cutls
907e55e6d7 column deleting 2020-06-10 12:09:17 +09:00
Cutls
874be5bca8 Merge pull request #292 from heguro/fix-could-not-see-column-list
Fix: cannot sort column if using some kind of TL
2020-05-24 16:07:14 +09:00
heguro
f49907e5e5 Fix: cannot sort column when using some kind of TL 2020-05-24 05:45:15 +09:00
cutls
da197340ec Flexible font-size 2020-05-23 13:54:51 +09:00
cutls
cf6e5b5dd5 Improve: font-size-change 2020-05-15 12:47:01 +09:00
cutls
917cd322fc bug of emoji 2020-05-15 11:15:01 +09:00
170 changed files with 10054 additions and 5356 deletions

View File

@@ -1,3 +1,18 @@
# rewrite-overallブランチへようこそ🎃
このブランチはコードを最初から全部読み直して書き直そうという途方もなく壮大なプロジェクトです。
1周目では、
* 脱jQuery
* 脱onclick
* 脱コールバック地獄
* 重複してるやつや使ってないやつを消す
という極めて当たり前のやつをやっていきます。
# 以下いつものREADME
<img src="https://thedesk.top/img/top.png" width="300" align="left"> <img src="https://thedesk.top/img/top.png" width="300" align="left">
<img src="https://thedesk.top/img/desk.png" width="150" align="right"> <img src="https://thedesk.top/img/desk.png" width="150" align="right">
@@ -165,4 +180,3 @@ Please write issues to improve TheDesk affinity with Pleroma.
## Vulnerabilities when `npm i`??? ## 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. 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.

View File

@@ -48,6 +48,12 @@ html {
.first .hide-first { .first .hide-first {
display: none; display: none;
} }
.hide-second {
display: none;
}
.first .hide-second {
display: inline;
}
#compt { #compt {
margin-top: 20px; margin-top: 20px;

View File

@@ -5,10 +5,12 @@ body {
overflow: hidden; overflow: hidden;
user-select: none; user-select: none;
cursor: default; cursor: default;
font-size: 13px;
height: 100vh; height: 100vh;
color: var(--color); color: var(--color);
} }
html {
font-size: 13px;
}
.titlebar, .titlebar,
.menubar-menu-container, .menubar-menu-container,
.action-menu-item { .action-menu-item {
@@ -19,9 +21,12 @@ body {
.action-menu-item:hover { .action-menu-item:hover {
filter: brightness(80%) !important; filter: brightness(80%) !important;
} }
.btn { .btn, .btn-flat {
margin: 5px; font-size: 1.1rem;
margin: 0.4rem;
text-transform: none; text-transform: none;
height: 2.76rem;
line-height: 2.76rem;
} }
.markdown { .markdown {
display: none; display: none;
@@ -89,7 +94,7 @@ option {
} }
.badge { .badge {
min-width: 0 !important; min-width: 0 !important;
margin-left: 5px !important; margin-left: 0.4rem !important;
} }
.unvisible { .unvisible {
opacity: 0; opacity: 0;
@@ -163,16 +168,17 @@ pre {
display: block; display: block;
border-left: 5px solid; border-left: 5px solid;
border-color: #079903; border-color: #079903;
padding-left: 10px; padding-left: 0.75rem;
margin-top: 5px; margin-top: 0.75rem;
margin-bottom: 5px; margin-bottom: 0.75rem;
margin-left: 5px; margin-left: 0.75rem;
background-color: #000; background-color: #000;
padding: 1em 1em 1em; padding: 1em 1em 1em;
position: relative; position: relative;
border-top-left-radius: 10px; border-top-left-radius: 0.75rem;
border-bottom-right-radius: 10px; border-bottom-right-radius: 0.75rem;
border-bottom-left-radius: 10px; border-bottom-left-radius: 0.75rem;
white-space: normal;
} }
blockquote, blockquote,
.quote p { .quote p {
@@ -184,9 +190,9 @@ blockquote,
background-color: #ddd; background-color: #ddd;
padding: 1em 1em 1em; padding: 1em 1em 1em;
position: relative; position: relative;
border-top-left-radius: 10px; border-top-left-radius: 0.75rem;
border-bottom-right-radius: 10px; border-bottom-right-radius: 0.75rem;
border-bottom-left-radius: 10px; border-bottom-left-radius: 0.5rem;
} }
blockquote:before, blockquote:before,
.quote:before { .quote:before {
@@ -204,9 +210,9 @@ blockquote:before,
background-color: #fff; background-color: #fff;
padding: 1em 1em 1em; padding: 1em 1em 1em;
position: relative; position: relative;
border-top-left-radius: 10px; border-top-left-radius: 0.75rem;
border-bottom-right-radius: 10px; border-bottom-right-radius: 0.75rem;
border-bottom-left-radius: 10px; border-bottom-left-radius: 0.75rem;
border-left: 5px solid #0096fa; border-left: 5px solid #0096fa;
} }
.pixiv-post :before { .pixiv-post :before {
@@ -223,7 +229,7 @@ blockquote:before,
display: none; display: none;
position: fixed; position: fixed;
width: 100vw; width: 100vw;
height: calc(100vh - 40px); height: calc(100vh - 3rem);
background-color: var(--bg); background-color: var(--bg);
color: var(--color); color: var(--color);
z-index: 99999; z-index: 99999;
@@ -318,7 +324,7 @@ blockquote:before,
} }
.font { .font {
font-size: 1.5rem; font-size: 1.5rem;
margin-bottom: 5px; margin-bottom: 0.4rem;
} }
.font:hover { .font:hover {
background-color: #999; background-color: #999;
@@ -339,9 +345,9 @@ blockquote:before,
width: 540px; width: 540px;
top: calc(50% - 150px); top: calc(50% - 150px);
left: calc(50% - 250px); left: calc(50% - 250px);
padding: 5px; padding: 0.4rem;
border: thin solid gray; border: thin solid gray;
border-radius: 5px; border-radius: 0.4rem;
overflow: hidden; overflow: hidden;
} }
#menu-wrapper { #menu-wrapper {
@@ -351,12 +357,12 @@ blockquote:before,
overflow: hidden; overflow: hidden;
} }
#left-menu { #left-menu {
width: 230px; width: 17.7rem;
} }
#left-menu a { #left-menu a {
padding-left: 5px; padding-left: 0.4rem;
width: 100%; width: 100%;
height: 50px; height: 3rem;
display: flex; display: flex;
align-items: center; align-items: center;
cursor: pointer; cursor: pointer;
@@ -366,7 +372,7 @@ blockquote:before,
background-color: var(--beforehover); background-color: var(--beforehover);
} }
#left-menu span { #left-menu span {
margin-left: 5px; margin-left: 0.4rem;
} }
#left-menu a.active { #left-menu a.active {
background-color: var(--emphasized); background-color: var(--emphasized);
@@ -375,7 +381,7 @@ blockquote:before,
width: 100%; width: 100%;
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;
padding: 5px; padding: 0.4rem;
} }
#tltype { #tltype {
display: flex; display: flex;
@@ -385,13 +391,13 @@ blockquote:before,
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
align-items: center; align-items: center;
width: 170px; width: 13rem;
height: 40px; height: 3.1rem;
cursor: pointer; cursor: pointer;
color: var(--color); color: var(--color);
} }
#tltype .type span { #tltype .type span {
width: calc(100% - 30px); width: calc(100% - 2.3rem);
} }
#tltype .type:hover { #tltype .type:hover {
background-color: var(--beforehover); background-color: var(--beforehover);
@@ -400,28 +406,28 @@ blockquote:before,
background-color: var(--emphasized); background-color: var(--emphasized);
} }
#tltype i { #tltype i {
font-size: 30px; font-size: 2.3rem;
} }
#tltype i.sub-icon { #tltype i.sub-icon {
font-size: 20px; font-size: 1.53rem;
position: absolute; position: absolute;
color: var(--beforehover); color: var(--beforehover);
left: 10px; left: 0.9rem;
bottom: 5px; bottom: 0.4rem;
background-color: #fff; background-color: #fff;
} }
.drag-bar { .drag-bar {
cursor: move; cursor: move;
text-align: center; text-align: center;
width: calc(100% + 10px); width: calc(100% + 0.8rem);
border-radius: 5px; border-radius: 5px;
background-color: var(--box); background-color: var(--box);
filter: brightness(80%); filter: brightness(80%);
margin-left: -5px; margin-left: -0.4rem;
margin-right: -5px; margin-right: -0.4rem;
margin-top: -5px; margin-top: -0.4rem;
font-size: 16px; font-size: 1.3rem;
padding: 4px; padding: 0.3rem;
} }
#something-wrong { #something-wrong {
flex-direction: column; flex-direction: column;
@@ -438,10 +444,10 @@ blockquote:before,
width: 100vw; width: 100vw;
background-color: var(--box); background-color: var(--box);
z-index: 9999; z-index: 9999;
padding: 10px; padding: 0.8rem;
display: grid; display: grid;
grid-template-columns: 3fr 1fr 1fr; grid-template-columns: 3fr 1fr 1fr;
grid-template-rows: 1fr 36px; grid-template-rows: 1fr 2.7rem;
grid-template-areas: 'note middle right' 'note close close'; grid-template-areas: 'note middle right' 'note close close';
} }
#support-btm-en, #support-btm-en,
@@ -458,7 +464,7 @@ blockquote:before,
grid-area: close; grid-area: close;
} }
.select-wrapper .dropdown-content { .select-wrapper .dropdown-content {
width: 250px !important; width: 19.2rem !important;
} }
input, input,
textarea { textarea {
@@ -474,7 +480,7 @@ textarea {
color: var(--color) !important; color: var(--color) !important;
} }
#src-contents svg { #src-contents svg {
margin-right: 5px; margin-right: 0.4rem;
} }
.contributor { .contributor {
cursor: pointer; cursor: pointer;
@@ -484,11 +490,11 @@ textarea {
} }
.tagComp { .tagComp {
display: grid; display: grid;
grid-template-columns: 60px 80px 1fr; grid-template-columns: 4.6rem 6.15rem 1fr;
grid-template-rows: 1fr 1fr; grid-template-rows: 1fr 1fr;
grid-template-areas: 'svg toot user' 'svg toot tag' 'svg toots tag'; grid-template-areas: 'svg toot user' 'svg toot tag' 'svg toots tag';
border-top: dotted 0.5px var(--gray); border-top: dotted 0.5px var(--gray);
padding: 5px; padding: 0.4rem;
} }
.tagCompSvg { .tagCompSvg {
grid-area: svg; grid-area: svg;
@@ -506,7 +512,7 @@ textarea {
} }
.tagCompTag { .tagCompTag {
grid-area: tag; grid-area: tag;
padding-top: 10px; padding-top: 0.4rem;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
@@ -517,15 +523,15 @@ textarea {
#pageSrc { #pageSrc {
position: absolute; position: absolute;
top: 0; top: 0;
left: calc(50vw - 150px); left: calc(50vw - 11.53rem);
width: 300px; width: 23rem;
max-width: 100%; max-width: 100%;
background-color: var(--box); background-color: var(--box);
z-index: 501; z-index: 501;
padding: 5px; padding: 0.4rem;
} }
#pageSrcInput { #pageSrcInput {
width: 160px; width: 12.3rem;
} }
.voice { .voice {
clip: rect(1px, 1px, 1px, 1px); clip: rect(1px, 1px, 1px, 1px);
@@ -576,7 +582,7 @@ textarea {
font-family: 'Material Icons'; font-family: 'Material Icons';
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
font-size: 24px; font-size: 1.84rem;
line-height: 1; line-height: 1;
letter-spacing: normal; letter-spacing: normal;
text-transform: none; text-transform: none;
@@ -599,4 +605,4 @@ textarea {
.linux .win, .linux .win,
.darwin .win { .darwin .win {
display: none; display: none;
} }

View File

@@ -1,145 +1,148 @@
/*トゥートボックス向けCSS*/ /*トゥートボックス向けCSS*/
#post-box { #post-box {
display: none; display: none;
position: fixed; position: fixed;
left: calc(50vw - 150px); left: calc(50vw - 150px);
top: 50vh; top: 50vh;
background-color: var(--postbox); background-color: var(--postbox);
border: thin solid gray; border: thin solid gray;
z-index: 501; z-index: 501;
max-width: 100%; max-width: 100%;
padding: 5px; padding: 0.4rem;
border-radius: 5px; border-radius: 0.4rem;
overflow: hidden; overflow: hidden;
} }
textarea { textarea {
min-height: 100px !important; min-height: 7.7rem !important;
font-family: inherit; font-family: inherit;
} }
#post-box .ui-resizable-s, #post-box .ui-resizable-se{ #post-box .ui-resizable-s,
display: none !important; #post-box .ui-resizable-se {
display: none !important;
} }
.cancel { .cancel {
font-size: 0.5rem; font-size: 0.5rem;
color: gray; color: gray;
cursor: pointer; cursor: pointer;
position: absolute; position: absolute;
right: 2px; right: 2px;
top: 4px; top: 4px;
} }
.more-show { .more-show {
display: none; display: none;
} }
#drag { #drag {
width: 100%; width: 100%;
height: 100px; height: 100px;
} }
#post-btn { #post-btn {
display: none; display: none;
} }
#vis { #vis {
text-transform: capitalize; text-transform: capitalize;
} }
#cw-text { #cw-text {
display: none; display: none;
} }
#sch-box { #sch-box {
display: none; display: none;
} }
#sch-box input { #sch-box input {
width: auto; width: auto;
} }
.picker__close, .picker__close,
.picker__today, .picker__today,
.picker__clear { .picker__clear {
color: #26a69a !important; color: #26a69a !important;
} }
.cw { .cw {
display: none; display: none;
} }
.sensitive { .sensitive {
filter: blur(50px); filter: blur(50px);
} }
#emoji { #emoji {
} }
#suggest { #suggest {
max-height: 300px; max-height: 23rem;
overflow-y: scroll; overflow-y: scroll;
} }
#emoji-list { #emoji-list {
width: 100%; width: 100%;
height: 200px; height: 15.4rem;
overflow-y: scroll; overflow-y: scroll;
} }
#preview-field { #preview-field {
display: none; display: none;
} }
.preview-img { .preview-img {
width: 50px; width: 4rem;
max-height: 100px; max-height: 7.6rem;
} }
.pi-wrap { .pi-wrap {
display: inline-block; display: inline-block;
width: 50px; width: 3.8rem;
max-height: 100px; max-height: 7.7rem;
} }
#default-emoji a { #default-emoji a {
color: var(--color); color: var(--color);
margin-right: 2px; margin-right: 0.15rem;
} }
.character-counter { .character-counter {
position: relative; position: relative;
top: -25px; top: -1.9rem;
} }
.trendtag { .trendtag {
overflow-y: scroll; overflow-y: scroll;
max-height: 100px; max-height: 7.7rem;
} }
#toot-btn-field { #toot-btn-field {
display: flex; display: flex;
} }
#toot-post-btn { #toot-post-btn {
width: calc(100% - 10px); width: calc(100% - 0.7rem);
padding: 0; padding: 0;
margin-top: 10px; margin-top: 0.7rem;
height: 2.7rem;
} }
#toot-sec-btn { #toot-sec-btn {
width: 30px; width: 2.3rem;
padding: 0; padding: 0;
margin-top: 10px; margin-top: 0.7rem;
} }
#left-side { #left-side {
float: left; float: left;
overflow-x: hidden; overflow-x: hidden;
height: calc(100% - 32px); height: calc(100% - 2.5rem);
} }
#right-side { #right-side {
display: none; display: none;
float: left; float: left;
width: 300px; width: 23rem;
padding: 5px; padding: 0.4rem;
overflow-x: hidden; overflow-x: hidden;
height: calc(100% - 32px); height: calc(100% - 2.5rem);
} }
#posttgl,#toot-post-btn { #posttgl,
background-color: var(--accentbtn); #toot-post-btn {
color: var(--color); background-color: var(--accentbtn);
color: var(--color);
} }
/*mini*/ /*mini*/
.mini-post .mize { .mini-post .mize {
display: none !important; display: none !important;
} }
.mini-post #textarea { .mini-post #textarea {
padding: 0; padding: 0;
} }
.mini-post #post-box { .mini-post #post-box {
width: 200px; width: 15.4rem;
min-width: 100px; min-width: 7.7rem;
} }
.mini-post #toot-field { .mini-post #toot-field {
padding: 0; padding: 0;
} }
.mini-post #toot-btn-field { .mini-post #toot-btn-field {
padding: 0; padding: 0;
} }

View File

@@ -3,29 +3,29 @@
cursor: move; cursor: move;
user-select: none; user-select: none;
background-color: var(--modalfooter); background-color: var(--modalfooter);
margin: 5px; margin: 0.4rem;
border-radius: 5px; border-radius: 0.4rem;
color: var(--color); color: var(--color);
padding: 3px; padding: 3px;
display: grid; display: grid;
grid-template-columns: 43px 1fr 60px; grid-template-columns: 3.3rem 1fr 4.6rem;
grid-template-areas: "sorticon sorttitle sorttitle" "sorticon sortacct sortaction"; grid-template-areas: "sorticon sorttitle sorttitle" "sorticon sortacct sortaction";
} }
.sorticon { .sorticon {
grid-area: sorticon; grid-area: sorticon;
} }
.sorticon i { .sorticon i {
font-size: 43px; font-size: 3.3rem;
} }
.sorttitle { .sorttitle {
margin-left: 5px; margin-left: 0.4rem;
grid-area: sorttitle; grid-area: sorttitle;
} }
.sortacct { .sortacct {
margin-left: 5px; margin-left: 0.4rem;
grid-area: sortacct; grid-area: sortacct;
} }
.sortaction { .sortaction {
margin-left: 5px; margin-left: 0.4rem;
grid-area: sortaction; grid-area: sortaction;
} }

View File

@@ -1,7 +1,7 @@
/*TL CSS(ただしBBCode pulse:master.css/spin:font-awesome*/ /*TL CSS(ただしBBCode pulse:master.css/spin:font-awesome*/
#main { #main {
width: 100vw; width: 100vw;
height: calc(100vh - 40px); height: calc(100% - 3rem);
} }
#timeline-container { #timeline-container {
overflow-x: scroll; overflow-x: scroll;
@@ -11,18 +11,19 @@
} }
#bottom { #bottom {
position: absolute; position: absolute;
overflow: hidden;
bottom: 0; bottom: 0;
width: 100vw; width: 100vw;
height: 40px; height: 3rem;
padding: 3px; padding: 0.23rem;
padding-right: 0; padding-right: 0;
padding-left: 40px; padding-left: 3rem;
background-color: var(--sidebar); background-color: var(--sidebar);
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-wrap: wrap; flex-wrap: wrap;
z-index: 500; z-index: 500;
box-shadow: 10px 0 10px 10px rgba(0, 0, 0, 0.2); box-shadow: 0.77rem 0 0.77rem, 0.77rem rgba(0, 0, 0, 0.2);
} }
#demobottom { #demobottom {
width: 500px; width: 500px;
@@ -30,24 +31,24 @@
} }
#bottom.reverse { #bottom.reverse {
padding-left: 0; padding-left: 0;
padding-right: 40px; padding-right: 3rem;
} }
.reverse { .reverse {
flex-direction: row-reverse; flex-direction: row-reverse;
} }
#bottom #dambox { #bottom #dambox {
width: 300px; width: 23rem;
margin-right: 10px; margin-right: 0.76rem;
} }
#bottom.reverse #dambox { #bottom.reverse #dambox {
margin-right: 0; margin-right: 0;
} }
#bottom .trendtag { #bottom .trendtag {
height: 40px; height: 3rem;
} }
#bottom #group, #bottom #group,
#demogroup { #demogroup {
margin-right: 40px; margin-right: 3rem;
} }
#bottom .leftside { #bottom .leftside {
display: flex; display: flex;
@@ -57,41 +58,41 @@
align-items: center; align-items: center;
} }
#bottom #tips img { #bottom #tips img {
vertical-align: -3px; vertical-align: -0.23rem;
} }
#bottom a, #bottom a,
#demogroup a { #demogroup a {
color: var(--color); color: var(--color);
} }
#bottom i { #bottom i {
font-size: 30px; font-size: 2.3rem;
} }
.exc-icons { .exc-icons {
font-size: 20px; font-size: 1.53rem;
} }
.exc-chb { .exc-chb {
padding-left: 24px !important; padding-left: 1.84rem !important;
} }
.btnsgroup { .btnsgroup {
border: 1px solid; border: 1px solid;
padding-top: 1px; padding-top: 1px;
padding-left: 5px; padding-left: 0.4rem;
padding-right: 5px; padding-right: 0.4rem;
margin-right: 15px; margin-right: 1.15rem;
border-radius: 5px; border-radius: 0.4rem;
height: 35px; height: 2.7rem;
} }
.bgReport { .bgReport {
height: 34px; height: 2.61rem;
padding-top: 0.45rem; padding-top: 0.45rem;
text-decoration: underline; text-decoration: underline;
padding-left: 5px; padding-left: 0.4rem;
padding-right: 5px; padding-right: 0.4rem;
} }
#spot-box { #spot-box {
display: grid; display: grid;
grid-template-columns: 40px 30px 2.5fr 1fr 60px; grid-template-columns: 3rem 2.3rem 2.5fr 1fr 4.6rem;
grid-template-rows: 22px 20px; grid-template-rows: 1.7rem 1.5rem;
grid-template-areas: 'cover name name artist refresh' 'cover progress progress progress time'; grid-template-areas: 'cover name name artist refresh' 'cover progress progress progress time';
} }
#spot-refresh { #spot-refresh {
@@ -105,14 +106,14 @@
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
line-height: 25px; line-height: 1.92rem;
} }
#spot-artist { #spot-artist {
grid-area: artist; grid-area: artist;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
line-height: 25px; line-height: 1.92rem;
} }
#spot-img { #spot-img {
width: 90%; width: 90%;
@@ -126,7 +127,7 @@
} }
.btnsgroup .grouptitle { .btnsgroup .grouptitle {
font-family: Open Sans; font-family: Open Sans;
font-size: 15px; font-size: 1.1rem;
} }
@media screen and (max-width: 890px) { @media screen and (max-width: 890px) {
.btnsgroup .grouptitle { .btnsgroup .grouptitle {
@@ -140,7 +141,7 @@
iframe, iframe,
.cvo video { .cvo video {
max-width: 100%; max-width: 100%;
max-height: 300px; max-height: 23rem;
} }
@media screen and (max-width: 600px) { @media screen and (max-width: 600px) {
.mobile #timeline-container { .mobile #timeline-container {
@@ -156,12 +157,12 @@ iframe,
} }
.box { .box {
overflow: hidden; overflow: hidden;
min-width: 300px; min-width: 23rem;
flex: 1; flex: 1;
border-top: none; border-top: none;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
margin-bottom: -10px; margin-bottom: -0.75rem;
} }
.img_FTL { .img_FTL {
display: none; display: none;
@@ -215,16 +216,16 @@ iframe,
} }
.emoji, .emoji,
.emoji-img { .emoji-img {
width: 15px; width: 1.153rem;
} }
.area-toot .emoji, .area-toot .emoji,
.area-toot .emoji-img { .area-toot .emoji-img {
width: 20px; width: 1.538rem;
vertical-align: middle; vertical-align: middle;
margin: -1px 0; margin: -1px 0;
} }
.bigemoji { .bigemoji {
width: 100px !important; width: 7.7rem !important;
height: auto !important; height: auto !important;
position: relative; position: relative;
z-index: 9999; z-index: 9999;
@@ -253,13 +254,13 @@ iframe,
} }
.cvo { .cvo {
user-select: text; user-select: text;
padding-left: 5px; padding-left: 0.4rem;
border-bottom: 0.5px solid; border-bottom: 0.5px solid;
padding-right: 2px; padding-right: 0.15rem;
word-break: break-word; word-break: break-word;
width: 100%; width: 100%;
display: grid; display: grid;
grid-template-columns: 43px 2fr 1fr; grid-template-columns: 3.3rem 2fr 1fr;
grid-template-rows: auto 1.6rem 1fr auto 2.5rem; 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'; grid-template-areas: 'notice notice notice' 'icon display_name display_name' 'space toot toot' 'space additional additional' 'vis actions side';
} }
@@ -285,21 +286,21 @@ iframe,
} }
.area-notice { .area-notice {
margin: 2px; margin: 0.15rem;
grid-area: notice; grid-area: notice;
} }
.area-icon { .area-icon {
width: 40px; width: 3rem;
margin: 2px; margin: 0.15rem;
grid-area: icon; grid-area: icon;
} }
.area-display_name { .area-display_name {
user-select: text; user-select: text;
height: 1.5em; height: 1.5em;
margin: 2px; margin: 0.15rem;
margin-left: 5px; margin-left: 0.4rem;
overflow: hidden; overflow: hidden;
grid-area: display_name; grid-area: display_name;
white-space: nowrap; white-space: nowrap;
@@ -310,7 +311,7 @@ iframe,
flex-wrap: nowrap; flex-wrap: nowrap;
} }
.flex-name { .flex-name {
max-width: calc(100% - 60px); max-width: calc(100% - 4.6rem);
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
@@ -318,9 +319,9 @@ iframe,
.area-toot { .area-toot {
cursor: text; cursor: text;
user-select: auto; user-select: auto;
margin-top: 5px; margin-top: 0.4rem;
margin-bottom: 5px; margin-bottom: 0.4rem;
margin-left: 5px; margin-left: 0.4rem;
grid-area: toot; grid-area: toot;
} }
@@ -353,7 +354,7 @@ iframe,
.area-actions { .area-actions {
padding: 0; padding: 0;
margin: 0; margin: 0;
top: -5px; top: -0.4rem;
position: relative; position: relative;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
@@ -361,28 +362,28 @@ iframe,
grid-area: actions; grid-area: actions;
} }
.area-vis { .area-vis {
margin: 2px; margin: 0.4rem;
grid-area: vis; grid-area: vis;
text-align: center; text-align: center;
} }
.area-side { .area-side {
display: flex; display: flex;
top: -5px; top: -0.4rem;
position: relative; position: relative;
justify-content: flex-end; justify-content: flex-end;
margin: 2px; margin: 0.15rem;
grid-area: side; grid-area: side;
} }
.cusr { .cusr {
user-select: text; user-select: text;
padding-left: 5px; padding-left: 0.4rem;
border-bottom: 0.5px solid; border-bottom: 0.5px solid;
padding-right: 2px; padding-right: 0.15rem;
word-break: break-word; word-break: break-word;
width: 100%; width: 100%;
display: grid; display: grid;
grid-template-columns: 43px 2fr 1fr; grid-template-columns: 3.3rem 2fr 1fr;
grid-template-rows: auto 1.6rem 2fr auto; grid-template-rows: auto 1.6rem 2fr auto;
grid-template-areas: 'notice notice notice' 'icon display_name display_name' 'space status status' 'space actions actions'; grid-template-areas: 'notice notice notice' 'icon display_name display_name' 'space status status' 'space actions actions';
} }
@@ -391,12 +392,12 @@ iframe,
grid-area: status; grid-area: status;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin-bottom: 5px; margin-bottom: 0.75rem;
} }
.cusr .cbadge { .cusr .cbadge {
margin-top: 6px; margin-top: 0.46rem;
margin-left: 6px; margin-left: 0.46rem;
} }
.quote-inline { .quote-inline {
@@ -404,16 +405,16 @@ iframe,
} }
.quote-renote { .quote-renote {
display: grid; display: grid;
grid-template-columns: 43px 2fr 25px; grid-template-columns: 3.3rem 2fr 1.92rem;
grid-template-areas: 'ricon ruser rdet' 'ricon rtext rdet'; grid-template-areas: 'ricon ruser rdet' 'ricon rtext rdet';
border: 1px solid; border: 1px solid;
margin-top: 3px; margin-top: 0.23rem;
padding: 1px; padding: 1px;
border-radius: 3px; border-radius: 0.23rem;
} }
.renote-icon { .renote-icon {
grid-area: ricon; grid-area: ricon;
padding: 5px; padding: 0.4rem;
} }
.renote-details { .renote-details {
grid-area: rdet; grid-area: rdet;
@@ -432,17 +433,17 @@ iframe,
color: var(--color); color: var(--color);
} }
.area-side i { .area-side i {
margin-left: 10px; margin-left: 0.75rem;
} }
.viabadge { .viabadge {
margin-top: 10px; margin-top: 0.75rem;
} }
.action i { .action i {
font-size: 1.2rem; font-size: 1.2rem;
margin-right: 2px; margin-right: 0.15rem;
} }
.action .fa-quote-right { .action .fa-quote-right {
margin-top: 2px; margin-top: 0.15rem;
} }
.actct { .actct {
color: var(--beforehover); color: var(--beforehover);
@@ -461,24 +462,24 @@ iframe,
position: fixed; position: fixed;
background-color: var(--box); background-color: var(--box);
z-index: 9999; z-index: 9999;
border-radius: 5px; border-radius: 0.4rem;
padding: 5px; padding: 0.4rem;
} }
.contextMenu.bottom:before { .contextMenu.bottom:before {
content: ''; content: '';
position: absolute; position: absolute;
top: 100%; top: 100%;
right: 27px; right: 2rem;
border: 15px solid transparent; border: 1.2rem solid transparent;
border-top: 15px solid var(--box); border-top: 1.2rem solid var(--box);
} }
.contextMenu.top:before { .contextMenu.top:before {
content: ''; content: '';
position: absolute; position: absolute;
top: -30px; top: -2.3rem;
right: 27px; right: 2rem;
border: 15px solid transparent; border: 1.5rem solid transparent;
border-bottom: 15px solid var(--box); border-bottom: 1.5rem solid var(--box);
} }
.contextMenu .btn-flat { .contextMenu .btn-flat {
text-transform: none !important; text-transform: none !important;
@@ -501,26 +502,26 @@ iframe,
} }
.toot img:not(.emoji-img) { .toot img:not(.emoji-img) {
max-width: 100%; max-width: 100%;
max-height: 300px; max-height: 23rem;
} }
.cbadge { .cbadge {
display: inline-block; display: inline-block;
min-width: 10px; min-width: 0.76rem;
max-width: 100px; max-width: 7.7rem;
padding: 3px 7px; padding: 0.23rem 0.5rem;
font-size: 0.8em; font-size: 0.8em;
margin-right: 5px; margin-right: 0.4rem;
line-height: 1; line-height: 1;
color: #fff; color: #fff;
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
vertical-align: middle; vertical-align: middle;
background-color: #777; background-color: #777;
border-radius: 10px; border-radius: 0.75rem;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
height: calc(0.8em + 8px); height: calc(0.8em + 0.6rem);
user-select: none; user-select: none;
} }
.cbadge-hover { .cbadge-hover {
@@ -534,10 +535,10 @@ iframe,
p { p {
margin: 0; margin: 0;
margin-bottom: 0px; margin-bottom: 0px;
line-height: 20px; line-height: 1.53rem;
} }
p:not(:last-child) { p:not(:last-child) {
margin-bottom: 10px; margin-bottom: 0.76rem;
} }
.shared { .shared {
background-color: var(--shared); background-color: var(--shared);
@@ -553,14 +554,14 @@ p:not(:last-child) {
background-color: var(--notfbox); background-color: var(--notfbox);
filter: brightness(110%); filter: brightness(110%);
position: relative; position: relative;
margin-right: 10px; margin-right: 0.7rem;
width: 100%; width: 100%;
min-height: 60px; min-height: 4.6rem;
z-index: 500; z-index: 500;
padding: 5px; padding: 0.4rem;
display: grid; display: grid;
grid-template-columns: 40px 65px 1fr 24px; grid-template-columns: 3rem 5rem 1fr 1.8rem;
grid-template-rows: 30px 30px; grid-template-rows: 2.3rem 2.3rem;
grid-template-areas: 'notice notice_name notice_name a2' 'notice a1 sta a3' 'notf-box notf-box notf-box notf-box'; grid-template-areas: 'notice notice_name notice_name a2' 'notice a1 sta a3' 'notf-box notf-box notf-box notf-box';
} }
.emp { .emp {
@@ -604,8 +605,8 @@ p:not(:last-child) {
} }
#tools { #tools {
position: fixed; position: fixed;
top: 10px; top: 0.76rem;
right: 10px; right: 0.76rem;
float: right; float: right;
} }
.setting { .setting {
@@ -618,14 +619,14 @@ p:not(:last-child) {
} }
.notf-box { .notf-box {
position: fixed; position: fixed;
right: 70px; right: 5.4rem;
background-color: var(--box); background-color: var(--box);
border: thin solid gray; border: thin solid gray;
z-index: 501; z-index: 501;
width: 400px; width: 30rem;
padding: 5px; padding: 0.4rem;
min-height: 100px; min-height: 7.7rem;
max-height: 500px; max-height: 38.4rem;
} }
.column-hide { .column-hide {
display: none; display: none;
@@ -633,17 +634,21 @@ p:not(:last-child) {
height: 0; height: 0;
} }
.prof-img { .prof-img {
border-radius: 3px; border-radius: 0.23rem;
width: 3rem;
}
.prof-img-sml {
width: 1.5rem;
} }
.notf-icon { .notf-icon {
position: relative; position: relative;
top: -20px; top: -1.53rem;
width: 20px; width: 1.5rem;
left: 20px; left: 1.5rem;
} }
.notf-indv-box { .notf-indv-box {
width: 100%; width: 100%;
max-height: 400px; max-height: 30.7rem;
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;
border: thin solid gray; border: thin solid gray;
@@ -676,44 +681,44 @@ p:not(:last-child) {
.vote { .vote {
width: 100%; width: 100%;
border: 1px solid; border: 1px solid;
margin-top: 3px; margin-top: 0.23rem;
padding: 1px; padding: 1px;
border-radius: 3px; border-radius: 0.23rem;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
} }
.fa-2x > .emoji-img { .fa-2x > .emoji-img {
width: 36px !important; width: 2.3rem !important;
height: 36px !important; height: 2.3rem !important;
} }
.fa-3x > .emoji-img { .fa-3x > .emoji-img {
width: 54px !important; width: 4.15rem !important;
height: 54px !important; height: 4.15rem !important;
} }
.fa-4x > .emoji-img { .fa-4x > .emoji-img {
width: 72px !important; width: 4.6rem !important;
height: 72px !important; height: 4.6rem !important;
} }
.fa-5x > .emoji-img { .fa-5x > .emoji-img {
width: 90px !important; width: 6.9rem !important;
height: 90px !important; height: 6.9rem !important;
} }
#lists-user { #lists-user {
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;
max-height: 200px; max-height: 15.4rem;
} }
.votebtn { .votebtn {
border: 1px solid; border: 1px solid;
color: var(--bg); color: var(--bg);
background-color: var(--beforehover); background-color: var(--beforehover);
cursor: pointer; cursor: pointer;
width: 50px; width: 3.8rem;
padding: 2px; height: 1.7rem;
display: inline-block; display: inline-block;
text-align: center; text-align: center;
margin-top: 5px; margin-top: 0.38rem;
border-radius: 10px; border-radius: 0.75rem;
transition-duration: 0.5s; transition-duration: 0.5s;
} }
.votebtn:hover { .votebtn:hover {
@@ -722,8 +727,8 @@ p:not(:last-child) {
.leadPoll { .leadPoll {
position: absolute; position: absolute;
background-color: var(--box); background-color: var(--box);
height: 20px; height: 1.5rem;
border-radius: 3px; border-radius: 0.23rem;
} }
.lpAnime { .lpAnime {
animation-duration: 1s; animation-duration: 1s;
@@ -740,7 +745,7 @@ p:not(:last-child) {
width: 1.2rem !important; width: 1.2rem !important;
position: relative; position: relative;
top: -1px; top: -1px;
margin-left: 5px !important; margin-left: 0.38rem !important;
} }
.jump { .jump {
display: inline-block; display: inline-block;
@@ -765,6 +770,9 @@ p:not(:last-child) {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.fav_ct, .rt_ct, .rep_ct {
font-size: 1.1rem;
}
.shared.selectedToot { .shared.selectedToot {
background-color: var(--selectedWithShare); background-color: var(--selectedWithShare);
} }
@@ -778,18 +786,18 @@ audio {
white-space: normal; white-space: normal;
} }
.cw_btn { .cw_btn {
margin: 3px; margin: 0.23rem;
background-color: var(--emphasized); background-color: var(--emphasized);
color: var(--color); color: var(--color);
padding-left: 3px; padding-left: 0.23rem;
padding-right: 3px; padding-right: 0.23rem;
border-radius: 3px; border-radius: 0.23rem;
border: 1px solid var(--color); border: 1px solid var(--color);
user-select: none; user-select: none;
} }
.vis-data { .vis-data {
font-size: 1rem !important; font-size: 1rem !important;
margin: 5px; margin: 0.4rem;
user-select: none; user-select: none;
} }
@keyframes jump { @keyframes jump {
@@ -863,29 +871,29 @@ audio {
display: none !important; display: none !important;
} }
.announcement { .announcement {
padding: 5px; padding: 0.38rem;
border-bottom: 1px solid; border-bottom: 1px solid;
} }
.announReaction { .announReaction {
width: 35px; width: 2.7rem;
height: 1.7rem; height: 1.7rem;
font-size: 1.1rem; font-size: 1.1rem;
margin: 3px; margin: 0.23rem;
cursor: pointer; cursor: pointer;
border: solid 1px; border: solid 1px;
padding-left: 2px; padding-left: 0.15rem;
background-color: var(--notfbox); background-color: var(--notfbox);
border-radius: 2px; border-radius: 0.15rem;
} }
.announReaction img { .announReaction img {
position: relative; position: relative;
top: 3px; top: 0.23rem;
} }
.announReaction.reactioned { .announReaction.reactioned {
background-color: var(--emphasized); background-color: var(--emphasized);
} }
.announReaction.add { .announReaction.add {
width: 19px; width: 1.46rem;
} }
.reactionsPack { .reactionsPack {
display: flex; display: flex;

View File

@@ -16,27 +16,27 @@
} }
#his-prof { #his-prof {
float: left; float: left;
width: 100px; width: 7.7rem;
margin-right: 5px; margin-right: 0.4rem;
} }
.his-float { .his-float {
overflow-y: scroll; overflow-y: scroll;
padding: 5px; padding: 0.4rem;
} }
#his-float-data { #his-float-data {
height: 100%; height: 100%;
overflow-y: hidden; overflow-y: hidden;
} }
#his-leftside { #his-leftside {
width: 500px; width: 38.4rem;
} }
#his-float-timeline { #his-float-timeline {
max-width: 775px; max-width: 59.6rem;
height: 100%; height: 100%;
overflow-y: hidden; overflow-y: hidden;
} }
#his-basic-prof { #his-basic-prof {
min-height: 130px; min-height: 10rem;
} }
#his-field { #his-field {
vertical-align: baseline; vertical-align: baseline;
@@ -51,14 +51,14 @@
padding: 0; padding: 0;
background-color: #757575; background-color: #757575;
text-align: center; text-align: center;
padding: 5px; padding: 0.4rem;
margin-bottom: 1px; margin-bottom: 1px;
width: 30%; width: 30%;
} }
.his-field-content { .his-field-content {
height: 1.5rem; height: 1.5rem;
padding: 0; padding: 0;
padding-left: 5px; padding-left: 0.4rem;
} }
.his-var-content a span.ellipsis:after { .his-var-content a span.ellipsis:after {
content: "..."; content: "...";
@@ -72,13 +72,13 @@
display: inline !important; display: inline !important;
} }
#his-data-show { #his-data-show {
margin: 20px; margin: 1.5rem;
margin-left: 50px; margin-left: 3.8rem;
margin-right: 50px; margin-right: 3.8rem;
background-color: var(--his-data); background-color: var(--his-data);
height: calc(100% - 20px); height: calc(100% - 1.5rem);
margin-bottom: 0; margin-bottom: 0;
padding: 5px; padding: 0.4rem;
} }
#his-data-wrap { #his-data-wrap {
display: flex; display: flex;
@@ -86,39 +86,39 @@
.his-var-content { .his-var-content {
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;
height: calc(100% - 45px); height: calc(100% - 3.4rem);
} }
#my-data-nav .btn { #my-data-nav .btn {
width: 140px; width: 10.7rem;
} }
.active-back { .active-back {
background-color: var(--active); background-color: var(--active);
} }
#his-name .emojione, #his-name .emojione,
#his-name .emoji-img { #his-name .emoji-img {
width: 20px; width: 1.538rem;
} }
#his-plus-action .btn { #his-plus-action .btn {
padding-right: 5px; padding-right: 0.4rem;
padding-left: 5px; padding-left: 0.4rem;
} }
.tabs { .tabs {
display: flex; display: flex;
} }
.tabs .tab a { .tabs .tab a {
padding: 8px 12px; padding: 0.6rem 0.9rem;
} }
#his-des { #his-des {
max-height: 250px; max-height: 17.7rem;
overflow-y: scroll; overflow-y: scroll;
} }
#his-sign-action { #his-sign-action {
border: 1px solid; border: 1px solid;
border-radius: 5px; border-radius: 0.4rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding-left: 10px; padding-left: 0.75rem;
padding-right: 10px; padding-right: 0.75rem;
flex-wrap: wrap; flex-wrap: wrap;
} }
#his-sign-action .btn { #his-sign-action .btn {
@@ -129,7 +129,7 @@
cursor: pointer; cursor: pointer;
} }
#his-table{ #his-table{
max-height: 150px; max-height: 11.538rem;
overflow-y: scroll; overflow-y: scroll;
} }
#his-float-blocked { #his-float-blocked {

View File

@@ -1,4 +1,5 @@
//このソフトについて //このソフトについて
function about() { function about() {
postMessage(["sendSinmpleIpc", "about"], "*") postMessage(["sendSinmpleIpc", "about"], "*")
} }
document.getElementById('onClickAbout').addEventListener('click', about)

38
app/js/common/api.js Normal file
View File

@@ -0,0 +1,38 @@
async function getApi(start, at) {
let json = {}
let response = null
response = await fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': `Bearer ${at}`
}
})
if (!response.ok) {
response.text().then(function (text) {
setLog(response.url, response.status, text)
})
}
json = await response.json()
return json
}
async function postApi(url, body, at, ideKey) {
let json = {}
let response = null
response = await fetch(url, {
method: 'POST',
headers: {
'content-type': 'application/json',
'Authorization': `Bearer ${at}`,
'Idempotency-Key': ideKey
},
body: JSON.stringify(body)
})
if (!response.ok) {
response.text().then(function (text) {
setLog(response.url, response.status, text)
})
}
json = await response.json()
return json
}

View File

@@ -1,4 +1,4 @@
var digitCharacters = [ const digitCharacters = [
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
@@ -10,16 +10,16 @@ var digitCharacters = [
"|", "}", "~", "|", "}", "~",
]; ];
function decode83(str) { function decode83(str) {
var value = 0; let value = 0;
for (var i = 0; i < str.length; i++) { for (let i = 0; i < str.length; i++) {
var c = str[i]; const c = str[i];
var digit = digitCharacters.indexOf(c); const digit = digitCharacters.indexOf(c);
value = value * 83 + digit; value = value * 83 + digit;
} }
return value; return value;
} }
function linearTosRGB(value) { function linearTosRGB(value) {
var v = Math.max(0, Math.min(1, value)); const v = Math.max(0, Math.min(1, value));
if (v <= 0.0031308) { if (v <= 0.0031308) {
return Math.round(v * 12.92 * 255 + 0.5); return Math.round(v * 12.92 * 255 + 0.5);
} }
@@ -28,7 +28,7 @@ function linearTosRGB(value) {
} }
} }
function sRGBToLinear(value) { function sRGBToLinear(value) {
var v = value / 255; const v = value / 255;
if (v <= 0.04045) { if (v <= 0.04045) {
return v / 12.92; return v / 12.92;
} }
@@ -37,18 +37,18 @@ function sRGBToLinear(value) {
} }
} }
function decodeDC(value) { function decodeDC(value) {
var intR = value >> 16; const intR = value >> 16;
var intG = (value >> 8) & 255; const intG = (value >> 8) & 255;
var intB = value & 255; const intB = value & 255;
return [sRGBToLinear(intR), sRGBToLinear(intG), sRGBToLinear(intB)]; return [sRGBToLinear(intR), sRGBToLinear(intG), sRGBToLinear(intB)];
}; };
function sign(n) { return (n < 0 ? -1 : 1); } function sign(n) { return (n < 0 ? -1 : 1); }
function signPow(val, exp) { return sign(val) * Math.pow(Math.abs(val), exp); } function signPow(val, exp) { return sign(val) * Math.pow(Math.abs(val), exp); }
function decodeDC2(value, maximumValue) { function decodeDC2(value, maximumValue) {
var quantR = Math.floor(value / (19 * 19)); const quantR = Math.floor(value / (19 * 19));
var quantG = Math.floor(value / 19) % 19; const quantG = Math.floor(value / 19) % 19;
var quantB = value % 19; const quantB = value % 19;
var rgb = [ const rgb = [
signPow((quantR - 9) / 9, 2.0) * maximumValue, signPow((quantR - 9) / 9, 2.0) * maximumValue,
signPow((quantG - 9) / 9, 2.0) * maximumValue, signPow((quantG - 9) / 9, 2.0) * maximumValue,
signPow((quantB - 9) / 9, 2.0) * maximumValue, signPow((quantB - 9) / 9, 2.0) * maximumValue,
@@ -61,45 +61,45 @@ function decodeblur(blurhash, width, height, punch) {
console.error('too short blurhash'); console.error('too short blurhash');
return null; return null;
} }
var sizeFlag = decode83(blurhash[0]); const sizeFlag = decode83(blurhash[0]);
var numY = Math.floor(sizeFlag / 9) + 1; const numY = Math.floor(sizeFlag / 9) + 1;
var numX = (sizeFlag % 9) + 1; const numX = (sizeFlag % 9) + 1;
var quantisedMaximumValue = decode83(blurhash[1]); const quantisedMaximumValue = decode83(blurhash[1]);
var maximumValue = (quantisedMaximumValue + 1) / 166; const maximumValue = (quantisedMaximumValue + 1) / 166;
if (blurhash.length !== 4 + 2 * numX * numY) { if (blurhash.length !== 4 + 2 * numX * numY) {
console.error('blurhash length mismatch', blurhash.length, 4 + 2 * numX * numY); console.error('blurhash length mismatch', blurhash.length, 4 + 2 * numX * numY);
return null; return null;
} }
var colors = new Array(numX * numY); let colors = new Array(numX * numY);
for (var i = 0; i < colors.length; i++) { for (let i = 0; i < colors.length; i++) {
if (i === 0) { if (i === 0) {
var value = decode83(blurhash.substring(2, 6)); const value = decode83(blurhash.substring(2, 6));
colors[i] = decodeDC(value); colors[i] = decodeDC(value);
} }
else { else {
var value = decode83(blurhash.substring(4 + i * 2, 6 + i * 2)); const value = decode83(blurhash.substring(4 + i * 2, 6 + i * 2));
colors[i] = decodeDC2(value, maximumValue * punch); colors[i] = decodeDC2(value, maximumValue * punch);
} }
} }
var bytesPerRow = width * 4; const bytesPerRow = width * 4;
var pixels = new Uint8ClampedArray(bytesPerRow * height); let pixels = new Uint8ClampedArray(bytesPerRow * height);
for (var y = 0; y < height; y++) { for (var y = 0; y < height; y++) {
for (var x = 0; x < width; x++) { for (var x = 0; x < width; x++) {
var r = 0; var r = 0;
var g = 0; var g = 0;
var b = 0; var b = 0;
for (var j = 0; j < numY; j++) { for (let j = 0; j < numY; j++) {
for (var i = 0; i < numX; i++) { for (let i = 0; i < numX; i++) {
var basis = Math.cos(Math.PI * x * i / width) * Math.cos(Math.PI * y * j / height); let basis = Math.cos(Math.PI * x * i / width) * Math.cos(Math.PI * y * j / height);
var color = colors[i + j * numX]; let color = colors[i + j * numX];
r += color[0] * basis; r += color[0] * basis;
g += color[1] * basis; g += color[1] * basis;
b += color[2] * basis; b += color[2] * basis;
} }
} }
var intR = linearTosRGB(r); const intR = linearTosRGB(r);
var intG = linearTosRGB(g); const intG = linearTosRGB(g);
var intB = linearTosRGB(b); const intB = linearTosRGB(b);
pixels[4 * x + 0 + y * bytesPerRow] = intR; pixels[4 * x + 0 + y * bytesPerRow] = intR;
pixels[4 * x + 1 + y * bytesPerRow] = intG; pixels[4 * x + 1 + y * bytesPerRow] = intG;
pixels[4 * x + 2 + y * bytesPerRow] = intB; pixels[4 * x + 2 + y * bytesPerRow] = intB;
@@ -109,9 +109,9 @@ function decodeblur(blurhash, width, height, punch) {
return pixels; return pixels;
} }
function parseBlur(blur) { function parseBlur(blur) {
var canvas = document.getElementById('canvas'); const canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d'); const ctx = canvas.getContext('2d');
var pixels = decodeblur(blur, 32, 32) const pixels = decodeblur(blur, 32, 32)
const imageData = new ImageData(pixels, 32, 32); const imageData = new ImageData(pixels, 32, 32);
ctx.putImageData(imageData, 0, 0); ctx.putImageData(imageData, 0, 0);

View File

@@ -1,26 +1,19 @@
selectedColumn = 0 let selectedColumn = 0
selectedToot = 0 let selectedToot = 0
$(function($) { $(function ($) {
//キーボードショートカット //キーボードショートカット
$(window).keydown(function(e) { $(window).keydown(function (e) {
var hasFocus = $('input').is(':focus') const hasFocus = isFocused('input')
var hasFocus2 = $('textarea').is(':focus') const hasFocus2 = isFocused('textarea')
if (document.getElementById('webview')) { const postBox = document.querySelector('#textarea')
if ($('#webviewsel:checked').val()) { let wv = false
var wv = false
} else {
var wv = true
}
} else {
var wv = true
}
//Enter //Enter
if (e.keyCode === 13) { if (e.keyCode === 13) {
if ($('#src').is(':focus')) { if (isFocused('#src')) {
src() src()
return false return false
} }
if ($('#list-add').is(':focus')) { if (isFocused('#list-add')) {
makeNewList() makeNewList()
return false return false
} }
@@ -92,7 +85,7 @@ $(function($) {
} }
//X:開閉 //X:開閉
if (e.keyCode === 88) { if (e.keyCode === 88) {
if (!$('#post-box').hasClass('appear')) { if (!document.querySelector('#post-box').classList.contains('appear')) {
show() show()
$('textarea').focus() $('textarea').focus()
} else { } else {
@@ -102,10 +95,10 @@ $(function($) {
} }
//N:新トゥート //N:新トゥート
if (e.keyCode === 78) { if (e.keyCode === 78) {
if (!$('#post-box').hasClass('appear')) { if (!document.querySelector('#post-box').classList.contains('appear')) {
show() show()
} }
$('textarea').focus() postBox.focus()
return false return false
} }
//Ctrl+E:全ての通知未読を既読にする //Ctrl+E:全ての通知未読を既読にする
@@ -153,7 +146,7 @@ $(function($) {
//数字:TL //数字:TL
if (event.metaKey || event.ctrlKey) { if (event.metaKey || event.ctrlKey) {
if (e.keyCode >= 49 && e.keyCode <= 57) { if (e.keyCode >= 49 && e.keyCode <= 57) {
var kz = e.keyCode - 49 const kz = e.keyCode - 49
goColumn(kz) goColumn(kz)
return false return false
} }
@@ -161,7 +154,7 @@ $(function($) {
//矢印:選択 //矢印:選択
if (e.code == 'ArrowLeft') { if (e.code == 'ArrowLeft') {
//left //left
if ($('#imagemodal').hasClass('open')) { if (document.querySelector('#imagemodal').classList.contains('open')) {
imgCont('prev') imgCont('prev')
return false return false
} }
@@ -172,7 +165,7 @@ $(function($) {
return false return false
} else if (e.code == 'ArrowUp') { } else if (e.code == 'ArrowUp') {
//up //up
if ($('#imagemodal').hasClass('open')) { if (document.querySelector('#imagemodal').classList.contains('open')) {
return false return false
} }
if (selectedToot > 0) { if (selectedToot > 0) {
@@ -182,7 +175,7 @@ $(function($) {
return false return false
} else if (e.code == 'ArrowRight') { } else if (e.code == 'ArrowRight') {
//right //right
if ($('#imagemodal').hasClass('open')) { if (document.querySelector('#imagemodal').classList.contains('open')) {
imgCont('next') imgCont('next')
return false return false
} }
@@ -193,7 +186,7 @@ $(function($) {
return false return false
} else if (e.code == 'ArrowDown') { } else if (e.code == 'ArrowDown') {
//down //down
if ($('#imagemodal').hasClass('open')) { if (document.querySelector('#imagemodal').classList.contains('open')) {
return false return false
} }
selectedToot++ selectedToot++
@@ -210,24 +203,21 @@ $(function($) {
} }
} }
//選択時 //選択時
const selectedId = document.querySelector('.selectedToot').getAttribute('unique-id')
const selectedAcctIds = document.querySelector(`#timeline_${selectedColumn}`).getAttribute('data-acct')
if (e.keyCode == 70) { if (e.keyCode == 70) {
var id = $('.selectedToot').attr('unique-id') fav(selectedId, selectedAcctIds, false)
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct')
fav(id, acct_id, false)
return false return false
} }
if (e.keyCode == 66) { if (e.keyCode == 66) {
var id = $('.selectedToot').attr('unique-id') rt(selectedId, selectedAcctIds, false)
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct')
rt(id, acct_id, false)
return false return false
} }
if (e.keyCode == 82) { if (e.keyCode == 82) {
var id = $('.selectedToot').attr('unique-id') const target = document.querySelector('.selectedToot .rep-btn')
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct') const ats_cm = target.getAttribute('data-men')
var ats_cm = $('.selectedToot .rep-btn').attr('data-men') const mode = target.getAttribute('data-visen')
var mode = $('.selectedToot .rep-btn').attr('data-visen') re(selectedId, ats_cm, selectedAcctIds, mode)
re(id, ats_cm, acct_id, mode)
return false return false
} }
} }
@@ -237,9 +227,10 @@ $(function($) {
//C+S+(No):ワンクリ //C+S+(No):ワンクリ
if ((event.metaKey || event.ctrlKey) && event.shiftKey) { if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
if (e.keyCode >= 49 && e.keyCode <= 51) { if (e.keyCode >= 49 && e.keyCode <= 51) {
var no = e.keyCode - 48 const no = e.keyCode - 48
if (localStorage.getItem('oks-' + no)) { const oks = localStorage.getItem('oks-' + no)
$('#textarea').val($('#textarea').val() + localStorage.getItem('oks-' + no)) if (oks) {
postBox.value = postBox.value + oks
} }
return false return false
} }
@@ -248,28 +239,29 @@ $(function($) {
} }
}) })
//クリアボタン //クリアボタン
$('#clear').click(function() { document.getElementById('clear').addEventListener('click', clear)
clear()
})
}) })
//選択する //選択する
function tootSelector(column, toot) { function tootSelector(column, toot) {
$('.cvo').removeClass('selectedToot') const selectedToot = document.querySelector('.selectedToot')
$('#timeline_' + column + ' .cvo') let rect = {top: 0}
.eq(toot) if (selectedToot) {
.addClass('selectedToot') selectedToot.classList.remove('selectedToot')
var scr = $('.tl-box[tlid=' + column + ']').scrollTop() rect = selectedToot.getBoundingClientRect()
var elem = $('.selectedToot').offset().top }
var top = elem - $('.tl-box').height() + scr document.querySelectorAll(`#timeline_${column} .cvo`)[toot].classList.add('selectedToot')
const scr = document.querySelector(`#tlBox${column}`).scrollTop
const elem = rect.top + document.body.scrollTop
let top = elem - getHeight('.tl-box') + scr
if (top > 0) { if (top > 0) {
top = top + $('.selectedToot').height() top = top + getHeight('.selectedToot')
if (top > scr) { if (top > scr) {
$('.tl-box[tlid=' + column + ']').animate({ scrollTop: top }) $(`#tlBox${column}`).animate({ scrollTop: top })
} }
} else if (elem < 0) { } else if (elem < 0) {
var to = scr + elem - $('.selectedToot').height() const to = scr + elem - getHeight('.selectedToot')
if (to < scr) { if (to < scr) {
$('.tl-box[tlid=' + column + ']').animate({ scrollTop: to }) $(`#tlBox${column}`).animate({ scrollTop: to })
} }
} }
} }

View File

@@ -1,7 +1,8 @@
//モーダル・ドロップダウンの各種設定 //モーダル・ドロップダウンの各種設定
$(document).ready(function () { $(document).ready(function () {
// the "href" attribute of the modal trigger must specify the modal ID that wants to be triggered // the "href" attribute of the modal trigger must specify the modal ID that wants to be triggered
$('.modal').modal({ const modals = document.querySelectorAll('.modal')
M.Modal.init(modals, {
inDuration: 300, inDuration: 300,
outDuration: 225, outDuration: 225,
constrainWidth: false, // Does not change width of dropdown to that of the activator constrainWidth: false, // Does not change width of dropdown to that of the activator
@@ -10,8 +11,9 @@ $(document).ready(function () {
belowOrigin: false, // Displays dropdown below the button belowOrigin: false, // Displays dropdown below the button
alignment: 'left', // Displays dropdown with edge aligned to the left of button alignment: 'left', // Displays dropdown with edge aligned to the left of button
stopPropagation: false stopPropagation: false
}); })
$('.dropdown-trigger').dropdown({ const dropdown = document.querySelectorAll('.modal')
M.Dropdown.init(dropdown, {
inDuration: 300, inDuration: 300,
outDuration: 225, outDuration: 225,
constrainWidth: false, // Does not change width of dropdown to that of the activator constrainWidth: false, // Does not change width of dropdown to that of the activator
@@ -20,10 +22,10 @@ $(document).ready(function () {
belowOrigin: false, // Displays dropdown below the button belowOrigin: false, // Displays dropdown below the button
alignment: 'left', // Displays dropdown with edge aligned to the left of button alignment: 'left', // Displays dropdown with edge aligned to the left of button
stopPropagation: false // Stops event propagation stopPropagation: false // Stops event propagation
} })
); M.Collapsible.init(document.querySelectorAll('.collapsible'));
$('.collapsible').collapsible(); const videoModal = document.querySelectorAll('#videomodal')
$('#videomodal').modal({ M.Modal.init(videoModal, {
onCloseEnd: stopVideo onCloseEnd: stopVideo
}); })
}); })

View File

@@ -1,31 +1,31 @@
var sha256 = function sha256(ascii) { const sha256 = function sha256(ascii) {
function rightRotate(value, amount) { function rightRotate(value, amount) {
return (value >>> amount) | (value << (32 - amount)); return (value >>> amount) | (value << (32 - amount));
}; };
var mathPow = Math.pow; const mathPow = Math.pow;
var maxWord = mathPow(2, 32); const maxWord = mathPow(2, 32);
var lengthProperty = 'length' const lengthProperty = 'length'
var i, j; // Used as a counter across the whole file let i, j; // Used as a counter across the whole file
var result = '' let result = ''
var words = []; let words = [];
var asciiBitLength = ascii[lengthProperty] * 8; const asciiBitLength = ascii[lengthProperty] * 8;
//* caching results is optional - remove/add slash from front of this line to toggle //* caching results is optional - remove/add slash from front of this line to toggle
// Initial hash value: first 32 bits of the fractional parts of the square roots of the first 8 primes // Initial hash value: first 32 bits of the fractional parts of the square roots of the first 8 primes
// (we actually calculate the first 64, but extra values are just ignored) // (we actually calculate the first 64, but extra values are just ignored)
var hash = sha256.h = sha256.h || []; let hash = sha256.h = sha256.h || [];
// Round constants: first 32 bits of the fractional parts of the cube roots of the first 64 primes // Round constants: first 32 bits of the fractional parts of the cube roots of the first 64 primes
var k = sha256.k = sha256.k || []; let k = sha256.k = sha256.k || [];
var primeCounter = k[lengthProperty]; let primeCounter = k[lengthProperty];
/*/ /*/
var hash = [], k = []; var hash = [], k = [];
var primeCounter = 0; var primeCounter = 0;
//*/ //*/
var isComposite = {}; let isComposite = {};
for (var candidate = 2; primeCounter < 64; candidate++) { for (let candidate = 2; primeCounter < 64; candidate++) {
if (!isComposite[candidate]) { if (!isComposite[candidate]) {
for (i = 0; i < 313; i += candidate) { for (i = 0; i < 313; i += candidate) {
isComposite[i] = candidate; isComposite[i] = candidate;
@@ -47,21 +47,21 @@ var sha256 = function sha256(ascii) {
// process each chunk // process each chunk
for (j = 0; j < words[lengthProperty];) { for (j = 0; j < words[lengthProperty];) {
var w = words.slice(j, j += 16); // The message is expanded into 64 words as part of the iteration let w = words.slice(j, j += 16); // The message is expanded into 64 words as part of the iteration
var oldHash = hash; const oldHash = hash;
// This is now the undefinedworking hash", often labelled as variables a...g // This is now the undefinedworking hash", often labelled as variables a...g
// (we have to truncate as well, otherwise extra entries at the end accumulate // (we have to truncate as well, otherwise extra entries at the end accumulate
hash = hash.slice(0, 8); hash = hash.slice(0, 8);
for (i = 0; i < 64; i++) { for (i = 0; i < 64; i++) {
var i2 = i + j; const i2 = i + j;
// Expand the message into 64 words // Expand the message into 64 words
// Used below if // Used below if
var w15 = w[i - 15], w2 = w[i - 2]; const w15 = w[i - 15], w2 = w[i - 2];
// Iterate // Iterate
var a = hash[0], e = hash[4]; const a = hash[0], e = hash[4];
var temp1 = hash[7] const temp1 = hash[7]
+ (rightRotate(e, 6) ^ rightRotate(e, 11) ^ rightRotate(e, 25)) // S1 + (rightRotate(e, 6) ^ rightRotate(e, 11) ^ rightRotate(e, 25)) // S1
+ ((e & hash[5]) ^ ((~e) & hash[6])) // ch + ((e & hash[5]) ^ ((~e) & hash[6])) // ch
+ k[i] + k[i]
@@ -74,7 +74,7 @@ var sha256 = function sha256(ascii) {
) | 0 ) | 0
); );
// This is only used once, so *could* be moved below, but it only saves 4 bytes and makes things unreadble // This is only used once, so *could* be moved below, but it only saves 4 bytes and makes things unreadble
var temp2 = (rightRotate(a, 2) ^ rightRotate(a, 13) ^ rightRotate(a, 22)) // S0 const temp2 = (rightRotate(a, 2) ^ rightRotate(a, 13) ^ rightRotate(a, 22)) // S0
+ ((a & hash[1]) ^ (a & hash[2]) ^ (hash[1] & hash[2])); // maj + ((a & hash[1]) ^ (a & hash[2]) ^ (hash[1] & hash[2])); // maj
hash = [(temp1 + temp2) | 0].concat(hash); // We don't bother trimming off the extra ones, they're harmless as long as we're truncating when we do the slice() hash = [(temp1 + temp2) | 0].concat(hash); // We don't bother trimming off the extra ones, they're harmless as long as we're truncating when we do the slice()
@@ -88,7 +88,7 @@ var sha256 = function sha256(ascii) {
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
for (j = 3; j + 1; j--) { for (j = 3; j + 1; j--) {
var b = (hash[i] >> (j * 8)) & 255; const b = (hash[i] >> (j * 8)) & 255;
result += ((b < 16) ? 0 : '') + b.toString(16); result += ((b < 16) ? 0 : '') + b.toString(16);
} }
} }

View File

@@ -36,7 +36,7 @@
return inWords($.timeago.datetime(timestamp)); return inWords($.timeago.datetime(timestamp));
} }
}; };
var $t = $.timeago; const $t = $.timeago;
$.extend($.timeago, { $.extend($.timeago, {
settings: { settings: {
refreshMillis: 60000, refreshMillis: 60000,
@@ -72,9 +72,9 @@
throw 'timeago allowPast and allowFuture settings can not both be set to false.'; throw 'timeago allowPast and allowFuture settings can not both be set to false.';
} }
var $l = this.settings.strings; const $l = this.settings.strings;
var prefix = $l.prefixAgo; let prefix = $l.prefixAgo;
var suffix = $l.suffixAgo; let suffix = $l.suffixAgo;
if (this.settings.allowFuture) { if (this.settings.allowFuture) {
if (distanceMillis < 0) { if (distanceMillis < 0) {
prefix = $l.prefixFromNow; prefix = $l.prefixFromNow;
@@ -86,19 +86,19 @@
return this.settings.strings.inPast; return this.settings.strings.inPast;
} }
var seconds = Math.abs(distanceMillis) / 1000; const seconds = Math.abs(distanceMillis) / 1000;
var minutes = seconds / 60; const minutes = seconds / 60;
var hours = minutes / 60; const hours = minutes / 60;
var days = hours / 24; const days = hours / 24;
var years = days / 365; const years = days / 365;
function substitute(stringOrFunction, number) { function substitute(stringOrFunction, number) {
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction; const string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;
var value = ($l.numbers && $l.numbers[number]) || number; const value = ($l.numbers && $l.numbers[number]) || number;
return string.replace(/%d/i, value); return string.replace(/%d/i, value);
} }
var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) || const words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
seconds < 90 && substitute($l.minute, 1) || seconds < 90 && substitute($l.minute, 1) ||
minutes < 45 && substitute($l.minutes, Math.round(minutes)) || minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
minutes < 90 && substitute($l.hour, 1) || minutes < 90 && substitute($l.hour, 1) ||
@@ -110,13 +110,13 @@
years < 1.5 && substitute($l.year, 1) || years < 1.5 && substitute($l.year, 1) ||
substitute($l.years, Math.round(years)); substitute($l.years, Math.round(years));
var separator = $l.wordSeparator || ""; const separator = $l.wordSeparator || "";
if ($l.wordSeparator === undefined) { separator = " "; } if ($l.wordSeparator === undefined) { separator = " "; }
return $.trim([prefix, words, suffix].join(separator)); return $.trim([prefix, words, suffix].join(separator));
}, },
parse: function (iso8601) { parse: function (iso8601) {
var s = $.trim(iso8601); let s = $.trim(iso8601);
s = s.replace(/\.\d+/, ""); // remove milliseconds s = s.replace(/\.\d+/, ""); // remove milliseconds
s = s.replace(/-/, "/").replace(/-/, "/"); s = s.replace(/-/, "/").replace(/-/, "/");
s = s.replace(/T/, " ").replace(/Z/, " UTC"); s = s.replace(/T/, " ").replace(/Z/, " UTC");
@@ -125,7 +125,7 @@
return new Date(s); return new Date(s);
}, },
datetime: function (elem) { datetime: function (elem) {
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title"); const iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title");
return $t.parse(iso8601); return $t.parse(iso8601);
}, },
isTime: function (elem) { isTime: function (elem) {
@@ -137,18 +137,18 @@
// functions that can be called via $(el).timeago('action') // functions that can be called via $(el).timeago('action')
// init is default when no action is given // init is default when no action is given
// functions are called with context of a single element // functions are called with context of a single element
var functions = { const functions = {
init: function () { init: function () {
functions.dispose.call(this); functions.dispose.call(this);
var refresh_el = $.proxy(refresh, this); const refresh_el = $.proxy(refresh, this);
refresh_el(); refresh_el();
var $s = $t.settings; const $s = $t.settings;
if ($s.refreshMillis > 0) { if ($s.refreshMillis > 0) {
this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis); this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);
} }
}, },
update: function (timestamp) { update: function (timestamp) {
var date = (timestamp instanceof Date) ? timestamp : $t.parse(timestamp); const date = (timestamp instanceof Date) ? timestamp : $t.parse(timestamp);
$(this).data('timeago', { datetime: date }); $(this).data('timeago', { datetime: date });
if ($t.settings.localeTitle) { if ($t.settings.localeTitle) {
$(this).attr("title", date.toLocaleString()); $(this).attr("title", date.toLocaleString());
@@ -168,7 +168,7 @@
}; };
$.fn.timeago = function (action, options) { $.fn.timeago = function (action, options) {
var fn = action ? functions[action] : functions.init; const fn = action ? functions[action] : functions.init;
if (!fn) { if (!fn) {
throw new Error("Unknown function name '" + action + "' for timeago"); throw new Error("Unknown function name '" + action + "' for timeago");
} }
@@ -180,7 +180,7 @@
}; };
function refresh() { function refresh() {
var $s = $t.settings; const $s = $t.settings;
//check if it's still visible //check if it's still visible
if ($s.autoDispose && !$.contains(document.documentElement, this)) { if ($s.autoDispose && !$.contains(document.documentElement, this)) {
@@ -189,7 +189,7 @@
return this; return this;
} }
var data = prepareData(this); const data = prepareData(this);
if (!isNaN(data.datetime)) { if (!isNaN(data.datetime)) {
if ($s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) { if ($s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
@@ -207,7 +207,7 @@
element = $(element); element = $(element);
if (!element.data("timeago")) { if (!element.data("timeago")) {
element.data("timeago", { datetime: $t.datetime(element) }); element.data("timeago", { datetime: $t.datetime(element) });
var text = $.trim(element.text()); const text = $.trim(element.text());
if ($t.settings.localeTitle) { if ($t.settings.localeTitle) {
element.attr("title", element.data('timeago').datetime.toLocaleString()); element.attr("title", element.data('timeago').datetime.toLocaleString());
} else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) { } else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) {

View File

@@ -1,41 +1,15 @@
//バージョンチェッカー //バージョンチェッカー
function verck(ver, jp) { async function verck(ver) {
console.log('%c Welcome😊 ' + ver, 'color: red;font-size:200%;') console.log('%c Welcome😊 ' + ver, 'color: red;font-size:200%;')
$('body').addClass(localStorage.getItem('platform')) document.querySelector('body').classList.add(localStorage.getItem('platform'))
var date = new Date() const date = new Date()
var showVer = false let showVer = false
if (localStorage.getItem('ver') != ver && localStorage.getItem('winstore')) { if (localStorage.getItem('ver') != ver && localStorage.getItem('winstore')) {
//ちょっと削除とリンク解析の都合上アレ(s)
//対象外のアプデ:storageが20の最初まで"Usamin (18.6.5)"
if (!localStorage.getItem('usamin_18_6_5_flag')) {
localStorage.setItem('usamin_18_6_5_flag', true)
var multi = localStorage.getItem('column')
var obj = JSON.parse(multi)
for (var i = 0; i < obj.length; i++) {
localStorage.removeItem('card_' + i)
}
}
//ちょっと削除とリンク解析の都合上アレ(e)
showVer = true showVer = true
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;') console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
$(document).ready(function() { if (localStorage.getItem('winstore') && !pwa) {
if (localStorage.getItem('winstore') && !pwa) { openRN()
$('#releasenote').modal('open') }
}
verp = ver.replace('(', '')
verp = verp.replace('.', '-')
verp = verp.replace('.', '-')
verp = verp.replace('[', '-')
verp = verp.replace(']', '')
verp = verp.replace(')', '')
verp = verp.replace(' ', '_')
console.log('%c ' + verp, 'color: red;font-size:200%;')
if (lang.language == 'ja') {
$('#release-' + verp).show()
} else {
$('#release-en').show()
}
})
} }
localStorage.setItem('ver', ver) localStorage.setItem('ver', ver)
if (!showVer) { if (!showVer) {
@@ -45,295 +19,224 @@ function verck(ver, jp) {
!localStorage.getItem('showSupportMe') !localStorage.getItem('showSupportMe')
) { ) {
if (date.getMonth() == 11) { if (date.getMonth() == 11) {
var yrs = date.getFullYear() + 1 yrs = date.getFullYear() + 1
var nextmonth = yrs * 100 + 1 nextmonth = yrs * 100 + 1
} else { } else {
var yrs = date.getFullYear() yrs = date.getFullYear()
var nextmonth = yrs * 100 + date.getMonth() + 2 nextmonth = yrs * 100 + date.getMonth() + 2
} }
if (lang.language != 'ja') { if (lang.language != 'ja') {
$('#support-btm-ja').addClass('hide') document.querySelector('#support-btm-ja').classList.add('hide')
$('#support-btm-en').removeClass('hide') document.querySelector('#support-btm-en').classList.remove('hide')
} }
localStorage.setItem('showSupportMe', nextmonth) localStorage.setItem('showSupportMe', nextmonth)
$('#support-btm').removeClass('hide') document.querySelector('#support-btm').classList.remove('hide')
$('#support-btm').animate( document.querySelector('#support-btm').animate([
{ {
bottom: '0' bottom: '-500px'
}, },
{ {
duration: 300 bottom: '0'
} }
) ], 300);
} }
} }
var platform = localStorage.getItem('platform') const platform = localStorage.getItem('platform')
console.log('Your platform:' + platform) console.log('Your platform:' + platform)
if (!localStorage.getItem('winstore') && !pwa) { if (!localStorage.getItem('winstore') && !pwa) {
$('#start').css('display', 'flex') document.querySelector('#start').style.display = 'flex'
} }
let winstore = false
if ( if (
localStorage.getItem('winstore') == 'brewcask' || localStorage.getItem('winstore') == 'brewcask' ||
localStorage.getItem('winstore') == 'snapcraft' || localStorage.getItem('winstore') == 'snapcraft' ||
localStorage.getItem('winstore') == 'winstore' localStorage.getItem('winstore') == 'winstore'
) { ) {
var winstore = true winstore = true
} else { } else {
var winstore = false winstore = false
} }
var l = 5 const l = 5
// 生成する文字列に含める文字セット // 生成する文字列に含める文字セット
var c = 'abcdefghijklmnopqrstuvwxyz0123456789' const c = 'abcdefghijklmnopqrstuvwxyz0123456789'
var cl = c.length const cl = c.length
var r = '' let r = ''
for (var i = 0; i < l; i++) { for (var i = 0; i < l; i++) {
r += c[Math.floor(Math.random() * cl)] r += c[Math.floor(Math.random() * cl)]
} }
var start = 'https://thedesk.top/ver.json' const start = 'https://thedesk.top/ver.json'
fetch(start, { let mess
method: 'GET' try {
}) mess = await getApi(start, null)
.then(function(response) { } catch {
if (!response.ok) { return false
response.text().then(function(text) {
setLog(response.url, response.status, text)
})
}
return response.json()
})
.catch(function(error) {
todo(error)
setLog(start, 'JSON', error)
setLog(start, 'JSON', error)
console.error(error)
})
.then(function(mess) {
console.table(mess)
if (mess) {
//askjp_jp_ua: 2019年10月24日、mstdn.jpによるユーザーエージェントアクセス制限
if (jp && mess.jp_ua && !localStorage.getItem('askjp_jp_ua')) {
localStorage.setItem('askjp_jp_ua', true)
$('#askjp_jp_ua').removeClass('hide')
}
var platform = localStorage.getItem('platform')
if (platform == 'darwin') {
var newest = mess.desk_mac
} else {
var newest = mess.desk
}
if (newest == ver) {
todo(lang.lang_version_usever.replace('{{ver}}', mess.desk))
//betaかWinstoreならアプデチェックしない
} else if (ver.indexOf('beta') != -1 || winstore) {
} else {
localStorage.removeItem('instance')
if (localStorage.getItem('new-ver-skip')) {
if (localStorage.getItem('next-ver') != newest) {
postMessage(['sendSinmpleIpc', 'update'], '*')
} else {
console.warn(lang.lang_version_skipver)
todo(lang.lang_version_skipver)
}
} else {
postMessage(['sendSinmpleIpc', 'update'], '*')
}
}
}
})
if (!localStorage.getItem('last-notice-id')) {
localStorage.setItem('last-notice-id', 0)
} }
var start = 'https://thedesk.top/notice/index.php?since_id=' + localStorage.getItem('last-notice-id') console.table(mess)
fetch(start, { if (mess) {
method: 'GET', let newest = null
cors: true if (platform == 'darwin') {
}) newest = mess.desk_mac
.then(function(response) { } else {
if (!response.ok) { newest = mess.desk
response.text().then(function(text) { }
setLog(response.url, response.status, text) if (newest == ver) {
}) todo(lang.lang_version_usever.replace('{{ver}}', mess.desk))
} //betaかWinstoreならアプデチェックしない
return response.json() } else if (ver.indexOf('beta') != -1 || winstore) {
}) //skipped
.catch(function(error) { } else {
todo(error) if (localStorage.getItem('new-ver-skip')) {
setLog(start, 'JSON', error) if (localStorage.getItem('next-ver') != newest) {
console.error(error) postMessage(['sendSinmpleIpc', 'update'], '*')
}) } else {
.then(function(mess) { console.warn(lang.lang_version_skipver)
if (mess.length < 1) { todo(lang.lang_version_skipver)
return false
} else {
var last = localStorage.getItem('last-notice-id')
localStorage.setItem('last-notice-id', mess[0].ID)
for (i = 0; i < mess.length; i++) {
var obj = mess[i]
if (obj.ID * 1 <= last) {
break
} else {
if (obj.type == 'textv2') {
if (~obj.languages.indexOf(lang.language)) {
var showVer = true
if (obj.toot != '') {
var toot =
'<button class="btn-flat toast-action" onclick="detEx(\'' +
obj.toot +
"','main')\">Show</button>"
} else {
var toot = ''
}
if (obj.ver != '') {
if (obj.ver == ver) {
showVer = true
} else {
showVer = false
}
}
if (obj.domain != '') {
var multi = localStorage.getItem('multi')
if (multi) {
showVer = false
var accts = JSON.parse(multi)
Object.keys(accts).forEach(function(key) {
var acct = accts[key]
if (acct.domain == obj.domain) {
showVer = true
}
})
}
}
if (showVer) {
M.toast({
html:
escapeHTML(obj.text) +
toot +
'<span class="sml grey-text">(スライドして消去)</span>',
displayLength: 86400
})
}
}
}
}
} }
} else {
postMessage(['sendSinmpleIpc', 'update'], '*')
} }
}) }
}
let lni = localStorage.getItem('last-notice-id')
if (!lni) {
localStorage.setItem('last-notice-id', 0)
lni = 0
}
const getNotice = 'https://thedesk.top/notice/index.php?since_id=' + lni
let notices
try {
notices = await getApi(getNotice, null)
} catch {
return false
}
if (notices.length < 1) {
return false
} else {
localStorage.setItem('last-notice-id', notices[0].ID)
for (i = 0; i < notices.length; i++) {
var obj = notices[i]
if (obj.ID * 1 <= lni) {
break
} else {
toastInterpret(obj)
}
}
}
} }
var infostreaming = false let infostreaming = false
function infowebsocket() { function infowebsocket() {
infows = new WebSocket('wss://thedesk.top/ws/') infows = new WebSocket('wss://thedesk.top/ws/')
infows.onopen = function(mess) { infows.onopen = function (mess) {
console.log([tlid, ':Connect Streaming Info:', mess]) console.log([tlid, ':Connect Streaming Info:', mess])
infostreaming = true infostreaming = true
} }
infows.onmessage = function(mess) { infows.onmessage = function (mess) {
console.log([tlid, ':Receive Streaming:', JSON.parse(mess.data)]) console.log([tlid, ':Receive Streaming:', JSON.parse(mess.data)])
var obj = JSON.parse(mess.data) const obj = JSON.parse(mess.data)
localStorage.setItem('last-notice-id', obj.id)
if (obj.type != 'counter') { if (obj.type != 'counter') {
if (obj.type == 'textv2') { toastInterpret(obj)
if (~obj.languages.indexOf(lang.language)) {
localStorage.setItem('last-notice-id', obj.id)
var showVer = true
if (obj.toot != '') {
var toot =
'<button class="btn-flat toast-action" onclick="detEx(\'' +
obj.toot +
"','main')\">Show</button>"
} else {
var toot = ''
}
if (obj.ver != '') {
if (obj.ver == ver) {
showVer = true
} else {
showVer = false
}
}
if (obj.domain != '') {
var multi = localStorage.getItem('multi')
if (multi) {
showVer = false
var accts = JSON.parse(multi)
Object.keys(accts).forEach(function(key) {
var acct = accts[key]
if (acct.domain == obj.domain) {
showVer = true
}
})
}
}
if (showVer) {
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 { } else {
$('#persons').text(obj.text) const people = document.querySelector('#persons')
if(people) {
people.innerText = obj.text
}
} }
} }
infows.onerror = function(error) { infows.onerror = function (error) {
infostreaming = false infostreaming = false
console.error('Error closing:info') console.error('Error closing:info')
console.error(error) console.error(error)
return false return false
} }
infows.onclose = function() { infows.onclose = function () {
infostreaming = false infostreaming = false
console.error('Closing:info') console.error('Closing:info')
} }
} }
setInterval(function() { setInterval(function () {
if (!infostreaming) { if (!infostreaming) {
console.log('try to connect to base-streaming') console.log('try to connect to base-streaming')
infowebsocket() infowebsocket()
} }
}, 10000) }, 10000)
function openRN() { async function toastInterpret(obj) {
$('#releasenote').modal('open') if (obj.type == 'textv2') {
if (lang.language == 'ja') { if (~obj.languages.indexOf(lang.language)) {
verp = ver.replace('(', '') let showVer = true
verp = verp.replace('.', '-') let toot = null
verp = verp.replace('.', '-') if (obj.toot != '') {
verp = verp.replace('[', '-') toot = `<button class="btn-flat toast-action" data-toot="${obj.toot}">Show</button>`
verp = verp.replace(']', '') }
verp = verp.replace(')', '') if (obj.ver == ver) {
verp = verp.replace(' ', '_') showVer = true
$('#release-' + verp).show() } else {
} else { showVer = false
$('#release-en').show() }
} if (obj.domain != '') {
} const multi = localStorage.getItem('multi')
function closeSupport() { if (multi) {
$('#support-btm').animate( showVer = false
{ const accts = JSON.parse(multi)
bottom: '-300px' const keys = Object.keys(accts)
}, for (let i = 0; i < accts.length; i++) {
{ const key = keys[i]
duration: 300, const acct = accts[key]
complete: function() { if (acct.domain == obj.domain) {
$('#support-btm').addClass('hide') showVer = true
break
}
}
}
}
if (showVer) {
M.toast({
html: `${escapeHTML(obj.text)} ${toot} <span class="sml grey-text">(スライドして消去)</span>`,
displayLength: 86400
})
await sleep(500)
const targets = document.querySelectorAll('.toast-action')
for (let j = 0; j < targets.length; j++) {
const target = targets[j]
const toot = target.getAttribute('data-toot')
target.addEventListener('click', () => detEx(toot, 'main'))
}
} }
} }
) }
}
function openRN() {
console.log(kirishima)
M.Modal.getInstance(document.querySelector('#releasenote')).open()
if (lang.language == 'ja') {
verp = ver.replace('(', '').replace('.', '-').replace('.', '-').replace('[', '-').replace(']', '').replace(')', '').replace(' ', '_')
showElm(`#release-${verp}`)
} else {
showElm('#release-en')
}
}
async function closeSupport() {
document.querySelector('#support-btm').animate([
{
bottom: '0'
},
{
bottom: '-300px'
}
], 300);
await sleep(300)
document.querySelector('#support-btm').classList.add('hide')
} }
function storeDialog(platform, ver) { function storeDialog(platform, ver) {
if($('body').hasClass('accessibility')) return false if (document.querySelector('body').classList.contain('accessibility')) return false
let mes = false
if (platform == 'win32') { if (platform == 'win32') {
var mes = lang.lang_version_platform mes = lang.lang_version_platform
} else if (platform == 'linux') { } else if (platform == 'linux') {
var mes = lang.lang_version_platform_linux mes = lang.lang_version_platform_linux
} else if (platform == 'darwin') { } else if (platform == 'darwin') {
var mes = lang.lang_version_platform_mac mes = lang.lang_version_platform_mac
} else {
var mes = false
} }
if (mes) { if (mes) {
Swal.fire({ Swal.fire({
@@ -354,52 +257,22 @@ function storeDialog(platform, ver) {
} }
localStorage.setItem('ver', ver) localStorage.setItem('ver', ver)
showVer = true showVer = true
if(pwa) return false if (pwa) return false
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;') console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
$(document).ready(function() { openRN()
$('#releasenote').modal('open')
verp = ver.replace('(', '')
verp = verp.replace('.', '-')
verp = verp.replace('.', '-')
verp = verp.replace('[', '-')
verp = verp.replace(']', '')
verp = verp.replace(')', '')
verp = verp.replace(' ', '_')
console.log('%c ' + verp, 'color: red;font-size:200%;')
if (lang.language == 'ja') {
$('#release-' + verp).show()
} else {
$('#release-en').show()
}
})
}) })
} else { } else {
localStorage.setItem('ver', ver) localStorage.setItem('ver', ver)
showVer = true showVer = true
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;') console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
$(document).ready(function() { openRN()
if(pwa) return false
$('#releasenote').modal('open')
verp = ver.replace('(', '')
verp = verp.replace('.', '-')
verp = verp.replace('.', '-')
verp = verp.replace('[', '-')
verp = verp.replace(']', '')
verp = verp.replace(')', '')
verp = verp.replace(' ', '_')
console.log('%c ' + verp, 'color: red;font-size:200%;')
if (lang.language == 'ja') {
$('#release-' + verp).show()
} else {
$('#release-en').show()
}
})
} }
} }
function closeStart() { function closeStart() {
$('#start').css('display', 'none') $('#start').css('display', 'none')
var platform = localStorage.getItem('platform') document.querySelector('#start').style.display = 'none'
var ver = localStorage.getItem('ver') const platform = localStorage.getItem('platform')
const ver = localStorage.getItem('ver')
storeDialog(platform, ver) storeDialog(platform, ver)
} }

View File

@@ -1,5 +1,5 @@
var defaultemojiList = ['activity', 'flag', 'food', 'nature', 'object', 'people', 'place', 'symbol'] const defaultemojiList = ['activity', 'flag', 'food', 'nature', 'object', 'people', 'place', 'symbol']
var defaultemoji = { const defaultemoji = {
activity: activity, activity: activity,
flag: flag, flag: flag,
food: food, food: food,
@@ -9,8 +9,18 @@ var defaultemoji = {
place: place, place: place,
symbol: symbol symbol: symbol
} }
let defaultemojiname = {
activity: 'Activities',
flag: 'Flags',
food: 'Foods',
nature: 'Nature',
object: 'Tools',
people: 'People',
place: 'Places',
symbol: 'Symbols'
}
if (lang == 'ja') { if (lang == 'ja') {
var defaultemojiname = { defaultemojiname = {
activity: '活動', activity: '活動',
flag: '国旗', flag: '国旗',
food: '食べ物', food: '食べ物',
@@ -20,33 +30,23 @@ if (lang == 'ja') {
place: '場所', place: '場所',
symbol: '記号' symbol: '記号'
} }
} else {
var defaultemojiname = {
activity: 'Activities',
flag: 'Flags',
food: 'Foods',
nature: 'Nature',
object: 'Tools',
people: 'People',
place: 'Places',
symbol: 'Symbols'
}
} }
function defaultEmoji(target) { function defaultEmoji(target) {
var announcement = false let announcement = false
if ($('#media').val() == 'announcement') { if (document.querySelector('#media').value == 'announcement') {
announcement = true announcement = true
} }
var json = defaultemoji[target] const json = defaultemoji[target]
var emojis = '' const keymap = Object.keys(json)
Object.keys(json).forEach(function(key) { let emojis = ''
var emoji = json[key] for (let i = 0; i < json.length; i++) {
if (announcement) { const key = keymap[i]
var def = `<a onclick="emojiReactionDef('${emoji['shortcode']}')" class="pointer">` const emoji = json[key]
} else { let def = `<a data-shortcode="${emoji['shortcode']}" class="pointer defEmoji">`
var def = `<a onclick="defEmoji('${emoji['shortcode']}')" class="pointer">` if (announcement) {
} def = `<a data-shortcode="${emoji['shortcode']}" class="pointer defEmoji">`
}
emojis = emojis =
emojis + emojis +
`${def} `${def}
@@ -54,52 +54,39 @@ function defaultEmoji(target) {
width: 20px; height: 20px; display: inline-block; background-image: url('../../img/sheet.png'); background-size: 4900%; width: 20px; height: 20px; display: inline-block; background-image: url('../../img/sheet.png'); background-size: 4900%;
background-position:${emoji['css']};"></span> background-position:${emoji['css']};"></span>
</a>` </a>`
}) }
$('#emoji-list').html(emojis) document.querySelector('#emoji-list').innerHTML = emojis
$('#now-emoji').text(lang.lang_defaultemojis_text.replace('{{cat}}', defaultemojiname[target])) document.querySelector('#now-emoji').innerText = lang.lang_defaultemojis_text.replace('{{cat}}', defaultemojiname[target])
$('.emoji-control').addClass('hide') document.querySelector('.emoji-control').classList.add('hide')
const targets = document.querySelectorAll('.defEmoji')
for (let j = 0; j < targets.length; j++) {
const target = targets[j]
const sc = target.getAttribute('data-shortcode')
target.addEventListener('click', () => defEmoji(sc))
}
} }
function customEmoji() { function customEmoji() {
$('#emoji-suggest').val('') document.querySelector('#emoji-suggest').value = ''
$('.emoji-control').removeClass('hide') document.querySelector('.emoji-control').classList.remove('hide')
emojiList('home') emojiList('home')
} }
function defEmoji(target) { function defEmoji(target) {
var selin = $('#textarea').prop('selectionStart') const textarea = document.querySelector('#textarea')
let selin = textarea.selectionStart
if (!selin) { if (!selin) {
selin = 0 selin = 0
} }
var emojiraw = newpack.filter(function(item, index) { const hex = emojipack[target].unified.split('-')
if (item.short_name == target) return true let emoji = twemoji.convert.fromCodePoint(hex[0])
})
var hex = emojiraw[0].unified.split('-')
if (hex.length === 2) { if (hex.length === 2) {
emoji = twemoji.convert.fromCodePoint(hex[0]) + twemoji.convert.fromCodePoint(hex[1]) emoji = twemoji.convert.fromCodePoint(hex[0]) + twemoji.convert.fromCodePoint(hex[1])
} else {
emoji = twemoji.convert.fromCodePoint(hex[0])
} }
var now = $('#textarea').val() const now = textarea.value
var before = now.substr(0, selin) const before = now.substr(0, selin)
var after = now.substr(selin, now.length) const after = now.substr(selin, now.length)
newt = before + emoji + after const newt = before + emoji + after
$('#textarea').val(newt) textarea.value = newt
$('#textarea').focus() textarea.focus()
}
function faicon() {
var json = faicons
var emojis = ''
Object.keys(json).forEach(function(key) {
var emoji = json[key]
var eje = emoji.replace(/fa-/g, '')
emojis =
emojis +
'<a onclick="emojiInsert(\'[faicon]' +
eje +
'[/faicon]\')" class="pointer white-text" style="font-size:24px"><i class="fa ' +
emoji +
'"></i></a>'
})
$('#emoji-list').html(emojis)
$('#now-emoji').text('faicon')
$('.emoji-control').addClass('hide')
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
//インスタンスリスト //インスタンスリスト
var idata = { const idata = {
"kirishima.cloud": "instance", "kirishima.cloud": "instance",
"kirishima.cloud_name": "アスタルテ", "kirishima.cloud_name": "アスタルテ",
"kirishima.cloud_letters": "6229", "kirishima.cloud_letters": "6229",
@@ -84,5 +84,3 @@ var idata = {
"biwakodon.com_quote":"enabled", "biwakodon.com_quote":"enabled",
"comm.cx_quote":"enabled" "comm.cx_quote":"enabled"
}; };
localStorage.setItem("instance", JSON.stringify(idata));

View File

@@ -1,617 +1,276 @@
/*ログイン処理・認証までのJS*/ /*ログイン処理・認証までのJS*/
//最初に読むやつ //最初に読むやつ
//アスタルテ判定初期化
localStorage.removeItem('kirishima') localStorage.removeItem('kirishima')
localStorage.removeItem('quoters') localStorage.removeItem('quoters')
localStorage.removeItem('imas') localStorage.removeItem('imas')
localStorage.removeItem('image') //stable, 固定タグのことらしい。ふざけるな。
localStorage.removeItem('stable') localStorage.removeItem('stable')
localStorage.setItem('mode_misskey.xyz', 'misskey') const acctList = JSON.parse(localStorage.getItem('multi'))
function ck() {
var main = localStorage.getItem('main') async function ck() {
const main = localStorage.getItem('main')
if (!main) { if (!main) {
localStorage.setItem('main', 0) localStorage.setItem('main', '0')
} }
//コード受信 //コード受信
if (location.search) { if (location.search) {
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/) const m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/)
var mode = m[1] const mode = m[1]
var codex = m[2] const codex = m[2]
if (mode == 'manager' || mode == 'login') { if (mode == 'manager' || mode == 'login') {
code(codex, mode) code(codex, mode)
} else { } else {
} }
} }
var multi = localStorage.getItem('multi') const multi = localStorage.getItem('multi')
if (!multi || multi == '[]') { if (!multi || multi == '[]') {
var date = new Date() const date = new Date()
localStorage.setItem('showSupportMe', date.getMonth() + 2) localStorage.setItem('showSupportMe', date.getMonth() + 2)
location.href = 'acct.html?mode=first&code=true' location.href = 'acct.html?mode=first&code=true'
} else { } else {
var obj = JSON.parse(multi) const obj = JSON.parse(multi)
var jp = false const keymap = Object.keys(obj)
Object.keys(obj).forEach(function(key) { let req = false
var acct = obj[key] for (let i = 0; i < keymap.length; i++) {
const key = keymap[i]
const acct = obj[key]
if (acct.domain) { if (acct.domain) {
refresh(key, true) let refreshed = await refresh(key, true)
if (refreshed) req = true
} }
if (acct.domain == 'mstdn.jp') { }
jp = true if (req) {
} Swal.fire({
}) title: 'Reload required',
text: lang.lang_login_changedData,
type: 'info',
showCancelButton: true,
confirmButtonText: lang.lang_no,
cancelButtonText: lang.lang_yesno
}).then(result => {
if (result) location.reload()
})
}
if (obj[0].domain) { if (obj[0].domain) {
$('#tl').show() showElm('#tl')
ticker() ticker()
multiSelector(false) parseColumn()
verck(ver, jp) verck(ver)
$('.stw').show() showElm('.stw')
if (localStorage.getItem('tips')) { const tipsType = localStorage.getItem('tips')
tips(localStorage.getItem('tips')) if (tipsType) {
tips(tipsType)
} }
$('#something-wrong img').attr('src', '../../img/thinking.svg') document.querySelector('#something-wrong img').setAttribute('src', '../../img/thinking.svg')
} }
} }
} }
ck() ck()
//ログインポップアップ
function login(url) {
if ($('#linux:checked').val() == 'on') {
var red = 'urn:ietf:wg:oauth:2.0:oob'
} else {
var red = 'thedesk://login'
}
localStorage.setItem('redirect', red)
var start = 'https://' + url + '/api/v1/apps'
var httpreq = new XMLHttpRequest()
httpreq.open('POST', start, true)
httpreq.setRequestHeader('Content-Type', 'application/json')
httpreq.responseType = 'json'
httpreq.send(
JSON.stringify({
scopes: 'read write follow',
client_name: 'TheDesk(PC)',
redirect_uris: red,
website: 'https://thedesk.top'
})
)
httpreq.onreadystatechange = function() {
if (httpreq.readyState === 4) {
var json = httpreq.response
if (this.status !== 200) {
setLog(start, this.status, json)
}
var auth =
'https://' +
url +
'/oauth/authorize?client_id=' +
json['client_id'] +
'&client_secret=' +
json['client_secret'] +
'&response_type=code&redirect_uri=' +
red +
'&scope=read+write+follow'
localStorage.setItem('domain_' + acct_id, url)
localStorage.setItem('client_id', json['client_id'])
localStorage.setItem('client_secret', json['client_secret'])
$('#auth').show()
$('#masara').hide()
postMessage(['openUrl', auth], '*')
if ($('#linux:checked').val() == 'on') {
} else {
postMessage(['sendSinmpleIpc', 'quit'], '*')
}
}
}
}
//テキストボックスにURL入れた
function instance() {
var url = $('#url').val()
login(url)
}
//コードを入れた後認証
function code(code, mode) {
var red = localStorage.getItem('redirect')
localStorage.removeItem('redirect')
if (!code) {
var code = $('#code').val()
}
if (localStorage.getItem('domain_tmp')) {
var url = localStorage.getItem('domain_tmp')
} else {
var url = localStorage.getItem('domain_' + acct_id)
}
var start = 'https://' + url + '/oauth/token'
var id = localStorage.getItem('client_id')
var secret = localStorage.getItem('client_secret')
fetch(start, {
method: 'POST',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
grant_type: 'authorization_code',
redirect_uri: red,
client_id: id,
client_secret: secret,
code: code
})
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text)
})
}
return response.json()
})
.catch(function(error) {
todo(error)
setLog(start, 'JSON', error)
console.error(error)
})
.then(function(json) {
todo(json)
if (json['access_token']) {
localStorage.setItem(url + '_at', json['access_token'])
if (mode == 'manager') {
getdataAdv(url, json['access_token'])
} else {
getdata()
}
}
})
}
//ユーザーデータ取得(最初)
function getdata() {
var acct_id = 0
var domain = localStorage.getItem('domain_' + acct_id)
var at = localStorage.getItem('acct_' + acct_id + '_at')
var start = 'https://' + domain + '/api/v1/accounts/verify_credentials'
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
Authorization: 'Bearer ' + at
}
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text)
})
}
return response.json()
})
.catch(function(error) {
todo(error)
setLog(start, 'JSON', error)
console.error(error)
})
.then(function(json) {
if (json.error) {
console.error('Error:' + json.error)
M.toast({ html: lang.lang_fatalerroroccured + 'Error:' + json.error, displayLength: 5000 })
return
}
var avatar = json['avatar']
//missingがmissingなやつ
if (avatar == '/avatars/original/missing.png') {
avatar = './img/missing.svg'
}
var obj = [
{
at: at,
name: json['display_name'],
domain: domain,
user: json['acct'],
prof: avatar,
id: json['id'],
vis: json['source']['privacy']
}
]
var json = JSON.stringify(obj)
localStorage.setItem('multi', json)
localStorage.setItem('name_' + acct_id, json['display_name'])
localStorage.setItem('user_' + acct_id, json['acct'])
localStorage.setItem('user-id_' + acct_id, json['id'])
localStorage.setItem('prof_' + acct_id, avatar)
$('#masara').hide()
$('#auth').hide()
$('#tl').show()
parseColumn()
ckdb()
})
}
//ユーザーデータ取得(追加)
function getdataAdv(domain, at) {
var start = 'https://' + domain + '/api/v1/accounts/verify_credentials'
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
Authorization: 'Bearer ' + at
}
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text)
})
}
return response.json()
})
.catch(function(error) {
todo(error)
setLog(start, 'JSON', error)
console.error(error)
})
.then(function(json) {
if (json.error) {
console.error('Error:' + json.error)
M.toast({ html: lang.lang_fatalerroroccured + 'Error:' + json.error, displayLength: 5000 })
return
}
var avatar = json['avatar']
//missingがmissingなやつ
if (avatar == '/avatars/original/missing.png') {
avatar = '../../img/missing.svg'
}
if (json['source']['privacy']) {
var priv = json['source']['privacy']
} else {
var priv = 'public'
}
var add = {
at: at,
name: json['display_name'],
domain: domain,
user: json['acct'],
prof: avatar,
id: json['id'],
vis: priv
}
var multi = localStorage.getItem('multi')
var obj = JSON.parse(multi)
var target = obj.lengtth
obj.push(add)
localStorage.setItem('name_' + target, json['display_name'])
localStorage.setItem('user_' + target, json['acct'])
localStorage.setItem('user-id_' + target, json['id'])
localStorage.setItem('prof_' + target, avatar)
var json = JSON.stringify(obj)
localStorage.setItem('multi', json)
location.href = 'index.html'
})
}
//ユーザーデータ更新 //ユーザーデータ更新
function refresh(target, loadskip) { async function refresh(target, loadskip) {
var multi = localStorage.getItem('multi') let obj = acctList
var obj = JSON.parse(multi) let requireReload = false
if (obj[target].mode == 'misskey') { const { mode, domain, at, background, text, name, prof, vis } = obj[target]
if (mode == 'misskey') {
return return
} }
var start = 'https://' + obj[target].domain + '/api/v1/accounts/verify_credentials' const start = `https://${domain}/api/v1/accounts/verify_credentials`
fetch(start, { let json
method: 'GET', try {
headers: { json = await getApi(start, at)
'content-type': 'application/json', } catch {
Authorization: 'Bearer ' + obj[target].at return false
}
if (json.error) {
console.error('Error:' + json.error)
M.toast({ html: lang.lang_fatalerroroccured + 'Error:' + json.error, displayLength: 5000 })
return
}
if (!json) return false
let avatar = json['avatar']
//missingがmissingなやつ
if (avatar == '/avatars/original/missing.png' || !avatar) {
avatar = './img/missing.svg'
}
const newName = json.display_name
const newProf = avatar
const newVis = json.source.privacy
if (newName != name || newProf != prof || newVis != vis) {
let ref = {
at: at,
name: newName,
domain: domain,
user: json['acct'],
prof: avatar,
id: json['id'],
vis: newVis
} }
}) if (background) {
.then(function(response) { ref.background = background
if (!response.ok) { }
response.text().then(function(text) { if (text) {
setLog(response.url, response.status, text) ref.text = text
}) }
} if (json['source']['sensitive']) {
return response.json() localStorage.setItem('nsfw_' + target, true)
}) } else {
.catch(function(error) { localStorage.removeItem('nsfw_' + target)
todo(error) }
setLog(start, 'JSON', error) obj[target] = ref
console.error(error) const save = JSON.stringify(obj)
}) localStorage.setItem('multi', save)
.then(function(json) { requireReload = true
if (json.error) { }
console.error('Error:' + json.error) if (!loadskip) {
M.toast({ html: lang.lang_fatalerroroccured + 'Error:' + json.error, displayLength: 5000 }) load()
return } else {
} return requireReload
var avatar = json['avatar'] }
//missingがmissingなやつ
if (avatar == '/avatars/original/missing.png' || !avatar) {
avatar = './img/missing.svg'
}
var ref = {
at: obj[target].at,
name: json['display_name'],
domain: obj[target].domain,
user: json['acct'],
prof: avatar,
id: json['id'],
vis: json['source']['privacy']
}
if (obj[target].background) {
ref.background = obj[target].background
}
if (obj[target].text) {
ref.text = obj[target].text
}
localStorage.setItem('name_' + target, json['display_name'])
localStorage.setItem('user_' + target, json['acct'])
localStorage.setItem('user-id_' + target, json['id'])
localStorage.setItem('prof_' + target, avatar)
localStorage.setItem('follow_' + target, json['following_count'])
if (json['source']['sensitive']) {
localStorage.setItem('nsfw_' + target, 'true')
} else {
localStorage.removeItem('nsfw_' + target)
}
obj[target] = ref
var json = JSON.stringify(obj)
localStorage.setItem('multi', json)
if (!loadskip) {
load()
}
})
} }
//MarkdownやBBCodeの対応、文字数制限をチェック //MarkdownやBBCodeの対応、文字数制限をチェック
//絶対ストリーミングを閉じさせないマン //絶対ストリーミングを閉じさせないマン
function ckdb(acct_id) { async function ckdb(acct_id) {
var domain = localStorage.getItem('domain_' + acct_id) const domain = localStorage.getItem(`domain_${acct_id}`)
localStorage.removeItem('home_' + acct_id)
localStorage.removeItem('bb_' + acct_id)
localStorage.removeItem('md_' + acct_id)
localStorage.removeItem('local_' + acct_id)
localStorage.removeItem('public_' + acct_id)
localStorage.removeItem('notification_' + acct_id)
localStorage.removeItem('post_' + acct_id)
localStorage.removeItem('fav_' + acct_id)
localStorage.removeItem('bt_' + acct_id)
localStorage.removeItem('followlocale_' + acct_id)
if (domain == 'kirishima.cloud') { if (domain == 'kirishima.cloud') {
localStorage.setItem('kirishima', 'true') localStorage.setItem('kirishima', true)
} else if (domain == 'imastodon.net') { } else if (domain == 'imastodon.net') {
localStorage.setItem('imas', 'true') localStorage.setItem('imas', true)
$('.imasonly').show() showElm('.imasonly')
} }
var at = localStorage.getItem('acct_' + acct_id + '_at') const at = localStorage.getItem(`acct_${acct_id}_at`)
var bbcode = domain + '_bbcode' const letters = `${domain}_letters`
var letters = domain + '_letters' const quoteMarker = `${domain}_quote`
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')
} else {
localStorage.removeItem('bb_' + acct_id)
$("[data-activates='bbcode']").addClass('disabled')
$("[data-activates='bbcode']").prop('disabled', true)
}
} else {
localStorage.removeItem('bb_' + acct_id)
$("[data-activates='bbcode']").addClass('disabled')
$("[data-activates='bbcode']").addClass('disabled', true)
}
if (json[domain + '_markdown'] == 'enabled') { if (idata) {
localStorage.setItem('md_' + acct_id, 'true') //check and replace json to idata
$('.markdown').show() const json = idata
} else { if (json[quoteMarker] == 'enabled') {
$('.anti-markdown').hide() localStorage.setItem('quoters', true)
$('.markdown').hide() localStorage.setItem(quoteMarker, true)
localStorage.removeItem('bb_' + acct_id)
}
if (json[domain + '_home']) {
localStorage.setItem('home_' + acct_id, json[domain + '_home'])
}
if (json[domain + '_local']) {
localStorage.setItem('local_' + acct_id, json[domain + '_local'])
}
if (json[domain + '_public']) {
localStorage.setItem('public_' + acct_id, json[domain + '_public'])
}
if (json[domain + '_notification']) {
localStorage.setItem('notification_' + acct_id, json[domain + '_notification'])
}
if (json[domain + '_post']) {
localStorage.setItem('post_' + acct_id, json[domain + '_post'])
}
if (json[domain + '_fav']) {
localStorage.setItem('fav_' + acct_id, json[domain + '_fav'])
}
if (json[domain + '_bt']) {
localStorage.setItem('bt_' + acct_id, json[domain + '_bt'])
}
if (json[domain + '_follow']) {
localStorage.setItem('followlocale_' + acct_id, json[domain + '_follow'])
} }
} }
if (localStorage.getItem('mode_' + domain) != 'misskey') { if (!isMisskey(domain)) {
var start = 'https://' + domain + '/api/v1/instance' const start = `https://${domain}/api/v1/instance`
fetch(start, { let json
method: 'GET', try {
headers: { json = await getApi(start, null)
'content-type': 'application/json' } catch {
} return null
}) }
.then(function(response) { if (!json || json.error) {
return response.json() return
}) }
.catch(function(error) { const mtc = json['max_toot_chars']
console.error(error) if (mtc) {
}) localStorage.setItem(letters, mtc)
.then(function(json) { }
if (json.error) { if (json['feature_quote']) {
console.error(json.error) localStorage.setItem(quoteMarker, true)
return }
} const str = json['urls']['streaming_api']
if (json) { if (str) {
if (json['max_toot_chars']) { localStorage.setItem(`streaming_${domain}`, str)
localStorage.setItem('letters_' + acct_id, json['max_toot_chars']) }
}
if (json['urls']['streaming_api']) {
localStorage.setItem('streaming_' + acct_id, json['urls']['streaming_api'])
} else {
localStorage.removeItem('streaming_' + acct_id)
}
}
})
} else {
} }
} }
//アカウントを選択…を実装 //アカウントを選択…を実装
function multiSelector(parseC) { function multiSelector() {
var multi = localStorage.getItem('multi') let obj = acctList
if (!multi) { //if (!obj) obj = JSON.parse(localStorage.getItem('multi'))
var obj = [] let template = ''
var json = JSON.stringify(obj) //StringなのはlocalStorageがStringしか返さないから
localStorage.setItem('multi', json) let lastUsed = '0'
} else {
var obj = JSON.parse(multi)
}
var templete
if (localStorage.getItem('mainuse') == 'main') { if (localStorage.getItem('mainuse') == 'main') {
var last = localStorage.getItem('main') lastUsed = localStorage.getItem('main')
} else if (localStorage.getItem('last-use')) { } else if (localStorage.getItem('last-use')) {
var last = localStorage.getItem('last-use') lastUsed = localStorage.getItem('last-use')
if (last == 'webview' || last == 'noauth') { if (lastUsed == 'webview' || lastUsed == 'noauth') {
last = '0' lastUsed = '0'
} }
} else { } else {
var last = '0' lastUsed = '0'
} }
last = last + '' let sel
var sel
if (obj.length < 1) { if (obj.length < 1) {
$('#src-acct-sel').html('<option value="tootsearch">Tootsearch</option>') document.querySelector('#src-acct-sel').innerHTML = '<option value="tootsearch">Tootsearch</option>'
$('#add-acct-sel').html('<option value="noauth">' + lang.lang_login_noauth + '</option>') document.querySelector('#add-acct-sel').innerHTML = `<option value="noauth">${lang.lang_login_noauth}</option>`
} else { } else {
Object.keys(obj).forEach(function(key) { for (let i = 0; i < obj.length; i++) {
var acct = obj[key] const acct = obj[i]
var list = key * 1 + 1 const strKey = i.toString()
if (key + '' === last) { if (strKey == lastUsed) {
sel = 'selected' sel = 'selected'
var domain = acct.domain const domain = acct.domain
localStorage.setItem('domain_' + key, domain) const letters = idata[`${domain}_letters`]
if (idata[domain + '_letters']) { const textarea = document.querySelector('#textarea')
$('#textarea').attr('data-length', idata[domain + '_letters']) if (letters) {
textarea.setAttribute('data-length', letters)
} else { } else {
var maxletters = localStorage.getItem('letters_' + key) //手動でアカマネで変えれちゃうから
if (maxletters > 0) { const maxLetters = localStorage.getItem(`${domain}_letters`)
$('#textarea').attr('data-length', maxletters) if (maxLetters > 0) {
textarea.setAttribute('data-length', maxLetters)
} else { } else {
$('#textarea').attr('data-length', 500) textarea.setAttribute('data-length', 500)
} }
} }
if (idata[domain + '_glitch']) { if (idata[`${domain}_glitch`]) {
$('#local-button').removeClass('hide') document.querySelector('#local-button').classList.remove('hide')
} }
var profimg = acct.prof let profimg = acct.prof
//localStorage.setItem("prof_" + key, profimg);
if (!profimg) { if (!profimg) {
profimg = '../../img/missing.svg' profimg = '../../img/missing.svg'
} }
$('#acct-sel-prof').attr('src', profimg) document.querySelector('#acct-sel-prof').setAttribute('src', profimg)
let cc = ''
if (domain) { if (domain) {
var cc = '(' + domain + ')' cc = `(${domain})`
} else {
var cc = ''
} }
$('#toot-post-btn').text(lang.lang_toot + cc) const tpb = document.querySelector('#toot-post-btn')
tpb.innerText = lang.lang_toot + cc
if (acct.background && acct.background != 'def' && acct.text && acct.text != 'def') { if (acct.background && acct.background != 'def' && acct.text && acct.text != 'def') {
$('#toot-post-btn').removeClass('indigo') tpb.classList.remove('indigo')
$('#toot-post-btn').css('background-color', '#' + acct.background) tpb.style.backgroundColor = `#${acct.background}`
$('#toot-post-btn').css('color', acct.text) tpb.style.color = `#${acct.text}`
} else {
}
if (domain == 'kirishima.cloud') {
$('#faicon-btn').show()
} else {
$('#faicon-btn').hide()
} }
if (domain == 'imastodon.net') { if (domain == 'imastodon.net') {
trendTag() trendTag()
} else { } else {
$('#trendtag').html('') if (document.querySelector('#trendtag')) document.querySelector('#trendtag').innerHTML = ''
} }
} else { } else {
sel = '' sel = ''
} }
templete = template = template + `
'<option value="' + <option value="${strKey}" data-icon="${acct.prof}" class="left circle" ${sel}>@${acct.user}@${acct.domain}
key + </option>
'" data-icon="' + `
acct.prof + }
'" class="left circle" ' + const forSrc = template + '<option value="tootsearch">Tootsearch</option>'
sel + const forAdd = template + `
'>' + <option value="noauth">${lang.lang_login_noauth}</option>
acct.user + <option value="webview">Twitter</option>
'@' + `
acct.domain + const forDir = template + `<option value="noauth">${lang.lang_login_noauth}</option>`
'</option>' document.querySelector('#post-acct-sel').innerHTML = template
$('.acct-sel').append(templete) document.querySelector('#list-acct-sel').innerHTML = template
}) document.querySelector('#filter-acct-sel').innerHTML = template
$('#src-acct-sel').append('<option value="tootsearch">Tootsearch</option>') document.querySelector('#src-acct-sel').innerHTML = forSrc
$('#add-acct-sel').append( document.querySelector('#add-acct-sel').innerHTML = forAdd
'<option value="noauth">' + document.querySelector('#dir-acct-sel').innerHTML = forDir
lang.lang_login_noauth +
'</option><option value="webview">Twitter</option>'
)
$('#dir-acct-sel').append('<option value="noauth">' + lang.lang_login_noauth + '</option>')
} }
$('select').formSelect() const elems = document.querySelectorAll('select')
if (!parseC) { M.FormSelect.init(elems, null)
parseColumn(null, true)
}
}
//バージョンエンコ
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
} }
//インスタンスティッカー //インスタンスティッカー
function ticker() { async function ticker() {
var start = 'https://toot.app/toot/index.php' const start = 'https://toot-app.thedesk.top/toot/index.php'
fetch(start, { const json = await getApi(start, null)
method: 'GET', if (json) localStorage.setItem('ticker', JSON.stringify(json))
cors: true,
headers: {
'content-type': 'application/json'
}
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
setLog(response.url, response.status, text)
})
}
return response.json()
})
.catch(function(error) {
console.error(error)
})
.then(function(json) {
if (json) {
localStorage.setItem('ticker', JSON.stringify(json))
}
})
} }
function isMisskey(domain) {
return localStorage.getItem(`mode_${domain}`) == 'misskey'
}

View File

@@ -1,7 +1,7 @@
//ログアウトします //ログアウトします
function logout() { function logout() {
localStorage.removeItem("acct_" + acct_id + "_at"); localStorage.removeItem(`acct_${acct_id}_at`)
localStorage.removeItem("domain_" + acct_id); localStorage.removeItem(`domain_${acct_id}`)
location.href = "index.html"; location.href = 'index.html'
todc(); todc()
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,11 @@
$.strip_tags = function(str, allowed) { $.strip_tags = function (str, allowed) {
if (!str) { if (!str) {
return '' return ''
} }
allowed = (((allowed || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('') allowed = (((allowed || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('')
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi, var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi,
commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi
return str.replace(commentsAndPhpTags, '').replace(tags, function($0, $1) { return str.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '' return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : ''
}) })
} }
@@ -13,12 +13,7 @@ function escapeHTML(str) {
if (!str) { if (!str) {
return '' return ''
} }
return str return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#039;')
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#039;')
} }
//PHPのnl2brと同様 //PHPのnl2brと同様
function nl2br(str) { function nl2br(str) {
@@ -88,17 +83,18 @@ function formattimeutc(date) {
} }
postMessage(['sendSinmpleIpc', 'custom-css-request'], '*') postMessage(['sendSinmpleIpc', 'custom-css-request'], '*')
function makeCID() { function makeCID() {
return ( let chars = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.split('')
randomStr(8) + for (let i = 0, len = chars.length; i < len; i++) {
'-' + switch (chars[i]) {
randomStr(4) + case 'x':
'-' + chars[i] = Math.floor(Math.random() * 16).toString(16)
randomStr(4) + break
'-' + case 'y':
randomStr(4) + chars[i] = (Math.floor(Math.random() * 4) + 8).toString(16)
'-' + break
randomStr(12) }
) }
return chars.join('')
} }
function randomStr(l) { function randomStr(l) {
// 生成する文字列に含める文字セット // 生成する文字列に含める文字セット
@@ -129,7 +125,7 @@ function rgbToHex(color) {
// RGBからHEXへ変換 // RGBからHEXへ変換
parseInt(regex[1]).toString(16), parseInt(regex[1]).toString(16),
parseInt(regex[2]).toString(16), parseInt(regex[2]).toString(16),
parseInt(regex[3]).toString(16) parseInt(regex[3]).toString(16),
] ]
for (var i = 0; i < rgb.length; ++i) { for (var i = 0; i < rgb.length; ++i) {
@@ -147,15 +143,15 @@ function rgbToHex(color) {
console.error(color + ':第1引数はRGB形式で入力') console.error(color + ':第1引数はRGB形式で入力')
} }
/*マルチバイト用切り出し*/ /*マルチバイト用切り出し*/
$.isSurrogatePear = function(upper, lower) { $.isSurrogatePear = function (upper, lower) {
return 0xd800 <= upper && upper <= 0xdbff && 0xdc00 <= lower && lower <= 0xdfff return 0xd800 <= upper && upper <= 0xdbff && 0xdc00 <= lower && lower <= 0xdfff
} }
$.mb_strlen = function(str) { $.mb_strlen = function (str) {
var splitter = new GraphemeSplitter() var splitter = new GraphemeSplitter()
var arr = splitter.splitGraphemes(str) var arr = splitter.splitGraphemes(str)
return arr.length return arr.length
} }
$.mb_substr = function(str, begin, end) { $.mb_substr = function (str, begin, end) {
//配列にする //配列にする
var splitter = new GraphemeSplitter() var splitter = new GraphemeSplitter()
var arr = splitter.splitGraphemes(str) var arr = splitter.splitGraphemes(str)
@@ -175,7 +171,7 @@ function object_array_sort(data, key, order, fn) {
num_a = 1 num_a = 1
num_b = -1 num_b = -1
} }
data = data.sort(function(a, b) { data = data.sort(function (a, b) {
var x = a[key] var x = a[key]
var y = b[key] var y = b[key]
if (x > y) return num_a if (x > y) return num_a
@@ -252,7 +248,7 @@ function statusModel(now) {
reblog: null, reblog: null,
application: { application: {
name: null, name: null,
website: null website: null,
}, },
account: { account: {
id: '', id: '',
@@ -273,12 +269,53 @@ function statusModel(now) {
statuses_count: 0, statuses_count: 0,
last_status_at: now, last_status_at: now,
emojis: [], emojis: [],
fields: [] fields: [],
}, },
media_attachments: [], media_attachments: [],
mentions: [], mentions: [],
tags: [], tags: [],
card: null, card: null,
poll: null poll: null,
} }
} }
function isFocused(query) {
const allTarget = document.querySelectorAll(query)
const active = document.activeElement
let is = false
for (let i = 0; i < allTarget.length; i++) {
if (allTarget[i] == active) {
is = true
break
}
}
return is
}
function getHeight(query) {
const elm = document.querySelector(query)
return parseFloat(getComputedStyle(elm, null).height.replace('px', ''))
}
function showElm(query) {
const allTarget = document.querySelectorAll(query)
for (let i = 0; i < allTarget.length; i++) {
const target = allTarget[i]
target.style.display = 'inherit'
}
}
function setAllClasses(query, className, action) {
const allTarget = document.querySelectorAll(query)
for (let i = 0; i < allTarget.length; i++) {
const target = allTarget[i]
if (action == 'add') target.classList.add(className)
if (action == 'remove') target.classList.remove(className)
}
}
function appendPrepend(query, elm, action) {
const allTarget = document.querySelectorAll(query)
for (let i = 0; i < allTarget.length; i++) {
const target = allTarget[i]
if (action == 'prepend') target.insertBefore(elm, target.firstChild)
if (action == 'append') target.appendChild(document.createTextNode(elm))
}
}
const sleep = (msec) => new Promise((resolve) => setTimeout(resolve, msec))

View File

@@ -2,11 +2,12 @@
//アカウント変えた時にBBとかMDとか //アカウント変えた時にBBとかMDとか
function mdCheck() { function mdCheck() {
var acct_id = $('#post-acct-sel').val() var acct_id = $('#post-acct-sel').val()
var profimg = localStorage.getItem('prof_' + acct_id) /*var profimg = localStorage.getItem('prof_' + acct_id)
if (!profimg) { if (!profimg) {
profimg = '../../img/missing.svg' profimg = '../../img/missing.svg'
} }
$('#acct-sel-prof').attr('src', profimg) $('#acct-sel-prof').attr('src', profimg)
*/
if (localStorage.getItem('post_' + acct_id)) { if (localStorage.getItem('post_' + acct_id)) {
$('#toot-post-btn').text( $('#toot-post-btn').text(
localStorage.getItem('post_' + acct_id) + localStorage.getItem('post_' + acct_id) +
@@ -50,7 +51,7 @@ function mdCheck() {
if (idata[domain + '_letters']) { if (idata[domain + '_letters']) {
$('#textarea').attr('data-length', idata[domain + '_letters']) $('#textarea').attr('data-length', idata[domain + '_letters'])
} else { } else {
var maxletters = localStorage.getItem('letters_' + acct_id) var maxletters = localStorage.getItem(domain + 'letters_')
if (maxletters > 0) { if (maxletters > 0) {
$('#textarea').attr('data-length', maxletters) $('#textarea').attr('data-length', maxletters)
} else { } else {

View File

@@ -108,7 +108,6 @@ async function media(b64, type, no, stamped) {
} }
$('.toot-btn-group').prop('disabled', true) $('.toot-btn-group').prop('disabled', true)
$('#post-acct-sel').prop('disabled', true) $('#post-acct-sel').prop('disabled', true)
localStorage.setItem('image', 'busy')
todo('Image Upload...') todo('Image Upload...')
var media = toBlob(b64, type) var media = toBlob(b64, type)
var fd = new FormData() var fd = new FormData()
@@ -159,7 +158,6 @@ async function media(b64, type, no, stamped) {
M.toast({ html: '<span>' + lang.lang_postimg_sync + '</span><button class="btn-flat toast-action" onclick="syncDetail()">Click</button>', displayLength: 3000 }) M.toast({ html: '<span>' + lang.lang_postimg_sync + '</span><button class="btn-flat toast-action" onclick="syncDetail()">Click</button>', displayLength: 3000 })
$('#imgup').text('') $('#imgup').text('')
$('#imgsel').show() $('#imgsel').show()
localStorage.removeItem('image')
} }
} catch { } catch {
var start = 'https://' + domain + '/api/v1/media' var start = 'https://' + domain + '/api/v1/media'

View File

@@ -122,6 +122,10 @@ function post(mode, postvis) {
console.log('This toot will be posted at:' + scheduled) console.log('This toot will be posted at:' + scheduled)
schedule() schedule()
toot.scheduled_at = scheduled toot.scheduled_at = scheduled
if($('#sch-box').hasClass('expire')) {
toot.scheduled_at = null
toot.expires_at = scheduled
}
} else { } else {
var scheduled = '' var scheduled = ''
} }
@@ -195,6 +199,20 @@ function post(mode, postvis) {
} }
} }
} }
function expPostMode() {
$('#sch-box').toggleClass('expire')
if($('#sch-box').hasClass('expire')) {
Swal.fire({
type: 'info',
title: 'Expiring toot On'
})
} else {
Swal.fire({
type: 'info',
title: 'Expireing toot Off'
})
}
}
function misskeyPost() { function misskeyPost() {
var str = $('#textarea').val() var str = $('#textarea').val()
var acct_id = $('#post-acct-sel').val() var acct_id = $('#post-acct-sel').val()
@@ -324,7 +342,6 @@ function clear() {
$('.mastodon-choice').map(function() { $('.mastodon-choice').map(function() {
$(this).val('') $(this).val('')
}) })
localStorage.removeItem('image')
if (localStorage.getItem('mainuse') == 'main') { if (localStorage.getItem('mainuse') == 'main') {
$('#post-acct-sel').val(localStorage.getItem('main')) $('#post-acct-sel').val(localStorage.getItem('main'))
} }

View File

@@ -160,8 +160,14 @@ function bkm(id, acct_id, tlid) {
//フォロー //フォロー
async function follow(acct_id, resolve) { async function follow(acct_id, resolve) {
if($('#his-data').hasClass('locked')) {
locked = true
} else {
locked = false
}
if (!acct_id && acct_id != 'selector') { if (!acct_id && acct_id != 'selector') {
var acct_id = $('#his-data').attr('use-acct') var acct_id = $('#his-data').attr('use-acct')
} else if (acct_id == 'selector') { } else if (acct_id == 'selector') {
var acct_id = $('#user-acct-sel').val() var acct_id = $('#user-acct-sel').val()
} }
@@ -172,6 +178,7 @@ async function follow(acct_id, resolve) {
var flag = 'follow' var flag = 'follow'
var flagm = 'create' var flagm = 'create'
} }
var id = $('#his-data').attr('user-id') var id = $('#his-data').attr('user-id')
if (resolve == 'selector') { if (resolve == 'selector') {
var fullacct = $('#his-acct').attr('fullname') var fullacct = $('#his-acct').attr('fullname')
@@ -205,7 +212,11 @@ async function follow(acct_id, resolve) {
$('#his-follow-btn-text').text(lang.lang_status_follow) $('#his-follow-btn-text').text(lang.lang_status_follow)
} else { } else {
$('#his-data').addClass('following') $('#his-data').addClass('following')
$('#his-follow-btn-text').text(lang.lang_status_unfollow) if(locked) {
$('#his-follow-btn-text').text(lang.lang_status_requesting)
} else {
$('#his-follow-btn-text').text(lang.lang_status_unfollow)
}
} }
} }
} }

View File

@@ -393,8 +393,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
} else { } else {
noticeavatar = toot.account.avatar_static noticeavatar = toot.account.avatar_static
} }
noticeavatar = `<a onclick="udg('${toot.account.id}','${acct_id}');" user="${toot.account.acct}" class="notf-icon udg" aria-hidden="true"> noticeavatar = `<a onclick="udg('${toot.account.id}','${acct_id}');" user="${toot.account.acct}" class="udg" aria-hidden="true">
<img draggable="false" src="${noticeavatar}" width="20" class="prof-img" <img draggable="false" src="${noticeavatar}" width="20" class="notf-icon prof-img"
user="${toot.account.acct}" onerror="this.src=\'../../img/loading.svg\'"> user="${toot.account.acct}" onerror="this.src=\'../../img/loading.svg\'">
</a>` </a>`
var rebtxt = lang.lang_parse_btedsimple var rebtxt = lang.lang_parse_btedsimple
@@ -950,7 +950,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
if (!quoteUser) { if (!quoteUser) {
quoteUser = toot.quote.account.acct quoteUser = toot.quote.account.acct
} }
poll = if(!toot.quote.quote_muted) {
poll =
poll + poll +
`<div class="quote-renote"> `<div class="quote-renote">
<div class="renote-icon"> <div class="renote-icon">
@@ -974,6 +975,12 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
</a> </a>
</div> </div>
</div>` </div>`
} else {
poll =
poll +
`<span class="gray sml">${lang.lang_parse_hidden}</span>`
}
} }
//menuは何個 //menuは何個
var menuct = 2 var menuct = 2

View File

@@ -851,7 +851,7 @@ function cap(type, data, acct_id) {
} else if (type == 'bookmark') { } else if (type == 'bookmark') {
var response = 'Bookmarks' var response = 'Bookmarks'
} else if (type == 'utl') { } else if (type == 'utl') {
var response = 'User TL(' + data.acct + ')' var response = 'User TL(' + escapeHTML(data.acct) + ')'
} }
return response return response
} }

View File

@@ -42,7 +42,6 @@ function parseColumn(target, dontclose) {
var multi = localStorage.getItem('multi') var multi = localStorage.getItem('multi')
if (multi) { if (multi) {
var obj = JSON.parse(multi) var obj = JSON.parse(multi)
var templete var templete
Object.keys(obj).forEach(function (key) { Object.keys(obj).forEach(function (key) {
var acct = obj[key] var acct = obj[key]
@@ -102,6 +101,7 @@ function parseColumn(target, dontclose) {
$('.box, .boxIn').resizable('destroy') $('.box, .boxIn').resizable('destroy')
} }
} }
console.log(obj)
var basekey = 0 var basekey = 0
for (var key = 0; key < obj.length; key++) { for (var key = 0; key < obj.length; key++) {
var next = key + 1 var next = key + 1
@@ -444,7 +444,7 @@ function parseColumn(target, dontclose) {
<br> <br>
<div id="picker_${key}" class="color-picker"></div> <div id="picker_${key}" class="color-picker"></div>
</div>${if_tag} </div>${if_tag}
<div class="tl-box" tlid="${key}"> <div class="tl-box" tlid="${key}" id="tlBox${key}">
<div id="timeline_${key}" class="tl ${acct.type}-timeline " 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}"> data-type="${acct.type}" data-acct="${acct.domain}" data-const="${acct.type}_${acct.domain}">
<div id="landing_${key}" style="text-align:center"> <div id="landing_${key}" style="text-align:center">
@@ -508,6 +508,8 @@ function parseColumn(target, dontclose) {
} }
} }
} }
console.log('multiSelector')
multiSelector()
$('.box, .boxIn').resizable({ $('.box, .boxIn').resizable({
minHeight: 50, minHeight: 50,
minWidth: 50, minWidth: 50,
@@ -646,11 +648,15 @@ function removeColumn(tlid) {
if (result.value) { if (result.value) {
var multi = localStorage.getItem('column') var multi = localStorage.getItem('column')
var obj = JSON.parse(multi) var obj = JSON.parse(multi)
var data = obj[tlid]
obj.splice(tlid, 1) obj.splice(tlid, 1)
var json = JSON.stringify(obj) var json = JSON.stringify(obj)
localStorage.setItem('column', json) localStorage.setItem('column', json)
sortLoad() sortLoad()
$('#timeline_box_' + tlid + '_parentBox').remove() $('#timeline_box_' + tlid + '_box').remove()
if(!data.left_fold) {
$('#timeline_box_' + tlid + '_parentBox').remove()
}
} }
$('#sort-box').removeClass('hide') $('#sort-box').removeClass('hide')
$('#sort-box').addClass('show') $('#sort-box').addClass('show')
@@ -800,7 +806,7 @@ function webviewParse(url, key, insert, icnsert, css) {
<br> <br>
<div id="picker_${key}" class="color-picker"></div> <div id="picker_${key}" class="color-picker"></div>
</div> </div>
<div class="tl-box" tlid="${key}" style="width:100%;height:100%;"> <div class="tl-box" tlid="${key}" style="width:100%;height:100%;" id="tlBox${key}">
<div id="timeline_${key}" class="tl" tlid="${key}" data-type="webview" style="width:100%;height:100%;"> <div id="timeline_${key}" class="tl" tlid="${key}" data-type="webview" style="width:100%;height:100%;">
<webview src="${url}" style="width:100%;height:100%;" id="webview" preload="./js/platform/twitter.js"></webview> <webview src="${url}" style="width:100%;height:100%;" id="webview" preload="./js/platform/twitter.js"></webview>
</div> </div>
@@ -862,7 +868,7 @@ function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, anim
${lang.lang_layout_headercolor}<br> ${lang.lang_layout_headercolor}<br>
<div id="picker_${key}" class="color-picker"></div> <div id="picker_${key}" class="color-picker"></div>
</div> </div>
<div class="tl-box" tlid="${key}"> <div class="tl-box" tlid="${key}" id="tlBox${key}">
<div id="timeline_${key}" class="tl ${type}-timeline" tlid="${key}" data-type="${type}" data-acct="${data}"> <div id="timeline_${key}" class="tl ${type}-timeline" tlid="${key}" data-type="${type}" data-acct="${data}">
<div id="landing_${key}" style="text-align:center"> <div id="landing_${key}" style="text-align:center">
${lang.lang_layout_nodata} ${lang.lang_layout_nodata}

View File

@@ -32,7 +32,6 @@ function mini() {
function show() { function show() {
$('#post-box').addClass('appear') $('#post-box').addClass('appear')
$('#textarea').focus() $('#textarea').focus()
console.log('show' + localStorage.getItem('postbox-left'))
var left = localStorage.getItem('postbox-left') var left = localStorage.getItem('postbox-left')
if (left > $('body').width() - $('#post-box').width()) { if (left > $('body').width() - $('#post-box').width()) {
left = $('body').width() - $('#post-box').width() left = $('body').width() - $('#post-box').width()
@@ -55,10 +54,12 @@ function show() {
} }
$('#post-box').fadeIn() $('#post-box').fadeIn()
$('#textarea').characterCounter() $('#textarea').characterCounter()
mdCheck() mdCheck()
} }
$(function () { $(function () {
$('#post-box').draggable({ $('#post-box').draggable({
handle: '#post-bar', handle: '#post-bar',
stop: function () { stop: function () {

View File

@@ -99,14 +99,14 @@ function settings() {
var fontd = $('#font').val() var fontd = $('#font').val()
if (fontd) { if (fontd) {
if (fontd != localStorage.getItem('font')) { if (fontd != localStorage.getItem('font')) {
M.toast({ html: lang.lang_setting_font.replace('{{set}}', ct), displayLength: 3000 }) M.toast({ html: lang.lang_setting_font.replace('{{set}}', fontd), displayLength: 3000 })
} }
localStorage.setItem('font', fontd) localStorage.setItem('font', fontd)
themes() themes()
} else { } else {
if (localStorage.getItem('font')) { if (localStorage.getItem('font')) {
localStorage.removeItem('font') localStorage.removeItem('font')
M.toast({ html: lang.lang_setting_font.replace('{{set}}', ct), displayLength: 3000 }) M.toast({ html: lang.lang_setting_font.replace('{{set}}', '"default"'), displayLength: 3000 })
themes() themes()
} }
} }

View File

@@ -33,7 +33,7 @@ function sortLoad () {
var acctdata = user + "@" + domain; var acctdata = user + "@" + domain;
} }
var html = '<li class="drag-content" data-id="' + key + '" data-flag="' + flag + '"' + insert + '><div class="sorticon"><i class="material-icons">' + icon(acct.type) + '</i></div><div class="sorttitle">' + cap(acct.type, escapeHTML(acct.data), acct.domain) + '</div><div class="sortaction"><a onclick="goColumn(' + key + var html = '<li class="drag-content" data-id="' + key + '" data-flag="' + flag + '"' + insert + '><div class="sorticon"><i class="material-icons">' + icon(acct.type) + '</i></div><div class="sorttitle">' + cap(acct.type, acct.data, acct.domain) + '</div><div class="sortaction"><a onclick="goColumn(' + key +
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_sort_gothis + '">forward</i></a> <a onclick="removeColumn(' + key + ')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_sort_gothis + '">forward</i></a> <a onclick="removeColumn(' + key +
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a></div><div class="sortacct">' + acctdata + '</div></li>'; ')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a></div><div class="sortacct">' + acctdata + '</div></li>';
$("#sort").append(html); $("#sort").append(html);

View File

@@ -157,7 +157,7 @@ function spotifytips() {
setLog(start, 'JSON', error) setLog(start, 'JSON', error)
console.error(error) console.error(error)
}) })
.then(function(json) { .then(async function(json) {
var ms = json.progress_ms var ms = json.progress_ms
if(!ms) { if(!ms) {
tips('ver') tips('ver')
@@ -175,7 +175,7 @@ function spotifytips() {
} }
} }
artisttxt = escapeHTML(artisttxt) artisttxt = escapeHTML(artisttxt)
sleep(last) await sleep(last)
var tms = item.duration_ms var tms = item.duration_ms
var per = (ms / item.duration_ms) * 100 var per = (ms / item.duration_ms) * 100
ms = ms / 1000 ms = ms / 1000
@@ -251,10 +251,10 @@ function trendTagonTipInterval() {
} }
//時計 //時計
var clockint var clockint
function clock() { async function clock() {
var now = new Date() var now = new Date()
var last = 1000 - (now.getTime() % 1000) var last = 1000 - (now.getTime() % 1000)
sleep(last) await sleep(last)
clockint = setInterval(clockStart, 1000) clockint = setInterval(clockStart, 1000)
} }
function clockStart() { function clockStart() {
@@ -286,10 +286,6 @@ function clockStart() {
'</span>' '</span>'
$('#tips-text').html(msg) $('#tips-text').html(msg)
} }
function sleep(waitMsec) {
var startMsec = new Date()
while (new Date() - startMsec < waitMsec);
}
function tipsToggle() { function tipsToggle() {
$('#tips').toggleClass('hide') $('#tips').toggleClass('hide')
$('#tips-menu').toggleClass('hide') $('#tips-menu').toggleClass('hide')

View File

@@ -1,65 +1,68 @@
//プロフ編集 //プロフ編集
//文字系 //文字系
function profedit() { function profedit() {
var acct_id = $('#his-data').attr("use-acct"); var acct_id = $('#his-data').attr('use-acct')
todo("Updating..."); todo('Updating...')
var domain = localStorage.getItem("domain_" + acct_id); var domain = localStorage.getItem('domain_' + acct_id)
var at = localStorage.getItem("acct_" + acct_id + "_at"); var at = localStorage.getItem('acct_' + acct_id + '_at')
var start = "https://" + domain + "/api/v1/accounts/update_credentials"; var start = 'https://' + domain + '/api/v1/accounts/update_credentials'
var name = $("#his-name-val").val(); var name = $('#his-name-val').val()
var des = $("#his-des-val").val(); var des = $('#his-des-val').val()
var httpreq = new XMLHttpRequest(); var httpreq = new XMLHttpRequest()
httpreq.open('PATCH', start, true); httpreq.open('PATCH', start, true)
httpreq.setRequestHeader('Content-Type', 'application/json'); httpreq.setRequestHeader('Content-Type', 'application/json')
httpreq.setRequestHeader('Authorization', 'Bearer ' + at); httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
httpreq.responseType = "json"; httpreq.responseType = 'json'
httpreq.send(JSON.stringify({ httpreq.send(
display_name: name, JSON.stringify({
note: des, display_name: name,
})); note: des,
})
)
httpreq.onreadystatechange = function () { httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) { if (httpreq.readyState === 4) {
$('#his-data').modal('close'); $('#his-data').modal('close')
todc(); todc()
} }
} }
} }
//画像系 //画像系
function imgChange(imgfile, target) { function imgChange(imgfile, target) {
var acct_id = $('#his-data').attr("use-acct"); var acct_id = $('#his-data').attr('use-acct')
todo("アップロードしています") todo('アップロードしています')
if (!imgfile.files.length) { if (!imgfile.files.length) {
console.warn("No Image to upload"); console.warn('No Image to upload')
return; return
} }
var file = imgfile.files[0]; var file = imgfile.files[0]
var fr = new FileReader(); var fr = new FileReader()
fr.onload = function (evt) { fr.onload = function (evt) {
var b64 = this.result; var b64 = this.result
var blob = toBlob(b64, 'image/png'); var blob = toBlob(b64, 'image/png')
var fd = new FormData(); var fd = new FormData()
fd.append(target, blob); fd.append(target, blob)
var domain = localStorage.getItem("domain_" + acct_id); var domain = localStorage.getItem('domain_' + acct_id)
var at = localStorage.getItem("acct_" + acct_id + "_at"); var at = localStorage.getItem('acct_' + acct_id + '_at')
var start = "https://" + domain + "/api/v1/accounts/update_credentials"; var start = 'https://' + domain + '/api/v1/accounts/update_credentials'
var httpreq = new XMLHttpRequest(); var httpreq = new XMLHttpRequest()
httpreq.open('PATCH', start, true); httpreq.open('PATCH', start, true)
httpreq.upload.addEventListener("progress", progshow, false); httpreq.upload.addEventListener('progress', progshow, false)
httpreq.setRequestHeader('Authorization', 'Bearer ' + at); httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
httpreq.responseType = "json"; httpreq.responseType = 'json'
httpreq.send(fd); httpreq.send(fd)
httpreq.onreadystatechange = function () { httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) { if (httpreq.readyState === 4) {
var json = httpreq.response; var json = httpreq.response
if(this.status!==200){ setLog(start, this.status, this.response); } if (this.status !== 200) {
$('#his-data').modal('close'); setLog(start, this.status, this.response)
todc(); }
localStorage.removeItem("image"); $('#his-data').modal('close')
todc()
} }
} }
} }
$("#prof-change").html($("#prof-change").html()); $('#prof-change').html($('#prof-change').html())
$("#header-change").html($("#header-change").html()); $('#header-change').html($('#header-change').html())
fr.readAsDataURL(file); fr.readAsDataURL(file)
} }

View File

@@ -33,20 +33,20 @@ function udgEx(user, acct_id) {
Authorization: "Bearer " + at Authorization: "Bearer " + at
} }
}) })
.then(function(response) { .then(function (response) {
if (!response.ok) { if (!response.ok) {
response.text().then(function(text) { response.text().then(function (text) {
setLog(response.url, response.status, text); setLog(response.url, response.status, text);
}); });
} }
return response.json(); return response.json();
}) })
.catch(function(error) { .catch(function (error) {
todo(error); todo(error);
setLog(start, "JSON", error); setLog(start, "JSON", error);
console.error(error); console.error(error);
}) })
.then(function(json) { .then(function (json) {
if (json.accounts[0]) { if (json.accounts[0]) {
var id = json.accounts[0].id; var id = json.accounts[0].id;
udg(id, acct_id); udg(id, acct_id);
@@ -76,20 +76,20 @@ function udg(user, acct_id) {
Authorization: "Bearer " + at Authorization: "Bearer " + at
} }
}) })
.then(function(response) { .then(function (response) {
if (!response.ok) { if (!response.ok) {
response.text().then(function(text) { response.text().then(function (text) {
setLog(response.url, response.status, text); setLog(response.url, response.status, text);
}); });
} }
return response.json(); return response.json();
}) })
.catch(function(error) { .catch(function (error) {
todo(error); todo(error);
setLog(start, "JSON", error); setLog(start, "JSON", error);
console.error(error); console.error(error);
}) })
.then(function(json) { .then(function (json) {
//一つ前のユーザーデータ //一つ前のユーザーデータ
if (!localStorage.getItem("history")) { if (!localStorage.getItem("history")) {
$("#his-history-btn").prop("disabled", true); $("#his-history-btn").prop("disabled", true);
@@ -129,7 +129,7 @@ function udg(user, acct_id) {
} }
//絵文字があれば //絵文字があれば
if (actemojick) { if (actemojick) {
Object.keys(json.emojis).forEach(function(key5) { Object.keys(json.emojis).forEach(function (key5) {
var emoji = json.emojis[key5]; var emoji = json.emojis[key5];
var shortcode = emoji.shortcode; var shortcode = emoji.shortcode;
var emoji_url = '<img src="' + emoji.url + '" class="emoji-img" data-emoji="' + shortcode + '" draggable="false">'; var emoji_url = '<img src="' + emoji.url + '" class="emoji-img" data-emoji="' + shortcode + '" draggable="false">';
@@ -239,6 +239,11 @@ function udg(user, acct_id) {
$(".only-his-data").show(); $(".only-his-data").show();
} }
todc(); todc();
if (json.locked) {
$('#his-data').addClass('locked')
} else {
$('#his-data').removeClass('locked')
}
//外部データ取得(死かもしれないので) //外部データ取得(死かもしれないので)
udAdd(acct_id, user, json.url); udAdd(acct_id, user, json.url);
}); });
@@ -266,20 +271,20 @@ function misskeyUdg(user, acct_id) {
userId: user userId: user
}) })
}) })
.then(function(response) { .then(function (response) {
if (!response.ok) { if (!response.ok) {
response.text().then(function(text) { response.text().then(function (text) {
setLog(response.url, response.status, text); setLog(response.url, response.status, text);
}); });
} }
return response.json(); return response.json();
}) })
.catch(function(error) { .catch(function (error) {
todo(error); todo(error);
setLog(start, "JSON", error); setLog(start, "JSON", error);
console.error(error); console.error(error);
}) })
.then(function(json) { .then(function (json) {
//一つ前のユーザーデータ //一つ前のユーザーデータ
if (!localStorage.getItem("history")) { if (!localStorage.getItem("history")) {
$("#his-history-btn").prop("disabled", true); $("#his-history-btn").prop("disabled", true);
@@ -397,24 +402,29 @@ function relations(user, acct_id) {
Authorization: "Bearer " + at Authorization: "Bearer " + at
} }
}) })
.then(function(response) { .then(function (response) {
if (!response.ok) { if (!response.ok) {
response.text().then(function(text) { response.text().then(function (text) {
setLog(response.url, response.status, text); setLog(response.url, response.status, text);
}); });
} }
return response.json(); return response.json();
}) })
.catch(function(error) { .catch(function (error) {
todo(error); todo(error);
setLog(start, "JSON", error); setLog(start, "JSON", error);
console.error(error); console.error(error);
}) })
.then(function(json) { .then(function (json) {
var json = json[0]; var json = json[0];
if (json.requested) {
//フォロリク中
$('#his-data').addClass('following')
$("#his-follow-btn-text").text(lang.lang_status_requesting)
}
if (json.following) { if (json.following) {
//自分がフォローしている //自分がフォローしている
$("#his-data").addClass("following"); $("#his-data").addClass("following")
$("#his-follow-btn-text").text(lang.lang_status_unfollow); $("#his-follow-btn-text").text(lang.lang_status_unfollow);
hisList(user, acct_id); hisList(user, acct_id);
} else { } else {
@@ -472,7 +482,7 @@ function profbrws() {
function setMain() { function setMain() {
var acct_id = $("#his-data").attr("use-acct"); var acct_id = $("#his-data").attr("use-acct");
localStorage.setItem("main", acct_id); localStorage.setItem("main", acct_id);
multiSelector(true); multiSelector();
M.toast({ html: lang.lang_manager_mainAcct, displayLength: 3000 }); M.toast({ html: lang.lang_manager_mainAcct, displayLength: 3000 });
} }
//オールリセット //オールリセット
@@ -538,8 +548,10 @@ function reset() {
$("#his-float-blocked").hide(); $("#his-float-blocked").hide();
$("#his-main-acct").show(); $("#his-main-acct").show();
$("#his-proof-prof").html(""); $("#his-proof-prof").html("");
$('#his-data').removeClass('locked')
$('#his-data').removeClass('requesting')
} }
$("#my-data-nav .anc-link").on("click", function() { $("#my-data-nav .anc-link").on("click", function () {
var target = $(this).attr("go"); var target = $(this).attr("go");
if (target) { if (target) {
$("#my-data-nav .anc-link").removeClass("active-back"); $("#my-data-nav .anc-link").removeClass("active-back");

View File

@@ -79,7 +79,11 @@ function createWindow() {
if(lang == 'ja') { if(lang == 'ja') {
const maxims = JSON.parse(fs.readFileSync(__dirname + '/maxim.ja.json')) const maxims = JSON.parse(fs.readFileSync(__dirname + '/maxim.ja.json'))
var show = maxims[Math.floor(Math.random() * maxims.length)] var show = maxims[Math.floor(Math.random() * maxims.length)]
} else { } else if(lang == 'ja-KS') {
//ja-KSも作れたらいいね
const maxims = JSON.parse(fs.readFileSync(__dirname + '/maxim.ja.json'))
var show = maxims[Math.floor(Math.random() * maxims.length)]
} else{
var show = 'TheDesk 2018' var show = 'TheDesk 2018'
} }
const data = JSON.parse(package) const data = JSON.parse(package)

View File

@@ -44,5 +44,11 @@
"たまにここに何も出ないことがあるけど、なんでかはわからない", "たまにここに何も出ないことがあるけど、なんでかはわからない",
"Kawaii->Mayu(今ここ)->Koume->Chieri->Anastasia->Aiko", "Kawaii->Mayu(今ここ)->Koume->Chieri->Anastasia->Aiko",
"言語設定を日本語以外にするとこの表示はどうなると思う?", "言語設定を日本語以外にするとこの表示はどうなると思う?",
"今日も使ってくれてありがとう。利用者カウンターがキリ番ならご報告を" "今日も使ってくれてありがとう。利用者カウンターがキリ番ならご報告を",
"Ctrl+Eで通知の赤くなって「Fav: 1」とかなってるのをリセットできる",
"このアプリケーションの正式な名称は小文字thedeskだけど、内部でしか使われてない",
"N押すとトゥートのボックスが出て、すぐ打ち込める。",
"Xを押すとトゥートのボックスは出るけど、打ち込めない。その代わりもう一度押すと消せる。",
"トゥートした後ボックスを閉じるとかそのままにしておくとかは、設定で変えられます。",
"ヌァ=スコ゜、ケエンョ゛ハー゛オセム゛ヌトョ!。シレモゥチャスモハァーワ」。チスョ「ラネ゛ワフン(ァクミス"
] ]

5
app/netlify.toml Normal file
View File

@@ -0,0 +1,5 @@
[[redirects]]
from = "/"
to = "/app"
status = 301
force = true

View File

@@ -1,131 +1,130 @@
{ {
"name": "thedesk", "name": "thedesk",
"version": "21.0.1", "version": "21.0.4",
"codename": "Mayu", "codename": "Mayu",
"description": "TheDesk is a Mastodon client for PC.", "description": "TheDesk is a Mastodon client for PC.",
"repository": "https://github.com/cutls/TheDesk", "repository": "https://github.com/cutls/TheDesk",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"construct": "cd view/make && node make --automatic && cd ../../", "construct": "cd view/make && node make --automatic && cd ../../",
"dev": "npx electron ./ --dev", "dev": "npx electron ./ --dev",
"dist": "build --linux snap", "dist": "build --linux snap",
"watchview": "node view/make/make.js --automatic --watch", "watchview": "node view/make/make.js --automatic --watch",
"build:js": "node build.js", "build:js": "node build.js",
"build": "node view/make/make.js --automatic && npx electron-builder", "build": "node view/make/make.js --automatic && npx electron-builder",
"build:all": "npx electron-builder --win --linux", "build:all": "npx electron-builder --win --linux",
"build:win": "npx electron-builder --win", "build:win": "npx electron-builder --win",
"build:pwa": "node view/make/make.js --automatic --pwa" "build:pwa": "node view/make/make.js --automatic --pwa"
},
"keywords": [
"mastodon",
"client",
"electron",
"thedesk"
],
"bugs": {
"url": "https://github.com/cutls/TheDesk/issues",
"email": "web-pro@cutls.com"
},
"homepage": "https://thedesk.top",
"author": {
"name": "Cutls",
"url": "https://cutls.com/@Cutls",
"email": "web-pro@cutls.com"
},
"contributor": [
{
"name": "とねぢ",
"url": "https://minohdon.jp/@toneji",
"email": "solfa.tono@gmail.com"
}, },
{ "keywords": [
"name": "ぽぷんじゃ", "mastodon",
"url": "https://popon.pptdn.jp/@popn_ja", "client",
"email": "popn.ja@gmail.com" "electron",
}, "thedesk"
{
"name": "kPherox",
"url": "https://pl.kpherox.dev/kPherox",
"email": "admin@mail.kr-kp.com"
}
],
"license": "GPL-3.0",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.13.0",
"custom-electron-titlebar": "^3.2.2-hotfix62",
"electron-dl": "^3.0.0",
"jimp": "^0.10.3",
"jquery": "^3.5.0",
"jquery-ui-dist": "^1.12.1",
"json5": "^2.1.3",
"lodash": "^4.17.15",
"materialize-css": "git://github.com/cutls/materialize#v1-dev",
"sumchecker": "^3.0.1",
"sweetalert2": "^9.10.12",
"system-font-families": "^0.4.1",
"vue": "^2.6.11"
},
"optionalDependencies": {
"itunes-nowplaying-mac": "0.3.1"
},
"devDependencies": {
"chokidar": "^3.3.1",
"electron": "^8.2.3",
"electron-builder": "^22.5.1",
"electron-rebuild": "^1.10.1",
"readline-sync": "1.4.10"
},
"build": {
"productName": "TheDesk",
"appId": "top.thedesk",
"asarUnpack": [
"node_modules/itunes-nowplaying-mac"
], ],
"directories": { "bugs": {
"output": "../build" "url": "https://github.com/cutls/TheDesk/issues",
"email": "p@cutls.com"
}, },
"win": { "homepage": "https://thedesk.top",
"icon": "build/thedesk.ico", "author": {
"target": [ "name": "Cutls",
"nsis", "url": "https://cutls.dev",
"portable", "email": "p@cutls.com"
"appx"
]
}, },
"appx": { "contributor": [{
"identityName": "53491Cutls.TheDesk", "name": "とねぢ",
"applicationId": "Cutls.TheDesk", "url": "https://minohdon.jp/@toneji",
"publisherDisplayName": "Cutls", "email": "solfa.tono@gmail.com"
"publisher": "CN=629757F5-A5EE-474F-9562-B304A89A9FD1", },
"languages": [ {
"JA-JP", "name": "ぽぷんじゃ",
"EN-US" "url": "https://popon.pptdn.jp/@popn_ja",
] "email": "popn.ja@gmail.com"
},
{
"name": "kPherox",
"url": "https://pl.kpherox.dev/kPherox",
"email": "admin@mail.kr-kp.com"
}
],
"license": "GPL-3.0",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.13.1",
"custom-electron-titlebar": "^3.2.2-hotfix62",
"electron-dl": "^3.0.1",
"jimp": "^0.14.0",
"jquery": "^3.5.1",
"jquery-ui-dist": "^1.12.1",
"json5": "^2.1.3",
"lodash": "^4.17.15",
"materialize-css": "git://github.com/cutls/materialize#v1-dev",
"sumchecker": "^3.0.1",
"sweetalert2": "^9.15.2",
"system-font-families": "^0.4.1",
"vue": "^2.6.11"
}, },
"nsis": { "optionalDependencies": {
"oneClick": false, "itunes-nowplaying-mac": "0.3.1"
"allowToChangeInstallationDirectory": true,
"artifactName": "TheDesk-setup.${ext}"
}, },
"linux": { "devDependencies": {
"icon": "build/icons", "chokidar": "^3.4.0",
"target": [ "electron": "^9.0.5",
"zip", "electron-builder": "^22.7.0",
"snap", "electron-rebuild": "^1.11.0",
"deb" "readline-sync": "1.4.10"
],
"category": "Network"
}, },
"mac": { "build": {
"target": [ "productName": "TheDesk",
"dmg", "appId": "top.thedesk",
"zip" "asarUnpack": [
] "node_modules/itunes-nowplaying-mac"
}, ],
"electronDownload": { "directories": {
"version": "8.0.0" "output": "../build"
}, },
"electronVersion": "8.0.0" "win": {
} "icon": "build/thedesk.ico",
} "target": [
"nsis",
"portable",
"appx"
]
},
"appx": {
"identityName": "53491Cutls.TheDesk",
"applicationId": "Cutls.TheDesk",
"publisherDisplayName": "Cutls",
"publisher": "CN=629757F5-A5EE-474F-9562-B304A89A9FD1",
"languages": [
"JA-JP",
"EN-US"
]
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"artifactName": "TheDesk-setup.${ext}"
},
"linux": {
"icon": "build/icons",
"target": [
"zip",
"snap",
"deb"
],
"category": "Network"
},
"mac": {
"target": [
"dmg",
"zip"
]
},
"electronDownload": {
"version": "9.0.5"
},
"electronVersion": "9.0.5"
}
}

View File

@@ -1,5 +1,8 @@
{ {
"latest":[], "latest":[],
"3.1.4": [
"リモート限定の連合タイムライン"
],
"3.1.3": [], "3.1.3": [],
"3.1.2": [], "3.1.2": [],
"3.1.1": [], "3.1.1": [],

View File

@@ -53,6 +53,9 @@
<div id="acct-list"></div> <div id="acct-list"></div>
<div class="divider"></div> <div class="divider"></div>
</div> </div>
<div class="hide-second">
<a href="setting.html">@@haveExported@@</a>
</div>
<div> <div>
<h5>@@add@@</h5> <h5>@@add@@</h5>
<br /> <br />
@@ -66,7 +69,7 @@
<div class="pwa"> <div class="pwa">
@@codesetupwarn@@<br /> @@codesetupwarn@@<br />
<label> <label>
<input type="checkbox" class="filled-in" id="linux" /> <input type="checkbox" class="filled-in checked" id="linux" checked />
<span>@@codesetup@@</span> <span>@@codesetup@@</span>
</label> </label>
<br /> <br />
@@ -125,17 +128,17 @@
<div id="instance-data"> <div id="instance-data">
Some instance data by Some instance data by
<a href="https://instances.social" target="_blank">instances.social API</a><br /> <a href="https://instances.social" target="_blank">instances.social API</a><br />
<h5 id="ins-title"></h5> <h5 id="ins-title" class="ins-loading"></h5>
Administered by:<a id="ins-admin"></a><br /> Administered by:<a id="ins-admin" class="ins-loading"></a><br />
<span id="ins-desc"></span><br /> <span id="ins-desc" class="ins-loading"></span><br />
<img src="../../img/loading.svg" id="ins-prof" width="200" /><br /> <img src="../../img/loading.svg" id="ins-prof" width="200" /><br />
<br /> <br />
@@domain@@:<span id="ins-name"></span><br /> @@domain@@:<span id="ins-name" class="ins-loading"></span><br />
@@connect@@:<span id="ins-connect"></span>@@ko@@<br /> @@connect@@:<span id="ins-connect" class="ins-loading"></span>@@ko@@<br />
@@toots@@:<span id="ins-toot"></span>@@ko@@<br /> @@toots@@:<span id="ins-toot" class="ins-loading"></span>@@ko@@<br />
@@users@@:<span id="ins-user"></span>@@users@@<br /> @@users@@:<span id="ins-user" class="ins-loading"></span>@@users@@<br />
@@safety@@:<span id="ins-per"></span>%<br /> @@safety@@:<span id="ins-per" class="ins-loading"></span>%<br />
@@ver@@:<span id="ins-ver"></span>@<span id="ins-upd"></span><br /> @@ver@@:<span id="ins-ver" class="ins-loading"></span>@<span id="ins-upd" class="ins-loading"></span><br />
</div> </div>
</div> </div>
<script type="text/javascript" src="../../js/ui/theme.js"></script> <script type="text/javascript" src="../../js/ui/theme.js"></script>

View File

@@ -69,16 +69,16 @@
<div id="demobottom"> <div id="demobottom">
<button <button
class="btn waves-effect" class="btn waves-effect"
style="width: 300px;height: 2.5rem;line-height: 0;margin: 0; background-color: var(--accentbtn);" style="width: 23rem;height: 2.5rem;line-height: 0;margin: 0; background-color: var(--accentbtn);"
> >
<i <i
class="material-icons" class="material-icons"
style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;" style="position: relative; top: 0.4rem; font-size: 1.5rem; text-align: center; margin-right: 0.7rem;"
>edit</i >edit</i
>@@toot@@ >@@toot@@
</button> </button>
<div class="leftside reverse" id="demogroup"> <div class="leftside reverse" id="demogroup">
<div class="btnsgroup" style="margin-left: 5px;"> <div class="btnsgroup" style="margin-left: 0.4rem;">
<a href="#" class="nex waves-effect"> <a href="#" class="nex waves-effect">
<i class="material-icons nex big-icon" title="@@acctMan@@(Ctrl+Shift+M)" <i class="material-icons nex big-icon" title="@@acctMan@@(Ctrl+Shift+M)"
>account_circle</i >account_circle</i
@@ -138,11 +138,11 @@
id="acct-sel-prof" id="acct-sel-prof"
title="@@showSelectProf@@(Ctrl+Shift+P)" title="@@showSelectProf@@(Ctrl+Shift+P)"
data-trans-title="post_box_prof" data-trans-title="post_box_prof"
width="24px" style="width: 1.8rem"
/> />
</a> </a>
</div> </div>
<div class="input-field mize" style="float:left; width:calc(100% - 24px); margin-top:0;"> <div class="input-field mize" style="float:left; width:calc(100% - 1.8rem); margin-top:0;">
<select id="post-acct-sel" class="acct-sel" onchange="mdCheck()"></select> <select id="post-acct-sel" class="acct-sel" onchange="mdCheck()"></select>
</div> </div>
<span class="cancel"> <span class="cancel">
@@ -260,7 +260,7 @@
> >
<input <input
id="size" id="size"
style="width: calc(50% - 20px); margin: 0; height: 24px;" style="width: calc(50% - 1.5rem); margin: 0; height: 1.8rem;"
value="12" value="12"
/>px />px
<i <i
@@ -271,7 +271,7 @@
> >
<input <input
id="colorhex" id="colorhex"
style="width: calc(50% - 50px); margin: 0; height: 24px;" style="width: calc(50% - 3.8rem); margin: 0; height: 1.8rem;"
type="color" type="color"
/> />
<br /> <br />
@@ -283,12 +283,12 @@
> >
<input <input
id="linkt" id="linkt"
style="width: calc(50% - 20px); margin: 0; height: 24px;" style="width: calc(50% - 1.5rem); margin: 0; height: 1.8rem;"
placeholder="リンクテキスト" placeholder="リンクテキスト"
/>&nbsp; />&nbsp;
<input <input
id="link2" id="link2"
style="width: calc(50% - 20px); margin: 0; height: 24px;" style="width: calc(50% - 1.5rem); margin: 0; height: 1.8rem;"
placeholder="リンクアドレス" placeholder="リンクアドレス"
/> />
<br /> <br />
@@ -300,12 +300,12 @@
> >
<input <input
id="image" id="image"
style="width: calc(50% - 20px); margin: 0; height: 24px;" style="width: calc(50% - 1.5rem); margin: 0; height: 1.8rem;"
placeholder="代替テキスト" placeholder="代替テキスト"
/>&nbsp; />&nbsp;
<input <input
id="image2" id="image2"
style="width: calc(50% - 20px); margin: 0; height: 24px;" style="width: calc(50% - 1.5rem); margin: 0; height: 1.8rem;"
placeholder="画像アドレス" placeholder="画像アドレス"
/> />
</div> </div>
@@ -383,7 +383,7 @@
>clear</i >clear</i
> >
</div> </div>
<div class="col s12 mize" style="margin-bottom:5px; padding:0;"> <div class="col s12 mize" style="margin-bottom:0.4rem; padding:0;">
<div id="taglist"></div> <div id="taglist"></div>
<div id="preview" class="mize"></div> <div id="preview" class="mize"></div>
<span class=" sml mize" <span class=" sml mize"
@@ -404,7 +404,7 @@
style="margin:0" style="margin:0"
/> />
<div id="sch-box"> <div id="sch-box">
@@postat@@<br /><span class="sml">@@scheduleWarn@@</span><br /> @@postat@@<br /><span class="sml">@@scheduleWarn@@</span><a onclick="expPostMode()">Expire mode(beta)</a><br />
<input <input
type="datetime-local" type="datetime-local"
id="sch-date" id="sch-date"
@@ -417,7 +417,7 @@
</div> </div>
<!-- 公開範囲 Dropdown Structure --> <!-- 公開範囲 Dropdown Structure -->
<ul id="dropdown1" class="dropdown-content"> <ul id="dropdown1" class="dropdown-content">
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;"> <li style="font-size: 1.2rem; display: block; line-height: 1.69rem; padding: 1.1rem 1.23rem;">
@@selectVis@@ @@selectVis@@
</li> </li>
<li> <li>
@@ -767,7 +767,7 @@
<span id="his-follow"></span> <span id="his-follow"></span>
</span> </span>
<span class="cbadge">@@follower@@: <span id="his-follower"></span> </span><br /> <span class="cbadge">@@follower@@: <span id="his-follower"></span> </span><br />
<span class="cbadge" style="max-width:150px; width:150px; " <span class="cbadge" style="max-width:11.5rem; width:11.5rem; "
>Since: >Since:
<span id="his-since"></span> <span id="his-since"></span>
</span> </span>
@@ -1072,7 +1072,7 @@
<br /> <br />
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<div style="float: left;padding-top:3px;line-height: normal;"> <div style="float: left;padding-top:0.23rem;line-height: normal;">
<span id="imgprog"></span>% <br /> <span id="imgprog"></span>% <br />
<span id="imgsec"></span>ms <br /><span id="imgbyte"></span>KB <span id="imgsec"></span>ms <br /><span id="imgbyte"></span>KB
</div> </div>
@@ -1120,60 +1120,6 @@
> >
</div> </div>
</div> </div>
<!--mstdn.jp useragent-->
<div
id="askjp_jp_ua"
class="hide"
style="z-index:505;width:100vw;height:100vh; background-color: #530f0f;color:white;padding:20px;overflow-y:scroll;position:absolute;"
>
<p style="font-size:300%">【緊急】mstdn.jpへのアクセスについて</p>
<br />
<p style="font-size:200%">問題の概要</p>
<p>
合同会社分散型ソーシャルネットワーク機構は非公開審査によってユーザーエージェントベースで個々のアプリに対してAPIへのアクセスを許可する方法を取っています。
</p>
<p>
TheDesk開発者はこれに強く反発し、TheDeskのユーザーエージェントをそのアプリからのアクセスであると特定することができない値にすることを決めました。
</p>
<p>具体的には、"Mastodon client: [起動毎に変わる100文字の英数記号]"と設定しました。</p>
<p style="font-size:200%">ユーザーによる対策</p>
<p>
このバージョンのTheDeskでは任意のユーザーエージェントを適用できます。「設定」内の「環境設定」で設定していただけます。<a
href="setting.html"
>設定</a
>
</p>
<p style="font-size:150%">1. 「TheDesk」を含む値に設定する</p>
<p>
「設定」内の「環境設定」、「ユーザーエージェント」に「TheDesk」を含む値を入れてください。大文字小文字に注意してください。
</p>
<p><b>懸念点</b></p>
<p>
TheDesk開発者は合同会社分散型ソーシャルネットワーク機構に対しこの件についてメールで問い合わせを行っています(抗議ではありません)。問い合わせの過程でアプリ許可が取り消され、使用不能になる可能性があります。
</p>
<p><u>ちなみに</u></p>
<p>
合同会社分散型ソーシャルネットワーク機構はmstdn.jpのお知らせアカウントに対するリプライに書かれたサードパーティクライアントを「審査」の後許可するとトゥートし、複数ユーザーがTheDeskの名前を挙げました。
事実、トゥートの翌日までにTheDeskに対してアクセス許可が出されました。しかし、許可を出す際にTheDeskの標準ユーザーエージェントを機構は一切確認せず、「TheDesk」という文字列が入ったユーザーエージェントを一律で許可する設定にしたようです。
結果として実際の標準ユーザーエージェントはそれに合致せず、不許可のままとなっていました。前バージョンまでの標準ユーザーエージェントは、パッケージ名の都合上全て小文字の「thedesk」を採用していました。
</p>
<p style="font-size:150%">2. 「認定済み」クライアントの名前を含む値に設定する</p>
<p>
「設定」内の「環境設定」、「ユーザーエージェント」に、<a href="https://mstdn.jp/about"
>mstdn.jpのトップページ</a
>記載のアプリ名を含む値を入れてください。大文字小文字やスペースに注意してください。
</p>
<p>
「Mastodon日本鯖です」と書かれた以降の一段を全てコピーして記載してもアクセス可能です。<u
>これほどまでにユーザーエージェント制限は「抜け道」が多いのです。</u
><a href="setting.html">設定</a>
</p>
<p><b>懸念点</b></p>
<p>
その記載されたアプリと合同会社分散型ソーシャルネットワーク機構になんの関係があるかは知りませんが、どちらにしろ他のクライアントの名を借りてアクセスの許可をいただくというあまり道徳的によろしくない方法です。
</p>
<button onclick="$('#askjp_jp_ua').addClass('hide')" class="btn waves-effect">閉じる</button>
</div>
<!-- Modal Structure Release Note--> <!-- Modal Structure Release Note-->
<div id="releasenote" class="modal modal-fixed-footer scr"> <div id="releasenote" class="modal modal-fixed-footer scr">
<div class="modal-content"> <div class="modal-content">
@@ -1181,28 +1127,16 @@
<a href="https://thedesk.top" target="_blank">HP</a><br /> <a href="https://thedesk.top" target="_blank">HP</a><br />
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br /> <a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br />
<br /> <br />
<div id="release-21-0-1_Mayu" class="release-do" style="display:none; "> <div id="release-21-0-4_Mayu" class="release-do" style="display:none; ">
<br /> <br />
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br /> <a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br />
Pixiv Pixiv
FanboxやPatreonでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br /> FanboxやPatreonでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br />
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。 困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
<h5>Release Note 21.0.1 (Mayu)</h5> <h5>Release Note 21.0.4 (Mayu)</h5>
・画像がアップロードできない <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a> <a onclick="udgEx('popn_ja@popon.pptdn.jp','main')" class="contributor"><img src="https://avatars3.githubusercontent.com/u/24523508?s=88&v=4">kaias1jp</a><br> <!--上のdivのidも変えてね-->
・画像のリサイズに失敗する <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a> <a onclick="udgEx('popn_ja@popon.pptdn.jp','main')" class="contributor"><img src="https://avatars3.githubusercontent.com/u/24523508?s=88&v=4">kaias1jp</a><br> ・起動しないバグ <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
画像をダウンロードした後、ボタンを押しても保存先フォルダが表示されない <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br> 引用可能なインスタンスで、すべてのトゥートがミュートされた引用になってしまうバグ heguro<br>
・ユーザーマッチングを削除 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
<h5>Release Note 21.0.0 (Mayu)</h5>
・フォロリクをストリーミングで受け取ったときにNo status hereになる <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
・Apple MusicのNowPlayingでアルバム情報がないときの挙動を改善 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
・Last.fm NowPlaying <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
・テーマCSSに関するバグ <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
・プラットフォームやPWAか否か等で表示を切り替える <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
・ユーザータイムラインをカラム化 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a> <img src="">anonymous user<br>
・スプラッシュスクリーンを追加 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
・アイコンの微調整 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
・FTLのRemote only <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
</div> </div>
<div id="release-en" style="display:none"> <div id="release-en" style="display:none">
@@ -1362,7 +1296,7 @@
id="noauth-url" id="noauth-url"
type="text" type="text"
class="validate" class="validate"
style="width:calc( 70% - 40px);" style="width:calc( 70% - 3rem);"
placeholder="e.g:mstdn.jp" placeholder="e.g:mstdn.jp"
/> />
</div> </div>
@@ -1370,7 +1304,7 @@
</div> </div>
<button <button
class="btn waves-effect blue " class="btn waves-effect blue "
style="width:calc( 100% - 10px);" style="width:calc( 100% - 0.7rem);"
onclick="addColumn()" onclick="addColumn()"
data-trans-i="add" data-trans-i="add"
> >
@@ -1385,11 +1319,11 @@
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select> <select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
</div> </div>
<div class="input-field"> <div class="input-field">
<input id="src" type="text" class="validate" style="width:60%" /> <input id="src" type="text" class="validate" style="width:57%" />
<label for="src" data-trans="src">@@search@@</label> <label for="src" data-trans="src">@@search@@</label>
<button <button
class="btn waves-effect indigo" class="btn waves-effect indigo"
style="width: 36%;padding: 0;padding-left: 15px;" style="width: 36%;padding: 0;padding-left: 1.15rem;"
onclick="src()" onclick="src()"
data-trans-i="src" data-trans-i="src"
> >
@@ -1412,12 +1346,12 @@
id="dirNoAuth-url" id="dirNoAuth-url"
type="text" type="text"
class="validate" class="validate"
style="width:calc( 70% - 40px);" style="width:calc( 70% - 3rem);"
placeholder="e.g:mastodon.social" placeholder="e.g:mastodon.social"
/> />
<button <button
class="btn waves-effect indigo" class="btn waves-effect indigo"
style="width: 120px;padding: 0;padding-left: 15px;" style="width: 9.23rem;padding: 0;padding-left: 1.15rem;"
onclick="directory()" onclick="directory()"
> >
<i class="material-icons left" style="margin:0">search</i>@@show@@ <i class="material-icons left" style="margin:0">search</i>@@show@@
@@ -1604,7 +1538,7 @@
</div> </div>
</div> </div>
</div> </div>
<a onclick="about()" class="nex waves-effect pwa"> <a id="onClickAbout" class="nex waves-effect pwa">
<i class="material-icons" style="font-size: 1rem;">info</i>@@about@@ </a <i class="material-icons" style="font-size: 1rem;">info</i>@@about@@ </a
>&nbsp;|&nbsp; >&nbsp;|&nbsp;
<a onclick="bottomReverse()" class="nex waves-effect"> <a onclick="bottomReverse()" class="nex waves-effect">
@@ -1638,7 +1572,7 @@
> >
<i <i
class="material-icons" class="material-icons"
style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;" style="position: relative; top: 0.38rem; font-size: 1.5rem; text-align: center; margin-right: 0.76rem;"
>edit</i >edit</i
>@@toot@@ >@@toot@@
</button> </button>
@@ -1676,7 +1610,7 @@
</div> </div>
<div> <div>
<div id="tips-menu"> <div id="tips-menu">
<div class="btnsgroup" style="height:34px"> <div class="btnsgroup" style="height:2.61rem">
<span class="grouptitle">Tips:</span> <span class="grouptitle">Tips:</span>
<a onclick="tips('ver')" class="nex waves-effect"> <a onclick="tips('ver')" class="nex waves-effect">
<i class="material-icons nex" title="@@verTips@@" data-trans-title="ver">info</i> <i class="material-icons nex" title="@@verTips@@" data-trans-title="ver">info</i>
@@ -1708,7 +1642,7 @@
>bubble_chart</i >bubble_chart</i
> >
</a> </a>
<div id="tips-text" style="width:300px;"></div> <div id="tips-text" style="width:23rem;"></div>
</div> </div>
</div> </div>
</div> </div>
@@ -1789,6 +1723,7 @@
<!--JS--> <!--JS-->
<script type="text/javascript" src="../../@@node_base@@/jquery/dist/jquery.js"></script> <script type="text/javascript" src="../../@@node_base@@/jquery/dist/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.js"></script> <script type="text/javascript" src="../../js/platform/first.js"></script>
<script type="text/javascript" src="../../js/common/api.js"></script>
<script type="text/javascript" src="../../@@node_base@@/grapheme-splitter/index.js"></script> <script type="text/javascript" src="../../@@node_base@@/grapheme-splitter/index.js"></script>
<script <script
type="text/javascript" type="text/javascript"

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Login as Misskey", "thisismisskey": "Login as Misskey",
"misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.", "misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.",
"nodata": "No data", "nodata": "No data",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Hide text behind warning", "cwDes": "Hide text behind warning",
"selfile": "Attach..", "selfile": "Attach..",
"insertEmoji": "Emojis", "insertEmoji": "Emojis",
"NPSpotify": "NowPlaying(Spotify)",
"NPiTunes": "NowPlaying(macOS)",
"schedule": "Scheduled toot", "schedule": "Scheduled toot",
"postat": "Post at", "postat": "Post at",
"scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)",
@@ -77,6 +75,7 @@
"toots": "Toots", "toots": "Toots",
"follow": "Follow", "follow": "Follow",
"follower": "Follower", "follower": "Follower",
"utlColumn": "Show as a column",
"timeline": "Timeline", "timeline": "Timeline",
"operateOtherAcct": "Cross-account", "operateOtherAcct": "Cross-account",
"list": "List", "list": "List",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Remove this column", "lang_layout_delthis": "Remove this column",
"lang_layout_setthis": "Preferences of this column", "lang_layout_setthis": "Preferences of this column",
"lang_layout_mediafil": "Media filtering", "lang_layout_mediafil": "Media filtering",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Auto Link Analyzer", "lang_layout_linkana": "Auto Link Analyzer",
"lang_layout_linkanades": "Auto link analyzer", "lang_layout_linkanades": "Auto link analyzer",
"lang_layout_tts": "Text to speech ", "lang_layout_tts": "Text to speech ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domain ", "lang_showontl_domain": "Domain ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " replied to you", "lang_parse_mentioned": " replied to you",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "sensitive media", "lang_parse_nsfw": "sensitive media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Reaction", "lang_misskeyparse_reaction": "Reaction",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Login as Misskey", "thisismisskey": "Login as Misskey",
"misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.", "misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.",
"nodata": "No data", "nodata": "No data",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Hide text behind warning", "cwDes": "Hide text behind warning",
"selfile": "Attach..", "selfile": "Attach..",
"insertEmoji": "Emojis", "insertEmoji": "Emojis",
"NPSpotify": "NowPlaying(Spotify)",
"NPiTunes": "NowPlaying(macOS)",
"schedule": "Scheduled toot", "schedule": "Scheduled toot",
"postat": "Post at", "postat": "Post at",
"scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)",
@@ -77,6 +75,7 @@
"toots": "Toots", "toots": "Toots",
"follow": "Follow", "follow": "Follow",
"follower": "Follower", "follower": "Follower",
"utlColumn": "Show as a column",
"timeline": "Timeline", "timeline": "Timeline",
"operateOtherAcct": "Cross-account", "operateOtherAcct": "Cross-account",
"list": "List", "list": "List",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Remove this column", "lang_layout_delthis": "Remove this column",
"lang_layout_setthis": "Preferences of this column", "lang_layout_setthis": "Preferences of this column",
"lang_layout_mediafil": "Media filtering", "lang_layout_mediafil": "Media filtering",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Auto Link Analyzer", "lang_layout_linkana": "Auto Link Analyzer",
"lang_layout_linkanades": "Auto link analyzer", "lang_layout_linkanades": "Auto link analyzer",
"lang_layout_tts": "Text to speech ", "lang_layout_tts": "Text to speech ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domain ", "lang_showontl_domain": "Domain ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " replied to you", "lang_parse_mentioned": " replied to you",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "sensitive media", "lang_parse_nsfw": "sensitive media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Reaction", "lang_misskeyparse_reaction": "Reaction",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Влезте като Misskey", "thisismisskey": "Влезте като Misskey",
"misskeylogin": "Прочетете <a href=\"https://thedesk.top/how-to-misskey-login.html\">Документацията</a>, за да влезете в Misskey.", "misskeylogin": "Прочетете <a href=\"https://thedesk.top/how-to-misskey-login.html\">Документацията</a>, за да влезете в Misskey.",
"nodata": "Няма данни", "nodata": "Няма данни",
"accessTokenSetup": "Използвайте маркера за достъп и вход (щракнете след попълване, но не код, а знак за достъп в поле: Разширено)" "accessTokenSetup": "Използвайте маркера за достъп и вход (щракнете след попълване, но не код, а знак за достъп в поле: Разширено)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Скриване на текста зад предупреждение", "cwDes": "Скриване на текста зад предупреждение",
"selfile": "Прикачи..", "selfile": "Прикачи..",
"insertEmoji": "Емотикони", "insertEmoji": "Емотикони",
"NPSpotify": "Възпроизвеждане сега (Spotify)",
"NPiTunes": "Възпроизвеждане сега (macOS)",
"schedule": "Планиран тоот", "schedule": "Планиран тоот",
"postat": "Публикация в", "postat": "Публикация в",
"scheduleWarn": "2.7.0 ~ Минимален интервал от време:5мин. (часовникът на сървъра може да не е точен.)", "scheduleWarn": "2.7.0 ~ Минимален интервал от време:5мин. (часовникът на сървъра може да не е точен.)",
@@ -77,6 +75,7 @@
"toots": "Тоот", "toots": "Тоот",
"follow": "Следвам", "follow": "Следвам",
"follower": "Последователи", "follower": "Последователи",
"utlColumn": "Show as a column",
"timeline": "Времева линия", "timeline": "Времева линия",
"operateOtherAcct": "Свързан-профил", "operateOtherAcct": "Свързан-профил",
"list": "Списък", "list": "Списък",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Премахване на тази колона", "lang_layout_delthis": "Премахване на тази колона",
"lang_layout_setthis": "Предпочитания за тази колона", "lang_layout_setthis": "Предпочитания за тази колона",
"lang_layout_mediafil": "Филтриране на медиите", "lang_layout_mediafil": "Филтриране на медиите",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Автоматичен анализатор на връзки", "lang_layout_linkana": "Автоматичен анализатор на връзки",
"lang_layout_linkanades": "Автоматичен анализатор на връзки", "lang_layout_linkanades": "Автоматичен анализатор на връзки",
"lang_layout_tts": "Текст към говор ", "lang_layout_tts": "Текст към говор ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domain ", "lang_showontl_domain": "Domain ",
"lang_showontl_listwarn": "Следвайте, за да добавите този потребител към списъците.", "lang_showontl_listwarn": "Следвайте, за да добавите този потребител към списъците.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " replied to you", "lang_parse_mentioned": " replied to you",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "NSFW media", "lang_parse_nsfw": "NSFW media",
"lang_parse_html": "Показване на вграденият HTML код", "lang_parse_html": "Показване на вграденият HTML код",
"lang_parse_notffilter": "Показване на известията от този потребител", "lang_parse_notffilter": "Показване на известията от този потребител",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Повторно публикуване", "lang_misskeyparse_renote": "Повторно публикуване",
"lang_misskeyparse_renoteqt": "Повторна бележка", "lang_misskeyparse_renoteqt": "Повторна бележка",
"lang_misskeyparse_reaction": "Реакция", "lang_misskeyparse_reaction": "Реакция",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Login as Misskey", "thisismisskey": "Login as Misskey",
"misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.", "misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.",
"nodata": "No data", "nodata": "No data",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Hide text behind warning", "cwDes": "Hide text behind warning",
"selfile": "Attach..", "selfile": "Attach..",
"insertEmoji": "Emojis", "insertEmoji": "Emojis",
"NPSpotify": "NowPlaying(Spotify)",
"NPiTunes": "NowPlaying(macOS)",
"schedule": "Scheduled toot", "schedule": "Scheduled toot",
"postat": "Post at", "postat": "Post at",
"scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)",
@@ -77,6 +75,7 @@
"toots": "Toots", "toots": "Toots",
"follow": "Follow", "follow": "Follow",
"follower": "Follower", "follower": "Follower",
"utlColumn": "Show as a column",
"timeline": "Timeline", "timeline": "Timeline",
"operateOtherAcct": "Cross-account", "operateOtherAcct": "Cross-account",
"list": "List", "list": "List",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Remove this column", "lang_layout_delthis": "Remove this column",
"lang_layout_setthis": "Preferences of this column", "lang_layout_setthis": "Preferences of this column",
"lang_layout_mediafil": "Media filtering", "lang_layout_mediafil": "Media filtering",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Auto Link Analyzer", "lang_layout_linkana": "Auto Link Analyzer",
"lang_layout_linkanades": "Auto link analyzer", "lang_layout_linkanades": "Auto link analyzer",
"lang_layout_tts": "Text to speech ", "lang_layout_tts": "Text to speech ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domain ", "lang_showontl_domain": "Domain ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " replied to you", "lang_parse_mentioned": " replied to you",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "sensitive media", "lang_parse_nsfw": "sensitive media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Reaction", "lang_misskeyparse_reaction": "Reaction",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Přihlásit jako Misskey", "thisismisskey": "Přihlásit jako Misskey",
"misskeylogin": "Pro přihlášení do Misskey si přečtěte <a href=\"https://thedesk.top/how-to-misskey-login.html\">dokumentaci (ja)</a>.", "misskeylogin": "Pro přihlášení do Misskey si přečtěte <a href=\"https://thedesk.top/how-to-misskey-login.html\">dokumentaci (ja)</a>.",
"nodata": "No data", "nodata": "No data",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Skrýt text za varováním", "cwDes": "Skrýt text za varováním",
"selfile": "Přiložit...", "selfile": "Přiložit...",
"insertEmoji": "Emoji", "insertEmoji": "Emoji",
"NPSpotify": "NowPlaying(Spotify)",
"NPiTunes": "NowPlaying(macOS)",
"schedule": "Plánovaný toot", "schedule": "Plánovaný toot",
"postat": "Odeslat jak", "postat": "Odeslat jak",
"scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)",
@@ -77,6 +75,7 @@
"toots": "Tooty", "toots": "Tooty",
"follow": "Sledovat", "follow": "Sledovat",
"follower": "Sledující", "follower": "Sledující",
"utlColumn": "Show as a column",
"timeline": "Časová osa", "timeline": "Časová osa",
"operateOtherAcct": "Cross-account", "operateOtherAcct": "Cross-account",
"list": "Seznam", "list": "Seznam",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Odstranit tento sloupec", "lang_layout_delthis": "Odstranit tento sloupec",
"lang_layout_setthis": "Nastavení tohoto sloupce", "lang_layout_setthis": "Nastavení tohoto sloupce",
"lang_layout_mediafil": "Filtrování médií", "lang_layout_mediafil": "Filtrování médií",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Automatický analyzátor odkazů", "lang_layout_linkana": "Automatický analyzátor odkazů",
"lang_layout_linkanades": "Automatický analyzátor odkazů", "lang_layout_linkanades": "Automatický analyzátor odkazů",
"lang_layout_tts": "Převod textu na řeč ", "lang_layout_tts": "Převod textu na řeč ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Doména ", "lang_showontl_domain": "Doména ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " vám odpověděl/a", "lang_parse_mentioned": " vám odpověděl/a",
"lang_parse_faved": " si oblíbil/a váš toot", "lang_parse_faved": " si oblíbil/a váš toot",
"lang_parse_bted": " boostnul/a váš toot", "lang_parse_bted": " boostnul/a váš toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "NSFW media", "lang_parse_nsfw": "NSFW media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Znovusdílení", "lang_misskeyparse_renote": "Znovusdílení",
"lang_misskeyparse_renoteqt": "Renotování", "lang_misskeyparse_renoteqt": "Renotování",
"lang_misskeyparse_reaction": "Reakce", "lang_misskeyparse_reaction": "Reakce",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Login as Misskey", "thisismisskey": "Login as Misskey",
"misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.", "misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.",
"nodata": "No data", "nodata": "No data",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Hide text behind warning", "cwDes": "Hide text behind warning",
"selfile": "Attach..", "selfile": "Attach..",
"insertEmoji": "Emojis", "insertEmoji": "Emojis",
"NPSpotify": "NowPlaying(Spotify)",
"NPiTunes": "NowPlaying(macOS)",
"schedule": "Scheduled toot", "schedule": "Scheduled toot",
"postat": "Post at", "postat": "Post at",
"scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)",
@@ -77,6 +75,7 @@
"toots": "Toots", "toots": "Toots",
"follow": "Follow", "follow": "Follow",
"follower": "Follower", "follower": "Follower",
"utlColumn": "Show as a column",
"timeline": "Timeline", "timeline": "Timeline",
"operateOtherAcct": "Cross-account", "operateOtherAcct": "Cross-account",
"list": "List", "list": "List",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Remove this column", "lang_layout_delthis": "Remove this column",
"lang_layout_setthis": "Preferences of this column", "lang_layout_setthis": "Preferences of this column",
"lang_layout_mediafil": "Media filtering", "lang_layout_mediafil": "Media filtering",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Auto Link Analyzer", "lang_layout_linkana": "Auto Link Analyzer",
"lang_layout_linkanades": "Auto link analyzer", "lang_layout_linkanades": "Auto link analyzer",
"lang_layout_tts": "Text to speech ", "lang_layout_tts": "Text to speech ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domain ", "lang_showontl_domain": "Domain ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " replied to you", "lang_parse_mentioned": " replied to you",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "sensitive media", "lang_parse_nsfw": "sensitive media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Reaction", "lang_misskeyparse_reaction": "Reaction",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Als Misskey anmelden", "thisismisskey": "Als Misskey anmelden",
"misskeylogin": "Lies die <a href=\"https://thedesk.top/how-to-misskey-login.html\">Doku (japanisch)</a> um dich bei Misskey einzuloggen.", "misskeylogin": "Lies die <a href=\"https://thedesk.top/how-to-misskey-login.html\">Doku (japanisch)</a> um dich bei Misskey einzuloggen.",
"nodata": "Keine Daten", "nodata": "Keine Daten",
"accessTokenSetup": "Benutze Zugangs-Token zum Anmelden (Klicke nach Ausfüllen nicht den Code, sondern den Access-Token im Kästchen: Erweitert)" "accessTokenSetup": "Benutze Zugangs-Token zum Anmelden (Klicke nach Ausfüllen nicht den Code, sondern den Access-Token im Kästchen: Erweitert)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -2,7 +2,7 @@
"draghere": "Zum Hochladen hier her ziehen", "draghere": "Zum Hochladen hier her ziehen",
"close": "Schließen", "close": "Schließen",
"webSrc": "Suche im Internet", "webSrc": "Suche im Internet",
"tsSrc": "Search on tootsearch", "tsSrc": "Bei Tootsearch suchen",
"showSelectProf": "Ausgewähltes Konto anzeigen", "showSelectProf": "Ausgewähltes Konto anzeigen",
"closethisbox": "Diesen Dialog schließen", "closethisbox": "Diesen Dialog schließen",
"toot": "Tröt", "toot": "Tröt",
@@ -11,8 +11,6 @@
"cwDes": "Text hinter Warnung verstecken", "cwDes": "Text hinter Warnung verstecken",
"selfile": "Anhängen...", "selfile": "Anhängen...",
"insertEmoji": "Emojis", "insertEmoji": "Emojis",
"NPSpotify": "Wird gerade gespielt (Spotify)",
"NPiTunes": "Wird gerade wiedergegeben(macOS)",
"schedule": "Geplanter Tröt", "schedule": "Geplanter Tröt",
"postat": "Senden um", "postat": "Senden um",
"scheduleWarn": "2.7.0~ Mindestzeitabstand: von 5min(Uhr auf dem Server ist möglicherweise ungenau.)", "scheduleWarn": "2.7.0~ Mindestzeitabstand: von 5min(Uhr auf dem Server ist möglicherweise ungenau.)",
@@ -77,6 +75,7 @@
"toots": "Tröts", "toots": "Tröts",
"follow": "Folgen", "follow": "Folgen",
"follower": "Abonnenten", "follower": "Abonnenten",
"utlColumn": "Show as a column",
"timeline": "Verlauf", "timeline": "Verlauf",
"operateOtherAcct": "Cross-Account", "operateOtherAcct": "Cross-Account",
"list": "Liste", "list": "Liste",
@@ -179,11 +178,11 @@
"active": "Kürzlich aktiv", "active": "Kürzlich aktiv",
"newcomer": "Neu eingetroffen", "newcomer": "Neu eingetroffen",
"local_only": "Nur lokal", "local_only": "Nur lokal",
"menu": "Menu", "menu": "Menü",
"demoBottomBtns": "Willkommensguide", "demoBottomBtns": "Willkommensguide",
"lookAtBottom": "Schauen Sie sich den unteren Teil des Fensters an. Hier sind einige Tipps darüber.", "lookAtBottom": "Schauen Sie sich den unteren Teil des Fensters an. Hier sind einige Tipps darüber.",
"acctManDesc": "Fügen Sie weitere Konten hinzu und loggen Sie sie aus.", "acctManDesc": "Fügen Sie weitere Konten hinzu und loggen Sie sie aus.",
"settingDesc": "Many and many preferences here. You will couldn't check it all!", "settingDesc": "Hier sind sehr, sehr viele Einstellungen. Du könntest gar nicht alles ausprobieren!",
"nanoDescPlus": "Mini-Fenster-Klient (experimentell)", "nanoDescPlus": "Mini-Fenster-Klient (experimentell)",
"menuDesc": "All daily TheDesk and Mastodon tuning like <b>add and sort columns</b>, <b>list and filter check</b>." "menuDesc": "All daily TheDesk and Mastodon tuning like <b>add and sort columns</b>, <b>list and filter check</b>."
} }

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Diese Spalte löschen", "lang_layout_delthis": "Diese Spalte löschen",
"lang_layout_setthis": "Einstellungen dieser Spalte", "lang_layout_setthis": "Einstellungen dieser Spalte",
"lang_layout_mediafil": "Medien filtern", "lang_layout_mediafil": "Medien filtern",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Automatische Link-Analyse", "lang_layout_linkana": "Automatische Link-Analyse",
"lang_layout_linkanades": "Automatische Link-Analyse", "lang_layout_linkanades": "Automatische Link-Analyse",
"lang_layout_tts": "Sprachausgabe ", "lang_layout_tts": "Sprachausgabe ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domäne ", "lang_showontl_domain": "Domäne ",
"lang_showontl_listwarn": "Folgen, um diesen Benutzer zu Listen hinzuzufügen.", "lang_showontl_listwarn": "Folgen, um diesen Benutzer zu Listen hinzuzufügen.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " hat dir geantwortet", "lang_parse_mentioned": " hat dir geantwortet",
"lang_parse_faved": " favorisierte deinen Tröt", "lang_parse_faved": " favorisierte deinen Tröt",
"lang_parse_bted": " hat deinen Tröt verstärkt", "lang_parse_bted": " hat deinen Tröt verstärkt",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "NSFW Medien", "lang_parse_nsfw": "NSFW Medien",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Benachrichtigungen dieses Benutzers anzeigen", "lang_parse_notffilter": "Benachrichtigungen dieses Benutzers anzeigen",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Weiterleiten", "lang_misskeyparse_renote": "Weiterleiten",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Reaktion", "lang_misskeyparse_reaction": "Reaktion",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk speichert Ihre Daten auf dem thedesk.top Server.", "linkwarn": "TheDesk speichert Ihre Daten auf dem thedesk.top Server.",
"connect": "Verbinden", "connect": "Verbinden",
"disconnect": "Trennen", "disconnect": "Trennen",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Login as Misskey", "thisismisskey": "Login as Misskey",
"misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.", "misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.",
"nodata": "No data", "nodata": "No data",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Hide text behind warning", "cwDes": "Hide text behind warning",
"selfile": "Attach..", "selfile": "Attach..",
"insertEmoji": "Emojis", "insertEmoji": "Emojis",
"NPSpotify": "NowPlaying(Spotify)",
"NPiTunes": "NowPlaying(macOS)",
"schedule": "Scheduled toot", "schedule": "Scheduled toot",
"postat": "Post at", "postat": "Post at",
"scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)",
@@ -77,6 +75,7 @@
"toots": "Toots", "toots": "Toots",
"follow": "Follow", "follow": "Follow",
"follower": "Follower", "follower": "Follower",
"utlColumn": "Show as a column",
"timeline": "Timeline", "timeline": "Timeline",
"operateOtherAcct": "Cross-account", "operateOtherAcct": "Cross-account",
"list": "List", "list": "List",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Remove this column", "lang_layout_delthis": "Remove this column",
"lang_layout_setthis": "Preferences of this column", "lang_layout_setthis": "Preferences of this column",
"lang_layout_mediafil": "Media filtering", "lang_layout_mediafil": "Media filtering",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Auto Link Analyzer", "lang_layout_linkana": "Auto Link Analyzer",
"lang_layout_linkanades": "Auto link analyzer", "lang_layout_linkanades": "Auto link analyzer",
"lang_layout_tts": "Text to speech ", "lang_layout_tts": "Text to speech ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domain ", "lang_showontl_domain": "Domain ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " replied to you", "lang_parse_mentioned": " replied to you",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "sensitive media", "lang_parse_nsfw": "sensitive media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Reaction", "lang_misskeyparse_reaction": "Reaction",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "crwdns3052:0crwdne3052:0", "thisismisskey": "crwdns3052:0crwdne3052:0",
"misskeylogin": "crwdns3054:0crwdne3054:0", "misskeylogin": "crwdns3054:0crwdne3054:0",
"nodata": "crwdns3056:0crwdne3056:0", "nodata": "crwdns3056:0crwdne3056:0",
"accessTokenSetup": "crwdns4362:0crwdne4362:0" "accessTokenSetup": "crwdns4362:0crwdne4362:0",
"haveExported": "crwdns4500:0crwdne4500:0"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "crwdns3072:0crwdne3072:0", "cwDes": "crwdns3072:0crwdne3072:0",
"selfile": "crwdns3074:0crwdne3074:0", "selfile": "crwdns3074:0crwdne3074:0",
"insertEmoji": "crwdns3076:0crwdne3076:0", "insertEmoji": "crwdns3076:0crwdne3076:0",
"NPSpotify": "crwdns3078:0crwdne3078:0",
"NPiTunes": "crwdns3080:0crwdne3080:0",
"schedule": "crwdns3082:0crwdne3082:0", "schedule": "crwdns3082:0crwdne3082:0",
"postat": "crwdns3084:0crwdne3084:0", "postat": "crwdns3084:0crwdne3084:0",
"scheduleWarn": "crwdns3086:0crwdne3086:0", "scheduleWarn": "crwdns3086:0crwdne3086:0",
@@ -77,6 +75,7 @@
"toots": "crwdns3198:0crwdne3198:0", "toots": "crwdns3198:0crwdne3198:0",
"follow": "crwdns3200:0crwdne3200:0", "follow": "crwdns3200:0crwdne3200:0",
"follower": "crwdns3202:0crwdne3202:0", "follower": "crwdns3202:0crwdne3202:0",
"utlColumn": "crwdns4492:0crwdne4492:0",
"timeline": "crwdns3204:0crwdne3204:0", "timeline": "crwdns3204:0crwdne3204:0",
"operateOtherAcct": "crwdns3206:0crwdne3206:0", "operateOtherAcct": "crwdns3206:0crwdne3206:0",
"list": "crwdns3208:0crwdne3208:0", "list": "crwdns3208:0crwdne3208:0",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "crwdns3640:0crwdne3640:0", "lang_layout_delthis": "crwdns3640:0crwdne3640:0",
"lang_layout_setthis": "crwdns3642:0crwdne3642:0", "lang_layout_setthis": "crwdns3642:0crwdne3642:0",
"lang_layout_mediafil": "crwdns3644:0crwdne3644:0", "lang_layout_mediafil": "crwdns3644:0crwdne3644:0",
"lang_layout_remoteOnly": "crwdns4494:0crwdne4494:0",
"lang_layout_linkana": "crwdns3646:0crwdne3646:0", "lang_layout_linkana": "crwdns3646:0crwdne3646:0",
"lang_layout_linkanades": "crwdns3648:0crwdne3648:0", "lang_layout_linkanades": "crwdns3648:0crwdne3648:0",
"lang_layout_tts": "crwdns3650:0crwdne3650:0", "lang_layout_tts": "crwdns3650:0crwdne3650:0",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "crwdns3710:0crwdne3710:0", "lang_showontl_domain": "crwdns3710:0crwdne3710:0",
"lang_showontl_listwarn": "crwdns3712:0crwdne3712:0", "lang_showontl_listwarn": "crwdns3712:0crwdne3712:0",
"lang_showontl_verified": "crwdns3714:0crwdne3714:0", "lang_showontl_verified": "crwdns3714:0crwdne3714:0",
"lang_status_requesting": "crwdns4496:0crwdne4496:0",
"lang_parse_mentioned": "crwdns3716:0crwdne3716:0", "lang_parse_mentioned": "crwdns3716:0crwdne3716:0",
"lang_parse_faved": "crwdns3718:0crwdne3718:0", "lang_parse_faved": "crwdns3718:0crwdne3718:0",
"lang_parse_bted": "crwdns3720:0crwdne3720:0", "lang_parse_bted": "crwdns3720:0crwdne3720:0",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "crwdns3800:0crwdne3800:0", "lang_parse_nsfw": "crwdns3800:0crwdne3800:0",
"lang_parse_html": "crwdns4388:0crwdne4388:0", "lang_parse_html": "crwdns4388:0crwdne4388:0",
"lang_parse_notffilter": "crwdns3802:0crwdne3802:0", "lang_parse_notffilter": "crwdns3802:0crwdne3802:0",
"lang_parse_hidden": "crwdns4498:0crwdne4498:0",
"lang_misskeyparse_renote": "crwdns3804:0crwdne3804:0", "lang_misskeyparse_renote": "crwdns3804:0crwdne3804:0",
"lang_misskeyparse_renoteqt": "crwdns3806:0crwdne3806:0", "lang_misskeyparse_renoteqt": "crwdns3806:0crwdne3806:0",
"lang_misskeyparse_reaction": "crwdns3808:0crwdne3808:0", "lang_misskeyparse_reaction": "crwdns3808:0crwdne3808:0",

View File

@@ -167,6 +167,7 @@
"linkwarn": "crwdns4194:0crwdne4194:0", "linkwarn": "crwdns4194:0crwdne4194:0",
"connect": "crwdns4196:0crwdne4196:0", "connect": "crwdns4196:0crwdne4196:0",
"disconnect": "crwdns4198:0crwdne4198:0", "disconnect": "crwdns4198:0crwdne4198:0",
"lastFmWarn": "crwdns4490:0crwdne4490:0",
"templateedit": "crwdns4340:0crwdne4340:0", "templateedit": "crwdns4340:0crwdne4340:0",
"templateeditwarn": "crwdns4342:0crwdne4342:0", "templateeditwarn": "crwdns4342:0crwdne4342:0",
"template1": "crwdns4344:0{song}crwdnd4344:0{album}crwdnd4344:0{artist}crwdnd4344:0{url}crwdne4344:0", "template1": "crwdns4344:0{song}crwdnd4344:0{album}crwdnd4344:0{artist}crwdnd4344:0{url}crwdne4344:0",

View File

@@ -20,5 +20,6 @@
"thisismisskey":"Login as Misskey", "thisismisskey":"Login as Misskey",
"misskeylogin":"Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.", "misskeylogin":"Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.",
"nodata":"No data", "nodata":"No data",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -166,6 +166,7 @@
"lang_showontl_domain": "Domain ", "lang_showontl_domain": "Domain ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " replied to you", "lang_parse_mentioned": " replied to you",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -220,6 +221,7 @@
"lang_parse_nsfw": "sensitive media", "lang_parse_nsfw": "sensitive media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Reaction", "lang_misskeyparse_reaction": "Reaction",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Iniciar sesión con Misskey", "thisismisskey": "Iniciar sesión con Misskey",
"misskeylogin": "Leé <a href=\"https://docs.thedesk.top/\">la documentación (en japonés)</a> para usar Misskey.", "misskeylogin": "Leé <a href=\"https://docs.thedesk.top/\">la documentación (en japonés)</a> para usar Misskey.",
"nodata": "Sin datos", "nodata": "Sin datos",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Ocultar texto con advertencia de contenido", "cwDes": "Ocultar texto con advertencia de contenido",
"selfile": "Adjuntar…", "selfile": "Adjuntar…",
"insertEmoji": "Emojis", "insertEmoji": "Emojis",
"NPSpotify": "Ahora suena (Spotify)",
"NPiTunes": "Ahora suena (macOS)",
"schedule": "Toot programado", "schedule": "Toot programado",
"postat": "Publicar el", "postat": "Publicar el",
"scheduleWarn": "2.7.0~ Intervalo mínimo: 5 minutos (el reloj en el servidor podría no ser preciso).", "scheduleWarn": "2.7.0~ Intervalo mínimo: 5 minutos (el reloj en el servidor podría no ser preciso).",
@@ -77,6 +75,7 @@
"toots": "Toots", "toots": "Toots",
"follow": "Seguir", "follow": "Seguir",
"follower": "Seguidor", "follower": "Seguidor",
"utlColumn": "Show as a column",
"timeline": "Línea temporal", "timeline": "Línea temporal",
"operateOtherAcct": "Cuenta cruzada", "operateOtherAcct": "Cuenta cruzada",
"list": "Enlistar", "list": "Enlistar",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Quitar esta columna", "lang_layout_delthis": "Quitar esta columna",
"lang_layout_setthis": "Configuración de esta columna", "lang_layout_setthis": "Configuración de esta columna",
"lang_layout_mediafil": "Filtro de medio", "lang_layout_mediafil": "Filtro de medio",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Analizador automático de enlace", "lang_layout_linkana": "Analizador automático de enlace",
"lang_layout_linkanades": "Analizador automático de enlace", "lang_layout_linkanades": "Analizador automático de enlace",
"lang_layout_tts": "Texto hablado ", "lang_layout_tts": "Texto hablado ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Dominio ", "lang_showontl_domain": "Dominio ",
"lang_showontl_listwarn": "Seguí a este usuario para agregarlo a las listas.", "lang_showontl_listwarn": "Seguí a este usuario para agregarlo a las listas.",
"lang_showontl_verified": "Este sitio web está verificado por su propietario en ", "lang_showontl_verified": "Este sitio web está verificado por su propietario en ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " te respondió", "lang_parse_mentioned": " te respondió",
"lang_parse_faved": " marcó tu toot como favorito", "lang_parse_faved": " marcó tu toot como favorito",
"lang_parse_bted": " retooteó tu toot", "lang_parse_bted": " retooteó tu toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "medios sensibles", "lang_parse_nsfw": "medios sensibles",
"lang_parse_html": "Mostrar HTML insertado", "lang_parse_html": "Mostrar HTML insertado",
"lang_parse_notffilter": "Mostrar notificaciones de este usuario", "lang_parse_notffilter": "Mostrar notificaciones de este usuario",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Republicar", "lang_misskeyparse_renote": "Republicar",
"lang_misskeyparse_renoteqt": "Renovar", "lang_misskeyparse_renoteqt": "Renovar",
"lang_misskeyparse_reaction": "Reacción", "lang_misskeyparse_reaction": "Reacción",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk guarda tus datos en el servidor thedesk.top.", "linkwarn": "TheDesk guarda tus datos en el servidor thedesk.top.",
"connect": "Conectar", "connect": "Conectar",
"disconnect": "Desconectar", "disconnect": "Desconectar",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Editar plantilla", "templateedit": "Editar plantilla",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify: {artist}: nombre del artista // {song}: nombre del tema // {album}: nombre del álbum // {url}: dirección web a Spotify", "template1": "Spotify: {artist}: nombre del artista // {song}: nombre del tema // {album}: nombre del álbum // {url}: dirección web a Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Iniciar sesión como Misskey", "thisismisskey": "Iniciar sesión como Misskey",
"misskeylogin": "Leer <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> para iniciar sesión en Misskey.", "misskeylogin": "Leer <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> para iniciar sesión en Misskey.",
"nodata": "Sin datos", "nodata": "Sin datos",
"accessTokenSetup": "Usar el token de acceso para iniciar sesión (haga clic después de completar no el código si no el token de acceso en el casilla: avanzado)" "accessTokenSetup": "Usar el token de acceso para iniciar sesión (haga clic después de completar no el código si no el token de acceso en el casilla: avanzado)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Hide text behind warning", "cwDes": "Hide text behind warning",
"selfile": "Attach..", "selfile": "Attach..",
"insertEmoji": "Emojis", "insertEmoji": "Emojis",
"NPSpotify": "NowPlaying(Spotify)",
"NPiTunes": "NowPlaying(macOS)",
"schedule": "Scheduled toot", "schedule": "Scheduled toot",
"postat": "Post at", "postat": "Post at",
"scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)",
@@ -77,6 +75,7 @@
"toots": "Toots", "toots": "Toots",
"follow": "Follow", "follow": "Follow",
"follower": "Follower", "follower": "Follower",
"utlColumn": "Show as a column",
"timeline": "Timeline", "timeline": "Timeline",
"operateOtherAcct": "Cross-account", "operateOtherAcct": "Cross-account",
"list": "List", "list": "List",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Remove this column", "lang_layout_delthis": "Remove this column",
"lang_layout_setthis": "Preferences of this column", "lang_layout_setthis": "Preferences of this column",
"lang_layout_mediafil": "Media filtering", "lang_layout_mediafil": "Media filtering",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Auto Link Analyzer", "lang_layout_linkana": "Auto Link Analyzer",
"lang_layout_linkanades": "Auto link analyzer", "lang_layout_linkanades": "Auto link analyzer",
"lang_layout_tts": "Text to speech ", "lang_layout_tts": "Text to speech ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domain ", "lang_showontl_domain": "Domain ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " replied to you", "lang_parse_mentioned": " replied to you",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "sensitive media", "lang_parse_nsfw": "sensitive media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Reaction", "lang_misskeyparse_reaction": "Reaction",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Login as Misskey", "thisismisskey": "Login as Misskey",
"misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.", "misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.",
"nodata": "No data", "nodata": "No data",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Hide text behind warning", "cwDes": "Hide text behind warning",
"selfile": "Attach..", "selfile": "Attach..",
"insertEmoji": "Emojis", "insertEmoji": "Emojis",
"NPSpotify": "NowPlaying(Spotify)",
"NPiTunes": "NowPlaying(macOS)",
"schedule": "Scheduled toot", "schedule": "Scheduled toot",
"postat": "Post at", "postat": "Post at",
"scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)",
@@ -77,6 +75,7 @@
"toots": "Toots", "toots": "Toots",
"follow": "Follow", "follow": "Follow",
"follower": "Follower", "follower": "Follower",
"utlColumn": "Show as a column",
"timeline": "Timeline", "timeline": "Timeline",
"operateOtherAcct": "Cross-account", "operateOtherAcct": "Cross-account",
"list": "List", "list": "List",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Remove this column", "lang_layout_delthis": "Remove this column",
"lang_layout_setthis": "Preferences of this column", "lang_layout_setthis": "Preferences of this column",
"lang_layout_mediafil": "Media filtering", "lang_layout_mediafil": "Media filtering",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Auto Link Analyzer", "lang_layout_linkana": "Auto Link Analyzer",
"lang_layout_linkanades": "Auto link analyzer", "lang_layout_linkanades": "Auto link analyzer",
"lang_layout_tts": "Text to speech ", "lang_layout_tts": "Text to speech ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domain ", "lang_showontl_domain": "Domain ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " replied to you", "lang_parse_mentioned": " replied to you",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "sensitive media", "lang_parse_nsfw": "sensitive media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Reaction", "lang_misskeyparse_reaction": "Reaction",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Login as Misskey", "thisismisskey": "Login as Misskey",
"misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.", "misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.",
"nodata": "No data", "nodata": "No data",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Hide text behind warning", "cwDes": "Hide text behind warning",
"selfile": "Attach..", "selfile": "Attach..",
"insertEmoji": "Émojis", "insertEmoji": "Émojis",
"NPSpotify": "Spotify NowPlaying",
"NPiTunes": "iTunes NowPlaying(macOS)",
"schedule": "Scheduled toot", "schedule": "Scheduled toot",
"postat": "Post at", "postat": "Post at",
"scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)",
@@ -77,6 +75,7 @@
"toots": "Pouets", "toots": "Pouets",
"follow": "Follow", "follow": "Follow",
"follower": "Follower", "follower": "Follower",
"utlColumn": "Show as a column",
"timeline": "Fil", "timeline": "Fil",
"operateOtherAcct": "Cross-account", "operateOtherAcct": "Cross-account",
"list": "Liste", "list": "Liste",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Remove this column", "lang_layout_delthis": "Remove this column",
"lang_layout_setthis": "Paramètres de cette colonne", "lang_layout_setthis": "Paramètres de cette colonne",
"lang_layout_mediafil": "Media filtering", "lang_layout_mediafil": "Media filtering",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Auto Link Analyzer", "lang_layout_linkana": "Auto Link Analyzer",
"lang_layout_linkanades": "Auto link analyzer", "lang_layout_linkanades": "Auto link analyzer",
"lang_layout_tts": "Text to speech ", "lang_layout_tts": "Text to speech ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domaine ", "lang_showontl_domain": "Domaine ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " vous a répondu", "lang_parse_mentioned": " vous a répondu",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "sensitive media", "lang_parse_nsfw": "sensitive media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Réaction", "lang_misskeyparse_reaction": "Réaction",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

View File

@@ -20,5 +20,6 @@
"thisismisskey": "Login as Misskey", "thisismisskey": "Login as Misskey",
"misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.", "misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.",
"nodata": "No data", "nodata": "No data",
"accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)" "accessTokenSetup": "Use access token to login(click after fill not code but access-token in box: Advanced)",
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
} }

View File

@@ -11,8 +11,6 @@
"cwDes": "Hide text behind warning", "cwDes": "Hide text behind warning",
"selfile": "Attach..", "selfile": "Attach..",
"insertEmoji": "Emojis", "insertEmoji": "Emojis",
"NPSpotify": "NowPlaying(Spotify)",
"NPiTunes": "NowPlaying(macOS)",
"schedule": "Scheduled toot", "schedule": "Scheduled toot",
"postat": "Post at", "postat": "Post at",
"scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)",
@@ -77,6 +75,7 @@
"toots": "Toots", "toots": "Toots",
"follow": "Follow", "follow": "Follow",
"follower": "Follower", "follower": "Follower",
"utlColumn": "Show as a column",
"timeline": "Timeline", "timeline": "Timeline",
"operateOtherAcct": "Cross-account", "operateOtherAcct": "Cross-account",
"list": "List", "list": "List",

View File

@@ -127,6 +127,7 @@
"lang_layout_delthis": "Remove this column", "lang_layout_delthis": "Remove this column",
"lang_layout_setthis": "Preferences of this column", "lang_layout_setthis": "Preferences of this column",
"lang_layout_mediafil": "Media filtering", "lang_layout_mediafil": "Media filtering",
"lang_layout_remoteOnly": "Remote only",
"lang_layout_linkana": "Auto Link Analyzer", "lang_layout_linkana": "Auto Link Analyzer",
"lang_layout_linkanades": "Auto link analyzer", "lang_layout_linkanades": "Auto link analyzer",
"lang_layout_tts": "Text to speech ", "lang_layout_tts": "Text to speech ",
@@ -165,6 +166,7 @@
"lang_showontl_domain": "Domain ", "lang_showontl_domain": "Domain ",
"lang_showontl_listwarn": "Follow to add this user to lists.", "lang_showontl_listwarn": "Follow to add this user to lists.",
"lang_showontl_verified": "This website is verified by owner at ", "lang_showontl_verified": "This website is verified by owner at ",
"lang_status_requesting": "Requesting",
"lang_parse_mentioned": " replied to you", "lang_parse_mentioned": " replied to you",
"lang_parse_faved": " favourited your toot", "lang_parse_faved": " favourited your toot",
"lang_parse_bted": " boosted your toot", "lang_parse_bted": " boosted your toot",
@@ -219,6 +221,7 @@
"lang_parse_nsfw": "sensitive media", "lang_parse_nsfw": "sensitive media",
"lang_parse_html": "Show embed HTML", "lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Show this user's notifications", "lang_parse_notffilter": "Show this user's notifications",
"lang_parse_hidden": "Unvisible quoted toot",
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote", "lang_misskeyparse_renoteqt": "Renote",
"lang_misskeyparse_reaction": "Reaction", "lang_misskeyparse_reaction": "Reaction",

View File

@@ -167,6 +167,7 @@
"linkwarn": "TheDesk save your data on thedesk.top server.", "linkwarn": "TheDesk save your data on thedesk.top server.",
"connect": "Connect", "connect": "Connect",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
"templateedit": "Edit a template", "templateedit": "Edit a template",
"templateeditwarn": "", "templateeditwarn": "",
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify", "template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",

Some files were not shown because too many files have changed in this diff Show More