Compare commits
168 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
7281db2375 | ||
|
2699d51301 | ||
|
e8c1dad86b | ||
|
72b279a107 | ||
|
73894c7e37 | ||
|
12dee56919 | ||
|
e9c5709095 | ||
|
10358cb317 | ||
|
7d6d0b5628 | ||
|
e6eeff56e3 | ||
|
0f3be2fdc4 | ||
|
8c1ba088be | ||
|
5d5e3c77e1 | ||
|
995f677d8f | ||
|
8e71e973d6 | ||
|
c7f1bb9b76 | ||
|
3cc1f427ce | ||
|
3621be674f | ||
|
ef1ecd5db3 | ||
|
a0a0802784 | ||
|
3b96bf3c25 | ||
|
87c747cb93 | ||
|
83b2138b26 | ||
|
23a72c1dc5 | ||
|
9413d9c4b8 | ||
|
78ea495969 | ||
|
a2c8d5fd37 | ||
|
31b5df7f42 | ||
|
28a0419d2c | ||
|
88214e5a33 | ||
|
277f61826f | ||
|
447aeea0cb | ||
|
cc5ba8af0f | ||
|
9e62d15576 | ||
|
eaec63adb8 | ||
|
57ca23e4e5 | ||
|
e97ac5008a | ||
|
8c2d17d096 | ||
|
7763ad98ad | ||
|
d6a32fbeae | ||
|
aeaca51334 | ||
|
f4d6ff8ee3 | ||
|
f0a25df38f | ||
|
89b25c56e7 | ||
|
f0f8ed5eca | ||
|
793a511bc3 | ||
|
22299eaf33 | ||
|
8745f94d81 | ||
|
ecff3c7f8f | ||
|
5cee604d51 | ||
|
f12f9ed047 | ||
|
7f4e752b21 | ||
|
3ad4aca4a7 | ||
|
4fbe7218e6 | ||
|
46bc9474a0 | ||
|
40ac7b33a1 | ||
|
1db56bcfbb | ||
|
4612dbe591 | ||
|
0a74b9c54b | ||
|
a10a4d02b4 | ||
|
6805ed32fb | ||
|
1f2740b01e | ||
|
74af696ad5 | ||
|
ec3c2369bc | ||
|
c0a6ecec4d | ||
|
7169f1147b | ||
|
8873af4597 | ||
|
859acad27c | ||
|
44943e0e14 | ||
|
640847416a | ||
|
35122db142 | ||
|
994ec964d6 | ||
|
5508862ba1 | ||
|
075a120856 | ||
|
f34e2e6bbf | ||
|
64296c69d3 | ||
|
f4d250eeb3 | ||
|
750c74ae69 | ||
|
525dd5ec52 | ||
|
89bb8d6496 | ||
|
a7399db3f1 | ||
|
790ab2065c | ||
|
fa20278727 | ||
|
f2a4900f18 | ||
|
fd3afb6354 | ||
|
4a4dc82c40 | ||
|
54db978b6f | ||
|
1a35eda46f | ||
|
7d9ab19eef | ||
|
bdfeae20f2 | ||
|
9931ecd577 | ||
|
99c2f0fc8d | ||
|
58d9228aec | ||
|
85738d72ae | ||
|
2fe60a3b69 | ||
|
06c944a35d | ||
|
0f75972616 | ||
|
f55b08cbf3 | ||
|
51814e49d7 | ||
|
36d8a00a49 | ||
|
1c8ca3b5f9 | ||
|
1cbd6992e3 | ||
|
1f3a27325b | ||
|
890ec772f9 | ||
|
b072012976 | ||
|
8982058a25 | ||
|
fb95e077e9 | ||
|
dc08f46909 | ||
|
3e6a47d5f7 | ||
|
aabcfb230f | ||
|
ee99a660c2 | ||
|
5063061a70 | ||
|
c3ce7bd516 | ||
|
95efd96c3e | ||
|
abf5274c06 | ||
|
db5d3182bc | ||
|
0527c978ce | ||
|
b36de5dc26 | ||
|
92b47e56f7 | ||
|
fc967f92f3 | ||
|
1882bbf0b6 | ||
|
a3fed1f6f0 | ||
|
eae0fd1768 | ||
|
a7a99fc3a2 | ||
|
fedd80477b | ||
|
844d145e09 | ||
|
a817c14925 | ||
|
70e145eceb | ||
|
438f11c11d | ||
|
edf75d1915 | ||
|
9de26d9998 | ||
|
ab5a786197 | ||
|
272b613e18 | ||
|
35c10e0c7d | ||
|
7795adf173 | ||
|
dca2e5fdab | ||
|
eb6dcdfa5d | ||
|
9f4f788519 | ||
|
1d7588e4e4 | ||
|
81c476c1bb | ||
|
ccc44ca769 | ||
|
82c5a853cb | ||
|
e11af25ba6 | ||
|
16b68bb190 | ||
|
051dbb3b1b | ||
|
bdf2b9be71 | ||
|
0b6a76d01a | ||
|
bd1e1f7ee8 | ||
|
e9c7ffe825 | ||
|
9e735bc7df | ||
|
eefc03c4f3 | ||
|
135caffaec | ||
|
c1f7abac58 | ||
|
a325c50f1f | ||
|
37daa5638b | ||
|
8118806f4e | ||
|
3f7aaa7e99 | ||
|
700de676d0 | ||
|
52a8ec8033 | ||
|
40a884b4f5 | ||
|
62df4e2fac | ||
|
69d60a7372 | ||
|
9623b79197 | ||
|
ec1481aed0 | ||
|
1e76867fd1 | ||
|
db4d457325 | ||
|
d87245899e | ||
|
ac6260ab24 |
9
.gitignore
vendored
9
.gitignore
vendored
@@ -20,7 +20,16 @@ app/view/bg
|
||||
app/view/cs
|
||||
app/view/ps
|
||||
app/view/es-AR
|
||||
app/view/it-IT
|
||||
app/git
|
||||
*.code-workspace
|
||||
releasenote.md
|
||||
app/yarn-error.log
|
||||
app/js/platform/aiscript.js
|
||||
app/view/es-ES
|
||||
app/view/fr-FR
|
||||
app/view/no-NO
|
||||
app/view/zh-CN
|
||||
app/view/ru-RU
|
||||
app/view/zh-TW
|
||||
app/view/pt-BR
|
18
.travis.yml
18
.travis.yml
@@ -6,15 +6,30 @@ language: node_js
|
||||
env:
|
||||
- YARN_GPG=no
|
||||
node_js:
|
||||
- '10.15.2'
|
||||
- '12.17.0'
|
||||
cache:
|
||||
yarn: true
|
||||
script: node -v
|
||||
before_deploy:
|
||||
- yarn global add electron-builder
|
||||
- yarn global add browserify
|
||||
- cd app
|
||||
- VERSION=$(cat package.json | grep version | head -1 | awk -F= "{ print $2 }" | sed 's/[version:,\",]//g' | tr -d '[[:space:]]')
|
||||
- yarn install --no-lockfile --prod
|
||||
- yarn construct:store
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then electron-builder --mac -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then mv *.dmg TheDesk-$VERSION-store.dmg;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then cd ../app;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then electron-builder --linux snap:x64 -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then mv *.snap TheDesk-$VERSION-store.snap;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../app;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then yarn add electron-builder;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then electron-builder --win appx:x64 -p never ;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then mv *.appx TheDesk-$VERSION-store.appx;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../app;else :;fi
|
||||
- yarn construct
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then electron-builder --mac -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then electron-builder --linux --x64 -p never;else :;fi
|
||||
@@ -22,7 +37,6 @@ before_deploy:
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then ls;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then mv thedesk-*.zip thedesk.zip;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../app;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then yarn add electron-builder;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then electron-builder --win --ia32 -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then ls;else :;fi
|
||||
|
67
README.md
67
README.md
@@ -11,7 +11,10 @@
|
||||
Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
||||
オープンソースSNSマストドン/MisskeyのPC向けクライアント[日本語はこちら](README_ja.md)
|
||||
|
||||
Download:[TheDesk](https://thedesk.top) [](https://status.cutls.com)
|
||||
Download:[TheDesk](https://thedesk.top)
|
||||
|
||||
On GitHub Releases, `-store.*` assets are made for some application store or manager(Snapcraft, Homebrew, Microsoft Store).
|
||||
They do not check the latest version(Which you can get the latest ver or not depends on the store)
|
||||
|
||||
<a href="https://www.patreon.com/cutls"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160"></a>
|
||||
<a href="https://liberapay.com/cutls/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a>
|
||||
@@ -28,19 +31,24 @@ The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.o
|
||||
* [SVG 4095x4096](https://d2upiril6ywqp9.cloudfront.net/press/thedesk-fullcolor.svg)
|
||||
* [ico 256x256](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ico)
|
||||
* [icns old](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.icns)
|
||||
* [Illustrator .ai](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ai)
|
||||
|
||||
The default sounds of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/)
|
||||
|
||||
## Terms of Use
|
||||
## Privacy Policy
|
||||
|
||||
* [利用規約(Terms of Use(ja))](https://thedesk.top/tos.html)
|
||||
* [プライバシーポリシー(Privacy Policy(ja))](https://thedesk.top/priv.html)
|
||||
|
||||
## Language
|
||||
|
||||
* 日本語(Japanese)
|
||||
* 日本語, 関西(Japanese, Kansai)
|
||||
* English
|
||||
* de, cs, bg(from Crowdin)
|
||||
* български(Bulgarian) with [translate project](https://translate.thedesk.top/project/thedesk/bg)
|
||||
* Česky(Czech) with [translate project](https://translate.thedesk.top/project/thedesk/cs)
|
||||
* Deutsch(German) with [translate project](https://translate.thedesk.top/project/thedesk/de)
|
||||
* Español, argentina(Spanish, Argentina) with [translate project](https://translate.thedesk.top/project/thedesk/es-AR)
|
||||
* italiano(Italian) with [translate project](https://translate.thedesk.top/project/thedesk/it-IT)
|
||||
|
||||
### Translation
|
||||
|
||||
@@ -48,15 +56,17 @@ Crowdin project is available! Visit: https://translate.thedesk.top
|
||||
|
||||
### Run on developer mode
|
||||
|
||||
`npm run dev` on `app` folder.
|
||||
`npm run dev` on `app` folder.(before you should run `yarn construct` to make HTML views)
|
||||
|
||||
If you change HTML or language files, you should rub to `yarn construct`. Or `yarn watchview` can always watch and construct such files with 1 process.
|
||||
|
||||
## Contributors
|
||||
|
||||
Build for macOS
|
||||
Build for macOS(Now: Travis CI)
|
||||
|
||||
* [toneji](https://minohdon.jp/@toneji)
|
||||
|
||||
Build for Linux
|
||||
Build for Linux(Now: Travis CI)
|
||||
|
||||
* [popn_ja](https://popon.pptdn.jp/@popn_ja)
|
||||
|
||||
@@ -66,7 +76,8 @@ Fellow coder
|
||||
|
||||
## Build
|
||||
|
||||
You have to use either **npm** or **yarn**. Whichever you use, it works well.
|
||||
You should use `yarn` but you can use also `npm`, but if you build on Windows, you should strongly use `yarn`
|
||||
`yarn ***` and `npm run ***` has the same meaning,
|
||||
|
||||
### npm
|
||||
|
||||
@@ -91,27 +102,11 @@ yarn install
|
||||
yarn construct
|
||||
```
|
||||
|
||||
run `npm run dev` or `yarn dev` to launch developer version with console(click `view`)
|
||||
run `yarn dev` to launch developer version with console(click `view`)
|
||||
|
||||
### electron-builder(Recommended)
|
||||
Use scripts(they can work well with npm, **yarn**).
|
||||
|
||||
#### npm
|
||||
|
||||
```sh
|
||||
# Build for current platform
|
||||
npm run build
|
||||
|
||||
# Select build target
|
||||
## Windows
|
||||
npm run build:win
|
||||
|
||||
## Windows and Linux (The macOS target should run on macOS. So, this option hasn't include the build for macOS)
|
||||
npm run build:all
|
||||
```
|
||||
|
||||
#### yarn
|
||||
|
||||
```sh
|
||||
# Build for current platform
|
||||
yarn build
|
||||
@@ -128,7 +123,7 @@ yarn build:all
|
||||
Config is all on package.json
|
||||
|
||||
### electron-packager
|
||||
`npm install --save-dev electron-rebuild`
|
||||
`yarn --D electron-rebuild`
|
||||
|
||||
Linux/macOS
|
||||
`./node_modules/.bin/electron-rebuild`
|
||||
@@ -139,19 +134,25 @@ To install Python 2.x and Visual C++ for Windows, before running `npm install --
|
||||
`npm install --global windows-build-tools`
|
||||
|
||||
Windows
|
||||
`electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --win32metadata.CompanyName="TheDesk&Cutls.com" --win32metadata.FileDescription="TheDesk" --win32metadata.OriginalFilename="TheDesk" --win32metadata.InternalName="TheDesk" --win32metadata.ProductName="TheDesk" --platform=win32 --arch=all --electron-version=4.0.5 --icon=.\app\thedesk.ico --overwrite`
|
||||
```
|
||||
electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --win32metadata.CompanyName="TheDesk&Cutls.com" --win32metadata.FileDescription="TheDesk" --win32metadata.OriginalFilename="TheDesk" --win32metadata.InternalName="TheDesk" --win32metadata.ProductName="TheDesk" --platform=win32 --arch=all --electron-version=4.0.5 --icon=.\app\thedesk.ico --overwrite
|
||||
```
|
||||
Linux
|
||||
`electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --platform=linux --arch=x64,ia32 --electron-version=4.0.5 --overwrite`
|
||||
```
|
||||
electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --platform=linux --arch=x64,ia32 --electron-version=4.0.5 --overwrite
|
||||
```
|
||||
macOS
|
||||
`electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --platform=darwin --arch=all --electron-version=4.0.5 --icon=./app/icon.icns --overwrite`
|
||||
```
|
||||
electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --platform=darwin --arch=all --electron-version=4.0.5 --icon=./app/icon.icns --overwrite
|
||||
```
|
||||
|
||||
### PWA support
|
||||
|
||||
TheDesk is a wed-based app, so you can run it on a browser. Of course, the main stream is as Electron. Some features won't work as well as Electron.
|
||||
TheDesk is a web-based app, so you can run it on a browser. Of course, the main stream is as Electron. Some features won't work as well as Electron.
|
||||
|
||||
You can run `npm run build:pwa` to build as PWA, including `manifest.json` and the ServiceWorker.
|
||||
|
||||
**You have to rename `node_modules` to `dependencies` to run as a web application. (restricted by Netlify)**
|
||||
**You have to rename `node_modules` to `dependencies` to run as a web application. (restricted by Netlify, but always you should do to run as PWA)**
|
||||
|
||||
Check the app on Chrome or Firefox: [Here](https://app.thedesk.top) (it follows the `master` branch, so not stable.)
|
||||
[](https://app.netlify.com/sites/thedesk/deploys)
|
||||
@@ -162,6 +163,6 @@ Did you find a bug with Pleroma accounts?
|
||||
Pleroma **does not** follow Mastodon API rules completely although Pleroma developers say so.
|
||||
Please write issues to improve TheDesk affinity with Pleroma.
|
||||
|
||||
## Vulnerabilities when `npm i`???
|
||||
## Vulnerabilities when `yarn install`???
|
||||
|
||||
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, but I do not think this report is really fatal.
|
62
README_ja.md
62
README_ja.md
@@ -10,10 +10,12 @@
|
||||

|
||||
Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
||||
オープンソースSNSマストドン/MisskeyのPC向けクライアント
|
||||
Download:[TheDesk](https://thedesk.top) [](https://status.cutls.com)
|
||||
Download:[TheDesk](https://thedesk.top)
|
||||
|
||||
[Pixiv FANBOX](https://www.pixiv.net/fanbox/creator/28105985)
|
||||
|
||||
`-store.*`とあるアセットはストアやパッケージマネージャ向けのもので、アップデートの確認をソフト本体で行いません。
|
||||
|
||||

|
||||
|
||||
## ライセンス
|
||||
@@ -31,32 +33,39 @@ Download:[TheDesk](https://thedesk.top) [ で提供されています。
|
||||
|
||||
## 利用規約
|
||||
## プライバシーポリシー
|
||||
|
||||
* [利用規約](https://thedesk.top/tos.html)
|
||||
* [プライバシーポリシー](https://thedesk.top/priv.html)
|
||||
|
||||
## 言語
|
||||
|
||||
* 日本語
|
||||
* 日本語(関西)
|
||||
* English(英語)
|
||||
* ドイツ語, チェコ語, ブルガリア語(from Crowdin)
|
||||
* ドイツ語, チェコ語, ブルガリア語, イタリア語, スペイン語アルゼンチン方言 (from [Crowdin](https://translate.thedesk.top))
|
||||
|
||||
### 翻訳
|
||||
|
||||
Crowdinから翻訳に参加してみませんか?: https://translate.thedesk.top
|
||||
|
||||
以下、`yarn ***`は全て`npm run ***`で実行できます。(yarnが推奨)
|
||||
|
||||
### デベロッパーモード
|
||||
|
||||
`npm run dev`を`app`フォルダ内で実行
|
||||
`yarn dev`を`app`フォルダ内で実行。
|
||||
ただし、最初に`yarn construct`必須。
|
||||
|
||||
watchモード(ホットリロードはしません): `yarn construct`の代わりに`yarn watchview`
|
||||
HTMLや言語定義の変更について、このコマンドで継続監視します。その他のアセットの変更には不要です。
|
||||
プロセス1つを占拠するので、`yarn dev`は他のプロセスで行ってください。
|
||||
|
||||
## 主なコントリビューター
|
||||
|
||||
macOSビルダー
|
||||
macOSビルダー(現在はTravis CI)
|
||||
|
||||
* [とねぢ](https://minohdon.jp/@toneji)
|
||||
|
||||
Linuxビルダー
|
||||
Linuxビルダー(現在はTravis CI)
|
||||
|
||||
* [ぽぷんじゃ](https://popon.pptdn.jp/@popn_ja)
|
||||
|
||||
@@ -66,7 +75,7 @@ Linuxビルダー
|
||||
|
||||
## ビルド
|
||||
|
||||
npmでもyarnでも好きな方を選んでください。
|
||||
npmでもyarnでも好きな方を選んでください。Windows環境ではyarnを強く推奨します。
|
||||
|
||||
### npm
|
||||
|
||||
@@ -95,22 +104,6 @@ yarn construct
|
||||
|
||||
scriptsを利用します
|
||||
|
||||
#### npm
|
||||
|
||||
```sh
|
||||
# 実行している環境向けにビルド
|
||||
npm run build
|
||||
|
||||
# ターゲットを指定してビルド
|
||||
## Windows
|
||||
npm run build:win
|
||||
|
||||
## macOS向けのビルドにはmacOSで実行する必要があるためこのコマンドではビルドされません
|
||||
npm run build:all
|
||||
```
|
||||
|
||||
#### yarn
|
||||
|
||||
```sh
|
||||
# 実行している環境向けにビルド
|
||||
yarn build
|
||||
@@ -123,10 +116,11 @@ yarn build:win
|
||||
yarn build:all
|
||||
```
|
||||
|
||||
|
||||
ビルド設定はすべてpackage.jsonに記載しています。
|
||||
|
||||
### electron-packager(非推奨)
|
||||
`npm install --save-dev electron-rebuild`
|
||||
`yarn -D electron-rebuild`
|
||||
|
||||
Linux/macOS
|
||||
`./node_modules/.bin/electron-rebuild`
|
||||
@@ -139,19 +133,25 @@ WindowsでPython 2.xやVisualC++を一発でインストールできるツール
|
||||
日本語話者向けですが、macOSビルドにはXCodeが要るとの情報があります。([とねぢ](https://minohdon.jp/@toneji)氏談)
|
||||
|
||||
Windows
|
||||
`electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --win32metadata.CompanyName="TheDesk&Cutls.com" --win32metadata.FileDescription="TheDesk" --win32metadata.OriginalFilename="TheDesk" --win32metadata.InternalName="TheDesk" --win32metadata.ProductName="TheDesk" --platform=win32 --arch=all --electron-version=4.0.5 --icon=.\app\thedesk.ico --overwrite`
|
||||
```
|
||||
electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --win32metadata.CompanyName="TheDesk&Cutls.com" --win32metadata.FileDescription="TheDesk" --win32metadata.OriginalFilename="TheDesk" --win32metadata.InternalName="TheDesk" --win32metadata.ProductName="TheDesk" --platform=win32 --arch=all --electron-version=4.0.5 --icon=.\app\thedesk.ico --overwrite
|
||||
```
|
||||
Linux
|
||||
`electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --platform=linux --arch=x64,ia32 --electron-version=4.0.5 --overwrite`
|
||||
```
|
||||
electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --platform=linux --arch=x64,ia32 --electron-version=4.0.5 --overwrite
|
||||
```
|
||||
macOS
|
||||
`electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --platform=darwin --arch=all --electron-version=4.0.5 --icon=./app/icon.icns --overwrite`
|
||||
```
|
||||
electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --platform=darwin --arch=all --electron-version=4.0.5 --icon=./app/icon.icns --overwrite
|
||||
```
|
||||
|
||||
### PWAとして実行
|
||||
|
||||
TheDeskはウェブ技術を使用して作られているので、ブラウザで動かすこともできます。もちろん、Electron向けに設計されているので一部機能は動きません。
|
||||
|
||||
`npm run build:pwa`でビルドできます。PWAに必要な`manifest.json`やサービスワーカーなども要員されています。
|
||||
`yarn build:pwa`でビルドできます。PWAに必要な`manifest.json`やサービスワーカーなども用意されています。
|
||||
|
||||
**`node_modules`を`dependencies`にリネームしないと動きません。(Netlifyの制限です)**
|
||||
**`node_modules`を`dependencies`にリネームしないと動きません。(Netlifyの制限ですが、Netlify以外で動かす場合にも必須です)**
|
||||
|
||||
ChromeまたはFirefoxでチェック: [こちら](https://app.thedesk.top) (`master`ブランチに追従しています。不安定です。)
|
||||
[](https://app.netlify.com/sites/thedesk/deploys)
|
||||
@@ -165,7 +165,7 @@ Issuesに書いてある問題についてはなるべく対処しますので
|
||||
|
||||
[TheDesk - マストドン日本語ウィキ](https://ja.mstdn.wiki/TheDesk)
|
||||
|
||||
## `npm i`したら脆弱性あるって言われた
|
||||
## `yarn install`したら脆弱性あるって言われた
|
||||
|
||||
materialize-cssの脆弱性(CVE-2019-11002/3/4)については[こちら](https://github.com/Dogfalo/materialize/issues/6286)で本当に脆弱性かどうか議論しています。
|
||||
実際には害が無いものと思われます。
|
||||
|
11
app/aiscript.js
Normal file
11
app/aiscript.js
Normal file
@@ -0,0 +1,11 @@
|
||||
const { AiScript, parse, values, utils } = require('@syuilo/aiscript')
|
||||
global.sanitizeHtml = require('sanitize-html')
|
||||
global.asValue = values
|
||||
global.AiScript = AiScript
|
||||
global.asParse = parse
|
||||
global.asCommon = {
|
||||
'TheDesk:console': values.FN_NATIVE((z) => {
|
||||
console.log(z[0].value)
|
||||
})
|
||||
}
|
||||
global.asUtil = utils
|
@@ -88,4 +88,7 @@ i.left {
|
||||
|
||||
#domain-list .title {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
.text-line-icon {
|
||||
font-size: 1rem;
|
||||
}
|
@@ -6,7 +6,7 @@ body {
|
||||
user-select: none;
|
||||
cursor: default;
|
||||
height: 100vh;
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
}
|
||||
html {
|
||||
font-size: 13px;
|
||||
@@ -14,14 +14,15 @@ html {
|
||||
.titlebar,
|
||||
.menubar-menu-container,
|
||||
.action-menu-item {
|
||||
background-color: var(--notfbox) !important;
|
||||
background-color: var(--subcolor) !important;
|
||||
filter: brightness(110%) !important;
|
||||
color: var(--color) !important;
|
||||
color: var(--text) !important;
|
||||
}
|
||||
.action-menu-item:hover {
|
||||
filter: brightness(80%) !important;
|
||||
}
|
||||
.btn, .btn-flat {
|
||||
.btn,
|
||||
.btn-flat {
|
||||
font-size: 1.1rem;
|
||||
margin: 0.4rem;
|
||||
text-transform: none;
|
||||
@@ -89,6 +90,15 @@ option {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
#imagewrap img.rotate-90 {
|
||||
transform: rotate(-90deg)
|
||||
}
|
||||
#imagewrap img.rotate-180 {
|
||||
transform: rotate(-180deg)
|
||||
}
|
||||
#imagewrap img.rotate-270 {
|
||||
transform: rotate(-270deg)
|
||||
}
|
||||
.pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -232,7 +242,7 @@ blockquote:before,
|
||||
height: calc(100vh - 3rem);
|
||||
background-color: var(--bg);
|
||||
filter: brightness(50%);
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
z-index: 99999;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
@@ -243,7 +253,7 @@ blockquote:before,
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color: var(--bg);
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
z-index: 99999;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
@@ -254,7 +264,7 @@ blockquote:before,
|
||||
#pip {
|
||||
z-index: 504;
|
||||
width: 418px;
|
||||
background-color: var(--subcolor);
|
||||
background-color: var(--thirdColor);
|
||||
position: absolute;
|
||||
}
|
||||
.pip-bottom {
|
||||
@@ -315,10 +325,10 @@ blockquote:before,
|
||||
}
|
||||
.collapsible-header,
|
||||
.tabs {
|
||||
background-color: var(--subcolor);
|
||||
background-color: var(--thirdColor);
|
||||
}
|
||||
.collapsible-header:focus {
|
||||
background-color: var(--subcolor) !important;
|
||||
background-color: var(--thirdColor) !important;
|
||||
}
|
||||
.modal-footer {
|
||||
background-color: var(--modalfooter) !important;
|
||||
@@ -332,12 +342,25 @@ blockquote:before,
|
||||
}
|
||||
.release-do {
|
||||
border: solid 2px;
|
||||
border-color: var(--color);
|
||||
border-color: var(--text);
|
||||
padding: 5px;
|
||||
}
|
||||
#pickers {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: column;
|
||||
}
|
||||
input[type='color'] {
|
||||
-webkit-appearance: none;
|
||||
border: none;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
input[type='color']::-webkit-color-swatch-wrapper {
|
||||
padding: 0;
|
||||
}
|
||||
input[type='color']::-webkit-color-swatch {
|
||||
border: none;
|
||||
}
|
||||
#menu {
|
||||
position: fixed;
|
||||
@@ -367,7 +390,7 @@ blockquote:before,
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
}
|
||||
#left-menu a:hover {
|
||||
background-color: var(--beforehover);
|
||||
@@ -398,7 +421,7 @@ blockquote:before,
|
||||
width: 13rem;
|
||||
height: 3.1rem;
|
||||
cursor: pointer;
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
}
|
||||
#tltype .type span {
|
||||
width: calc(100% - 2.3rem);
|
||||
@@ -425,7 +448,7 @@ blockquote:before,
|
||||
text-align: center;
|
||||
width: calc(100% + 0.8rem);
|
||||
border-radius: 5px;
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
filter: brightness(80%);
|
||||
margin-left: -0.4rem;
|
||||
margin-right: -0.4rem;
|
||||
@@ -446,7 +469,7 @@ blockquote:before,
|
||||
position: fixed;
|
||||
bottom: -300px;
|
||||
width: 100vw;
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
z-index: 9999;
|
||||
padding: 0.8rem;
|
||||
display: grid;
|
||||
@@ -472,16 +495,16 @@ blockquote:before,
|
||||
}
|
||||
input,
|
||||
textarea {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
font-size: 1rem !important;
|
||||
font-family: inherit;
|
||||
}
|
||||
.swal2-popup {
|
||||
background-color: var(--notfbox) !important;
|
||||
background-color: var(--subcolor) !important;
|
||||
}
|
||||
.swal2-title,
|
||||
.swal2-content {
|
||||
color: var(--color) !important;
|
||||
color: var(--text) !important;
|
||||
}
|
||||
#src-contents svg {
|
||||
margin-right: 0.4rem;
|
||||
@@ -530,7 +553,7 @@ textarea {
|
||||
left: calc(50vw - 11.53rem);
|
||||
width: 23rem;
|
||||
max-width: 100%;
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
z-index: 501;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
@@ -554,9 +577,15 @@ textarea {
|
||||
/*スクロールバー*/
|
||||
::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
height: 10px;
|
||||
height: 12px;
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.thickScrollBar ::-webkit-scrollbar {
|
||||
height: 18px;
|
||||
}
|
||||
.thinScrollBar ::-webkit-scrollbar {
|
||||
height: 5px;
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
@@ -568,6 +597,15 @@ textarea {
|
||||
background: #607d8b;
|
||||
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
::-webkit-scrollbar-thumb::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
margin-left: -15px;
|
||||
border: 15px solid transparent;
|
||||
border-top: 15px solid #e0edff;
|
||||
}
|
||||
/* Web Fonts */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
@@ -612,4 +650,39 @@ textarea {
|
||||
}
|
||||
.dropdown-content.header:hover {
|
||||
background-color: white;
|
||||
}
|
||||
button {
|
||||
font-family: inherit !important;
|
||||
}
|
||||
.via-dropdown {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#re-online {
|
||||
background-color: rgb(38, 92, 153);
|
||||
position: fixed;
|
||||
width: 100vw;
|
||||
height: 2rem;
|
||||
padding: 0.25rem;
|
||||
color: white;
|
||||
z-index: 1000;
|
||||
}
|
||||
#offline {
|
||||
background-color: rgb(153, 38, 38);
|
||||
position: fixed;
|
||||
width: 100vw;
|
||||
height: 2rem;
|
||||
padding: 0.25rem;
|
||||
color: white;
|
||||
z-index: 999;
|
||||
}
|
||||
.pluginNex {
|
||||
width: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
.pluginNex span {
|
||||
font-size: 2rem;
|
||||
position: relative;
|
||||
top: -4px;
|
||||
}
|
@@ -64,9 +64,10 @@ textarea {
|
||||
}
|
||||
#emoji {
|
||||
}
|
||||
#suggest {
|
||||
#suggest, #draft {
|
||||
max-height: 23rem;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#emoji-list {
|
||||
width: 100%;
|
||||
@@ -86,7 +87,7 @@ textarea {
|
||||
max-height: 7.7rem;
|
||||
}
|
||||
#default-emoji a {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
margin-right: 0.15rem;
|
||||
}
|
||||
.character-counter {
|
||||
@@ -126,8 +127,8 @@ textarea {
|
||||
}
|
||||
#posttgl,
|
||||
#toot-post-btn {
|
||||
background-color: var(--accentbtn);
|
||||
color: var(--color);
|
||||
background-color: var(--active);
|
||||
color: var(--text);
|
||||
}
|
||||
/*mini*/
|
||||
.mini-post .mize {
|
||||
|
@@ -5,7 +5,7 @@
|
||||
background-color: var(--modalfooter);
|
||||
margin: 0.4rem;
|
||||
border-radius: 0.4rem;
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
padding: 3px;
|
||||
display: grid;
|
||||
grid-template-columns: 3.3rem 1fr 4.6rem;
|
||||
|
@@ -1,192 +1,22 @@
|
||||
:root {
|
||||
--bg: white;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: black;
|
||||
--beforehover: #757575;
|
||||
--modal: white;
|
||||
--subcolor: #e0e0e0;
|
||||
--box: white;
|
||||
--sidebar: #eeeeee;
|
||||
--shared: #cfd8dc;
|
||||
--notfbox: white;
|
||||
--emphasized: #81c784;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #e6ee9c;
|
||||
--postbox: white;
|
||||
--modalfooter: #fafafa;
|
||||
--accentbtn: #009688;
|
||||
--selected: #c0c0c0;
|
||||
--selectedWithShare: #b2babd;
|
||||
--gray: #757575;
|
||||
}
|
||||
#imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
.blacktheme {
|
||||
--bg: #212121;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--text: white;
|
||||
--beforehover: #9e9e9e;
|
||||
--modal: black;
|
||||
--subcolor: #212121;
|
||||
--box: #424242;
|
||||
--sidebar: #424242;
|
||||
--shared: #004d40;
|
||||
--notfbox: #333333;
|
||||
--thirdColor: #212121;
|
||||
--bottom: #424242;
|
||||
--accent: #004d40;
|
||||
--subcolor: #333333;
|
||||
--emphasized: #4e342e;
|
||||
--his-data: rgba(0, 0, 0, 0.8);
|
||||
--active: #757575;
|
||||
--postbox: #424242;
|
||||
--modalfooter: #212121;
|
||||
--accentbtn: #3f51b5;
|
||||
--active: #3f51b5;
|
||||
--selected: #3f3f3f;
|
||||
--selectedWithShare: #003a30;
|
||||
--gray: #cccccc;
|
||||
}
|
||||
.blacktheme #imagemodal {
|
||||
#imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.indigotheme {
|
||||
--bg: #031833;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--beforehover: #9e9e9e;
|
||||
--modal: #0d1351;
|
||||
--subcolor: #0d1351;
|
||||
--shared: #004d40;
|
||||
--box: #0d1351;
|
||||
--sidebar: #0d1351;
|
||||
--notfbox: #0d47a1;
|
||||
--emphasized: #4e342e;
|
||||
--his-data: rgba(13, 19, 81, 0.8);
|
||||
--active: #757575;
|
||||
--postbox: #1a237e;
|
||||
--modalfooter: #031833;
|
||||
--accentbtn: #00acc1;
|
||||
--selected: #214f8a;
|
||||
--selectedWithShare: #003a30;
|
||||
--gray: #cccccc ;
|
||||
}
|
||||
.indigotheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.browntheme {
|
||||
--bg: #261411;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--beforehover: #9e9e9e;
|
||||
--modal: #261411;
|
||||
--subcolor: #4e342e;
|
||||
--shared: #004d40;
|
||||
--box: #4e342e;
|
||||
--sidebar: #4e342e;
|
||||
--notfbox: #4e342e;
|
||||
--emphasized: #0d47a1;
|
||||
--his-data: rgba(62, 39, 35, 0.8);
|
||||
--active: #757575;
|
||||
--postbox: #4e342e;
|
||||
--modalfooter: #261411;
|
||||
--accentbtn: #827717;
|
||||
--selected: #6d352b;
|
||||
--selectedWithShare: #003a30;
|
||||
--gray: #cccccc;
|
||||
}
|
||||
.browntheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.greentheme {
|
||||
--bg: #c8e6c9;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: black;
|
||||
--beforehover: #757575;
|
||||
--modal: #81c784;
|
||||
--subcolor: #a5d6a7;
|
||||
--box: #81c784;
|
||||
--sidebar: #c5e1a5;
|
||||
--shared: #ffcc80;
|
||||
--notfbox: #a5d6a7;
|
||||
--emphasized: #9e9d24;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #e6ee9c;
|
||||
--postbox: #a5d6a7;
|
||||
--modalfooter: #81c784;
|
||||
--accentbtn: #33691e;
|
||||
--selected: #78c17a;
|
||||
--selectedWithShare: #caa266;
|
||||
--gray: #757575;
|
||||
}
|
||||
.greentheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
.bluetheme {
|
||||
--bg: #c9e1ec;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: black;
|
||||
--beforehover: #757575;
|
||||
--modal: #b2ebf2;
|
||||
--subcolor: #90caf9;
|
||||
--box: #90caf9;
|
||||
--sidebar: #b6e6f5;
|
||||
--shared: #e0ffe4;
|
||||
--notfbox: #90caf9;
|
||||
--emphasized: #c5e1a5;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #b39ddb;
|
||||
--postbox: #dff1ff;
|
||||
--modalfooter: #2196f3;
|
||||
--accentbtn: #2f7bb7;
|
||||
--selected: #9dcade;
|
||||
--selectedWithShare: #c1dac4;
|
||||
--gray: #757575;
|
||||
}
|
||||
.bluetheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
.polartheme {
|
||||
--bg: #2e3440;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--beforehover: #8d94a0;
|
||||
--modal: #3b4252;
|
||||
--subcolor: #434c5e;
|
||||
--box: #4c566a;
|
||||
--sidebar: #3b4252;
|
||||
--shared: #2d3b58;
|
||||
--notfbox: #2a3857;
|
||||
--emphasized: #2f4b86;
|
||||
--his-data: rgba(0, 0, 0, 0.8);
|
||||
--active: #2a3857;
|
||||
--postbox: #434c5e;
|
||||
--modalfooter: #485166;
|
||||
--accentbtn: #2f4b86;
|
||||
--selected: #464f61;
|
||||
--selectedWithShare: #3e527e;
|
||||
--gray: #cccccc;
|
||||
}
|
||||
.polartheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.snowtheme {
|
||||
--bg: #eceff4;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: #36425a;
|
||||
--beforehover: #344058;
|
||||
--modal: #e5e9f0;
|
||||
--subcolor: #d8dee9;
|
||||
--box: #c0c8d6;
|
||||
--sidebar: #eeeeee;
|
||||
--shared: #c3d4e6;
|
||||
--notfbox: #d8dee9;
|
||||
--emphasized: #88c0d0;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #8fbcbb;
|
||||
--postbox: #d8dee9;
|
||||
--modalfooter: #b2bed4;
|
||||
--accentbtn: #81a1c1;
|
||||
--selected: #b4bdd0;
|
||||
--selectedWithShare: #a3afbb;
|
||||
--gray: #5c6c8c;
|
||||
}
|
||||
.snowtheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
@@ -18,7 +18,7 @@
|
||||
padding: 0.23rem;
|
||||
padding-right: 0;
|
||||
padding-left: 3rem;
|
||||
background-color: var(--sidebar);
|
||||
background-color: var(--bottom);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
@@ -62,7 +62,7 @@
|
||||
}
|
||||
#bottom a,
|
||||
#demogroup a {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
}
|
||||
#bottom i {
|
||||
font-size: 2.3rem;
|
||||
@@ -93,7 +93,7 @@
|
||||
display: grid;
|
||||
grid-template-columns: 3rem 2.3rem 2.5fr 1fr 4.6rem;
|
||||
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 name refresh' 'cover progress progress progress time';
|
||||
}
|
||||
#spot-refresh {
|
||||
grid-area: refresh;
|
||||
@@ -108,18 +108,12 @@
|
||||
overflow: hidden;
|
||||
line-height: 1.92rem;
|
||||
}
|
||||
#spot-artist {
|
||||
grid-area: artist;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
line-height: 1.92rem;
|
||||
}
|
||||
#spot-img {
|
||||
width: 90%;
|
||||
}
|
||||
#spot-time {
|
||||
grid-area: time;
|
||||
line-height: 0.5rem;
|
||||
}
|
||||
.progress {
|
||||
grid-area: progress;
|
||||
@@ -243,7 +237,6 @@ iframe,
|
||||
flex: 1;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
background-color: var(--bg);
|
||||
}
|
||||
.additional {
|
||||
overflow-x: scroll;
|
||||
@@ -436,7 +429,7 @@ iframe,
|
||||
}
|
||||
|
||||
.btn-flat {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
}
|
||||
.area-side i {
|
||||
margin-left: 0.75rem;
|
||||
@@ -455,44 +448,15 @@ iframe,
|
||||
color: var(--beforehover);
|
||||
}
|
||||
.actct:hover {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
transition: 0.5s;
|
||||
}
|
||||
#contextWrap {
|
||||
position: fixed;
|
||||
width: 199vw;
|
||||
height: 100vh;
|
||||
z-index: 100;
|
||||
.contextMenu.dropdown-content {
|
||||
padding-top: 5px;
|
||||
overflow-y: hidden;
|
||||
left: calc(100% - 200px) !important;
|
||||
width: 200px !important;
|
||||
}
|
||||
.contextMenu {
|
||||
position: fixed;
|
||||
background-color: var(--box);
|
||||
z-index: 9999;
|
||||
border-radius: 0.4rem;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
.contextMenu.bottom:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
right: 2rem;
|
||||
border: 1.2rem solid transparent;
|
||||
border-top: 1.2rem solid var(--box);
|
||||
}
|
||||
.contextMenu.top:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -2.3rem;
|
||||
right: 2rem;
|
||||
border: 1.5rem solid transparent;
|
||||
border-bottom: 1.5rem solid var(--box);
|
||||
}
|
||||
.contextMenu .btn-flat {
|
||||
text-transform: none !important;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.gray {
|
||||
color: var(--gray);
|
||||
}
|
||||
@@ -531,7 +495,7 @@ iframe,
|
||||
user-select: none;
|
||||
}
|
||||
.cbadge-hover {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
background-color: transparent;
|
||||
}
|
||||
.cbadge-hover:hover {
|
||||
@@ -547,7 +511,7 @@ p:not(:last-child) {
|
||||
margin-bottom: 0.76rem;
|
||||
}
|
||||
.shared {
|
||||
background-color: var(--shared);
|
||||
background-color: var(--accent);
|
||||
}
|
||||
.emphasized {
|
||||
background-color: var(--emphasized);
|
||||
@@ -557,7 +521,7 @@ p:not(:last-child) {
|
||||
}
|
||||
.notice-box {
|
||||
top: 0;
|
||||
background-color: var(--notfbox);
|
||||
background-color: var(--subcolor);
|
||||
filter: brightness(110%);
|
||||
position: relative;
|
||||
margin-right: 0.7rem;
|
||||
@@ -626,7 +590,7 @@ p:not(:last-child) {
|
||||
.notf-box {
|
||||
position: fixed;
|
||||
right: 5.4rem;
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
border: thin solid gray;
|
||||
z-index: 501;
|
||||
width: 30rem;
|
||||
@@ -663,14 +627,30 @@ p:not(:last-child) {
|
||||
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12),
|
||||
0 5px 5px -3px rgba(0, 0, 0, 0.3), 0px -10px 10px 0px rgba(0, 0, 0, 0.3) inset;
|
||||
}
|
||||
.notf-indv-box label span {
|
||||
padding-left: 23px !important;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.notf-indv-box .setting {
|
||||
font-size: 1rem;
|
||||
width: calc(25% - 3px);
|
||||
text-align: left;
|
||||
padding: 5px;
|
||||
height: 70px;
|
||||
text-align: center;
|
||||
}
|
||||
.notf-exclude-btn:hover {
|
||||
background-color: inherit !important;
|
||||
border: 1px solid;
|
||||
}
|
||||
.type-b {
|
||||
display: none;
|
||||
}
|
||||
.modal-footer {
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
}
|
||||
.ballons {
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
right: 0px;
|
||||
@@ -728,11 +708,11 @@ p:not(:last-child) {
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
.votebtn:hover {
|
||||
background-color: var(--color);
|
||||
background-color: var(--text);
|
||||
}
|
||||
.leadPoll {
|
||||
position: absolute;
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
height: 1.5rem;
|
||||
border-radius: 0.23rem;
|
||||
}
|
||||
@@ -794,11 +774,11 @@ audio {
|
||||
.cw_btn {
|
||||
margin: 0.23rem;
|
||||
background-color: var(--emphasized);
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
padding-left: 0.23rem;
|
||||
padding-right: 0.23rem;
|
||||
border-radius: 0.23rem;
|
||||
border: 1px solid var(--color);
|
||||
border: 1px solid var(--text);
|
||||
user-select: none;
|
||||
}
|
||||
.vis-data {
|
||||
@@ -888,7 +868,7 @@ audio {
|
||||
cursor: pointer;
|
||||
border: solid 1px;
|
||||
padding-left: 0.15rem;
|
||||
background-color: var(--notfbox);
|
||||
background-color: var(--subcolor);
|
||||
border-radius: 0.15rem;
|
||||
}
|
||||
.announReaction img {
|
||||
|
@@ -1,151 +1,162 @@
|
||||
/*アイコンをクリックした時とかにでてくるユーザーデータ*/
|
||||
#his-data {
|
||||
background-repeat: no-repeat;
|
||||
background-image: url("../img/loading.svg");
|
||||
overflow-y: hidden;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url('../img/loading.svg');
|
||||
overflow-y: hidden;
|
||||
}
|
||||
#his-data .btn .material-icons{
|
||||
float:left;
|
||||
#his-data .btn .material-icons {
|
||||
float: left;
|
||||
}
|
||||
#his-data-content {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
#his-name {
|
||||
font-size: 1.5rem;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
#his-prof {
|
||||
float: left;
|
||||
width: 7.7rem;
|
||||
margin-right: 0.4rem;
|
||||
width: 7.7rem;
|
||||
margin-right: 0.4rem;
|
||||
}
|
||||
.his-float {
|
||||
overflow-y: scroll;
|
||||
padding: 0.4rem;
|
||||
overflow-y: scroll;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
#his-float-data {
|
||||
height: 100%;
|
||||
height: 100%;
|
||||
overflow-y: hidden;
|
||||
|
||||
}
|
||||
#his-leftside {
|
||||
width: 38.4rem;
|
||||
width: 28.4rem;
|
||||
max-width: 30vw;
|
||||
}
|
||||
#his-float-timeline {
|
||||
max-width: 59.6rem;
|
||||
height: 100%;
|
||||
overflow-y: hidden;
|
||||
max-width: 47.5rem;
|
||||
min-width: calc(100% - 29.4rem);
|
||||
height: 100%;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
#his-basic-prof {
|
||||
min-height: 10rem;
|
||||
display: flex;
|
||||
min-height: 10rem;
|
||||
}
|
||||
#his-field {
|
||||
vertical-align: baseline;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
vertical-align: baseline;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
}
|
||||
#his-field tr {
|
||||
height: 1.5rem;
|
||||
height: 1.5rem;
|
||||
}
|
||||
.his-field-title {
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
background-color: #757575;
|
||||
text-align: center;
|
||||
padding: 0.4rem;
|
||||
margin-bottom: 1px;
|
||||
width: 30%;
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
background-color: #757575;
|
||||
text-align: center;
|
||||
padding: 0.4rem;
|
||||
margin-bottom: 1px;
|
||||
width: 30%;
|
||||
}
|
||||
.his-field-content {
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
padding-left: 0.4rem;
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
padding-left: 0.4rem;
|
||||
}
|
||||
.his-var-content a span.ellipsis:after {
|
||||
content: "...";
|
||||
content: '...';
|
||||
}
|
||||
.his-var-content a:not(.mention) span:last-of-type {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
#his-data a .rep_ct,
|
||||
#his-data a .rt_ct,
|
||||
#his-data a .fav_ct {
|
||||
display: inline !important;
|
||||
display: inline !important;
|
||||
}
|
||||
#his-data-show {
|
||||
margin: 1.5rem;
|
||||
margin-left: 3.8rem;
|
||||
margin-right: 3.8rem;
|
||||
background-color: var(--his-data);
|
||||
height: calc(100% - 1.5rem);
|
||||
margin-bottom: 0;
|
||||
padding: 0.4rem;
|
||||
margin: 1.5rem;
|
||||
margin-left: 3.8rem;
|
||||
margin-right: 3.8rem;
|
||||
background-color: var(--his-data);
|
||||
height: calc(100% - 1.5rem);
|
||||
margin-bottom: 0;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
#his-data-wrap {
|
||||
display: flex;
|
||||
display: flex;
|
||||
}
|
||||
.his-var-content {
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
height: calc(100% - 3.4rem);
|
||||
padding-bottom: 60px;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
height: calc(100% - 3.4rem);
|
||||
padding-bottom: 60px;
|
||||
}
|
||||
#my-data-nav .btn {
|
||||
width: 10.7rem;
|
||||
width: 10.6rem;
|
||||
}
|
||||
.active-back {
|
||||
background-color: var(--active);
|
||||
#my-data-nav .active-back {
|
||||
display: none;
|
||||
}
|
||||
#his-name .emojione,
|
||||
#his-name .emoji-img {
|
||||
width: 1.538rem;
|
||||
width: 1.538rem;
|
||||
}
|
||||
#his-plus-action .btn {
|
||||
padding-right: 0.4rem;
|
||||
padding-left: 0.4rem;
|
||||
padding-right: 0.4rem;
|
||||
padding-left: 0.4rem;
|
||||
}
|
||||
.tabs {
|
||||
display: flex;
|
||||
display: flex;
|
||||
}
|
||||
.tabs .tab a {
|
||||
padding: 0.6rem 0.9rem;
|
||||
padding: 0.6rem 0.9rem;
|
||||
}
|
||||
#his-des {
|
||||
max-height: 17.7rem;
|
||||
overflow-y: scroll;
|
||||
max-height: 17.7rem;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
#his-sign-action {
|
||||
border: 1px solid;
|
||||
border-radius: 0.4rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: 0.75rem;
|
||||
padding-right: 0.75rem;
|
||||
flex-wrap: wrap;
|
||||
border: 1px solid;
|
||||
border-radius: 0.4rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: 0.75rem;
|
||||
padding-right: 0.75rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
#his-sign-action .btn {
|
||||
flex-basis: 31.2%;
|
||||
flex-basis: calc(50% - 10.6px);
|
||||
}
|
||||
#his-sign-action .dropdown-trigger {
|
||||
flex-basis: 100%;
|
||||
}
|
||||
#his-des .mention {
|
||||
color: #039be5;
|
||||
cursor: pointer;
|
||||
color: #039be5;
|
||||
cursor: pointer;
|
||||
}
|
||||
#his-table{
|
||||
max-height: 11.538rem;
|
||||
overflow-y: scroll;
|
||||
#his-table {
|
||||
max-height: 11.538rem;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
#his-float-blocked {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 2rem;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 2rem;
|
||||
height: 100%;
|
||||
}
|
||||
#hisdropdown{
|
||||
background-color: var(--bg);
|
||||
#hisdropdown {
|
||||
background-color: var(--bg);
|
||||
}
|
||||
#hisdropdown li a {
|
||||
color: white;
|
||||
color: white;
|
||||
}
|
||||
#hisdropdown li:hover {
|
||||
background-color: var(--active);
|
||||
}
|
||||
#his-data-title {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
#hisdropdown li:hover{
|
||||
background-color: var(--active);
|
||||
}
|
50
app/img/aiscript.svg
Normal file
50
app/img/aiscript.svg
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 687 72" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g id="アートボード1" transform="matrix(1,0,0,1,-168.896,-476)">
|
||||
<rect x="168.896" y="476" width="686.208" height="72" style="fill:none;"/>
|
||||
<clipPath id="_clip1">
|
||||
<rect x="168.896" y="476" width="686.208" height="72"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#_clip1)">
|
||||
<g transform="matrix(1,0,0,1,77.6363,162.413)">
|
||||
<g transform="matrix(96,0,0,96,88.3157,385.587)">
|
||||
<path d="M0.463,-0.571C0.452,-0.59 0.436,-0.602 0.415,-0.608C0.394,-0.613 0.374,-0.611 0.356,-0.6L0.08,-0.443C0.053,-0.428 0.04,-0.405 0.04,-0.374C0.04,-0.344 0.053,-0.321 0.08,-0.306L0.356,-0.148C0.368,-0.141 0.381,-0.138 0.395,-0.138C0.425,-0.138 0.448,-0.151 0.463,-0.178C0.474,-0.197 0.476,-0.217 0.47,-0.237C0.465,-0.259 0.453,-0.274 0.434,-0.285L0.278,-0.374L0.434,-0.464C0.453,-0.474 0.465,-0.49 0.47,-0.511C0.476,-0.532 0.474,-0.552 0.463,-0.571Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,137.468,385.587)">
|
||||
<path d="M0.197,-0.67C0.197,-0.691 0.189,-0.71 0.174,-0.725C0.159,-0.74 0.14,-0.748 0.118,-0.748C0.096,-0.748 0.078,-0.74 0.063,-0.725C0.047,-0.71 0.04,-0.691 0.04,-0.67C0.04,-0.648 0.047,-0.629 0.063,-0.614C0.078,-0.599 0.096,-0.591 0.118,-0.591C0.14,-0.591 0.159,-0.599 0.174,-0.614C0.189,-0.629 0.197,-0.648 0.197,-0.67ZM0.197,-0.079C0.197,-0.101 0.189,-0.119 0.174,-0.135C0.159,-0.15 0.14,-0.158 0.118,-0.158C0.096,-0.158 0.078,-0.15 0.063,-0.135C0.047,-0.119 0.04,-0.101 0.04,-0.079C0.04,-0.057 0.047,-0.038 0.063,-0.023C0.078,-0.008 0.096,0 0.118,0C0.14,0 0.159,-0.008 0.174,-0.023C0.189,-0.038 0.197,-0.057 0.197,-0.079Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,201.74,385.587)">
|
||||
<path d="M0.118,-0.75C0.097,-0.75 0.078,-0.742 0.063,-0.727C0.047,-0.712 0.04,-0.693 0.04,-0.671L0.04,-0.573C0.04,-0.551 0.047,-0.532 0.063,-0.517C0.078,-0.502 0.097,-0.494 0.118,-0.494C0.14,-0.494 0.159,-0.502 0.174,-0.517C0.189,-0.532 0.197,-0.551 0.197,-0.573L0.197,-0.671C0.197,-0.693 0.189,-0.712 0.174,-0.727C0.159,-0.742 0.14,-0.75 0.118,-0.75ZM0.355,-0.75C0.333,-0.75 0.314,-0.742 0.299,-0.727C0.284,-0.712 0.276,-0.693 0.276,-0.671L0.276,-0.573C0.276,-0.551 0.284,-0.532 0.299,-0.517C0.314,-0.502 0.333,-0.494 0.355,-0.494C0.377,-0.494 0.395,-0.502 0.41,-0.517C0.426,-0.532 0.434,-0.551 0.434,-0.573L0.434,-0.671C0.434,-0.693 0.426,-0.712 0.41,-0.727C0.395,-0.742 0.377,-0.75 0.355,-0.75Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,247.1,385.587)">
|
||||
<path d="M0.394,-0.494L0.488,-0.306L0.3,-0.306L0.394,-0.494ZM0.063,-0.009C0.082,0.001 0.102,0.002 0.123,-0.005C0.144,-0.011 0.159,-0.024 0.169,-0.044L0.221,-0.148L0.566,-0.148L0.619,-0.044C0.625,-0.03 0.635,-0.02 0.648,-0.012C0.661,-0.004 0.674,0 0.689,0C0.701,0 0.713,-0.003 0.724,-0.009C0.743,-0.018 0.756,-0.033 0.763,-0.054C0.771,-0.075 0.769,-0.095 0.759,-0.114L0.464,-0.705C0.457,-0.718 0.448,-0.729 0.435,-0.737C0.422,-0.745 0.408,-0.749 0.394,-0.749C0.379,-0.749 0.365,-0.745 0.352,-0.737C0.339,-0.729 0.33,-0.718 0.323,-0.705L0.028,-0.114C0.018,-0.095 0.017,-0.075 0.024,-0.054C0.03,-0.033 0.043,-0.018 0.063,-0.009Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,322.7,385.587)">
|
||||
<path d="M0.158,0C0.18,0 0.198,-0.008 0.214,-0.023C0.229,-0.038 0.236,-0.057 0.236,-0.079L0.236,-0.67C0.236,-0.691 0.229,-0.71 0.214,-0.725C0.198,-0.741 0.18,-0.749 0.158,-0.749C0.136,-0.749 0.117,-0.741 0.102,-0.725C0.087,-0.71 0.079,-0.691 0.079,-0.67L0.079,-0.079C0.079,-0.057 0.087,-0.038 0.102,-0.023C0.117,-0.008 0.136,0 0.158,0Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,352.988,385.587)">
|
||||
<path d="M0.118,-0.158C0.097,-0.158 0.078,-0.15 0.063,-0.135C0.047,-0.119 0.04,-0.101 0.04,-0.079C0.04,-0.057 0.047,-0.038 0.063,-0.023C0.078,-0.008 0.097,0 0.118,0L0.463,0C0.525,0 0.579,-0.022 0.623,-0.067C0.667,-0.111 0.69,-0.164 0.69,-0.227C0.69,-0.289 0.667,-0.342 0.623,-0.387C0.579,-0.431 0.525,-0.453 0.463,-0.453L0.266,-0.453C0.247,-0.453 0.231,-0.46 0.218,-0.473C0.204,-0.487 0.197,-0.503 0.197,-0.522C0.197,-0.541 0.204,-0.557 0.218,-0.571C0.231,-0.584 0.247,-0.591 0.266,-0.591L0.611,-0.591C0.632,-0.591 0.651,-0.599 0.667,-0.614C0.682,-0.629 0.69,-0.648 0.69,-0.67C0.69,-0.691 0.682,-0.71 0.667,-0.725C0.651,-0.741 0.632,-0.749 0.611,-0.749L0.266,-0.749C0.204,-0.749 0.15,-0.726 0.106,-0.682C0.062,-0.638 0.04,-0.584 0.04,-0.522C0.04,-0.459 0.062,-0.406 0.106,-0.362C0.15,-0.318 0.204,-0.296 0.266,-0.296L0.463,-0.296C0.482,-0.296 0.498,-0.289 0.511,-0.275C0.525,-0.262 0.532,-0.246 0.532,-0.227C0.532,-0.207 0.525,-0.191 0.511,-0.178C0.498,-0.164 0.482,-0.158 0.463,-0.158L0.118,-0.158Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,422.924,385.587)">
|
||||
<path d="M0.413,0C0.517,0 0.605,-0.037 0.678,-0.11C0.693,-0.125 0.701,-0.143 0.701,-0.166C0.701,-0.187 0.693,-0.206 0.678,-0.221C0.663,-0.236 0.644,-0.244 0.623,-0.244C0.601,-0.244 0.582,-0.236 0.567,-0.221C0.524,-0.179 0.473,-0.158 0.413,-0.158C0.354,-0.158 0.303,-0.179 0.261,-0.221C0.218,-0.263 0.197,-0.314 0.197,-0.374C0.197,-0.434 0.218,-0.485 0.261,-0.528C0.303,-0.57 0.354,-0.591 0.413,-0.591C0.473,-0.591 0.524,-0.57 0.567,-0.528C0.582,-0.512 0.601,-0.504 0.623,-0.504C0.644,-0.504 0.663,-0.512 0.678,-0.528C0.693,-0.543 0.701,-0.561 0.701,-0.583C0.701,-0.605 0.693,-0.623 0.678,-0.639C0.605,-0.712 0.517,-0.749 0.413,-0.749C0.31,-0.749 0.222,-0.712 0.149,-0.639C0.076,-0.566 0.04,-0.478 0.04,-0.374C0.04,-0.271 0.076,-0.183 0.149,-0.11C0.222,-0.037 0.31,0 0.413,0Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,492.86,385.587)">
|
||||
<path d="M0.572,-0.472C0.572,-0.44 0.56,-0.412 0.537,-0.389C0.514,-0.366 0.486,-0.355 0.453,-0.355L0.236,-0.355L0.236,-0.591L0.453,-0.591C0.486,-0.591 0.514,-0.579 0.537,-0.556C0.56,-0.533 0.572,-0.505 0.572,-0.472ZM0.421,-0.197L0.595,-0.023C0.61,-0.008 0.628,0 0.65,0C0.672,0 0.69,-0.008 0.706,-0.023C0.721,-0.038 0.729,-0.057 0.729,-0.079C0.729,-0.101 0.721,-0.119 0.706,-0.135L0.601,-0.24C0.64,-0.265 0.671,-0.298 0.694,-0.338C0.717,-0.38 0.729,-0.425 0.729,-0.472C0.729,-0.549 0.702,-0.614 0.648,-0.668C0.594,-0.722 0.529,-0.749 0.453,-0.749L0.158,-0.749C0.136,-0.749 0.117,-0.741 0.102,-0.725C0.087,-0.71 0.079,-0.691 0.079,-0.67L0.079,-0.079C0.079,-0.057 0.087,-0.038 0.102,-0.023C0.117,-0.008 0.136,0 0.158,0C0.18,0 0.198,-0.008 0.214,-0.023C0.229,-0.038 0.236,-0.057 0.236,-0.079L0.236,-0.197L0.421,-0.197Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,566.588,385.587)">
|
||||
<path d="M0.158,0C0.18,0 0.198,-0.008 0.214,-0.023C0.229,-0.038 0.236,-0.057 0.236,-0.079L0.236,-0.67C0.236,-0.691 0.229,-0.71 0.214,-0.725C0.198,-0.741 0.18,-0.749 0.158,-0.749C0.136,-0.749 0.117,-0.741 0.102,-0.725C0.087,-0.71 0.079,-0.691 0.079,-0.67L0.079,-0.079C0.079,-0.057 0.087,-0.038 0.102,-0.023C0.117,-0.008 0.136,0 0.158,0Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,596.876,385.587)">
|
||||
<path d="M0.572,-0.472C0.572,-0.44 0.56,-0.412 0.537,-0.389C0.514,-0.366 0.486,-0.355 0.453,-0.355L0.236,-0.355L0.236,-0.591L0.453,-0.591C0.486,-0.591 0.514,-0.579 0.537,-0.556C0.56,-0.533 0.572,-0.505 0.572,-0.472ZM0.158,0C0.18,0 0.198,-0.008 0.214,-0.023C0.229,-0.038 0.236,-0.057 0.236,-0.079L0.236,-0.197L0.453,-0.197C0.529,-0.197 0.594,-0.224 0.648,-0.278C0.702,-0.332 0.729,-0.397 0.729,-0.472C0.729,-0.549 0.702,-0.614 0.648,-0.668C0.594,-0.722 0.529,-0.749 0.453,-0.749L0.158,-0.749C0.136,-0.749 0.117,-0.741 0.102,-0.725C0.087,-0.71 0.079,-0.691 0.079,-0.67L0.079,-0.079C0.079,-0.057 0.087,-0.038 0.102,-0.023C0.117,-0.008 0.136,0 0.158,0Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,670.604,385.587)">
|
||||
<path d="M0.266,-0.591L0.266,-0.079C0.266,-0.057 0.273,-0.038 0.289,-0.023C0.304,-0.008 0.323,0 0.344,0C0.366,0 0.385,-0.008 0.4,-0.023C0.415,-0.038 0.423,-0.057 0.423,-0.079L0.423,-0.591L0.591,-0.591C0.612,-0.591 0.631,-0.599 0.647,-0.614C0.662,-0.629 0.67,-0.648 0.67,-0.67C0.67,-0.691 0.662,-0.71 0.647,-0.725C0.631,-0.741 0.612,-0.749 0.591,-0.749L0.099,-0.749C0.077,-0.749 0.058,-0.741 0.043,-0.725C0.027,-0.71 0.02,-0.691 0.02,-0.67C0.02,-0.648 0.027,-0.629 0.043,-0.614C0.058,-0.599 0.077,-0.591 0.099,-0.591L0.266,-0.591Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,736.748,385.587)">
|
||||
<path d="M0.118,-0.75C0.097,-0.75 0.078,-0.742 0.063,-0.727C0.047,-0.712 0.04,-0.693 0.04,-0.671L0.04,-0.573C0.04,-0.551 0.047,-0.532 0.063,-0.517C0.078,-0.502 0.097,-0.494 0.118,-0.494C0.14,-0.494 0.159,-0.502 0.174,-0.517C0.189,-0.532 0.197,-0.551 0.197,-0.573L0.197,-0.671C0.197,-0.693 0.189,-0.712 0.174,-0.727C0.159,-0.742 0.14,-0.75 0.118,-0.75ZM0.355,-0.75C0.333,-0.75 0.314,-0.742 0.299,-0.727C0.284,-0.712 0.276,-0.693 0.276,-0.671L0.276,-0.573C0.276,-0.551 0.284,-0.532 0.299,-0.517C0.314,-0.502 0.333,-0.494 0.355,-0.494C0.377,-0.494 0.395,-0.502 0.41,-0.517C0.426,-0.532 0.434,-0.551 0.434,-0.573L0.434,-0.671C0.434,-0.693 0.426,-0.712 0.41,-0.727C0.395,-0.742 0.377,-0.75 0.355,-0.75Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 10 KiB |
@@ -227,7 +227,8 @@ $(function($) {
|
||||
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct')
|
||||
var ats_cm = $('.selectedToot .rep-btn').attr('data-men')
|
||||
var mode = $('.selectedToot .rep-btn').attr('data-visen')
|
||||
re(id, ats_cm, acct_id, mode)
|
||||
var cwTxt = $('#cw-text').val()
|
||||
re(id, ats_cm, acct_id, mode, cwTxt)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
//バージョンチェッカー
|
||||
function verck(ver, jp) {
|
||||
if (store) return false
|
||||
console.log('%c Welcome😊 ' + ver, 'color: red;font-size:200%;')
|
||||
$('body').addClass(localStorage.getItem('platform'))
|
||||
var date = new Date()
|
||||
@@ -72,9 +73,9 @@ function verck(ver, jp) {
|
||||
}
|
||||
var platform = localStorage.getItem('platform')
|
||||
console.log('Your platform:' + platform)
|
||||
if (!localStorage.getItem('winstore') && !pwa) {
|
||||
$('#start').css('display', 'flex')
|
||||
}
|
||||
//if (!localStorage.getItem('winstore') && !pwa) {
|
||||
// $('#start').css('display', 'flex')
|
||||
//}
|
||||
if (
|
||||
localStorage.getItem('winstore') == 'brewcask' ||
|
||||
localStorage.getItem('winstore') == 'snapcraft' ||
|
||||
@@ -327,82 +328,8 @@ function closeSupport() {
|
||||
}
|
||||
)
|
||||
}
|
||||
function storeDialog(platform, ver) {
|
||||
if($('body').hasClass('accessibility')) return false
|
||||
if (platform == 'win32') {
|
||||
var mes = lang.lang_version_platform
|
||||
} else if (platform == 'linux') {
|
||||
var mes = lang.lang_version_platform_linux
|
||||
} else if (platform == 'darwin') {
|
||||
var mes = lang.lang_version_platform_mac
|
||||
} else {
|
||||
var mes = false
|
||||
}
|
||||
if (mes) {
|
||||
Swal.fire({
|
||||
title: 'Select your platform',
|
||||
text: mes,
|
||||
type: 'info',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#3085d6',
|
||||
confirmButtonText: lang.lang_no,
|
||||
cancelButtonText: lang.lang_yesno
|
||||
}).then(result => {
|
||||
//逆にしてる
|
||||
if (!result.value) {
|
||||
localStorage.setItem('winstore', 'winstore')
|
||||
} else {
|
||||
localStorage.setItem('winstore', 'localinstall')
|
||||
}
|
||||
localStorage.setItem('ver', ver)
|
||||
showVer = true
|
||||
if(pwa) return false
|
||||
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
|
||||
$(document).ready(function() {
|
||||
$('#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 {
|
||||
localStorage.setItem('ver', ver)
|
||||
showVer = true
|
||||
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
|
||||
$(document).ready(function() {
|
||||
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() {
|
||||
$('#start').css('display', 'none')
|
||||
var platform = localStorage.getItem('platform')
|
||||
var ver = localStorage.getItem('ver')
|
||||
storeDialog(platform, ver)
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ function ck() {
|
||||
} else {
|
||||
var obj = JSON.parse(multi)
|
||||
var jp = false
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var acct = obj[key]
|
||||
if (acct.domain) {
|
||||
refresh(key, true)
|
||||
@@ -47,8 +47,15 @@ function ck() {
|
||||
multiSelector(false)
|
||||
verck(ver, jp)
|
||||
$('.stw').show()
|
||||
if (localStorage.getItem('tips')) {
|
||||
tips(localStorage.getItem('tips'))
|
||||
let tipsName = localStorage.getItem('tips')
|
||||
const matchCID = /custom:([abcdef0-9]{8}-[abcdef0-9]{4}-4[abcdef0-9]{3}-[abcdef0-9]{4}-[abcdef0-9]{12})/
|
||||
if (tipsName) {
|
||||
if (tipsName.match(matchCID)) {
|
||||
const id = tipsName.match(matchCID)[1]
|
||||
tips('custom', id)
|
||||
} else {
|
||||
tips(tipsName)
|
||||
}
|
||||
}
|
||||
$('#something-wrong img').attr('src', '../../img/thinking.svg')
|
||||
}
|
||||
@@ -77,7 +84,7 @@ function login(url) {
|
||||
website: 'https://thedesk.top'
|
||||
})
|
||||
)
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -142,20 +149,20 @@ function code(code, mode) {
|
||||
code: code
|
||||
})
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
todo(json)
|
||||
if (json['access_token']) {
|
||||
localStorage.setItem(url + '_at', json['access_token'])
|
||||
@@ -181,20 +188,20 @@ function getdata() {
|
||||
Authorization: 'Bearer ' + at
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
if (json.error) {
|
||||
console.error('Error:' + json.error)
|
||||
M.toast({ html: lang.lang_fatalerroroccured + 'Error:' + json.error, displayLength: 5000 })
|
||||
@@ -239,20 +246,20 @@ function getdataAdv(domain, at) {
|
||||
Authorization: 'Bearer ' + at
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
if (json.error) {
|
||||
console.error('Error:' + json.error)
|
||||
M.toast({ html: lang.lang_fatalerroroccured + 'Error:' + json.error, displayLength: 5000 })
|
||||
@@ -291,34 +298,40 @@ function getdataAdv(domain, at) {
|
||||
})
|
||||
}
|
||||
//ユーザーデータ更新
|
||||
function refresh(target, loadskip) {
|
||||
async function refresh(target, loadskip) {
|
||||
var multi = localStorage.getItem('multi')
|
||||
var obj = JSON.parse(multi)
|
||||
if (obj[target].mode == 'misskey') {
|
||||
return
|
||||
}
|
||||
let at = obj[target].at
|
||||
if (obj[target].rt) {
|
||||
console.log('refresh access token')
|
||||
at = await refreshPleromaAt(obj[target])
|
||||
localStorage.setItem(`acct_${target}_at`, at)
|
||||
}
|
||||
var start = 'https://' + obj[target].domain + '/api/v1/accounts/verify_credentials'
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
Authorization: 'Bearer ' + obj[target].at
|
||||
Authorization: 'Bearer ' + at
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
if (json.error) {
|
||||
console.error('Error:' + json.error)
|
||||
M.toast({ html: lang.lang_fatalerroroccured + 'Error:' + json.error, displayLength: 5000 })
|
||||
@@ -362,6 +375,29 @@ function refresh(target, loadskip) {
|
||||
}
|
||||
})
|
||||
}
|
||||
async function refreshPleromaAt(obj) {
|
||||
const start = 'https://' + obj.domain + '/oauth/token'
|
||||
const rt = obj.rt.split(' ')
|
||||
let promise = await fetch(start, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
grant_type : 'refresh_token',
|
||||
refresh_token: rt[0],
|
||||
client_id: rt[1],
|
||||
client_secret: rt[2]
|
||||
})
|
||||
})
|
||||
|
||||
const json = await promise.json()
|
||||
if (json.access_token) {
|
||||
return json.access_token
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
//MarkdownやBBCodeの対応、文字数制限をチェック
|
||||
//絶対ストリーミングを閉じさせないマン
|
||||
function ckdb(acct_id) {
|
||||
@@ -447,13 +483,13 @@ function ckdb(acct_id) {
|
||||
'content-type': 'application/json'
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
if (json.error) {
|
||||
console.error(json.error)
|
||||
return
|
||||
@@ -500,7 +536,7 @@ function multiSelector(parseC) {
|
||||
$('#src-acct-sel').html('<option value="tootsearch">Tootsearch</option>')
|
||||
$('#add-acct-sel').html('<option value="noauth">' + lang.lang_login_noauth + '</option>')
|
||||
} else {
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var acct = obj[key]
|
||||
var list = key * 1 + 1
|
||||
if (key + '' === last) {
|
||||
@@ -568,8 +604,8 @@ function multiSelector(parseC) {
|
||||
$('#src-acct-sel').append('<option value="tootsearch">Tootsearch</option>')
|
||||
$('#add-acct-sel').append(
|
||||
'<option value="noauth">' +
|
||||
lang.lang_login_noauth +
|
||||
'</option><option value="webview">Twitter</option>'
|
||||
lang.lang_login_noauth +
|
||||
'</option><!--option value="webview">Twitter</option-->'
|
||||
)
|
||||
$('#dir-acct-sel').append('<option value="noauth">' + lang.lang_login_noauth + '</option>')
|
||||
}
|
||||
@@ -598,18 +634,18 @@ function ticker() {
|
||||
'content-type': 'application/json'
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
if (json) {
|
||||
localStorage.removeItem('ticker')
|
||||
localStorage.setItem('sticker', JSON.stringify(json))
|
||||
|
@@ -36,7 +36,7 @@ function load() {
|
||||
var domains = []
|
||||
var templete
|
||||
$('#acct-list').html('')
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var acct = obj[key]
|
||||
var list = key * 1 + 1
|
||||
if (acct.background != 'def' && acct.text != 'def') {
|
||||
@@ -55,6 +55,9 @@ function load() {
|
||||
<div class="card-content ">
|
||||
<span class="lts">${list}.</span><img src="${acct.prof}" width="40" height="40" />
|
||||
<span class="card-title">${name}</span>${escapeHTML(acct.user)}@${acct.domain}
|
||||
<a onclick="login('${acct.domain}')" class="pointer white-text waves-effect" title="${lang.lang_manager_refreshAt}">
|
||||
<i class="material-icons text-line-icon">login</i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="card-action">
|
||||
<button class="btn-flat waves-effect disTar pointer white-text" onclick="refresh('${key}')">
|
||||
@@ -72,7 +75,7 @@ function load() {
|
||||
})
|
||||
domains = _.uniq(domains)
|
||||
$('#domain-list').html('')
|
||||
Object.keys(domains).forEach(function(key2) {
|
||||
Object.keys(domains).forEach(function (key2) {
|
||||
var domain = domains[key2]
|
||||
if (localStorage.getItem('letters_' + key2)) {
|
||||
var maxChars = localStorage.getItem('letters_' + key2)
|
||||
@@ -108,7 +111,7 @@ load()
|
||||
support()
|
||||
function maxChars(domain, uid) {
|
||||
var value = $('#maxChars' + uid).val()
|
||||
if(value*1 < 1 || !Number.isInteger(value*1)) {
|
||||
if (value * 1 < 1 || !Number.isInteger(value * 1)) {
|
||||
Swal.fire({
|
||||
type: 'error',
|
||||
title: 'Error'
|
||||
@@ -127,8 +130,8 @@ function maxChars(domain, uid) {
|
||||
localStorage.removeItem('multi')
|
||||
}
|
||||
}
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
if(obj[key].domain == domain) localStorage.setItem('letters_' + key, value)
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
if (obj[key].domain == domain) localStorage.setItem('letters_' + key, value)
|
||||
})
|
||||
console.log('#maxChars' + uid, value)
|
||||
load()
|
||||
@@ -208,7 +211,7 @@ function multiDel(target) {
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then(result => {
|
||||
if (result.value) {
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var nk = key - 1
|
||||
//公開範囲(差分のみ)
|
||||
if (key >= target) {
|
||||
@@ -227,7 +230,9 @@ function multiDel(target) {
|
||||
var olddom = localStorage.getItem('domain_' + key)
|
||||
localStorage.setItem('domain_' + nk, olddom)
|
||||
var oldat = localStorage.getItem('acct_' + key + '_at')
|
||||
var oldrt = localStorage.getItem('acct_' + key + '_rt')
|
||||
localStorage.setItem('acct_' + nk + '_at', oldat)
|
||||
localStorage.setItem('acct_' + nk + '_rt', oldrt)
|
||||
localStorage.setItem('name_' + nk, localStorage.getItem('name_' + key))
|
||||
localStorage.setItem('user_' + target, localStorage.getItem('user_' + key))
|
||||
localStorage.setItem('user-id_' + target, localStorage.getItem('user-id_' + key))
|
||||
@@ -243,7 +248,7 @@ function multiDel(target) {
|
||||
var col = localStorage.getItem('column')
|
||||
var oldcols = JSON.parse(col)
|
||||
var newcols = []
|
||||
Object.keys(oldcols).forEach(function(key) {
|
||||
Object.keys(oldcols).forEach(function (key) {
|
||||
var nk = key - 1
|
||||
var oldcol = oldcols[key]
|
||||
if (target < oldcol.domain) {
|
||||
@@ -253,19 +258,19 @@ function multiDel(target) {
|
||||
}
|
||||
var type = oldcol.type
|
||||
var data = null
|
||||
if(oldcol.data) {
|
||||
if (oldcol.data) {
|
||||
data = oldcol.data
|
||||
}
|
||||
var background = null
|
||||
if(oldcol.background) {
|
||||
if (oldcol.background) {
|
||||
background = oldcol.background
|
||||
}
|
||||
var text = null
|
||||
if(oldcol.text) {
|
||||
if (oldcol.text) {
|
||||
text = oldcol.text
|
||||
}
|
||||
var left_fold = false
|
||||
if(oldcol.left_fold) {
|
||||
if (oldcol.left_fold) {
|
||||
left_fold = true
|
||||
}
|
||||
//消した垢のコラムじゃないときコピー
|
||||
@@ -303,7 +308,7 @@ function multiDel2(target) {
|
||||
obj.splice(target, 1)
|
||||
var json = JSON.stringify(obj)
|
||||
localStorage.setItem('multi', json)
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
if (key >= target) {
|
||||
var oldvis = localStorage.getItem('vis-memory-' + key)
|
||||
if (oldvis) {
|
||||
@@ -331,7 +336,7 @@ function multiDel2(target) {
|
||||
} else {
|
||||
var cobj = JSON.parse(col)
|
||||
}
|
||||
Object.keys(cobj).forEach(function(key) {
|
||||
Object.keys(cobj).forEach(function (key) {
|
||||
var column = cobj[key]
|
||||
if (column.domain > target) {
|
||||
var nk = key - 1
|
||||
@@ -351,7 +356,7 @@ function multiDel2(target) {
|
||||
|
||||
//サポートインスタンス
|
||||
function support() {
|
||||
Object.keys(idata).forEach(function(key) {
|
||||
Object.keys(idata).forEach(function (key) {
|
||||
var instance = idata[key]
|
||||
if (instance == 'instance') {
|
||||
templete =
|
||||
@@ -399,7 +404,7 @@ function login(url) {
|
||||
website: 'https://thedesk.top'
|
||||
})
|
||||
)
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -437,20 +442,20 @@ function versionChecker(url) {
|
||||
'content-type': 'application/json'
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
var version = json.version
|
||||
if (version) {
|
||||
var reg = version.match(/^([0-9])\.[0-9]\.[0-9]/u)
|
||||
@@ -476,25 +481,25 @@ function versionCompat(prefix, ver, title, real) {
|
||||
'content-type': 'application/json'
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
var complete = false
|
||||
var ct = 0
|
||||
var jl = 0
|
||||
var jl2 = 0
|
||||
Object.keys(json).forEach(function(key) {
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var data = json[key]
|
||||
if (data) {
|
||||
jl++
|
||||
@@ -581,7 +586,7 @@ function misskeyLogin(url) {
|
||||
]
|
||||
})
|
||||
)
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -605,7 +610,7 @@ function misskeyAuth(url, mkc) {
|
||||
appSecret: mkc
|
||||
})
|
||||
)
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -629,9 +634,8 @@ function instance() {
|
||||
alert('入力形式が違います。(Cutls@mstdn.jpにログインする場合、入力するのは"mstdn.jp"です。)')
|
||||
return false
|
||||
}
|
||||
login(url)
|
||||
login(url)
|
||||
}
|
||||
|
||||
//コード入れてAccessTokenゲット
|
||||
function code(code) {
|
||||
localStorage.removeItem('redirect')
|
||||
@@ -657,7 +661,7 @@ function code(code) {
|
||||
appSecret: localStorage.getItem('mkc')
|
||||
})
|
||||
)
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -716,7 +720,7 @@ function code(code) {
|
||||
code: code
|
||||
})
|
||||
)
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -725,14 +729,16 @@ function code(code) {
|
||||
if (json['access_token']) {
|
||||
$('#auth').hide()
|
||||
$('#add').show()
|
||||
getdata(url, json['access_token'])
|
||||
getdata(url, json)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//ユーザーデータ取得
|
||||
function getdata(domain, at) {
|
||||
function getdata(domain, json) {
|
||||
var at = json['access_token']
|
||||
var rt = `${json['refresh_token']} ${localStorage.getItem('client_id')} ${localStorage.getItem('client_secret')}`
|
||||
var start = 'https://' + domain + '/api/v1/accounts/verify_credentials'
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
@@ -741,20 +747,20 @@ function getdata(domain, at) {
|
||||
Authorization: 'Bearer ' + at
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
if (json.error) {
|
||||
console.error('Error:' + json.error)
|
||||
M.toast({ html: lang.lang_fatalerroroccured + 'Error:' + json.error, displayLength: 5000 })
|
||||
@@ -772,6 +778,7 @@ function getdata(domain, at) {
|
||||
}
|
||||
var add = {
|
||||
at: at,
|
||||
rt: rt ? rt : null,
|
||||
name: json['display_name'],
|
||||
domain: domain,
|
||||
user: json['acct'],
|
||||
@@ -782,8 +789,24 @@ function getdata(domain, at) {
|
||||
}
|
||||
var multi = localStorage.getItem('multi')
|
||||
var obj = JSON.parse(multi)
|
||||
var target = obj.length
|
||||
obj.push(add)
|
||||
let addTarget = -1
|
||||
let ct = 0
|
||||
for (let acct of obj) {
|
||||
if (acct.domain === domain && acct.user === json['acct']) {
|
||||
console.log('detected dupl addct')
|
||||
addTarget = ct
|
||||
break
|
||||
}
|
||||
ct++
|
||||
}
|
||||
if (addTarget == -1) {
|
||||
var target = obj.length
|
||||
obj.push(add)
|
||||
} else {
|
||||
console.log('dupl acct_' + addTarget)
|
||||
obj[addTarget] = add
|
||||
var target = addTarget
|
||||
}
|
||||
localStorage.setItem('name_' + target, json['display_name'])
|
||||
localStorage.setItem('user_' + target, json['acct'])
|
||||
localStorage.setItem('user-id_' + target, json['id'])
|
||||
@@ -807,6 +830,7 @@ function atSetup(type) {
|
||||
var i = $('#misskey-key').val()
|
||||
var add = {
|
||||
at: i,
|
||||
rt: null,
|
||||
name: 'Pseudo Account',
|
||||
domain: url,
|
||||
user: 'user+pseudo',
|
||||
@@ -820,6 +844,7 @@ function atSetup(type) {
|
||||
var i = $('#code').val()
|
||||
var add = {
|
||||
at: i,
|
||||
rt: null,
|
||||
name: 'Pseudo Account',
|
||||
domain: url,
|
||||
user: 'user+pseudo',
|
||||
@@ -862,25 +887,25 @@ function refresh(target) {
|
||||
Authorization: 'Bearer ' + obj[target].at
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
if (json.error) {
|
||||
console.error('Error:' + json.error)
|
||||
M.toast({ html: lang.lang_fatalerroroccured + 'Error:' + json.error, displayLength: 5000 })
|
||||
@@ -893,6 +918,7 @@ function refresh(target) {
|
||||
}
|
||||
var ref = {
|
||||
at: obj[target].at,
|
||||
rt: obj[target].rt ? obj[target].rt : null,
|
||||
name: json['display_name'],
|
||||
domain: obj[target].domain,
|
||||
user: json['acct'],
|
||||
@@ -934,7 +960,7 @@ function misskeyRefresh(obj, target, url) {
|
||||
i: obj[target].at
|
||||
})
|
||||
)
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -944,6 +970,7 @@ function misskeyRefresh(obj, target, url) {
|
||||
var priv = 'public'
|
||||
var add = {
|
||||
at: json.accessToken,
|
||||
rt: null,
|
||||
name: json['user']['name'],
|
||||
domain: url,
|
||||
user: json['user']['username'],
|
||||
@@ -983,7 +1010,7 @@ function multisel() {
|
||||
$('#src-acct-sel').html('<option value="tootsearch">Tootsearch</option>')
|
||||
$('#add-acct-sel').html('<option value="noauth">' + lang.lang_login_noauth + '</option>')
|
||||
} else {
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var acct = obj[key]
|
||||
var list = key * 1 + 1
|
||||
if (key == last) {
|
||||
@@ -1073,10 +1100,10 @@ var oldSuggest
|
||||
var suggest
|
||||
input.addEventListener(
|
||||
'focus',
|
||||
function() {
|
||||
function () {
|
||||
$('#ins-suggest').html('')
|
||||
window.clearInterval(timer)
|
||||
timer = window.setInterval(function() {
|
||||
timer = window.setInterval(function () {
|
||||
var new_val = input.value
|
||||
if (prev_val != new_val) {
|
||||
if (new_val.length > 3) {
|
||||
@@ -1089,23 +1116,23 @@ input.addEventListener(
|
||||
'Bearer tC8F6xWGWBUwGScyNevYlx62iO6fdQ4oIK0ad68Oo7ZKB8GQdGpjW9TKxBnIh8grAhvd5rw3iyP9JPamoDpeLQdz62EToPJUW99hDx8rfuJfGdjQuimZPTbIOx0woA5M'
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
if (!json.error) {
|
||||
var urls = 'Suggest:'
|
||||
Object.keys(json.instances).forEach(function(key) {
|
||||
Object.keys(json.instances).forEach(function (key) {
|
||||
var url = json.instances[key]
|
||||
urls =
|
||||
urls +
|
||||
@@ -1127,7 +1154,7 @@ input.addEventListener(
|
||||
|
||||
input.addEventListener(
|
||||
'blur',
|
||||
function() {
|
||||
function () {
|
||||
window.clearInterval(timer)
|
||||
},
|
||||
false
|
||||
|
@@ -3,6 +3,7 @@
|
||||
$(document).on('click', 'a', e => {
|
||||
var $a = $(e.target)
|
||||
var url = $a.attr('href')
|
||||
var acct_id = $a.attr('data-acct')
|
||||
if (!url) {
|
||||
var url = $a.parent().attr('href')
|
||||
}
|
||||
@@ -43,10 +44,14 @@ $(document).on('click', 'a', e => {
|
||||
if (ats[2]) {
|
||||
//Quesdon判定
|
||||
if (!~ats[2].indexOf('@')) {
|
||||
udgEx(url, 'main')
|
||||
var acct_id = $a.parent().attr('data-acct')
|
||||
if (!acct_id) {
|
||||
acct_id = localStorage.getItem("main")
|
||||
}
|
||||
udgEx(url, acct_id)
|
||||
return false
|
||||
} else {
|
||||
if(pwa) {
|
||||
if (pwa) {
|
||||
return true
|
||||
} else {
|
||||
postMessage(['openUrl', url], '*')
|
||||
@@ -54,7 +59,7 @@ $(document).on('click', 'a', e => {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(pwa) {
|
||||
if (pwa) {
|
||||
return true
|
||||
}
|
||||
//hrefがhttp/httpsならブラウザで
|
||||
@@ -112,7 +117,7 @@ function playSound() {
|
||||
}
|
||||
context = new AudioContext()
|
||||
context.createBufferSource().start(0)
|
||||
context.decodeAudioData(request.response, function(buf) {
|
||||
context.decodeAudioData(request.response, function (buf) {
|
||||
//console.log("Playing:" , source)
|
||||
source.buffer = buf
|
||||
source.loop = false
|
||||
@@ -134,7 +139,7 @@ function playSound() {
|
||||
function nano() {
|
||||
postMessage(['nano', null], '*')
|
||||
}
|
||||
onmessage = function(e) {
|
||||
onmessage = function (e) {
|
||||
if (e.data[0] == 'details') {
|
||||
details(e.data[1][0], e.data[1][1])
|
||||
} else if (e.data[0] == 'udg') {
|
||||
@@ -144,9 +149,8 @@ onmessage = function(e) {
|
||||
} else if (e.data[0] == 'post') {
|
||||
post('pass')
|
||||
} else if (e.data[0] == 'toastSaved') {
|
||||
var showTxt = `${lang.lang_img_DLDone}${
|
||||
e.data[1][0]
|
||||
}<button class="btn-flat toast-action" onclick="openFinder('${e.data[1][1]}')">Show</button>`
|
||||
var showTxt = `${lang.lang_img_DLDone}${e.data[1][0]
|
||||
}<button class="btn-flat toast-action" onclick="openFinder('${e.data[1][1]}')">Show</button>`
|
||||
M.toast({ html: showTxt, displayLength: 5000 })
|
||||
} else if (e.data[0] == 'parseColumn') {
|
||||
parseColumn(e.data[1])
|
||||
@@ -170,7 +174,7 @@ onmessage = function(e) {
|
||||
} else if (e.data[0] == 'npCore') {
|
||||
npCore(e.data[1])
|
||||
} else if (e.data[0] == 'renderMem') {
|
||||
renderMem(e.data[1][0], e.data[1][1], e.data[1][2])
|
||||
renderMem(e.data[1][0], e.data[1][1], e.data[1][2], e.data[1][3], e.data[1][4])
|
||||
} else if (e.data[0] == 'updateProg') {
|
||||
updateProg(e.data[1])
|
||||
} else if (e.data[0] == 'updateMess') {
|
||||
@@ -197,7 +201,7 @@ onmessage = function(e) {
|
||||
}
|
||||
}
|
||||
/* PWA */
|
||||
if(pwa) {
|
||||
if (pwa) {
|
||||
function postMessage(e) {
|
||||
if (e[0] == 'openUrl') {
|
||||
urls = e[1].match(/https?:\/\/(.+)/)
|
||||
@@ -206,13 +210,27 @@ if(pwa) {
|
||||
title: 'Open URL',
|
||||
icon: 'info',
|
||||
html:
|
||||
`If you are OK, click: <a href="${urls[0]}" target="_blank" class="btn waves-effect">Here</a>`,
|
||||
`If you are OK, click: <a href="${urls[0]}" target="_blank" class="btn waves-effect">Here</a>`,
|
||||
showCloseButton: false,
|
||||
showCancelButton: true,
|
||||
focusConfirm: false,
|
||||
confirmButtonText: 'Close'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('html').addClass(localStorage.getItem('scroll') ? localStorage.getItem('scroll') : '')
|
||||
const connection = function (event) {
|
||||
console.log(navigator.onLine, 'network state')
|
||||
if (!navigator.onLine) {
|
||||
$('#re-online').addClass('hide')
|
||||
$('#offline').removeClass('hide')
|
||||
} else if (!$('#offline').hasClass('hide')) {
|
||||
$('#offline').addClass('hide')
|
||||
$('#re-online').removeClass('hide')
|
||||
}
|
||||
}
|
||||
window.onoffline = connection
|
||||
window.ononline = connection
|
||||
|
@@ -1,11 +1,18 @@
|
||||
$.strip_tags = function(str, allowed) {
|
||||
window.onload = function () {
|
||||
console.log('loaded')
|
||||
initPostbox()
|
||||
connection()
|
||||
initPlugin(plugins)
|
||||
if(localStorage.getItem('control-center-np')) $('#ccnp').removeClass('hide')
|
||||
}
|
||||
$.strip_tags = function (str, allowed) {
|
||||
if (!str) {
|
||||
return ''
|
||||
}
|
||||
allowed = (((allowed || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('')
|
||||
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>?/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 : ''
|
||||
})
|
||||
}
|
||||
@@ -88,17 +95,18 @@ function formattimeutc(date) {
|
||||
}
|
||||
postMessage(['sendSinmpleIpc', 'custom-css-request'], '*')
|
||||
function makeCID() {
|
||||
return (
|
||||
randomStr(8) +
|
||||
'-' +
|
||||
randomStr(4) +
|
||||
'-' +
|
||||
randomStr(4) +
|
||||
'-' +
|
||||
randomStr(4) +
|
||||
'-' +
|
||||
randomStr(12)
|
||||
)
|
||||
let chars = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("")
|
||||
for (let i = 0, len = chars.length; i < len; i++) {
|
||||
switch (chars[i]) {
|
||||
case "x":
|
||||
chars[i] = Math.floor(Math.random() * 16).toString(16)
|
||||
break
|
||||
case "y":
|
||||
chars[i] = (Math.floor(Math.random() * 4) + 8).toString(16)
|
||||
break
|
||||
}
|
||||
}
|
||||
return chars.join("")
|
||||
}
|
||||
function randomStr(l) {
|
||||
// 生成する文字列に含める文字セット
|
||||
@@ -147,15 +155,15 @@ function rgbToHex(color) {
|
||||
console.error(color + ':第1引数はRGB形式で入力')
|
||||
}
|
||||
/*マルチバイト用切り出し*/
|
||||
$.isSurrogatePear = function(upper, lower) {
|
||||
$.isSurrogatePear = function (upper, lower) {
|
||||
return 0xd800 <= upper && upper <= 0xdbff && 0xdc00 <= lower && lower <= 0xdfff
|
||||
}
|
||||
$.mb_strlen = function(str) {
|
||||
$.mb_strlen = function (str) {
|
||||
var splitter = new GraphemeSplitter()
|
||||
var arr = splitter.splitGraphemes(str)
|
||||
return arr.length
|
||||
}
|
||||
$.mb_substr = function(str, begin, end) {
|
||||
$.mb_substr = function (str, begin, end) {
|
||||
//配列にする
|
||||
var splitter = new GraphemeSplitter()
|
||||
var arr = splitter.splitGraphemes(str)
|
||||
@@ -175,7 +183,7 @@ function object_array_sort(data, key, order, fn) {
|
||||
num_a = 1
|
||||
num_b = -1
|
||||
}
|
||||
data = data.sort(function(a, b) {
|
||||
data = data.sort(function (a, b) {
|
||||
var x = a[key]
|
||||
var y = b[key]
|
||||
if (x > y) return num_a
|
||||
|
218
app/js/platform/plugin.js
Normal file
218
app/js/platform/plugin.js
Normal file
@@ -0,0 +1,218 @@
|
||||
|
||||
var plugins = getPlugin()
|
||||
function getPlugin() {
|
||||
const json = localStorage.getItem('plugins')
|
||||
let ret = {
|
||||
buttonOnPostbox: [],
|
||||
buttonOnToot: [],
|
||||
buttonOnBottom: [],
|
||||
init: [],
|
||||
tips: [],
|
||||
none: []
|
||||
}
|
||||
if (!json) return ret
|
||||
const plugins = JSON.parse(json)
|
||||
for (let plugin of plugins) {
|
||||
const meta = getMeta(plugin.content)
|
||||
if (!meta) continue
|
||||
const type = meta.event
|
||||
ret[type] ? ret[type].push(plugin) : ret[type] = [plugin]
|
||||
if (type === 'buttonOnToot') continue
|
||||
if (type === 'tips') {
|
||||
if (meta.interval) {
|
||||
const matchCID = /custom:([abcdef0-9]{8}-[abcdef0-9]{4}-4[abcdef0-9]{3}-[abcdef0-9]{4}-[abcdef0-9]{12})/
|
||||
setInterval(function () {
|
||||
const tipsName = localStorage.getItem('tips')
|
||||
if (tipsName.match(matchCID)) {
|
||||
const id = tipsName.match(matchCID)[1]
|
||||
if (id === plugin.id) if (location.href.split('/').pop() === 'index.html') execPlugin(id, 'tips', null)
|
||||
}
|
||||
|
||||
}, meta.interval)
|
||||
}
|
||||
continue
|
||||
}
|
||||
const shortcut = meta.shortcut
|
||||
$(window).keydown(function (e) {
|
||||
if (e.keyCode === shortcut && e.altKey) execPlugin(plugin.id, type)
|
||||
})
|
||||
}
|
||||
return ret
|
||||
}
|
||||
function initPlugin() {
|
||||
asCommon['TheDesk:dialog'] = asValue.FN_NATIVE((z) => {
|
||||
Swal.fire({
|
||||
title: z[0].value,
|
||||
icon: z[2] ? z[2].value : 'info',
|
||||
text: z[1] ? z[1].value : ''
|
||||
})
|
||||
})
|
||||
asCommon['TheDesk:confirm'] = asValue.FN_NATIVE(async (z) => {
|
||||
const alert = await Swal.fire({
|
||||
title: z[0].value,
|
||||
text: z[1].value,
|
||||
icon: z[2] ? z[2].value : 'info',
|
||||
showCancelButton: true
|
||||
})
|
||||
return asUtil.jsToVal(!!(alert.value && alert.value === true))
|
||||
})
|
||||
asCommon['TheDesk:css'] = asValue.FN_NATIVE((z) => {
|
||||
$(escapeHTML(z[0].value)).css(escapeHTML(z[1].value), escapeHTML(z[2].value))
|
||||
})
|
||||
asCommon['TheDesk:openLink'] = asValue.FN_NATIVE((z) => {
|
||||
postMessage(['openUrl', z[0].value], '*')
|
||||
})
|
||||
|
||||
const { buttonOnPostbox, init, buttonOnBottom, tips } = plugins
|
||||
for (let target of buttonOnPostbox) {
|
||||
const meta = getMeta(target.content)
|
||||
$('#dropdown2').append(`<li><a onclick="execPlugin('${target.id}','buttonOnPostbox', null);">${escapeHTML(meta.name)}</a></li>`)
|
||||
}
|
||||
for (let target of buttonOnBottom) {
|
||||
const meta = getMeta(target.content)
|
||||
$('#group .btnsgroup').append(`<a onclick="execPlugin('${target.id}','buttonOnBottom', null);" class="nex waves-effect pluginNex"><span title="${escapeHTML(meta.name)}">${escapeHTML(meta.name).substr(0, 1)}</span></a>`)
|
||||
}
|
||||
for (let target of tips) {
|
||||
const meta = getMeta(target.content)
|
||||
$('#tips-menu .btnsgroup').append(`<a onclick="tips('custom', '${target.id}')" class="nex waves-effect pluginNex"><span title="${escapeHTML(meta.name)}">${escapeHTML(meta.name).substr(0, 1)}</span></a>`)
|
||||
}
|
||||
for (let target of init) {
|
||||
const as = new AiScript(asCommon)
|
||||
const meta = getMeta(target.content)
|
||||
M.toast({ html: `${escapeHTML(meta.name)}を実行しました`, displayLength: 1000 })
|
||||
if (target) as.exec(asParse(target.content))
|
||||
}
|
||||
}
|
||||
function getMeta(plugin) {
|
||||
try {
|
||||
return AiScript.collectMetadata(asParse(plugin)).get(null)
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
return null
|
||||
}
|
||||
}
|
||||
async function execPlugin(id, source, args) {
|
||||
const coh = plugins[source]
|
||||
let exe = null
|
||||
for (let plugin of coh) {
|
||||
if (plugin.id == id) {
|
||||
exe = plugin.content
|
||||
break
|
||||
}
|
||||
}
|
||||
const common = _.cloneDeep(asCommon)
|
||||
if (source == 'buttonOnToot') {
|
||||
common.DATA = args
|
||||
const domain = localStorage.getItem(`domain_${args.acct_id}`)
|
||||
const at = localStorage.getItem(`acct_${args.acct_id}_at`)
|
||||
const start = `https://${domain}/api/v1/statuses/${args.id}`
|
||||
const promise = await fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
Authorization:
|
||||
`Bearer ${at}`
|
||||
}
|
||||
})
|
||||
let json = await promise.json()
|
||||
common.TOOT = asUtil.jsToVal(json)
|
||||
common['TheDesk:changeText'] = asValue.FN_NATIVE((z) => {
|
||||
const v = sanitizeHtml(z[0].value,
|
||||
{
|
||||
allowedTags: ['p', 'br', 'a', 'span'],
|
||||
allowedAttributes: {
|
||||
'a': ['href', 'class', 'rel', 'target'],
|
||||
'span': [],
|
||||
'p': [],
|
||||
'br': [],
|
||||
}
|
||||
}).replace(/href="javascript:/, 'href="').replace(/href='javascript:/, 'href="').replace(/href=javascript:/, 'href="')
|
||||
json.content = v
|
||||
if (getMeta(exe).dangerHtml) $(`[unique-id=${args.id}] .toot`).html(parse([json], null, null, null, null, null, null, true))
|
||||
})
|
||||
} else if (source == 'buttonOnPostbox') {
|
||||
const postDt = post(null, false, true)
|
||||
common.POST = asUtil.jsToVal(postDt)
|
||||
common.ACCT_ID = asUtil.jsToVal(postDt.TheDeskAcctId)
|
||||
common['TheDesk:postText'] = asValue.FN_NATIVE((z) => {
|
||||
$('#textarea').val(z[0].value)
|
||||
})
|
||||
common['TheDesk:postCW'] = asValue.FN_NATIVE((z) => {
|
||||
if (z[1]) $('#cw-text').val(z[1].value)
|
||||
cw(z[0] ? z[0].value : false)
|
||||
})
|
||||
common['TheDesk:postNSFW'] = asValue.FN_NATIVE((z) => {
|
||||
nsfw(z[0] ? z[0].value : false)
|
||||
})
|
||||
common['TheDesk:postVis'] = asValue.FN_NATIVE((z) => {
|
||||
vis(z[0].value)
|
||||
})
|
||||
common['TheDesk:postClearbox'] = asValue.FN_NATIVE(() => {
|
||||
clear()
|
||||
})
|
||||
common['TheDesk:postExec'] = asValue.FN_NATIVE(() => {
|
||||
if (getMeta(exe).apiPost) post()
|
||||
})
|
||||
} else if (source == 'tips') {
|
||||
common['TheDesk:refreshTipsView'] = asValue.FN_NATIVE((z) => {
|
||||
const v = sanitizeHtml(z[0].value,
|
||||
{
|
||||
allowedTags: ['p', 'br', 'a', 'span', 'img'],
|
||||
allowedAttributes: {
|
||||
'a': ['href', 'class', 'rel', 'target', 'style'],
|
||||
'span': ['style'],
|
||||
'p': ['style'],
|
||||
'br': [],
|
||||
'img': ['src', 'style']
|
||||
}
|
||||
}).replace(/href="javascript:/, 'href="').replace(/href='javascript:/, 'href="').replace(/href=javascript:/, 'href="')
|
||||
if (getMeta(exe).dangerHtml) $('#tips-text').html(v)
|
||||
})
|
||||
}
|
||||
common['TheDesk:console'] = asValue.FN_NATIVE((z) => {
|
||||
console.log(z[0].value)
|
||||
})
|
||||
common['TheDesk:api'] = asValue.FN_NATIVE(async (z) => {
|
||||
try {
|
||||
if (!getMeta(exe).apiGet && z[0].value == "GET") return asUtil.jsToVal(null)
|
||||
if (!getMeta(exe).apiPost && (z[0].value == "POST" || z[0].value == "DELETE" || z[0].value == "PUT")) return asUtil.jsToVal(null)
|
||||
const domain = localStorage.getItem(`domain_${z[3].value}`)
|
||||
const at = localStorage.getItem(`acct_${z[3].value}_at`)
|
||||
const start = `https://${domain}/api/${z[1].value}`
|
||||
const q = {
|
||||
method: z[0].value,
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
Authorization:
|
||||
`Bearer ${at}`
|
||||
}
|
||||
}
|
||||
if (z[2]) q.body = z[2].value
|
||||
const promise = await fetch(start, q)
|
||||
const json = await promise.json()
|
||||
return asUtil.jsToVal(json)
|
||||
} catch (e) {
|
||||
return asUtil.jsToVal(null)
|
||||
}
|
||||
|
||||
})
|
||||
common['TheDesk:getRequest'] = asValue.FN_NATIVE(async (z) => {
|
||||
try {
|
||||
if (!getMeta(exe).apiGet) return asUtil.jsToVal(null)
|
||||
const start = `https://${z[0].value}`
|
||||
const promise = await fetch(start)
|
||||
let json = null
|
||||
if (z[1].value) {
|
||||
json = await promise.json()
|
||||
} else {
|
||||
json = await promise.text()
|
||||
}
|
||||
return asUtil.jsToVal(json)
|
||||
} catch (e) {
|
||||
return asUtil.jsToVal(null)
|
||||
}
|
||||
|
||||
})
|
||||
const as = new AiScript(common)
|
||||
if (exe) as.exec(asParse(exe))
|
||||
}
|
@@ -2,25 +2,9 @@ var electron = require('electron')
|
||||
const shell = electron.shell
|
||||
var ipc = electron.ipcRenderer
|
||||
//title bar
|
||||
const customTitlebar = require('custom-electron-titlebar')
|
||||
window.addEventListener('DOMContentLoaded', () => {
|
||||
document.title = 'TheDesk'
|
||||
ipc.send('acsCheck', '')
|
||||
ipc.send('frameCheck', '')
|
||||
ipc.on('frame', function(event, args) {
|
||||
const file = location.href.substr(-10)
|
||||
if (
|
||||
file == 'index.html' ||
|
||||
file == '/acct.html' ||
|
||||
file == 'tting.html'
|
||||
) {
|
||||
new customTitlebar.Titlebar({
|
||||
backgroundColor: customTitlebar.Color.fromHex('#000'),
|
||||
titleHorizontalAlignment: 'right',
|
||||
icon: '../../img/desk.png'
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
onmessage = function(e) {
|
||||
@@ -207,6 +191,7 @@ ipc.on('theme-json-response', function(event, args) {
|
||||
postMessage(['customConnect', args], '*')
|
||||
})
|
||||
ipc.on('theme-json-create-complete', function(event, args) {
|
||||
if(args != '') alert(args)
|
||||
postMessage(['clearCustomImport', ''], '*')
|
||||
postMessage(['ctLoad', ''], '*')
|
||||
})
|
||||
@@ -219,7 +204,7 @@ ipc.on('memory', function(event, arg) {
|
||||
var use = arg[0]
|
||||
var cpu = arg[1]
|
||||
var total = arg[2]
|
||||
postMessage(['renderMem', [use, cpu, total]], '*')
|
||||
postMessage(['renderMem', [use, cpu, total, arg[3], arg[4]]], '*')
|
||||
})
|
||||
//log
|
||||
ipc.on('logData', function(event, args) {
|
||||
|
@@ -23,6 +23,7 @@ function emojiToggle(reaction) {
|
||||
}
|
||||
$('#post-box').css('width', width + 'px')
|
||||
$('#suggest').html('')
|
||||
$('#draft').html('')
|
||||
if (!localStorage.getItem('emojis_' + acct_id)) {
|
||||
var html = `<button class="btn waves-effect green" style="width:100%; padding:0; margin-top:0;" onclick="emojiGet('true');">${lang.lang_emoji_get}</button>`
|
||||
$('#emoji-list').html(html)
|
||||
@@ -31,10 +32,12 @@ function emojiToggle(reaction) {
|
||||
}
|
||||
} else {
|
||||
$('#poll').addClass('hide')
|
||||
$('#draft').addClass('hide')
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#emoji').addClass('hide')
|
||||
$('#suggest').html('')
|
||||
$('#draft').html('')
|
||||
$('#left-side').css('width', '100%')
|
||||
var width = localStorage.getItem('postbox-width')
|
||||
if (width) {
|
||||
@@ -336,6 +339,8 @@ function emojiInsert(code, del) {
|
||||
}
|
||||
sentence = before + word + after
|
||||
textarea.value = sentence
|
||||
textarea.focus()
|
||||
textarea.setSelectionRange(pos + word.length, pos + word.length)
|
||||
}
|
||||
//改行挿入
|
||||
function brInsert(code) {
|
||||
|
@@ -9,7 +9,16 @@ function sec() {
|
||||
}
|
||||
post(null, mode)
|
||||
}
|
||||
function post(mode, postvis) {
|
||||
function post(mode, postvis, dry) {
|
||||
if(!navigator.onLine && !dry) {
|
||||
draftToggle(true)
|
||||
addToDraft()
|
||||
M.toast({
|
||||
html: lang.lang_post_offline,
|
||||
displayLength: 3000
|
||||
})
|
||||
return false
|
||||
}
|
||||
if ($('#toot-post-btn').prop('disabled')) {
|
||||
return false
|
||||
}
|
||||
@@ -122,7 +131,7 @@ function post(mode, postvis) {
|
||||
console.log('This toot will be posted at:' + scheduled)
|
||||
schedule()
|
||||
toot.scheduled_at = scheduled
|
||||
if($('#sch-box').hasClass('expire')) {
|
||||
if ($('#sch-box').hasClass('expire')) {
|
||||
toot.scheduled_at = null
|
||||
toot.expires_at = scheduled
|
||||
}
|
||||
@@ -131,7 +140,7 @@ function post(mode, postvis) {
|
||||
}
|
||||
if (!$('#poll').hasClass('hide')) {
|
||||
var options = []
|
||||
$('.mastodon-choice').map(function() {
|
||||
$('.mastodon-choice').map(function () {
|
||||
var choice = $(this).val()
|
||||
if (choice != '') {
|
||||
options.push(choice)
|
||||
@@ -159,6 +168,13 @@ function post(mode, postvis) {
|
||||
}
|
||||
}
|
||||
console.table(toot)
|
||||
if (dry) {
|
||||
$('#ideKey').val('')
|
||||
$('.toot-btn-group').prop('disabled', false)
|
||||
todc()
|
||||
toot['TheDeskAcctId'] = acct_id
|
||||
return toot
|
||||
}
|
||||
var httpreq = new XMLHttpRequest()
|
||||
httpreq.open('POST', start, true)
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json')
|
||||
@@ -166,11 +182,11 @@ function post(mode, postvis) {
|
||||
httpreq.setRequestHeader('Idempotency-Key', ideKey)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send(JSON.stringify(toot))
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
if(media && this.status == 422) {
|
||||
if (media && this.status == 422) {
|
||||
$('#ideKey').val('')
|
||||
$('.toot-btn-group').prop('disabled', false)
|
||||
alertProcessUnfinished()
|
||||
@@ -201,7 +217,7 @@ function post(mode, postvis) {
|
||||
}
|
||||
function expPostMode() {
|
||||
$('#sch-box').toggleClass('expire')
|
||||
if($('#sch-box').hasClass('expire')) {
|
||||
if ($('#sch-box').hasClass('expire')) {
|
||||
Swal.fire({
|
||||
type: 'info',
|
||||
title: 'Expiring toot On'
|
||||
@@ -270,7 +286,7 @@ function misskeyPost() {
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json')
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send(JSON.stringify(toot))
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if (str.indexOf(localStorage.getItem('stable')) == -1) {
|
||||
localStorage.removeItem('stable')
|
||||
@@ -339,7 +355,7 @@ function clear() {
|
||||
$('#mins_poll').val(6)
|
||||
$('#poll').addClass('hide')
|
||||
$('#pollsta').text(lang.lang_no)
|
||||
$('.mastodon-choice').map(function() {
|
||||
$('.mastodon-choice').map(function () {
|
||||
$(this).val('')
|
||||
})
|
||||
localStorage.removeItem('image')
|
||||
|
@@ -1,14 +1,14 @@
|
||||
/*保護系*/
|
||||
//画像保護
|
||||
function nsfw() {
|
||||
if ($('#nsfw').hasClass('nsfw-avail')) {
|
||||
$('#nsfw').removeClass('yellow-text')
|
||||
$('#nsfw').html('visibility_off')
|
||||
$('#nsfw').removeClass('nsfw-avail')
|
||||
} else {
|
||||
function nsfw(force) {
|
||||
if (force || !$('#nsfw').hasClass('nsfw-avail')) {
|
||||
$('#nsfw').addClass('yellow-text')
|
||||
$('#nsfw').html('visibility')
|
||||
$('#nsfw').addClass('nsfw-avail')
|
||||
} else {
|
||||
$('#nsfw').removeClass('yellow-text')
|
||||
$('#nsfw').html('visibility_off')
|
||||
$('#nsfw').removeClass('nsfw-avail')
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,13 +79,8 @@ function loadVis() {
|
||||
loadVis()
|
||||
|
||||
//コンテントワーニング
|
||||
function cw() {
|
||||
if ($('#cw').hasClass('cw-avail')) {
|
||||
$('#cw-text').val()
|
||||
$('#cw-text').hide()
|
||||
$('#cw').removeClass('yellow-text')
|
||||
$('#cw').removeClass('cw-avail')
|
||||
} else {
|
||||
function cw(force) {
|
||||
if (force || !$('#cw').hasClass('cw-avail')) {
|
||||
$('#cw-text').show()
|
||||
$('#cw').addClass('yellow-text')
|
||||
$('#cw').addClass('cw-avail')
|
||||
@@ -93,6 +88,11 @@ function cw() {
|
||||
if (cwt) {
|
||||
$('#cw-text').val(cwt)
|
||||
}
|
||||
} else {
|
||||
$('#cw-text').val()
|
||||
$('#cw-text').hide()
|
||||
$('#cw').removeClass('yellow-text')
|
||||
$('#cw').removeClass('cw-avail')
|
||||
}
|
||||
}
|
||||
//TLでコンテントワーニングを表示トグル
|
||||
@@ -100,8 +100,8 @@ function cw_show(e) {
|
||||
$(e).parent().parent().find('.cw_hide').toggleClass('cw')
|
||||
$(e).parent().find('.cw_long').toggleClass('hide')
|
||||
}
|
||||
$(function() {
|
||||
$('#cw-text').on('change', function(event) {
|
||||
$(function () {
|
||||
$('#cw-text').on('change', function (event) {
|
||||
var acct_id = $('#post-acct-sel').val()
|
||||
var domain = localStorage.getItem('domain_' + acct_id)
|
||||
var cwlen = $('#cw-text').val().length
|
||||
@@ -126,3 +126,79 @@ function schedule() {
|
||||
$('#sch-box').addClass('sch-avail')
|
||||
}
|
||||
}
|
||||
|
||||
//下書き機能
|
||||
function draftToggle(force) {
|
||||
if ($('#draft').hasClass('hide') || force) {
|
||||
$('#draft').removeClass('hide')
|
||||
$('#right-side').show()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#left-side').css('width', 'calc(100% - 300px)')
|
||||
var width = localStorage.getItem('postbox-width')
|
||||
if (width) {
|
||||
width = width.replace('px', '') * 1 + 300
|
||||
} else {
|
||||
width = 600
|
||||
}
|
||||
$('#post-box').css('width', width + 'px')
|
||||
$('#suggest').html('')
|
||||
$('#draft').html('')
|
||||
draftDraw()
|
||||
} else {
|
||||
$('#poll').addClass('hide')
|
||||
$('#draft').addClass('hide')
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#emoji').addClass('hide')
|
||||
$('#suggest').html('')
|
||||
$('#draft').html('')
|
||||
$('#left-side').css('width', '100%')
|
||||
var width = localStorage.getItem('postbox-width')
|
||||
if (width) {
|
||||
width = width.replace('px', '') * 1
|
||||
} else {
|
||||
width = 300
|
||||
}
|
||||
$('#post-box').css('width', width + 'px')
|
||||
}
|
||||
}
|
||||
function draftDraw() {
|
||||
var draft = localStorage.getItem('draft')
|
||||
var html = `<button class="btn waves-effect green" style="width:100%; padding:0; margin-top:0;" onclick="addToDraft();">${lang.lang_secure_draft}</button>`
|
||||
if (draft) {
|
||||
var draftObj = JSON.parse(draft)
|
||||
for (let i = 0; i < draftObj.length; i++) {
|
||||
var toot = draftObj[i]
|
||||
html = html + `<div class="tootInDraft">
|
||||
<i class="waves-effect gray material-icons" onclick="useThisDraft(${i})" title="${lang.lang_secure_userThis}">reply</i>
|
||||
<i class="waves-effect gray material-icons" onclick="deleteThisDraft(${i})" title="${lang.lang_secure_deleteThis}">cancel</i>
|
||||
${escapeHTML(toot.status).replace(/\n/, '').substr(0, 10)}
|
||||
</div>`
|
||||
}
|
||||
}
|
||||
$('#draft').html(html)
|
||||
}
|
||||
function addToDraft() {
|
||||
var json = post(null, null, true)
|
||||
var draft = localStorage.getItem('draft')
|
||||
var draftObj = []
|
||||
if (draft) draftObj = JSON.parse(draft)
|
||||
draftObj.push(json)
|
||||
draft = JSON.stringify(draftObj)
|
||||
localStorage.setItem('draft', draft)
|
||||
draftDraw()
|
||||
}
|
||||
function useThisDraft(i) {
|
||||
var draft = localStorage.getItem('draft')
|
||||
var draftObj = JSON.parse(draft)
|
||||
draftToPost(draftObj[i], draftObj[i]['TheDeskAcctId'], 0)
|
||||
draftToggle()
|
||||
}
|
||||
function deleteThisDraft(i) {
|
||||
var draft = localStorage.getItem('draft')
|
||||
var draftObj = JSON.parse(draft)
|
||||
draftObj.splice(i, 1)
|
||||
draft = JSON.stringify(draftObj)
|
||||
localStorage.setItem('draft', draft)
|
||||
draftDraw()
|
||||
}
|
@@ -15,7 +15,7 @@ function fav(id, acct_id, remote) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -75,7 +75,7 @@ function rt(id, acct_id, remote, vis) {
|
||||
} else {
|
||||
httpreq.send()
|
||||
}
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -131,7 +131,7 @@ function bkm(id, acct_id, tlid) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -160,7 +160,7 @@ function bkm(id, acct_id, tlid) {
|
||||
|
||||
//フォロー
|
||||
async function follow(acct_id, resolve) {
|
||||
if($('#his-data').hasClass('locked')) {
|
||||
if ($('#his-data').hasClass('locked')) {
|
||||
locked = true
|
||||
} else {
|
||||
locked = false
|
||||
@@ -178,7 +178,7 @@ async function follow(acct_id, resolve) {
|
||||
var flag = 'follow'
|
||||
var flagm = 'create'
|
||||
}
|
||||
|
||||
|
||||
var id = $('#his-data').attr('user-id')
|
||||
if (resolve == 'selector') {
|
||||
var fullacct = $('#his-acct').attr('fullname')
|
||||
@@ -200,7 +200,7 @@ async function follow(acct_id, resolve) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send(JSON.stringify(ent))
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -212,7 +212,7 @@ async function follow(acct_id, resolve) {
|
||||
$('#his-follow-btn-text').text(lang.lang_status_follow)
|
||||
} else {
|
||||
$('#his-data').addClass('following')
|
||||
if(locked) {
|
||||
if (locked) {
|
||||
$('#his-follow-btn-text').text(lang.lang_status_requesting)
|
||||
} else {
|
||||
$('#his-follow-btn-text').text(lang.lang_status_unfollow)
|
||||
@@ -278,7 +278,7 @@ function block(acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if (this.status !== 200) {
|
||||
setLog(start, this.status, this.response)
|
||||
@@ -338,7 +338,7 @@ function muteDo(acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send(rq)
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if (this.status !== 200) {
|
||||
setLog(start, this.status, this.response)
|
||||
@@ -378,7 +378,7 @@ function del(id, acct_id) {
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
}
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if (this.status !== 200) {
|
||||
setLog(start, this.status, this.response)
|
||||
@@ -420,69 +420,72 @@ function redraft(id, acct_id) {
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
}
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if (this.status !== 200) {
|
||||
setLog(start, this.status, this.response)
|
||||
}
|
||||
var json = httpreq.response
|
||||
$('#post-acct-sel').prop('disabled', true)
|
||||
$('#post-acct-sel').val(acct_id)
|
||||
$('select').formSelect()
|
||||
mdCheck()
|
||||
var medias = $('[toot-id=' + id + ']').attr('data-medias')
|
||||
var mediack = json.media_attachments[0]
|
||||
//メディアがあれば
|
||||
var media_ids = []
|
||||
if (mediack) {
|
||||
for (var i = 0; i <= 4; i++) {
|
||||
if (json.media_attachments[i]) {
|
||||
media_ids.push(json.media_attachments[i].id)
|
||||
$('#preview').append(
|
||||
'<img src="' +
|
||||
json.media_attachments[i].preview_url +
|
||||
'" style="width:50px; max-height:100px;">'
|
||||
)
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
var vismode = $('[toot-id=' + id + '] .vis-data').attr('data-vis')
|
||||
vis(vismode)
|
||||
var medias = media_ids.join(',');
|
||||
$('#media').val(medias)
|
||||
localStorage.setItem('nohide', true)
|
||||
show()
|
||||
if (json.text) {
|
||||
var html = json.text
|
||||
} else {
|
||||
var html = $('[toot-id=' + id + '] .toot').html()
|
||||
html = html.replace(/^<p>(.+)<\/p>$/, '$1')
|
||||
html = html.replace(/<br\s?\/?>/, '\n')
|
||||
html = html.replace(/<p>/, '\n')
|
||||
html = html.replace(/<\/p>/, '\n')
|
||||
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, '$1')
|
||||
html = $.strip_tags(html)
|
||||
}
|
||||
$('#textarea').val(html)
|
||||
if (json.spoiler_text) {
|
||||
cw()
|
||||
$('#cw-text').val(json.spoiler_text)
|
||||
}
|
||||
if (json.sensitive) {
|
||||
$('#nsfw').addClass('yellow-text')
|
||||
$('#nsfw').html('visibility')
|
||||
$('#nsfw').addClass('nsfw-avail')
|
||||
}
|
||||
if (json.in_reply_to_id) {
|
||||
$('#reply').val(json.in_reply_to_id)
|
||||
}
|
||||
draftToPost(json, acct_id, id)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
function draftToPost(json, acct_id, id) {
|
||||
$('#post-acct-sel').prop('disabled', true)
|
||||
$('#post-acct-sel').val(acct_id)
|
||||
$('select').formSelect()
|
||||
mdCheck()
|
||||
mediack = null
|
||||
if(json.media_attachments) mediack = json.media_attachments[0]
|
||||
//メディアがあれば
|
||||
var media_ids = []
|
||||
if (mediack) {
|
||||
for (var i = 0; i <= 4; i++) {
|
||||
if (json.media_attachments[i]) {
|
||||
media_ids.push(json.media_attachments[i].id)
|
||||
$('#preview').append(
|
||||
'<img src="' +
|
||||
json.media_attachments[i].preview_url +
|
||||
'" style="width:50px; max-height:100px;">'
|
||||
)
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
var vismode = json.visibility
|
||||
vis(vismode)
|
||||
var medias = media_ids.join(',')
|
||||
$('#media').val(medias)
|
||||
localStorage.setItem('nohide', true)
|
||||
show()
|
||||
if (json.text) {
|
||||
var html = json.text
|
||||
} else {
|
||||
var html = json.status
|
||||
html = html.replace(/^<p>(.+)<\/p>$/, '$1')
|
||||
html = html.replace(/<br\s?\/?>/, '\n')
|
||||
html = html.replace(/<p>/, '\n')
|
||||
html = html.replace(/<\/p>/, '\n')
|
||||
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, '$1')
|
||||
html = $.strip_tags(html)
|
||||
}
|
||||
$('#textarea').val(html)
|
||||
if (json.spoiler_text) {
|
||||
cw(true)
|
||||
$('#cw-text').val(json.spoiler_text)
|
||||
}
|
||||
if (json.sensitive) {
|
||||
$('#nsfw').addClass('yellow-text')
|
||||
$('#nsfw').html('visibility')
|
||||
$('#nsfw').addClass('nsfw-avail')
|
||||
}
|
||||
if (json.in_reply_to_id) {
|
||||
$('#reply').val(json.in_reply_to_id)
|
||||
}
|
||||
}
|
||||
//ピン留め
|
||||
function pin(id, acct_id) {
|
||||
if ($(`.cvo[unique-id=${id}]`).hasClass('pined')) {
|
||||
@@ -499,7 +502,7 @@ function pin(id, acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -530,7 +533,7 @@ function request(id, flag, acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -556,7 +559,7 @@ function domainblock(add, flag, acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -583,7 +586,7 @@ function empUser() {
|
||||
M.toast({ html: id + lang.lang_status_emphas, displayLength: 4000 })
|
||||
} else {
|
||||
var can
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var usT = obj[key]
|
||||
if (usT != id && !can) {
|
||||
can = false
|
||||
@@ -615,7 +618,7 @@ function pinUser() {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -651,20 +654,20 @@ function staEx(mode) {
|
||||
Authorization: 'Bearer ' + at
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
if (json.statuses) {
|
||||
if (json.statuses[0]) {
|
||||
var id = json.statuses[0].id
|
||||
@@ -680,37 +683,9 @@ function staEx(mode) {
|
||||
})
|
||||
return
|
||||
}
|
||||
function toggleAction(elem, ct) {
|
||||
var height = ct * 39 + 6
|
||||
var cont = elem.parents('.cvo').find('.contextMenu')
|
||||
if (cont.hasClass('hide')) {
|
||||
$('#contextWrap').removeClass('hide')
|
||||
var left = elem.offset().left + 60
|
||||
var top = elem.offset().top - height
|
||||
if (top < 75) {
|
||||
top = elem.offset().top + 45
|
||||
cont.removeClass('bottom')
|
||||
cont.addClass('top')
|
||||
} else {
|
||||
top = elem.offset().top - 105
|
||||
cont.removeClass('top')
|
||||
cont.addClass('bottom')
|
||||
}
|
||||
if (elem.parents('.cvo').attr('id') == 'toot-this') {
|
||||
console.log($('#toot-this').offset().top, elem.offset().top)
|
||||
left = $('#toot-this').offset().left + elem.offset().left + 10
|
||||
top = $('#toot-this').offset().top - $('#toot-this').height() - height + 25
|
||||
}
|
||||
cont.css('top', top + 'px')
|
||||
cont.css('right', `calc(100vw - ${left}px)`)
|
||||
cont.removeClass('hide')
|
||||
elem
|
||||
.parents('.cvo')
|
||||
.find('.act-icon')
|
||||
.text('expand_less')
|
||||
} else {
|
||||
$('#contextWrap').addClass('hide')
|
||||
$('.contextMenu').addClass('hide')
|
||||
$('.act-icon').text('expand_more')
|
||||
}
|
||||
function toggleAction(elm) {
|
||||
console.log(elm)
|
||||
const instance = M.Dropdown.init(elm)
|
||||
console.log(instance.isOpen)
|
||||
instance.open()
|
||||
}
|
||||
|
@@ -18,7 +18,7 @@ input.addEventListener(
|
||||
var new_val = input.value
|
||||
if (new_val == '') {
|
||||
$('#suggest').html('')
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide')) {
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide') && $('#draft').hasClass('hide')) {
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#left-side').css('width', '100%')
|
||||
@@ -41,7 +41,7 @@ input.addEventListener(
|
||||
var q = acct[1]
|
||||
} else {
|
||||
$('#suggest').html('')
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide')) {
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide') && $('#draft').hasClass('hide')) {
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#left-side').css('width', '100%')
|
||||
@@ -138,6 +138,7 @@ input.addEventListener(
|
||||
$('#post-box').css('width', width + 'px')
|
||||
$('#poll').addClass('hide')
|
||||
$('#emoji').addClass('hide')
|
||||
$('#draft').addClass('hide')
|
||||
}
|
||||
} else if (json.accounts[0] && acct[1]) {
|
||||
var accts = ''
|
||||
@@ -165,8 +166,9 @@ input.addEventListener(
|
||||
$('#suggest').html(accts)
|
||||
$('#poll').addClass('hide')
|
||||
$('#emoji').addClass('hide')
|
||||
$('#draft').addClass('hide')
|
||||
} else {
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide')) {
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide') && $('#draft').hasClass('hide')) {
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#left-side').css('width', '100%')
|
||||
@@ -226,7 +228,7 @@ function tagInsert(code, del) {
|
||||
}
|
||||
sentence = before + word + after
|
||||
textarea.value = sentence
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide')) {
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide') && $('#draft').hasClass('hide')) {
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#left-side').css('width', '50%')
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*リプライ*/
|
||||
function re(id, ats_cm, acct_id, mode) {
|
||||
function re(id, ats_cm, acct_id, mode, cwTxt) {
|
||||
clear()
|
||||
var ats = ats_cm.split(',')
|
||||
localStorage.setItem('nohide', true)
|
||||
@@ -25,13 +25,18 @@ function re(id, ats_cm, acct_id, mode) {
|
||||
}
|
||||
$('#acct-sel-prof').attr('src', profimg)
|
||||
vis(mode)
|
||||
if(localStorage.getItem('cw-continue') == 'yes') {
|
||||
cw(true)
|
||||
$('#cw-text').val(cwTxt)
|
||||
}
|
||||
}
|
||||
function reEx(id) {
|
||||
$('#tootmodal').modal('close')
|
||||
var at = $('#tootmodal').attr('data-user')
|
||||
var acct_id = $('#status-acct-sel').val()
|
||||
var mode = $('#tootmodal .vis-data').attr('data-vis')
|
||||
re(id, at, acct_id, mode)
|
||||
var cwTxt = $('#cw-text').val()
|
||||
re(id, at, acct_id, mode, cwTxt)
|
||||
}
|
||||
//引用
|
||||
function qt(id, acct_id, at, url) {
|
||||
|
@@ -334,7 +334,19 @@ function cardCheck(tlid) {
|
||||
}
|
||||
}
|
||||
|
||||
function mov(id, tlid, type) {
|
||||
function mov(id, tlid, type, rand, target) {
|
||||
const dropdownTrigger = `dropdown_${rand}`
|
||||
let elm = document.querySelector(`#timeline_${tlid} #${dropdownTrigger}`)
|
||||
if(tlid == 'notf') {
|
||||
const timeline = $(target).parents('.notf-indv-box').attr('id')
|
||||
elm = document.querySelector(`#${timeline} #${dropdownTrigger}`)
|
||||
console.log(`#${timeline} #${dropdownTrigger}`)
|
||||
}
|
||||
const instance = M.Dropdown.getInstance(elm)
|
||||
if(instance) {
|
||||
if(instance.isOpen) return false
|
||||
}
|
||||
|
||||
var click = false
|
||||
if (tlid == 'notf') {
|
||||
var tlide = '[data-notf=' + acct_id + ']'
|
||||
@@ -361,9 +373,9 @@ function mov(id, tlid, type) {
|
||||
}
|
||||
if (mouseover == 'hide') {
|
||||
if (click) {
|
||||
$(tlide + ' [toot-id=' + id + ']').toggleClass('hide-actions')
|
||||
$(tlide + ' [unique-id=' + id + ']').toggleClass('hide-actions')
|
||||
} else {
|
||||
$(tlide + ' [toot-id=' + id + ']').removeClass('hide-actions')
|
||||
$(tlide + ' [unique-id=' + id + ']').removeClass('hide-actions')
|
||||
}
|
||||
|
||||
//$(tlide + " [toot-id=" + id + "] .area-vis").toggleClass("hide")
|
||||
|
@@ -765,9 +765,10 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
} else {
|
||||
var actemojick = false
|
||||
}
|
||||
var rand = randomStr(8)
|
||||
templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' +
|
||||
boostback + ' ' + fav_app + ' ' + rt_app + ' ' + hasmedia + '" toot-id="' + id + '" unique-id="' + uniqueid + '" data-medias="' + media_ids + ' " unixtime="' + date(obj[
|
||||
key].created_at, 'unix') + '" ' + if_notf + ' onmouseover="mov(\'' + toot.id + '\',\'' + tlid + '\',\'mv\')" onclick="mov(\'' + toot.id + '\',\'' + tlid + '\',\'cl\')" onmouseout="resetmv(\'mv\')" reacted="' + reacted + '">' +
|
||||
key].created_at, 'unix') + '" ' + if_notf + ' onmouseover="mov(\'' + toot.id + '\',\'' + tlid + '\',\'mv\', \''+rand+'\')" onclick="mov(\'' + toot.id + '\',\'' + tlid + '\',\'cl\', \''+rand+'\')" onmouseout="resetmv(\'mv\')" reacted="' + reacted + '">' +
|
||||
'<div class="area-notice"><span class="gray sharesta">' + notice + home +
|
||||
'</span></div>' +
|
||||
'<div class="area-icon"><a onclick="udg(\'' + toot.user.id +
|
||||
|
@@ -19,20 +19,20 @@ async function mixtl(acct_id, tlid, type, delc, voice) {
|
||||
additional(acct_id, tlid)
|
||||
jQuery('time.timeago').timeago()
|
||||
todc()
|
||||
if(mastodonBaseWsStatus[domain] == 'cannnotopen') {
|
||||
if(mastodonBaseWsStatus[domain] == 'cannotuse') {
|
||||
mixre(acct_id, tlid, 'mix', mute, voice, '')
|
||||
} else if(mastodonBaseWs[domain] == 'undetected') {
|
||||
} else if (mastodonBaseWsStatus[domain] == 'undetected' || mastodonBaseWsStatus[domain] == 'connecting') {
|
||||
const mbws = setInterval(function () {
|
||||
if(mastodonBaseWsStatus[domain] == 'cannnotopen') {
|
||||
if(mastodonBaseWsStatus[domain] == 'cannotuse') {
|
||||
mixre(acct_id, tlid, 'mix', mute, voice, '')
|
||||
clearInterval(mbws)
|
||||
} else if(mastodonBaseWsStatus[domain] == 'available') {
|
||||
mastodonBaseWs[domain].send(`{"type":"subscribe","stream":"public:local"}`)
|
||||
mastodonBaseWs[domain].send(JSON.stringify({type: 'subscribe', stream: 'public:local'}))
|
||||
clearInterval(mbws)
|
||||
}
|
||||
}, 1000)
|
||||
} else if(mastodonBaseWsStatus[domain] == 'available') {
|
||||
mastodonBaseWs[domain].send(`{"type":"subscribe","stream":"public:local"}`)
|
||||
mastodonBaseWs[domain].send(JSON.stringify({type: 'subscribe', stream: 'public:local'}))
|
||||
}
|
||||
|
||||
$(window).scrollTop(0)
|
||||
|
@@ -116,7 +116,7 @@ function notfColumn(acct_id, tlid, sys) {
|
||||
var start = 'wss://' + domain + '/?i=' + at
|
||||
}
|
||||
}
|
||||
function notfCommon(acct_id, tlid, sys) {
|
||||
function notfCommon(acct_id, tlid, sys, stream) {
|
||||
todo('Notifications Loading...')
|
||||
var native = localStorage.getItem('nativenotf')
|
||||
var at = localStorage.getItem('acct_' + acct_id + '_at')
|
||||
@@ -147,6 +147,10 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if(stream == 'only') {
|
||||
notfWS(misskey, acct_id, tlid, domain, at)
|
||||
return false
|
||||
}
|
||||
fetch(start, i)
|
||||
.then(function(response) {
|
||||
console.log('header to get param:' + response.headers.get('link'))
|
||||
@@ -203,10 +207,11 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
}
|
||||
$('#notf-box').addClass('fetched')
|
||||
todc()
|
||||
notfWS(misskey, acct_id, tlid, domain, at)
|
||||
if(stream != 'no') notfWS(misskey, acct_id, tlid, domain, at)
|
||||
})
|
||||
}
|
||||
function notfWS(misskey, acct_id, tlid, domain, at) {
|
||||
if(mastodonBaseWsStatus[domain] == 'available') return false
|
||||
if (!misskey) {
|
||||
if (localStorage.getItem('streaming_' + acct_id)) {
|
||||
var wss = localStorage.getItem('streaming_' + acct_id)
|
||||
@@ -258,7 +263,7 @@ function notfWS(misskey, acct_id, tlid, domain, at) {
|
||||
}
|
||||
}
|
||||
websocketNotf[acct_id].onerror = function(error) {
|
||||
console.error('WebSocket Error ' + error)
|
||||
console.error('WebSocket Error ', error)
|
||||
errorct++
|
||||
console.log(errorct)
|
||||
if (errorct < 3) {
|
||||
@@ -266,7 +271,7 @@ function notfWS(misskey, acct_id, tlid, domain, at) {
|
||||
}
|
||||
}
|
||||
websocketNotf[acct_id].onclose = function(error) {
|
||||
console.error('WebSocket Close ' + error)
|
||||
console.error('WebSocket Close ', error)
|
||||
errorct++
|
||||
console.log(errorct)
|
||||
if (errorct < 3) {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
//オブジェクトパーサー(トゥート)
|
||||
function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
function parse(obj, mix, acct_id, tlid, popup, mutefilter, type, onlyContent) {
|
||||
var splitter = new GraphemeSplitter()
|
||||
var templete = ''
|
||||
if (obj[0]) {
|
||||
@@ -194,7 +194,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var local = []
|
||||
var times = []
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
let content
|
||||
for (let key in obj) {
|
||||
var domain = localStorage.getItem('domain_' + acct_id)
|
||||
var toot = obj[key]
|
||||
if (type == 'dm') {
|
||||
@@ -224,7 +225,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
dis_name = dis_name.replace(regExp, emoji_url)
|
||||
@@ -241,7 +242,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
noticeavatar = toot.account.avatar_static
|
||||
}
|
||||
noticeavatar = `<a onclick="udg('${toot.account.id}','${acct_id}');" user="${toot.account.acct}" class="udg">
|
||||
<img draggable="false" src="${noticeavatar}" width="20" class="notf-icon prof-img" user="${toot.account.acct}" alt="">
|
||||
<img draggable="false" src="${noticeavatar}" width="20" class="notf-icon prof-img" user="${toot.account.acct}" alt="" loading="lazy">
|
||||
</a>`
|
||||
if (toot.type == 'mention') {
|
||||
var what = lang.lang_parse_mentioned
|
||||
@@ -271,8 +272,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var noticetext = `<span onclick="notfFilter('${toot.account.id}','${tlid}');" class=" pointer big-text ${notfFilHide}"><i class="fas fa-filter"
|
||||
title="${lang.lang_parse_notffilter}">
|
||||
</i><span class="voice">${lang.lang_parse_notffilter}</span></span>
|
||||
<span class="cbadge cbadge-hover" title="${date(toot.created_at, 'absolute')}(${
|
||||
lang.lang_parse_notftime
|
||||
<span class="cbadge cbadge-hover" title="${date(toot.created_at, 'absolute')}(${lang.lang_parse_notftime
|
||||
})" aria-hidden="true"><i class="far fa-clock"></i>
|
||||
${date(toot.created_at, datetype)}
|
||||
</span>
|
||||
@@ -379,7 +379,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
dis_name = dis_name.replace(regExp, emoji_url)
|
||||
@@ -395,7 +395,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
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="notf-icon prof-img"
|
||||
user="${toot.account.acct}" onerror="this.src=\'../../img/loading.svg\'">
|
||||
user="${toot.account.acct}" onerror="this.src=\'../../img/loading.svg\'" loading="lazy">
|
||||
</a>`
|
||||
var rebtxt = lang.lang_parse_btedsimple
|
||||
var rticon = 'fa-retweet light-blue-text'
|
||||
@@ -436,7 +436,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
dis_name = dis_name.replace(regExp, emoji_url)
|
||||
@@ -464,9 +464,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
}
|
||||
if (toot.content == '') {
|
||||
var content = ' '
|
||||
content = ' '
|
||||
} else {
|
||||
var content = toot.content
|
||||
content = toot.content
|
||||
}
|
||||
if (content) {
|
||||
var id = toot.id
|
||||
@@ -537,7 +537,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
(sent < ct && $.mb_strlen($.strip_tags(content)) > 5) ||
|
||||
($.mb_strlen($.strip_tags(content)) > ltr && $.mb_strlen($.strip_tags(content)) > 5)
|
||||
) {
|
||||
var content = `<span class="gray">${lang.lang_parse_fulltext}</span><br>` + content
|
||||
content = `<span class="gray">${lang.lang_parse_fulltext}</span><br>` + content
|
||||
var spoil = `<span class="cw_long">${$.mb_substr(
|
||||
$.strip_tags(content),
|
||||
0,
|
||||
@@ -560,6 +560,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
/https?:\/\/([^+_]+)\/?(?!.*((media|tags)|mentions)).*([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)?/
|
||||
)
|
||||
urlsck = content.match(/(https?):\/\/([^<>]*?)\/([^"]*)/g)
|
||||
content = content.replace(/href="([^"]+)"/g, `href="$1" data-acct="${acct_id}"`)
|
||||
if (urlsck) {
|
||||
for (var urlct = 0; urlct < urlsck.length; urlct++) {
|
||||
var urlindv = urlsck[urlct]
|
||||
@@ -569,12 +570,11 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var encoded = encodeURI(urlCont[4])
|
||||
var punycoded = 'xn--' + punycode.encode(urlCont[2])
|
||||
var eUrl = urlCont[1] + '://' + punycoded + '.' + urlCont[3] + '/' + encoded
|
||||
var regExp = new RegExp('href="' + urlindv + '"', 'g')
|
||||
content = content.replace(regExp, 'href="' + eUrl + '"')
|
||||
var regExp = new RegExp(`href="${urlindv}"`, 'g')
|
||||
content = content.replace(regExp, `href="${eUrl}"`)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (urls) {
|
||||
var analyze = `<a onclick="additionalIndv('${tlid}','${acct_id}','${id}')" class="add-show pointer" aria-hidden="true">
|
||||
${lang.lang_parse_url}
|
||||
@@ -652,7 +652,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
id="${id}-image-${key2}" data-url="${url}" data-original="${remote_url}" data-type="${media.type}"
|
||||
class="img-parsed img-link" style="width:calc(${cwdt}% - 1px); height:${imh};">
|
||||
<img draggable="false" src="${purl}" class="${sense} toot-img pointer"
|
||||
onerror="this.src=\'../../img/loading.svg\'" title="${escapeHTML(desc)}" alt="${escapeHTML(desc)}">
|
||||
onerror="this.src=\'../../img/loading.svg\'" title="${escapeHTML(desc)}" alt="${escapeHTML(desc)}" loading="lazy">
|
||||
${nsfwmes}
|
||||
</a>`
|
||||
}
|
||||
@@ -709,8 +709,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var featured = ` <a onclick="tagFeature('${tag.name}','${acct_id}')" class="pointer" title="add it to Featured tags">Feature</a> `
|
||||
tags =
|
||||
tags +
|
||||
`<span class="hide" data-tag="${tag.name}" data-regTag="${tag.name.toLowerCase()}">#${
|
||||
tag.name
|
||||
`<span class="hide" data-tag="${tag.name}" data-regTag="${tag.name.toLowerCase()}">#${tag.name
|
||||
}:
|
||||
<a onclick="tl('tag','${tag.name}','${acct_id}','add')" class="pointer"
|
||||
title="${lang.lang_parse_tagTL.replace(
|
||||
@@ -855,7 +854,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
content = content.replace(regExp, emoji_url)
|
||||
@@ -875,7 +874,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var emoji = toot.profile_emojis[keynico]
|
||||
var shortcode = emoji.shortcode
|
||||
var emoji_url = `<img draggable="false" src="${emoji.url}" class="emoji-img" data-emoji="${shortcode}" alt=" :${shortcode}: "
|
||||
title="${shortcode}" onclick="this.classList.toggle(\'bigemoji\');">`
|
||||
title="${shortcode}" onclick="this.classList.toggle(\'bigemoji\');" loading="lazy">`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
content = content.replace(regExp, emoji_url)
|
||||
spoil = spoil.replace(regExp, emoji_url)
|
||||
@@ -901,12 +900,10 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
//日本語じゃない
|
||||
if (toot.language != lang.language && toot.language) {
|
||||
var trans = `<div class="">
|
||||
<a onclick="trans('${toot.language}','${lang.language}', $(this))"
|
||||
class="waves-effect waves-dark btn-flat actct" style="padding:0">
|
||||
var trans = `<li onclick="trans('${toot.language}','${lang.language}', $(this))"
|
||||
style="padding:0">
|
||||
<i class="material-icons" aria-hidden="true">g_translate</i>${lang.lang_parse_trans}
|
||||
</a>
|
||||
</div>`
|
||||
</li>`
|
||||
} else {
|
||||
var trans = ''
|
||||
}
|
||||
@@ -959,12 +956,10 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
bgColorCSS = bgColorCSS + bg + ','
|
||||
}
|
||||
bgColorCSS = `linear-gradient(90deg, ${bgColorCSS} transparent)`
|
||||
var tickerdom = `<div aria-hidden="true" style="user-select:none;cursor:default;background:${bgColorCSS} !important; color:${
|
||||
fontColor
|
||||
var tickerdom = `<div aria-hidden="true" style="user-select:none;cursor:default;background:${bgColorCSS} !important; color:${fontColor
|
||||
};width:100%; height:0.9rem; font-size:0.8rem;" class="tickers">
|
||||
<img draggable="false" src="${
|
||||
value.favicon
|
||||
}" style="height:100%;" onerror="this.src=\'../../img/loading.svg\'">
|
||||
<img draggable="false" src="${value.favicon
|
||||
}" style="height:100%;" onerror="this.src=\'../../img/loading.svg\'" loading="lazy">
|
||||
<span style="position:relative; top:-0.2rem;">${escapeHTML(value.name)}</span>
|
||||
</div>`
|
||||
break
|
||||
@@ -983,10 +978,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
poll +
|
||||
`<div class="quote-renote">
|
||||
<div class="renote-icon">
|
||||
<a onclick="udg('${toot.quote.account.id}','${acct_id}');" user="${
|
||||
toot.quote.account.acct
|
||||
<a onclick="udg('${toot.quote.account.id}','${acct_id}');" user="${toot.quote.account.acct
|
||||
}" class="udg">
|
||||
<img draggable="false" src="${toot.quote.account.avatar}">
|
||||
<img draggable="false" src="${toot.quote.account.avatar}" loading="lazy">
|
||||
</a>
|
||||
</div>
|
||||
<div class="renote-user">
|
||||
@@ -996,8 +990,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
${toot.quote.content}
|
||||
</div>
|
||||
<div class="renote-details">
|
||||
<a onclick="details('${
|
||||
toot.quote.id
|
||||
<a onclick="details('${toot.quote.id
|
||||
}','${acct_id}','${tlid}','normal')" class="waves-effect waves-dark btn-flat details" style="padding:0">
|
||||
<i class="text-darken-3 material-icons">more_vert</i>
|
||||
</a>
|
||||
@@ -1024,6 +1017,16 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
if (trans != '') {
|
||||
menuct++
|
||||
}
|
||||
//このトゥート内のアクションを完了させるために、適当にIDを振る
|
||||
var rand = randomStr(8)
|
||||
//プラグイン機構
|
||||
var pluginBOT = plugins.buttonOnToot
|
||||
var pluginHtml = ''
|
||||
for (let target of pluginBOT) {
|
||||
const meta = getMeta(target.content)
|
||||
pluginHtml = pluginHtml + `<li><a onclick="execPlugin('${target.id}','buttonOnToot',{id: '${uniqueid}', acct_id: '${acct_id}'});">${escapeHTML(meta.name)}</a></li>`
|
||||
}
|
||||
|
||||
templete =
|
||||
templete +
|
||||
`<div
|
||||
@@ -1034,15 +1037,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
'unix'
|
||||
)}"
|
||||
${if_notf}
|
||||
onmouseover="mov('${toot.id}','${tlid}','mv')"
|
||||
onclick="mov('${toot.id}','${tlid}','cl')"
|
||||
onmouseover="mov('${uniqueid}','${tlid}','mv', '${rand}', this)"
|
||||
onclick="mov('${uniqueid}','${tlid}','cl', '${rand}', this)"
|
||||
onmouseout="resetmv('mv')"
|
||||
>
|
||||
<div class="area-notice grid"><span class="gray sharesta">${notice}${home}</span></div>
|
||||
<div class="area-icon grid">
|
||||
<a onclick="udg('${toot.account.id}','${acct_id}');" user="${toot.account.acct}" class="udg">
|
||||
<img draggable="false" src="${avatar}" width="40" class="prof-img"
|
||||
user="${toot.account.acct}" onerror="this.src='../../img/loading.svg'" alt="" />
|
||||
user="${toot.account.acct}" onerror="this.src='../../img/loading.svg'" alt="" loading="lazy" />
|
||||
</a>
|
||||
${noticeavatar}
|
||||
</div>
|
||||
@@ -1087,7 +1090,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
</a>
|
||||
</div>
|
||||
<div class="action ${disp['re']} ${noauth}">
|
||||
<a onclick="re('${toot.id}','${to_mention}','${acct_id}','${visen}')"
|
||||
<a onclick="re('${toot.id}','${to_mention}','${acct_id}','${visen}','${escapeHTML(toot.spoiler_text)}')"
|
||||
class="waves-effect waves-dark btn-flat actct rep-btn"
|
||||
data-men="${to_mention}" data-visen="${visen}" style="padding:0" title="${lang.lang_parse_replyto}">
|
||||
<i class="fas fa-share"></i>
|
||||
@@ -1096,8 +1099,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
</a>
|
||||
</div>
|
||||
<div class="action ${can_rt} ${disp['rt']} ${noauth}">
|
||||
<a onclick="rt('${
|
||||
toot.id
|
||||
<a onclick="rt('${toot.id
|
||||
}','${acct_id}','${tlid}')" class="waves-effect waves-dark btn-flat actct bt-btn"
|
||||
style="padding:0" title="${lang.lang_parse_bt}">
|
||||
<i class="fas fa-retweet ${if_rt} rt_${toot.id}"></i>
|
||||
@@ -1132,8 +1134,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
</div>
|
||||
<div class="area-side">
|
||||
<div class="action ${noauth}">
|
||||
<a onclick="toggleAction($(this), ${menuct})"
|
||||
class="ctxMenu waves-effect waves-dark btn-flat" style="padding:0">
|
||||
<a onclick="toggleAction(this)" data-target="dropdown_${rand}"
|
||||
class="ctxMenu waves-effect waves-dark btn-flat" style="padding:0" id="trigger_${rand}">
|
||||
<i class="text-darken-3 material-icons act-icon" aria-hidden="true">expand_more</i>
|
||||
<span class="voice">Other actions</span>
|
||||
</a>
|
||||
@@ -1146,49 +1148,38 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
<span class="voice">${lang.lang_parse_detail}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contextMenu hide z-depth-4">
|
||||
<div class="${viashow}">
|
||||
via ${escapeHTML(via)}<br>
|
||||
<a onclick="client('${$.strip_tags(via)}')" class="pointer">${lang.lang_parse_clientop}</a>
|
||||
</div>
|
||||
<ul class="dropdown-content contextMenu" id="dropdown_${rand}">
|
||||
<li class="${viashow} via-dropdown" onclick="client('${$.strip_tags(via)}')" title="${lang.lang_parse_clientop}">
|
||||
via ${escapeHTML(via)}</a>
|
||||
</li>
|
||||
<div>
|
||||
<button onclick="bkm('${uniqueid}','${acct_id}','${tlid}')"
|
||||
class="waves-effect waves-dark btn-flat actct bkm-btn" style="padding:0">
|
||||
<i class="fas text-darken-3 fa-bookmark bkm_${toot.id} ${if_bkm}"></i>
|
||||
<span class="bkmStr_${uniqueid}">${bkmStr}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="${if_mine}">
|
||||
<button onclick="del('${uniqueid}','${acct_id}')" class="waves-effect waves-dark btn-flat actct"
|
||||
<li onclick="bkm('${uniqueid}','${acct_id}','${tlid}')"
|
||||
class="bkm-btn bkmStr_${uniqueid}" style="padding:0">
|
||||
<i class="fas text-darken-3 fa-bookmark bkm_${toot.id} ${if_bkm}"></i>${bkmStr}
|
||||
</li>
|
||||
<li class="${if_mine}" onclick="del('${uniqueid}','${acct_id}')"
|
||||
style="padding:0">
|
||||
<i class="fas fa-trash"></i>${lang.lang_parse_del}
|
||||
</button>
|
||||
</div>
|
||||
<div class="${if_mine}">
|
||||
<button onclick="pin('${uniqueid}','${acct_id}')" class="waves-effect waves-dark btn-flat actct" style="padding:0">
|
||||
<i class="fas fa-map-pin pin_${uniqueid} ${if_pin}"></i>
|
||||
<span class="pinStr_${uniqueid}">${pinStr}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="${if_mine}">
|
||||
<button onclick="redraft('${uniqueid}','${acct_id}')" class="waves-effect waves-dark btn-flat actct"
|
||||
</li>
|
||||
<li class="${if_mine}" onclick="pin('${uniqueid}','${acct_id}')" style="padding:0" class="pinStr_${uniqueid}">
|
||||
<i class="fas fa-map-pin pin_${uniqueid} ${if_pin}"></i>${pinStr}
|
||||
</li>
|
||||
<li class="${if_mine}" onclick="redraft('${uniqueid}','${acct_id}')"
|
||||
style="padding:0">
|
||||
<i class="material-icons" aria-hidden="true">redo</i>${lang.lang_parse_redraft}
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
${trans}
|
||||
<div>
|
||||
<button onclick="postMessage(['openUrl', '${toot.url}'], '*')"
|
||||
class="waves-effect waves-dark btn-flat actct" style="padding:0">
|
||||
<i class="fas text-darken-3 fa-globe"></i>
|
||||
${lang.lang_parse_link}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<li onclick="postMessage(['openUrl', '${toot.url}'], '*')"
|
||||
style="padding:0">
|
||||
<i class="fas text-darken-3 fa-globe"></i>${lang.lang_parse_link}
|
||||
</li>
|
||||
${pluginHtml}
|
||||
</ul>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
})
|
||||
}
|
||||
if (onlyContent) return content
|
||||
if (mix == 'mix') {
|
||||
return [templete, local, times]
|
||||
} else {
|
||||
@@ -1295,7 +1286,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
dis_name = dis_name.replace(regExp, emoji_url)
|
||||
@@ -1338,6 +1329,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
user="${toot.acct}"
|
||||
onerror="this.src='../../img/loading.svg'"
|
||||
alt=""
|
||||
loading="lazy"
|
||||
/>
|
||||
</a></div>
|
||||
<div class="area-display_name">
|
||||
@@ -1371,7 +1363,6 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
}
|
||||
//クライアントダイアログ
|
||||
function client(name) {
|
||||
$('#contextWrap').addClass('hide')
|
||||
if (name != 'Unknown') {
|
||||
//聞く
|
||||
Swal.fire({
|
||||
@@ -1529,7 +1520,7 @@ function pollParse(poll, acct_id, emojis) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
choiceText = choiceText.replace(regExp, emoji_url)
|
||||
@@ -1564,18 +1555,24 @@ function pollParse(poll, acct_id, emojis) {
|
||||
var mastodonBaseWs = {}
|
||||
var mastodonBaseWsStatus = {}
|
||||
function mastodonBaseStreaming(acct_id) {
|
||||
console.log('start to connect mastodonBaseStreaming of ' + acct_id)
|
||||
notfCommon(acct_id, 0, null, 'no')
|
||||
const domain = localStorage.getItem(`domain_${acct_id}`)
|
||||
if(mastodonBaseWsStatus[domain]) return
|
||||
if (mastodonBaseWsStatus[domain]) return
|
||||
mastodonBaseWsStatus[domain] = 'undetected'
|
||||
const at = localStorage.getItem(`acct_${acct_id}_at`)
|
||||
const start = `wss://${domain}/api/v1/streaming/?access_token=${at}`
|
||||
let wss = 'wss://' + domain
|
||||
if (localStorage.getItem('streaming_' + acct_id)) {
|
||||
wss = localStorage.getItem('streaming_' + acct_id)
|
||||
}
|
||||
const start = `${wss}/api/v1/streaming/?access_token=${at}`
|
||||
mastodonBaseWs[domain] = new WebSocket(start)
|
||||
mastodonBaseWs[domain].onopen = function () {
|
||||
mastodonBaseWsStatus[domain] = 'connecting'
|
||||
setTimeout(function () {
|
||||
mastodonBaseWsStatus[domain] = 'available'
|
||||
}, 3000)
|
||||
mastodonBaseWs[domain].send(`{"type":"subscribe","stream":"user"}`)
|
||||
mastodonBaseWs[domain].send(JSON.stringify({ type: 'subscribe', stream: 'user' }))
|
||||
$('.notice_icon_acct_' + acct_id).removeClass('red-text')
|
||||
}
|
||||
mastodonBaseWs[domain].onmessage = function (mess) {
|
||||
@@ -1618,10 +1615,21 @@ function mastodonBaseStreaming(acct_id) {
|
||||
}
|
||||
}
|
||||
mastodonBaseWs[domain].onerror = function (error) {
|
||||
notf(acct_id, 0) //fallback
|
||||
notfCommon(acct_id, 0, null, 'only') //fallback
|
||||
console.error("Error closing " + domain)
|
||||
console.error(error)
|
||||
if (mastodonBaseWsStatus[domain] == 'available') alert(domain)
|
||||
if (mastodonBaseWsStatus[domain] == 'available') {
|
||||
/*M.toast({
|
||||
html:
|
||||
`${lang.lang_parse_disconnected}<button class="btn-flat toast-action" onclick="location.reload()">${lang.lang_layout_reconnect}</button>`,
|
||||
completeCallback: function () {
|
||||
parseColumn()
|
||||
|
||||
},
|
||||
displayLength: 3000
|
||||
})*/
|
||||
parseColumn()
|
||||
}
|
||||
mastodonBaseWsStatus[domain] = 'cannotuse'
|
||||
setTimeout(function () {
|
||||
mastodonBaseWsStatus[domain] = 'cannotuse'
|
||||
@@ -1630,9 +1638,20 @@ function mastodonBaseStreaming(acct_id) {
|
||||
return false
|
||||
}
|
||||
mastodonBaseWs[domain].onclose = function () {
|
||||
notf(acct_id, 0) //fallback
|
||||
notfCommon(acct_id, 0, null, 'only') //fallback
|
||||
console.warn("Closing " + domain)
|
||||
if (mastodonBaseWsStatus[domain] == 'available') alert(domain)
|
||||
if (mastodonBaseWsStatus[domain] == 'available') {
|
||||
/*M.toast({
|
||||
html:
|
||||
`${lang.lang_parse_disconnected}<button class="btn-flat toast-action" onclick="location.reload()">${lang.lang_layout_reconnect}</button>`,
|
||||
completeCallback: function () {
|
||||
parseColumn()
|
||||
|
||||
},
|
||||
displayLength: 3000
|
||||
})*/
|
||||
parseColumn()
|
||||
}
|
||||
mastodonBaseWs[domain] = false
|
||||
mastodonBaseWsStatus[domain] = 'cannotuse'
|
||||
setTimeout(function () {
|
||||
@@ -1676,10 +1695,11 @@ function getTlMeta(type, data, num, status) {
|
||||
const columns = localStorage.getItem('column')
|
||||
const obj = JSON.parse(columns)
|
||||
let ret = []
|
||||
let i = 0
|
||||
let i = -1
|
||||
switch (type) {
|
||||
case 'user':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'mix' || tl.type == 'home') {
|
||||
let voice = false
|
||||
@@ -1691,11 +1711,11 @@ function getTlMeta(type, data, num, status) {
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
i++
|
||||
}
|
||||
break
|
||||
case 'public:local':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'mix' || tl.type == 'local') {
|
||||
let voice = false
|
||||
@@ -1707,11 +1727,11 @@ function getTlMeta(type, data, num, status) {
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
i++
|
||||
}
|
||||
break
|
||||
case 'public:local:media':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'local-media') {
|
||||
let voice = false
|
||||
@@ -1723,13 +1743,14 @@ function getTlMeta(type, data, num, status) {
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
i++
|
||||
}
|
||||
break;
|
||||
case 'public':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'pub') {
|
||||
console.log(i, tl)
|
||||
let voice = false
|
||||
if (localStorage.getItem('voice_' + i)) voice = true
|
||||
ret.push({
|
||||
@@ -1739,11 +1760,11 @@ function getTlMeta(type, data, num, status) {
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
i++
|
||||
}
|
||||
break;
|
||||
case 'public:media':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'pub-media') {
|
||||
let voice = false
|
||||
@@ -1755,11 +1776,11 @@ function getTlMeta(type, data, num, status) {
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
i++
|
||||
}
|
||||
break;
|
||||
case 'list':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'list' && tl.data == data[1]) {
|
||||
let voice = false
|
||||
@@ -1771,11 +1792,11 @@ function getTlMeta(type, data, num, status) {
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
i++
|
||||
}
|
||||
break;
|
||||
case 'direct':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'dm') {
|
||||
let voice = false
|
||||
@@ -1787,11 +1808,11 @@ function getTlMeta(type, data, num, status) {
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
i++
|
||||
}
|
||||
break;
|
||||
case 'hashtag':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
const columnDataRaw = tl.data
|
||||
let columnData
|
||||
@@ -1831,7 +1852,6 @@ function getTlMeta(type, data, num, status) {
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
i++
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@@ -25,6 +25,7 @@ function pollToggle() {
|
||||
}
|
||||
$('#post-box').css('width', width + 'px')
|
||||
$('#emoji').addClass('hide')
|
||||
$('#draft').addClass('hide')
|
||||
$('#poll').addClass('hide')
|
||||
$('#pollsta').text(lang.lang_no)
|
||||
}
|
||||
|
@@ -219,9 +219,9 @@ function moreTs(tlid, q) {
|
||||
function graphDraw(tag, acct_id) {
|
||||
var tags = ''
|
||||
var his = tag.history
|
||||
return graphDrawCore(his, tag)
|
||||
return graphDrawCore(his, tag, acct_id)
|
||||
}
|
||||
function graphDrawCore(his, tag) {
|
||||
function graphDrawCore(his, tag, acct_id) {
|
||||
var max = Math.max.apply(null, [
|
||||
his[0].uses,
|
||||
his[1].uses,
|
||||
@@ -307,7 +307,7 @@ function trend() {
|
||||
Object.keys(json).forEach(function(keye) {
|
||||
var tag = json[keye]
|
||||
var his = tag.history
|
||||
tags = graphDrawCore(his, tag)
|
||||
tags = graphDrawCore(his, tag, acct_id)
|
||||
|
||||
$('#src-contents').append(tags)
|
||||
})
|
||||
|
@@ -278,7 +278,7 @@ function stremaingSubscribe(type, acct_id, data, unsubscribe) {
|
||||
else if (type === 'pub') { stream = 'public' }
|
||||
else if (type === 'pub-media') { stream = 'public:media' }
|
||||
else if (type === 'list') {
|
||||
mastodonBaseWs[domain].send(`{"type":"${command}","stream":"list","list":"${data}"}`)
|
||||
mastodonBaseWs[domain].send(JSON.stringify({type: command, stream: 'list', list: data}))
|
||||
return true
|
||||
} else if (type === 'tag') {
|
||||
let arr = []
|
||||
@@ -288,11 +288,11 @@ function stremaingSubscribe(type, acct_id, data, unsubscribe) {
|
||||
if (data.any) arr = arr.concat(data.any.split(','))
|
||||
if (data.all) arr = arr.concat(data.all.split(','))
|
||||
for (const tag of arr) {
|
||||
mastodonBaseWs[domain].send(`{"type":"${command}","stream":"hashtag","tag":"${tag}"}`)
|
||||
mastodonBaseWs[domain].send(JSON.stringify({type: command, stream: 'hashtag', tag: tag}))
|
||||
}
|
||||
return true
|
||||
}
|
||||
mastodonBaseWs[domain].send(`{"type":"${command}","stream":"${stream}"`)
|
||||
mastodonBaseWs[domain].send(JSON.stringify({type: command, stream: stream}))
|
||||
}
|
||||
function oldStreaming(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
var misskey = false
|
||||
@@ -1464,6 +1464,8 @@ function announ(acct_id, tlid) {
|
||||
if (ct > 0) {
|
||||
$('.notf-announ_' + acct_id + '_ct').text(ct)
|
||||
}
|
||||
|
||||
localStorage.setItem('announ_' + acct_id, json[0].id)
|
||||
} else {
|
||||
$('.notf-announ_' + acct_id).addClass('hide')
|
||||
}
|
||||
|
@@ -4,6 +4,7 @@ function imgv(id, key, acct_id) {
|
||||
$('#imgprog').text(0)
|
||||
$('#imgsec').text(0)
|
||||
$('#imgmodal').hide()
|
||||
rotate(true)
|
||||
$('#imgmodal').attr('src', '../../img/loading.svg')
|
||||
var murl = $('#' + id + '-image-' + key).attr('data-url')
|
||||
var ourl = $('#' + id + '-image-' + key).attr('data-original')
|
||||
@@ -119,37 +120,10 @@ function imageXhr(id, key, murl) {
|
||||
var width
|
||||
element.onload = function() {
|
||||
var width = element.naturalWidth
|
||||
if(width < 650) {
|
||||
width = 650
|
||||
}
|
||||
var height = element.naturalHeight
|
||||
var windowH = $(window).height()
|
||||
var windowW = $(window).width()
|
||||
$('#imagemodal').css('bottom', '0')
|
||||
$('#imagemodal img').css('width', 'auto')
|
||||
if (height < windowH) {
|
||||
$('#imagemodal').css('height', height + 100 + 'px')
|
||||
$('#imagemodal img').css('height', height + 'px')
|
||||
if (width > windowW * 0.8) {
|
||||
$('#imagemodal').css('width', '80vw')
|
||||
$('#imagemodal img').css('width', 'auto')
|
||||
var heightS = ((windowW * 0.8) / width) * height
|
||||
$('#imagemodal').css('height', heightS + 100 + 'px')
|
||||
} else {
|
||||
$('#imagemodal').css('width', width + 'px')
|
||||
}
|
||||
} else {
|
||||
$('#imagemodal img').css('width', 'auto')
|
||||
var widthS = (windowH / height) * width
|
||||
if (widthS < windowW) {
|
||||
$('#imagemodal').css('width', widthS + 'px')
|
||||
} else {
|
||||
$('#imagemodal').css('width', '100vw')
|
||||
}
|
||||
|
||||
$('#imagemodal').css('height', '100vh')
|
||||
$('#imagemodal img').css('height', 'calc(100vh - 60px)')
|
||||
}
|
||||
calcNiceAspect(width, height)
|
||||
$('#imagemodal').attr('data-naturalWidth', width)
|
||||
$('#imagemodal').attr('data-naturalHeight', height)
|
||||
}
|
||||
if ($('#' + id + '-image-' + (key * 1 + 1)).length == 0) {
|
||||
$('#image-next').prop('disabled', true)
|
||||
@@ -172,6 +146,38 @@ function imageXhr(id, key, murl) {
|
||||
xhr.responseType = 'blob'
|
||||
xhr.send()
|
||||
}
|
||||
function calcNiceAspect( width, height ) {
|
||||
if(width < 650) {
|
||||
width = 650
|
||||
}
|
||||
var windowH = $(window).height()
|
||||
var windowW = $(window).width()
|
||||
$('#imagemodal').css('bottom', '0')
|
||||
$('#imagemodal img').css('width', 'auto')
|
||||
if (height < windowH) {
|
||||
$('#imagemodal').css('height', height + 100 + 'px')
|
||||
$('#imagemodal img').css('height', height + 'px')
|
||||
if (width > windowW * 0.8) {
|
||||
$('#imagemodal').css('width', '80vw')
|
||||
$('#imagemodal img').css('width', 'auto')
|
||||
var heightS = ((windowW * 0.8) / width) * height
|
||||
$('#imagemodal').css('height', heightS + 100 + 'px')
|
||||
} else {
|
||||
$('#imagemodal').css('width', width + 'px')
|
||||
}
|
||||
} else {
|
||||
$('#imagemodal img').css('width', 'auto')
|
||||
var widthS = (windowH / height) * width
|
||||
if (widthS < windowW) {
|
||||
$('#imagemodal').css('width', widthS + 'px')
|
||||
} else {
|
||||
$('#imagemodal').css('width', '100vw')
|
||||
}
|
||||
|
||||
$('#imagemodal').css('height', '100vh')
|
||||
$('#imagemodal img').css('height', 'calc(100vh - 60px)')
|
||||
}
|
||||
}
|
||||
//ズームボタン(z:倍率)
|
||||
function zoom(z) {
|
||||
var wdth = $('#imagewrap img').width()
|
||||
@@ -260,6 +266,33 @@ element.onmousewheel = function(e) {
|
||||
zoom(0.9)
|
||||
}
|
||||
}
|
||||
function rotate(reset) {
|
||||
if (reset) {
|
||||
$('#imagewrap img').removeClass('rotate-90')
|
||||
$('#imagewrap img').removeClass('rotate-180')
|
||||
$('#imagewrap img').removeClass('rotate-270')
|
||||
$('#imagemodal').attr('data-naturalWidth', null)
|
||||
$('#imagemodal').attr('data-naturalWidth', null)
|
||||
return true
|
||||
}
|
||||
var width = $('#imagemodal').attr('data-naturalWidth')
|
||||
var height = $('#imagemodal').attr('data-naturalHeight')
|
||||
if ($('#imagewrap img').hasClass('rotate-90')) {
|
||||
$('#imagewrap img').removeClass('rotate-90')
|
||||
$('#imagewrap img').addClass('rotate-180')
|
||||
calcNiceAspect(width, height)
|
||||
} else if ($('#imagewrap img').hasClass('rotate-180')) {
|
||||
$('#imagewrap img').removeClass('rotate-180')
|
||||
$('#imagewrap img').addClass('rotate-270')
|
||||
calcNiceAspect(height, width)
|
||||
} else if ($('#imagewrap img').hasClass('rotate-270')) {
|
||||
$('#imagewrap img').removeClass('rotate-270')
|
||||
calcNiceAspect(width, height)
|
||||
} else {
|
||||
$('#imagewrap img').addClass('rotate-90')
|
||||
calcNiceAspect(height, width)
|
||||
}
|
||||
}
|
||||
|
||||
//当該トゥート
|
||||
function detFromImg() {
|
||||
|
@@ -51,6 +51,7 @@ function parseColumn(target, dontclose) {
|
||||
localStorage.setItem('prof_' + key, acct.prof)
|
||||
localStorage.setItem('domain_' + key, acct.domain)
|
||||
localStorage.setItem('acct_' + key + '_at', acct.at)
|
||||
localStorage.setItem('acct_' + key + '_rt', acct.rt ? acct.rt : null)
|
||||
if(!target) mastodonBaseStreaming(key)
|
||||
ckdb(key)
|
||||
//フィルターデータ読もう
|
||||
@@ -149,7 +150,6 @@ function parseColumn(target, dontclose) {
|
||||
icnsert = ' style="color: #' + ichex + '" '
|
||||
}
|
||||
}
|
||||
console.log(acct)
|
||||
if (acctlist[acct.domain]) {
|
||||
if (acctlist[acct.domain].background != 'def') {
|
||||
insert = insert + ' border-bottom:medium solid #' + acctlist[acct.domain].background + ';'
|
||||
@@ -229,65 +229,63 @@ function parseColumn(target, dontclose) {
|
||||
var animecss = ''
|
||||
}
|
||||
var unread = `<a id="unread_${key}" onclick="showUnread('${key}','${acct.type}','${acct.domain}')"
|
||||
class="setting nex" title="${lang.lang_layout_unread}">
|
||||
<i class="material-icons waves-effect nex">more</i>
|
||||
</a>${lang.lang_layout_unread}<br>`
|
||||
class="setting nex waves-effect" title="${lang.lang_layout_unread}">
|
||||
<i class="material-icons waves-effect nex">more</i><br />${lang.lang_layout_unread}
|
||||
</a>`
|
||||
var notfDomain = acct.domain
|
||||
var notfKey = key
|
||||
var if_tag = ''
|
||||
var if_tag_btn = ''
|
||||
if (acct.type == 'notf') {
|
||||
var exclude =
|
||||
lang.lang_excluded +
|
||||
`:<br>
|
||||
`<div style="border: 1px solid; padding: 5px; margin-top: 5px; margin-bottom: 5px;">${lang.lang_layout_excluded}:<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="exc-reply-${key}" ${excludeCk(key, 'mention')} />
|
||||
<span>
|
||||
<i class="fas fa-share exc-icons"></i>
|
||||
${lang.lang_layout_mention}
|
||||
</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="exc-fav-${key}" ${excludeCk(key, 'favourite')} />
|
||||
<span>
|
||||
<i class="fas fa-star exc-icons"></i>
|
||||
${lang.lang_layout_fav}
|
||||
</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="exc-bt-${key}" ${excludeCk(key, 'reblog')} />
|
||||
<span>
|
||||
<i class="fas fa-retweet exc-icons"></i>
|
||||
${lang.lang_layout_bt}
|
||||
</span>
|
||||
</label>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="exc-follow-${key}" ${excludeCk(key, 'follow')} />
|
||||
<span>
|
||||
<i class="fas fa-users exc-icons"></i>
|
||||
${lang.lang_status_follow}
|
||||
</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="exc-poll-${key}" ${excludeCk(key, 'poll')} />
|
||||
<span>
|
||||
<i class="fas fa-tasks exc-icons"></i>
|
||||
${lang.lang_layout_poll}
|
||||
</span>
|
||||
</label>
|
||||
<button class="btn waves-effect" style="width:60px; padding:0;" onclick="exclude('${key}')">Filter</button>`
|
||||
</label> <br />
|
||||
<button class="btn btn-flat waves-effect notf-exclude-btn waves-light" style="width:calc(50% - 11px); padding:0;" onclick="exclude('${key}')">Filter</button>`
|
||||
if (checkNotfFilter(key)) {
|
||||
exclude =
|
||||
exclude +
|
||||
`<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter('${key}')">
|
||||
`<button class="btn btn-flat red-text waves-effect notf-exclude-btn waves-light" style="width:calc(50% - 11px); padding:0;" onclick="resetNotfFilter('${key}')">
|
||||
Clear all
|
||||
</button>`
|
||||
}
|
||||
exclude = exclude + '<br>'
|
||||
exclude = exclude + '</div>'
|
||||
notfDomain = 'dummy'
|
||||
notfKey = 'dummy'
|
||||
} else if (acct.type == 'home') {
|
||||
var exclude = `<a onclick="ebtToggle('${key}')" class="setting nex">
|
||||
<i class="fas fa-retweet waves-effect nex" title="${lang.lang_layout_excludingbt}" style="font-size:24px"></i>
|
||||
<span id="sta-bt-${key}">Off</span>
|
||||
</a>
|
||||
var exclude = `<a onclick="ebtToggle('${key}')" class="setting nex waves-effect">
|
||||
<i class="fas fa-retweet nex" title="${lang.lang_layout_excludingbt}" style="font-size: 24px"></i>
|
||||
<span id="sta-bt-${key}">Off</span><br />
|
||||
${lang.lang_layout_excludingbt}
|
||||
<br>`
|
||||
</a>`
|
||||
} else if (acct.type == 'tag') {
|
||||
if (acct.data.name) {
|
||||
var name = acct.data.name
|
||||
@@ -336,15 +334,13 @@ function parseColumn(target, dontclose) {
|
||||
var basehtml = `<div style="${css}" class="box ${animecss}" id="timeline_box_${basekey}_parentBox"></div>`
|
||||
$('#timeline-container').append(basehtml)
|
||||
}
|
||||
var left_hold = `<a onclick="leftFoldSet('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftFold}">view_agenda</i>
|
||||
</a>
|
||||
${lang.lang_layout_leftFold}<br>`
|
||||
var left_hold = `<a onclick="leftFoldSet('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftFold}">view_agenda</i><br />
|
||||
${lang.lang_layout_leftFold}</a>`
|
||||
} else {
|
||||
var left_hold = `<a onclick="leftFoldRemove('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftUnfold}">view_column</i>
|
||||
</a>
|
||||
${lang.lang_layout_leftUnfold}<br>`
|
||||
var left_hold = `<a onclick="leftFoldRemove('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftUnfold}">view_column</i><br />
|
||||
${lang.lang_layout_leftUnfold}</a>`
|
||||
}
|
||||
if (key === 0) {
|
||||
left_hold = ''
|
||||
@@ -363,16 +359,15 @@ function parseColumn(target, dontclose) {
|
||||
var addHeight = ''
|
||||
}
|
||||
if (acct.type != 'pub' && acct.type != 'pub-media') {
|
||||
console.log(acct.type, key)
|
||||
var mediaFil = `<a onclick="mediaToggle('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_mediafil}">perm_media</i>
|
||||
<span id="sta-media-${key}">On</span>
|
||||
</a>${lang.lang_layout_mediafil}`
|
||||
var mediaFil = `<a onclick="mediaToggle('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_mediafil}">perm_media</i>
|
||||
<span id="sta-media-${key}">On</span><br />
|
||||
${lang.lang_layout_mediafil}</a>`
|
||||
} else {
|
||||
var mediaFil = `<a onclick="remoteOnly('${key}','${acct.type}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_remoteOnly}">perm_media</i>
|
||||
var mediaFil = `<a onclick="remoteOnly('${key}','${acct.type}')" class="setting nex waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_remoteOnly}">perm_media</i><br />
|
||||
<span id="sta-remote-${key}">Off</span>
|
||||
</a>${lang.lang_layout_remoteOnly}`
|
||||
${lang.lang_layout_remoteOnly}</a>`
|
||||
}
|
||||
var html = `
|
||||
<div class="boxIn" id="timeline_box_${key}_box" tlid="${key}" data-acct="${acct.domain}" style="${addHeight}">
|
||||
@@ -426,28 +421,30 @@ function parseColumn(target, dontclose) {
|
||||
</div>
|
||||
</div>
|
||||
<div class="column-hide notf-indv-box" id="util-box_${key}" style="padding:5px;">
|
||||
${exclude}
|
||||
${unread}
|
||||
${exclude}${left_hold}
|
||||
${mediaFil}<br>
|
||||
<a onclick="cardToggle('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_linkanades}">link</i>
|
||||
<span id="sta-card-${key}">On</span>
|
||||
</a>
|
||||
${left_hold}
|
||||
${mediaFil}
|
||||
<a onclick="cardToggle('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_linkanades}">link</i>
|
||||
<span id="sta-card-${key}">On</span><br />
|
||||
${lang.lang_layout_linkana}
|
||||
<br>
|
||||
<a onclick="voiceToggle('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_tts}">hearing</i>
|
||||
<span id="sta-voice-${key}">On</span>
|
||||
</a>
|
||||
<a onclick="voiceToggle('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_tts}">hearing</i>
|
||||
<span id="sta-voice-${key}">On</span><br />
|
||||
${lang.lang_layout_tts}
|
||||
TL<br>
|
||||
<a onclick="columnReload('${key}','${acct.type}')" class="setting nex ${if_misskey_hide}">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_reconnect}">refresh</i>
|
||||
</a>
|
||||
<span>
|
||||
TL</a>
|
||||
<a onclick="columnReload('${key}','${acct.type}')" class="setting nex ${if_misskey_hide} waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_reconnect}">refresh</i>
|
||||
<br />
|
||||
${lang.lang_layout_reconnect}
|
||||
</span>
|
||||
<br>
|
||||
</a>
|
||||
<a onclick="resetWidth('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_resetWidth}">refresh</i>
|
||||
<br />
|
||||
${lang.lang_layout_resetWidth}
|
||||
</a><br />
|
||||
${lang.lang_layout_headercolor}
|
||||
<br>
|
||||
<div id="picker_${key}" class="color-picker"></div>
|
||||
@@ -939,3 +936,11 @@ function leftFoldRemove(key) {
|
||||
localStorage.setItem('column', json)
|
||||
parseColumn()
|
||||
}
|
||||
function resetWidth(key) {
|
||||
var multi = localStorage.getItem('column')
|
||||
var obj = JSON.parse(multi)
|
||||
obj[key].width = null
|
||||
var json = JSON.stringify(obj)
|
||||
localStorage.setItem('column', json)
|
||||
$(`#timeline_box_${key}_parentBox`).attr('style', '')
|
||||
}
|
@@ -101,7 +101,6 @@ if (location.search) {
|
||||
$('.mini-btn').text('expand_less')
|
||||
}
|
||||
}
|
||||
window.onload = initPostbox
|
||||
function initPostbox() {
|
||||
$('#posttgl').click(function (e) {
|
||||
if (!$('#post-box').hasClass('appear')) {
|
||||
@@ -126,11 +125,6 @@ function initPostbox() {
|
||||
localStorage.removeItem('nohide')
|
||||
srcBox('close')
|
||||
})
|
||||
$('#contextWrap').click(function (e) {
|
||||
$('#contextWrap').addClass('hide')
|
||||
$('.contextMenu').addClass('hide')
|
||||
$('.act-icon').text('expand_more')
|
||||
})
|
||||
$('#textarea,#cw-text').focusout(function (e) {
|
||||
localStorage.setItem('nohide', true)
|
||||
var countup = function () {
|
||||
|
@@ -80,22 +80,6 @@ var postView = new Vue({
|
||||
})
|
||||
//設定ボタン押した。
|
||||
function settings() {
|
||||
var cd = $('[name=theme]:checked').val()
|
||||
var ct = $('[data-ct=' + cd + ']').html()
|
||||
if (cd == 'custom' && !$('#custom-sel-sel').val()) {
|
||||
var theme = localStorage.getItem('theme')
|
||||
if (!theme) {
|
||||
var theme = 'white'
|
||||
}
|
||||
$('#' + theme).prop('checked', true)
|
||||
} else {
|
||||
if (cd != localStorage.getItem('theme')) {
|
||||
M.toast({ html: lang.lang_setting_theme.replace('{{set}}', ct), displayLength: 3000 })
|
||||
}
|
||||
//テーマはこの場で設定
|
||||
themes(cd)
|
||||
localStorage.setItem('theme', cd)
|
||||
}
|
||||
var fontd = $('#font').val()
|
||||
if (fontd) {
|
||||
if (fontd != localStorage.getItem('font')) {
|
||||
@@ -114,6 +98,10 @@ function settings() {
|
||||
|
||||
//読み込み時の設定ロード
|
||||
function load() {
|
||||
var currentLang = lang.language
|
||||
console.log(currentLang)
|
||||
$(`#langsel-sel`).val(currentLang)
|
||||
$('#langsel-sel').formSelect()
|
||||
var max = envView.config.length
|
||||
for (var i = 0; i < max; i++) {
|
||||
var ls = envView.config[i].storage
|
||||
@@ -167,10 +155,10 @@ function load() {
|
||||
var font = ''
|
||||
}
|
||||
$('#font').val(font)
|
||||
$('#c1-file').text(localStorage.getItem('custom1'))
|
||||
$('#c2-file').text(localStorage.getItem('custom2'))
|
||||
$('#c3-file').text(localStorage.getItem('custom3'))
|
||||
$('#c4-file').text(localStorage.getItem('custom4'))
|
||||
$('#c1-file').text(localStorage.getItem('custom1') != 'null' ? localStorage.getItem('custom1') : '')
|
||||
$('#c2-file').text(localStorage.getItem('custom2') != 'null' ? localStorage.getItem('custom2') : '')
|
||||
$('#c3-file').text(localStorage.getItem('custom3') != 'null' ? localStorage.getItem('custom3') : '')
|
||||
$('#c4-file').text(localStorage.getItem('custom4') != 'null' ? localStorage.getItem('custom4') : '')
|
||||
var cvol = localStorage.getItem('customVol')
|
||||
if (cvol) {
|
||||
$('#soundvol').val(cvol * 100)
|
||||
@@ -299,8 +287,10 @@ function oksload() {
|
||||
$('#oks-3').val(localStorage.getItem('oks-3'))
|
||||
}
|
||||
}
|
||||
function changelang(lang) {
|
||||
postMessage(['lang', lang], '*')
|
||||
function changeLang() {
|
||||
const lang = $('#langsel-sel').val()
|
||||
console.log(lang)
|
||||
if(lang) postMessage(['lang', lang], '*')
|
||||
}
|
||||
function exportSettings() {
|
||||
var exp = exportSettingsCore()
|
||||
@@ -372,8 +362,12 @@ function exportSettingsCore() {
|
||||
//tags
|
||||
var tagarr = localStorage.getItem('tag')
|
||||
var favtag = JSON.parse(tagarr)
|
||||
exp.favoriteTags = favtag
|
||||
exp.revisons = 2.1
|
||||
//plugins
|
||||
var plugins = localStorage.getItem('plugins')
|
||||
var plugin = JSON.parse(plugins)
|
||||
exp.plugins = plugin
|
||||
|
||||
exp.revisons = 2.2
|
||||
exp.meta = {}
|
||||
exp.meta.date = new Date()
|
||||
exp.meta.thedesk = localStorage.getItem('ver')
|
||||
@@ -411,6 +405,7 @@ function importSettingsCore(obj) {
|
||||
localStorage.setItem('prof_' + key, acct.prof)
|
||||
localStorage.setItem('domain_' + key, acct.domain)
|
||||
localStorage.setItem('acct_' + key + '_at', acct.at)
|
||||
localStorage.setItem('acct_' + key + '_rt', acct.rt ? acct.rt : null)
|
||||
}
|
||||
localStorage.setItem('column', JSON.stringify(obj.columns))
|
||||
if (obj.config) {
|
||||
@@ -508,35 +503,39 @@ function fontList(arg) {
|
||||
function insertFont(name) {
|
||||
$('#font').val(name)
|
||||
}
|
||||
$('.color-picker').each(function (i, elem) {
|
||||
pickerDefine(i, 'fff')
|
||||
})
|
||||
function pickerDefine(i, color) {
|
||||
var pickr = new Pickr({
|
||||
el: '#color-picker' + i,
|
||||
default: color,
|
||||
showAlways: true,
|
||||
appendToBody: true,
|
||||
closeWithKey: 'Escape',
|
||||
comparison: false,
|
||||
components: {
|
||||
preview: true, // Left side color comparison
|
||||
opacity: false, // Opacity slider
|
||||
hue: true, // Hue slider
|
||||
interaction: {
|
||||
rgba: false, // rgba option (red green blue and alpha)
|
||||
input: true, // input / output element
|
||||
},
|
||||
},
|
||||
strings: {
|
||||
save: 'Save', // Default for save button
|
||||
clear: 'Clear', // Default for clear button
|
||||
},
|
||||
})
|
||||
pickr.on('change', (...args) => {
|
||||
var rgb = 'rgb(' + args[0].toRGBA()[0] + ',' + args[0].toRGBA()[1] + ',' + args[0].toRGBA()[2] + ')'
|
||||
$('#color-picker' + i + '_value').val(rgb)
|
||||
})
|
||||
function copyColor(from, to) {
|
||||
let props = [
|
||||
'background', 'subcolor', 'text', 'accent',
|
||||
'modal', 'modalFooter', 'third', 'forth',
|
||||
'bottom', 'emphasized', 'postbox', 'active',
|
||||
'selected', 'selectedWithShared'
|
||||
]
|
||||
let i = 0
|
||||
let color
|
||||
for (tag of props) {
|
||||
if (tag == from) {
|
||||
let used = $(`#use-color_${i}`).prop('checked')
|
||||
if (!used) {
|
||||
Swal.fire({
|
||||
type: 'error',
|
||||
title: 'Not checked',
|
||||
})
|
||||
break
|
||||
}
|
||||
color = $(`#color-picker${i}_value`).val()
|
||||
break
|
||||
}
|
||||
i++
|
||||
}
|
||||
if (!color) return false
|
||||
for (tag of props) {
|
||||
if (tag == to) {
|
||||
$(`#color-picker${i}_value`).val(color)
|
||||
$(`#use-color_${i}`).prop('checked', true)
|
||||
break
|
||||
}
|
||||
i++
|
||||
}
|
||||
}
|
||||
function customComp() {
|
||||
var nameC = $('#custom_name').val()
|
||||
@@ -544,59 +543,32 @@ function customComp() {
|
||||
return false
|
||||
}
|
||||
var descC = $('#custom_desc').val()
|
||||
var primaryC = $('#color-picker0_value').val()
|
||||
if (!primaryC) {
|
||||
primaryC = 'rgb(255,255,255)'
|
||||
}
|
||||
var secondaryC = $('#color-picker1_value').val()
|
||||
if (!secondaryC) {
|
||||
secondaryC = 'rgb(255,255,255)'
|
||||
}
|
||||
var textC = $('#color-picker2_value').val()
|
||||
if (!textC) {
|
||||
textC = 'rgb(255,255,255)'
|
||||
}
|
||||
var bgC = $('#color-picker0_value').val()
|
||||
var subcolorC = $('#color-picker2_value').val()
|
||||
var textC = $('#color-picker1_value').val()
|
||||
var accentC = $('#color-picker3_value').val()
|
||||
var multi = localStorage.getItem('multi')
|
||||
if ($('#pickers').hasClass('advanceTheme')) {
|
||||
var accentC = $('#color-picker3_value').val()
|
||||
if (!accentC) {
|
||||
accentC = null
|
||||
let advanced = [
|
||||
'modal', 'modalFooter', 'third', 'forth',
|
||||
'bottom', 'emphasized', 'postbox', 'active',
|
||||
'selected', 'selectedWithShared'
|
||||
]
|
||||
var advanceTheme = {}
|
||||
let i = 4
|
||||
for (tag of advanced) {
|
||||
let used = $(`#use-color_${i}`).prop('checked')
|
||||
if (used) {
|
||||
advanceTheme[tag] = $(`#color-picker${i}_value`).val()
|
||||
}
|
||||
var activeC = $('#color-picker4_value').val()
|
||||
if (!activeC) {
|
||||
activeC = null
|
||||
}
|
||||
var modalC = $('#color-picker5_value').val()
|
||||
if (!modalC) {
|
||||
modalC = null
|
||||
}
|
||||
var bottomC = $('#color-picker6_value').val()
|
||||
if (!bottomC) {
|
||||
bottomC = null
|
||||
}
|
||||
var postboxC = $('#color-picker7_value').val()
|
||||
if (!postboxC) {
|
||||
postboxC = null
|
||||
}
|
||||
var subcolorC = $('#color-picker8_value').val()
|
||||
if (!subcolorC) {
|
||||
subcolorC = null
|
||||
}
|
||||
var advanceTheme = {
|
||||
TheDeskAccent: accentC,
|
||||
TheDeskActive: activeC,
|
||||
TheDeskModal: modalC,
|
||||
TheDeskBottom: bottomC,
|
||||
TheDeskPostbox: postboxC,
|
||||
TheDeskSubcolor: subcolorC,
|
||||
}
|
||||
} else {
|
||||
var advanceTheme = {}
|
||||
i++
|
||||
}
|
||||
|
||||
var my = JSON.parse(multi)[0].name
|
||||
var id = $('#custom-edit-sel').val()
|
||||
if (id == 'add_new') {
|
||||
const defaults = [
|
||||
'black', 'blue', 'brown', 'green', 'indigo', 'polar', 'snow', 'white'
|
||||
]
|
||||
if (id == 'add_new' || defaults.includes(id)) {
|
||||
id = makeCID()
|
||||
}
|
||||
localStorage.setItem('customtheme-id', id)
|
||||
@@ -605,26 +577,48 @@ function customComp() {
|
||||
author: my,
|
||||
desc: descC,
|
||||
base: $('[name=direction]:checked').val(),
|
||||
vars: {
|
||||
primary: primaryC,
|
||||
secondary: secondaryC,
|
||||
primary: {
|
||||
background: bgC,
|
||||
subcolor: subcolorC,
|
||||
text: textC,
|
||||
accent: accentC
|
||||
},
|
||||
props: advanceTheme,
|
||||
advanced: advanceTheme,
|
||||
id: id,
|
||||
version: '2'
|
||||
}
|
||||
$('#custom_json').val(JSON.stringify(json))
|
||||
themes('custom')
|
||||
$('#custom').prop('checked', true)
|
||||
$('#custom_name').val('')
|
||||
$('#custom_desc').val('')
|
||||
$('#dark').prop('checked', true)
|
||||
$('#custom_json').val('')
|
||||
for (var i = 0; i <= 8; i++) {
|
||||
$('#color-picker' + i + '-wrap').html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
$('#color-picker' + i + '_value').val('')
|
||||
pickerDefine(i, 'fff')
|
||||
}
|
||||
let timerInterval
|
||||
Swal.fire({
|
||||
title: 'Saving...',
|
||||
html: '',
|
||||
timer: 1000,
|
||||
timerProgressBar: true,
|
||||
onBeforeOpen: () => {
|
||||
Swal.showLoading()
|
||||
},
|
||||
onClose: () => {
|
||||
clearInterval(timerInterval)
|
||||
}
|
||||
}).then((result) => {
|
||||
themes()
|
||||
ctLoad()
|
||||
Swal.fire({
|
||||
title: 'Refreshing...',
|
||||
html: '',
|
||||
timer: 1000,
|
||||
timerProgressBar: true,
|
||||
onBeforeOpen: () => {
|
||||
Swal.showLoading()
|
||||
},
|
||||
onClose: () => {
|
||||
clearInterval(timerInterval)
|
||||
}
|
||||
}).then((result) => {
|
||||
$('#custom-edit-sel').val(id)
|
||||
$('select').formSelect()
|
||||
})
|
||||
})
|
||||
postMessage(['themeJsonCreate', JSON.stringify(json)], '*')
|
||||
}
|
||||
function deleteIt() {
|
||||
@@ -633,34 +627,34 @@ function deleteIt() {
|
||||
$('#custom_desc').val('')
|
||||
$('#dark').prop('checked', true)
|
||||
$('#custom_json').val('')
|
||||
for (var i = 0; i <= 8; i++) {
|
||||
$('#color-picker' + i + '-wrap').html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
for (var i = 0; i <= 13; i++) {
|
||||
if (i >= 4) $(`#use-color_${i}`).prop('checked', false)
|
||||
$('#color-picker' + i + '_value').val('')
|
||||
pickerDefine(i, 'fff')
|
||||
}
|
||||
postMessage(['themeJsonDelete', id], '*')
|
||||
postMessage(['themeJsonDelete', id + '.thedesktheme'], '*')
|
||||
}
|
||||
function ctLoad() {
|
||||
postMessage(['sendSinmpleIpc', 'theme-json-list'], '*')
|
||||
}
|
||||
function ctLoadCore(args) {
|
||||
var templete = ''
|
||||
var template = ''
|
||||
var editTemplate = ''
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var theme = args[key]
|
||||
var themeid = theme.id
|
||||
templete = templete + '<option value="' + themeid + '">' + theme.name + '</option>'
|
||||
template = template + `<option value="${themeid}">${theme.name}${theme.compatible ? `(${lang.lang_setting_compat})` : ''}</option>`
|
||||
if (!theme.compatible) editTemplate = editTemplate + `<option value="${themeid}">${theme.name}</option>`
|
||||
})
|
||||
if (args[0]) {
|
||||
localStorage.setItem('customtheme-id', args[0].id)
|
||||
}
|
||||
$('#custom-sel-sel').html(templete)
|
||||
templete = '<option value="add_new">' + $('#edit-selector').attr('data-add') + '</option>' + templete
|
||||
$('#custom-edit-sel').html(templete)
|
||||
$('#custom-sel-sel').html(template)
|
||||
editTemplate = '<option value="add_new">' + $('#edit-selector').attr('data-add') + '</option>' + editTemplate
|
||||
$('#custom-edit-sel').html(editTemplate)
|
||||
$('#custom-sel-sel').val(localStorage.getItem('customtheme-id'))
|
||||
$('select').formSelect()
|
||||
}
|
||||
function customSel() {
|
||||
var id = $('#custom-sel-sel').val()
|
||||
localStorage.setItem('customtheme-id', id)
|
||||
themes(id)
|
||||
}
|
||||
function custom() {
|
||||
var id = $('#custom-edit-sel').val()
|
||||
@@ -669,58 +663,47 @@ function custom() {
|
||||
$('#custom_desc').val('')
|
||||
$('#dark').prop('checked', true)
|
||||
$('#custom_json').val('')
|
||||
for (var i = 0; i <= 8; i++) {
|
||||
$('#color-picker' + i + '-wrap').html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
for (var i = 0; i <= 13; i++) {
|
||||
if (i >= 4) $(`#use-color_${i}`).prop('checked', false)
|
||||
$('#color-picker' + i + '_value').val('')
|
||||
pickerDefine(i, 'fff')
|
||||
}
|
||||
$('#delTheme').addClass('disabled')
|
||||
} else {
|
||||
$('#delTheme').removeClass('disabled')
|
||||
postMessage(['themeJsonRequest', id], '*')
|
||||
postMessage(['themeJsonRequest', id + '.thedesktheme'], '*')
|
||||
}
|
||||
}
|
||||
function customConnect(raw) {
|
||||
var args = raw[0]
|
||||
$('#custom_name').val(args.name)
|
||||
$('#custom_desc').val(args.desc)
|
||||
$('#custom_name').val(`${args.name} ${args.default ? 'Customed' : ''}`)
|
||||
$('#custom_desc').val(args.default ? 'TheDesk default theme with some changes by user' : args.desc)
|
||||
$('#' + args.base).prop('checked', true)
|
||||
//Primary
|
||||
$('#color-picker0-wrap').html('<div class="color-picker" id="color-picker0"></div>')
|
||||
pickerDefine(0, rgbToHex(args.vars.primary))
|
||||
$('#color-picker0_value').val(args.vars.primary)
|
||||
//Secondary
|
||||
$('#color-picker1-wrap').html('<div class="color-picker" id="color-picker1"></div>')
|
||||
pickerDefine(1, rgbToHex(args.vars.secondary))
|
||||
$('#color-picker1_value').val(args.vars.secondary)
|
||||
//Background
|
||||
$('#color-picker0_value').val(args.primary.background)
|
||||
//Text
|
||||
$('#color-picker2-wrap').html('<div class="color-picker" id="color-picker2"></div>')
|
||||
$('#color-picker2_value').val(args.vars.text)
|
||||
pickerDefine(2, rgbToHex(args.vars.text))
|
||||
//TheDesk Only
|
||||
advancedConncet(args, 'TheDeskAccent', 'secondary', 3)
|
||||
advancedConncet(args, 'TheDeskActive', 'primary', 4)
|
||||
advancedConncet(args, 'TheDeskModal', 'secondary', 5)
|
||||
advancedConncet(args, 'TheDeskBottom', 'primary', 6)
|
||||
advancedConncet(args, 'TheDeskPostbox', 'primary', 7)
|
||||
advancedConncet(args, 'TheDeskSubcolor', 'primary', 8)
|
||||
$('#custom_json').val(raw[1])
|
||||
}
|
||||
function advancedConncet(args, tar, sub, i) {
|
||||
if (args.props) {
|
||||
if (args.props[tar]) {
|
||||
var color = args.props[tar]
|
||||
$('#pickers').addClass('advanceTheme')
|
||||
$('.advanced').removeClass('hide')
|
||||
} else {
|
||||
var color = args.vars[sub]
|
||||
$('#color-picker1_value').val(args.primary.text)
|
||||
//Subcolor
|
||||
$('#color-picker2_value').val(args.primary.subcolor)
|
||||
//Accent
|
||||
$('#color-picker3_value').val(args.primary.accent)
|
||||
let advanced = [
|
||||
'modal', 'modalFooter', 'third', 'forth',
|
||||
'bottom', 'emphasized', 'postbox', 'active',
|
||||
'selected', 'selectedWithShared'
|
||||
]
|
||||
let i = 4
|
||||
for (tag of advanced) {
|
||||
if (args.advanced[tag]) {
|
||||
$(`#color-picker${i}_value`).val(args.advanced[tag])
|
||||
|
||||
}
|
||||
} else {
|
||||
var color = args.vars[sub]
|
||||
$(`#use-color_${i}`).prop('checked', true)
|
||||
i++
|
||||
}
|
||||
$('#custom_json').val(raw[1])
|
||||
if (args.default) {
|
||||
$('#delTheme').addClass('disabled')
|
||||
}
|
||||
$('#color-picker' + i + '-wrap').html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
$('#color-picker' + i + '_value').val(color)
|
||||
pickerDefine(i, rgbToHex(color))
|
||||
}
|
||||
function customImp() {
|
||||
var json = $('#custom_import').val()
|
||||
@@ -754,7 +737,108 @@ function customSound(key) {
|
||||
}
|
||||
function customSoundSave(key, file) {
|
||||
localStorage.setItem('custom' + key, file)
|
||||
$('#c1-file').text(file)
|
||||
$(`#c${key}-file`).text(file)
|
||||
}
|
||||
function pluginLoad() {
|
||||
$('#plugin-edit-sel').val('add_new')
|
||||
$(".plugin_delete").addClass('disabled')
|
||||
var template = ''
|
||||
var pgns = localStorage.getItem('plugins')
|
||||
var args = JSON.parse(pgns ? pgns : '[]')
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var theme = args[key]
|
||||
var themeid = theme.id
|
||||
template = template + `<option value="${themeid}">${getMeta(theme.content).name}</option>`
|
||||
})
|
||||
template = '<option value="add_new">' + $('#plugin-selector').attr('data-add') + '</option>' + template
|
||||
$('#plugin-edit-sel').html(template)
|
||||
$('select').formSelect()
|
||||
}
|
||||
function pluginEdit() {
|
||||
var id = $('#plugin-edit-sel').val()
|
||||
$('#plugin').attr('data-id', id)
|
||||
if (id == 'add_new') {
|
||||
$('#plugin').val('')
|
||||
$(".plugin_delete").addClass('disabled')
|
||||
} else {
|
||||
$(".plugin_delete").removeClass('disabled')
|
||||
var pgns = localStorage.getItem('plugins')
|
||||
var args = JSON.parse(pgns ? pgns : '[]')
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var plugin = args[key]
|
||||
var targetId = plugin.id
|
||||
if (targetId == id) $('#plugin').val(plugin.content)
|
||||
})
|
||||
}
|
||||
}
|
||||
function completePlugin(comp) {
|
||||
var pgns = localStorage.getItem('plugins')
|
||||
var args = JSON.parse(pgns ? pgns : '[]')
|
||||
var id = $('#plugin').attr('data-id')
|
||||
|
||||
var inputPlugin = $('#plugin').val()
|
||||
var meta = getMeta(inputPlugin)
|
||||
if (!meta) {
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'error',
|
||||
})
|
||||
return false
|
||||
}
|
||||
if (!meta.name || !meta.version || !meta.event || !meta.author) {
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'error',
|
||||
})
|
||||
return false
|
||||
}
|
||||
if (id == 'add_new') {
|
||||
id = makeCID()
|
||||
args.push({
|
||||
id: id,
|
||||
content: inputPlugin
|
||||
})
|
||||
} else {
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var plugin = args[key]
|
||||
var targetId = plugin.id
|
||||
if (targetId == id) args[key].content = inputPlugin
|
||||
})
|
||||
}
|
||||
var ss = args
|
||||
localStorage.setItem('plugins', JSON.stringify(ss))
|
||||
if(comp) return false
|
||||
$('#plugin').attr('data-id', 'add_new')
|
||||
$('#plugin').val('')
|
||||
pluginLoad()
|
||||
}
|
||||
async function deletePlugin() {
|
||||
const alert = await Swal.fire({
|
||||
title: 'delete',
|
||||
icon: 'warning',
|
||||
showCancelButton: true
|
||||
})
|
||||
if (!alert) return false
|
||||
$('#plugin').val('')
|
||||
var pgns = localStorage.getItem('plugins')
|
||||
var args = JSON.parse(pgns ? pgns : '[]')
|
||||
var id = $('#plugin').attr('data-id')
|
||||
$('#plugin').attr('data-id', 'add_new')
|
||||
var ss = []
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var plugin = args[key]
|
||||
var targetId = plugin.id
|
||||
if (targetId != id) ss.push(plugin)
|
||||
})
|
||||
localStorage.setItem('plugins', JSON.stringify(ss))
|
||||
pluginLoad()
|
||||
}
|
||||
function execEditPlugin() {
|
||||
completePlugin(true)
|
||||
var id = $('#plugin').attr('data-id')
|
||||
var inputPlugin = $('#plugin').val()
|
||||
var meta = getMeta(inputPlugin)
|
||||
execPlugin(id, meta.event, { acct_id: 0, id: null })
|
||||
}
|
||||
window.onload = function () {
|
||||
//最初に読む
|
||||
@@ -766,6 +850,7 @@ window.onload = function () {
|
||||
voiceSettingLoad()
|
||||
oksload()
|
||||
ctLoad()
|
||||
pluginLoad()
|
||||
$('body').addClass(localStorage.getItem('platform'))
|
||||
}
|
||||
//設定画面で未読マーカーは要らない
|
||||
@@ -832,3 +917,5 @@ function lastFmSet() {
|
||||
}
|
||||
M.toast({ html: 'Complete: last.fm', displayLength: 3000 })
|
||||
}
|
||||
|
||||
function stopVideo() { return false }
|
@@ -62,6 +62,12 @@ function checkSpotify() {
|
||||
} else {
|
||||
$('#amw_no').prop('checked', true)
|
||||
}
|
||||
var flag3 = localStorage.getItem('control-center-np')
|
||||
if (flag3) {
|
||||
$('#cmw_yes').prop('checked', true)
|
||||
} else {
|
||||
$('#cmw_no').prop('checked', true)
|
||||
}
|
||||
}
|
||||
function spotifyFlagSave() {
|
||||
var awk = $('[name=awk]:checked').val()
|
||||
@@ -83,6 +89,16 @@ function aMusicFlagSave() {
|
||||
M.toast({ html: lang.lang_spotify_imgno, displayLength: 3000 })
|
||||
}
|
||||
}
|
||||
function cMusicFlagSave() {
|
||||
var awk = $('[name=cmw]:checked').val()
|
||||
if (awk == 'yes') {
|
||||
localStorage.setItem('control-center-np', 'yes')
|
||||
M.toast({ html: 'コントロールセンターNPをオンにしました', displayLength: 3000 })
|
||||
} else {
|
||||
localStorage.removeItem('control-center-np')
|
||||
M.toast({ html: 'コントロールセンターNPをオフにしました', displayLength: 3000 })
|
||||
}
|
||||
}
|
||||
function nowplaying(mode) {
|
||||
if (mode == 'spotify') {
|
||||
var start = 'https://spotify.thedesk.top/current-playing?code=' + localStorage.getItem('spotify-token')
|
||||
@@ -155,6 +171,8 @@ function nowplaying(mode) {
|
||||
}
|
||||
} else if (mode == 'itunes') {
|
||||
postMessage(['itunes', ''], '*')
|
||||
} else if (mode == 'anynp') {
|
||||
postMessage(['itunes', 'anynp'], '*')
|
||||
} else if (mode == 'lastFm') {
|
||||
var user = localStorage.getItem('lastFmUser')
|
||||
var start = 'https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=' + user + '&limit=1&api_key=8f113803bfea951b6dde9e56d32458b2&format=json'
|
||||
@@ -228,6 +246,16 @@ function nowplaying(mode) {
|
||||
}
|
||||
async function npCore(arg) {
|
||||
console.table(arg)
|
||||
if(arg.anynp) {
|
||||
var flag = localStorage.getItem('artwork')
|
||||
var q = arg.title
|
||||
if (flag && localStorage.getItem('complete-artwork')) {
|
||||
aaw = await getUnknownAA(q)
|
||||
postMessage(['bmpImage', [aaw.aaw, 0]], '*')
|
||||
}
|
||||
$('#textarea').val(q)
|
||||
return false
|
||||
}
|
||||
var content = localStorage.getItem('np-temp')
|
||||
if (!content || content == '' || content == 'null') {
|
||||
var content = '#NowPlaying {song} / {album} / {artist}\n{url}'
|
||||
|
@@ -1,35 +1,20 @@
|
||||
//テーマ適用
|
||||
function themes(theme) {
|
||||
if (!theme) {
|
||||
var theme = localStorage.getItem('theme')
|
||||
var theme = localStorage.getItem('customtheme-id')
|
||||
if (!theme) {
|
||||
var theme = 'black'
|
||||
localStorage.setItem('theme', 'black')
|
||||
localStorage.setItem('customtheme-id', 'black')
|
||||
theme = 'black'
|
||||
}
|
||||
}
|
||||
postMessage(['themeCSSRequest', theme + '.thedesktheme'], '*')
|
||||
var el = document.getElementsByTagName('html')[0]
|
||||
|
||||
el.classList.remove('indigotheme')
|
||||
el.classList.remove('greentheme')
|
||||
el.classList.remove('browntheme')
|
||||
el.classList.remove('blacktheme')
|
||||
el.classList.remove('bluetheme')
|
||||
el.classList.remove('polartheme')
|
||||
el.classList.remove('snowtheme')
|
||||
el.classList.remove('customtheme')
|
||||
el.classList.add(theme + 'theme')
|
||||
el.style.backgroundColor = 'var(--bg)'
|
||||
var font = localStorage.getItem('font')
|
||||
if (font) {
|
||||
font = font.replace(/"(.+)"/, '$1')
|
||||
el.style.fontFamily = '"' + font + '"'
|
||||
if(font) {
|
||||
el.style.fontFamily = font
|
||||
} else {
|
||||
el.style.fontFamily = ''
|
||||
}
|
||||
if (theme == 'custom') {
|
||||
if (localStorage.getItem('customtheme-id')) {
|
||||
postMessage(['themeCSSRequest', localStorage.getItem('customtheme-id')], '*')
|
||||
}
|
||||
}
|
||||
el.style.backgroundColor = 'var(--bg)'
|
||||
}
|
||||
themes()
|
||||
|
@@ -19,7 +19,7 @@ function bottomReverse() {
|
||||
localStorage.setItem('reverse', 'true')
|
||||
}
|
||||
}
|
||||
function tips(mode) {
|
||||
function tips(mode, custom) {
|
||||
postMessage(['sendSinmpleIpc', 'endmem'], '*')
|
||||
clearInterval(clockint)
|
||||
clearInterval(spotStart)
|
||||
@@ -57,22 +57,31 @@ function tips(mode) {
|
||||
tipsToggle()
|
||||
localStorage.setItem('tips', 'itunes')
|
||||
itunestips()
|
||||
} else if (mode == 'custom') {
|
||||
tipsToggle()
|
||||
localStorage.setItem('tips', `custom:${custom}`)
|
||||
execPlugin(custom, 'tips', null)
|
||||
}
|
||||
}
|
||||
//メモリ
|
||||
function startmem() {
|
||||
postMessage(['sendSinmpleIpc', 'startmem'], '*')
|
||||
}
|
||||
function renderMem(use, cpu, total) {
|
||||
function renderMem(use, cpu, total, core, uptime) {
|
||||
let day = Math.floor(uptime / 60 / 60 / 24)
|
||||
let hour = Math.floor(uptime / 60 /60 % 24)
|
||||
if(hour < 10) hour = '0' + hour
|
||||
let min = Math.floor(uptime / 60 % 60)
|
||||
if(min < 10) min = '0' + min
|
||||
let sec = Math.floor(uptime % 60)
|
||||
if(sec < 10) sec = '0' + sec
|
||||
let time = `${day ? day + ' days ' : ''}${hour ? hour + ':' : ''}${min}:${sec}`
|
||||
//Intel
|
||||
cpu = cpu.replace('Intel(R)', '').replace('(TM)', '').replace(' CPU', '')
|
||||
//AMD
|
||||
cpu = cpu.replace('AMD ', '').replace(/\s[0-9]{1,3}-Core\sProcessor/, '')
|
||||
$('#tips-text').html(
|
||||
escapeHTML(cpu) +
|
||||
'<br>Memory:' +
|
||||
Math.floor(use / 1024 / 1024 / 102.4) / 10 +
|
||||
'/' +
|
||||
Math.floor(total / 1024 / 1024 / 102.4) / 10 +
|
||||
'GB(' +
|
||||
Math.floor((use / total) * 100) +
|
||||
'%)'
|
||||
`${escapeHTML(cpu)} x ${core}<br />RAM: ${Math.floor(use / 1024 / 1024 / 102.4) / 10}/${Math.floor(total / 1024 / 1024 / 102.4) / 10}GB(${Math.floor((use / total) * 100)}%) UP:${time}`
|
||||
)
|
||||
}
|
||||
//トレンドタグ
|
||||
@@ -196,12 +205,10 @@ function spotifytips() {
|
||||
<i class="material-icons pointer" onclick="nowplaying('spotify');show()" style="font-size:20px">send</i>
|
||||
</div>
|
||||
<div id="spot-cover">
|
||||
<img src="${img}" id="spot-img">
|
||||
<img src="${img}" id="spot-img" draggable="false">
|
||||
</div>
|
||||
<div id="spot-name">
|
||||
${escapeHTML(item.name)}
|
||||
</div>
|
||||
<div id="spot-artist">
|
||||
<span class="gray sml" id="spot-art">${artisttxt}</span>
|
||||
</div>
|
||||
<div id="spot-time">
|
||||
|
@@ -204,7 +204,7 @@ function flw(user, more, acct_id) {
|
||||
let link
|
||||
if (linkHeader) {
|
||||
console.log(linkHeader)
|
||||
link = linkHeader.match(/[?&]{1}max_id=([0-9]+)/)[1]
|
||||
try {link = linkHeader.match(/[?&]{1}max_id=([0-9]+)/)[1] }catch{}
|
||||
console.log(link)
|
||||
}
|
||||
$("#his-follow-list-contents").attr('max-id', link)
|
||||
@@ -313,7 +313,7 @@ function fer(user, more, acct_id) {
|
||||
let link
|
||||
if (linkHeader) {
|
||||
console.log(linkHeader)
|
||||
link = linkHeader.match(/[?&]{1}max_id=([0-9]+)/)[1]
|
||||
try {link = linkHeader.match(/[?&]{1}max_id=([0-9]+)/)[1] }catch{}
|
||||
console.log(link)
|
||||
}
|
||||
$("#his-follower-list-contents").attr('max-id', link)
|
||||
@@ -354,7 +354,7 @@ function fer(user, more, acct_id) {
|
||||
let link
|
||||
if (linkHeader) {
|
||||
console.log(linkHeader)
|
||||
link = linkHeader.match(/[?&]{1}max_id=([0-9]+)/)[1]
|
||||
try {link = linkHeader.match(/[?&]{1}max_id=([0-9]+)/)[1] }catch{}
|
||||
console.log(link)
|
||||
}
|
||||
$("#his-follower-list-contents").attr('max-id', link)
|
||||
@@ -403,7 +403,7 @@ function showFav(more, acct_id) {
|
||||
let link
|
||||
if (linkHeader) {
|
||||
console.log(linkHeader)
|
||||
link = linkHeader.match(/[?&]{1}max_id=([0-9]+)/)[1]
|
||||
try {link = linkHeader.match(/[?&]{1}max_id=([0-9]+)/)[1] }catch{}
|
||||
console.log(link)
|
||||
}
|
||||
var template = parse(json, "", acct_id, "user")
|
||||
|
@@ -554,6 +554,8 @@ function reset() {
|
||||
$("#my-data-nav .anc-link").on("click", function() {
|
||||
var target = $(this).attr("go")
|
||||
if (target) {
|
||||
const title = $(this).html()
|
||||
$('#his-data-title').html(title)
|
||||
$("#my-data-nav .anc-link").removeClass("active-back")
|
||||
$(this).addClass("active-back")
|
||||
$(target).show()
|
||||
|
34
app/main.js
34
app/main.js
@@ -124,7 +124,6 @@ function createWindow() {
|
||||
var max_info_path = join(app.getPath('userData'), 'max-window-size.json')
|
||||
var ha_path = join(app.getPath('userData'), 'hardwareAcceleration')
|
||||
var ua_path = join(app.getPath('userData'), 'useragent')
|
||||
var frame_path = join(app.getPath('userData'), 'frame')
|
||||
try {
|
||||
fs.readFileSync(ha_path, 'utf8')
|
||||
app.disableHardwareAcceleration()
|
||||
@@ -152,19 +151,6 @@ function createWindow() {
|
||||
y: 'string',
|
||||
} // デフォルトバリュー
|
||||
}
|
||||
|
||||
try {
|
||||
var frameRaw = fs.readFileSync(frame_path, 'utf8')
|
||||
if (frameRaw == 'false') {
|
||||
var frame = false
|
||||
var frameTitle = 'hidden'
|
||||
} else {
|
||||
var frame = true
|
||||
var frameTitle = 'default'
|
||||
}
|
||||
} catch {
|
||||
var frame = true
|
||||
}
|
||||
// メイン画面の表示。ウィンドウの幅、高さを指定できる
|
||||
var platform = process.platform
|
||||
var bit = process.arch
|
||||
@@ -173,6 +159,7 @@ function createWindow() {
|
||||
webviewTag: true,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
spellcheck: false,
|
||||
preload: join(__dirname, 'js', 'platform', 'preload.js'),
|
||||
},
|
||||
width: window_size.width,
|
||||
@@ -180,7 +167,6 @@ function createWindow() {
|
||||
x: window_size.x,
|
||||
y: window_size.y,
|
||||
show: false,
|
||||
frame: frame,
|
||||
}
|
||||
if (platform == 'linux') {
|
||||
arg.resizable = true
|
||||
@@ -189,7 +175,6 @@ function createWindow() {
|
||||
arg.simpleFullscreen = true
|
||||
} else if (platform == 'darwin') {
|
||||
arg.simpleFullscreen = true
|
||||
arg.titleBarStyle = frameTitle
|
||||
}
|
||||
mainWindow = new BrowserWindow(arg)
|
||||
mainWindow.once('page-title-updated', () => {
|
||||
@@ -200,6 +185,13 @@ function createWindow() {
|
||||
mainWindow.maximize()
|
||||
}
|
||||
})
|
||||
mainWindow.webContents.on('page-title-updated', () => {
|
||||
const url = mainWindow.webContents.getURL()
|
||||
if(url.match(/https:\/\/crowdin.com\/profile/)) {
|
||||
app.relaunch()
|
||||
app.exit()
|
||||
}
|
||||
})
|
||||
if (!packaged) mainWindow.toggleDevTools()
|
||||
electron.session.defaultSession.clearCache(() => {})
|
||||
if (process.argv) {
|
||||
@@ -245,9 +237,12 @@ function createWindow() {
|
||||
}
|
||||
const promise = new Promise(function (resolve) {
|
||||
mainWindow.webContents.send('asReadEnd', '')
|
||||
let wait = 3000
|
||||
const url = mainWindow.webContents.getURL()
|
||||
if(!url.match(/index.html/)) wait = 0
|
||||
setTimeout(function () {
|
||||
resolve()
|
||||
}, 3000)
|
||||
}, wait)
|
||||
})
|
||||
promise.then(function (response) {
|
||||
closeArg = true
|
||||
@@ -293,10 +288,7 @@ function createWindow() {
|
||||
|
||||
var platform = process.platform
|
||||
var bit = process.arch
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, packaged, dir, dirname, frame)))
|
||||
if (!frame) {
|
||||
mainWindow.setMenu(null)
|
||||
}
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, packaged, dir, dirname)))
|
||||
//CSS
|
||||
css.css(mainWindow)
|
||||
//アップデータとダウンロード
|
||||
|
299
app/main/css.js
299
app/main/css.js
@@ -31,119 +31,246 @@ function css(mainWindow) {
|
||||
}
|
||||
})
|
||||
ipc.on('theme-json-delete', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
console.log(themecss);
|
||||
fs.unlink(themecss, function (err) {
|
||||
e.sender.webContents.send('theme-json-delete-complete', "");
|
||||
});
|
||||
try{
|
||||
var themecss = join(app.getPath("userData"), arg);
|
||||
console.log(themecss);
|
||||
fs.unlink(themecss, function (err) {
|
||||
e.sender.webContents.send('theme-json-delete-complete', "");
|
||||
});
|
||||
} catch {
|
||||
e.sender.webContents.send('theme-json-delete-complete', 'cannot delete');
|
||||
}
|
||||
|
||||
})
|
||||
ipc.on('theme-json-request', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
var raw = fs.readFileSync(themecss, 'utf8')
|
||||
var json = JSON5.parse(raw);
|
||||
try {
|
||||
var themecss = join(app.getAppPath(), '/source/themes', arg)
|
||||
var raw = fs.readFileSync(themecss, 'utf8')
|
||||
var json = JSON5.parse(raw)
|
||||
} catch {
|
||||
var themecss = join(app.getPath("userData"), arg)
|
||||
var raw = fs.readFileSync(themecss, 'utf8')
|
||||
var json = JSON5.parse(raw)
|
||||
}
|
||||
e.sender.webContents.send('theme-json-response', [json, raw]);
|
||||
})
|
||||
ipc.on('theme-css-request', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
try {
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
var themecss = join(app.getAppPath(), '/source/themes', arg)
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'))
|
||||
} catch {
|
||||
var themecss = join(app.getPath("userData"), arg)
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'))
|
||||
}
|
||||
|
||||
var primary = json.vars.primary;
|
||||
var secondary = json.vars.secondary;
|
||||
var text = json.vars.text;
|
||||
if (json.base == "light") {
|
||||
var drag = "rgba(255, 255, 255, 0.8)";
|
||||
var beforehover = "#757575";
|
||||
var selected = "#3f3f3f"
|
||||
var selectedWithShare = "#b2babd"
|
||||
var gray = "#757575"
|
||||
} else {
|
||||
var drag = "rgba(0, 0, 0, 0.8)";
|
||||
var beforehover = "#9e9e9e";
|
||||
var selected = "#c0c0c0"
|
||||
var selectedWithShare = "#003a30"
|
||||
var gray = "#cccccc"
|
||||
}
|
||||
if (json.props) {
|
||||
if (json.props.TheDeskAccent) {
|
||||
var emphasized = json.props.TheDeskAccent
|
||||
try {
|
||||
var css
|
||||
if (json.version) {
|
||||
var bg = json.primary.background
|
||||
var subcolor = json.primary.subcolor
|
||||
var text = json.primary.text
|
||||
var accent = json.primary.accent
|
||||
if (json.base == "light") {
|
||||
var drag = "rgba(255, 255, 255, 0.8)";
|
||||
var beforehover = "#757575";
|
||||
var selected = "#3f3f3f"
|
||||
var selectedWithShare = "#b2babd"
|
||||
var gray = "#757575"
|
||||
var hisData = 'rgba(255, 255, 255, 0.9)'
|
||||
} else {
|
||||
var emphasized = secondary
|
||||
var drag = "rgba(0, 0, 0, 0.8)";
|
||||
var beforehover = "#9e9e9e";
|
||||
var selected = "#c0c0c0"
|
||||
var selectedWithShare = "#003a30"
|
||||
var gray = "#cccccc"
|
||||
var hisData = 'rgba(0, 0, 0, 0.8)'
|
||||
}
|
||||
if (json.props.TheDeskActive) {
|
||||
var active = json.props.TheDeskActive
|
||||
if (!json.advanced) {
|
||||
json.advanced = {}
|
||||
}
|
||||
if (json.advanced.modal) {
|
||||
var modal = json.advanced.modal
|
||||
} else {
|
||||
var active = primary
|
||||
var modal = bg
|
||||
}
|
||||
if (json.props.TheDeskModal) {
|
||||
var modal = json.props.TheDeskModal
|
||||
if (json.advanced.modalFooter) {
|
||||
var modalFooter = json.advanced.modalFooter
|
||||
} else {
|
||||
var modal = secondary
|
||||
var modalFooter = bg
|
||||
if (modal != bg) modalFooter = modal
|
||||
}
|
||||
if (json.props.TheDeskBottom) {
|
||||
var bottom = json.props.TheDeskBottom
|
||||
if (json.advanced.thirdColor) {
|
||||
var thirdColor = json.advanced.thirdColor
|
||||
} else {
|
||||
var bottom = primary
|
||||
var thirdColor = subcolor
|
||||
}
|
||||
if (json.props.TheDeskPostbox) {
|
||||
var postbox = json.props.TheDeskPostbox
|
||||
if (json.advanced.forthColor) {
|
||||
var forthColor = json.advanced.forthColor
|
||||
} else {
|
||||
var postbox = primary
|
||||
var forthColor = subcolor
|
||||
if (thirdColor != subcolor) forthColor = thirdColor
|
||||
}
|
||||
if (json.props.TheDeskSubcolor) {
|
||||
var subcolor = json.props.TheDeskSubcolor
|
||||
if (json.advanced.bottom) {
|
||||
var bottom = json.advanced.bottom
|
||||
} else {
|
||||
var subcolor = primary
|
||||
var bottom = subcolor
|
||||
}
|
||||
if (json.advanced.emphasized) {
|
||||
var emphasized = json.advanced.emphasized
|
||||
} else {
|
||||
var emphasized = accent
|
||||
}
|
||||
if (json.advanced.postbox) {
|
||||
var postbox = json.advanced.postbox
|
||||
} else {
|
||||
var postbox = subcolor
|
||||
}
|
||||
if (json.advanced.active) {
|
||||
var active = json.advanced.active
|
||||
} else {
|
||||
var active = accent
|
||||
}
|
||||
if (json.advanced.selected) {
|
||||
var selected = json.advanced.selected
|
||||
}
|
||||
if (json.advanced.selectedWithShare) {
|
||||
var selectedWithShare = json.advanced.selectedWithShare
|
||||
}
|
||||
} else {
|
||||
var emphasized = primary
|
||||
var acs = secondary
|
||||
var active = primary
|
||||
var modal = secondary
|
||||
var bottom = primary
|
||||
var postbox = primary
|
||||
var subcolor = primary
|
||||
}
|
||||
|
||||
var css = ".customtheme {--bg:" + secondary + ";--drag:" + drag + ";" +
|
||||
"--color:" + text + ";--beforehover:" + beforehover + ";--modal:" +
|
||||
modal + ";--subcolor:" + subcolor + ";--box:" + subcolor +
|
||||
";--sidebar:" + bottom + ";--shared:" + emphasized + ";" +
|
||||
"--notfbox:" + secondary + ";--emphasized:" + active + ";--his-data:" +
|
||||
secondary +
|
||||
";--active:" + active + ";--postbox:" + postbox + ";--modalfooter:" +
|
||||
primary +
|
||||
";--accentbtn:" + subcolor + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare + "}"+
|
||||
"--gray:" + gray + ";"+
|
||||
".customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
var css = ":root {--bg:" + bg + ";--drag:" + drag + ";" +
|
||||
"--text:" + text + ";--beforehover:" + beforehover + ";--modal:" +
|
||||
modal + ";--thirdColor:" + thirdColor + ";--subcolor:" + forthColor +
|
||||
";--bottom:" + bottom + ";--accent:" + accent + ";" + ";--emphasized:" + emphasized + ";--his-data:" +
|
||||
hisData +
|
||||
";--active:" + active + ";--postbox:" + postbox + ";--modalfooter:" +
|
||||
modalFooter + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare +
|
||||
";--gray:" + gray + ";}" +
|
||||
".customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
} else {
|
||||
var css = compatibleTheme(json)
|
||||
}
|
||||
e.sender.webContents.send('theme-css-response', css);
|
||||
} catch (e) {
|
||||
var css = "";
|
||||
}
|
||||
|
||||
})
|
||||
ipc.on('theme-json-list', function (e, arg) {
|
||||
fs.readdir(app.getPath("userData"), function (err, files) {
|
||||
if (err || !files) throw err;
|
||||
var fileList = files.filter(function (file) {
|
||||
if(file.match(/\.thedesktheme$/)){
|
||||
var tfile = join(app.getPath("userData"), file)
|
||||
return fs.statSync(tfile).isFile() && /.*\.thedesktheme$/.test(tfile)
|
||||
}else{
|
||||
return null
|
||||
}
|
||||
})
|
||||
var themes = [];
|
||||
for (var i = 0; i < fileList.length; i++) {
|
||||
var themecss = join(app.getPath("userData"), fileList[i]);
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
themes.push({
|
||||
name: json.name,
|
||||
id: json.id
|
||||
})
|
||||
function compatibleTheme(json) {
|
||||
var primary = json.vars.primary;
|
||||
var secondary = json.vars.secondary;
|
||||
var text = json.vars.text;
|
||||
if (json.base == "light") {
|
||||
var drag = "rgba(255, 255, 255, 0.8)";
|
||||
var beforehover = "#757575";
|
||||
var selected = "#3f3f3f"
|
||||
var selectedWithShare = "#b2babd"
|
||||
var gray = "#757575"
|
||||
} else {
|
||||
var drag = "rgba(0, 0, 0, 0.8)";
|
||||
var beforehover = "#9e9e9e";
|
||||
var selected = "#c0c0c0"
|
||||
var selectedWithShare = "#003a30"
|
||||
var gray = "#cccccc"
|
||||
}
|
||||
if (json.advanced) {
|
||||
if (json.advanced.TheDeskAccent) {
|
||||
var emphasized = json.advanced.TheDeskAccent
|
||||
} else {
|
||||
var emphasized = secondary
|
||||
}
|
||||
e.sender.webContents.send('theme-json-list-response', themes);
|
||||
});
|
||||
if (json.advanced.TheDeskActive) {
|
||||
var active = json.advanced.TheDeskActive
|
||||
} else {
|
||||
var active = primary
|
||||
}
|
||||
if (json.advanced.TheDeskModal) {
|
||||
var modal = json.advanced.TheDeskModal
|
||||
} else {
|
||||
var modal = secondary
|
||||
}
|
||||
if (json.advanced.TheDeskBottom) {
|
||||
var bottom = json.advanced.TheDeskBottom
|
||||
} else {
|
||||
var bottom = primary
|
||||
}
|
||||
if (json.advanced.TheDeskPostbox) {
|
||||
var postbox = json.advanced.TheDeskPostbox
|
||||
} else {
|
||||
var postbox = primary
|
||||
}
|
||||
if (json.advanced.TheDeskSubcolor) {
|
||||
var subcolor = json.advanced.TheDeskSubcolor
|
||||
} else {
|
||||
var subcolor = primary
|
||||
}
|
||||
} else {
|
||||
var emphasized = primary
|
||||
var acs = secondary
|
||||
var active = primary
|
||||
var modal = secondary
|
||||
var bottom = primary
|
||||
var postbox = primary
|
||||
var subcolor = primary
|
||||
}
|
||||
|
||||
var css = ".customtheme {--bg:" + secondary + ";--drag:" + drag + ";" +
|
||||
"--text:" + text + ";--beforehover:" + beforehover + ";--modal:" +
|
||||
modal + ";--thirdColor:" + subcolor + ";--subcolor:" + subcolor +
|
||||
";--bottom:" + bottom + ";--accent:" + emphasized + ";" +
|
||||
"--subcolor:" + secondary + ";--emphasized:" + active + ";--his-data:" +
|
||||
secondary +
|
||||
";--active:" + active + ";--postbox:" + postbox + ";--modalfooter:" +
|
||||
primary +
|
||||
";--active:" + subcolor + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare + "}" +
|
||||
"--gray:" + gray + ";" +
|
||||
".customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
return css
|
||||
}
|
||||
ipc.on('theme-json-list', function (e, arg) {
|
||||
var files1 = fs.readdirSync(join(app.getAppPath(), '/source/themes'))
|
||||
var file1List = files1.filter(function (file) {
|
||||
if (file.match(/\.thedesktheme$/)) {
|
||||
var tfile = join(app.getAppPath(), '/source/themes', file)
|
||||
return fs.statSync(tfile).isFile() && /.*\.thedesktheme$/.test(tfile)
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
})
|
||||
var themes = [];
|
||||
for (var i = 0; i < file1List.length; i++) {
|
||||
var themecss = join(app.getAppPath(), '/source/themes', file1List[i]);
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
let compat = true
|
||||
if (json.version) compat = false
|
||||
themes.push({
|
||||
name: json.name,
|
||||
id: json.id,
|
||||
compatible: compat,
|
||||
default: true
|
||||
})
|
||||
}
|
||||
var files2 = fs.readdirSync(app.getPath("userData"))
|
||||
var file2List = files2.filter(function (file) {
|
||||
if (file.match(/\.thedesktheme$/)) {
|
||||
var tfile = join(app.getPath("userData"), file)
|
||||
return fs.statSync(tfile).isFile() && /.*\.thedesktheme$/.test(tfile)
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
})
|
||||
for (var i = 0; i < file2List.length; i++) {
|
||||
var themecss = join(app.getPath("userData"), file2List[i]);
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
let compat = true
|
||||
if (json.version) compat = false
|
||||
themes.push({
|
||||
name: json.name,
|
||||
id: json.id,
|
||||
compatible: compat,
|
||||
default: false
|
||||
})
|
||||
}
|
||||
e.sender.webContents.send('theme-json-list-response', themes);
|
||||
})
|
||||
}
|
||||
exports.css = css;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
// Create the Application's main menu
|
||||
function templete(lang, mainWindow, packaged, dir, dirname, frame) {
|
||||
function templete(lang, mainWindow, packaged, dir, dirname) {
|
||||
//フレーム
|
||||
if(lang !="ja" && lang != "en"){
|
||||
lang = "en"
|
||||
@@ -9,11 +9,6 @@ function templete(lang, mainWindow, packaged, dir, dirname, frame) {
|
||||
const app = electron.app;
|
||||
const BrowserWindow = electron.BrowserWindow;
|
||||
const join = require('path').join;
|
||||
ipc.on("frameCheck", function(e, arg) {
|
||||
if(!frame) {
|
||||
e.sender.webContents.send("frame", "");
|
||||
}
|
||||
});
|
||||
const dict = {
|
||||
"application": {
|
||||
"ja": "アプリケーション",
|
||||
|
@@ -1,13 +1,24 @@
|
||||
const { execSync } = require('child_process')
|
||||
const { join } = require('path')
|
||||
function np(mainWindow) {
|
||||
var platform = process.platform
|
||||
if (platform !== 'darwin') return false
|
||||
const electron = require('electron')
|
||||
const ipc = electron.ipcMain
|
||||
ipc.on('itunes', async (e, args) => {
|
||||
console.log('Access')
|
||||
if (args[0] == 'set') {
|
||||
if (args == 'anynp') {
|
||||
const dir = join(__dirname, "..", "main", "script", "macOSNP.scpt").replace("app.asar","app.asar.unpacked")
|
||||
|
||||
const stdout = execSync(`osascript ${dir}`).toString()
|
||||
const title = stdout.substring(0, stdout.length - 100).match(/"(.+)?"/)[1].replace('\"','"')
|
||||
const ret = {
|
||||
title: title,
|
||||
anynp: true
|
||||
}
|
||||
e.sender.webContents.send('itunes-np', ret)
|
||||
} else {
|
||||
var platform = process.platform
|
||||
var bit = process.arch
|
||||
if (platform == 'darwin') {
|
||||
|
||||
try {
|
||||
const nowplaying = require('itunes-nowplaying-mac')
|
||||
let value = await nowplaying()
|
||||
@@ -27,8 +38,6 @@ function np(mainWindow) {
|
||||
console.error(error)
|
||||
e.sender.webContents.send('itunes-np', error)
|
||||
}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
BIN
app/main/script/macOSNP.applescript
Normal file
BIN
app/main/script/macOSNP.applescript
Normal file
Binary file not shown.
BIN
app/main/script/macOSNP.scpt
Normal file
BIN
app/main/script/macOSNP.scpt
Normal file
Binary file not shown.
@@ -188,8 +188,8 @@ function system(mainWindow, dir, lang, dirname) {
|
||||
})
|
||||
function mems() {
|
||||
var mem = os.totalmem() - os.freemem()
|
||||
if (mainWindow) {
|
||||
event.webContents.send('memory', [mem, os.cpus()[0].model, os.totalmem()])
|
||||
if (mainWindow && event.webContents) {
|
||||
event.webContents.send('memory', [mem, os.cpus()[0].model, os.totalmem(), os.cpus().length, os.uptime()])
|
||||
}
|
||||
}
|
||||
ipc.on('endmem', (e, arg) => {
|
||||
|
@@ -51,5 +51,9 @@
|
||||
"トゥートした後ボックスを閉じるとかそのままにしておくとかは、設定で変えられます。",
|
||||
"OpenStickerへの登録データ募集中",
|
||||
"Microsoft Store版のアップデートは向こうに止められてます",
|
||||
"いのちの輝き版ロゴ",
|
||||
"いのちの輝き版ロゴ",
|
||||
"いのちの輝き版ロゴ",
|
||||
"いのちの輝き版ロゴ",
|
||||
"いのちの輝き版ロゴ"
|
||||
]
|
||||
]
|
@@ -16,7 +16,7 @@
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
font-family: sans-serif;
|
||||
color: var(--color) !important;
|
||||
color: var(--text) !important;
|
||||
}
|
||||
|
||||
body {
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
textarea {
|
||||
-webkit-app-region: no-drag;
|
||||
color: var(--color) !important;
|
||||
color: var(--text) !important;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
|
@@ -1,23 +1,28 @@
|
||||
{
|
||||
"name": "thedesk",
|
||||
"version": "21.1.0",
|
||||
"codename": "Mayu",
|
||||
"version": "22.1.0",
|
||||
"codename": "Koume",
|
||||
"description": "TheDesk is a Mastodon client for PC.",
|
||||
"repository": "https://github.com/cutls/TheDesk",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"construct": "cd view/make && node make --automatic && cd ../../",
|
||||
"construct": "cd view/make && node make --automatic && cd ../../ && browserify aiscript.js -o js/platform/aiscript.js",
|
||||
"construct:store": "cd view/make && node make --automatic --store && cd ../../ && browserify aiscript.js -o js/platform/aiscript.js",
|
||||
"dev": "npx electron ./ --dev",
|
||||
"dist": "build --linux snap",
|
||||
"watchview": "node view/make/make.js --automatic --watch",
|
||||
"build:js": "node build.js",
|
||||
"build": "node view/make/make.js --automatic && npx electron-builder",
|
||||
"build:all": "npx electron-builder --win --linux",
|
||||
"build:win": "npx electron-builder --win",
|
||||
"build:pwa": "node view/make/make.js --automatic --pwa",
|
||||
"lint:fix": "eslint js --fix" ,
|
||||
"lint": "eslint js"
|
||||
"build:win:web": "node view/make/make.js --automatic && npx electron-builder --win",
|
||||
"build:win:msstore": "node view/make/make.js --automatic --store && npx electron-builder --win appx",
|
||||
"build:linux:web": "node view/make/make.js --automatic && npx electron-builder --linux",
|
||||
"build:linux:snapstore": "node view/make/make.js --automatic --store && npx electron-builder --linux",
|
||||
"build:mac:web": "node view/make/make.js --automatic && npx electron-builder --mac",
|
||||
"build:mac:homebrew": "node view/make/make.js --automatic --store && npx electron-builder --mac",
|
||||
"lint:fix": "eslint js --fix",
|
||||
"lint": "eslint js"
|
||||
},
|
||||
"keywords": [
|
||||
"mastodon",
|
||||
@@ -54,36 +59,39 @@
|
||||
],
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.14.0",
|
||||
"custom-electron-titlebar": "^3.2.3",
|
||||
"electron-dl": "^3.0.1",
|
||||
"jimp": "^0.14.0",
|
||||
"@fortawesome/fontawesome-free": "^5.15.2",
|
||||
"@syuilo/aiscript": "^0.11.1",
|
||||
"electron-dl": "^3.0.2",
|
||||
"jimp": "^0.16.1",
|
||||
"jquery": "^3.5.1",
|
||||
"jquery-ui-dist": "^1.12.1",
|
||||
"json5": "^2.1.3",
|
||||
"lodash": "^4.17.19",
|
||||
"json5": "^2.2.0",
|
||||
"lodash": "^4.17.20",
|
||||
"materialize-css": "git://github.com/cutls/materialize#v1-dev",
|
||||
"sanitize-html": "^2.3.2",
|
||||
"sumchecker": "^3.0.1",
|
||||
"sweetalert2": "^9.17.0",
|
||||
"sweetalert2": "^10.14.0",
|
||||
"system-font-families": "^0.4.1",
|
||||
"vue": "^2.6.11"
|
||||
"vue": "^2.6.12"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"itunes-nowplaying-mac": "0.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"chokidar": "^3.4.1",
|
||||
"electron": "^9.1.1",
|
||||
"electron-builder": "^22.7.0",
|
||||
"electron-rebuild": "^1.11.0",
|
||||
"eslint": "^7.6.0",
|
||||
"browserify": "^17.0.0",
|
||||
"chokidar": "^3.5.1",
|
||||
"electron": "^10.1.5",
|
||||
"electron-builder": "^22.9.1",
|
||||
"electron-rebuild": "^2.3.2",
|
||||
"eslint": "^7.13.0",
|
||||
"readline-sync": "1.4.10"
|
||||
},
|
||||
"build": {
|
||||
"productName": "TheDesk",
|
||||
"appId": "top.thedesk",
|
||||
"asarUnpack": [
|
||||
"node_modules/itunes-nowplaying-mac"
|
||||
"node_modules/itunes-nowplaying-mac",
|
||||
"main/script"
|
||||
],
|
||||
"directories": {
|
||||
"output": "../build"
|
||||
@@ -92,8 +100,8 @@
|
||||
"icon": "build/thedesk.ico",
|
||||
"target": [
|
||||
"nsis",
|
||||
"portable",
|
||||
"appx"
|
||||
"appx",
|
||||
"portable"
|
||||
]
|
||||
},
|
||||
"appx": {
|
||||
@@ -115,6 +123,7 @@
|
||||
"icon": "build/icons",
|
||||
"target": [
|
||||
"zip",
|
||||
"appImage",
|
||||
"snap",
|
||||
"deb"
|
||||
],
|
||||
|
BIN
app/source/bubble.wav
Normal file
BIN
app/source/bubble.wav
Normal file
Binary file not shown.
27
app/source/themes/black.thedesktheme
Normal file
27
app/source/themes/black.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Black',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'dark',
|
||||
primary: {
|
||||
background: '#212121',
|
||||
subcolor: '#424242',
|
||||
text: '#fff',
|
||||
accent: '#004d40',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#000',
|
||||
modalFooter: '#212121',
|
||||
third: '#212121',
|
||||
forth: '#333333',
|
||||
bottom: '#424242',
|
||||
emphasized: '#4e342e',
|
||||
postbox: '#424242',
|
||||
active: '#3f51b5',
|
||||
selected: '#3f3f3f',
|
||||
selectedWithShared: '#003a30',
|
||||
},
|
||||
id: 'black',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/blue.thedesktheme
Normal file
27
app/source/themes/blue.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Blue',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'light',
|
||||
primary: {
|
||||
background: '#c9e1ec',
|
||||
subcolor: '#dff1ff',
|
||||
text: '#000',
|
||||
accent: '#e0ffe4',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#b2ebf2',
|
||||
modalFooter: '#2196f3',
|
||||
third: '#90caf9',
|
||||
forth: '#90caf9',
|
||||
bottom: '#b6e6f5',
|
||||
emphasized: '#c5e1a5',
|
||||
postbox: '#dff1ff',
|
||||
active: '#2f7bb7',
|
||||
selected: '#9dcade',
|
||||
selectedWithShared: '#c1dac4',
|
||||
},
|
||||
id: 'blue',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/brown.thedesktheme
Normal file
27
app/source/themes/brown.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Brown',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'dark',
|
||||
primary: {
|
||||
background: '#261411',
|
||||
subcolor: '#4e342e',
|
||||
text: '#fff',
|
||||
accent: '#004d40',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#261411',
|
||||
modalFooter: '#261411',
|
||||
third: '#4e342e',
|
||||
forth: '#4e342e',
|
||||
bottom: '#4e342e',
|
||||
emphasized: '#0d47a1',
|
||||
postbox: '#4e342e',
|
||||
active: '#827717',
|
||||
selected: '#6d352b',
|
||||
selectedWithShared: '#003a30',
|
||||
},
|
||||
id: 'brown',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/green.thedesktheme
Normal file
27
app/source/themes/green.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Green',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'light',
|
||||
primary: {
|
||||
background: '#c8e6c9',
|
||||
subcolor: '#a5d6a7',
|
||||
text: '#000',
|
||||
accent: '#ffcc80',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#81c784',
|
||||
modalFooter: '#81c784',
|
||||
third: '#a5d6a7',
|
||||
forth: '#81c784',
|
||||
bottom: '#c5e1a5',
|
||||
emphasized: '#9e9d24',
|
||||
postbox: '#a5d6a7',
|
||||
active: '#33691e',
|
||||
selected: '#78c17a',
|
||||
selectedWithShared: '#caa266',
|
||||
},
|
||||
id: 'green',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/indigo.thedesktheme
Normal file
27
app/source/themes/indigo.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Indigo',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'dark',
|
||||
primary: {
|
||||
background: '#031833',
|
||||
subcolor: '#1a237e',
|
||||
text: '#fff',
|
||||
accent: '#004d40',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#0d1351',
|
||||
modalFooter: '#031833',
|
||||
third: '#0d1351',
|
||||
forth: '#0d47a1',
|
||||
bottom: '#0d1351',
|
||||
emphasized: '#4e342e',
|
||||
postbox: '#1a237e',
|
||||
active: '#00acc1',
|
||||
selected: '#214f8a',
|
||||
selectedWithShared: '#003a30',
|
||||
},
|
||||
id: 'indigo',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/polar.thedesktheme
Normal file
27
app/source/themes/polar.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Polar Night',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'dark',
|
||||
primary: {
|
||||
background: '#2e3440',
|
||||
subcolor: '#434c5e',
|
||||
text: '#ffffff',
|
||||
accent: '#2d3b58',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#3b4252',
|
||||
modalFooter: '#485166',
|
||||
third: '#434c5e',
|
||||
forth: '#4c566a',
|
||||
bottom: '#3b4252',
|
||||
emphasized: '#2f4b86',
|
||||
postbox: '#434c5e',
|
||||
active: '#2f4b86',
|
||||
selected: '#464f61',
|
||||
selectedWithShared: '#3e527e',
|
||||
},
|
||||
id: 'polar',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/snow.thedesktheme
Normal file
27
app/source/themes/snow.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Snow Storm',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'light',
|
||||
primary: {
|
||||
background: '#eceff4',
|
||||
subcolor: '#d8dee9',
|
||||
text: '#36425a',
|
||||
accent: '#c3d4e6',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#e5e9f0',
|
||||
modalFooter: '#b2bed4',
|
||||
third: '#d8dee9',
|
||||
forth: '#4c566a',
|
||||
bottom: '#eeeeee',
|
||||
emphasized: '#88c0d0',
|
||||
postbox: '#d8dee9',
|
||||
active: '#81a1c1',
|
||||
selected: '#b4bdd0',
|
||||
selectedWithShared: '#a3afbb',
|
||||
},
|
||||
id: 'snow',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/white.thedesktheme
Normal file
27
app/source/themes/white.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'White',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'light',
|
||||
primary: {
|
||||
background: '#fff',
|
||||
subcolor: '#fff',
|
||||
text: '#000',
|
||||
accent: '#cfd8dc',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#fff',
|
||||
modalFooter: '#fafafa',
|
||||
third: '#e0e0e0',
|
||||
forth: '#fff',
|
||||
bottom: '#eeeeee',
|
||||
emphasized: '#81c784',
|
||||
postbox: '#fff',
|
||||
active: '#009688',
|
||||
selected: '#c0c0c0',
|
||||
selectedWithShared: '#b2babd',
|
||||
},
|
||||
id: 'white',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
@@ -1,154 +1,133 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="@@lang@@">
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||
<link
|
||||
href="../../@@node_base@@/materialize-css/dist/css/materialize.css"
|
||||
type="text/css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet" />
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||
<link
|
||||
href="../../@@node_base@@/@fortawesome/fontawesome-free/css/all.min.css"
|
||||
type="text/css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
|
||||
<meta charset="utf-8" />
|
||||
@@comment-start@@
|
||||
<script type="text/javascript">
|
||||
var _jipt = []
|
||||
_jipt.push(['project', 'thedesk'])
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
@@comment-end@@
|
||||
@@pwa@@
|
||||
</head>
|
||||
|
||||
<body id="mainView" class="@@pwaClass@@">
|
||||
<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="../../@@node_base@@/materialize-css/dist/js/materialize.js"
|
||||
></script>
|
||||
<script type="text/javascript" src="main.js"></script>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="../../@@node_base@@/sweetalert2/dist/sweetalert2.all.min.js"
|
||||
></script>
|
||||
<script>
|
||||
var misskeytoken = false
|
||||
</script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<div class="hide-first">
|
||||
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"
|
||||
>@@back@@</a
|
||||
><br />
|
||||
<h5>@@list@@</h5>
|
||||
<div id="acct-list"></div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
<div class="hide-second">
|
||||
<a href="setting.html">@@haveExported@@</a>
|
||||
</div>
|
||||
<div>
|
||||
<h5>@@add@@</h5>
|
||||
<br />
|
||||
<div id="add">
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
@@addAcct@@<br />
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp" />
|
||||
<div id="ins-suggest"></div>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br />
|
||||
<div class="pwa">
|
||||
@@codesetupwarn@@<br />
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>@@codesetup@@</span>
|
||||
</label>
|
||||
<br />
|
||||
</div>
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../@@node_base@@/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" />
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||
<link href="../../@@node_base@@/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
|
||||
<meta charset="utf-8" />
|
||||
@@comment-start@@
|
||||
<script type="text/javascript">
|
||||
var _jipt = []
|
||||
_jipt.push(['project', 'thedesk'])
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
@@comment-end@@
|
||||
@@pwa@@ @@store@@
|
||||
</head>
|
||||
|
||||
<body id="mainView" class="@@pwaClass@@">
|
||||
<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="../../@@node_base@@/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="main.js"></script>
|
||||
<script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||
<script>
|
||||
var misskeytoken = false
|
||||
</script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<div class="hide-first">
|
||||
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">@@back@@</a><br />
|
||||
<h5>@@list@@</h5>
|
||||
<div id="acct-list"></div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
<div class="hide-second">
|
||||
<a href="setting.html">@@haveExported@@</a>
|
||||
</div>
|
||||
<div>
|
||||
<h5>@@add@@</h5>
|
||||
<br />
|
||||
<div id="add">
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
@@addAcct@@<br />
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp" />
|
||||
<div id="ins-suggest"></div>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br />
|
||||
<div class="pwa">
|
||||
@@codesetupwarn@@<br />
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>@@thisismisskey@@</span> </label
|
||||
><br />
|
||||
</div>
|
||||
<div class="col s4 scr" aria-hidden="true">
|
||||
<span style="font-family:Open Sans;">Supports</span>
|
||||
<div id="support" class="collection transparent"></div>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<span>@@codesetup@@</span>
|
||||
</label>
|
||||
<br />
|
||||
</div>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<span>@@thisismisskey@@</span> </label><br />
|
||||
</div>
|
||||
<div class="col s4 scr" aria-hidden="true">
|
||||
<span style="font-family:Open Sans;">Supports</span>
|
||||
<div id="support" class="collection transparent"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="auth" style="display:none">
|
||||
@@codepastewarn@@<br />
|
||||
<input type="text" id="code" placeholder="@@codepaste@@" required />
|
||||
<button class="btn waves-effect" onclick="code()">Auth</button><br />
|
||||
<br />
|
||||
<a onclick="atSetup()" class="pointer">@@accessTokenSetup@@</a>
|
||||
<div id="compt" style="display:none" class="scr">
|
||||
<h5>ログイン前に必ずご確認ください</h5>
|
||||
<span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span
|
||||
>のため以下の機能がご利用いただけません。
|
||||
<span id="compt-warn" style="display:none"
|
||||
>また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span
|
||||
>
|
||||
<ul id="compt-list"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="misskeylogin" style="display:none">
|
||||
<h5>AppSecret</h5>
|
||||
@@misskeylogin@@<br />
|
||||
<input type="hidden" id="misskey-url" />
|
||||
<input type="text" id="misskey-key" placeholder="@@codepaste@@" required />
|
||||
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br />
|
||||
<br />
|
||||
<a onclick="atSetup('misskey')" class="pointer">@@accessTokenSetup@@</a>
|
||||
</div>
|
||||
<div id="auth" style="display:none">
|
||||
@@codepastewarn@@<br />
|
||||
<input type="text" id="code" placeholder="@@codepaste@@" required />
|
||||
<button class="btn waves-effect" onclick="code()">Auth</button><br />
|
||||
<br />
|
||||
<a onclick="atSetup()" class="pointer">@@accessTokenSetup@@</a>
|
||||
<div id="compt" style="display:none" class="scr">
|
||||
<h5>ログイン前に必ずご確認ください</h5>
|
||||
<span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span>のため以下の機能がご利用いただけません。
|
||||
<span id="compt-warn"
|
||||
style="display:none">また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span>
|
||||
<ul id="compt-list"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide-first">
|
||||
<h5>@@mainacct@@</h5>
|
||||
<div class="input-field" style="width:300px">
|
||||
<span data-trans="your_acct">@@selacct@@</span>
|
||||
<br />
|
||||
<select
|
||||
id="main-acct-sel"
|
||||
class="acct-sel"
|
||||
style="color:black"
|
||||
onchange="mainacct()"
|
||||
></select>
|
||||
<label></label>
|
||||
</div>
|
||||
<ul id="domain-list" class="collection transparent"></ul>
|
||||
<div id="instance-data">
|
||||
Some instance data by
|
||||
<a href="https://instances.social" target="_blank">instances.social API</a><br />
|
||||
<h5 id="ins-title"></h5>
|
||||
Administered by:<a id="ins-admin"></a><br />
|
||||
<span id="ins-desc"></span><br />
|
||||
<img src="../../img/loading.svg" id="ins-prof" width="200" /><br />
|
||||
<br />
|
||||
@@domain@@:<span id="ins-name"></span><br />
|
||||
@@connect@@:<span id="ins-connect"></span>@@ko@@<br />
|
||||
@@toots@@:<span id="ins-toot"></span>@@ko@@<br />
|
||||
@@users@@:<span id="ins-user"></span>@@users@@<br />
|
||||
@@safety@@:<span id="ins-per"></span>%<br />
|
||||
@@ver@@:<span id="ins-ver"></span>@<span id="ins-upd"></span><br />
|
||||
</div>
|
||||
<div id="misskeylogin" style="display:none">
|
||||
<h5>AppSecret</h5>
|
||||
@@misskeylogin@@<br />
|
||||
<input type="hidden" id="misskey-url" />
|
||||
<input type="text" id="misskey-key" placeholder="@@codepaste@@" required />
|
||||
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br />
|
||||
<br />
|
||||
<a onclick="atSetup('misskey')" class="pointer">@@accessTokenSetup@@</a>
|
||||
</div>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/sha256.js"></script>
|
||||
<script type="text/javascript" src="../../@@node_base@@/lodash/lodash.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
||||
<script>$('body').addClass(localStorage.getItem('platform'))</script>
|
||||
</body>
|
||||
</html>
|
||||
</div>
|
||||
<div class="hide-first">
|
||||
<h5>@@mainacct@@</h5>
|
||||
<div class="input-field" style="width:300px">
|
||||
<span data-trans="your_acct">@@selacct@@</span>
|
||||
<br />
|
||||
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
|
||||
<label></label>
|
||||
</div>
|
||||
<ul id="domain-list" class="collection transparent"></ul>
|
||||
<div id="instance-data">
|
||||
Some instance data by
|
||||
<a href="https://instances.social" target="_blank">instances.social API</a><br />
|
||||
<h5 id="ins-title"></h5>
|
||||
Administered by:<a id="ins-admin"></a><br />
|
||||
<span id="ins-desc"></span><br />
|
||||
<img src="../../img/loading.svg" id="ins-prof" width="200" /><br />
|
||||
<br />
|
||||
@@domain@@:<span id="ins-name"></span><br />
|
||||
@@connect@@:<span id="ins-connect"></span>@@ko@@<br />
|
||||
@@toots@@:<span id="ins-toot"></span>@@ko@@<br />
|
||||
@@users@@:<span id="ins-user"></span>@@users@@<br />
|
||||
@@safety@@:<span id="ins-per"></span>%<br />
|
||||
@@ver@@:<span id="ins-ver"></span>@<span id="ins-upd"></span><br />
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/sha256.js"></script>
|
||||
<script type="text/javascript" src="../../@@node_base@@/lodash/lodash.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
||||
<script>$('body').addClass(localStorage.getItem('platform'))</script>
|
||||
</body>
|
||||
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Drag here to upload",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Close",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Poll",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
@@ -130,7 +133,7 @@
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).",
|
||||
"add": "Add",
|
||||
"search": "Search",
|
||||
"sortSet": "Sort",
|
||||
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.",
|
||||
"lang_manager_logout": "Logout",
|
||||
"lang_manager_maxChars": "Max chars of toots",
|
||||
"lang_manager_refreshAt": "Login with this domain",
|
||||
"lang_bbmd_misskey": "TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
|
||||
"lang_emoji_get": "Get emojis",
|
||||
"lang_emoji_custom": "Custom emojis",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "Continue to post",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "It will take a miunte to favourite a remote toot.",
|
||||
"lang_status_btWarn": "It will take a miunte to boost a remote toot.",
|
||||
"lang_status_follow": "Follow",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Delete this",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
@@ -131,13 +136,17 @@
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_reconnect": "Reload",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
@@ -145,6 +154,7 @@
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_layout_tagManager": "Tag timeline manager",
|
||||
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||
"lang_layout_resetWidth": "Stretch this column",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
@@ -222,6 +232,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Notification test",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimum width of TweetDeck browser",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Font",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -43,26 +44,31 @@
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
"customShare": "Share this code with other TheDesk. Do not share this code with MiAS.",
|
||||
"customImport": "Import of custom themes",
|
||||
"delete": "Delete",
|
||||
"cImpWarn": "Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Timeline Preferences",
|
||||
"timemode": "Time format",
|
||||
"relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"",
|
||||
@@ -101,8 +107,8 @@
|
||||
"or": "or",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://github.com/MiyonMiyon/InstanceTicker_List\">About #InstanceTicker</a> (c)2018-2020 MiyonMiyon. Released under the MIT License.",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show the instance name and favicon of tooters <a href=\"https://opensticker.0px.io\">About OpenSticker</a>",
|
||||
"animation": "Animation of timelines",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
@@ -136,6 +142,10 @@
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -150,6 +160,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Drag here to upload",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Close",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Poll",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
@@ -130,7 +133,7 @@
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).",
|
||||
"add": "Add",
|
||||
"search": "Search",
|
||||
"sortSet": "Sort",
|
||||
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.",
|
||||
"lang_manager_logout": "Logout",
|
||||
"lang_manager_maxChars": "Max chars of toots",
|
||||
"lang_manager_refreshAt": "Login with this domain",
|
||||
"lang_bbmd_misskey": "TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
|
||||
"lang_emoji_get": "Get emojis",
|
||||
"lang_emoji_custom": "Custom emojis",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "Continue to post",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "It will take a miunte to favourite a remote toot.",
|
||||
"lang_status_btWarn": "It will take a miunte to boost a remote toot.",
|
||||
"lang_status_follow": "Follow",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Delete this",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
@@ -131,13 +136,17 @@
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_reconnect": "Reload",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
@@ -145,6 +154,7 @@
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_layout_tagManager": "Tag timeline manager",
|
||||
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||
"lang_layout_resetWidth": "Stretch this column",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
@@ -222,6 +232,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Notification test",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimum width of TweetDeck browser",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Font",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -43,26 +44,31 @@
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
"customShare": "Share this code with other TheDesk. Do not share this code with MiAS.",
|
||||
"customImport": "Import of custom themes",
|
||||
"delete": "Delete",
|
||||
"cImpWarn": "Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Timeline Preferences",
|
||||
"timemode": "Time format",
|
||||
"relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"",
|
||||
@@ -101,8 +107,8 @@
|
||||
"or": "or",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://github.com/MiyonMiyon/InstanceTicker_List\">About #InstanceTicker</a> (c)2018-2020 MiyonMiyon. Released under the MIT License.",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show the instance name and favicon of tooters <a href=\"https://opensticker.0px.io\">About OpenSticker</a>",
|
||||
"animation": "Animation of timelines",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
@@ -136,6 +142,10 @@
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -150,6 +160,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Плъзнете тук за да качите",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Затвори",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Емоти с инструменти",
|
||||
"symbolEmoji": "Емоти със символи",
|
||||
"flagsEmoji": "Емоти с флагове",
|
||||
"draft": "Draft",
|
||||
"poll": "Анкета",
|
||||
"pollDdisabled": "Анкети: Деактивирани",
|
||||
"pollProvider": "Доставчик на Анкета",
|
||||
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "Отворете DevCenter на Misskey. Ние показваме официални документи, на които се позоваваме.",
|
||||
"lang_manager_logout": "Излизане",
|
||||
"lang_manager_maxChars": "Max chars of toots",
|
||||
"lang_manager_refreshAt": "Login with this domain",
|
||||
"lang_bbmd_misskey": "TheDesk разглежда \"@\" като отговор, но поставя друг параметър. Ако не е включено в Mastodon това означава, че е в Home на Misskey.",
|
||||
"lang_emoji_get": "Вземи емотикони",
|
||||
"lang_emoji_custom": "Персонализирани емотикони",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "Продължете към публикуването",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "Ще отнеме минута раздумката отдалечено да стане любима.",
|
||||
"lang_status_btWarn": "Ще отнеме минута раздумката отдалечено да бъде подсилена.",
|
||||
"lang_status_follow": "Следване",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Функция в профила",
|
||||
"lang_status_followers": "Последователи",
|
||||
"lang_status_active": "Последно състояние",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Изтрийте тази раздумка",
|
||||
"lang_suggest_nodata": "Моля, вземете списък с емотикони за да покажете състояние.",
|
||||
"lang_usetxtbox_reply": "Режим на отговор. Ctrl+Shift+C за изчистване.",
|
||||
"lang_cards_check": " проверка",
|
||||
@@ -136,7 +141,11 @@
|
||||
"lang_layout_nodata": "[Няма данни]<br>F5/⌘+R за презареждане",
|
||||
"lang_layout_dm": "Директни съобщения",
|
||||
"lang_layout_webviewmode": "Предпочитания за WebView",
|
||||
"lang_excluded": "Изключване на вид уведомление",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Показване в BT режим (ИЗКЛ./Изключване BT/ Само в BT)",
|
||||
"lang_layout_leftFold": "Стъпка наляво",
|
||||
"lang_layout_leftUnfold": "Док отдясно",
|
||||
@@ -145,6 +154,7 @@
|
||||
"lang_layout_unread": "Непрочетени",
|
||||
"lang_layout_tagManager": "Мениджър на таговете на времевата линия",
|
||||
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||
"lang_layout_resetWidth": "Stretch this column",
|
||||
"lang_sort_gothis": "Отидете в тази колона",
|
||||
"lang_sort_remthis": "Премахване на тази колона",
|
||||
"lang_spotify_img": "Добавете към албум произведенията на изкуството",
|
||||
@@ -222,6 +232,7 @@
|
||||
"lang_parse_html": "Показване на вграденият HTML код",
|
||||
"lang_parse_notffilter": "Показване на известията от този потребител",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Повторно публикуване",
|
||||
"lang_misskeyparse_renoteqt": "Повторна бележка",
|
||||
"lang_misskeyparse_reaction": "Реакция",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " реагирали на следващата ви публикация.",
|
||||
"lang_setting_time": "Времеви формат:{{set}}",
|
||||
"lang_setting_theme": "Тема:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Вътрешно уведомяване",
|
||||
"nnwarn": "Това не работи в Windows Portable вер.",
|
||||
"nntest": "Тест за уведомяване",
|
||||
"minwidth": "Минимална ширина на колоните",
|
||||
"minwidthwarn": "Лентата за превъртане ще се покаже, когато размерът на прозореца е по-голям от размера на колони.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Минимална ширина на браузъра TweetDeck",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "над",
|
||||
"font": "Шрифт",
|
||||
"fontwarn": "Изберете любимия си шрифт с „Избор“ (само за Windows / macOS)",
|
||||
@@ -45,24 +46,29 @@
|
||||
"themeSel": "Изберете тема",
|
||||
"customtheme": "Редактирайте и добавете персонализирани теми",
|
||||
"customthemeDirection": "Цветова схема",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Цвят на фона",
|
||||
"secondarycolor": "Компоненти на фона",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Цвят на текста",
|
||||
"accent": "Фон на подсилването",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Добавяне на нов",
|
||||
"name": "Име",
|
||||
"desc": "Относно тази тема",
|
||||
"customShare": "Споделете този код с друг TheDesk. Не споделяйте този код с MiAS.",
|
||||
"customImport": "Импортиране на персонализирани теми",
|
||||
"delete": "Изтрий",
|
||||
"cImpWarn": "Вземете още теми от <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Предпочитания за времевата линия",
|
||||
"timemode": "Времеви формат",
|
||||
"relativetime": "Относителен формат: „преди 1 минута“, „преди 3 дни“",
|
||||
@@ -101,7 +107,7 @@
|
||||
"or": "или",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://cdn.weep.me/mastodon/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
"animation": "Анимация на времевата линия",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
@@ -136,6 +142,10 @@
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -150,6 +160,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "Можете да вмъкнете всякакви букви и емотикони само с 3 клавиша",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Drag here to upload",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Close",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Poll",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
@@ -130,7 +133,7 @@
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).",
|
||||
"add": "Add",
|
||||
"search": "Search",
|
||||
"sortSet": "Sort",
|
||||
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.",
|
||||
"lang_manager_logout": "Logout",
|
||||
"lang_manager_maxChars": "Max chars of toots",
|
||||
"lang_manager_refreshAt": "Login with this domain",
|
||||
"lang_bbmd_misskey": "TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
|
||||
"lang_emoji_get": "Get emojis",
|
||||
"lang_emoji_custom": "Custom emojis",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "Continue to post",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "It will take a miunte to favourite a remote toot.",
|
||||
"lang_status_btWarn": "It will take a miunte to boost a remote toot.",
|
||||
"lang_status_follow": "Follow",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Delete this",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
@@ -131,13 +136,17 @@
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_reconnect": "Reload",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
@@ -145,6 +154,7 @@
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_layout_tagManager": "Tag timeline manager",
|
||||
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||
"lang_layout_resetWidth": "Stretch this column",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
@@ -222,6 +232,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Notification test",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimum width of TweetDeck browser",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Font",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -43,26 +44,31 @@
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
"customShare": "Share this code with other TheDesk. Do not share this code with MiAS.",
|
||||
"customImport": "Import of custom themes",
|
||||
"delete": "Delete",
|
||||
"cImpWarn": "Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Timeline Preferences",
|
||||
"timemode": "Time format",
|
||||
"relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"",
|
||||
@@ -101,8 +107,8 @@
|
||||
"or": "or",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://github.com/MiyonMiyon/InstanceTicker_List\">About #InstanceTicker</a> (c)2018-2020 MiyonMiyon. Released under the MIT License.",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show the instance name and favicon of tooters <a href=\"https://opensticker.0px.io\">About OpenSticker</a>",
|
||||
"animation": "Animation of timelines",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
@@ -136,6 +142,10 @@
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -150,6 +160,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Přetáhněte sem pro nahrání",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Zavřít",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Anketa",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "Otevřené vývojářské centrum softwaru Misskey. Zobrazujeme také oficiální dokumentaci.",
|
||||
"lang_manager_logout": "Logout",
|
||||
"lang_manager_maxChars": "Max chars of toots",
|
||||
"lang_manager_refreshAt": "Login with this domain",
|
||||
"lang_bbmd_misskey": "TheDesk považuje „@“ za odpověď, ale vkládá ho do jiných parametrů. „Neuvedeno“ na Mastodonu znamená „Domů“ na Misskey.",
|
||||
"lang_emoji_get": "Získat emoji",
|
||||
"lang_emoji_custom": "Vlastní emoji",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "Pokračovat k přispívání",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "Oblíbení vzdáleného tootu bude chvíli trvat.",
|
||||
"lang_status_btWarn": "Boostnutí vzdáleného tootu bude chvíli trvat.",
|
||||
"lang_status_follow": "Sledovat",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Představit na profilu",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Smazat tento toot",
|
||||
"lang_suggest_nodata": "Pro zobrazení návrhu prosím získejte seznam emoji.",
|
||||
"lang_usetxtbox_reply": "Režim odpovězení. Pro vymazání stiskněte Ctrl+Shift+C.",
|
||||
"lang_cards_check": " kontrolovat",
|
||||
@@ -136,7 +141,11 @@
|
||||
"lang_layout_nodata": "[Žádná data]<br>Obnovte stránku klávesami F5/⌘+R",
|
||||
"lang_layout_dm": "Přímá zpráva",
|
||||
"lang_layout_webviewmode": "Preferovat WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
@@ -145,6 +154,7 @@
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_layout_tagManager": "Tag timeline manager",
|
||||
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||
"lang_layout_resetWidth": "Stretch this column",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
@@ -222,6 +232,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Znovusdílení",
|
||||
"lang_misskeyparse_renoteqt": "Renotování",
|
||||
"lang_misskeyparse_reaction": "Reakce",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " reagoval/a na váš následující příspěvek.",
|
||||
"lang_setting_time": "Časový formát: {{set}}",
|
||||
"lang_setting_theme": "Motiv: {{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Citlivý obsah: {{set}}",
|
||||
"lang_setting_cw": "Varování: {{set}}",
|
||||
"lang_setting_cwtext": "Výchozí text varování: {{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Odskoušet oznámení",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimální šířka TweetDeck prohlížeče",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Písmo",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -45,24 +46,29 @@
|
||||
"themeSel": "Vybrat motiv",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
"customShare": "Share this code with other TheDesk. Do not share this code with MiAS.",
|
||||
"customImport": "Import of custom themes",
|
||||
"delete": "Delete",
|
||||
"cImpWarn": "Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Timeline Preferences",
|
||||
"timemode": "Časový formát",
|
||||
"relativetime": "Relativní formát: „před 1 minutou“, „před 3 dny“",
|
||||
@@ -136,6 +142,10 @@
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -150,6 +160,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Drag here to upload",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Close",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Poll",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
@@ -130,7 +133,7 @@
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).",
|
||||
"add": "Add",
|
||||
"search": "Search",
|
||||
"sortSet": "Sort",
|
||||
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.",
|
||||
"lang_manager_logout": "Logout",
|
||||
"lang_manager_maxChars": "Max chars of toots",
|
||||
"lang_manager_refreshAt": "Login with this domain",
|
||||
"lang_bbmd_misskey": "TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
|
||||
"lang_emoji_get": "Get emojis",
|
||||
"lang_emoji_custom": "Custom emojis",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "Continue to post",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "It will take a miunte to favourite a remote toot.",
|
||||
"lang_status_btWarn": "It will take a miunte to boost a remote toot.",
|
||||
"lang_status_follow": "Follow",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Delete this",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
@@ -131,13 +136,17 @@
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_reconnect": "Reload",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
@@ -145,6 +154,7 @@
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_layout_tagManager": "Tag timeline manager",
|
||||
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||
"lang_layout_resetWidth": "Stretch this column",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
@@ -222,6 +232,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Notification test",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimum width of TweetDeck browser",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Font",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -43,26 +44,31 @@
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
"customShare": "Share this code with other TheDesk. Do not share this code with MiAS.",
|
||||
"customImport": "Import of custom themes",
|
||||
"delete": "Delete",
|
||||
"cImpWarn": "Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Timeline Preferences",
|
||||
"timemode": "Time format",
|
||||
"relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"",
|
||||
@@ -101,8 +107,8 @@
|
||||
"or": "or",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://github.com/MiyonMiyon/InstanceTicker_List\">About #InstanceTicker</a> (c)2018-2020 MiyonMiyon. Released under the MIT License.",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show the instance name and favicon of tooters <a href=\"https://opensticker.0px.io\">About OpenSticker</a>",
|
||||
"animation": "Animation of timelines",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
@@ -136,6 +142,10 @@
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -150,6 +160,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"list": "Accountliste",
|
||||
"list": "Konten",
|
||||
"back": "Zurück",
|
||||
"add": "Konto hinzufügen",
|
||||
"addAcct": "Fill the instance domain (like mastodon.social)",
|
||||
"addAcct": "Geben Sie die Instanz-Domain ein (wie mastodon.social)",
|
||||
"codesetupwarn": "Check if TheDesk is not working on Windows, you want to login Pleroma servers, you cannot login when it checked.",
|
||||
"codesetup": "Code-Setup",
|
||||
"mainacct": "Hauptkonto",
|
||||
@@ -17,9 +17,9 @@
|
||||
"safety": "Verbindung",
|
||||
"ver": "Mastodon Version",
|
||||
"ko": "",
|
||||
"thisismisskey": "Als Misskey anmelden",
|
||||
"thisismisskey": "Login als Misskey",
|
||||
"misskeylogin": "Lies die <a href=\"https://thedesk.top/how-to-misskey-login.html\">Doku (japanisch)</a> um dich bei Misskey einzuloggen.",
|
||||
"nodata": "Keine Daten",
|
||||
"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"
|
||||
"haveExported": "Haben Sie eine exportierte Datei von TheDesk, klicken Sie hier für die Einstellungen"
|
||||
}
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Zum Hochladen hier her ziehen",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Schließen",
|
||||
"webSrc": "Suche im Internet",
|
||||
"tsSrc": "Bei Tootsearch suchen",
|
||||
@@ -20,8 +22,8 @@
|
||||
"yes": "Ja",
|
||||
"temp": "Dateien anhängen",
|
||||
"nothing": "Keine",
|
||||
"stamp": "Stamp",
|
||||
"stampWarn": "Your acct(aa@bb.cc) is printed on the right-bottom of the uploaded image",
|
||||
"stamp": "Stempel",
|
||||
"stampWarn": "Ihr acct(aa@bb.cc) wird rechts unten des hochgeladenen Bildes gedruckt",
|
||||
"vis": "Status Privatsphäre anpassen",
|
||||
"cwtext": "Warntext",
|
||||
"selectVis": "Status Privatsphäre anpassen",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis vom Werkzeugen",
|
||||
"symbolEmoji": "Emojis von Symbolen",
|
||||
"flagsEmoji": "Emojis der Flaggen",
|
||||
"draft": "Entwurf",
|
||||
"poll": "Umfrage",
|
||||
"pollDdisabled": "Umfragen: Deaktiviert",
|
||||
"pollProvider": "Anbieter von Umfragen",
|
||||
@@ -75,7 +78,7 @@
|
||||
"toots": "Tröts",
|
||||
"follow": "Folgen",
|
||||
"follower": "Abonnenten",
|
||||
"utlColumn": "Show as a column",
|
||||
"utlColumn": "Als Spalte anzeigen",
|
||||
"timeline": "Verlauf",
|
||||
"operateOtherAcct": "Cross-Account",
|
||||
"list": "Liste",
|
||||
@@ -139,7 +142,7 @@
|
||||
"filterWord": "Filterwörter",
|
||||
"degree": "Kontexte filtern",
|
||||
"conver": "Gespräche",
|
||||
"prof": "Profiles",
|
||||
"prof": "Profile",
|
||||
"option": "Einstellungen",
|
||||
"matchWord": "Ganze Wörter",
|
||||
"warnMatchWord": "Schön für lateinische Sprachen",
|
||||
@@ -184,5 +187,5 @@
|
||||
"acctManDesc": "Fügen Sie weitere Konten hinzu und loggen Sie sie aus.",
|
||||
"settingDesc": "Hier sind sehr, sehr viele Einstellungen. Du könntest gar nicht alles ausprobieren!",
|
||||
"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": "Alle täglichen TheDesk und Mastodon-Einstellungen wie <b>hinzufügen und sortieren von Spalten</b>, <b>Liste und Filter prüfen</b>."
|
||||
}
|
@@ -48,7 +48,8 @@
|
||||
"lang_manager_none": "Ohne",
|
||||
"lang_manager_godev": "Öffnen Sie das DevCenter von Misskey. Wir zeigen auch ein offizielles Dokument als Referenz.",
|
||||
"lang_manager_logout": "Abmelden",
|
||||
"lang_manager_maxChars": "Max chars of toots",
|
||||
"lang_manager_maxChars": "Max Zeichen von toots",
|
||||
"lang_manager_refreshAt": "Mit dieser Domain anmelden",
|
||||
"lang_bbmd_misskey": "TheDesk betrachtet \"@\" als Antwort, setzt aber einen anderen Parameter. Nicht auf Mastodon gelistet bedeutet Home on Misskey.",
|
||||
"lang_emoji_get": "Hole Emojis",
|
||||
"lang_emoji_custom": "Eigene Emojis",
|
||||
@@ -70,7 +71,8 @@
|
||||
"lang_post_btn2": "Text automatisch ausblenden",
|
||||
"lang_post_btn3": "Weiter mit Senden",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_retry": "Erneut versuchen",
|
||||
"lang_post_offline": "Zu den Entwürfen wegen offline hinzufügen",
|
||||
"lang_status_favWarn": "Es braucht einen Moment, um ein entferntes Tröt zu favorisieren.",
|
||||
"lang_status_btWarn": "Es braucht einen Moment, um ein entferntes Tröt zu verstärken.",
|
||||
"lang_status_follow": "Folgen",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Auf dem Profil zeigen",
|
||||
"lang_status_followers": "Folgende",
|
||||
"lang_status_active": "Letzter Status",
|
||||
"lang_secure_draft": "Zum Entwurf hinzufügen",
|
||||
"lang_secure_useThis": "Benutze dies",
|
||||
"lang_secure_deleteThis": "Diesen Tröt löschen",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Antwortmodus. Strg+Umschalt+C zum Löschen.",
|
||||
"lang_cards_check": " überprüfen",
|
||||
@@ -136,15 +141,20 @@
|
||||
"lang_layout_nodata": "[Keine Daten]<br>F5/⌘+R zum Neu laden",
|
||||
"lang_layout_dm": "Direkte Nachricht",
|
||||
"lang_layout_webviewmode": "Web-Ansicht bevorzugen",
|
||||
"lang_excluded": "Ausgeschlossene Benachrichtigungsart",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Erwähnungen",
|
||||
"lang_layout_fav": "Favoriten",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Umfragen",
|
||||
"lang_layout_excludingbt": "BT-Modus anzeigen (aus/kein BT/Nur BT)",
|
||||
"lang_layout_leftFold": "Nach links Stapeln",
|
||||
"lang_layout_leftUnfold": "Rechts Anheften",
|
||||
"lang_layout_deleteColumn": "Diese Spalte löschen",
|
||||
"lang_layout_deleteColumnDesc": "Diese Spalte löschen",
|
||||
"lang_layout_unread": "ungelesen",
|
||||
"lang_layout_tagManager": "Tag timeline manager",
|
||||
"lang_layout_tagManager": "Tag-Zeitleiste Manager",
|
||||
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||
"lang_layout_resetWidth": "Diese Spalte strecken",
|
||||
"lang_sort_gothis": "Gehe zu dieser Spalte",
|
||||
"lang_sort_remthis": "Diese Spalte löschen",
|
||||
"lang_spotify_img": "Albumcover anhängen",
|
||||
@@ -161,12 +171,12 @@
|
||||
"lang_showontl_movebtn": "Auf dem neuen Konto fortfahren",
|
||||
"lang_showontl_botacct": "[bot]",
|
||||
"lang_showontl_followed": "Folgt dir",
|
||||
"lang_parse_request": "Follow request",
|
||||
"lang_parse_request": "Anfrage folgen",
|
||||
"lang_showontl_notf": "Benachrichtigung ",
|
||||
"lang_showontl_domain": "Domäne ",
|
||||
"lang_showontl_listwarn": "Folgen, um diesen Benutzer zu Listen hinzuzufügen.",
|
||||
"lang_showontl_verified": "This website is verified by owner at ",
|
||||
"lang_status_requesting": "Requesting",
|
||||
"lang_status_requesting": "Anfordern",
|
||||
"lang_parse_mentioned": " hat dir geantwortet",
|
||||
"lang_parse_faved": " favorisierte deinen Tröt",
|
||||
"lang_parse_bted": " hat deinen Tröt verstärkt",
|
||||
@@ -175,7 +185,7 @@
|
||||
"lang_parse_notftime": "Bearbeitet am",
|
||||
"lang_parse_cwshow": "Anzeigen",
|
||||
"lang_parse_cwshow_acc": "This is a post with content warning. click to show the whole content",
|
||||
"lang_parse_fulltext": "Full size text:",
|
||||
"lang_parse_fulltext": "Text in voller Größe:",
|
||||
"lang_parse_autofold": "Automatisches Zusammenfalten",
|
||||
"lang_parse_more": "Mehr",
|
||||
"lang_parse_url": "URL-Analyse",
|
||||
@@ -215,13 +225,14 @@
|
||||
"lang_parse_vote": "Abstimmen",
|
||||
"lang_parse_unvoted": "Ergebnis ohne Abstimmung anzeigen",
|
||||
"lang_parse_endedvote": "Abgelaufen",
|
||||
"lang_parse_people": "people",
|
||||
"lang_parse_people": "personen",
|
||||
"lang_parse_thread": "Konversation anzeigen",
|
||||
"lang_parse_unknown": "Angehängte Datei",
|
||||
"lang_parse_nsfw": "NSFW Medien",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_html": "Eingebettetes HTML anzeigen",
|
||||
"lang_parse_notffilter": "Benachrichtigungen dieses Benutzers anzeigen",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Weiterleiten",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaktion",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " hat auf Ihren folgenden Beitrag reagiert.",
|
||||
"lang_setting_time": "Zeitformat:{{set}}",
|
||||
"lang_setting_theme": "Design:{{set}}",
|
||||
"lang_setting_compat": "Kompatibel",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_cw": "NSFW:{{set}}",
|
||||
"lang_setting_cwtext": "Standard-NSFW-Text:{{set}}",
|
||||
|
@@ -13,56 +13,62 @@
|
||||
"setlang": "Sprachen",
|
||||
"backup": "Import und Export von Einstellungen",
|
||||
"backupWarn": "If you got a error when you choose the file, please paste the strings printed when you open the file and click import",
|
||||
"import": "Import",
|
||||
"export": "Export",
|
||||
"import": "Importieren",
|
||||
"export": "Exportieren",
|
||||
"hardwareAcceleration": "Hardwarebeschleunigung deaktivieren",
|
||||
"hardwareAccelerationWarn": "Automatischer Neustart",
|
||||
"theme": "Designs",
|
||||
"popup": "Popup-Benachrichtigung(unter Windows)",
|
||||
"popupwarn": "Bei \"0\" Ausgeschaltet.",
|
||||
"s": "Sek",
|
||||
"s": "Sekunden",
|
||||
"nativenotf": "System Benachrichtigungen",
|
||||
"nnwarn": "Dies funktioniert nicht mit der Portablen Windows Version.",
|
||||
"nntest": "Benachrichtigungen testen",
|
||||
"minwidth": "Minimale Breite der Spalten",
|
||||
"minwidthwarn": "Die Scroll-Leiste wird angezeigt, wenn Spalten breiter als das Fenster sind.",
|
||||
"width": "Spaltenbreite",
|
||||
"widthwarn": "Die Bildlaufleiste wird angezeigt, wenn die Fenstergröße größer als die Spaltenanzahl ist.",
|
||||
"fixwidth": "Minimale Breite des TweetDeck-Browsers",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Abstand zwischen Zeitleisten",
|
||||
"above": "über",
|
||||
"font": "Schriftart",
|
||||
"fontwarn": "Wählen Sie Ihre Lieblingsschrift. 'Select'(nur Windows/ macOS)",
|
||||
"fontsize": "Schriftgröße",
|
||||
"savefolder": "Ordner zum Speichern",
|
||||
"savefolderwarn": "TheDesk verwendet diesen Ordner, wenn es versucht Bilder zu speichern oder Screenshots zu machen.",
|
||||
"useragent": "User agent",
|
||||
"useragentWarn": "Restart when changed",
|
||||
"frame": "Window frame",
|
||||
"useragent": "User-Agent",
|
||||
"useragentWarn": "Neustart bei Änderung",
|
||||
"frame": "Fensterrahmen",
|
||||
"frameWarn": "If 'off', the window looks cool.",
|
||||
"downloadWin": "Versioning(o Windows downloader)",
|
||||
"absolute": "Absoluter Wert",
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrl": "Suchmaschine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Design auswählen",
|
||||
"customtheme": "Bearbeiten und hinzufügen von eigenen Designs",
|
||||
"customthemeDirection": "Farbschema",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Hintergrundfarbe",
|
||||
"secondarycolor": "Hintergrund der Komponenten",
|
||||
"advanced": "Erweiterte Einstellungen",
|
||||
"advancedWarn": "",
|
||||
"use": "Benutze dies",
|
||||
"copyFrom": "Kopieren von",
|
||||
"bg": "Hintergrundfarbe",
|
||||
"subcolor": "Vom Hintergrund unterscheidbar",
|
||||
"text": "Textfarbe",
|
||||
"accent": "Hintergrund des Boosts",
|
||||
"accent": "Hintergrund der Boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Neues hinzufügen",
|
||||
"name": "Name",
|
||||
"desc": "Über dieses Design",
|
||||
"customShare": "Teilen Sie diesen Code mit anderen TheDesk. Teilen Sie diesen Code nicht mit MiAS.",
|
||||
"customImport": "Import von eigenen Designs",
|
||||
"delete": "Löschen",
|
||||
"cImpWarn": "Mehr Designs auf: <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Verlaufseinstellungen",
|
||||
"timemode": "Zeitformat",
|
||||
"relativetime": "Relatives Format:\"vor 1 Minuten\",\"vor 3 Tagen\"",
|
||||
@@ -136,6 +142,10 @@
|
||||
"notqt": "Deaktiviert (Taste in Verlauf ausgeblendet)",
|
||||
"apiQuote": "API(nur einige Instanzen)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Standard-Konto für Aktionen",
|
||||
"mainwarn": "Das Hauptkonto kann in der Kontoverwaltung gestellt werden.",
|
||||
"lastacct": "Konto, das Sie kürzlich verwendet haben",
|
||||
@@ -150,6 +160,9 @@
|
||||
"keysc": "Tastaturkürzel Einstellungen",
|
||||
"iks": "Schnell Einfügen",
|
||||
"okswarn": "Sie können Buchstaben und Emojis mit 3-Tasten-Kombination einfügen",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Einstellungen für Stumm & Hervorheben",
|
||||
"climute": "Client Stumm",
|
||||
"cliemp": "Client Hervorheben",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Drag here to upload",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Close",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Poll",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
@@ -130,7 +133,7 @@
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).",
|
||||
"add": "Add",
|
||||
"search": "Search",
|
||||
"sortSet": "Sort",
|
||||
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.",
|
||||
"lang_manager_logout": "Logout",
|
||||
"lang_manager_maxChars": "Max chars of toots",
|
||||
"lang_manager_refreshAt": "Login with this domain",
|
||||
"lang_bbmd_misskey": "TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
|
||||
"lang_emoji_get": "Get emojis",
|
||||
"lang_emoji_custom": "Custom emojis",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "Continue to post",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "It will take a miunte to favourite a remote toot.",
|
||||
"lang_status_btWarn": "It will take a miunte to boost a remote toot.",
|
||||
"lang_status_follow": "Follow",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Delete this",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
@@ -131,13 +136,17 @@
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_reconnect": "Reload",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
@@ -145,6 +154,7 @@
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_layout_tagManager": "Tag timeline manager",
|
||||
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||
"lang_layout_resetWidth": "Stretch this column",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
@@ -222,6 +232,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Notification test",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimum width of TweetDeck browser",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Font",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -43,26 +44,31 @@
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
"customShare": "Share this code with other TheDesk. Do not share this code with MiAS.",
|
||||
"customImport": "Import of custom themes",
|
||||
"delete": "Delete",
|
||||
"cImpWarn": "Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Timeline Preferences",
|
||||
"timemode": "Time format",
|
||||
"relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"",
|
||||
@@ -101,8 +107,8 @@
|
||||
"or": "or",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://github.com/MiyonMiyon/InstanceTicker_List\">About #InstanceTicker</a> (c)2018-2020 MiyonMiyon. Released under the MIT License.",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show the instance name and favicon of tooters <a href=\"https://opensticker.0px.io\">About OpenSticker</a>",
|
||||
"animation": "Animation of timelines",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
@@ -136,6 +142,10 @@
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -150,6 +160,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "crwdns3058:0crwdne3058:0",
|
||||
"nowOffline": "crwdns4548:0crwdne4548:0",
|
||||
"reOnline": "crwdns4550:0crwdne4550:0",
|
||||
"close": "crwdns3060:0crwdne3060:0",
|
||||
"webSrc": "crwdns4451:0crwdne4451:0",
|
||||
"tsSrc": "crwdns4453:0crwdne4453:0",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "crwdns3140:0crwdne3140:0",
|
||||
"symbolEmoji": "crwdns3142:0crwdne3142:0",
|
||||
"flagsEmoji": "crwdns3144:0crwdne3144:0",
|
||||
"draft": "crwdns4540:0crwdne4540:0",
|
||||
"poll": "crwdns3146:0crwdne3146:0",
|
||||
"pollDdisabled": "crwdns3148:0crwdne3148:0",
|
||||
"pollProvider": "crwdns3150:0crwdne3150:0",
|
||||
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "crwdns3504:0crwdne3504:0",
|
||||
"lang_manager_logout": "crwdns3506:0crwdne3506:0",
|
||||
"lang_manager_maxChars": "crwdns4447:0crwdne4447:0",
|
||||
"lang_manager_refreshAt": "crwdns4570:0crwdne4570:0",
|
||||
"lang_bbmd_misskey": "crwdns3508:0crwdne3508:0",
|
||||
"lang_emoji_get": "crwdns3510:0crwdne3510:0",
|
||||
"lang_emoji_custom": "crwdns3512:0crwdne3512:0",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "crwdns3538:0crwdne3538:0",
|
||||
"lang_post_unfinishedMedia": "crwdns4480:0crwdne4480:0",
|
||||
"lang_post_retry": "crwdns4482:0crwdne4482:0",
|
||||
"lang_post_offline": "crwdns4552:0crwdne4552:0",
|
||||
"lang_status_favWarn": "crwdns3540:0crwdne3540:0",
|
||||
"lang_status_btWarn": "crwdns3542:0crwdne3542:0",
|
||||
"lang_status_follow": "crwdns3544:0crwdne3544:0",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "crwdns3566:0crwdne3566:0",
|
||||
"lang_status_followers": "crwdns3568:0crwdne3568:0",
|
||||
"lang_status_active": "crwdns3570:0crwdne3570:0",
|
||||
"lang_secure_draft": "crwdns4542:0crwdne4542:0",
|
||||
"lang_secure_useThis": "crwdns4544:0crwdne4544:0",
|
||||
"lang_secure_deleteThis": "crwdns4546:0crwdne4546:0",
|
||||
"lang_suggest_nodata": "crwdns3572:0crwdne3572:0",
|
||||
"lang_usetxtbox_reply": "crwdns3574:0crwdne3574:0",
|
||||
"lang_cards_check": "crwdns3576:0crwdne3576:0",
|
||||
@@ -136,7 +141,11 @@
|
||||
"lang_layout_nodata": "crwdns3656:0crwdne3656:0",
|
||||
"lang_layout_dm": "crwdns3658:0crwdne3658:0",
|
||||
"lang_layout_webviewmode": "crwdns3660:0crwdne3660:0",
|
||||
"lang_excluded": "crwdns3662:0crwdne3662:0",
|
||||
"lang_layout_excluded": "crwdns4508:0crwdne4508:0",
|
||||
"lang_layout_mention": "crwdns4510:0crwdne4510:0",
|
||||
"lang_layout_fav": "crwdns4512:0crwdne4512:0",
|
||||
"lang_layout_bt": "crwdns4514:0crwdne4514:0",
|
||||
"lang_layout_poll": "crwdns4516:0crwdne4516:0",
|
||||
"lang_layout_excludingbt": "crwdns3664:0crwdne3664:0",
|
||||
"lang_layout_leftFold": "crwdns3666:0crwdne3666:0",
|
||||
"lang_layout_leftUnfold": "crwdns3668:0crwdne3668:0",
|
||||
@@ -145,6 +154,7 @@
|
||||
"lang_layout_unread": "crwdns3674:0crwdne3674:0",
|
||||
"lang_layout_tagManager": "crwdns4411:0crwdne4411:0",
|
||||
"lang_layout_announ": "crwdns4449:0crwdne4449:0",
|
||||
"lang_layout_resetWidth": "crwdns4560:0crwdne4560:0",
|
||||
"lang_sort_gothis": "crwdns3676:0crwdne3676:0",
|
||||
"lang_sort_remthis": "crwdns3678:0crwdne3678:0",
|
||||
"lang_spotify_img": "crwdns3680:0crwdne3680:0",
|
||||
@@ -222,6 +232,7 @@
|
||||
"lang_parse_html": "crwdns4388:0crwdne4388:0",
|
||||
"lang_parse_notffilter": "crwdns3802:0crwdne3802:0",
|
||||
"lang_parse_hidden": "crwdns4498:0crwdne4498:0",
|
||||
"lang_parse_disconnected": "crwdns4538:0crwdne4538:0",
|
||||
"lang_misskeyparse_renote": "crwdns3804:0crwdne3804:0",
|
||||
"lang_misskeyparse_renoteqt": "crwdns3806:0crwdne3806:0",
|
||||
"lang_misskeyparse_reaction": "crwdns3808:0crwdne3808:0",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": "crwdns3826:0crwdne3826:0",
|
||||
"lang_setting_time": "crwdns3828:0{{set}}crwdne3828:0",
|
||||
"lang_setting_theme": "crwdns3830:0{{set}}crwdne3830:0",
|
||||
"lang_setting_compat": "crwdns4518:0crwdne4518:0",
|
||||
"lang_setting_nsfw": "crwdns3832:0{{set}}crwdne3832:0",
|
||||
"lang_setting_cw": "crwdns3834:0{{set}}crwdne3834:0",
|
||||
"lang_setting_cwtext": "crwdns3836:0{{set}}crwdne3836:0",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "crwdns3946:0crwdne3946:0",
|
||||
"nnwarn": "crwdns3948:0crwdne3948:0",
|
||||
"nntest": "crwdns3950:0crwdne3950:0",
|
||||
"minwidth": "crwdns3952:0crwdne3952:0",
|
||||
"minwidthwarn": "crwdns3954:0crwdne3954:0",
|
||||
"width": "crwdns4502:0crwdne4502:0",
|
||||
"widthwarn": "crwdns4504:0crwdne4504:0",
|
||||
"fixwidth": "crwdns3956:0crwdne3956:0",
|
||||
"fixwidthwarn": "crwdns3958:0crwdne3958:0",
|
||||
"margin": "crwdns4506:0crwdne4506:0",
|
||||
"above": "crwdns3960:0crwdne3960:0",
|
||||
"font": "crwdns3962:0crwdne3962:0",
|
||||
"fontwarn": "crwdns4360:0crwdne4360:0",
|
||||
@@ -47,22 +48,27 @@
|
||||
"customthemeDirection": "crwdns3978:0crwdne3978:0",
|
||||
"advanced": "crwdns4326:0crwdne4326:0",
|
||||
"advancedWarn": "crwdns4328:0crwdne4328:0",
|
||||
"active": "crwdns4330:0crwdne4330:0",
|
||||
"modal": "crwdns4332:0crwdne4332:0",
|
||||
"bottom": "crwdns4334:0crwdne4334:0",
|
||||
"postbox": "crwdns4336:0crwdne4336:0",
|
||||
"use": "crwdns4520:0crwdne4520:0",
|
||||
"copyFrom": "crwdns4522:0crwdne4522:0",
|
||||
"bg": "crwdns4524:0crwdne4524:0",
|
||||
"subcolor": "crwdns4338:0crwdne4338:0",
|
||||
"primary": "crwdns3980:0crwdne3980:0",
|
||||
"secondarycolor": "crwdns3982:0crwdne3982:0",
|
||||
"text": "crwdns3984:0crwdne3984:0",
|
||||
"accent": "crwdns3986:0crwdne3986:0",
|
||||
"modal": "crwdns4332:0crwdne4332:0",
|
||||
"modalFooter": "crwdns4526:0crwdne4526:0",
|
||||
"thirdColor": "crwdns4528:0crwdne4528:0",
|
||||
"forthColor": "crwdns4530:0crwdne4530:0",
|
||||
"bottom": "crwdns4334:0crwdne4334:0",
|
||||
"emphasized": "crwdns4532:0crwdne4532:0",
|
||||
"postbox": "crwdns4336:0crwdne4336:0",
|
||||
"active": "crwdns4330:0crwdne4330:0",
|
||||
"selected": "crwdns4534:0crwdne4534:0",
|
||||
"selectedWithShare": "crwdns4536:0crwdne4536:0",
|
||||
"add_new": "crwdns3988:0crwdne3988:0",
|
||||
"name": "crwdns3990:0crwdne3990:0",
|
||||
"desc": "crwdns3992:0crwdne3992:0",
|
||||
"customShare": "crwdns3994:0crwdne3994:0",
|
||||
"customImport": "crwdns3996:0crwdne3996:0",
|
||||
"delete": "crwdns3998:0crwdne3998:0",
|
||||
"cImpWarn": "crwdns4000:0crwdne4000:0",
|
||||
"timeline": "crwdns4002:0crwdne4002:0",
|
||||
"timemode": "crwdns4004:0crwdne4004:0",
|
||||
"relativetime": "crwdns4006:0crwdne4006:0",
|
||||
@@ -136,6 +142,10 @@
|
||||
"notqt": "crwdns4138:0crwdne4138:0",
|
||||
"apiQuote": "crwdns4140:0crwdne4140:0",
|
||||
"showBookmarkAction": "crwdns4404:0crwdne4404:0",
|
||||
"scrollBar": "crwdns4562:0crwdne4562:0",
|
||||
"thin": "crwdns4564:0crwdne4564:0",
|
||||
"normal": "crwdns4566:0crwdne4566:0",
|
||||
"thick": "crwdns4568:0crwdne4568:0",
|
||||
"main": "crwdns4142:0crwdne4142:0",
|
||||
"mainwarn": "crwdns4144:0crwdne4144:0",
|
||||
"lastacct": "crwdns4146:0crwdne4146:0",
|
||||
@@ -150,6 +160,9 @@
|
||||
"keysc": "crwdns4160:0crwdne4160:0",
|
||||
"iks": "crwdns4162:0crwdne4162:0",
|
||||
"okswarn": "crwdns4164:0crwdne4164:0",
|
||||
"plugin": "crwdns4554:0crwdne4554:0",
|
||||
"howToWritePlugin": "crwdns4556:0crwdne4556:0",
|
||||
"pluginList": "crwdns4558:0crwdne4558:0",
|
||||
"muteemp": "crwdns4166:0crwdne4166:0",
|
||||
"climute": "crwdns4168:0crwdne4168:0",
|
||||
"cliemp": "crwdns4170:0crwdne4170:0",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere":"Drag here to upload",
|
||||
"nowOffline":"OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline":"Now we are in the Internet, you should reload...",
|
||||
"close":"Close",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji":"Emojis of tools",
|
||||
"symbolEmoji":"Emojis of symbols",
|
||||
"flagsEmoji":"Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll":"Poll",
|
||||
"pollDdisabled":"Polls: Disabled",
|
||||
"pollProvider":"Provider of Poll",
|
||||
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.",
|
||||
"lang_manager_logout": "Logout",
|
||||
"lang_manager_maxChars": "Max chars of toots",
|
||||
"lang_manager_refreshAt": "Login with this domain",
|
||||
"lang_bbmd_misskey": "TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
|
||||
"lang_emoji_get": "Get emojis",
|
||||
"lang_emoji_custom": "Custom emojis",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "Continue to post",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "It will take a miunte to favourite a remote toot.",
|
||||
"lang_status_btWarn": "It will take a miunte to boost a remote toot.",
|
||||
"lang_status_follow": "Follow",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Delete this",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
@@ -131,13 +136,17 @@
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_reconnect": "Reload",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
@@ -145,6 +154,7 @@
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_layout_tagManager": "Tag timeline manager",
|
||||
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||
"lang_layout_resetWidth": "Stretch this column",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
@@ -222,6 +232,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -44,26 +44,31 @@
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced":"Advanced options(6 additional colors)",
|
||||
"advancedWarn":"Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom":"Background of bottom bar",
|
||||
"postbox":"Background of post box and menu",
|
||||
"subcolor":"Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced":"Advanced options",
|
||||
"advancedWarn":"",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor":"Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom":"Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox":"Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
"customShare": "Share this code with other TheDesk. Do not share this code with MiAS.",
|
||||
"customImport": "Import of custom themes",
|
||||
"delete": "Delete",
|
||||
"cImpWarn": "Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Timeline Preferences",
|
||||
"timemode": "Time format",
|
||||
"relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"",
|
||||
@@ -137,6 +142,10 @@
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -151,6 +160,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -2,7 +2,7 @@
|
||||
"list": "Lista de cuentas",
|
||||
"back": "Volver",
|
||||
"add": "Agregar una cuenta",
|
||||
"addAcct": "Fill the instance domain (like mastodon.social)",
|
||||
"addAcct": "Ingresá el dominio de la instancia (ej. mastodon.social)",
|
||||
"codesetupwarn": "No seleccionar para saltar el pegado de código (iniciá sesión de Mastodon en Windows o macOS) (Recomendado: pcheck)",
|
||||
"codesetup": "Configuración de código",
|
||||
"mainacct": "Establecer una cuenta",
|
||||
@@ -20,6 +20,6 @@
|
||||
"thisismisskey": "Iniciar sesión con Misskey",
|
||||
"misskeylogin": "Leé <a href=\"https://docs.thedesk.top/\">la documentación (en japonés)</a> para usar Misskey.",
|
||||
"nodata": "Sin datos",
|
||||
"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"
|
||||
"accessTokenSetup": "Usar token de acceso para iniciar sesión (hacer clic después de completar no el código sino el token de acceso en la casilla: Avanzado)",
|
||||
"haveExported": "Teniendo el archivo exportado de TheDesk, hacé clic acá para ir a la página de opciones"
|
||||
}
|
@@ -1,8 +1,10 @@
|
||||
{
|
||||
"draghere": "Arrastrá y soltá acá para subir",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Cerrar",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
"webSrc": "Buscar en la Web",
|
||||
"tsSrc": "Buscar en tootsearch",
|
||||
"showSelectProf": "Mostrar perfil de la cuenta seleccionada",
|
||||
"closethisbox": "Cerrar esta caja",
|
||||
"toot": "Tootear",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Herramientas",
|
||||
"symbolEmoji": "Símbolos",
|
||||
"flagsEmoji": "Banderas",
|
||||
"draft": "Draft",
|
||||
"poll": "Encuesta",
|
||||
"pollDdisabled": "Encuestas: deshabilitadas",
|
||||
"pollProvider": "Proveedor de encuesta",
|
||||
@@ -75,7 +78,7 @@
|
||||
"toots": "Toots",
|
||||
"follow": "Seguir",
|
||||
"follower": "Seguidor",
|
||||
"utlColumn": "Show as a column",
|
||||
"utlColumn": "Mostrar como columna",
|
||||
"timeline": "Línea temporal",
|
||||
"operateOtherAcct": "Cuenta cruzada",
|
||||
"list": "Enlistar",
|
||||
@@ -130,7 +133,7 @@
|
||||
"notf": "Notificaciones",
|
||||
"bookmark": "Marcadores",
|
||||
"showThisTL": "Mostrar esta línea temporal:",
|
||||
"webviewWarn": "TweetDeck con TJDeck personalizado (<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Código</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Los atajos de teclado te irritarán. Cuando lo sientas, revisá \"Preferir WebView\" en la parte superior de la columna.",
|
||||
"webviewWarn": "TweetDeck con TJDeck personalizado (<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Código</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Los atajos de teclado te irritarán. Cuando lo sientas, revisá 'Preferir WebView' en la parte superior de la columna.",
|
||||
"add": "Agregar",
|
||||
"search": "Buscar",
|
||||
"sortSet": "Ordenar",
|
||||
@@ -139,7 +142,7 @@
|
||||
"filterWord": "Palabras filtradas",
|
||||
"degree": "Filtrar contextos",
|
||||
"conver": "Conversaciones",
|
||||
"prof": "Profiles",
|
||||
"prof": "Perfiles",
|
||||
"option": "Configuración",
|
||||
"matchWord": "Palabra completa",
|
||||
"warnMatchWord": "Útil para lenguas romances",
|
||||
@@ -178,11 +181,11 @@
|
||||
"active": "Recientemente activo",
|
||||
"newcomer": "Recién llegados",
|
||||
"local_only": "Sólo local",
|
||||
"menu": "Menu",
|
||||
"menu": "Menú",
|
||||
"demoBottomBtns": "Guía de bienvenida",
|
||||
"lookAtBottom": "Mirá en la parte inferior de esta ventana. Acá tenés algunas sugerencias.",
|
||||
"acctManDesc": "Agregá más cuentas y administralas.",
|
||||
"settingDesc": "Muchas configuraciones. ¡No vas a poder con todas!",
|
||||
"nanoDescPlus": "Miniventana (experimental)",
|
||||
"menuDesc": "All daily TheDesk and Mastodon tuning like <b>add and sort columns</b>, <b>list and filter check</b>."
|
||||
"menuDesc": "Toda la configuración diaria de TheDesk y Mastodon, como <b>agregar y ordenar columnas</b> y <b>revisión de listas y filtros</b>."
|
||||
}
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "Abrí DevCenter de Misskey. También mostramos documentos oficiales como referencia.",
|
||||
"lang_manager_logout": "Cerrar sesión",
|
||||
"lang_manager_maxChars": "Máx. de caracteres para toots",
|
||||
"lang_manager_refreshAt": "Login with this domain",
|
||||
"lang_bbmd_misskey": "TheDesk considera \"@\" como respuesta, pero podés poner otro parámetro. \"No listado\" en Mastodon significa \"Principal\" en Misskey.",
|
||||
"lang_emoji_get": "Obtené emojis",
|
||||
"lang_emoji_custom": "Emojis personalizados",
|
||||
@@ -60,8 +61,8 @@
|
||||
"lang_postimg_delete": "Hacé clic para agregar descripción, o clic secundario para eliminar esto",
|
||||
"lang_postimg_desc": "Descripción",
|
||||
"lang_postimg_leadContext": "hacé clic secundario sobre la miniatura para eliminar esto",
|
||||
"lang_post_syncDetail": "Upload media synchronously",
|
||||
"lang_post_syncDetailText": "Click each picture icon to get the thumbnail. If you can get, the media you uploaded are completely processed.",
|
||||
"lang_post_syncDetail": "Subir multimedia sincrónicamente",
|
||||
"lang_post_syncDetailText": "Hacé clic en cada ícono de la imagen para obtener la miniatura. Si podés obtenerla, el archivo multimedia que subiste se procesó completamente.",
|
||||
"lang_post_tagTL": "Este toot no contiene una etiqueta predeterminada. Este toot no se mostrará en la línea temporal local. ¿Querés continuar?",
|
||||
"lang_post_tagVis": "Este toot (toot no público) no se muestra en la línea temporal de esta etiqueta.",
|
||||
"lang_post_cwtitle": "Alerta automática de Advertencia de contenido",
|
||||
@@ -69,8 +70,9 @@
|
||||
"lang_post_btn1": "Cancelar (no se enviará)",
|
||||
"lang_post_btn2": "Crear el texto oculto automáticamente",
|
||||
"lang_post_btn3": "Continuar con el envío",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_unfinishedMedia": "El servidor no ha terminado de procesar tu archivo. Volvé a intentarlo.",
|
||||
"lang_post_retry": "Reintentar",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "Llevará un minuto marcar un toot remoto como favorito.",
|
||||
"lang_status_btWarn": "Llevará un minuto retootear un toot remoto.",
|
||||
"lang_status_follow": "Seguir",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Destacado en el perfil",
|
||||
"lang_status_followers": "Seguidores",
|
||||
"lang_status_active": "Último estado",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Eliminar este toot",
|
||||
"lang_suggest_nodata": "Por favor, obtené la lista de emojis para mostrar sugerencias.",
|
||||
"lang_usetxtbox_reply": "Modo de respuesta. \"Ctrl\" + \"Mayús\" + \"C\" para limpiar.",
|
||||
"lang_cards_check": " comprobado",
|
||||
@@ -127,7 +132,7 @@
|
||||
"lang_layout_delthis": "Quitar esta columna",
|
||||
"lang_layout_setthis": "Configuración de esta columna",
|
||||
"lang_layout_mediafil": "Filtro de medio",
|
||||
"lang_layout_remoteOnly": "Remote only",
|
||||
"lang_layout_remoteOnly": "Solo remoto",
|
||||
"lang_layout_linkana": "Analizador automático de enlace",
|
||||
"lang_layout_linkanades": "Analizador automático de enlace",
|
||||
"lang_layout_tts": "Texto hablado ",
|
||||
@@ -136,7 +141,11 @@
|
||||
"lang_layout_nodata": "[Sin datos]<br>F5/⌘+R para refrescar",
|
||||
"lang_layout_dm": "Mensaje directo",
|
||||
"lang_layout_webviewmode": "Preferir WebView",
|
||||
"lang_excluded": "Tipo de notificación excluida",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Mostrar modo de retoot (DESACTIVADO / Excluir retoots / Sólo retoots)",
|
||||
"lang_layout_leftFold": "Pegar a la izquierda",
|
||||
"lang_layout_leftUnfold": "Colocar en la derecha",
|
||||
@@ -144,7 +153,8 @@
|
||||
"lang_layout_deleteColumnDesc": "Eliminar esta columna",
|
||||
"lang_layout_unread": "Sin leer",
|
||||
"lang_layout_tagManager": "Administrador de etiqueta de línea temporal",
|
||||
"lang_layout_announ": "Announcement: the counter is the number of your unread announcements. If not shown, it means announcements are all marked as read.",
|
||||
"lang_layout_announ": "Anuncio: el contador es el número de tus anuncios no leídos. Si no se muestra, significa que todos los anuncios están marcados como leídos.",
|
||||
"lang_layout_resetWidth": "Stretch this column",
|
||||
"lang_sort_gothis": "Ir a esta columna",
|
||||
"lang_sort_remthis": "Eliminar esta columna",
|
||||
"lang_spotify_img": "Adjuntar la tapa del álbum",
|
||||
@@ -166,7 +176,7 @@
|
||||
"lang_showontl_domain": "Dominio ",
|
||||
"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_status_requesting": "Requesting",
|
||||
"lang_status_requesting": "Solicitando",
|
||||
"lang_parse_mentioned": " te respondió",
|
||||
"lang_parse_faved": " marcó tu toot como favorito",
|
||||
"lang_parse_bted": " retooteó tu toot",
|
||||
@@ -174,7 +184,7 @@
|
||||
"lang_parse_polled": " hizo una encuesta",
|
||||
"lang_parse_notftime": "Enviado el",
|
||||
"lang_parse_cwshow": "Mostrar",
|
||||
"lang_parse_cwshow_acc": "This is a post with content warning. click to show the whole content",
|
||||
"lang_parse_cwshow_acc": "Esta es una publicación con advertencia de contenido. Hacé clic para mostrar todo el contenido",
|
||||
"lang_parse_fulltext": "Tamaño de texto:",
|
||||
"lang_parse_autofold": "Colapsado automáticamente",
|
||||
"lang_parse_more": "Más",
|
||||
@@ -221,7 +231,8 @@
|
||||
"lang_parse_nsfw": "medios sensibles",
|
||||
"lang_parse_html": "Mostrar HTML insertado",
|
||||
"lang_parse_notffilter": "Mostrar notificaciones de este usuario",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_hidden": "Toot citado no visible",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Republicar",
|
||||
"lang_misskeyparse_renoteqt": "Renovar",
|
||||
"lang_misskeyparse_reaction": "Reacción",
|
||||
@@ -236,6 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " reaccionó a tu siguiente entrada.",
|
||||
"lang_setting_time": "Formato de tiempo: {{set}}",
|
||||
"lang_setting_theme": "Tema: {{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Medios sensibles: {{set}}",
|
||||
"lang_setting_cw": "Advertencia de contenido: {{set}}",
|
||||
"lang_setting_cwtext": "Texto predeterminado de advertencia de contenido: {{set}}",
|
||||
|
@@ -5,7 +5,7 @@
|
||||
"no": "No",
|
||||
"none": "Ninguno",
|
||||
"show": "Mostrar",
|
||||
"hide": "Hide",
|
||||
"hide": "Ocultar",
|
||||
"default": "Predeterminado",
|
||||
"change": "Cambiar",
|
||||
"select": "Seleccionar",
|
||||
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Notificación nativa",
|
||||
"nnwarn": "Esto no funciona en la compilación portátil para Windows.",
|
||||
"nntest": "Prueba de notificación",
|
||||
"minwidth": "Ancho mínimo de las columnas",
|
||||
"minwidthwarn": "La barra de desplazamiento se mostrará cuando el tamaño de la ventana sea mayor que el de las columnas.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Ancho mínimo del explorador de TweetDeck",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "por encima",
|
||||
"font": "Tipografía",
|
||||
"fontwarn": "Seleccioná tu tipografía favorita (sólo para Windows y macOS)",
|
||||
@@ -36,33 +37,38 @@
|
||||
"savefolderwarn": "TheDesk usa esta configuración para guardar imágenes en general y capturas de pantallas.",
|
||||
"useragent": "Cadena de agente de usuario",
|
||||
"useragentWarn": "Reiniciar cuando se cambie",
|
||||
"frame": "Window frame",
|
||||
"frameWarn": "If 'off', the window looks cool.",
|
||||
"downloadWin": "Versioning(o Windows downloader)",
|
||||
"frame": "Marco de ventana",
|
||||
"frameWarn": "Si está 'desactivado', la ventana se ve piola.",
|
||||
"downloadWin": "Versión (o Descargador de Windows)",
|
||||
"absolute": "valor absoluto",
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"srcUrl": "Motor de búsqueda",
|
||||
"srcUrlWarn": "{q} será reemplazado a la consulta.",
|
||||
"themeSel": "Seleccionar tema",
|
||||
"customtheme": "Editar y agregar temas personalizados",
|
||||
"customthemeDirection": "Esquema de colores",
|
||||
"advanced": "Configuración avanzada (6 colores adicionales)",
|
||||
"advancedWarn": "La configuración avanzada será <i>nula</i> si no establecés nada, mientras que la configuración básica será blanca (<i>fff</i>). La configuración avanzada será restablecida si se guarda con el panel cerrado.",
|
||||
"active": "Fondo, botones de advertencia de contenido…",
|
||||
"modal": "Fondo de modos",
|
||||
"bottom": "Fondo de barra inferior",
|
||||
"postbox": "Fondo de caja de publicación y menú",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Subcolor, en armonía con el color secundario",
|
||||
"primary": "Color de fondo",
|
||||
"secondarycolor": "Fondo de componentes",
|
||||
"text": "Color del texto",
|
||||
"accent": "Fondo de retoots",
|
||||
"modal": "Fondo de modos",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Fondo de barra inferior",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Fondo de caja de publicación y menú",
|
||||
"active": "Fondo, botones de advertencia de contenido…",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Agregar nuevo",
|
||||
"name": "Nombre",
|
||||
"desc": "Acerca de este tema",
|
||||
"customShare": "Compartí este código con otros usuarios de TheDesk. No se comparte este código en MiAS.",
|
||||
"customImport": "Importación de temas personalizados",
|
||||
"delete": "Eliminar",
|
||||
"cImpWarn": "Obtené más temas en<a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Configuración de la línea temporal",
|
||||
"timemode": "Formato del tiempo",
|
||||
"relativetime": "Formato relativo: \"hace 1 minuto\", \"hace 3 días\"",
|
||||
@@ -136,6 +142,10 @@
|
||||
"notqt": "Deshabilitado (ocultar botones en las líneas temporales)",
|
||||
"apiQuote": "API (sólo algunas instancias)",
|
||||
"showBookmarkAction": "Mostrar un botón de marcador",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Acciones de cuenta predeterminada",
|
||||
"mainwarn": "Se puede establecer la cuenta predeterminada en el Administrador de cuentas.",
|
||||
"lastacct": "Cuenta usada recientemente",
|
||||
@@ -150,6 +160,9 @@
|
||||
"keysc": "Configuración de atajos del teclado",
|
||||
"iks": "Inserción fácil",
|
||||
"okswarn": "Podés insertar cualquier letra y emoji con sólo 3 teclas",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Configuración de silenciado y resaltado",
|
||||
"climute": "Silenciado de usuario",
|
||||
"cliemp": "Resaltado de usuario",
|
||||
@@ -167,15 +180,15 @@
|
||||
"linkwarn": "TheDesk guarda tus datos en el servidor thedesk.top.",
|
||||
"connect": "Conectar",
|
||||
"disconnect": "Desconectar",
|
||||
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
|
||||
"lastFmWarn": "Nombre de usuario...(deje vacío para desconectarse) No puede ocultar su registro de reproducción reciente en la configuración de privacidad de last.fm.",
|
||||
"templateedit": "Editar plantilla",
|
||||
"templateeditwarn": "",
|
||||
"template1": "Spotify: {artist}: nombre del artista // {song}: nombre del tema // {album}: nombre del álbum // {url}: dirección web a Spotify",
|
||||
"template2": "macOS: {artist}: nombre del artista // {song}: nombre del tema // {album}: nombre del álbum // {genre}: género // {composer}: compositor // {hz}: frecuencia de muestreo // {bitRate}: tasa de transferencia",
|
||||
"template3": "",
|
||||
"postartwork": "Adjuntar tapa desde Spotify",
|
||||
"searchArtwork": "If the song has no artwork, automatic complete it(macOS)",
|
||||
"searchArtworkWarn": "If you nowplaying an non-artwork song, get one which seems nice through API. If you do not like the completed artwork, you can right-click it to delete.",
|
||||
"searchArtwork": "Si la canción no tiene ilustraciones, se completará automáticamente (macOS)",
|
||||
"searchArtworkWarn": "Si estás escuchando una canción sin ilustraciones, se conseguirá una que se vea bien desde la API. Si no te gusta la ilustración completada, puedes hacer clic derecho en ella para eliminarla.",
|
||||
"tts": "Configuración de TTS (texto hablado)",
|
||||
"bouyomi": "Conectar BouyomiChan",
|
||||
"bouyomiWarn": "Requiere: Plugin WebSocket de BouyomiChan",
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user