Compare commits
91 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 |
8
.gitignore
vendored
8
.gitignore
vendored
@@ -25,3 +25,11 @@ 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
|
@@ -6,12 +6,13 @@ 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
|
||||
|
62
README.md
62
README.md
@@ -11,7 +11,7 @@
|
||||
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)
|
||||
@@ -31,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
|
||||
|
||||
@@ -51,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)
|
||||
|
||||
@@ -69,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
|
||||
|
||||
@@ -94,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
|
||||
@@ -131,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`
|
||||
@@ -142,11 +134,17 @@ 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
|
||||
|
||||
@@ -154,7 +152,7 @@ TheDesk is a web-based app, so you can run it on a browser. Of course, the main
|
||||
|
||||
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)
|
||||
@@ -165,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.
|
60
README_ja.md
60
README_ja.md
@@ -10,7 +10,7 @@
|
||||

|
||||
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)
|
||||
|
||||
@@ -33,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)
|
||||
|
||||
@@ -68,7 +75,7 @@ Linuxビルダー
|
||||
|
||||
## ビルド
|
||||
|
||||
npmでもyarnでも好きな方を選んでください。
|
||||
npmでもyarnでも好きな方を選んでください。Windows環境ではyarnを強く推奨します。
|
||||
|
||||
### npm
|
||||
|
||||
@@ -97,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
|
||||
@@ -125,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`
|
||||
@@ -141,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)
|
||||
@@ -167,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;
|
||||
}
|
@@ -21,7 +21,8 @@ html {
|
||||
.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;
|
||||
}
|
||||
@@ -340,16 +350,16 @@ blockquote:before,
|
||||
flex-wrap: wrap;
|
||||
flex-direction: column;
|
||||
}
|
||||
input[type="color"] {
|
||||
input[type='color'] {
|
||||
-webkit-appearance: none;
|
||||
border: none;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
input[type="color"]::-webkit-color-swatch-wrapper {
|
||||
input[type='color']::-webkit-color-swatch-wrapper {
|
||||
padding: 0;
|
||||
}
|
||||
input[type="color"]::-webkit-color-swatch {
|
||||
input[type='color']::-webkit-color-swatch {
|
||||
border: none;
|
||||
}
|
||||
#menu {
|
||||
@@ -567,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;
|
||||
@@ -581,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';
|
||||
@@ -631,6 +656,33 @@ button {
|
||||
}
|
||||
.via-dropdown {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
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%;
|
||||
|
@@ -237,7 +237,6 @@ iframe,
|
||||
flex: 1;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
background-color: var(--bg);
|
||||
}
|
||||
.additional {
|
||||
overflow-x: scroll;
|
||||
@@ -638,6 +637,7 @@ p:not(:last-child) {
|
||||
text-align: left;
|
||||
padding: 5px;
|
||||
height: 70px;
|
||||
text-align: center;
|
||||
}
|
||||
.notf-exclude-btn:hover {
|
||||
background-color: inherit !important;
|
||||
|
@@ -128,6 +128,9 @@
|
||||
#his-sign-action .btn {
|
||||
flex-basis: calc(50% - 10.6px);
|
||||
}
|
||||
#his-sign-action .dropdown-trigger {
|
||||
flex-basis: 100%;
|
||||
}
|
||||
#his-des .mention {
|
||||
color: #039be5;
|
||||
cursor: pointer;
|
||||
|
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
|
||||
}
|
||||
}
|
||||
|
@@ -73,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' ||
|
||||
|
@@ -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])
|
||||
@@ -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,3 +1,10 @@
|
||||
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 ''
|
||||
|
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))
|
||||
}
|
@@ -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,9 +683,9 @@ function staEx(mode) {
|
||||
})
|
||||
return
|
||||
}
|
||||
function toggleAction(id) {
|
||||
const elm = document.getElementById(id)
|
||||
const instance = M.Dropdown.init(elm);
|
||||
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,9 +334,14 @@ function cardCheck(tlid) {
|
||||
}
|
||||
}
|
||||
|
||||
function mov(id, tlid, type) {
|
||||
const dropdownTrigger = `dropdown_${tlid}_${id}`
|
||||
const elm = document.getElementById(dropdownTrigger)
|
||||
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
|
||||
|
@@ -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 +
|
||||
|
@@ -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') {
|
||||
@@ -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>
|
||||
@@ -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}
|
||||
@@ -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(
|
||||
@@ -957,11 +956,9 @@ 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
|
||||
<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>`
|
||||
@@ -981,8 +978,7 @@ 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}" loading="lazy">
|
||||
</a>
|
||||
@@ -994,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>
|
||||
@@ -1022,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
|
||||
@@ -1032,8 +1037,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
'unix'
|
||||
)}"
|
||||
${if_notf}
|
||||
onmouseover="mov('${uniqueid}','${tlid}','mv')"
|
||||
onclick="mov('${uniqueid}','${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>
|
||||
@@ -1085,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>
|
||||
@@ -1094,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>
|
||||
@@ -1130,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('trigger_${tlid}_${uniqueid}')" data-target="dropdown_${tlid}_${uniqueid}"
|
||||
class="ctxMenu waves-effect waves-dark btn-flat" style="padding:0" id="trigger_${tlid}_${uniqueid}">
|
||||
<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>
|
||||
@@ -1144,7 +1148,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
<span class="voice">${lang.lang_parse_detail}</span>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="dropdown-content contextMenu" id="dropdown_${tlid}_${uniqueid}">
|
||||
<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>
|
||||
@@ -1169,11 +1173,13 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
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 {
|
||||
@@ -1566,7 +1572,7 @@ function mastodonBaseStreaming(acct_id) {
|
||||
setTimeout(function () {
|
||||
mastodonBaseWsStatus[domain] = 'available'
|
||||
}, 3000)
|
||||
mastodonBaseWs[domain].send(JSON.stringify({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) {
|
||||
|
@@ -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)
|
||||
}
|
||||
|
@@ -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)
|
||||
//フィルターデータ読もう
|
||||
@@ -438,6 +439,11 @@ function parseColumn(target, dontclose) {
|
||||
<i class="material-icons nex" title="${lang.lang_layout_reconnect}">refresh</i>
|
||||
<br />
|
||||
${lang.lang_layout_reconnect}
|
||||
</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>
|
||||
@@ -930,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')) {
|
||||
|
@@ -98,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
|
||||
@@ -283,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()
|
||||
@@ -356,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')
|
||||
@@ -395,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) {
|
||||
@@ -502,9 +513,9 @@ function copyColor(from, to) {
|
||||
let i = 0
|
||||
let color
|
||||
for (tag of props) {
|
||||
if(tag == from) {
|
||||
if (tag == from) {
|
||||
let used = $(`#use-color_${i}`).prop('checked')
|
||||
if(!used) {
|
||||
if (!used) {
|
||||
Swal.fire({
|
||||
type: 'error',
|
||||
title: 'Not checked',
|
||||
@@ -516,9 +527,9 @@ function copyColor(from, to) {
|
||||
}
|
||||
i++
|
||||
}
|
||||
if(!color) return false
|
||||
if (!color) return false
|
||||
for (tag of props) {
|
||||
if(tag == to) {
|
||||
if (tag == to) {
|
||||
$(`#color-picker${i}_value`).val(color)
|
||||
$(`#use-color_${i}`).prop('checked', true)
|
||||
break
|
||||
@@ -555,7 +566,7 @@ function customComp() {
|
||||
var my = JSON.parse(multi)[0].name
|
||||
var id = $('#custom-edit-sel').val()
|
||||
const defaults = [
|
||||
'black','blue','brown','green','indigo','polar','snow','white'
|
||||
'black', 'blue', 'brown', 'green', 'indigo', 'polar', 'snow', 'white'
|
||||
]
|
||||
if (id == 'add_new' || defaults.includes(id)) {
|
||||
id = makeCID()
|
||||
@@ -690,7 +701,7 @@ function customConnect(raw) {
|
||||
i++
|
||||
}
|
||||
$('#custom_json').val(raw[1])
|
||||
if(args.default) {
|
||||
if (args.default) {
|
||||
$('#delTheme').addClass('disabled')
|
||||
}
|
||||
}
|
||||
@@ -728,6 +739,107 @@ function customSoundSave(key, file) {
|
||||
localStorage.setItem('custom' + key, 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 () {
|
||||
//最初に読む
|
||||
load()
|
||||
@@ -738,6 +850,7 @@ window.onload = function () {
|
||||
voiceSettingLoad()
|
||||
oksload()
|
||||
ctLoad()
|
||||
pluginLoad()
|
||||
$('body').addClass(localStorage.getItem('platform'))
|
||||
}
|
||||
//設定画面で未読マーカーは要らない
|
||||
|
@@ -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}'
|
||||
|
@@ -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,6 +57,10 @@ function tips(mode) {
|
||||
tipsToggle()
|
||||
localStorage.setItem('tips', 'itunes')
|
||||
itunestips()
|
||||
} else if (mode == 'custom') {
|
||||
tipsToggle()
|
||||
localStorage.setItem('tips', `custom:${custom}`)
|
||||
execPlugin(custom, 'tips', null)
|
||||
}
|
||||
}
|
||||
//メモリ
|
||||
|
12
app/main.js
12
app/main.js
@@ -185,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) {
|
||||
@@ -230,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
|
||||
|
@@ -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.
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"name": "thedesk",
|
||||
"version": "21.2.4",
|
||||
"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:store": "cd view/make && node make --automatic --store && 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",
|
||||
@@ -59,16 +59,18 @@
|
||||
],
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.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",
|
||||
"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": "^10.3.5",
|
||||
"sweetalert2": "^10.14.0",
|
||||
"system-font-families": "^0.4.1",
|
||||
"vue": "^2.6.12"
|
||||
},
|
||||
@@ -76,18 +78,20 @@
|
||||
"itunes-nowplaying-mac": "0.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"chokidar": "^3.4.2",
|
||||
"electron": "^10.1.2",
|
||||
"electron-builder": "^22.8.1",
|
||||
"electron-rebuild": "^2.0.3",
|
||||
"eslint": "^7.9.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"
|
||||
|
@@ -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="../../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="../../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="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>
|
@@ -43,6 +43,12 @@
|
||||
<i class="material-icons">chat</i>
|
||||
</button>
|
||||
</div>
|
||||
<div id="offline" class="hide">
|
||||
@@nowOffline@@
|
||||
</div>
|
||||
<div id="re-online" class="hide">
|
||||
@@reOnline@@
|
||||
</div>
|
||||
<div id="tl">
|
||||
<!--TL-->
|
||||
<!--スターター-->
|
||||
@@ -269,6 +275,9 @@
|
||||
<li class="mac">
|
||||
<a onclick="nowplaying('itunes');">NowPlaying (iTunes macOS)</a>
|
||||
</li>
|
||||
<li class="mac hide" id="ccnp">
|
||||
<a onclick="nowplaying('anynp');">NowPlaying (コントロールセンター)</a>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="nowplaying('lastFm');">NowPlaying (Last.fm)</a>
|
||||
</li>
|
||||
@@ -278,6 +287,9 @@
|
||||
<li>
|
||||
<a onclick="pollToggle();">@@poll@@</a>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="draftToggle();">@@draft@@</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--hidden area-->
|
||||
<input type="hidden" id="reply" />
|
||||
@@ -297,6 +309,7 @@
|
||||
</div>
|
||||
<div id="right-side">
|
||||
<div id="suggest" class="right-side-content"></div>
|
||||
<div id="draft" class="hide right-side-content"></div>
|
||||
<!--絵文字ピッカー-->
|
||||
<div id="emoji" class="hide right-side-content">
|
||||
<span class="gray sml">@@emojiWarn@@
|
||||
@@ -729,6 +742,9 @@
|
||||
<a class="waves-effect white-text" onclick="zoom(0.5)">
|
||||
<i class="material-icons">zoom_out</i>
|
||||
</a>
|
||||
<a class="waves-effect white-text" onclick="rotate(false)">
|
||||
<i class="material-icons">rotate_90_degrees_ccw</i>
|
||||
</a>
|
||||
<button class="btn waves-effect blue" onclick="copyImgUrl()" title="@@copyURL@@">
|
||||
<i class="material-icons">link</i>
|
||||
</button>
|
||||
@@ -765,19 +781,22 @@
|
||||
<a href="https://thedesk.top" target="_blank">HP</a><br />
|
||||
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br />
|
||||
<br />
|
||||
<div id="release-21-2-4_Mayu" class="release-do" style="display:none; ">
|
||||
<div id="release-22-1-0_Koume" class="release-do" style="display:none; ">
|
||||
<br />
|
||||
<a href="https://ja.mstdn.
|
||||
wiki/TheDesk" target="_blank">機能一覧</a><br />
|
||||
Pixiv
|
||||
FanboxやPatreonでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br />
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note 21.2.4 (Mayu)</h5>
|
||||
<h5>Release Note 22.1.0 (Koume)</h5>
|
||||
<!--上のdivのidも変えてね-->
|
||||
・Tipsのデザイン修正/メモリ表示時に稼働時間を表示 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
|
||||
・タイムラインでカラムの挿入場所がズレたり、挿入されなかったりするバグ <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
|
||||
・イタリア語を追加 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
|
||||
|
||||
・Crowdin連携の強化 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
|
||||
・macOSにおけるNowPlayingで、コントロールセンター経由を追加 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
|
||||
・Pleroma特有のリフレッシュトークンの実装 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a> <a onclick="udgEx('kPherox@pl.kplerox.dev','main')" class="contributor"><img src="https://user-images.githubusercontent.com/17561618/66582379-a3714800-ebbc-11e9-8402-d81a35a3be9f.png">kPherox</a><br>
|
||||
・画像の回転ボタン <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
|
||||
・タグやメンションのリンクの対象アカウントがうまく認識されない不具合を修正 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a> <a onclick="udgEx('popn_ja@popon.pptdn.jp','main')" class="contributor"><img src="https://avatars3.githubusercontent.com/u/24523508?s=88&v=4">kaias1jp</a><br>
|
||||
・TweetDeck連携を削除 <a onclick="udgEx('Cutls@cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">cutls</a><br>
|
||||
|
||||
</div>
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
@@ -1085,7 +1104,7 @@
|
||||
<!--TLのTL-->
|
||||
<div id="timeline-container">
|
||||
<div id="something-wrong">
|
||||
<img src="../../img/desk.svg" style="width:150px;margin:5px;display:none;" draggable="false" />
|
||||
<img src="../../img/thinking.svg" style="width:150px;margin:5px;display:none;" draggable="false" />
|
||||
<div class="stw" style="display: none">@@helloTheDesk@@</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1210,8 +1229,10 @@
|
||||
<!--JS-->
|
||||
<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@@/grapheme-splitter/index.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
|
||||
<script type="text/javascript" src="../../@@node_base@@/materialize-css/dist/js/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../@@node_base@@/grapheme-splitter/index.js"></script>
|
||||
<script type="text/javascript" src="../../@@node_base@@/lodash/lodash.min.js"></script>
|
||||
<script type="text/javascript" src="main.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
|
@@ -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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
|
@@ -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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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": " проверка",
|
||||
@@ -149,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": "Добавете към албум произведенията на изкуството",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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 дни“",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
|
@@ -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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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“",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
|
@@ -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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
|
@@ -17,7 +17,7 @@
|
||||
"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)",
|
||||
|
@@ -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",
|
||||
@@ -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",
|
||||
|
@@ -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",
|
||||
@@ -137,18 +142,19 @@
|
||||
"lang_layout_dm": "Direkte Nachricht",
|
||||
"lang_layout_webviewmode": "Web-Ansicht bevorzugen",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_mention": "Erwähnungen",
|
||||
"lang_layout_fav": "Favoriten",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"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",
|
||||
@@ -165,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",
|
||||
@@ -179,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",
|
||||
@@ -219,11 +225,11 @@
|
||||
"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)",
|
||||
@@ -241,7 +247,7 @@
|
||||
"lang_misskeyparse_reacted": " hat auf Ihren folgenden Beitrag reagiert.",
|
||||
"lang_setting_time": "Zeitformat:{{set}}",
|
||||
"lang_setting_theme": "Design:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_compat": "Kompatibel",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_cw": "NSFW:{{set}}",
|
||||
"lang_setting_cwtext": "Standard-NSFW-Text:{{set}}",
|
||||
|
@@ -20,7 +20,7 @@
|
||||
"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",
|
||||
@@ -48,12 +48,12 @@
|
||||
"customthemeDirection": "Farbschema",
|
||||
"advanced": "Erweiterte Einstellungen",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"use": "Benutze dies",
|
||||
"copyFrom": "Kopieren von",
|
||||
"bg": "Hintergrundfarbe",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"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)",
|
||||
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
|
@@ -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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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": "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": "Buscar en la Web",
|
||||
"tsSrc": "Buscar en tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Herramientas",
|
||||
"symbolEmoji": "Símbolos",
|
||||
"flagsEmoji": "Banderas",
|
||||
"draft": "Draft",
|
||||
"poll": "Encuesta",
|
||||
"pollDdisabled": "Encuestas: deshabilitadas",
|
||||
"pollProvider": "Proveedor de encuesta",
|
||||
|
@@ -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",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "Continuar con el envío",
|
||||
"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",
|
||||
@@ -149,6 +154,7 @@
|
||||
"lang_layout_unread": "Sin leer",
|
||||
"lang_layout_tagManager": "Administrador de etiqueta de línea temporal",
|
||||
"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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
|
@@ -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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
|
@@ -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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
|
@@ -7,7 +7,7 @@
|
||||
"codesetup": "Code setup",
|
||||
"mainacct": "Main an account",
|
||||
"selacct": "Choisir un compte",
|
||||
"codepastewarn": "Paste the code and close browser.",
|
||||
"codepastewarn": "Insérer le code et fermez le navigateur.",
|
||||
"codepaste": "Code",
|
||||
"domain": "Domaine",
|
||||
"connect": "Serveur fédérées",
|
||||
@@ -17,9 +17,9 @@
|
||||
"safety": "Connection",
|
||||
"ver": "Version de Mastodon",
|
||||
"ko": "",
|
||||
"thisismisskey": "Login as Misskey",
|
||||
"thisismisskey": "Connexion en tant que Misskey",
|
||||
"misskeylogin": "Read <a href=\"https://thedesk.top/how-to-misskey-login.html\">Docs(ja)</a> to login Misskey.",
|
||||
"nodata": "No data",
|
||||
"nodata": "Aucune donnée",
|
||||
"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"
|
||||
}
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Faites glisser ici pour transférer",
|
||||
"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": "Fermer",
|
||||
"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",
|
||||
|
@@ -9,7 +9,7 @@
|
||||
"lang_edit": "Modifier",
|
||||
"lang_del": "Supprimer",
|
||||
"lang_add": "Ajouter",
|
||||
"lang_fatalerroroccured": "Error",
|
||||
"lang_fatalerroroccured": "Erreur",
|
||||
"lang_speech": "Google U.S en anglais",
|
||||
"lang_lang": "Langue",
|
||||
"lang_langlocale": "Anglais",
|
||||
@@ -28,11 +28,11 @@
|
||||
"lang_time_hours": "%d h",
|
||||
"lang_time_day": "1 d",
|
||||
"lang_time_days": "%d d",
|
||||
"lang_time_month": "1 month",
|
||||
"lang_time_months": "%d months",
|
||||
"lang_time_month": "1 mois",
|
||||
"lang_time_months": "%d mois",
|
||||
"lang_time_year": "y",
|
||||
"lang_time_years": "%d y",
|
||||
"lang_version_usever": "No update is found({{ver}})",
|
||||
"lang_version_usever": "Aucune mise à jour n'a été trouvée ({{ver}})",
|
||||
"lang_version_skipver": "La mise à jour a été ignorée.",
|
||||
"lang_version_platform": "Do you want auto-updates?(users installed on Microsoft Store select 'No')",
|
||||
"lang_version_platform_linux": "Do you want auto-updates?(users installed on Snapcraft select 'No')",
|
||||
@@ -48,17 +48,18 @@
|
||||
"lang_manager_none": "Aucun",
|
||||
"lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.",
|
||||
"lang_manager_logout": "Se déconnecter",
|
||||
"lang_manager_maxChars": "Max chars of toots",
|
||||
"lang_manager_maxChars": "Nombre maximum de caractères de pouets",
|
||||
"lang_manager_refreshAt": "Se connecter avec ce domaine",
|
||||
"lang_bbmd_misskey": "TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
|
||||
"lang_emoji_get": "Téléchargez les émojis",
|
||||
"lang_emoji_custom": "Émojis personnalisés",
|
||||
"lang_defaultemojis_text": "Emojis about {{cat}}",
|
||||
"lang_emoji_uncat": "Uncategorized",
|
||||
"lang_postimg_previewdis": "cannot preview",
|
||||
"lang_emoji_uncat": "Non catégorisé",
|
||||
"lang_postimg_previewdis": "impossible de prévisualiser",
|
||||
"lang_postimg_aftupload": "You cannot change accounts after uploading.",
|
||||
"lang_postimg_failupload": "Failed",
|
||||
"lang_postimg_failupload": "Échec",
|
||||
"lang_postimg_delete": "Click to add description, right-click to delete this",
|
||||
"lang_postimg_desc": "Description",
|
||||
"lang_postimg_desc": "Déscription",
|
||||
"lang_postimg_leadContext": "right-click the thumbnail to delete this",
|
||||
"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.",
|
||||
@@ -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": "Suivre",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Recommander sur son profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Utiliser ceci",
|
||||
"lang_secure_deleteThis": "Supprimer ce pouet",
|
||||
"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",
|
||||
@@ -149,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",
|
||||
|
@@ -5,55 +5,55 @@
|
||||
"no": "Non",
|
||||
"none": "Aucun",
|
||||
"show": "Show",
|
||||
"hide": "Hide",
|
||||
"hide": "Cacher",
|
||||
"default": "Par défaut",
|
||||
"change": "Modifier",
|
||||
"select": "Select",
|
||||
"select": "Sélectionner",
|
||||
"env": "Préférences système",
|
||||
"setlang": "Langues",
|
||||
"backup": "Import and export of preferences",
|
||||
"backupWarn": "If you got a error when you choose the file, please paste the strings printed when you open the file and click import",
|
||||
"backup": "Importer et exporter les préférences",
|
||||
"backupWarn": "Si vous avez une erreur lorsque vous choisissez le fichier, veuillez coller les chaînes affichées lorsque vous ouvrez le fichier et cliquez sur Importer",
|
||||
"import": "Importer",
|
||||
"export": "Exporter",
|
||||
"hardwareAcceleration": "Disable hardware acceleration",
|
||||
"hardwareAccelerationWarn": "Auto restarted",
|
||||
"hardwareAcceleration": "Désactiver l'accélération matérielle",
|
||||
"hardwareAccelerationWarn": "Redémarrage Automatique",
|
||||
"theme": "Thèmes",
|
||||
"popup": "Popup notification",
|
||||
"popup": "Notification pop-up",
|
||||
"popupwarn": "Hide to set \"0\"",
|
||||
"s": "sec",
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nnwarn": "Cela ne fonctionne pas sur la version portable pour Windows.",
|
||||
"nntest": "Notification test",
|
||||
"width": "Width of columns",
|
||||
"width": "Largeur des colonnes",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimum width of TweetDeck browser",
|
||||
"fixwidth": "Largeur minimale du navigateur TweetDeck",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"margin": "Marge entre les timelines",
|
||||
"above": "above",
|
||||
"font": "Police de caractères",
|
||||
"fontwarn": "Select your favorite font to 'Select'",
|
||||
"fontsize": "Taille de la police de caractères",
|
||||
"savefolder": "Folder to save",
|
||||
"savefolderwarn": "TheDesk uses this value when it try to save pictures or take screenshots.",
|
||||
"savefolderwarn": "TheDesk utilise cette valeur lorsqu'il tente d'enregistrer des photos ou de prendre des captures d'écran.",
|
||||
"useragent": "User agent",
|
||||
"useragentWarn": "Restart when changed",
|
||||
"frame": "Window frame",
|
||||
"frameWarn": "If 'off', the window looks cool.",
|
||||
"downloadWin": "Versioning(o Windows downloader)",
|
||||
"absolute": "absolute value",
|
||||
"srcUrl": "Search engine",
|
||||
"absolute": "valeur absolue",
|
||||
"srcUrl": "Moteur de recherche",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options",
|
||||
"themeSel": "Sélectionner un thème",
|
||||
"customtheme": "Modifier et ajouter des thèmes",
|
||||
"customthemeDirection": "Jeu de couleurs",
|
||||
"advanced": "Options avancées",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"use": "Utiliser ceci",
|
||||
"copyFrom": "Copier depuis",
|
||||
"bg": "Couleur de l'arrière-plan",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"text": "Couleur du texte",
|
||||
"accent": "Arrière-plan des boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
@@ -64,13 +64,11 @@
|
||||
"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.",
|
||||
"add_new": "Ajouter",
|
||||
"name": "Nom",
|
||||
"desc": "À propos de ce thème",
|
||||
"customImport": "Import of custom themes",
|
||||
"delete": "Supprimer",
|
||||
"cImpWarn": "Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Timeline Preferences",
|
||||
"timemode": "Format de l’heure",
|
||||
"relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"",
|
||||
@@ -95,7 +93,7 @@
|
||||
"boxno": "Open after posting",
|
||||
"tag": "Tag TL Search",
|
||||
"tagfed": "Use federated network",
|
||||
"taglocal": "Use local network",
|
||||
"taglocal": "Utiliser le réseau local",
|
||||
"via": "Afficher via",
|
||||
"mouseover": "Hide action buttons without mouseover",
|
||||
"mouseoverwarn": "You may feel 'mouseover' is unconfortable:(",
|
||||
@@ -103,30 +101,30 @@
|
||||
"mvclick": "Cliquez pour afficher",
|
||||
"notfmarker": "Show Notification marker, red colored bell and counter(if you show a notification column.)",
|
||||
"autofold": "Auto folding",
|
||||
"autofoldwarn": "TheDesk does not collapse totes of 5 characters or less. Also, when collapsing, newlines are not shown. TheDesk count only newlines as the number of lines.",
|
||||
"lines": "lines",
|
||||
"letters": "letters",
|
||||
"autofoldwarn": "TheDesk ne réduit pas les toots de 5 caractères ou moins. Si réduit, les retours à la ligne ne sont pas affichés. TheDesk compte uniquement les retours à la ligne comme le nombre de lignes.",
|
||||
"lines": "lignes",
|
||||
"letters": "lettres",
|
||||
"or": "ou",
|
||||
"imgheight": "Height of images",
|
||||
"imgheight": "Hauteur des images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"ticker": "Activer OpenSticker",
|
||||
"tickerwarn": "Show colorful stickers about tooters' server. <a href=\"https://cdn.weep.me/mastodon/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
"animation": "Animation of timelines",
|
||||
"animation": "Animation des timelines",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
"remote_img": "Get images from the remote server",
|
||||
"remote_img": "Récupérer les images depuis le serveur distant",
|
||||
"remote_imgWarn": "All previews are got from your loginned cache server.",
|
||||
"replySound": "Sound(Reply)",
|
||||
"favSound": "Sound(Fav)",
|
||||
"btSound": "Sound(Boost)",
|
||||
"followSound": "Sound(Follow)",
|
||||
"customSound": "Custom sound",
|
||||
"replySound": "Son (Réponse)",
|
||||
"favSound": "Son (Fav)",
|
||||
"btSound": "Son (Boost)",
|
||||
"followSound": "Son (Follow)",
|
||||
"customSound": "Son personnalisé",
|
||||
"post": "Posting Preferences",
|
||||
"autocw": "Alert before posting a long toot.",
|
||||
"autocwwarn": "Show dialog whether you make too-long text hidden.",
|
||||
"defaultcw": "Default warining text",
|
||||
"autocw": "Alerte avant de poster un long toot.",
|
||||
"autocwwarn": "Afficher la boîte de dialogue si vous cachez un texte trop long.",
|
||||
"defaultcw": "Texte d'avertissement par défaut",
|
||||
"cws": "Always CW set",
|
||||
"defaultvis": "Default visibility",
|
||||
"defaultvis": "Visibilité par défaut",
|
||||
"public": "Public",
|
||||
"unlisted": "Non listé",
|
||||
"private": "Privé",
|
||||
@@ -137,13 +135,17 @@
|
||||
"showurl": "Insert media URL",
|
||||
"nourl": "Insert nothig",
|
||||
"disabled": "Désactivé",
|
||||
"quote": "Quote format",
|
||||
"simple": "Only URL",
|
||||
"quote": "Format des citations",
|
||||
"simple": "URL uniquement",
|
||||
"mention": "URL and acct(mention to the user)",
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"apiQuote": "API (seulement certaines 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",
|
||||
@@ -153,11 +155,14 @@
|
||||
"nothing": "Hidden",
|
||||
"localonly": "Local Only",
|
||||
"zeroWidthEmoji": "Zero-width space when inserting emojis",
|
||||
"uploadCrop": "Auto scale to fit",
|
||||
"uploadCrop": "Ajuster automatiquement la taille",
|
||||
"uploadCropWarn": "Max long-side px. Uploaded images are converted to JPEG(from JPEG) or PNG(from others). Set 0 and the images will not be resized. Notice: if you post an animated picture like GIF, it will be converted static one.",
|
||||
"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",
|
||||
@@ -172,17 +177,17 @@
|
||||
"spotifynote1": "Click ",
|
||||
"spotifynote2": "icon to NowPlaying",
|
||||
"link": "Account Connection",
|
||||
"linkwarn": "TheDesk save your data on thedesk.top server.",
|
||||
"connect": "Connect",
|
||||
"disconnect": "Disconnect",
|
||||
"linkwarn": "TheDesk enregistre vos données sur le serveur thedesk.top.",
|
||||
"connect": "Se connecter",
|
||||
"disconnect": "Se déconnecter",
|
||||
"lastFmWarn": "User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.",
|
||||
"templateedit": "Edit a template",
|
||||
"templateedit": "Modifier un modèle",
|
||||
"templateeditwarn": "",
|
||||
"template1": "Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify",
|
||||
"template2": "macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}",
|
||||
"template3": "",
|
||||
"postartwork": "Attach an Artwork of Spotify",
|
||||
"searchArtwork": "If the song has no artwork, automatic complete it(macOS)",
|
||||
"searchArtwork": "Si la chanson n'a pas d'illustration, la compléter automatiquement (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.",
|
||||
"tts": "TTS(text to speech) Preferences",
|
||||
"bouyomi": "BouyomiChan connect",
|
||||
@@ -193,32 +198,32 @@
|
||||
"pitchwarn": "0-100(default:50)",
|
||||
"vol": "Volume",
|
||||
"volwarn": "0-100(default:100)",
|
||||
"volwarn80": "0-100(default:80)",
|
||||
"volwarn80": "0-100 (par défaut:80)",
|
||||
"test": "Test",
|
||||
"sample": "TheDesk is an open-source Mastodon client for PC.",
|
||||
"playstop": "Play/Stop",
|
||||
"sample": "TheDesk est un client Mastodon open-source pour PC.",
|
||||
"playstop": "Jouer/Arrêter",
|
||||
"back": "Retour",
|
||||
"keyscs": "Raccourcis clavier",
|
||||
"keyscr": "Jump to n(1-9)th column",
|
||||
"keynew": "Open toot box",
|
||||
"keytoggle": "Toggle toot box",
|
||||
"keypost": "Post",
|
||||
"keypost": "Publier",
|
||||
"keysecpost": "Post(secondary toot)",
|
||||
"keyunread": "Make all notifications read",
|
||||
"keyunread": "Marquer toutes les notifications comme lues",
|
||||
"keyesc": "Hide toot box",
|
||||
"keyf5": "Super Reload",
|
||||
"keyclear": "Clear toot box",
|
||||
"keyacctman": "Account Manager",
|
||||
"keyshowprof": "Show profile of selecting",
|
||||
"keyrow": "Show next or previous image",
|
||||
"keyzoom": "Mousewheel:Zoom a image",
|
||||
"whenSelected": "When a toot is selected: ",
|
||||
"keyrow": "Montrer l'image précédente ou suivante",
|
||||
"keyzoom": "Molette de la souris : Zoomer sur l'image",
|
||||
"whenSelected": "Quand un toot est sélectionné : ",
|
||||
"fav": "Mettre ce pouet en favoris",
|
||||
"bt": "Booster ce pouet",
|
||||
"reply": "Répondre à ce pouet",
|
||||
"keyselecttop": "Select the top & left(No.1 column) toot",
|
||||
"reset": "Reset(Danger)",
|
||||
"resetconfirm": "Delete all data. You cannot undo. Continue?",
|
||||
"keyselecttop": "Sélectionner la colonne de toot en haut à gauche (colonne numéro 1)",
|
||||
"reset": "Réinitialiser (Danger)",
|
||||
"resetconfirm": "Supprimer toutes les données. Vous ne pouvez pas annuler. Continuer ?",
|
||||
"about": "About TheDesk",
|
||||
"hp": "Site Web",
|
||||
"support": "Assistance",
|
||||
|
@@ -13,7 +13,7 @@
|
||||
"nextver": "Hidden until next version",
|
||||
"problem1": "Some problems?",
|
||||
"problem2": "Please download on <a href=\"https://thedesk.top\">Oficial HP</a>.",
|
||||
"continue": "Continue updating",
|
||||
"dlnow": "Downloading...",
|
||||
"checkWhatIsNew": "What is new?"
|
||||
"continue": "Continuer la mise à jour",
|
||||
"dlnow": "Téléchargement...",
|
||||
"checkWhatIsNew": "Quoi de neuf ?"
|
||||
}
|
||||
|
@@ -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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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",
|
||||
|
@@ -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",
|
||||
@@ -149,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",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"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\"",
|
||||
@@ -144,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",
|
||||
@@ -158,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": "Trascina qui per caricare",
|
||||
"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": "Chiudi",
|
||||
"webSrc": "Cerca sul Web",
|
||||
"tsSrc": "Cerca su tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emoji di strumenti",
|
||||
"symbolEmoji": "Emoji di simboli",
|
||||
"flagsEmoji": "Emoji delle bandiere",
|
||||
"draft": "Draft",
|
||||
"poll": "Sondaggio",
|
||||
"pollDdisabled": "Sondaggi: Disabilitato",
|
||||
"pollProvider": "Fornitore del sondaggio",
|
||||
|
@@ -49,6 +49,7 @@
|
||||
"lang_manager_godev": "Apri DevCenter di Misskey. Mostriamo anche un documento ufficiale da riferire.",
|
||||
"lang_manager_logout": "Esci",
|
||||
"lang_manager_maxChars": "Max caratteri dei toot",
|
||||
"lang_manager_refreshAt": "Login with this domain",
|
||||
"lang_bbmd_misskey": "TheDesk considera \"@\" come risposta, ma mettere altri parametri. Non elencato su Mastodon significa Home su Misskey.",
|
||||
"lang_emoji_get": "Ottieni emoji",
|
||||
"lang_emoji_custom": "Emoji personalizzate",
|
||||
@@ -71,6 +72,7 @@
|
||||
"lang_post_btn3": "Continua a pubblicare",
|
||||
"lang_post_unfinishedMedia": "Il server non ha finito di elaborare il tuo supporto. Riprova.",
|
||||
"lang_post_retry": "Riprova",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "Ci vorrà un miunte per preferire un toot remoto.",
|
||||
"lang_status_btWarn": "Ci vorrà un miunte per aumentare un toot remoto.",
|
||||
"lang_status_follow": "Segui",
|
||||
@@ -87,6 +89,9 @@
|
||||
"lang_status_endorse": "Caratteristica sul profilo",
|
||||
"lang_status_followers": "Follower",
|
||||
"lang_status_active": "Ultimo stato",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Usa questo",
|
||||
"lang_secure_deleteThis": "Elimina questo",
|
||||
"lang_suggest_nodata": "Si prega di ottenere l'elenco delle emoji per mostrare il suggerimento.",
|
||||
"lang_usetxtbox_reply": "Modalità di risposta. Ctrl+Maiusc+C per cancellare.",
|
||||
"lang_cards_check": " controlla",
|
||||
@@ -149,6 +154,7 @@
|
||||
"lang_layout_unread": "Non Letta",
|
||||
"lang_layout_tagManager": "Gestore timeline tag",
|
||||
"lang_layout_announ": "Annuncio: il contatore è il numero dei tuoi annunci non letti. Se non mostrato, significa che gli annunci sono tutti contrassegnati come letti.",
|
||||
"lang_layout_resetWidth": "Stretch this column",
|
||||
"lang_sort_gothis": "Vai a questa colonna",
|
||||
"lang_sort_remthis": "Elimina questa colonna",
|
||||
"lang_spotify_img": "Allega una copertina album",
|
||||
|
@@ -67,10 +67,8 @@
|
||||
"add_new": "Aggiungi nuovo",
|
||||
"name": "Nome",
|
||||
"desc": "Informazioni su questo tema",
|
||||
"customShare": "Condividi questo codice con altri TheDesk. Non condividere questo codice con MiAS.",
|
||||
"customImport": "Importa temi personalizzati",
|
||||
"delete": "Elimina",
|
||||
"cImpWarn": "Ottieni altri temi su <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
||||
"timeline": "Preferenze Della Timeline",
|
||||
"timemode": "Formato orario",
|
||||
"relativetime": "Formato relativo:\"1 minuti fa\",\"3 giorni fa\"",
|
||||
@@ -144,6 +142,10 @@
|
||||
"notqt": "Disattivato(Migliore sui TL)",
|
||||
"apiQuote": "API(solo alcuni casi)",
|
||||
"showBookmarkAction": "Mostra un pulsante toot per segnalibri",
|
||||
"scrollBar": "Height of the scroll bar",
|
||||
"thin": "Thin",
|
||||
"normal": "Normal",
|
||||
"thick": "Thick",
|
||||
"main": "Account predefiniti delle azioni",
|
||||
"mainwarn": "L'account principale può essere impostato su Account Manager.",
|
||||
"lastacct": "Account utilizzato di recente",
|
||||
@@ -158,6 +160,9 @@
|
||||
"keysc": "Preferenze scorciatoia tastiera",
|
||||
"iks": "Inseritore facile",
|
||||
"okswarn": "È possibile inserire qualsiasi lettera ed emoji con solo 3 tasti",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Preferenze Di Muto & Emphasis",
|
||||
"climute": "Silenzia Client",
|
||||
"cliemp": "Emfasi del client",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere":"ドラッグしてみ?(ドラッグしたらすぐアップロードされるで)",
|
||||
"nowOffline":"オフラインやで。投稿は全部下書きに行くし、もしオンラインなったら再読み込みしたらええで。",
|
||||
"reOnline":"オンライン戻ったから再読み込みしてな。",
|
||||
"close":"Close",
|
||||
"webSrc": "Webでさがす",
|
||||
"tsSrc": "tootsearchでさがす",
|
||||
@@ -43,6 +45,7 @@
|
||||
"thingsEmoji":"もの",
|
||||
"symbolEmoji":"記号",
|
||||
"flagsEmoji":"国旗",
|
||||
"draft": "下書き(タンス)",
|
||||
"poll":"アンケート",
|
||||
"pollDdisabled":"アンケート付けへん",
|
||||
"pollProvider":"アンケートのプロバイダ",
|
||||
|
@@ -48,6 +48,7 @@
|
||||
"lang_manager_none": "なし",
|
||||
"lang_manager_godev": "",
|
||||
"lang_manager_logout": "ログアウト",
|
||||
"lang_manager_refreshAt": "このドメインでログイン",
|
||||
"lang_bbmd_misskey": "TheDeskのMisskeyは、@を返信として扱うけんど、全ての@はなおされて別パラメータになってまう。ついでに、「未収載」は「ホーム」扱いや。",
|
||||
"lang_emoji_get": "絵文字リスト引っ張ってくる",
|
||||
"lang_emoji_custom": "カスタム絵文字",
|
||||
@@ -72,6 +73,7 @@
|
||||
"lang_status_btWarn": "ブーストしたんやけどインスタンスがちゃうときは時間がかかるで、知らんけど。",
|
||||
"lang_post_unfinishedMedia": "処理未了のメディアがあります。再試行してください。",
|
||||
"lang_post_retry": "再試行",
|
||||
"lang_post_offline": "オフラインやったし下書きいれといたで",
|
||||
"lang_status_follow": "フォロー",
|
||||
"lang_status_unfollow": "フォロー解除",
|
||||
"lang_status_block": "ブロック",
|
||||
@@ -86,6 +88,9 @@
|
||||
"lang_status_endorse": "プロフで紹介する",
|
||||
"lang_status_followers": "フォロワー",
|
||||
"lang_status_active": "最新トゥート",
|
||||
"lang_secure_draft": "タンスになおす",
|
||||
"lang_secure_useThis": "使う",
|
||||
"lang_secure_deleteThis": "ほかす",
|
||||
"lang_suggest_nodata": "サジェストしたいんやけど、絵文字リストを取得してくれへん?",
|
||||
"lang_usetxtbox_reply": "返信モードや。やめるときはCtrl+Shift+Cな。",
|
||||
"lang_cards_check": "チェック",
|
||||
@@ -148,6 +153,7 @@
|
||||
"lang_layout_unread": "未読",
|
||||
"lang_layout_tagManager": "タグタイムラインをいじる",
|
||||
"lang_layout_announ": "お知らせ: 数字は未読数や。表示されてんときはもう読んでしもたいうことやな。",
|
||||
"lang_layout_resetWidth": "横幅自動調節",
|
||||
"lang_sort_gothis": "このカラムへ",
|
||||
"lang_sort_remthis": "このカラムを消す",
|
||||
"lang_spotify_img": "アルバムアートワークを付けるで。",
|
||||
|
@@ -66,10 +66,8 @@
|
||||
"add_new": "新規作成",
|
||||
"name": "名前",
|
||||
"desc": "説明",
|
||||
"customShare": "このコードは他のTheDeskなどとシェアできるけこのコードをMiASに貼るのはあかん。詳細:<a href=\"https://thedesk.top/mias.html\" target=\"_blank\">テーマ互換性</a>",
|
||||
"customImport": "カスタムテーマのインポート",
|
||||
"delete": "削除",
|
||||
"cImpWarn": "<a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>上の80を超えるテーマを張っ付けることもできる。",
|
||||
"timeline": "タイムラインの設定",
|
||||
"timemode": "時間表記設定",
|
||||
"relativetime": "相対時間の例:\"1分前\",\"3日前\"",
|
||||
@@ -142,6 +140,10 @@
|
||||
"full": "本文・URL・アカウント名",
|
||||
"notqt": "使わない(TL上にボタンも出さん)",
|
||||
"apiQuote": "パラメーター(対応インスタンス)",
|
||||
"scrollBar": "スクロールバーの太さ",
|
||||
"thin": "スリム",
|
||||
"normal": "並",
|
||||
"thick": "ごっつい",
|
||||
"main": "投稿後や起動時のアカウント",
|
||||
"mainwarn": "メインアカウントはアカウント設定で選んどいてな。投稿以外のアカウント選択もこれ使うで。",
|
||||
"lastacct": "最後に使用したアカウント",
|
||||
@@ -156,6 +158,9 @@
|
||||
"keysc": "キーボードショートカットの設定",
|
||||
"iks": "簡単文字入力",
|
||||
"okswarn": "絵文字やタグ、>BTなどを登録しておくとすぐに使えてええ感じや。",
|
||||
"plugin": "プラグイン",
|
||||
"howToWritePlugin": "AiScriptでTheDeskプラグイン書いたろ!",
|
||||
"pluginList": "プラグイン一覧",
|
||||
"muteemp": "ミュート・強調の設定",
|
||||
"climute": "クライアントミュート",
|
||||
"cliemp": "クライアント強調",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere":"ここにドラッグして添付(ドラッグと同時にアップロードされます)",
|
||||
"nowOffline":"オフラインです。投稿はすべて下書きに追加されます。オンライン復帰時には再読み込みを推奨します。",
|
||||
"reOnline": "オンラインに復帰しました。再読み込みを推奨します。",
|
||||
"webSrc": "Webで検索",
|
||||
"tsSrc": "tootsearchで検索",
|
||||
"close":"Close",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji":"もの",
|
||||
"symbolEmoji":"記号",
|
||||
"flagsEmoji":"国旗",
|
||||
"draft": "下書き",
|
||||
"poll":"アンケート",
|
||||
"pollDdisabled":"アンケートを使用しない",
|
||||
"pollProvider":"アンケートのプロバイダ",
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user