Compare commits
345 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68328a9449 | ||
|
|
141f2a3f39 | ||
|
|
7bbca06033 | ||
|
|
ebb72265b9 | ||
|
|
c98f433da6 | ||
|
|
2346ef7089 | ||
|
|
8aac6474da | ||
|
|
ffcecf38c8 | ||
|
|
77342206b1 | ||
|
|
b6a44e7a7c | ||
|
|
e138d357c7 | ||
|
|
66645982e9 | ||
|
|
4347f55077 | ||
|
|
ab9d45c775 | ||
|
|
9c0c662f25 | ||
|
|
63abdb2d53 | ||
|
|
47e2693368 | ||
|
|
b909cbe666 | ||
|
|
95f5ce13ba | ||
|
|
fed1496e68 | ||
|
|
da6993730c | ||
|
|
0a1d462ace | ||
|
|
1387482db0 | ||
|
|
b7a86324dd | ||
|
|
babc5a6424 | ||
|
|
74a468383c | ||
|
|
3a48f0ff0d | ||
|
|
e26363adf6 | ||
|
|
35d97d42c5 | ||
|
|
4fa7d07500 | ||
|
|
15f428528b | ||
|
|
7fa805fe3a | ||
|
|
fd9c97a126 | ||
|
|
f081154804 | ||
|
|
866affdf45 | ||
|
|
30aee556f1 | ||
|
|
b12c18aa08 | ||
|
|
f17a47d088 | ||
|
|
d79f096749 | ||
|
|
5b82b91c6a | ||
|
|
4a6b87ac1c | ||
|
|
1bea06354e | ||
|
|
5fbd5aaf10 | ||
|
|
0290a6d918 | ||
|
|
2576c48441 | ||
|
|
eb02dd2986 | ||
|
|
d92570fa3b | ||
|
|
38c988d2a2 | ||
|
|
0927282d41 | ||
|
|
5ffd59619c | ||
|
|
a739926ad4 | ||
|
|
e41c38f41d | ||
|
|
2de05b84aa | ||
|
|
0e9bdef9ca | ||
|
|
8e70e005c1 | ||
|
|
3817dbc925 | ||
|
|
63ec669c52 | ||
|
|
afc5702796 | ||
|
|
41ec66b58a | ||
|
|
936d3ca7fc | ||
|
|
f8b4b7b74d | ||
|
|
bd865977b0 | ||
|
|
d056db5617 | ||
|
|
7685677ada | ||
|
|
eb0aa81492 | ||
|
|
dc52531f28 | ||
|
|
5a20034b9f | ||
|
|
5cd0ef0d8a | ||
|
|
4daf47bb5f | ||
|
|
3e0dbd8433 | ||
|
|
fc4d3b24f6 | ||
|
|
3a9eab55a4 | ||
|
|
546b34275d | ||
|
|
3ee4cf27d5 | ||
|
|
87da95b9a4 | ||
|
|
3368e30e15 | ||
|
|
f1ea5ad8f1 | ||
|
|
fa2d5f8492 | ||
|
|
0f2c5de161 | ||
|
|
b69937d4fd | ||
|
|
e82faacbb2 | ||
|
|
2ab5c67545 | ||
|
|
358d01b12e | ||
|
|
95460fabbb | ||
|
|
0fb882b3ad | ||
|
|
3d0382d279 | ||
|
|
59d5aa4515 | ||
|
|
2dff9f9b17 | ||
|
|
03fded672e | ||
|
|
a21c1f5329 | ||
|
|
37815ced63 | ||
|
|
b7f9b8d668 | ||
|
|
f68af78099 | ||
|
|
027abffa01 | ||
|
|
5dfba4dd5e | ||
|
|
d0ae7e9cf9 | ||
|
|
5a57e984de | ||
|
|
473f4d7c24 | ||
|
|
35bfea2dbd | ||
|
|
62cb30cb5b | ||
|
|
9d2eb6f18b | ||
|
|
d5cd57c26d | ||
|
|
37695735e0 | ||
|
|
c15625c063 | ||
|
|
cd65bd4c2a | ||
|
|
fc3fead235 | ||
|
|
2e00282560 | ||
|
|
54d740e861 | ||
|
|
478a849e8d | ||
|
|
82c5b35d07 | ||
|
|
6cdd4cba9e | ||
|
|
dda9469874 | ||
|
|
334fbdab3f | ||
|
|
a5f8e34ee6 | ||
|
|
eba54d0906 | ||
|
|
070c40a958 | ||
|
|
8d308cae5e | ||
|
|
848e9fcf99 | ||
|
|
d146776b17 | ||
|
|
7da16a7428 | ||
|
|
7b46145114 | ||
|
|
725f0f789a | ||
|
|
772a5438aa | ||
|
|
3c276b329b | ||
|
|
e2cde71831 | ||
|
|
861ee3250d | ||
|
|
5672ccfa37 | ||
|
|
65e691cda8 | ||
|
|
56cca8b529 | ||
|
|
367f2f656e | ||
|
|
7f806bd155 | ||
|
|
a70444e3c7 | ||
|
|
1a72033571 | ||
|
|
a475407c27 | ||
|
|
b602cd92a9 | ||
|
|
2878a4a524 | ||
|
|
8b1ac63343 | ||
|
|
8d1012c9fb | ||
|
|
62f2654358 | ||
|
|
e7feb4b2c5 | ||
|
|
dcc62b32a2 | ||
|
|
26eecd11b6 | ||
|
|
8d388bbd4b | ||
|
|
409635b00c | ||
|
|
17a71ddbf6 | ||
|
|
d2a86af0e2 | ||
|
|
f23dc928b2 | ||
|
|
68e11dc222 | ||
|
|
075c3ef9ca | ||
|
|
6b004a3992 | ||
|
|
3cf198538a | ||
|
|
612400944e | ||
|
|
5f22d2427e | ||
|
|
2692967b7d | ||
|
|
2ed85ab978 | ||
|
|
f843872a14 | ||
|
|
b365b9d15b | ||
|
|
938ff926c3 | ||
|
|
7a1a6354df | ||
|
|
37e9d8242b | ||
|
|
8bf03f2809 | ||
|
|
c684a5b0d0 | ||
|
|
3281461809 | ||
|
|
2cd5cf505d | ||
|
|
42334450bf | ||
|
|
410633c873 | ||
|
|
ee67baf0b4 | ||
|
|
7afa959e6c | ||
|
|
ca0db95910 | ||
|
|
9825a84880 | ||
|
|
68260f3d85 | ||
|
|
d25fcfadc1 | ||
|
|
7059c1bb31 | ||
|
|
a4ac0af6e1 | ||
|
|
205a3bea44 | ||
|
|
748a69b3bd | ||
|
|
be36c3dd0b | ||
|
|
13384ed93f | ||
|
|
92b8a36019 | ||
|
|
225786e07f | ||
|
|
8c8cf44ed6 | ||
|
|
c3e6e657c9 | ||
|
|
04185ea07b | ||
|
|
49794e05d0 | ||
|
|
b2be1a7bcc | ||
|
|
2d167c9c2e | ||
|
|
5251ba9b3f | ||
|
|
df443003e4 | ||
|
|
3719b1ed40 | ||
|
|
d4a246ea59 | ||
|
|
c77b0f5924 | ||
|
|
bb1165ecf9 | ||
|
|
93d2e8e0d5 | ||
|
|
b0db765f25 | ||
|
|
68a3786fb8 | ||
|
|
9103ba6af1 | ||
|
|
dd8e89234c | ||
|
|
bcb358cc8b | ||
|
|
f42c59669f | ||
|
|
d656860b2e | ||
|
|
30744e402a | ||
|
|
43bac6f3e6 | ||
|
|
dae4371a3f | ||
|
|
990c2f796e | ||
|
|
89c3a4f8b1 | ||
|
|
ca12884735 | ||
|
|
07e907b599 | ||
|
|
e0bdd1e0b2 | ||
|
|
595b1a3c62 | ||
|
|
236392299b | ||
|
|
418b2e7668 | ||
|
|
052694dbde | ||
|
|
d529a105c5 | ||
|
|
40d877682b | ||
|
|
5e324f19ae | ||
|
|
9d8b9cbd04 | ||
|
|
54e5180732 | ||
|
|
dbf959782f | ||
|
|
33114ca3c8 | ||
|
|
4c2aebc7c1 | ||
|
|
b51470f999 | ||
|
|
b2be5f3706 | ||
|
|
06eb347cf8 | ||
|
|
81c5c1d86a | ||
|
|
82858b7b92 | ||
|
|
b3506aec3c | ||
|
|
de6e9c6f11 | ||
|
|
d3ff1aa17a | ||
|
|
3cde6d0bff | ||
|
|
bfade31849 | ||
|
|
3a06820f1e | ||
|
|
c5f712359d | ||
|
|
c9cca85db3 | ||
|
|
07b203b719 | ||
|
|
a636c745e4 | ||
|
|
e9024312a7 | ||
|
|
edbe3c164f | ||
|
|
8991cb5a96 | ||
|
|
b4aa5aead5 | ||
|
|
873a8fd229 | ||
|
|
d0ddc58160 | ||
|
|
6eebfed609 | ||
|
|
09b7b8633e | ||
|
|
c93326d218 | ||
|
|
a03c5c0ecf | ||
|
|
0380251294 | ||
|
|
d8f857e05d | ||
|
|
7a06a2b192 | ||
|
|
771db8c3ad | ||
|
|
9a800639e6 | ||
|
|
550c7b1805 | ||
|
|
ad7c7ffa66 | ||
|
|
57978bd152 | ||
|
|
5cd72a538c | ||
|
|
d439169c63 | ||
|
|
da39e0ded6 | ||
|
|
823fae5eac | ||
|
|
4f3a7c47e3 | ||
|
|
bd8d480e07 | ||
|
|
a09c031dbe | ||
|
|
1fee94846d | ||
|
|
4fb37525d5 | ||
|
|
8f25557f20 | ||
|
|
cb47eabed9 | ||
|
|
f8823a4c5a | ||
|
|
7fdd5964cc | ||
|
|
3aadcaef0f | ||
|
|
f58d4f349b | ||
|
|
9bb8ec0b66 | ||
|
|
ec9a14d63b | ||
|
|
82a00f4d1e | ||
|
|
af97f88d0a | ||
|
|
e27351481b | ||
|
|
4c375e2d0a | ||
|
|
53cd49d4e8 | ||
|
|
e36942180e | ||
|
|
6b58c88118 | ||
|
|
d20777ed18 | ||
|
|
202e389c20 | ||
|
|
707a5b2033 | ||
|
|
0967c93dde | ||
|
|
b13849a427 | ||
|
|
d0322c7bda | ||
|
|
494a4e90d6 | ||
|
|
d1968a2e69 | ||
|
|
51e6909f77 | ||
|
|
cec46faf19 | ||
|
|
53f880ab97 | ||
|
|
cc20b0a7c0 | ||
|
|
efac88db4c | ||
|
|
2e1c076b5f | ||
|
|
5a03df6ee9 | ||
|
|
ade5893183 | ||
|
|
8a17e737f9 | ||
|
|
94c1ff3731 | ||
|
|
4e5fe2fc91 | ||
|
|
f88ed31e38 | ||
|
|
7df51c161b | ||
|
|
b5d1686c12 | ||
|
|
a1048b3243 | ||
|
|
f9090e261d | ||
|
|
4029f168df | ||
|
|
7965e7c742 | ||
|
|
932e6731c9 | ||
|
|
3c3eb5209b | ||
|
|
a07d6b3172 | ||
|
|
253f742332 | ||
|
|
35e262293d | ||
|
|
972ea9f5ed | ||
|
|
0c1191e362 | ||
|
|
426e48325c | ||
|
|
6c86825732 | ||
|
|
e0cae78827 | ||
|
|
09d3643b19 | ||
|
|
ed93d5b4f2 | ||
|
|
f0d7d84f8e | ||
|
|
05fab4c45c | ||
|
|
3059ec9941 | ||
|
|
892872869b | ||
|
|
0db7ed4a33 | ||
|
|
54e12db08b | ||
|
|
6fb90f0c8e | ||
|
|
5f3257a83b | ||
|
|
f333595817 | ||
|
|
cc1018c65d | ||
|
|
1c16a5f4a0 | ||
|
|
0ad7bf9036 | ||
|
|
1670c0bc08 | ||
|
|
f1c4276d06 | ||
|
|
50bfbbd755 | ||
|
|
f5afafe26a | ||
|
|
c524777505 | ||
|
|
8155baa07d | ||
|
|
32c56dcf6a | ||
|
|
9e982dca37 | ||
|
|
6f25ece72d | ||
|
|
b28023bec2 | ||
|
|
0df8baa7bf | ||
|
|
14c647ca46 | ||
|
|
f2ff82c810 | ||
|
|
2ce9f55f28 | ||
|
|
4c3c1ac56e | ||
|
|
4aa14a14a2 | ||
|
|
a398fae023 | ||
|
|
100bd648a9 |
8
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: cutls
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
custom: https://www.pixiv.net/fanbox/creator/28105985
|
||||
6
.gitignore
vendored
@@ -3,10 +3,7 @@
|
||||
*.7z
|
||||
*.exe
|
||||
TheDesk-*
|
||||
app/build
|
||||
build
|
||||
make.js
|
||||
make_js.js
|
||||
build/*
|
||||
app/.DS_Store
|
||||
.DS_Store
|
||||
.vs/*
|
||||
@@ -15,3 +12,4 @@ enq.md
|
||||
app/.tkn
|
||||
app/node_modules
|
||||
app/js/login/tkn.js
|
||||
app/package-lock.json
|
||||
50
.travis.yml
@@ -1,33 +1,47 @@
|
||||
os: windows
|
||||
os:
|
||||
- windows
|
||||
- linux
|
||||
- osx
|
||||
language: node_js
|
||||
node_js:
|
||||
- '10.15.2'
|
||||
script: node -v
|
||||
before_deploy:
|
||||
- cd app
|
||||
- npm install electron-builder -g
|
||||
- cd app
|
||||
- VERSION=$(cat package.json | grep version | head -1 | awk -F= "{ print $2 }" | sed 's/[version:,\",]//g' | tr -d '[[:space:]]')
|
||||
- npm install
|
||||
- electron-builder --win --ia32
|
||||
- mv ../build/TheDesk-setup.exe ../TheDesk-setup-ia32.exe
|
||||
- mv ../build/TheDesk*.exe ../TheDesk-ia32.exe
|
||||
- electron-builder --win --x64
|
||||
- mv ../build/TheDesk-setup.exe ../TheDesk-setup.exe
|
||||
- mv ../build/TheDesk*.exe ../TheDesk.exe
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then electron-builder --mac -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then electron-builder --linux --x64 -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then ls;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then mv thedesk-*.zip thedesk.zip;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../app;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then electron-builder --win --ia32 -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then ls;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then mv TheDesk-setup.exe TheDesk-setup-ia32.exe;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then mv *$VERSION.exe TheDesk-ia32.exe;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../app;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then electron-builder --win --x64 -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then ls;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then mv ../build/TheDesk-setup.exe ../build/TheDesk-setup.exe;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then mv ../build/*$VERSION.exe ../build/TheDesk.exe;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../app;else :;fi
|
||||
- cd ../
|
||||
- ls
|
||||
after_deploy: ls
|
||||
- ls build
|
||||
deploy:
|
||||
skip_cleanup: true
|
||||
provider: releases
|
||||
# GitHub にリリースするための API KEY を暗号化した値
|
||||
api_key:
|
||||
secure: jndR02p5KRTtcJk18b3YsXL2cC+yzEf1AOqXdpWciF8f3lO5oY01jlxd17xdHIcK7VywSsLVZpLToSdqAoIEhJ5OxEQ/FmA3FlmbwwD6ou13gLa4VGIvsBHveCmKGjVu0Z++atIy76tZYU1SOWFWv4B0ZhnVz2ca2VZynvLgw3YNsPJH7rHO966GXgRkGYJAJ4UvLg3sj/iztVh2FSfbUj5IGO1e/JHJO63wAo1MSQtRjkutVgl/djnBLC6vbL4YHkM3Ynpkx/YQEcxwrmeY0Ra8D5yYDq4MNIDMmZahWC+k4u2eA2Cj2ifBFNxbZvTN75vLwRBp6DsTNHsiqkXrSPDBdNeet31RbwTQ6LtsK8jqmL4S/59dmLcj7uCU2WxyBLPbJdbdZWlqW2ZQvfQY8QVAYy7S3MiHQWQN0oP5wqXk89jcgR42ig/zsqFNPpXHM4mExR7l/gDLPg0j9c3XEF6sWtk3FmJN1i4+B+9kn09b6UKlV7EFPKp8XcFNrz4ZcE9/I8lKwsqLVG2jAXIk7Z9LwDRcAmK5eG348X5zwFtOY6raKIvRw2cn92bPnEI+55v8A4WANS2647GFTgxHj30D0d/sOZmJ5BS34zpdWTgE0AlKg7sOqkncjqoW5J5zCh5Ow7b3KXvEvlAts44mAag8tZTectxMP4iguXvTnv4=
|
||||
# Releases ページにアップロードするファイル
|
||||
file_glob: true
|
||||
file:
|
||||
- TheDesk.exe
|
||||
- TheDesk-setup.exe
|
||||
- TheDesk-ia32.exe
|
||||
- TheDesk-setup-ia32.exe
|
||||
- build/*
|
||||
skip_cleanup: true
|
||||
on:
|
||||
repo: cutls/TheDesk
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
tags: true
|
||||
all_branches: true
|
||||
118
README.md
@@ -1,51 +1,54 @@
|
||||
<img src="https://thedesk.top/img/top.png" width="300" align="left">
|
||||
<img src="https://thedesk.top/img/desk.png" width="150" align="right">
|
||||
|
||||
# TheDesk
|
||||
|
||||
[](https://travis-ci.org/cutls/TheDesk)
|
||||
[](https://translate.thedesk.top/project/thedesk)
|
||||
[](https://bit.ly/31zqMmZ)
|
||||
[](https://github.com/cutls/TheDesk/releases)
|
||||

|
||||
Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
||||
オープンソースSNSマストドン/MisskeyのWindows/Linuxクライアント
|
||||
Download:[TheDesk](https://thedesk.top)
|
||||
オープンソースSNSマストドン/MisskeyのPC向けクライアント[日本語はこちら](README_ja.md)
|
||||
|
||||
Contact me(bug report...):GitHub Issues, mention to [Cutls@kirishima.cloud](https://kirishima.cloud/@Cutls) or toot with #Desk
|
||||
Download:[TheDesk](https://thedesk.top) [](https://status.cutls.com)
|
||||
|
||||
バグレポートなど:GitHub Issuesや[Cutls@kirishima.cloud](https://kirishima.cloud/@Cutls)へのリプ,または#Deskでトゥートして下さい.
|
||||
<a href="https://www.patreon.com/cutls"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160"></a>
|
||||
<a href="https://liberapay.com/cutls/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a>
|
||||

|
||||
|
||||
### Contribute/コントリビュート
|
||||
|
||||
Please make a pull request to ***WIP(before CI)*** brunch
|
||||
***WIP(before CI)*** ブランチにプルリクエストをお願いします。
|
||||
|
||||
## License/ライセンス
|
||||
## License
|
||||
|
||||
[GNU General Public License v3.0](https://github.com/cutls/TheDesk/blob/master/LICENSE)
|
||||
|
||||
The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/)/アイコンは[クリエイティブ・コモンズ 表示-非営利-継承](https://creativecommons.org/licenses/by-nc-sa/4.0/)で提供されています。
|
||||
[Press Kit](https://dl.thedesk.top/press/TheDesk+PressKit.zip)
|
||||
The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/)
|
||||
[Press Kit](https://d2upiril6ywqp9.cloudfront.net/press/TheDesk+PressKit.zip)
|
||||
|
||||
* [PNG](https://dl.thedesk.top/press/TheDesk.png)
|
||||
* [Monotone SVG](https://dl.thedesk.top/press/TheDesk.svg)
|
||||
* [ico](https://dl.thedesk.top/press/TheDesk.ico)
|
||||
* [icns](https://dl.thedesk.top/press/TheDesk.icns)
|
||||
* [PNG 512x512](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.png)
|
||||
* [SVG 4095x4096](https://d2upiril6ywqp9.cloudfront.net/press/thedesk-fullcolor.svg)
|
||||
* [ico 256x256](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ico)
|
||||
* [icns old](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.icns)
|
||||
* [Illustrator .ai](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ai)
|
||||
|
||||
## Terms of Use/利用規約
|
||||
The default sounds of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/)
|
||||
|
||||
## Terms of Use
|
||||
|
||||
* [利用規約(Terms of Use(ja))](https://thedesk.top/tos.html)
|
||||
* [プライバシーポリシー(Privacy Policy(ja))](https://thedesk.top/priv.html)
|
||||
|
||||
## Language/言語
|
||||
## Language
|
||||
|
||||
* 日本語(Japanese)
|
||||
* English(英語)
|
||||
* English
|
||||
|
||||
### Translation/翻訳
|
||||
### Translation
|
||||
|
||||
Crowdin project is available! Visit: https://translate.thedesk.top
|
||||
|
||||
Crowdinから翻訳に参加してみませんか?: https://translate.thedesk.top
|
||||
## Requirement and development
|
||||
|
||||
## Requirement/環境
|
||||
|
||||
* Electron 3.0.10(install yourself)
|
||||
* Electron 4.2 or above(install yourself)
|
||||
* electron-dl(in package.json)
|
||||
* Jimp(in package.json)
|
||||
* font-manager(in package.json)
|
||||
@@ -56,28 +59,51 @@ Crowdinから翻訳に参加してみませんか?: https://translate.thedesk.
|
||||
* sumchecker(in package.json)
|
||||
* Ability to read unformated files!(install yourself)
|
||||
|
||||
## Contributors/主なコントリビューター
|
||||
### Run on developer mode
|
||||
|
||||
macOSビルダー
|
||||
`npm run dev` on `app` folder.
|
||||
|
||||
* [とねぢ](https://minohdon.jp/@toneji)
|
||||
## Contributors
|
||||
|
||||
Linuxビルダー
|
||||
Build for macOS
|
||||
|
||||
* [ぽぷんじゃ](https://popon.pptdn.jp/@popn_ja)
|
||||
* [toneji](https://minohdon.jp/@toneji)
|
||||
|
||||
iTunes NowPlayingにアルバムアートワークを付けてくれた人
|
||||
Build for Linux
|
||||
|
||||
* [kPherox](https://www.kr-kp.com/)
|
||||
* [popn_ja](https://popon.pptdn.jp/@popn_ja)
|
||||
|
||||
## Build/ビルド
|
||||
Fellow coder
|
||||
|
||||
Misskey(misskey.xyz) application token is not in cutls/TheDesk
|
||||
Misskey(misskey.xyz)のトークンは含まれておりません。
|
||||
`git clone https://github.com/cutls/TheDesk`
|
||||
`npm install electron -g`
|
||||
`cd TheDesk/app`
|
||||
`npm install`
|
||||
* [kPherox](https://pl.kpherox.dev/kPherox)
|
||||
|
||||
## Build
|
||||
|
||||
```sh
|
||||
git clone https://github.com/cutls/TheDesk
|
||||
cd TheDesk/app
|
||||
npm install
|
||||
npm install --only=dev
|
||||
```
|
||||
|
||||
### electron-builder(Recommended)
|
||||
Use npm scripts.
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
Config is all on package.json
|
||||
|
||||
### electron-packager
|
||||
`npm install --save-dev electron-rebuild`
|
||||
|
||||
Linux/macOS
|
||||
@@ -86,13 +112,8 @@ Windows
|
||||
`.\node_modules\.bin\electron-rebuild.cmd`
|
||||
|
||||
To install Python 2.x and Visual C++ for Windows, before running `npm install --save-dev electron-rebuild`
|
||||
WindowsでPython 2.xやVisualC++を一発でインストールできるツールもあります(`npm install --save-dev electron-rebuild`の前に)
|
||||
`npm install --global windows-build-tools`
|
||||
|
||||
日本語話者向けですが、macOSビルドにはXCodeが要るとの情報があります。([とねぢ](https://minohdon.jp/@toneji)氏談)
|
||||
|
||||
### electron-packager
|
||||
|
||||
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`
|
||||
Linux
|
||||
@@ -100,19 +121,8 @@ Linux
|
||||
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-builder
|
||||
|
||||
Config is all on package.json
|
||||
ビルド設定はすべてpackage.jsonに記載しています。
|
||||
|
||||
## Pleroma support
|
||||
|
||||
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.
|
||||
Pleromaは、Mastodon APIとの互換性を謳っていますが、実際には様々な差異があり、TheDeskで不具合が発生することがあります。
|
||||
Issuesに書いてある問題についてはなるべく対処しますので、ぜひお知らせください。
|
||||
|
||||
## See also/詳しく
|
||||
|
||||
[TheDesk - マストドン日本語ウィキ](https://ja.mstdn.wiki/TheDesk)
|
||||
|
||||
133
README_ja.md
Normal file
@@ -0,0 +1,133 @@
|
||||
<img src="https://thedesk.top/img/top.png" width="300" align="left">
|
||||
<img src="https://thedesk.top/img/desk.png" width="150" align="right">
|
||||
|
||||
# TheDesk
|
||||
|
||||
[](https://travis-ci.org/cutls/TheDesk)
|
||||
[](https://translate.thedesk.top/project/thedesk)
|
||||
[](https://bit.ly/31zqMmZ)
|
||||
[](https://github.com/cutls/TheDesk/releases)
|
||||

|
||||
Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
||||
オープンソースSNSマストドン/MisskeyのPC向けクライアント
|
||||
Download:[TheDesk](https://thedesk.top) [](https://status.cutls.com)
|
||||
|
||||
[Pixiv FANBOX](https://www.pixiv.net/fanbox/creator/28105985)
|
||||
|
||||

|
||||
|
||||
## ライセンス
|
||||
|
||||
[GNU General Public License v3.0](https://github.com/cutls/TheDesk/blob/master/LICENSE)
|
||||
|
||||
アイコンは[クリエイティブ・コモンズ 表示-非営利-継承](https://creativecommons.org/licenses/by-nc-sa/4.0/)で提供されています。
|
||||
[プレスキット](https://d2upiril6ywqp9.cloudfront.net/press/TheDesk+PressKit.zip)
|
||||
|
||||
* [PNG 512x512](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.png)
|
||||
* [SVG 4095x4096](https://d2upiril6ywqp9.cloudfront.net/press/thedesk-fullcolor.svg)
|
||||
* [ico 256x256](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ico)
|
||||
* [icns old](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.icns)
|
||||
* [Illustrator .ai](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ai)
|
||||
|
||||
標準の通知音は [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/) で提供されています。
|
||||
|
||||
## 利用規約
|
||||
|
||||
* [利用規約](https://thedesk.top/tos.html)
|
||||
* [プライバシーポリシー](https://thedesk.top/priv.html)
|
||||
|
||||
## 言語
|
||||
|
||||
* 日本語
|
||||
* English(英語)
|
||||
|
||||
### 翻訳
|
||||
|
||||
Crowdinから翻訳に参加してみませんか?: https://translate.thedesk.top
|
||||
|
||||
## 環境
|
||||
|
||||
* Electron 4.2以上(自分で入れて)
|
||||
* electron-dl(in package.json)
|
||||
* Jimp(in package.json)
|
||||
* font-manager(in package.json)
|
||||
* Python 2.x(自分で入れて)
|
||||
* VisualC++(Windows)(自分で入れて)
|
||||
* itunes-nowplaying-mac(macOS向け)(in package.json)
|
||||
* node-notifier(in package.json)
|
||||
* sumchecker(in package.json)
|
||||
* Ability to read unformated files!(自分で入れて)
|
||||
|
||||
### デベロッパーモード
|
||||
|
||||
`npm run dev`を`app`フォルダ内で実行
|
||||
|
||||
## 主なコントリビューター
|
||||
|
||||
macOSビルダー
|
||||
|
||||
* [とねぢ](https://minohdon.jp/@toneji)
|
||||
|
||||
Linuxビルダー
|
||||
|
||||
* [ぽぷんじゃ](https://popon.pptdn.jp/@popn_ja)
|
||||
|
||||
iTunes NowPlayingにアルバムアートワークを付けてくれた人
|
||||
|
||||
* [kPherox](https://pl.kpherox.dev/kPherox)
|
||||
|
||||
## ビルド
|
||||
|
||||
|
||||
```sh
|
||||
git clone https://github.com/cutls/TheDesk
|
||||
cd TheDesk/app
|
||||
npm install
|
||||
npm install --only=dev
|
||||
```
|
||||
|
||||
### electron-builder(推奨)
|
||||
npm scriptsを利用します
|
||||
|
||||
```sh
|
||||
# 実行している環境向けにビルド
|
||||
npm run build
|
||||
|
||||
# ターゲットを指定してビルド
|
||||
## Windows
|
||||
npm run build:win
|
||||
|
||||
## macOS向けのビルドにはmacOSで実行する必要があるためこのコマンドではビルドされません
|
||||
npm run build:all
|
||||
```
|
||||
|
||||
ビルド設定はすべてpackage.jsonに記載しています。
|
||||
|
||||
### electron-packager(非推奨)
|
||||
`npm install --save-dev electron-rebuild`
|
||||
|
||||
Linux/macOS
|
||||
`./node_modules/.bin/electron-rebuild`
|
||||
Windows
|
||||
`.\node_modules\.bin\electron-rebuild.cmd`
|
||||
|
||||
WindowsでPython 2.xやVisualC++を一発でインストールできるツールもあります(`npm install --save-dev electron-rebuild`の前に)
|
||||
`npm install --global windows-build-tools`
|
||||
|
||||
日本語話者向けですが、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`
|
||||
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`
|
||||
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`
|
||||
|
||||
## Pleromaのサポート
|
||||
|
||||
Pleromaは、Mastodon APIとの互換性を謳っていますが、実際には様々な差異があり、TheDeskで不具合が発生することがあります。
|
||||
Issuesに書いてある問題についてはなるべく対処しますので、ぜひお知らせください。
|
||||
|
||||
## 詳しく
|
||||
|
||||
[TheDesk - マストドン日本語ウィキ](https://ja.mstdn.wiki/TheDesk)
|
||||
201
app/about.html
@@ -1,109 +1,122 @@
|
||||
<!doctype html>
|
||||
<html lang="ja">
|
||||
|
||||
<head>
|
||||
<title>TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="./css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href='./css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href="./css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="./css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300|Baloo+Bhai" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
body{
|
||||
font-family:'Open Sans';
|
||||
-webkit-app-region: drag;
|
||||
cursor: move;
|
||||
}
|
||||
a,button{
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
.container {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
|
||||
grid-template-areas: 'name1 data1' 'name2 data2' 'name3 data3' 'name4 data4' 'name5 data5';
|
||||
text-align:left;
|
||||
margin:5px;
|
||||
}
|
||||
<title>TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="./node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href='./css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href="./css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="./css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300|Baloo+Bhai" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Open Sans';
|
||||
-webkit-app-region: drag;
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.area-name1 {
|
||||
grid-area: name1;
|
||||
}
|
||||
a,
|
||||
button {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
|
||||
.area-data1 {
|
||||
grid-area: data1;
|
||||
}
|
||||
.container {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
|
||||
grid-template-areas: 'name1 data1''name2 data2''name3 data3''name4 data4''name5 data5';
|
||||
text-align: left;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.area-name2 {
|
||||
grid-area: name2;
|
||||
}
|
||||
.area-name1 {
|
||||
grid-area: name1;
|
||||
}
|
||||
|
||||
.area-data2 {
|
||||
grid-area: data2;
|
||||
}
|
||||
.area-data1 {
|
||||
grid-area: data1;
|
||||
}
|
||||
|
||||
.area-name3 {
|
||||
grid-area: name3;
|
||||
}
|
||||
.area-name2 {
|
||||
grid-area: name2;
|
||||
}
|
||||
|
||||
.area-data3 {
|
||||
grid-area: data3;
|
||||
}
|
||||
.area-data2 {
|
||||
grid-area: data2;
|
||||
}
|
||||
|
||||
.area-name4 {
|
||||
grid-area: name4;
|
||||
}
|
||||
.area-name3 {
|
||||
grid-area: name3;
|
||||
}
|
||||
|
||||
.area-data4 {
|
||||
grid-area: data4;
|
||||
}
|
||||
.area-data3 {
|
||||
grid-area: data3;
|
||||
}
|
||||
|
||||
.area-name5 {
|
||||
grid-area: name5;
|
||||
}
|
||||
.area-name4 {
|
||||
grid-area: name4;
|
||||
}
|
||||
|
||||
.area-data5 {
|
||||
grid-area: data5;
|
||||
}
|
||||
</style>
|
||||
.area-data4 {
|
||||
grid-area: data4;
|
||||
}
|
||||
|
||||
.area-name5 {
|
||||
grid-area: name5;
|
||||
}
|
||||
|
||||
.area-data5 {
|
||||
grid-area: data5;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="center " style="overflow:hidden">
|
||||
<script type="text/javascript" src="./js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="./js/platform/first-not-view.js"></script>
|
||||
<script type="text/javascript" src="./js/common/materialize.js"></script>
|
||||
<img src="./img/desk.png" style="max-width:70%;">
|
||||
<h5>TheDesk</h5>
|
||||
<div class='container'>
|
||||
<div class='area-name1'>バージョン</div>
|
||||
<div class='area-data1' id="now"></div>
|
||||
<div class='area-name2'>Internal version</div>
|
||||
<div class='area-data2' id="ver"></div>
|
||||
<div class='area-name3'>Chromium</div>
|
||||
<div class='area-data3' id="chrome"></div>
|
||||
<div class='area-name4'>Electron</div>
|
||||
<div class='area-data4' id="electron"></div>
|
||||
<div class='area-name5'>Node.js</div>
|
||||
<div class='area-data5' id="node"></div>
|
||||
</div>
|
||||
<div class="cp">Copyright © TheDesk 2018 All rights reserved.<br><a href="https://thedesk.top" target="_blank">Web site</a></div>
|
||||
<button onclick="window.close()" class="btn waves-effect indigo" style="width:calc(100% - 10px);"><i class="material-icons left">close</i>Close</button>
|
||||
<script type="text/javascript" src="./js/ui/theme.js"></script>
|
||||
<script>
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
var electron = require("electron");
|
||||
var remote=electron.remote;
|
||||
//JSON.parse(fs.readFileSync(info_path, 'utf8'));
|
||||
console.log(process.versions);
|
||||
$("#node").text(process.version);
|
||||
$("#chrome").text(process.versions.chrome);
|
||||
$("#electron").text(process.versions.electron);
|
||||
if(location.search){
|
||||
var m = location.search.match(/\?ver=([a-zA-Z-0-9.]+)/);
|
||||
var ver=m[1];
|
||||
$("#ver").text(ver);
|
||||
}
|
||||
|
||||
</script>
|
||||
<script type="text/javascript" src="./js/platform/end.js"></script>
|
||||
<body class="center " style="overflow:hidden">
|
||||
<script type="text/javascript" src="./node_modules/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="./js/platform/first-not-view.js"></script>
|
||||
<script type="text/javascript" src="./node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||
<img src="./img/desk.svg" style="max-width:62%;">
|
||||
<h5>TheDesk</h5>
|
||||
<div class="container">
|
||||
<div class="area-name1">Display version</div>
|
||||
<div class="area-data1" id="now"></div>
|
||||
<div class="area-name2">Internal version</div>
|
||||
<div class="area-data2" id="ver"></div>
|
||||
<div class="area-name3">Chromium</div>
|
||||
<div class="area-data3" id="chrome"></div>
|
||||
<div class="area-name4">Electron</div>
|
||||
<div class="area-data4" id="electron"></div>
|
||||
<div class="area-name5">Node.js</div>
|
||||
<div class="area-data5" id="node"></div>
|
||||
</div>
|
||||
<div class="cp">Copyright © TheDesk 2018<br>
|
||||
Main developer(author): <a href="https://cutls.com/@Cutls" target="_blank">Cutls P</a><br>
|
||||
Thanks:<a href="https://minohdon.jp/@toneji" target="_blank">toneji</a>/<a
|
||||
href="https://popon.pptdn.jp/@popn_ja" target="_blank">popn_ja</a>/<a href="https://pl.kpherox.dev/kPherox"
|
||||
target="_blank">kPherox</a> and all users
|
||||
<img draggable="false" style="width:0.8rem;top: 1px;margin-left: 1px;position: relative;" alt="❤️"
|
||||
title=":heart:" src="https://twemoji.maxcdn.com/2/72x72/2764.png">
|
||||
<br><a href="https://thedesk.top" target="_blank">Web site</a></div>
|
||||
<button onclick="window.close()" class="btn waves-effect indigo" style="width:calc(100% - 10px);"><i
|
||||
class="material-icons left">close</i>Close</button>
|
||||
<script type="text/javascript" src="./js/ui/theme.js"></script>
|
||||
<script>
|
||||
var about = JSON.parse(localStorage.getItem("about"));
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
$("#node").text(about[0]);
|
||||
$("#chrome").text(about[1]);
|
||||
$("#electron").text(about[2]);
|
||||
if (location.search) {
|
||||
var m = location.search.match(/\?ver=([a-zA-Z-0-9.]+)/);
|
||||
var ver = m[1];
|
||||
$("#ver").text(ver);
|
||||
}
|
||||
$(document).on('click', 'a', e => {
|
||||
var url = $(e.target).attr('href');
|
||||
postMessage(["openUrl", url], "*")
|
||||
return false;
|
||||
});
|
||||
</script>
|
||||
260
app/adobe.html
@@ -1,260 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="ja">
|
||||
<head>
|
||||
<title>Adobe Photo Editor - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="./css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="./css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="./css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="./css/auth.css" type="text/css" rel="stylesheet">
|
||||
<link href='./css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||
<link href='./css/tl.css' rel='stylesheet' type='text/css'>
|
||||
<link href='./css/userdata.css' rel='stylesheet' type='text/css'>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||
<style>
|
||||
#cb-drag {
|
||||
margin-bottom: 8px;
|
||||
padding: 24px 0;
|
||||
text-align: center;
|
||||
}
|
||||
#cb-drag p {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
#cb-file {
|
||||
cursor: pointer;
|
||||
}
|
||||
#cb-display {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
#cb-display p {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
.cb-div {
|
||||
padding: 16px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.cb-image {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
</style>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="./js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="./js/platform/first-not-view.js"></script>
|
||||
<script type="text/javascript" src="./js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="./js/ui/tips.js"></script>
|
||||
<script type="text/javascript" src="./js/common/time.js"></script>
|
||||
<script type="text/javascript" src="./js/common/modal.js"></script>
|
||||
<div>
|
||||
<div id="cb-drag">
|
||||
<p>ここに画像ファイルをドラッグし、画像をクリックしてください。</p>
|
||||
<input type="file" id="cb-file">
|
||||
</div>
|
||||
<div id="cb-display"></div>
|
||||
</div>
|
||||
<script type="text/javascript" src="https://dme0ih8comzn4.cloudfront.net/imaging/v2/editor.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
var dragAndDrop = (function (window, document) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var drag = document.getElementById("mainView");
|
||||
var disp = document.getElementById("cb-display");
|
||||
var file = document.getElementById("cb-file");
|
||||
|
||||
function makeView(data) {
|
||||
|
||||
var div, img, customEvent;
|
||||
var metaData = "<p>■ファイル名: <b>" + data.name + "</b><br>■容量: <b>" + data.size + "</b>バイト</p>";
|
||||
|
||||
div = document.createElement("div");
|
||||
div.setAttribute("class", "cb-div");
|
||||
|
||||
img = document.createElement("img");
|
||||
img.src = data.url;
|
||||
img.setAttribute("class", "cb-image");
|
||||
img.style.maxWidth = "100%";
|
||||
img.style.height = "auto";
|
||||
|
||||
div.appendChild(img);
|
||||
img.insertAdjacentHTML("afterend", metaData);
|
||||
disp.appendChild(div);
|
||||
|
||||
customEvent = document.createEvent("HTMLEvents");
|
||||
customEvent.initEvent("makeView", true, false);
|
||||
div.dispatchEvent(customEvent);
|
||||
|
||||
}
|
||||
|
||||
function readImage(e) {
|
||||
|
||||
var f = (e.dataTransfer) ? e.dataTransfer.files : e.target.files;
|
||||
|
||||
for (var i = 0, l = f.length; i < l; i++) {
|
||||
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onload = (function (f) {
|
||||
|
||||
var imageData = {};
|
||||
|
||||
return function (evt) {
|
||||
|
||||
if (f.type === "image/gif" || f.type === "image/png" || f.type === "image/jpeg") {
|
||||
|
||||
imageData.type = f.type;
|
||||
imageData.name = f.name;
|
||||
imageData.size = f.size;
|
||||
imageData.date = f.lastModifiedDate.toLocaleDateString();
|
||||
imageData.url = evt.target.result;
|
||||
makeView(imageData);
|
||||
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
})(f[i]);
|
||||
|
||||
reader.readAsDataURL(f[i]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function dragFiles() {
|
||||
|
||||
drag.addEventListener("drop", function (e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
readImage(e);
|
||||
}, false);
|
||||
|
||||
drag.addEventListener("dragover", function (e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
function uploadFiles() {
|
||||
|
||||
file.addEventListener("change", function(e) {
|
||||
readImage(e);
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
return {
|
||||
init: function () {
|
||||
dragFiles();
|
||||
uploadFiles();
|
||||
}
|
||||
};
|
||||
|
||||
})(this, this.document);
|
||||
|
||||
var photoEditor = (function (window, document) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var featherEditor = new Aviary.Feather({
|
||||
apiKey: "ffee425017ab44b18ce95dab98a5cdc1",
|
||||
onSave: function(imageID, newURL) {
|
||||
var img1 = document.getElementById(imageID);
|
||||
img1.src = newURL;
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('bmp-image', [newURL,0]);
|
||||
window.close();
|
||||
}
|
||||
});
|
||||
|
||||
function clearImage() {
|
||||
this.parentNode.style.display = "none";
|
||||
}
|
||||
|
||||
function launchEditor(id, src) {
|
||||
featherEditor.launch({
|
||||
image: id,
|
||||
url: src
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
function editPhoto() {
|
||||
//console.log(this);
|
||||
var id = this.getAttribute("id");
|
||||
var src = this.getAttribute("src");
|
||||
launchEditor(id, src);
|
||||
}
|
||||
|
||||
function makeButton() {
|
||||
var button = document.createElement("button");
|
||||
button.setAttribute("style",
|
||||
"width: 64px;"
|
||||
+ " line-height: 24px;"
|
||||
+ " background-color: #37474F;"
|
||||
+ " color: #fff;"
|
||||
+ " border: none;"
|
||||
+ " cursor: pointer;"
|
||||
+ " border-radius: 2px;"
|
||||
+ " font-size: 14px;"
|
||||
+ " position: absolute;"
|
||||
+ " text-align: center;"
|
||||
+ " top: 16px;"
|
||||
+ " right: 8px;"
|
||||
+ " padding: 0;"
|
||||
+ " z-index: 1000;"
|
||||
);
|
||||
button.innerHTML = "削除";
|
||||
return button;
|
||||
}
|
||||
|
||||
function listener() {
|
||||
|
||||
var disp = document.getElementById("cb-display");
|
||||
|
||||
disp.addEventListener("makeView", function () {
|
||||
|
||||
var image = document.querySelectorAll(".cb-image");
|
||||
var button = [];
|
||||
|
||||
for (var i = 0, l = image.length; i < l; i++) {
|
||||
|
||||
button[i] = makeButton();
|
||||
image[i].setAttribute("id", "cb-image_" + i);
|
||||
image[i].parentNode.style.position = "relative";
|
||||
image[i].parentNode.appendChild(button[i]);
|
||||
|
||||
button[i].addEventListener("click", clearImage, false);
|
||||
image[i].addEventListener("click", editPhoto, false);
|
||||
}
|
||||
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
return {
|
||||
init: function () {
|
||||
listener();
|
||||
}
|
||||
};
|
||||
|
||||
})(this, this.document);
|
||||
|
||||
dragAndDrop.init();
|
||||
photoEditor.init();
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="./js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="./js/platform/end.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
112
app/build.js
Normal file
@@ -0,0 +1,112 @@
|
||||
const builder = require("electron-builder");
|
||||
const fs = require('fs');
|
||||
const os = process.platform;
|
||||
const Platform = builder.Platform
|
||||
const Arch = builder.Arch
|
||||
const targets = new Map();
|
||||
const archToType = new Map();
|
||||
const pref = {
|
||||
productName: "TheDesk",
|
||||
appId: "top.thedesk",
|
||||
asarUnpack: [
|
||||
"node_modules/itunes-nowplaying-mac"
|
||||
],
|
||||
directories: {
|
||||
output: "../build/"
|
||||
},
|
||||
win: {
|
||||
icon: "build/thedesk.ico",
|
||||
target: [
|
||||
"nsis",
|
||||
"portable",
|
||||
"appx"
|
||||
]
|
||||
},
|
||||
appx: {
|
||||
identityName: "53491Cutls.TheDesk",
|
||||
applicationId: "Cutls.TheDesk",
|
||||
publisherDisplayName: "Cutls",
|
||||
publisher: "CN=629757F5-A5EE-474F-9562-B304A89A9FD1",
|
||||
languages: [
|
||||
"JA-JP",
|
||||
"EN-US"
|
||||
]
|
||||
},
|
||||
nsis: {
|
||||
oneClick: false,
|
||||
allowToChangeInstallationDirectory: true
|
||||
},
|
||||
linux: {
|
||||
icon: "build/icons",
|
||||
target: [
|
||||
"zip",
|
||||
"snap"
|
||||
],
|
||||
category: "Network"
|
||||
},
|
||||
mac: {
|
||||
target: [
|
||||
"dmg",
|
||||
"zip"
|
||||
]
|
||||
},
|
||||
electronDownload: {
|
||||
version: "5.0.1"
|
||||
},
|
||||
electronVersion: "5.0.1"
|
||||
}
|
||||
const json = JSON.parse(fs.readFileSync("package.json", 'utf8'));
|
||||
const version = json.version;
|
||||
|
||||
|
||||
if (os == "win32") {
|
||||
archToType.set(Arch.ia32, []);
|
||||
targets.set(Platform.WINDOWS, archToType);
|
||||
} else if (os == "linux") {
|
||||
archToType.set(Arch.x64, []);
|
||||
archToType.set(Arch.ia32, []);
|
||||
targets.set(Platform.LINUX, archToType);
|
||||
} else if (os == "darwin") {
|
||||
archToType.set(Arch.x64, []);
|
||||
targets.set(Platform.MAC, archToType);
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
builder.build({
|
||||
targets: targets,
|
||||
config: pref
|
||||
})
|
||||
.then(() => {
|
||||
console.log("Done on "+os)
|
||||
if (os == "win32") {
|
||||
console.log("Windows")
|
||||
fs.renameSync('../build/TheDesk ' + version + '.exe', '../build/TheDesk-ia32.exe');
|
||||
fs.renameSync('../build/TheDesk Setup ' + version + '.exe', '../build/TheDesk-setup-ia32.exe');
|
||||
retry()
|
||||
}else if (os == "linux") {
|
||||
console.log("Linux")
|
||||
fs.renameSync('../build/thedesk-' + version + '.zip', '../build/TheDesk.zip');
|
||||
fs.renameSync('../build/TheDesk Setup ' + version + '.exe', '../build/TheDesk-setup-ia32.exe');
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
// handle error
|
||||
})
|
||||
function retry(){
|
||||
console.log("Windows x64")
|
||||
const targetsAlt = new Map();
|
||||
const archToTypeAlt = new Map();
|
||||
targetsAlt.set(Platform.WINDOWS, archToTypeAlt);
|
||||
archToTypeAlt.set(Arch.x64, []);
|
||||
builder.build({
|
||||
targets: targetsAlt,
|
||||
config: pref
|
||||
})
|
||||
.then(() => {
|
||||
fs.renameSync('../build/TheDesk Setup ' + version + '.exe', '../build/TheDesk-setup.exe');
|
||||
fs.renameSync('../build/TheDesk ' + version + '.exe', '../build/TheDesk.exe');
|
||||
})
|
||||
.catch((error) => {
|
||||
// handle error
|
||||
})
|
||||
}
|
||||
BIN
app/build/appx/Square150x150Logo.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
app/build/appx/Square44x44Logo.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
app/build/appx/StoreLogo.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
app/build/appx/Wide310x150Logo.png
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
app/build/thedesk.ico
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
@@ -1,2 +1,4 @@
|
||||
/*このソフトについてを押した時に読み込まれます*/
|
||||
body{font-family:Open Sans;}
|
||||
body {
|
||||
font-family: Open Sans;
|
||||
}
|
||||
|
||||
24
app/css/font-awesome.css
vendored
@@ -5,9 +5,15 @@
|
||||
/* FONT PATH
|
||||
* -------------------------- */
|
||||
@font-face {
|
||||
font-family: 'FontAwesome';
|
||||
src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');
|
||||
src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
|
||||
font-family: "FontAwesome";
|
||||
src: url("../fonts/fontawesome-webfont.eot?v=4.7.0");
|
||||
src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0")
|
||||
format("embedded-opentype"),
|
||||
url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),
|
||||
url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),
|
||||
url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),
|
||||
url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular")
|
||||
format("svg");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@@ -60,9 +66,9 @@
|
||||
left: -1.85714286em;
|
||||
}
|
||||
.fa-border {
|
||||
padding: .2em .25em .15em;
|
||||
padding: 0.2em 0.25em 0.15em;
|
||||
border: solid 0.08em #eeeeee;
|
||||
border-radius: .1em;
|
||||
border-radius: 0.1em;
|
||||
}
|
||||
.fa-pull-left {
|
||||
float: left;
|
||||
@@ -71,10 +77,10 @@
|
||||
float: right;
|
||||
}
|
||||
.fa.fa-pull-left {
|
||||
margin-right: .3em;
|
||||
margin-right: 0.3em;
|
||||
}
|
||||
.fa.fa-pull-right {
|
||||
margin-left: .3em;
|
||||
margin-left: 0.3em;
|
||||
}
|
||||
/* Deprecated as of 4.4.0 */
|
||||
.pull-right {
|
||||
@@ -84,10 +90,10 @@
|
||||
float: left;
|
||||
}
|
||||
.fa.pull-left {
|
||||
margin-right: .3em;
|
||||
margin-right: 0.3em;
|
||||
}
|
||||
.fa.pull-right {
|
||||
margin-left: .3em;
|
||||
margin-left: 0.3em;
|
||||
}
|
||||
.fa-spin {
|
||||
-webkit-animation: fa-spin 2s infinite linear;
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
/*共通CSS*/
|
||||
html,body{
|
||||
html,
|
||||
body {
|
||||
/*transform: translate3d(0,0,0);*/
|
||||
overflow:hidden;
|
||||
overflow: hidden;
|
||||
user-select: none;
|
||||
cursor:default;
|
||||
font-size:13px;
|
||||
cursor: default;
|
||||
font-size: 13px;
|
||||
height: 100vh;
|
||||
background-color: var(--bg);
|
||||
color: var(--color);
|
||||
}
|
||||
body{
|
||||
border: thin solid gray;
|
||||
}
|
||||
.btn {
|
||||
margin: 5px;
|
||||
text-transform: none;
|
||||
@@ -30,6 +27,8 @@ option {
|
||||
}
|
||||
#mainView {
|
||||
padding: 10px;
|
||||
overflow: scroll;
|
||||
height: auto;
|
||||
}
|
||||
#message {
|
||||
display: none;
|
||||
@@ -40,23 +39,26 @@ option {
|
||||
color: white;
|
||||
z-index: 9999;
|
||||
}
|
||||
#imagemodal, #videomodal {
|
||||
#imagemodal,
|
||||
#videomodal {
|
||||
display: none;
|
||||
max-width: 100vw;
|
||||
max-height: 100vh;
|
||||
position: fixed;
|
||||
z-index: 9;
|
||||
top: 0 !important;
|
||||
}
|
||||
#videomodal, #tootmodal {
|
||||
#videomodal,
|
||||
#tootmodal {
|
||||
background-color: var(--modal);
|
||||
}
|
||||
#imagemodal .modal-content {
|
||||
overflow: hidden;
|
||||
padding:0;
|
||||
padding: 0;
|
||||
}
|
||||
#imagemodal .modal-footer{
|
||||
overflow-x:scroll;
|
||||
overflow-y:hidden;
|
||||
#imagemodal .modal-footer {
|
||||
overflow-x: scroll;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
#imagewrap {
|
||||
@@ -66,11 +68,16 @@ option {
|
||||
.pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
.badge{
|
||||
min-width: 0 !important;
|
||||
margin-left: 5px !important;
|
||||
.badge {
|
||||
min-width: 0 !important;
|
||||
margin-left: 5px !important;
|
||||
}
|
||||
.bbcode-pulse-loadings, .bbcode-pulse-loading, .fa-pulse {
|
||||
.unvisible{
|
||||
opacity: 0;
|
||||
}
|
||||
.bbcode-pulse-loadings,
|
||||
.bbcode-pulse-loading,
|
||||
.fa-pulse {
|
||||
display: inline-block;
|
||||
animation-duration: 3s;
|
||||
animation-fill-mode: both;
|
||||
@@ -78,10 +85,13 @@ option {
|
||||
animation-name: pulse;
|
||||
}
|
||||
@keyframes pulse {
|
||||
from, 50%, to {
|
||||
from,
|
||||
50%,
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
25%, 75% {
|
||||
25%,
|
||||
75% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@@ -117,7 +127,8 @@ option {
|
||||
animation-iteration-count: infinite;
|
||||
animation-name: shake;
|
||||
}
|
||||
code:before, .pre:before {
|
||||
code:before,
|
||||
.pre:before {
|
||||
content: "Code";
|
||||
font-size: 1.8rem;
|
||||
line-height: 1em;
|
||||
@@ -127,7 +138,8 @@ code:before, .pre:before {
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
code, pre {
|
||||
code,
|
||||
pre {
|
||||
color: white;
|
||||
display: block;
|
||||
border-left: 5px solid;
|
||||
@@ -143,10 +155,12 @@ code, pre {
|
||||
border-bottom-right-radius: 10px;
|
||||
border-bottom-left-radius: 10px;
|
||||
}
|
||||
blockquote, .quote p {
|
||||
blockquote,
|
||||
.quote p {
|
||||
margin: 0;
|
||||
}
|
||||
blockquote, .quote {
|
||||
blockquote,
|
||||
.quote {
|
||||
color: black;
|
||||
background-color: #ddd;
|
||||
padding: 1em 1em 1em;
|
||||
@@ -155,7 +169,8 @@ blockquote, .quote {
|
||||
border-bottom-right-radius: 10px;
|
||||
border-bottom-left-radius: 10px;
|
||||
}
|
||||
blockquote:before, .quote:before {
|
||||
blockquote:before,
|
||||
.quote:before {
|
||||
content: "Quote";
|
||||
font-size: 1.8rem;
|
||||
line-height: 1em;
|
||||
@@ -219,175 +234,223 @@ blockquote:before, .quote:before {
|
||||
#drag-content {
|
||||
font-size: 2rem;
|
||||
}
|
||||
.radio{
|
||||
font-family:'Baloo Bhai'
|
||||
}
|
||||
#pip{
|
||||
z-index:504;
|
||||
width:418px;
|
||||
#pip {
|
||||
z-index: 504;
|
||||
width: 418px;
|
||||
background-color: var(--subcolor);
|
||||
position:absolute;
|
||||
position: absolute;
|
||||
}
|
||||
.pip-bottom{
|
||||
bottom:10px;
|
||||
.pip-bottom {
|
||||
bottom: 10px;
|
||||
}
|
||||
.pip-left{
|
||||
left:10px;
|
||||
.pip-left {
|
||||
left: 10px;
|
||||
}
|
||||
.pip-top{
|
||||
top:10px;
|
||||
.pip-top {
|
||||
top: 10px;
|
||||
}
|
||||
.pip-right{
|
||||
right:10px;
|
||||
.pip-right {
|
||||
right: 10px;
|
||||
}
|
||||
#pip-content .material-icons{
|
||||
display:none;
|
||||
#pip-content .material-icons {
|
||||
display: none;
|
||||
}
|
||||
.big-text{
|
||||
font-size:1.2rem;
|
||||
.big-text {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
#releasenote {
|
||||
background-color: var(--modal);
|
||||
}
|
||||
#releasenote li{
|
||||
list-style-type: disc
|
||||
#releasenote li {
|
||||
list-style-type: disc;
|
||||
}
|
||||
@media only screen and (min-width: 993px){
|
||||
#toast-container {
|
||||
top:auto;
|
||||
right:auto;
|
||||
@media only screen and (min-width: 993px) {
|
||||
#toast-container {
|
||||
top: auto;
|
||||
right: auto;
|
||||
bottom: 5%;
|
||||
left: 4%;
|
||||
max-width: 86%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.show{
|
||||
.show {
|
||||
animation: show 0.2s linear 0s;
|
||||
}
|
||||
@keyframes show{
|
||||
from{
|
||||
opacity: 0;
|
||||
@keyframes show {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to{
|
||||
opacity: 1;
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.hide-anime{
|
||||
.hide-anime {
|
||||
animation: hide 0.2s linear 0s;
|
||||
display:none;
|
||||
display: none;
|
||||
}
|
||||
@keyframes hide{
|
||||
from{
|
||||
opacity: 1;
|
||||
@keyframes hide {
|
||||
from {
|
||||
opacity: 1;
|
||||
}
|
||||
to{
|
||||
opacity: 0;
|
||||
to {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
.collapsible-header,.tabs{
|
||||
.collapsible-header,
|
||||
.tabs {
|
||||
background-color: var(--subcolor);
|
||||
}
|
||||
.modal-footer{
|
||||
.collapsible-header:focus {
|
||||
background-color: var(--subcolor) !important;
|
||||
}
|
||||
.modal-footer {
|
||||
background-color: var(--modalfooter) !important;
|
||||
}
|
||||
.font{
|
||||
font-size:1.5rem;
|
||||
margin-bottom:5px;
|
||||
.font {
|
||||
font-size: 1.5rem;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.font:hover{
|
||||
.font:hover {
|
||||
background-color: #999;
|
||||
}
|
||||
.release-do{
|
||||
.release-do {
|
||||
border: solid 2px;
|
||||
border-color:var(--color);
|
||||
padding:5px;
|
||||
border-color: var(--color);
|
||||
padding: 5px;
|
||||
}
|
||||
#pickers{
|
||||
display:flex;
|
||||
#pickers {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
#menu{
|
||||
position:fixed;
|
||||
z-index:9999;
|
||||
#menu {
|
||||
position: fixed;
|
||||
z-index: 9999;
|
||||
background-color: var(--box);
|
||||
width:540px;
|
||||
top:calc(50% - 150px);
|
||||
left:calc(50% - 250px);
|
||||
width: 540px;
|
||||
top: calc(50% - 150px);
|
||||
left: calc(50% - 250px);
|
||||
padding: 5px;
|
||||
border: thin solid gray;
|
||||
border-radius:5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
#menu-wrapper{
|
||||
margin-left:-5px;
|
||||
display:flex;
|
||||
#menu-wrapper {
|
||||
margin-left: -5px;
|
||||
display: flex;
|
||||
}
|
||||
#left-menu{
|
||||
width:170px;
|
||||
#left-menu {
|
||||
width: 170px;
|
||||
}
|
||||
#left-menu div{
|
||||
padding-left:5px;
|
||||
width:100%;
|
||||
height:50px;
|
||||
display:flex;
|
||||
align-items:center;
|
||||
cursor:pointer;
|
||||
#left-menu div {
|
||||
padding-left: 5px;
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
#left-menu div:hover {
|
||||
background-color: var(--beforehover);
|
||||
}
|
||||
#left-menu span{
|
||||
margin-left:5px;
|
||||
#left-menu span {
|
||||
margin-left: 5px;
|
||||
}
|
||||
#left-menu div.active{
|
||||
#left-menu div.active {
|
||||
background-color: var(--emphasized);
|
||||
}
|
||||
#right-menu{
|
||||
width:380px;
|
||||
max-height:375px;
|
||||
overflow-y:scroll;
|
||||
overflow-x:hidden;
|
||||
padding:5px;
|
||||
#right-menu {
|
||||
width: 380px;
|
||||
max-height: 375px;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
padding: 5px;
|
||||
}
|
||||
#tltype{
|
||||
display:flex;
|
||||
#tltype {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
}
|
||||
#tltype .type{
|
||||
display:flex;
|
||||
#tltype .type {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items:center;
|
||||
width:170px;
|
||||
height:40px;
|
||||
cursor:pointer;
|
||||
align-items: center;
|
||||
width: 170px;
|
||||
height: 40px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#tltype .type:hover {
|
||||
background-color: var(--beforehover);
|
||||
}
|
||||
#tltype .active{
|
||||
#tltype .active {
|
||||
background-color: var(--emphasized);
|
||||
}
|
||||
#tltype i{
|
||||
font-size:30px;
|
||||
#tltype i {
|
||||
font-size: 30px;
|
||||
}
|
||||
#tltype i.sub-icon{
|
||||
#tltype i.sub-icon {
|
||||
font-size: 20px;
|
||||
position: relative;
|
||||
color: var(--beforehover);
|
||||
left: -15px;
|
||||
|
||||
}
|
||||
.drag-bar{
|
||||
cursor:move;
|
||||
text-align:center;
|
||||
width:calc(100% + 10px);
|
||||
.drag-bar {
|
||||
cursor: move;
|
||||
text-align: center;
|
||||
width: calc(100% + 10px);
|
||||
border-radius: 5px;
|
||||
background-color: var(--bg);
|
||||
margin-left:-5px;
|
||||
margin-right:-5px;
|
||||
margin-top:-5px;
|
||||
font-size:16px;
|
||||
padding:4px;
|
||||
background-color: var(--box);
|
||||
filter: brightness(80%);
|
||||
margin-left: -5px;
|
||||
margin-right: -5px;
|
||||
margin-top: -5px;
|
||||
font-size: 16px;
|
||||
padding: 4px;
|
||||
}
|
||||
#something-wrong {
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
#support-btm {
|
||||
position: fixed;
|
||||
bottom: -300px;
|
||||
width: 100vw;
|
||||
background-color: var(--box);
|
||||
z-index: 9999;
|
||||
padding: 10px;
|
||||
display: grid;
|
||||
grid-template-columns: 3fr 1fr 1fr;
|
||||
grid-template-rows: 1fr 36px;
|
||||
grid-template-areas: "note middle right" "note close close";
|
||||
}
|
||||
#support-btm-en,
|
||||
#support-btm-ja {
|
||||
grid-area: note;
|
||||
}
|
||||
#support-btm-middle {
|
||||
grid-area: middle;
|
||||
}
|
||||
#support-btm-right {
|
||||
grid-area: right;
|
||||
}
|
||||
#support-btm-close {
|
||||
grid-area: close;
|
||||
}
|
||||
.select-wrapper .dropdown-content {
|
||||
width: 250px !important;
|
||||
}
|
||||
input, textarea {
|
||||
color: var(--color);
|
||||
font-size: 1rem !important;
|
||||
font-family: inherit;
|
||||
}
|
||||
.swal2-popup{
|
||||
background-color: var(--notfbox) !important;
|
||||
}
|
||||
.swal2-title, .swal2-content{
|
||||
color: var(--color) !important;
|
||||
}
|
||||
|
||||
/*スクロールバー*/
|
||||
@@ -407,3 +470,32 @@ blockquote:before, .quote:before {
|
||||
background: #607d8b;
|
||||
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
/* Web Fonts */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local('Open Sans Light'), local('OpenSans-Light'), url(https://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN_r8OUuhp.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Material Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/materialicons/v48/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');
|
||||
}
|
||||
.material-icons {
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px;
|
||||
line-height: 1;
|
||||
letter-spacing: normal;
|
||||
text-transform: none;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
word-wrap: normal;
|
||||
direction: ltr;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
9411
app/css/materialize.css
vendored
16
app/css/materialize.min.css
vendored
119
app/css/post.css
@@ -1,16 +1,20 @@
|
||||
/*トゥートボックス向けCSS*/
|
||||
#post-box {
|
||||
display:none;
|
||||
display: none;
|
||||
position: fixed;
|
||||
left: calc(50vw - 150px);
|
||||
top: 50vh;
|
||||
background-color: var(--postbox);
|
||||
border: thin solid gray;
|
||||
z-index: 501;
|
||||
min-width:300px;
|
||||
max-width:100%;
|
||||
min-width: 300px;
|
||||
max-width: 100%;
|
||||
padding: 5px;
|
||||
border-radius:5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
textarea {
|
||||
min-height: 100px !important;
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
.cancel {
|
||||
@@ -19,8 +23,7 @@
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
top:4px;
|
||||
|
||||
top: 4px;
|
||||
}
|
||||
.more-show {
|
||||
display: none;
|
||||
@@ -42,10 +45,12 @@
|
||||
display: none;
|
||||
}
|
||||
#sch-box input {
|
||||
width:auto;
|
||||
width: auto;
|
||||
}
|
||||
.picker__close, .picker__today, .picker__clear {
|
||||
color: #26a69a !important;
|
||||
.picker__close,
|
||||
.picker__today,
|
||||
.picker__clear {
|
||||
color: #26a69a !important;
|
||||
}
|
||||
.cw {
|
||||
display: none;
|
||||
@@ -54,10 +59,9 @@
|
||||
filter: blur(50px);
|
||||
}
|
||||
#emoji {
|
||||
|
||||
}
|
||||
#suggest{
|
||||
max-height:300px;
|
||||
#suggest {
|
||||
max-height: 300px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
#emoji-list {
|
||||
@@ -68,70 +72,75 @@
|
||||
#preview-field {
|
||||
display: none;
|
||||
}
|
||||
.preview-img{
|
||||
width:50px;
|
||||
max-height:100px;
|
||||
.preview-img {
|
||||
width: 50px;
|
||||
max-height: 100px;
|
||||
}
|
||||
.pi-wrap{
|
||||
display:inline-block;
|
||||
width:50px;
|
||||
max-height:100px;
|
||||
.pi-wrap {
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
max-height: 100px;
|
||||
}
|
||||
#default-emoji a{
|
||||
color:white;
|
||||
margin-right:2px;
|
||||
#default-emoji a {
|
||||
color: var(--color);
|
||||
margin-right: 2px;
|
||||
}
|
||||
.character-counter{
|
||||
.character-counter {
|
||||
position: relative;
|
||||
top: -25px;
|
||||
}
|
||||
.trendtag{
|
||||
overflow-y:scroll;
|
||||
max-height:100px;
|
||||
.trendtag {
|
||||
overflow-y: scroll;
|
||||
max-height: 100px;
|
||||
}
|
||||
#toot-btn-field{
|
||||
display:flex;
|
||||
#toot-btn-field {
|
||||
display: flex;
|
||||
}
|
||||
#toot-post-btn{
|
||||
width:calc(100% - 10px); padding:0; margin-top:10px;
|
||||
#toot-post-btn {
|
||||
width: calc(100% - 10px);
|
||||
padding: 0;
|
||||
margin-top: 10px;
|
||||
}
|
||||
#toot-sec-btn{
|
||||
width:30px; padding:0; margin-top:10px;
|
||||
#toot-sec-btn {
|
||||
width: 30px;
|
||||
padding: 0;
|
||||
margin-top: 10px;
|
||||
}
|
||||
#left-side{
|
||||
float:left;
|
||||
width:300px;
|
||||
#left-side {
|
||||
float: left;
|
||||
width: 300px;
|
||||
}
|
||||
#right-side{
|
||||
display:none;
|
||||
float:left;
|
||||
width:300px;
|
||||
padding:5px;
|
||||
#right-side {
|
||||
display: none;
|
||||
float: left;
|
||||
width: 300px;
|
||||
padding: 5px;
|
||||
}
|
||||
#poll{
|
||||
|
||||
#poll {
|
||||
}
|
||||
.poll-provider{
|
||||
.poll-provider {
|
||||
position: absolute;
|
||||
height: calc(100% - 90px);
|
||||
overflow-y: scroll;
|
||||
top: 90px;
|
||||
}
|
||||
|
||||
#posttgl,#toot-post-btn {
|
||||
background-color: var(--accentbtn);
|
||||
}
|
||||
/*mini*/
|
||||
.mini-post .mize{
|
||||
display:none !important;
|
||||
.mini-post .mize {
|
||||
display: none !important;
|
||||
}
|
||||
.mini-post #textarea{
|
||||
padding:0;
|
||||
.mini-post #textarea {
|
||||
padding: 0;
|
||||
}
|
||||
.mini-post #post-box{
|
||||
width:200px;
|
||||
min-width:100px;
|
||||
.mini-post #post-box {
|
||||
width: 200px;
|
||||
min-width: 100px;
|
||||
}
|
||||
.mini-post #toot-field{
|
||||
padding:0;
|
||||
.mini-post #toot-field {
|
||||
padding: 0;
|
||||
}
|
||||
.mini-post #toot-btn-field{
|
||||
padding:0;
|
||||
.mini-post #toot-btn-field {
|
||||
padding: 0;
|
||||
}
|
||||
@@ -1,32 +1,31 @@
|
||||
|
||||
.drag-content{
|
||||
text-overflow: ellipsis;
|
||||
cursor:move;
|
||||
user-select: none;
|
||||
background-color:var(--modalfooter);
|
||||
margin:5px;
|
||||
border-radius:5px;
|
||||
color:var(--color);
|
||||
padding:3px;
|
||||
display:grid;
|
||||
grid-template-columns: 43px 1fr 60px;
|
||||
grid-template-areas: 'sorticon sorttitle sorttitle' 'sorticon sortacct sortaction';
|
||||
.drag-content {
|
||||
text-overflow: ellipsis;
|
||||
cursor: move;
|
||||
user-select: none;
|
||||
background-color: var(--modalfooter);
|
||||
margin: 5px;
|
||||
border-radius: 5px;
|
||||
color: var(--color);
|
||||
padding: 3px;
|
||||
display: grid;
|
||||
grid-template-columns: 43px 1fr 60px;
|
||||
grid-template-areas: "sorticon sorttitle sorttitle" "sorticon sortacct sortaction";
|
||||
}
|
||||
.sorticon {
|
||||
grid-area:sorticon;
|
||||
grid-area: sorticon;
|
||||
}
|
||||
.sorticon i{
|
||||
font-size:43px;
|
||||
.sorticon i {
|
||||
font-size: 43px;
|
||||
}
|
||||
.sorttitle {
|
||||
margin-left:5px;
|
||||
grid-area:sorttitle;
|
||||
margin-left: 5px;
|
||||
grid-area: sorttitle;
|
||||
}
|
||||
.sortacct {
|
||||
margin-left:5px;
|
||||
grid-area:sortacct;
|
||||
margin-left: 5px;
|
||||
grid-area: sortacct;
|
||||
}
|
||||
.sortaction {
|
||||
margin-left:5px;
|
||||
grid-area:sortaction;
|
||||
margin-left: 5px;
|
||||
grid-area: sortaction;
|
||||
}
|
||||
@@ -1,100 +1,138 @@
|
||||
:root{
|
||||
--bg:white;
|
||||
--drag:rgba(255, 255, 255, 0.8);
|
||||
--color:black;
|
||||
--beforehover:#757575;
|
||||
--modal:white;
|
||||
--subcolor:#e0e0e0;
|
||||
--box:white;
|
||||
--sidebar:#eeeeee;
|
||||
--shared:#cfd8dc;
|
||||
--notfbox:white;
|
||||
--emphasized:#81c784;
|
||||
--his-data:rgba(255, 255, 255, 0.9);
|
||||
--active:#e6ee9c;
|
||||
--postbox:white;
|
||||
--modalfooter:#fafafa;
|
||||
:root {
|
||||
--bg: white;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: black;
|
||||
--beforehover: #757575;
|
||||
--modal: white;
|
||||
--subcolor: #e0e0e0;
|
||||
--box: white;
|
||||
--sidebar: #eeeeee;
|
||||
--shared: #cfd8dc;
|
||||
--notfbox: white;
|
||||
--emphasized: #81c784;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #e6ee9c;
|
||||
--postbox: white;
|
||||
--modalfooter: #fafafa;
|
||||
--accentbtn: #009688;
|
||||
--selected: #c0c0c0;
|
||||
--selectedWithShare: #b2babd;
|
||||
}
|
||||
#imagemodal{
|
||||
background: url("../img/pixel.white.svg");
|
||||
#imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
.blacktheme {
|
||||
--bg:#212121;
|
||||
--drag:rgba(0, 0, 0, 0.8);
|
||||
--color:white;
|
||||
--beforehover:#9e9e9e;
|
||||
--modal:black;
|
||||
--subcolor:#212121;
|
||||
--box:#424242;
|
||||
--sidebar:#424242;
|
||||
--shared:#004d40;
|
||||
--notfbox:#333333;
|
||||
--emphasized:#4e342e;
|
||||
--his-data:rgba(0, 0, 0, 0.8);
|
||||
--active:#757575;
|
||||
--postbox:#424242;
|
||||
--modalfooter:#212121;
|
||||
--bg: #212121;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--beforehover: #9e9e9e;
|
||||
--modal: black;
|
||||
--subcolor: #212121;
|
||||
--box: #424242;
|
||||
--sidebar: #424242;
|
||||
--shared: #004d40;
|
||||
--notfbox: #333333;
|
||||
--emphasized: #4e342e;
|
||||
--his-data: rgba(0, 0, 0, 0.8);
|
||||
--active: #757575;
|
||||
--postbox: #424242;
|
||||
--modalfooter: #212121;
|
||||
--accentbtn: #3f51b5;
|
||||
--selected: #3f3f3f;
|
||||
--selectedWithShare: #003a30;
|
||||
}
|
||||
.blacktheme #imagemodal{
|
||||
background: url("../img/pixel.svg");
|
||||
.blacktheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.indigotheme {
|
||||
--bg:#031833;
|
||||
--drag:rgba(0, 0, 0, 0.8);
|
||||
--color:white;
|
||||
--beforehover:#9e9e9e;
|
||||
--modal:#0d1351;
|
||||
--subcolor:#0d1351;
|
||||
--shared:#004d40;
|
||||
--box:#0d1351;
|
||||
--sidebar:#0d1351;
|
||||
--notfbox:#0d47a1;
|
||||
--emphasized:#4e342e;
|
||||
--his-data:rgba(13, 19, 81,0.8);
|
||||
--active:#757575;
|
||||
--postbox:#1a237e;
|
||||
--modalfooter:#031833;
|
||||
--bg: #031833;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--beforehover: #9e9e9e;
|
||||
--modal: #0d1351;
|
||||
--subcolor: #0d1351;
|
||||
--shared: #004d40;
|
||||
--box: #0d1351;
|
||||
--sidebar: #0d1351;
|
||||
--notfbox: #0d47a1;
|
||||
--emphasized: #4e342e;
|
||||
--his-data: rgba(13, 19, 81, 0.8);
|
||||
--active: #757575;
|
||||
--postbox: #1a237e;
|
||||
--modalfooter: #031833;
|
||||
--accentbtn: #00acc1;
|
||||
--selected: #214f8a;
|
||||
--selectedWithShare: #003a30;
|
||||
}
|
||||
.indigotheme #imagemodal{
|
||||
background: url("../img/pixel.svg");
|
||||
.indigotheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.browntheme {
|
||||
--bg:#261411;
|
||||
--drag:rgba(0, 0, 0, 0.8);
|
||||
--color:white;
|
||||
--beforehover:#9e9e9e;
|
||||
--modal:#261411;
|
||||
--subcolor:#4e342e;
|
||||
--shared:#004d40;
|
||||
--box:#4e342e;
|
||||
--sidebar:#4e342e;
|
||||
--notfbox:#4e342e;
|
||||
--emphasized:#0d47a1;
|
||||
--his-data:rgba(62, 39, 35,0.8);
|
||||
--active:#757575;
|
||||
--postbox:#4e342e;
|
||||
--modalfooter:#261411;
|
||||
--bg: #261411;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--beforehover: #9e9e9e;
|
||||
--modal: #261411;
|
||||
--subcolor: #4e342e;
|
||||
--shared: #004d40;
|
||||
--box: #4e342e;
|
||||
--sidebar: #4e342e;
|
||||
--notfbox: #4e342e;
|
||||
--emphasized: #0d47a1;
|
||||
--his-data: rgba(62, 39, 35, 0.8);
|
||||
--active: #757575;
|
||||
--postbox: #4e342e;
|
||||
--modalfooter: #261411;
|
||||
--accentbtn: #827717;
|
||||
--selected: #6d352b;
|
||||
--selectedWithShare: #003a30;
|
||||
}
|
||||
.browntheme #imagemodal{
|
||||
background: url("../img/pixel.svg");
|
||||
.browntheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.greentheme{
|
||||
--bg:#c8e6c9;
|
||||
--drag:rgba(255, 255, 255, 0.8);
|
||||
--color:black;
|
||||
--beforehover:#757575;
|
||||
--modal:#81c784;
|
||||
--subcolor:#a5d6a7;
|
||||
--box:#81c784;
|
||||
--sidebar:#81c784;
|
||||
--shared:#ffcc80;
|
||||
--notfbox:#a5d6a7;
|
||||
--emphasized:#9e9d24;
|
||||
--his-data:rgba(255, 255, 255, 0.9);
|
||||
--active:#e6ee9c;
|
||||
--postbox:#a5d6a7;
|
||||
--modalfooter:#81c784;
|
||||
.greentheme {
|
||||
--bg: #c8e6c9;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: black;
|
||||
--beforehover: #757575;
|
||||
--modal: #81c784;
|
||||
--subcolor: #a5d6a7;
|
||||
--box: #81c784;
|
||||
--sidebar: #c5e1a5;
|
||||
--shared: #ffcc80;
|
||||
--notfbox: #a5d6a7;
|
||||
--emphasized: #9e9d24;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #e6ee9c;
|
||||
--postbox: #a5d6a7;
|
||||
--modalfooter: #81c784;
|
||||
--accentbtn: #33691e;
|
||||
--selected: #78c17a;
|
||||
--selectedWithShare: #caa266;
|
||||
}
|
||||
.greentheme #imagemodal{
|
||||
background: url("../img/pixel.white.svg");
|
||||
.greentheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
.bluetheme {
|
||||
--bg: #c9e1ec;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: black;
|
||||
--beforehover: #757575;
|
||||
--modal: #b2ebf2;
|
||||
--subcolor: #90caf9;
|
||||
--box: #90caf9;
|
||||
--sidebar: #b6e6f5;
|
||||
--shared: #e0ffe4;
|
||||
--notfbox: #90caf9;
|
||||
--emphasized: #c5e1a5;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #b39ddb;
|
||||
--postbox: #dff1ff;
|
||||
--modalfooter: #2196f3;
|
||||
--accentbtn: #2f7bb7;
|
||||
--selected: #9dcade;
|
||||
--selectedWithShare: #c1dac4;
|
||||
}
|
||||
.bluetheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
527
app/css/tl.css
@@ -1,97 +1,102 @@
|
||||
/*TL CSS(ただしBBCode pulse:master.css/spin:font-awesome*/
|
||||
#main{
|
||||
display:flex;
|
||||
width:100vw;
|
||||
#main {
|
||||
width: 100vw;
|
||||
height: calc(100vh - 40px);
|
||||
}
|
||||
#timeline-container {
|
||||
overflow-x: scroll;
|
||||
overflow-y: hidden;
|
||||
display: flex;
|
||||
height: calc(100vh - 40px);
|
||||
flex-grow:4;
|
||||
height: 100%;
|
||||
}
|
||||
#bottom{
|
||||
position:absolute;
|
||||
bottom:0;
|
||||
width:100vw;
|
||||
height:40px;
|
||||
padding:3px;
|
||||
padding-right:0;
|
||||
padding-left:40px;
|
||||
background-color:var(--sidebar);
|
||||
display:flex;
|
||||
#bottom {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100vw;
|
||||
height: 40px;
|
||||
padding: 3px;
|
||||
padding-right: 0;
|
||||
padding-left: 40px;
|
||||
background-color: var(--sidebar);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap:wrap;
|
||||
z-index:500;
|
||||
flex-wrap: wrap;
|
||||
z-index: 500;
|
||||
box-shadow: 10px 0 10px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
#bottom.reverse{
|
||||
padding-left:0;
|
||||
padding-right:40px;
|
||||
#bottom.reverse {
|
||||
padding-left: 0;
|
||||
padding-right: 40px;
|
||||
}
|
||||
.reverse{
|
||||
.reverse {
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
#bottom #dambox{
|
||||
width:300px;
|
||||
margin-right:10px;
|
||||
#bottom #dambox {
|
||||
width: 300px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
#bottom.reverse #dambox{
|
||||
margin-right:0;
|
||||
#bottom.reverse #dambox {
|
||||
margin-right: 0;
|
||||
}
|
||||
#bottom .trendtag{
|
||||
height:40px;
|
||||
#bottom .trendtag {
|
||||
height: 40px;
|
||||
}
|
||||
#bottom #group{
|
||||
margin-right:40px;
|
||||
#bottom #group {
|
||||
margin-right: 40px;
|
||||
}
|
||||
#bottom .leftside{
|
||||
display:flex;
|
||||
#bottom .leftside {
|
||||
display: flex;
|
||||
}
|
||||
#bottom #tips img{
|
||||
#bottom #tips img {
|
||||
vertical-align: -3px;
|
||||
}
|
||||
#bottom a{
|
||||
color:var(--color);
|
||||
#bottom a {
|
||||
color: var(--color);
|
||||
}
|
||||
#bottom i{
|
||||
font-size:30px;
|
||||
#bottom i {
|
||||
font-size: 30px;
|
||||
}
|
||||
.exc-icons{
|
||||
font-size:20px;
|
||||
.exc-icons {
|
||||
font-size: 20px;
|
||||
}
|
||||
.exc-chb{
|
||||
padding-left:24px !important;
|
||||
.exc-chb {
|
||||
padding-left: 24px !important;
|
||||
}
|
||||
#bottom .btnsgroup{
|
||||
border:1px solid;
|
||||
padding:1px;
|
||||
padding-left:5px;
|
||||
padding-right:5px;
|
||||
margin-right:15px;
|
||||
border-radius:5px;
|
||||
#bottom .btnsgroup {
|
||||
border: 1px solid;
|
||||
padding: 1px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
margin-right: 15px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
#spot-box{
|
||||
#spot-box {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
#spot-img{
|
||||
margin-right:2px;
|
||||
#spot-img {
|
||||
margin-right: 2px;
|
||||
}
|
||||
#spot-art{
|
||||
margin-right:2px;
|
||||
margin-left:2px;
|
||||
#spot-art {
|
||||
margin-right: 2px;
|
||||
margin-left: 2px;
|
||||
}
|
||||
.btnsgroup .grouptitle{
|
||||
font-family:Open Sans;
|
||||
font-size:15px;
|
||||
.btnsgroup .grouptitle {
|
||||
font-family: Open Sans;
|
||||
font-size: 15px;
|
||||
}
|
||||
@media screen and (max-width: 890px) {
|
||||
.btnsgroup .grouptitle{ display: none; }
|
||||
#tips,#tips-menu{ display: none; }
|
||||
.btnsgroup .grouptitle {
|
||||
display: none;
|
||||
}
|
||||
#tips,
|
||||
#tips-menu {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
iframe {
|
||||
max-width:100%;
|
||||
max-width: 100%;
|
||||
max-height: 300px;
|
||||
}
|
||||
@media screen and (max-width: 600px) {
|
||||
.mobile #timeline-container {
|
||||
@@ -109,157 +114,229 @@ iframe {
|
||||
overflow: hidden;
|
||||
min-width: 300px;
|
||||
flex: 1;
|
||||
border-top:none;
|
||||
display:flex;
|
||||
border-top: none;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-bottom: -10px;
|
||||
}
|
||||
.boxIn{
|
||||
height:100%;
|
||||
.img_FTL {
|
||||
display: none;
|
||||
}
|
||||
.bbcode_FTL {
|
||||
display: none;
|
||||
}
|
||||
.marquee {
|
||||
width: 100%;
|
||||
padding: .5em 0;
|
||||
overflow: hidden;
|
||||
margin-bottom: 0;
|
||||
position: relative;
|
||||
}
|
||||
.marquee .bbcode-marq-lateral {
|
||||
margin: 0;
|
||||
padding-left: 100%;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
animation-name: marquee;
|
||||
animation-timing-function: linear;
|
||||
animation-duration: 10s;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
@keyframes marquee {
|
||||
0% {
|
||||
-webkit-transform: translate(0);
|
||||
transform: translate(0);
|
||||
}
|
||||
99%, 100% {
|
||||
-webkit-transform: translate(-100%);
|
||||
transform: translate(-100%);
|
||||
}
|
||||
}
|
||||
.boxIn {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
border: thin solid gray;
|
||||
overflow: hidden;
|
||||
border-top: none;
|
||||
}
|
||||
.box .pin,#his-data .pin{
|
||||
display:none;
|
||||
.box .pin,
|
||||
#his-data .pin {
|
||||
display: none;
|
||||
}
|
||||
.user{
|
||||
cursor:text;
|
||||
font-size:1.1rem;
|
||||
.user {
|
||||
cursor: text;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
.emoji,.emoji-img{
|
||||
.emoji,
|
||||
.emoji-img {
|
||||
width: 15px;
|
||||
}
|
||||
.area-toot .emoji,.area-toot .emoji-img{
|
||||
.area-toot .emoji,
|
||||
.area-toot .emoji-img {
|
||||
width: 20px;
|
||||
vertical-align: middle;
|
||||
margin: -3px 0 0;
|
||||
margin: -1px 0;
|
||||
}
|
||||
.faicon_FTL{
|
||||
display:none;
|
||||
.faicon_FTL {
|
||||
display: none;
|
||||
}
|
||||
.tl-box {
|
||||
position: relative;
|
||||
flex: 1;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
.tl-box{
|
||||
position:relative;
|
||||
height:calc(100% - 40px);
|
||||
overflow-y:scroll;
|
||||
overflow-x:hidden }
|
||||
.additional {
|
||||
overflow-x: scroll;
|
||||
width: 100%;
|
||||
}
|
||||
.media-filter .nomedia{
|
||||
display:none;
|
||||
.media-filter .nomedia {
|
||||
display: none;
|
||||
}
|
||||
.bt-filter .shared{
|
||||
display:none;
|
||||
.bt-filter .shared {
|
||||
display: none;
|
||||
}
|
||||
.except-bt-filter .unshared{
|
||||
display:none;
|
||||
.except-bt-filter .unshared {
|
||||
display: none;
|
||||
}
|
||||
.cvo {
|
||||
user-select: text;
|
||||
padding-left: 5px;
|
||||
border-bottom:0.5px solid;
|
||||
border-bottom: 0.5px solid;
|
||||
padding-right: 2px;
|
||||
word-break: break-word;
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: 43px 2fr 1fr;
|
||||
grid-template-areas: 'notice notice notice' 'icon display_name display_name' 'icon toot toot' 'vis additional additional' 'actions actions side';
|
||||
grid-template-areas: "notice notice notice" "icon display_name display_name" "icon toot toot" "vis additional additional" "actions actions side";
|
||||
}
|
||||
.cvo h1,.cvo h2,.cvo h3,.cvo h4,.cvo h5,.cvo h6{
|
||||
margin:0;
|
||||
.cvo h1,
|
||||
.cvo h2,
|
||||
.cvo h3,
|
||||
.cvo h4,
|
||||
.cvo h5,
|
||||
.cvo h6 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.area-notice {
|
||||
margin:2px;
|
||||
grid-area: notice;
|
||||
margin: 2px;
|
||||
grid-area: notice;
|
||||
}
|
||||
|
||||
.area-icon {
|
||||
width:40px;
|
||||
margin:2px;
|
||||
grid-area: icon;
|
||||
width: 40px;
|
||||
margin: 2px;
|
||||
grid-area: icon;
|
||||
}
|
||||
|
||||
.area-display_name {
|
||||
user-select: text;
|
||||
height:1.5em;
|
||||
margin:2px;
|
||||
margin-left:5px;
|
||||
overflow:hidden;
|
||||
grid-area: display_name;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
display:flex;
|
||||
justify-content:space-between;
|
||||
width:100%;
|
||||
flex-wrap:nowrap
|
||||
height: 1.5em;
|
||||
margin: 2px;
|
||||
margin-left: 5px;
|
||||
overflow: hidden;
|
||||
grid-area: display_name;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.flex-name{
|
||||
max-width:calc(100% - 60px);
|
||||
overflow:hidden;
|
||||
.flex-name {
|
||||
max-width: calc(100% - 60px);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.area-toot {
|
||||
cursor:text;
|
||||
cursor: text;
|
||||
user-select: auto;
|
||||
margin:2px;
|
||||
margin-left:5px;
|
||||
grid-area: toot;
|
||||
margin: 2px;
|
||||
margin-left: 5px;
|
||||
grid-area: toot;
|
||||
}
|
||||
|
||||
.area-date_via {
|
||||
text-align:right;
|
||||
text-align: right;
|
||||
grid-area: date_via;
|
||||
}
|
||||
|
||||
.area-additional {
|
||||
cursor:text;
|
||||
cursor: text;
|
||||
user-select: auto;
|
||||
grid-area: additional;
|
||||
}
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.area-actions {
|
||||
padding:0;
|
||||
margin:0;
|
||||
top:-20px;
|
||||
display:flex;
|
||||
justify-content:space-around;
|
||||
width:250px;
|
||||
max-width:100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
top: -20px;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
width: 250px;
|
||||
max-width: 100%;
|
||||
grid-area: actions;
|
||||
}
|
||||
.area-vis {
|
||||
margin:2px;
|
||||
margin: 2px;
|
||||
grid-area: vis;
|
||||
}
|
||||
}
|
||||
.area-side {
|
||||
display:flex;
|
||||
justify-content:flex-end;
|
||||
margin:2px;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin: 2px;
|
||||
grid-area: side;
|
||||
}
|
||||
.btn-flat{
|
||||
color:var(--color);
|
||||
|
||||
.quote-renote {
|
||||
display: grid;
|
||||
grid-template-columns: 43px 2fr 1fr;
|
||||
grid-template-areas: "ricon ruser" "ricon rtext";
|
||||
border: 1px solid;
|
||||
margin-top: 3px;
|
||||
padding: 1px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.area-side i{
|
||||
margin-left:10px;
|
||||
.renote-icon {
|
||||
grid-area: ricon;
|
||||
}
|
||||
.viabadge{
|
||||
margin-top:10px;
|
||||
.renote-icon img {
|
||||
width: 43px;
|
||||
}
|
||||
.action i{
|
||||
font-size:1.2rem;
|
||||
margin-right:2px;
|
||||
.renote-user {
|
||||
grid-area: ruser;
|
||||
}
|
||||
.action .fa-quote-right{
|
||||
.renote-text {
|
||||
grid-area: rtext;
|
||||
}
|
||||
|
||||
.btn-flat {
|
||||
color: var(--color);
|
||||
}
|
||||
.area-side i {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.viabadge {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.action i {
|
||||
font-size: 1.2rem;
|
||||
margin-right: 2px;
|
||||
}
|
||||
.action .fa-quote-right {
|
||||
margin-top: 2px;
|
||||
}
|
||||
.actct{
|
||||
color:var(--beforehover);
|
||||
.actct {
|
||||
color: var(--beforehover);
|
||||
}
|
||||
.actct:hover{
|
||||
color:var(--color);
|
||||
.actct:hover {
|
||||
color: var(--color);
|
||||
transition: 0.5s;
|
||||
}
|
||||
|
||||
@@ -275,7 +352,6 @@ grid-area: toot;
|
||||
.toot-img {
|
||||
object-fit: cover;
|
||||
width: 100%;
|
||||
margin-right:1px;
|
||||
}
|
||||
.toot img:not(.emoji-img) {
|
||||
max-width: 100%;
|
||||
@@ -284,7 +360,7 @@ grid-area: toot;
|
||||
.cbadge {
|
||||
display: inline-block;
|
||||
min-width: 10px;
|
||||
max-width:100px;
|
||||
max-width: 100px;
|
||||
padding: 3px 7px;
|
||||
font-size: 0.8em;
|
||||
margin-right: 5px;
|
||||
@@ -298,7 +374,7 @@ grid-area: toot;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
height:calc(0.8em + 8px);
|
||||
height: calc(0.8em + 8px);
|
||||
}
|
||||
.cbadge-hover {
|
||||
color: var(--color);
|
||||
@@ -311,8 +387,9 @@ grid-area: toot;
|
||||
p {
|
||||
margin: 0;
|
||||
margin-bottom: 0px;
|
||||
line-height: 20px;
|
||||
}
|
||||
p:not(:last-child){
|
||||
p:not(:last-child) {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.shared {
|
||||
@@ -326,19 +403,20 @@ p:not(:last-child){
|
||||
}
|
||||
.notice-box {
|
||||
top: 0;
|
||||
background-color:var(--notfbox);
|
||||
background-color: var(--notfbox);
|
||||
filter: brightness(110%);
|
||||
position: relative;
|
||||
margin-right: 10px;
|
||||
width:100%;
|
||||
min-height:60px;
|
||||
z-index:500;
|
||||
padding:5px;
|
||||
width: 100%;
|
||||
min-height: 60px;
|
||||
z-index: 500;
|
||||
padding: 5px;
|
||||
display: grid;
|
||||
grid-template-columns: 40px 48px 1fr 24px;
|
||||
grid-template-rows: 30px 30px;
|
||||
grid-template-areas: 'notice notice_name notice_name a2' 'notice a1 sta a3' 'notf-box notf-box notf-box notf-box';
|
||||
grid-template-areas: "notice notice_name notice_name a2" "notice a1 sta a3" "notf-box notf-box notf-box notf-box";
|
||||
}
|
||||
.emp{
|
||||
.emp {
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
@@ -349,6 +427,9 @@ p:not(:last-child){
|
||||
|
||||
.area-notice_name {
|
||||
grid-area: notice_name;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.area-notice_acct {
|
||||
@@ -400,89 +481,91 @@ p:not(:last-child){
|
||||
min-height: 100px;
|
||||
max-height: 500px;
|
||||
}
|
||||
.column-hide{
|
||||
display:none;
|
||||
overflow:hidden;
|
||||
height:0;
|
||||
.column-hide {
|
||||
display: none;
|
||||
overflow: hidden;
|
||||
height: 0;
|
||||
}
|
||||
.prof-img{
|
||||
.prof-img {
|
||||
border-radius: 3px;
|
||||
}
|
||||
.notf-icon{
|
||||
.notf-icon {
|
||||
position: relative;
|
||||
top: -20px;
|
||||
width: 20px;
|
||||
left: 20px;
|
||||
}
|
||||
.notf-indv-box {
|
||||
width:100%;
|
||||
width: 100%;
|
||||
max-height: 400px;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
border: thin solid gray;
|
||||
border-bottom: 2px solid white;
|
||||
grid-area: notf-box;
|
||||
box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3), 0px -10px 10px 0px rgba(0,0,0,0.3) inset;
|
||||
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14),
|
||||
0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3),
|
||||
0px -10px 10px 0px rgba(0, 0, 0, 0.3) inset;
|
||||
}
|
||||
#src-contents {
|
||||
min-height: 100px;
|
||||
max-height: 190px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.type-b{
|
||||
display:none;
|
||||
.type-b {
|
||||
display: none;
|
||||
}
|
||||
.modal-footer{
|
||||
background-color:var(--box);
|
||||
}
|
||||
.ballons{
|
||||
.modal-footer {
|
||||
background-color: var(--box);
|
||||
position:absolute;
|
||||
bottom:0px;
|
||||
right:0px;
|
||||
}
|
||||
.toot a span.ellipsis:after{
|
||||
content:"...";
|
||||
.ballons {
|
||||
background-color: var(--box);
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
right: 0px;
|
||||
}
|
||||
.toot a:not(.mention) span:last-of-type{
|
||||
display:none;
|
||||
.toot a span.ellipsis:after {
|
||||
content: "...";
|
||||
}
|
||||
.tl-box .via-hide{
|
||||
display:none;
|
||||
.toot a:not(.mention) span:last-of-type {
|
||||
/*display: none;*/
|
||||
}
|
||||
.vote{
|
||||
.tl-box .via-hide {
|
||||
display: none;
|
||||
}
|
||||
.vote {
|
||||
width: 100%;
|
||||
border: 1px solid;
|
||||
margin-top: 3px;
|
||||
padding: 1px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.fa-2x>.emoji-img {
|
||||
width: 36px!important;
|
||||
height: 36px!important
|
||||
.fa-2x > .emoji-img {
|
||||
width: 36px !important;
|
||||
height: 36px !important;
|
||||
}
|
||||
.fa-3x>.emoji-img {
|
||||
width: 54px!important;
|
||||
height: 54px!important
|
||||
.fa-3x > .emoji-img {
|
||||
width: 54px !important;
|
||||
height: 54px !important;
|
||||
}
|
||||
.fa-4x>.emoji-img {
|
||||
width: 72px!important;
|
||||
height: 72px!important
|
||||
.fa-4x > .emoji-img {
|
||||
width: 72px !important;
|
||||
height: 72px !important;
|
||||
}
|
||||
.fa-5x>.emoji-img {
|
||||
width: 90px!important;
|
||||
height: 90px!important
|
||||
.fa-5x > .emoji-img {
|
||||
width: 90px !important;
|
||||
height: 90px !important;
|
||||
}
|
||||
#lists-user{
|
||||
#lists-user {
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
max-height: 200px;
|
||||
overflow-x: hidden;
|
||||
max-height: 200px;
|
||||
}
|
||||
.votebtn{
|
||||
.votebtn {
|
||||
border: 1px solid;
|
||||
color: var(--bg);
|
||||
background-color: var(--beforehover);
|
||||
cursor:pointer;
|
||||
cursor: pointer;
|
||||
width: 50px;
|
||||
padding: 2px;
|
||||
display: inline-block;
|
||||
@@ -491,10 +574,61 @@ p:not(:last-child){
|
||||
border-radius: 10px;
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
.votebtn:hover{
|
||||
background-color:var(--color);
|
||||
.votebtn:hover {
|
||||
background-color: var(--color);
|
||||
}
|
||||
.jump {
|
||||
display: inline-block;
|
||||
animation: jump 0.75s linear infinite;
|
||||
}
|
||||
.img-link {
|
||||
position: relative;
|
||||
display: block;
|
||||
margin-right: 1px;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
.nsfw-media {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
background-color: black;
|
||||
color: white;
|
||||
}
|
||||
.img-link img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.shared.selectedToot{
|
||||
background-color: var(--selectedWithShare);
|
||||
}
|
||||
.selectedToot{
|
||||
background-color: var(--selected);
|
||||
}
|
||||
audio{
|
||||
height: 2rem;
|
||||
}
|
||||
.translate{
|
||||
white-space: normal;
|
||||
}
|
||||
@keyframes jump {
|
||||
0% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
25% {
|
||||
transform: translateY(-16px);
|
||||
}
|
||||
50% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
75% {
|
||||
transform: translateY(-8px);
|
||||
}
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeInDown {
|
||||
from {
|
||||
opacity: 0;
|
||||
@@ -530,4 +664,3 @@ p:not(:last-child){
|
||||
animation-duration: 0.1s;
|
||||
animation-name: fadeInDown;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,63 +1,69 @@
|
||||
/*アイコンをクリックした時とかにでてくるユーザーデータ*/
|
||||
#his-data {
|
||||
background-repeat: no-repeat;
|
||||
background-image: url('../../loading.svg');
|
||||
background-image: url("../../loading.svg");
|
||||
overflow-y: hidden;
|
||||
}
|
||||
#his-name{
|
||||
font-size:1.5rem;
|
||||
#his-name {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
#his-prof {
|
||||
float: left;
|
||||
width: 100px;
|
||||
margin-right:5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.his-float {
|
||||
float: left;
|
||||
overflow-y: scroll;
|
||||
padding: 5px;
|
||||
}
|
||||
#his-float-data{
|
||||
#his-float-data {
|
||||
width: 400px;
|
||||
height: 100%;
|
||||
}
|
||||
#his-float-timeline{
|
||||
#his-float-timeline {
|
||||
width: calc(100% - 400px);
|
||||
height:100%;
|
||||
overflow-y:hidden;
|
||||
height: 100%;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
#his-basic-prof{
|
||||
min-height:130px;
|
||||
#his-basic-prof {
|
||||
min-height: 130px;
|
||||
}
|
||||
#his-matching-list{
|
||||
#his-matching-list {
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#his-field{
|
||||
#his-field {
|
||||
vertical-align: baseline;
|
||||
text-align:center;
|
||||
padding:0;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
}
|
||||
#his-field tr{
|
||||
height:1.5rem;
|
||||
#his-field tr {
|
||||
height: 1.5rem;
|
||||
}
|
||||
.his-field-title{
|
||||
height:1.5rem; padding:0; background-color:#757575; text-align:center;
|
||||
padding:5px;
|
||||
margin-bottom:1px;
|
||||
.his-field-title {
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
background-color: #757575;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
margin-bottom: 1px;
|
||||
width: 30%;
|
||||
}
|
||||
.his-field-content{
|
||||
height:1.5rem; padding:0; padding-left:5px;
|
||||
.his-field-content {
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
padding-left: 5px;
|
||||
}
|
||||
#his-data a span.ellipsis:after{
|
||||
content:"...";
|
||||
#his-data a span.ellipsis:after {
|
||||
content: "...";
|
||||
}
|
||||
#his-data a:not(.mention) span:last-of-type{
|
||||
display:none;
|
||||
#his-data a:not(.mention) span:last-of-type {
|
||||
display: none;
|
||||
}
|
||||
#his-data-show {
|
||||
margin: 20px;
|
||||
background-color:var(--his-data);
|
||||
background-color: var(--his-data);
|
||||
width: calc(100% - 20px);
|
||||
height: calc(100% - 20px);
|
||||
margin-bottom: 0;
|
||||
@@ -66,27 +72,37 @@
|
||||
.tab-content {
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
height: calc(100% - 240px)
|
||||
height: calc(100% - 240px);
|
||||
}
|
||||
.my-data-width {
|
||||
width: 10%;
|
||||
}
|
||||
.active-back{
|
||||
.active-back {
|
||||
background-color: var(--active);
|
||||
}
|
||||
#his-name .emojione,#his-name .emoji-img{
|
||||
#his-name .emojione,
|
||||
#his-name .emoji-img {
|
||||
width: 20px;
|
||||
}
|
||||
#his-plus-action .btn{
|
||||
width:170px
|
||||
#his-plus-action .btn {
|
||||
width: 170px;
|
||||
}
|
||||
.custom-tabs{
|
||||
display:flex;
|
||||
.tabs {
|
||||
display: flex;
|
||||
}
|
||||
.custom-tabs .custom-tab a{
|
||||
.tabs .tab a {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
#his-des .mention{
|
||||
#his-des .mention {
|
||||
color: #039be5;
|
||||
cursor: pointer;
|
||||
}
|
||||
#his-float-blocked {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 2rem;
|
||||
width: 90%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
4
app/dist/builder-effective-config.yaml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
directories:
|
||||
output: dist
|
||||
buildResources: build
|
||||
electronVersion: 1.4.13
|
||||
BIN
app/img/desk.png
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 11 KiB |
35
app/img/desk.svg
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 4096 4096" style="enable-background:new 0 0 4096 4096;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{display:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{fill:#545251;stroke:#040000;stroke-miterlimit:10;}
|
||||
.st3{fill:#F0842E;}
|
||||
.st4{fill:#364C9F;}
|
||||
.st5{fill:#FFFFFF;stroke:#040000;stroke-miterlimit:10;}
|
||||
.st6{fill-rule:evenodd;clip-rule:evenodd;fill:#040000;}
|
||||
.st7{fill-rule:evenodd;clip-rule:evenodd;fill:none;}
|
||||
</style>
|
||||
<g id="レイヤー_1" class="st0">
|
||||
</g>
|
||||
<g id="レイヤー_2">
|
||||
<polyline class="st1" points="1128.5,650.67 3378,1950 3378,2137 1128.5,3432.67 "/>
|
||||
<rect x="678.5" y="128.48" class="st2" width="450" height="3821.5"/>
|
||||
|
||||
<rect x="1915.71" y="-583.55" transform="matrix(0.5 -0.866 0.866 0.5 225.753 2341.5386)" class="st3" width="450" height="3117.62"/>
|
||||
|
||||
<rect x="1915.5" y="1555.41" transform="matrix(0.5 0.866 -0.866 0.5 3762.031 -299.6245)" class="st4" width="450" height="3105.58"/>
|
||||
<path class="st5" d="M714.5,2953.5"/>
|
||||
<path id="path1891" class="st6" d="M1592.47,2584h456.47c0-64.89-4.63-77.76-112.1-77.76c17.17-51.5,86.95-176.11,125.73-176.11
|
||||
c34.31,0,75.24,1.89,75.24,80.17c0,88.87,149.56,232.16,185.82,173.7c54.04-87.12-92.91-60.55-92.91-270.65
|
||||
c0-287.43,167.74-246.51,167.74-407.99c0-80.79-22.32-91.7-22.32-149.46c0-76.34,67.25-71.91,54.17-135.2
|
||||
c-9.04-43.72-16.11-78.78-21.38-131.65c-3.74-37.51-4.93-77.5-43.9-75.89c-45.78,1.89-63.15,82.47-134.31,88.25
|
||||
c-71.02,5.77-131.57-60.46-159.06-51c-27.25,9.38-18.68,83.32-2.52,135.83c25.4,82.54,80.79,189.86-20.2,206.02
|
||||
c-100.99,16.16-274.69,32.32-399.92,197.94s-120.6,359.99-169.66,420.11C1314.72,2612.08,1146,2529.23,1146,2697.11
|
||||
c0,75.16,127.35,129.27,147.55,105.03c20.2-24.24-171.62-96.46,43.01-181.78C1519.91,2547.46,1536.28,2532.58,1592.47,2584z"/>
|
||||
<rect class="st7" width="4096" height="4096"/>
|
||||
<path class="st1" d="M-58,1122"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -1,122 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 4096 4096" style="enable-background:new 0 0 4096 4096;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{display:none;}
|
||||
.st1{fill:none;}
|
||||
.st2{fill:#FFFFFF;}
|
||||
.st3{fill:#FFFFFF;}
|
||||
.st4{fill:#FFFFFF;}
|
||||
.st5{fill:#none;}
|
||||
.st6{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
|
||||
.st7{fill-rule:evenodd;clip-rule:evenodd;fill:none;}
|
||||
</style>
|
||||
<g id="レイヤー_1" class="st0">
|
||||
</g>
|
||||
<g id="レイヤー_2">
|
||||
<polyline class="st1" points="1128.5,650.67 3378,1950 3378,2137 1128.5,3432.67 "/>
|
||||
<rect x="678.5" y="128.48" class="st2" width="450" height="3821.5"/>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="7.11022in" height="7.11022in"
|
||||
viewBox="0 0 512 512">
|
||||
<path id="選択範囲 #1"
|
||||
fill="white" stroke="white" stroke-width="1"
|
||||
d="M 96.00,16.00
|
||||
C 99.85,16.01 102.39,15.12 104.00,19.00
|
||||
104.00,19.00 97.00,19.00 97.00,19.00
|
||||
97.00,19.00 108.00,22.07 108.00,22.07
|
||||
108.00,22.07 144.00,43.08 144.00,43.08
|
||||
144.00,43.08 181.83,64.31 181.83,64.31
|
||||
181.83,64.31 223.00,88.26 223.00,88.26
|
||||
223.00,88.26 247.00,102.22 247.00,102.22
|
||||
247.00,102.22 257.00,107.00 257.00,107.00
|
||||
260.09,110.36 266.43,114.39 271.00,115.00
|
||||
271.00,115.00 298.00,133.00 298.00,133.00
|
||||
298.00,133.00 300.00,132.00 300.00,132.00
|
||||
300.00,132.00 312.00,141.00 312.00,141.00
|
||||
312.00,141.00 314.00,140.00 314.00,140.00
|
||||
318.40,144.39 334.83,152.80 341.00,156.45
|
||||
341.00,156.45 404.00,192.94 404.00,192.94
|
||||
404.00,192.94 425.67,205.63 425.67,205.63
|
||||
428.70,208.64 426.87,211.86 425.12,215.00
|
||||
425.12,215.00 412.26,237.00 412.26,237.00
|
||||
410.65,240.07 409.02,245.62 404.90,245.68
|
||||
401.70,245.72 396.83,242.47 394.00,240.87
|
||||
394.00,240.87 370.00,226.89 370.00,226.89
|
||||
370.00,226.89 282.00,176.51 282.00,176.51
|
||||
282.00,176.51 271.00,169.52 271.00,169.52
|
||||
271.00,169.52 261.00,164.31 261.00,164.31
|
||||
257.45,162.08 251.05,157.46 247.00,157.00
|
||||
247.00,157.00 234.00,148.55 234.00,148.55
|
||||
234.00,148.55 208.17,133.78 208.17,133.78
|
||||
208.17,133.78 190.00,124.00 190.00,124.00
|
||||
190.00,124.00 163.00,107.60 163.00,107.60
|
||||
163.00,107.60 103.00,73.00 103.00,73.00
|
||||
103.00,73.00 103.00,453.00 103.00,453.00
|
||||
103.00,453.00 127.00,439.42 127.00,439.42
|
||||
127.00,439.42 170.00,414.58 170.00,414.58
|
||||
170.00,414.58 237.17,376.24 237.17,376.24
|
||||
237.17,376.24 256.00,364.59 256.00,364.59
|
||||
256.00,364.59 264.00,360.53 264.00,360.53
|
||||
264.00,360.53 285.00,348.20 285.00,348.20
|
||||
285.00,348.20 292.99,344.12 292.99,344.12
|
||||
292.99,344.12 299.28,339.83 299.28,339.83
|
||||
299.28,339.83 320.00,328.41 320.00,328.41
|
||||
320.00,328.41 362.00,304.05 362.00,304.05
|
||||
362.00,304.05 371.91,297.68 371.91,297.68
|
||||
371.91,297.68 379.04,294.41 379.04,294.41
|
||||
379.04,294.41 410.00,276.00 410.00,276.00
|
||||
410.00,276.00 416.00,285.00 416.00,285.00
|
||||
416.81,288.83 421.21,296.21 424.00,299.00
|
||||
424.00,299.00 423.00,301.00 423.00,301.00
|
||||
427.24,303.72 430.62,312.17 432.00,317.00
|
||||
432.00,317.00 388.00,342.67 388.00,342.67
|
||||
388.00,342.67 317.00,383.55 317.00,383.55
|
||||
317.00,383.55 279.00,405.32 279.00,405.32
|
||||
279.00,405.32 264.00,415.00 264.00,415.00
|
||||
264.00,415.00 262.00,414.00 262.00,414.00
|
||||
262.00,414.00 250.00,423.00 250.00,423.00
|
||||
250.00,423.00 248.00,422.00 248.00,422.00
|
||||
248.00,422.00 238.00,428.92 238.00,428.92
|
||||
238.00,428.92 218.00,440.67 218.00,440.67
|
||||
218.00,440.67 207.00,448.00 207.00,448.00
|
||||
207.00,448.00 193.00,455.18 193.00,455.18
|
||||
193.00,455.18 176.00,465.08 176.00,465.08
|
||||
176.00,465.08 166.09,470.31 166.09,470.31
|
||||
166.09,470.31 137.00,487.31 137.00,487.31
|
||||
137.00,487.31 103.00,506.00 103.00,506.00
|
||||
103.00,506.00 104.00,509.00 104.00,509.00
|
||||
104.00,509.00 57.00,509.00 57.00,509.00
|
||||
57.00,509.00 57.00,16.00 57.00,16.00
|
||||
57.00,16.00 96.00,16.00 96.00,16.00 Z
|
||||
M 102.00,72.00
|
||||
C 102.00,72.00 103.00,73.00 103.00,73.00
|
||||
103.00,73.00 103.00,72.00 103.00,72.00
|
||||
103.00,72.00 102.00,72.00 102.00,72.00 Z
|
||||
M 261.00,190.61
|
||||
C 270.30,188.63 274.03,177.15 280.77,179.78
|
||||
284.36,181.18 284.28,187.65 284.72,191.00
|
||||
285.35,195.85 287.64,207.99 286.57,212.00
|
||||
285.51,216.00 282.42,218.30 280.78,222.00
|
||||
277.54,229.29 282.79,236.85 282.99,245.00
|
||||
283.38,261.24 274.02,264.52 266.36,276.00
|
||||
261.36,283.50 258.58,297.05 259.09,306.00
|
||||
259.91,320.41 263.09,322.38 271.02,333.00
|
||||
273.09,335.77 275.09,339.39 272.11,342.37
|
||||
269.94,344.63 266.39,343.51 264.00,342.37
|
||||
258.40,339.52 252.76,332.51 249.91,327.00
|
||||
246.61,320.60 248.26,314.37 244.57,310.23
|
||||
240.72,305.90 235.19,306.50 231.18,310.23
|
||||
225.69,315.34 221.16,325.22 218.00,332.00
|
||||
226.04,333.96 232.79,331.61 234.00,342.00
|
||||
234.00,342.00 175.00,342.00 175.00,342.00
|
||||
166.62,341.85 166.77,339.11 162.00,338.56
|
||||
158.39,338.15 148.72,341.68 145.00,343.05
|
||||
138.31,345.53 120.54,352.22 119.64,360.00
|
||||
119.01,365.49 125.06,367.91 127.00,374.00
|
||||
115.41,373.03 104.20,364.93 108.88,352.00
|
||||
111.36,345.12 117.06,343.57 123.00,340.75
|
||||
132.86,336.05 141.94,332.38 149.58,323.96
|
||||
151.40,321.95 154.62,318.26 155.92,316.00
|
||||
155.92,316.00 166.03,283.00 166.03,283.00
|
||||
169.87,271.08 179.16,256.26 189.00,248.52
|
||||
199.37,240.36 208.38,237.36 221.00,234.66
|
||||
226.45,233.50 237.77,232.36 240.99,227.79
|
||||
244.55,222.75 241.98,216.26 240.34,211.00
|
||||
237.46,201.77 234.64,193.69 237.00,184.00
|
||||
244.82,185.47 252.94,192.32 261.00,190.61 Z
|
||||
M 102.00,453.00
|
||||
C 102.00,453.00 103.00,454.00 103.00,454.00
|
||||
103.00,454.00 103.00,453.00 103.00,453.00
|
||||
103.00,453.00 102.00,453.00 102.00,453.00 Z
|
||||
M 102.00,505.00
|
||||
C 102.00,505.00 103.00,506.00 103.00,506.00
|
||||
103.00,506.00 103.00,505.00 103.00,505.00
|
||||
103.00,505.00 102.00,505.00 102.00,505.00 Z" />
|
||||
<rect x="1915.71" y="-583.55" transform="matrix(0.5 -0.866 0.866 0.5 225.753 2341.5386)" class="st3" width="450" height="3117.62"/>
|
||||
|
||||
<rect x="1915.5" y="1555.41" transform="matrix(0.5 0.866 -0.866 0.5 3762.031 -299.6245)" class="st4" width="450" height="3105.58"/>
|
||||
<path class="st5" d="M714.5,2953.5"/>
|
||||
<path id="path1891" class="st6" d="M1592.47,2584h456.47c0-64.89-4.63-77.76-112.1-77.76c17.17-51.5,86.95-176.11,125.73-176.11
|
||||
c34.31,0,75.24,1.89,75.24,80.17c0,88.87,149.56,232.16,185.82,173.7c54.04-87.12-92.91-60.55-92.91-270.65
|
||||
c0-287.43,167.74-246.51,167.74-407.99c0-80.79-22.32-91.7-22.32-149.46c0-76.34,67.25-71.91,54.17-135.2
|
||||
c-9.04-43.72-16.11-78.78-21.38-131.65c-3.74-37.51-4.93-77.5-43.9-75.89c-45.78,1.89-63.15,82.47-134.31,88.25
|
||||
c-71.02,5.77-131.57-60.46-159.06-51c-27.25,9.38-18.68,83.32-2.52,135.83c25.4,82.54,80.79,189.86-20.2,206.02
|
||||
c-100.99,16.16-274.69,32.32-399.92,197.94s-120.6,359.99-169.66,420.11C1314.72,2612.08,1146,2529.23,1146,2697.11
|
||||
c0,75.16,127.35,129.27,147.55,105.03c20.2-24.24-171.62-96.46,43.01-181.78C1519.91,2547.46,1536.28,2532.58,1592.47,2584z"/>
|
||||
<rect class="st7" width="4096" height="4096"/>
|
||||
<path class="st1" d="M-58,1122"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 434 B |
|
Before Width: | Height: | Size: 34 KiB |
132
app/img/thinking.svg
Normal file
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 4096 4096" style="enable-background:new 0 0 4096 4096;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#040000;}
|
||||
.st1{fill:#040000;stroke:#040000;stroke-miterlimit:10;}
|
||||
.st2{clip-path:url(#SVGID_2_);}
|
||||
.st3{clip-path:url(#SVGID_4_);}
|
||||
.st4{fill:none;}
|
||||
.st5{fill:#FFFFFF;}
|
||||
.st6{fill:#545251;stroke:#040000;stroke-miterlimit:10;}
|
||||
.st7{fill:#F0842E;}
|
||||
.st8{fill:#3D4FA0;}
|
||||
.st9{fill:#63451F;stroke:#FFFFFF;stroke-width:20;stroke-miterlimit:10;}
|
||||
.st10{fill:#63451F;}
|
||||
</style>
|
||||
<g id="DrawBlack">
|
||||
<polyline id="BG_1_" class="st0" points="1128.5,650.67 3378,1950 3378,2137 1128.5,3432.67 "/>
|
||||
<rect id="Left_1_" x="678.5" y="128.48" class="st1" width="450" height="3821.5"/>
|
||||
|
||||
<rect id="Top_1_" x="1915.71" y="-583.55" transform="matrix(0.5 -0.866 0.866 0.5 225.753 2341.5386)" class="st0" width="450" height="3117.62"/>
|
||||
<g id="Finger_1_">
|
||||
<g>
|
||||
<defs>
|
||||
|
||||
<rect id="SVGID_1_" x="-626.54" y="666.18" transform="matrix(0.9063 -0.4226 0.4226 0.9063 -723.8983 1097.2598)" width="5478.6" height="3030.2"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_2_">
|
||||
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
|
||||
</clipPath>
|
||||
<g id="g14_3_" class="st2">
|
||||
<g id="g44_1_" transform="translate(17.2764,0.8682)">
|
||||
<path id="path46_1_" class="st0" d="M2605.11,3533.86c0,0,159.85-112.71,149-195.05c-10.68-85.2-127.58-48.89-127.58-48.89
|
||||
s136.18-82.82,112.7-180.35c-22.17-91.83-167.38-48.54-167.38-48.54s119.56-92.9,85.39-182.75
|
||||
c-28.87-75.6-188.03-44.94-188.03-44.94s651.47-417.09,718.51-459.5c66.86-42.42,160.29-131.95,87.28-198.12
|
||||
c-72.76-66.37-205.83-7.85-269.88,32.69c-64.01,40.62-874.42,553.28-1153.93,730.24c-29.84,18.84-169.66,107.16-186.59,118.03
|
||||
c-69.96,44.42-112.22,42.02-74.07-13.01c51.14-73.63,74.73-139.7,55.45-222.1c-20.44-86.69-114.31-161.6-159.65-186.44
|
||||
c-84.35-46.21-197.27-61.16-306.71-33.34c-170.83,43.44-256.98,149.65-157.15,218.26c149.29,102.66,148.88,244.02,37.82,381.07
|
||||
c-261.05,322.06-363.57,512.7-142.28,713.95c241.24,219.53,812.72,166.75,1276.35-126.35
|
||||
C2218.92,3773.38,2605.11,3533.86,2605.11,3533.86"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Eyes_1_">
|
||||
<g>
|
||||
<defs>
|
||||
<rect id="SVGID_3_" x="95.01" y="544.01" width="3526.99" height="3526.99"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_4_">
|
||||
<use xlink:href="#SVGID_3_" style="overflow:visible;"/>
|
||||
</clipPath>
|
||||
<g id="g14_2_" class="st3">
|
||||
<g id="g24_1_" transform="translate(15.4063,25.5)">
|
||||
<path id="path26_1_" class="st0" d="M1588.99,1547.21c0,135.3-87.78,244.93-195.94,244.93
|
||||
c-108.16,0-195.94-109.63-195.94-244.93c0-135.2,87.78-244.93,195.94-244.93C1501.21,1302.28,1588.99,1412.01,1588.99,1547.21"
|
||||
/>
|
||||
</g>
|
||||
<g id="g32_1_" transform="translate(9.6709,29.667)">
|
||||
<path id="path34_1_" class="st0" d="M1032.82,1134.8c-16.07-8.52-29.69-21.85-38.31-38.99c-21.16-42.03-3.92-90.82,38.5-109.04
|
||||
c417.95-179.29,754.29-4.21,768.39,3.33c42.42,22.63,59.57,73.28,38.31,113.06c-21.16,39.68-72.5,53.49-114.92,31.16
|
||||
c-12.05-6.27-277.46-140.3-615.07,4.6C1084.54,1149.59,1056.13,1147.24,1032.82,1134.8"/>
|
||||
</g>
|
||||
<g id="g36_1_" transform="translate(14.7427,16.4277)">
|
||||
<path id="path38_1_" class="st0" d="M1524.64,2445.12c-13.32-12.44-23.12-28.71-27.04-47.61c-9.7-45.95,19.4-88.76,65.15-95.42
|
||||
c449.89-66.43,730.09,188.99,741.94,199.86c35.27,32.72,38.7,85.92,8.03,119.04c-30.57,32.92-83.77,33.11-118.94,0.59
|
||||
c-10.19-9.01-232.39-206.52-595.87-152.93C1570.78,2472.65,1543.94,2463.15,1524.64,2445.12"/>
|
||||
</g>
|
||||
<g id="g40_1_" transform="translate(20.4307,25.917)">
|
||||
<path id="path42_1_" class="st0" d="M2076.21,1505.94c-15.28-9.6-28.02-23.81-35.47-41.54c-18.32-43.3,2.25-90.92,45.75-106.2
|
||||
c429.22-150.48,752.91,47.03,766.53,55.55c40.66,25.47,54.28,77.1,30.47,115.41c-23.71,38.21-76.03,48.5-116.68,23.32
|
||||
c-11.76-7.15-267.27-158.81-613.99-37.23C2126.96,1524.26,2098.75,1519.95,2076.21,1505.94"/>
|
||||
</g>
|
||||
<g id="g28_1_" transform="translate(26,24.5)">
|
||||
<path id="path30_1_" class="st0" d="M2616.28,1646.19c0,135.3-87.69,244.93-195.94,244.93
|
||||
c-108.16,0-195.94-109.63-195.94-244.93c0-135.2,87.78-244.93,195.94-244.93C2528.6,1401.26,2616.28,1510.99,2616.28,1646.19"
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Path">
|
||||
<path id="CutLine" class="st4" d="M528,128C532-14,669,0,669,0h346l2629,1464c0,0,78,34,28,108s-217,359-217,359s-22,9,9,226
|
||||
s-204,313-204,313l-545,356c0,0,421.37,492.67,29.68,732.33S1798,4056,1798,4056s28.13,15-290.94,15s-828.56,0-828.56,0
|
||||
S531,4102,528,3904S528,128,528,128z"/>
|
||||
</g>
|
||||
<g id="Draw">
|
||||
<polyline id="BG" class="st5" points="1128.5,650.67 3378,1950 3378,2137 1128.5,3432.67 "/>
|
||||
<rect id="Left" x="678.5" y="128.48" class="st6" width="450" height="3821.5"/>
|
||||
|
||||
<rect id="Top" x="1915.71" y="-583.55" transform="matrix(0.5 -0.866 0.866 0.5 225.753 2341.5386)" class="st7" width="450" height="3117.62"/>
|
||||
<g id="Finger">
|
||||
<g id="g44" transform="translate(17.2764,0.8682)">
|
||||
<path id="path46" class="st8" d="M2605.11,3533.86c0,0,159.85-112.71,149-195.05c-10.68-85.2-127.58-48.89-127.58-48.89
|
||||
s136.18-82.82,112.7-180.35c-22.17-91.83-167.38-48.54-167.38-48.54s119.56-92.9,85.39-182.75
|
||||
c-28.87-75.6-188.03-44.94-188.03-44.94s651.47-417.09,718.51-459.5c66.86-42.42,160.29-131.95,87.28-198.12
|
||||
c-72.76-66.37-205.83-7.85-269.88,32.69c-64.01,40.62-874.42,553.28-1153.93,730.24c-29.84,18.84-169.66,107.16-186.59,118.03
|
||||
c-69.96,44.42-112.22,42.02-74.07-13.01c51.14-73.63,74.73-139.7,55.45-222.1c-20.44-86.69-114.31-161.6-159.65-186.44
|
||||
c-84.35-46.21-197.27-61.16-306.71-33.34c-170.83,43.44-256.98,149.65-157.15,218.26c149.29,102.66,148.88,244.02,37.82,381.07
|
||||
c-261.05,322.06-363.57,512.7-142.28,713.95c241.24,219.53,812.72,166.75,1276.35-126.35
|
||||
C2218.92,3773.38,2605.11,3533.86,2605.11,3533.86"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Eyes">
|
||||
<g id="g24" transform="translate(15.4063,25.5)">
|
||||
<path id="path26" class="st9" d="M1588.99,1547.21c0,135.3-87.78,244.93-195.94,244.93c-108.16,0-195.94-109.63-195.94-244.93
|
||||
c0-135.2,87.78-244.93,195.94-244.93C1501.21,1302.28,1588.99,1412.01,1588.99,1547.21"/>
|
||||
</g>
|
||||
<g id="g32" transform="translate(9.6709,29.667)">
|
||||
<path id="path34" class="st9" d="M1032.82,1134.8c-16.07-8.52-29.69-21.85-38.31-38.99c-21.16-42.03-3.92-90.82,38.5-109.04
|
||||
c417.95-179.29,754.29-4.21,768.39,3.33c42.42,22.63,59.57,73.28,38.31,113.06c-21.16,39.68-72.5,53.49-114.92,31.16
|
||||
c-12.05-6.27-277.46-140.3-615.07,4.6C1084.54,1149.59,1056.13,1147.24,1032.82,1134.8"/>
|
||||
</g>
|
||||
<g id="g36" transform="translate(14.7427,16.4277)">
|
||||
<path id="path38" class="st9" d="M1524.64,2445.12c-13.32-12.44-23.12-28.71-27.04-47.61c-9.7-45.95,19.4-88.76,65.15-95.42
|
||||
c449.89-66.43,730.09,188.99,741.94,199.86c35.27,32.72,38.7,85.92,8.03,119.04c-30.57,32.92-83.77,33.11-118.94,0.59
|
||||
c-10.19-9.01-232.39-206.52-595.87-152.93C1570.78,2472.65,1543.94,2463.15,1524.64,2445.12"/>
|
||||
</g>
|
||||
<g id="g40" transform="translate(20.4307,25.917)">
|
||||
<path id="path42" class="st9" d="M2076.21,1505.94c-15.28-9.6-28.02-23.81-35.47-41.54c-18.32-43.3,2.25-90.92,45.75-106.2
|
||||
c429.22-150.48,752.91,47.03,766.53,55.55c40.66,25.47,54.28,77.1,30.47,115.41c-23.71,38.21-76.03,48.5-116.68,23.32
|
||||
c-11.76-7.15-267.27-158.81-613.99-37.23C2126.96,1524.26,2098.75,1519.95,2076.21,1505.94"/>
|
||||
</g>
|
||||
<g id="g28" transform="translate(26,24.5)">
|
||||
<path id="path30" class="st10" d="M2616.28,1646.19c0,135.3-87.69,244.93-195.94,244.93c-108.16,0-195.94-109.63-195.94-244.93
|
||||
c0-135.2,87.78-244.93,195.94-244.93C2528.6,1401.26,2616.28,1510.99,2616.28,1646.19"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.6 KiB |
@@ -1,5 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="0;URL='language.html?mode=redirect'" />
|
||||
</head>
|
||||
@@ -1,6 +1,4 @@
|
||||
//このソフトについて
|
||||
function about() {
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('about', 'go');
|
||||
postMessage(["sendSinmpleIpc", "about"], "*")
|
||||
}
|
||||
119
app/js/common/blurhash.js
Normal file
@@ -0,0 +1,119 @@
|
||||
var digitCharacters = [
|
||||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
|
||||
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
|
||||
"U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d",
|
||||
"e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
|
||||
"o", "p", "q", "r", "s", "t", "u", "v", "w", "x",
|
||||
"y", "z", "#", "$", "%", "*", "+", ",", "-", ".",
|
||||
":", ";", "=", "?", "@", "[", "]", "^", "_", "{",
|
||||
"|", "}", "~",
|
||||
];
|
||||
function decode83(str) {
|
||||
var value = 0;
|
||||
for (var i = 0; i < str.length; i++) {
|
||||
var c = str[i];
|
||||
var digit = digitCharacters.indexOf(c);
|
||||
value = value * 83 + digit;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
function linearTosRGB(value) {
|
||||
var v = Math.max(0, Math.min(1, value));
|
||||
if (v <= 0.0031308) {
|
||||
return Math.round(v * 12.92 * 255 + 0.5);
|
||||
}
|
||||
else {
|
||||
return Math.round((1.055 * Math.pow(v, 1 / 2.4) - 0.055) * 255 + 0.5);
|
||||
}
|
||||
}
|
||||
function sRGBToLinear(value) {
|
||||
var v = value / 255;
|
||||
if (v <= 0.04045) {
|
||||
return v / 12.92;
|
||||
}
|
||||
else {
|
||||
return Math.pow((v + 0.055) / 1.055, 2.4);
|
||||
}
|
||||
}
|
||||
function decodeDC(value) {
|
||||
var intR = value >> 16;
|
||||
var intG = (value >> 8) & 255;
|
||||
var intB = value & 255;
|
||||
return [sRGBToLinear(intR), sRGBToLinear(intG), sRGBToLinear(intB)];
|
||||
};
|
||||
function sign(n) { return (n < 0 ? -1 : 1); }
|
||||
function signPow(val, exp) { return sign(val) * Math.pow(Math.abs(val), exp); }
|
||||
function decodeDC2(value, maximumValue) {
|
||||
var quantR = Math.floor(value / (19 * 19));
|
||||
var quantG = Math.floor(value / 19) % 19;
|
||||
var quantB = value % 19;
|
||||
var rgb = [
|
||||
signPow((quantR - 9) / 9, 2.0) * maximumValue,
|
||||
signPow((quantG - 9) / 9, 2.0) * maximumValue,
|
||||
signPow((quantB - 9) / 9, 2.0) * maximumValue,
|
||||
];
|
||||
return rgb;
|
||||
};
|
||||
function decodeblur(blurhash, width, height, punch) {
|
||||
punch = punch | 1;
|
||||
if (blurhash.length < 6) {
|
||||
console.error('too short blurhash');
|
||||
return null;
|
||||
}
|
||||
var sizeFlag = decode83(blurhash[0]);
|
||||
var numY = Math.floor(sizeFlag / 9) + 1;
|
||||
var numX = (sizeFlag % 9) + 1;
|
||||
var quantisedMaximumValue = decode83(blurhash[1]);
|
||||
var maximumValue = (quantisedMaximumValue + 1) / 166;
|
||||
if (blurhash.length !== 4 + 2 * numX * numY) {
|
||||
console.error('blurhash length mismatch', blurhash.length, 4 + 2 * numX * numY);
|
||||
return null;
|
||||
}
|
||||
var colors = new Array(numX * numY);
|
||||
for (var i = 0; i < colors.length; i++) {
|
||||
if (i === 0) {
|
||||
var value = decode83(blurhash.substring(2, 6));
|
||||
colors[i] = decodeDC(value);
|
||||
}
|
||||
else {
|
||||
var value = decode83(blurhash.substring(4 + i * 2, 6 + i * 2));
|
||||
colors[i] = decodeDC2(value, maximumValue * punch);
|
||||
}
|
||||
}
|
||||
var bytesPerRow = width * 4;
|
||||
var pixels = new Uint8ClampedArray(bytesPerRow * height);
|
||||
for (var y = 0; y < height; y++) {
|
||||
for (var x = 0; x < width; x++) {
|
||||
var r = 0;
|
||||
var g = 0;
|
||||
var b = 0;
|
||||
for (var j = 0; j < numY; j++) {
|
||||
for (var i = 0; i < numX; i++) {
|
||||
var basis = Math.cos(Math.PI * x * i / width) * Math.cos(Math.PI * y * j / height);
|
||||
var color = colors[i + j * numX];
|
||||
r += color[0] * basis;
|
||||
g += color[1] * basis;
|
||||
b += color[2] * basis;
|
||||
}
|
||||
}
|
||||
var intR = linearTosRGB(r);
|
||||
var intG = linearTosRGB(g);
|
||||
var intB = linearTosRGB(b);
|
||||
pixels[4 * x + 0 + y * bytesPerRow] = intR;
|
||||
pixels[4 * x + 1 + y * bytesPerRow] = intG;
|
||||
pixels[4 * x + 2 + y * bytesPerRow] = intB;
|
||||
pixels[4 * x + 3 + y * bytesPerRow] = 255; // alpha
|
||||
}
|
||||
}
|
||||
return pixels;
|
||||
}
|
||||
function parseBlur(blur) {
|
||||
var canvas = document.getElementById('canvas');
|
||||
var ctx = canvas.getContext('2d');
|
||||
var pixels = decodeblur(blur, 32, 32)
|
||||
const imageData = new ImageData(pixels, 32, 32);
|
||||
|
||||
ctx.putImageData(imageData, 0, 0);
|
||||
return canvas.toDataURL()
|
||||
}
|
||||
4
app/js/common/jquery.js
vendored
@@ -1,16 +1,18 @@
|
||||
$(function($) {
|
||||
selectedColumn = 0
|
||||
selectedToot = 0
|
||||
$(function ($) {
|
||||
//キーボードショートカット
|
||||
$(window).keydown(function(e) {
|
||||
$(window).keydown(function (e) {
|
||||
var hasFocus = $('input').is(':focus');
|
||||
var hasFocus2 = $('textarea').is(':focus');
|
||||
if(document.getElementById("webview")){
|
||||
if($("#webviewsel:checked").val()){
|
||||
var wv=false;
|
||||
}else{
|
||||
var wv=true;
|
||||
if (document.getElementById("webview")) {
|
||||
if ($("#webviewsel:checked").val()) {
|
||||
var wv = false;
|
||||
} else {
|
||||
var wv = true;
|
||||
}
|
||||
}else{
|
||||
var wv=true;
|
||||
} else {
|
||||
var wv = true;
|
||||
}
|
||||
//Ctrl+Shift+Enter:Lgen
|
||||
if (event.metaKey || event.ctrlKey && wv) {
|
||||
@@ -20,7 +22,6 @@ $(function($) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//Ctrl+Enter:投稿
|
||||
if (event.metaKey || event.ctrlKey && wv) {
|
||||
@@ -36,14 +37,6 @@ $(function($) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//Shift+Space:Markdownゼロ幅スペース
|
||||
if (event.shiftKey) {
|
||||
if (e.keyCode === 32) {
|
||||
brInsert("");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//Esc:消す
|
||||
if (e.keyCode === 27 && wv) {
|
||||
hide();
|
||||
@@ -54,16 +47,8 @@ $(function($) {
|
||||
location.href = "index.html";
|
||||
return false;
|
||||
}
|
||||
//Ctrl+R:ランキング
|
||||
if ((event.metaKey || event.ctrlKey) && wv) {
|
||||
if (e.keyCode === 82) {
|
||||
if(localStorage.getItem("kirishima")){
|
||||
window.open("https://astarte.thedesk.top");
|
||||
}
|
||||
}
|
||||
}
|
||||
//Ctrl+Sift+C:全消し
|
||||
if (((event.metaKey || event.ctrlKey) && event.shiftKey )&& wv) {
|
||||
if (((event.metaKey || event.ctrlKey) && event.shiftKey) && wv) {
|
||||
if (e.keyCode === 67) {
|
||||
clear();
|
||||
return false;
|
||||
@@ -78,8 +63,8 @@ $(function($) {
|
||||
}
|
||||
}
|
||||
//input/textareaにフォーカスなし時
|
||||
if ((!hasFocus && !hasFocus2 ) && wv) {
|
||||
if(!wv){
|
||||
if ((!hasFocus && !hasFocus2) && wv) {
|
||||
if (!wv) {
|
||||
return true;
|
||||
}
|
||||
//Ctrl+V:いつもの
|
||||
@@ -135,7 +120,7 @@ $(function($) {
|
||||
}
|
||||
}
|
||||
//Ctrl+Sift+P:プロフ
|
||||
if ((event.ctrlKey) && event.shiftKey) {
|
||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
||||
if (e.keyCode === 80) {
|
||||
profShow()
|
||||
return false;
|
||||
@@ -143,62 +128,120 @@ $(function($) {
|
||||
}
|
||||
//数字:TL
|
||||
if (event.metaKey || event.ctrlKey) {
|
||||
if (e.keyCode >= 49 && e.keyCode <= 57) {
|
||||
var kz=e.keyCode-49;
|
||||
goColumn(kz);
|
||||
if (e.keyCode >= 49 && e.keyCode <= 57) {
|
||||
var kz = e.keyCode - 49;
|
||||
goColumn(kz);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//矢印:選択
|
||||
if (e.code == "ArrowLeft") {
|
||||
//left
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
imgCont('prev');
|
||||
return false;
|
||||
}
|
||||
if (selectedColumn > 0) {
|
||||
selectedColumn--
|
||||
}
|
||||
tootSelector(selectedColumn, selectedToot)
|
||||
return false;
|
||||
} else if (e.code == "ArrowUp") {
|
||||
//up
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
return false;
|
||||
}
|
||||
if (selectedToot > 0) {
|
||||
selectedToot--
|
||||
}
|
||||
tootSelector(selectedColumn, selectedToot)
|
||||
return false;
|
||||
} else if (e.code == "ArrowRight") {
|
||||
//right
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
imgCont('next');
|
||||
return false;
|
||||
}
|
||||
if (selectedColumn < $(".tl-box").length - 1) {
|
||||
selectedColumn++
|
||||
}
|
||||
tootSelector(selectedColumn, selectedToot)
|
||||
return false;
|
||||
} else if (e.code == "ArrowDown") {
|
||||
//down
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
return false;
|
||||
}
|
||||
selectedToot++
|
||||
tootSelector(selectedColumn, selectedToot)
|
||||
return false;
|
||||
}
|
||||
//Ctrl+U:0,0選択
|
||||
if (event.ctrlKey || event.metaKey) {
|
||||
if (e.keyCode === 85) {
|
||||
selectedToot = 0
|
||||
selectedColumn = 0
|
||||
tootSelector(0, 0)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//選択時
|
||||
if (e.keyCode == 70) {
|
||||
var id = $(".selectedToot").attr('unique-id')
|
||||
var acct_id = $('#timeline_' + selectedColumn).attr("data-acct")
|
||||
fav(id, acct_id, false)
|
||||
return false;
|
||||
}
|
||||
if (e.keyCode == 66) {
|
||||
var id = $(".selectedToot").attr('unique-id')
|
||||
var acct_id = $('#timeline_' + selectedColumn).attr("data-acct")
|
||||
rt(id, acct_id, false)
|
||||
return false;
|
||||
}
|
||||
if (e.keyCode == 82) {
|
||||
var id = $(".selectedToot").attr('unique-id')
|
||||
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)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//textareaフォーカス時
|
||||
if (hasFocus2 && wv) {
|
||||
if (event.metaKey || event.ctrlKey) {
|
||||
//Ctrl+B:太字
|
||||
if (e.keyCode === 66) {
|
||||
tagsel('b');
|
||||
return false;
|
||||
}
|
||||
//Ctrl+I:斜字
|
||||
if (e.keyCode === 73) {
|
||||
tagsel('i');
|
||||
return false;
|
||||
}
|
||||
//Ctrl+U:下線
|
||||
if (e.keyCode === 85) {
|
||||
tagsel('u');
|
||||
return false;
|
||||
}
|
||||
//Ctrl+S:取り消し線
|
||||
if (e.keyCode === 83) {
|
||||
tagsel('s');
|
||||
return false;
|
||||
}
|
||||
//C+S+(No):ワンクリ
|
||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
||||
if (e.keyCode >= 49 && e.keyCode <= 51) {
|
||||
var no=e.keyCode-48;
|
||||
if(localStorage.getItem("oks-"+no)){$("#textarea").val($("#textarea").val()+localStorage.getItem("oks-"+no))}
|
||||
var no = e.keyCode - 48;
|
||||
if (localStorage.getItem("oks-" + no)) { $("#textarea").val($("#textarea").val() + localStorage.getItem("oks-" + no)) }
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//イメージビューワー切り替え
|
||||
if (e.keyCode === 37 &&wv) {
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
imgCont('prev');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (e.keyCode === 39 && wv) {
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
imgCont('next');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
//クリアボタン
|
||||
$("#clear").click(function() {
|
||||
$("#clear").click(function () {
|
||||
clear();
|
||||
});
|
||||
});
|
||||
//選択する
|
||||
function tootSelector(column, toot) {
|
||||
$('.cvo').removeClass("selectedToot")
|
||||
$('#timeline_' + column + ' .cvo').eq(toot).addClass("selectedToot")
|
||||
var scr = $('.tl-box[tlid=' + column + ']').scrollTop()
|
||||
var elem = $('.selectedToot').offset().top
|
||||
var top = elem - $('.tl-box').height() + scr
|
||||
if (top > 0) {
|
||||
top = top + $('.selectedToot').height()
|
||||
if (top > scr) {
|
||||
$('.tl-box[tlid=' + column + ']').animate({ scrollTop: top })
|
||||
}
|
||||
} else if (elem < 0) {
|
||||
var to = scr + elem - $('.selectedToot').height()
|
||||
if (to < scr) {
|
||||
$('.tl-box[tlid=' + column + ']').animate({ scrollTop: to })
|
||||
}
|
||||
}
|
||||
}
|
||||
10022
app/js/common/materialize.js
vendored
6
app/js/common/materialize.min.js
vendored
@@ -1,17 +1,26 @@
|
||||
//モーダル・ドロップダウンの各種設定
|
||||
$(document).ready(function(){
|
||||
// the "href" attribute of the modal trigger must specify the modal ID that wants to be triggered
|
||||
$('.modal').modal();
|
||||
$('.dropdown-button').dropdown({
|
||||
inDuration: 300,
|
||||
outDuration: 225,
|
||||
constrainWidth: false, // Does not change width of dropdown to that of the activator
|
||||
hover: false, // Activate on hover
|
||||
gutter: 0, // Spacing from edge
|
||||
belowOrigin: false, // Displays dropdown below the button
|
||||
alignment: 'left', // Displays dropdown with edge aligned to the left of button
|
||||
stopPropagation: false // Stops event propagation
|
||||
}
|
||||
);
|
||||
|
||||
$(document).ready(function () {
|
||||
// the "href" attribute of the modal trigger must specify the modal ID that wants to be triggered
|
||||
$('.modal').modal({
|
||||
inDuration: 300,
|
||||
outDuration: 225,
|
||||
constrainWidth: false, // Does not change width of dropdown to that of the activator
|
||||
hover: false, // Activate on hover
|
||||
gutter: 0, // Spacing from edge
|
||||
belowOrigin: false, // Displays dropdown below the button
|
||||
alignment: 'left', // Displays dropdown with edge aligned to the left of button
|
||||
stopPropagation: false
|
||||
});
|
||||
$('.dropdown-trigger').dropdown({
|
||||
inDuration: 300,
|
||||
outDuration: 225,
|
||||
constrainWidth: false, // Does not change width of dropdown to that of the activator
|
||||
hover: false, // Activate on hover
|
||||
gutter: 0, // Spacing from edge
|
||||
belowOrigin: false, // Displays dropdown below the button
|
||||
alignment: 'left', // Displays dropdown with edge aligned to the left of button
|
||||
stopPropagation: false // Stops event propagation
|
||||
}
|
||||
);
|
||||
$('.collapsible').collapsible();
|
||||
});
|
||||
@@ -1,33 +1,96 @@
|
||||
/*
|
||||
A JavaScript implementation of the SHA family of hashes, as
|
||||
defined in FIPS PUB 180-4 and FIPS PUB 202, as well as the corresponding
|
||||
HMAC implementation as defined in FIPS PUB 198a
|
||||
var sha256 = function sha256(ascii) {
|
||||
function rightRotate(value, amount) {
|
||||
return (value >>> amount) | (value << (32 - amount));
|
||||
};
|
||||
|
||||
Copyright 2008-2018 Brian Turek, 1998-2009 Paul Johnston & Contributors
|
||||
Distributed under the BSD License
|
||||
See http://caligatio.github.com/jsSHA/ for more information
|
||||
*/
|
||||
'use strict';(function(I){function w(c,a,d){var l=0,b=[],g=0,f,n,k,e,h,q,y,p,m=!1,t=[],r=[],u,z=!1;d=d||{};f=d.encoding||"UTF8";u=d.numRounds||1;if(u!==parseInt(u,10)||1>u)throw Error("numRounds must a integer >= 1");if(0===c.lastIndexOf("SHA-",0))if(q=function(b,a){return A(b,a,c)},y=function(b,a,l,f){var g,e;if("SHA-224"===c||"SHA-256"===c)g=(a+65>>>9<<4)+15,e=16;else throw Error("Unexpected error in SHA-2 implementation");for(;b.length<=g;)b.push(0);b[a>>>5]|=128<<24-a%32;a=a+l;b[g]=a&4294967295;
|
||||
b[g-1]=a/4294967296|0;l=b.length;for(a=0;a<l;a+=e)f=A(b.slice(a,a+e),f,c);if("SHA-224"===c)b=[f[0],f[1],f[2],f[3],f[4],f[5],f[6]];else if("SHA-256"===c)b=f;else throw Error("Unexpected error in SHA-2 implementation");return b},p=function(b){return b.slice()},"SHA-224"===c)h=512,e=224;else if("SHA-256"===c)h=512,e=256;else throw Error("Chosen SHA variant is not supported");else throw Error("Chosen SHA variant is not supported");k=B(a,f);n=x(c);this.setHMACKey=function(b,a,g){var e;if(!0===m)throw Error("HMAC key already set");
|
||||
if(!0===z)throw Error("Cannot set HMAC key after calling update");f=(g||{}).encoding||"UTF8";a=B(a,f)(b);b=a.binLen;a=a.value;e=h>>>3;g=e/4-1;if(e<b/8){for(a=y(a,b,0,x(c));a.length<=g;)a.push(0);a[g]&=4294967040}else if(e>b/8){for(;a.length<=g;)a.push(0);a[g]&=4294967040}for(b=0;b<=g;b+=1)t[b]=a[b]^909522486,r[b]=a[b]^1549556828;n=q(t,n);l=h;m=!0};this.update=function(a){var c,f,e,d=0,p=h>>>5;c=k(a,b,g);a=c.binLen;f=c.value;c=a>>>5;for(e=0;e<c;e+=p)d+h<=a&&(n=q(f.slice(e,e+p),n),d+=h);l+=d;b=f.slice(d>>>
|
||||
5);g=a%h;z=!0};this.getHash=function(a,f){var d,h,k,q;if(!0===m)throw Error("Cannot call getHash after setting HMAC key");k=C(f);switch(a){case "HEX":d=function(a){return D(a,e,k)};break;case "B64":d=function(a){return E(a,e,k)};break;case "BYTES":d=function(a){return F(a,e)};break;case "ARRAYBUFFER":try{h=new ArrayBuffer(0)}catch(v){throw Error("ARRAYBUFFER not supported by this environment");}d=function(a){return G(a,e)};break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER");
|
||||
}q=y(b.slice(),g,l,p(n));for(h=1;h<u;h+=1)q=y(q,e,0,x(c));return d(q)};this.getHMAC=function(a,f){var d,k,t,u;if(!1===m)throw Error("Cannot call getHMAC without first setting HMAC key");t=C(f);switch(a){case "HEX":d=function(a){return D(a,e,t)};break;case "B64":d=function(a){return E(a,e,t)};break;case "BYTES":d=function(a){return F(a,e)};break;case "ARRAYBUFFER":try{d=new ArrayBuffer(0)}catch(v){throw Error("ARRAYBUFFER not supported by this environment");}d=function(a){return G(a,e)};break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER");
|
||||
}k=y(b.slice(),g,l,p(n));u=q(r,x(c));u=y(k,e,h,u);return d(u)}}function m(){}function D(c,a,d){var l="";a/=8;var b,g;for(b=0;b<a;b+=1)g=c[b>>>2]>>>8*(3+b%4*-1),l+="0123456789abcdef".charAt(g>>>4&15)+"0123456789abcdef".charAt(g&15);return d.outputUpper?l.toUpperCase():l}function E(c,a,d){var l="",b=a/8,g,f,n;for(g=0;g<b;g+=3)for(f=g+1<b?c[g+1>>>2]:0,n=g+2<b?c[g+2>>>2]:0,n=(c[g>>>2]>>>8*(3+g%4*-1)&255)<<16|(f>>>8*(3+(g+1)%4*-1)&255)<<8|n>>>8*(3+(g+2)%4*-1)&255,f=0;4>f;f+=1)8*g+6*f<=a?l+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n>>>
|
||||
6*(3-f)&63):l+=d.b64Pad;return l}function F(c,a){var d="",l=a/8,b,g;for(b=0;b<l;b+=1)g=c[b>>>2]>>>8*(3+b%4*-1)&255,d+=String.fromCharCode(g);return d}function G(c,a){var d=a/8,l,b=new ArrayBuffer(d),g;g=new Uint8Array(b);for(l=0;l<d;l+=1)g[l]=c[l>>>2]>>>8*(3+l%4*-1)&255;return b}function C(c){var a={outputUpper:!1,b64Pad:"=",shakeLen:-1};c=c||{};a.outputUpper=c.outputUpper||!1;!0===c.hasOwnProperty("b64Pad")&&(a.b64Pad=c.b64Pad);if("boolean"!==typeof a.outputUpper)throw Error("Invalid outputUpper formatting option");
|
||||
if("string"!==typeof a.b64Pad)throw Error("Invalid b64Pad formatting option");return a}function B(c,a){var d;switch(a){case "UTF8":case "UTF16BE":case "UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE");}switch(c){case "HEX":d=function(a,b,c){var f=a.length,d,k,e,h,q;if(0!==f%2)throw Error("String of HEX type must be in byte increments");b=b||[0];c=c||0;q=c>>>3;for(d=0;d<f;d+=2){k=parseInt(a.substr(d,2),16);if(isNaN(k))throw Error("String of HEX type contains invalid characters");
|
||||
h=(d>>>1)+q;for(e=h>>>2;b.length<=e;)b.push(0);b[e]|=k<<8*(3+h%4*-1)}return{value:b,binLen:4*f+c}};break;case "TEXT":d=function(c,b,d){var f,n,k=0,e,h,q,m,p,r;b=b||[0];d=d||0;q=d>>>3;if("UTF8"===a)for(r=3,e=0;e<c.length;e+=1)for(f=c.charCodeAt(e),n=[],128>f?n.push(f):2048>f?(n.push(192|f>>>6),n.push(128|f&63)):55296>f||57344<=f?n.push(224|f>>>12,128|f>>>6&63,128|f&63):(e+=1,f=65536+((f&1023)<<10|c.charCodeAt(e)&1023),n.push(240|f>>>18,128|f>>>12&63,128|f>>>6&63,128|f&63)),h=0;h<n.length;h+=1){p=k+
|
||||
q;for(m=p>>>2;b.length<=m;)b.push(0);b[m]|=n[h]<<8*(r+p%4*-1);k+=1}else if("UTF16BE"===a||"UTF16LE"===a)for(r=2,n="UTF16LE"===a&&!0||"UTF16LE"!==a&&!1,e=0;e<c.length;e+=1){f=c.charCodeAt(e);!0===n&&(h=f&255,f=h<<8|f>>>8);p=k+q;for(m=p>>>2;b.length<=m;)b.push(0);b[m]|=f<<8*(r+p%4*-1);k+=2}return{value:b,binLen:8*k+d}};break;case "B64":d=function(a,b,c){var f=0,d,k,e,h,q,m,p;if(-1===a.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");k=a.indexOf("=");a=a.replace(/\=/g,
|
||||
"");if(-1!==k&&k<a.length)throw Error("Invalid '=' found in base-64 string");b=b||[0];c=c||0;m=c>>>3;for(k=0;k<a.length;k+=4){q=a.substr(k,4);for(e=h=0;e<q.length;e+=1)d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(q[e]),h|=d<<18-6*e;for(e=0;e<q.length-1;e+=1){p=f+m;for(d=p>>>2;b.length<=d;)b.push(0);b[d]|=(h>>>16-8*e&255)<<8*(3+p%4*-1);f+=1}}return{value:b,binLen:8*f+c}};break;case "BYTES":d=function(a,b,c){var d,n,k,e,h;b=b||[0];c=c||0;k=c>>>3;for(n=0;n<a.length;n+=
|
||||
1)d=a.charCodeAt(n),h=n+k,e=h>>>2,b.length<=e&&b.push(0),b[e]|=d<<8*(3+h%4*-1);return{value:b,binLen:8*a.length+c}};break;case "ARRAYBUFFER":try{d=new ArrayBuffer(0)}catch(l){throw Error("ARRAYBUFFER not supported by this environment");}d=function(a,b,c){var d,n,k,e,h;b=b||[0];c=c||0;n=c>>>3;h=new Uint8Array(a);for(d=0;d<a.byteLength;d+=1)e=d+n,k=e>>>2,b.length<=k&&b.push(0),b[k]|=h[d]<<8*(3+e%4*-1);return{value:b,binLen:8*a.byteLength+c}};break;default:throw Error("format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER");
|
||||
}return d}function r(c,a){return c>>>a|c<<32-a}function J(c,a,d){return c&a^~c&d}function K(c,a,d){return c&a^c&d^a&d}function L(c){return r(c,2)^r(c,13)^r(c,22)}function M(c){return r(c,6)^r(c,11)^r(c,25)}function N(c){return r(c,7)^r(c,18)^c>>>3}function O(c){return r(c,17)^r(c,19)^c>>>10}function P(c,a){var d=(c&65535)+(a&65535);return((c>>>16)+(a>>>16)+(d>>>16)&65535)<<16|d&65535}function Q(c,a,d,l){var b=(c&65535)+(a&65535)+(d&65535)+(l&65535);return((c>>>16)+(a>>>16)+(d>>>16)+(l>>>16)+(b>>>
|
||||
16)&65535)<<16|b&65535}function R(c,a,d,l,b){var g=(c&65535)+(a&65535)+(d&65535)+(l&65535)+(b&65535);return((c>>>16)+(a>>>16)+(d>>>16)+(l>>>16)+(b>>>16)+(g>>>16)&65535)<<16|g&65535}function x(c){var a=[],d;if(0===c.lastIndexOf("SHA-",0))switch(a=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],d=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],c){case "SHA-224":break;case "SHA-256":a=d;break;case "SHA-384":a=[new m,new m,
|
||||
new m,new m,new m,new m,new m,new m];break;case "SHA-512":a=[new m,new m,new m,new m,new m,new m,new m,new m];break;default:throw Error("Unknown SHA variant");}else throw Error("No SHA variants supported");return a}function A(c,a,d){var l,b,g,f,n,k,e,h,m,r,p,w,t,x,u,z,A,B,C,D,E,F,v=[],G;if("SHA-224"===d||"SHA-256"===d)r=64,w=1,F=Number,t=P,x=Q,u=R,z=N,A=O,B=L,C=M,E=K,D=J,G=H;else throw Error("Unexpected error in SHA-2 implementation");d=a[0];l=a[1];b=a[2];g=a[3];f=a[4];n=a[5];k=a[6];e=a[7];for(p=
|
||||
0;p<r;p+=1)16>p?(m=p*w,h=c.length<=m?0:c[m],m=c.length<=m+1?0:c[m+1],v[p]=new F(h,m)):v[p]=x(A(v[p-2]),v[p-7],z(v[p-15]),v[p-16]),h=u(e,C(f),D(f,n,k),G[p],v[p]),m=t(B(d),E(d,l,b)),e=k,k=n,n=f,f=t(g,h),g=b,b=l,l=d,d=t(h,m);a[0]=t(d,a[0]);a[1]=t(l,a[1]);a[2]=t(b,a[2]);a[3]=t(g,a[3]);a[4]=t(f,a[4]);a[5]=t(n,a[5]);a[6]=t(k,a[6]);a[7]=t(e,a[7]);return a}var H;H=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,
|
||||
2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,
|
||||
2756734187,3204031479,3329325298];"function"===typeof define&&define.amd?define(function(){return w}):"undefined"!==typeof exports?("undefined"!==typeof module&&module.exports&&(module.exports=w),exports=w):I.jsSHA=w})(this);
|
||||
function sha256(token){
|
||||
var shaObj = new jsSHA("SHA-256", "TEXT");
|
||||
shaObj.update(token);
|
||||
var hash = shaObj.getHash("HEX");
|
||||
return hash;
|
||||
}
|
||||
var mathPow = Math.pow;
|
||||
var maxWord = mathPow(2, 32);
|
||||
var lengthProperty = 'length'
|
||||
var i, j; // Used as a counter across the whole file
|
||||
var result = ''
|
||||
|
||||
var words = [];
|
||||
var asciiBitLength = ascii[lengthProperty] * 8;
|
||||
|
||||
//* caching results is optional - remove/add slash from front of this line to toggle
|
||||
// Initial hash value: first 32 bits of the fractional parts of the square roots of the first 8 primes
|
||||
// (we actually calculate the first 64, but extra values are just ignored)
|
||||
var hash = sha256.h = sha256.h || [];
|
||||
// Round constants: first 32 bits of the fractional parts of the cube roots of the first 64 primes
|
||||
var k = sha256.k = sha256.k || [];
|
||||
var primeCounter = k[lengthProperty];
|
||||
/*/
|
||||
var hash = [], k = [];
|
||||
var primeCounter = 0;
|
||||
//*/
|
||||
|
||||
var isComposite = {};
|
||||
for (var candidate = 2; primeCounter < 64; candidate++) {
|
||||
if (!isComposite[candidate]) {
|
||||
for (i = 0; i < 313; i += candidate) {
|
||||
isComposite[i] = candidate;
|
||||
}
|
||||
hash[primeCounter] = (mathPow(candidate, .5) * maxWord) | 0;
|
||||
k[primeCounter++] = (mathPow(candidate, 1 / 3) * maxWord) | 0;
|
||||
}
|
||||
}
|
||||
|
||||
ascii += '\x80' // Append Ƈ' bit (plus zero padding)
|
||||
while (ascii[lengthProperty] % 64 - 56) ascii += '\x00' // More zero padding
|
||||
for (i = 0; i < ascii[lengthProperty]; i++) {
|
||||
j = ascii.charCodeAt(i);
|
||||
if (j >> 8) return; // ASCII check: only accept characters in range 0-255
|
||||
words[i >> 2] |= j << ((3 - i) % 4) * 8;
|
||||
}
|
||||
words[words[lengthProperty]] = ((asciiBitLength / maxWord) | 0);
|
||||
words[words[lengthProperty]] = (asciiBitLength)
|
||||
|
||||
// process each chunk
|
||||
for (j = 0; j < words[lengthProperty];) {
|
||||
var w = words.slice(j, j += 16); // The message is expanded into 64 words as part of the iteration
|
||||
var oldHash = hash;
|
||||
// This is now the undefinedworking hash", often labelled as variables a...g
|
||||
// (we have to truncate as well, otherwise extra entries at the end accumulate
|
||||
hash = hash.slice(0, 8);
|
||||
|
||||
for (i = 0; i < 64; i++) {
|
||||
var i2 = i + j;
|
||||
// Expand the message into 64 words
|
||||
// Used below if
|
||||
var w15 = w[i - 15], w2 = w[i - 2];
|
||||
|
||||
// Iterate
|
||||
var a = hash[0], e = hash[4];
|
||||
var temp1 = hash[7]
|
||||
+ (rightRotate(e, 6) ^ rightRotate(e, 11) ^ rightRotate(e, 25)) // S1
|
||||
+ ((e & hash[5]) ^ ((~e) & hash[6])) // ch
|
||||
+ k[i]
|
||||
// Expand the message schedule if needed
|
||||
+ (w[i] = (i < 16) ? w[i] : (
|
||||
w[i - 16]
|
||||
+ (rightRotate(w15, 7) ^ rightRotate(w15, 18) ^ (w15 >>> 3)) // s0
|
||||
+ w[i - 7]
|
||||
+ (rightRotate(w2, 17) ^ rightRotate(w2, 19) ^ (w2 >>> 10)) // s1
|
||||
) | 0
|
||||
);
|
||||
// This is only used once, so *could* be moved below, but it only saves 4 bytes and makes things unreadble
|
||||
var temp2 = (rightRotate(a, 2) ^ rightRotate(a, 13) ^ rightRotate(a, 22)) // S0
|
||||
+ ((a & hash[1]) ^ (a & hash[2]) ^ (hash[1] & hash[2])); // maj
|
||||
|
||||
hash = [(temp1 + temp2) | 0].concat(hash); // We don't bother trimming off the extra ones, they're harmless as long as we're truncating when we do the slice()
|
||||
hash[4] = (hash[4] + temp1) | 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
hash[i] = (hash[i] + oldHash[i]) | 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
for (j = 3; j + 1; j--) {
|
||||
var b = (hash[i] >> (j * 8)) & 255;
|
||||
result += ((b < 16) ? 0 : '') + b.toString(16);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
@@ -25,7 +25,7 @@
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function ($) {
|
||||
$.timeago = function(timestamp) {
|
||||
$.timeago = function (timestamp) {
|
||||
if (timestamp instanceof Date) {
|
||||
return inWords(timestamp);
|
||||
} else if (typeof timestamp === "string") {
|
||||
@@ -68,9 +68,9 @@
|
||||
}
|
||||
},
|
||||
|
||||
inWords: function(distanceMillis) {
|
||||
if (!this.settings.allowPast && ! this.settings.allowFuture) {
|
||||
throw 'timeago allowPast and allowFuture settings can not both be set to false.';
|
||||
inWords: function (distanceMillis) {
|
||||
if (!this.settings.allowPast && !this.settings.allowFuture) {
|
||||
throw 'timeago allowPast and allowFuture settings can not both be set to false.';
|
||||
}
|
||||
|
||||
var $l = this.settings.strings;
|
||||
@@ -116,20 +116,20 @@
|
||||
return $.trim([prefix, words, suffix].join(separator));
|
||||
},
|
||||
|
||||
parse: function(iso8601) {
|
||||
parse: function (iso8601) {
|
||||
var s = $.trim(iso8601);
|
||||
s = s.replace(/\.\d+/,""); // remove milliseconds
|
||||
s = s.replace(/-/,"/").replace(/-/,"/");
|
||||
s = s.replace(/T/," ").replace(/Z/," UTC");
|
||||
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
|
||||
s = s.replace(/([\+\-]\d\d)$/," $100"); // +09 -> +0900
|
||||
s = s.replace(/\.\d+/, ""); // remove milliseconds
|
||||
s = s.replace(/-/, "/").replace(/-/, "/");
|
||||
s = s.replace(/T/, " ").replace(/Z/, " UTC");
|
||||
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/, " $1$2"); // -04:00 -> -0400
|
||||
s = s.replace(/([\+\-]\d\d)$/, " $100"); // +09 -> +0900
|
||||
return new Date(s);
|
||||
},
|
||||
datetime: function(elem) {
|
||||
datetime: function (elem) {
|
||||
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title");
|
||||
return $t.parse(iso8601);
|
||||
},
|
||||
isTime: function(elem) {
|
||||
isTime: function (elem) {
|
||||
// jQuery's `is()` doesn't play well with HTML5 in IE
|
||||
return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time");
|
||||
}
|
||||
@@ -139,7 +139,7 @@
|
||||
// init is default when no action is given
|
||||
// functions are called with context of a single element
|
||||
var functions = {
|
||||
init: function() {
|
||||
init: function () {
|
||||
functions.dispose.call(this);
|
||||
var refresh_el = $.proxy(refresh, this);
|
||||
refresh_el();
|
||||
@@ -148,7 +148,7 @@
|
||||
this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);
|
||||
}
|
||||
},
|
||||
update: function(timestamp) {
|
||||
update: function (timestamp) {
|
||||
var date = (timestamp instanceof Date) ? timestamp : $t.parse(timestamp);
|
||||
$(this).data('timeago', { datetime: date });
|
||||
if ($t.settings.localeTitle) {
|
||||
@@ -156,8 +156,8 @@
|
||||
}
|
||||
refresh.apply(this);
|
||||
},
|
||||
updateFromDOM: function() {
|
||||
$(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title") ) });
|
||||
updateFromDOM: function () {
|
||||
$(this).data('timeago', { datetime: $t.parse($t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title")) });
|
||||
refresh.apply(this);
|
||||
},
|
||||
dispose: function () {
|
||||
@@ -168,13 +168,13 @@
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.timeago = function(action, options) {
|
||||
$.fn.timeago = function (action, options) {
|
||||
var fn = action ? functions[action] : functions.init;
|
||||
if (!fn) {
|
||||
throw new Error("Unknown function name '"+ action +"' for timeago");
|
||||
throw new Error("Unknown function name '" + action + "' for timeago");
|
||||
}
|
||||
// each over objects here and call the requested function
|
||||
this.each(function() {
|
||||
this.each(function () {
|
||||
fn.call(this, options);
|
||||
});
|
||||
return this;
|
||||
@@ -184,7 +184,7 @@
|
||||
var $s = $t.settings;
|
||||
|
||||
//check if it's still visible
|
||||
if ($s.autoDispose && !$.contains(document.documentElement,this)) {
|
||||
if ($s.autoDispose && !$.contains(document.documentElement, this)) {
|
||||
//stop if it has been removed
|
||||
$(this).timeago("dispose");
|
||||
return this;
|
||||
@@ -193,11 +193,11 @@
|
||||
var data = prepareData(this);
|
||||
|
||||
if (!isNaN(data.datetime)) {
|
||||
if ( $s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
|
||||
if ($s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
|
||||
$(this).text(inWords(data.datetime));
|
||||
} else {
|
||||
if ($(this).attr('title').length > 0) {
|
||||
$(this).text($(this).attr('title'));
|
||||
$(this).text($(this).attr('title'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,268 +1,312 @@
|
||||
//バージョンチェッカー
|
||||
function verck(ver) {
|
||||
console.log("Welcome")
|
||||
if(localStorage.getItem("ver")!=ver){
|
||||
console.log("%c Welcome😊", "color: red;font-size:200%;")
|
||||
var date = new Date();
|
||||
var show = false
|
||||
if (localStorage.getItem("ver") != ver && localStorage.getItem("winstore")) {
|
||||
//ちょっと削除とリンク解析の都合上アレ(s)
|
||||
//対象外のアプデ:storageが20の最初まで"Usamin (18.6.5)"
|
||||
if (!localStorage.getItem("usamin_18_6_5_flag")) {
|
||||
localStorage.setItem("usamin_18_6_5_flag", true)
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
for (var i = 0; i < obj.length; i++) {
|
||||
localStorage.removeItem("card_" + i);
|
||||
}
|
||||
}
|
||||
//ちょっと削除とリンク解析の都合上アレ(e)
|
||||
localStorage.setItem("ver", ver);
|
||||
console.log("Thank you for your update");
|
||||
$(document).ready(function(){
|
||||
show = true
|
||||
console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
|
||||
$(document).ready(function () {
|
||||
$('#releasenote').modal('open');
|
||||
verp=ver.replace( '(', '');
|
||||
verp=verp.replace( '.', '-');
|
||||
verp=verp.replace( '.', '-');
|
||||
verp=verp.replace( '[', '-');
|
||||
verp=verp.replace( ']', '');
|
||||
verp=verp.replace( ')', '');
|
||||
verp=verp.replace( ' ', '_');
|
||||
console.log(verp);
|
||||
if(lang.language=="ja"){
|
||||
$("#release-"+verp).show();
|
||||
}else{
|
||||
verp = ver.replace('(', '');
|
||||
verp = verp.replace('.', '-');
|
||||
verp = verp.replace('.', '-');
|
||||
verp = verp.replace('[', '-');
|
||||
verp = verp.replace(']', '');
|
||||
verp = verp.replace(')', '');
|
||||
verp = verp.replace(' ', '_');
|
||||
console.log("%c " + verp, "color: red;font-size:200%;");
|
||||
if (lang.language == "ja") {
|
||||
$("#release-" + verp).show();
|
||||
} else {
|
||||
$("#release-en").show();
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
var electron = require("electron");
|
||||
var remote=electron.remote;
|
||||
var dialog=remote.dialog;
|
||||
var platform=remote.process.platform;
|
||||
if(platform=="win32"){
|
||||
const options = {
|
||||
type: 'info',
|
||||
title: "Select your platform",
|
||||
message: lang.lang_version_platform,
|
||||
buttons: [lang.lang_no,lang.lang_yesno]
|
||||
}
|
||||
if(!localStorage.getItem("winstore")){
|
||||
|
||||
dialog.showMessageBox(options, function(arg) {
|
||||
if(arg==1){
|
||||
localStorage.setItem("winstore","winstore")
|
||||
}else{
|
||||
localStorage.setItem("winstore","localinstall")
|
||||
}
|
||||
});
|
||||
}
|
||||
}else if(platform=="linux"){
|
||||
if(localStorage.getItem("winstore")=="unix"){
|
||||
localStorage.removeItem("winstore")
|
||||
if (!show) {
|
||||
console.log(show)
|
||||
if (date.getMonth() + 1 >= localStorage.getItem("showSupportMe") || !localStorage.getItem("showSupportMe")) {
|
||||
if (date.getMonth() == 11) {
|
||||
var nextmonth = 1
|
||||
} else {
|
||||
var nextmonth = date.getMonth() + 2
|
||||
}
|
||||
if (lang.language != "ja") {
|
||||
$("#support-btm-ja").addClass("hide");
|
||||
$("#support-btm-en").removeClass("hide");
|
||||
}
|
||||
localStorage.setItem("showSupportMe", nextmonth)
|
||||
$("#support-btm").removeClass("hide")
|
||||
$("#support-btm").animate({
|
||||
'bottom': '0'
|
||||
}, {
|
||||
'duration': 300
|
||||
});
|
||||
}
|
||||
if(!localStorage.getItem("winstore")){
|
||||
const options = {
|
||||
type: 'info',
|
||||
title: "Select your platform",
|
||||
message: lang.lang_version_platform_linux,
|
||||
buttons: [lang.lang_no,lang.lang_yesno]
|
||||
}
|
||||
dialog.showMessageBox(options, function(arg) {
|
||||
if(arg==1){
|
||||
localStorage.setItem("winstore","snapcraft")
|
||||
}else{
|
||||
localStorage.setItem("winstore","localinstall")
|
||||
}
|
||||
});
|
||||
}
|
||||
}else if(platform=="darwin"){
|
||||
if(localStorage.getItem("winstore")=="unix"){
|
||||
localStorage.removeItem("winstore")
|
||||
}
|
||||
if(!localStorage.getItem("winstore")){
|
||||
const options = {
|
||||
type: 'info',
|
||||
title: "Select your platform",
|
||||
message: lang.lang_version_platform_mac,
|
||||
buttons: [lang.lang_no,lang.lang_yesno]
|
||||
}
|
||||
dialog.showMessageBox(options, function(arg) {
|
||||
if(arg==1){
|
||||
localStorage.setItem("winstore","brewcask")
|
||||
}else{
|
||||
localStorage.setItem("winstore","localinstall")
|
||||
}
|
||||
});
|
||||
}
|
||||
}else{
|
||||
localStorage.setItem("winstore","unix")
|
||||
}
|
||||
if(localStorage.getItem("winstore")=="brewcask" || localStorage.getItem("winstore")=="snapcraft" || localStorage.getItem("winstore")=="winstore"){
|
||||
var winstore=true;
|
||||
}else{
|
||||
var winstore=false;
|
||||
}
|
||||
}
|
||||
var platform = localStorage.getItem("platform");
|
||||
console.log("Your platform:" + platform)
|
||||
if (!localStorage.getItem("winstore")) {
|
||||
storeDialog(platform, ver)
|
||||
}
|
||||
if (localStorage.getItem("winstore") == "brewcask" || localStorage.getItem("winstore") == "snapcraft" || localStorage.getItem("winstore") == "winstore") {
|
||||
var winstore = true;
|
||||
} else {
|
||||
var winstore = false;
|
||||
}
|
||||
var l = 5;
|
||||
// 生成する文字列に含める文字セット
|
||||
var c = "abcdefghijklmnopqrstuvwxyz0123456789";
|
||||
var cl = c.length;
|
||||
var r = "";
|
||||
for(var i=0; i<l; i++){
|
||||
r += c[Math.floor(Math.random()*cl)];
|
||||
for (var i = 0; i < l; i++) {
|
||||
r += c[Math.floor(Math.random() * cl)];
|
||||
}
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
fetch(start, {
|
||||
method: 'GET'
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(mess) {
|
||||
console.log(mess);
|
||||
}).then(function (mess) {
|
||||
console.table(mess);
|
||||
if (mess) {
|
||||
var electron = require("electron");
|
||||
var remote=electron.remote;
|
||||
var platform=remote.process.platform;
|
||||
if(platform=="darwin"){
|
||||
var newest=mess.desk_mac;
|
||||
}else{
|
||||
var newest=mess.desk;
|
||||
var platform = localStorage.getItem("platform");
|
||||
if (platform == "darwin") {
|
||||
var newest = mess.desk_mac;
|
||||
} else {
|
||||
var newest = mess.desk;
|
||||
}
|
||||
if (newest == ver) {
|
||||
todo(lang.lang_version_usever.replace("{{ver}}" ,mess.desk));
|
||||
todo(lang.lang_version_usever.replace("{{ver}}", mess.desk));
|
||||
//betaかWinstoreならアプデチェックしない
|
||||
} else if (ver.indexOf("beta")!=-1 || winstore) {
|
||||
} else if (ver.indexOf("beta") != -1 || winstore) {
|
||||
|
||||
}else{
|
||||
} else {
|
||||
localStorage.removeItem("instance")
|
||||
if(localStorage.getItem("new-ver-skip")){
|
||||
if(localStorage.getItem("next-ver")!=newest){
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('update', "true");
|
||||
}else{
|
||||
console.log(lang.lang_version_skipver);
|
||||
if (localStorage.getItem("new-ver-skip")) {
|
||||
if (localStorage.getItem("next-ver") != newest) {
|
||||
postMessage(["sendSinmpleIpc", "update"], "*")
|
||||
} else {
|
||||
console.warn(lang.lang_version_skipver);
|
||||
todo(lang.lang_version_skipver);
|
||||
}
|
||||
}else{
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('update', "true");
|
||||
} else {
|
||||
postMessage(["sendSinmpleIpc", "update"], "*")
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
if(!localStorage.getItem("last-notice-id")){
|
||||
localStorage.setItem("last-notice-id",0)
|
||||
if (!localStorage.getItem("last-notice-id")) {
|
||||
localStorage.setItem("last-notice-id", 0)
|
||||
}
|
||||
console.log(localStorage.getItem("last-notice-id"))
|
||||
var start = "https://thedesk.top/notice?since_id="+localStorage.getItem("last-notice-id");
|
||||
console.log(start);
|
||||
var start = "https://thedesk.top/notice?since_id=" + localStorage.getItem("last-notice-id");
|
||||
fetch(start, {
|
||||
method: 'GET'
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(mess) {
|
||||
console.log(mess.length);
|
||||
if(mess.length<1){
|
||||
}).then(function (mess) {
|
||||
if (mess.length < 1) {
|
||||
return false;
|
||||
}else{
|
||||
var last=localStorage.getItem("last-notice-id")
|
||||
localStorage.setItem("last-notice-id",mess[0].ID)
|
||||
for(i=0;i<mess.length;i++){
|
||||
var obj=mess[i];
|
||||
if(obj.ID*1<=last){
|
||||
break;
|
||||
}else{
|
||||
var show=true;
|
||||
if(obj.Toot!=""){
|
||||
var toot='<button class="btn-flat toast-action" onclick="detEx(\''+obj.Toot+'\',\'main\')">Show</button>';
|
||||
}else{
|
||||
var toot="";
|
||||
}
|
||||
if(obj.Ver!=""){
|
||||
if(obj.Ver==ver){
|
||||
show=true;
|
||||
}else{
|
||||
show=false;
|
||||
}
|
||||
}
|
||||
if(obj.Domain!=""){
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (multi) {
|
||||
show=false;
|
||||
var accts = JSON.parse(multi);
|
||||
Object.keys(accts).forEach(function(key) {
|
||||
var acct = accts[key];
|
||||
if(acct.domain==obj.Domain){
|
||||
show=true;
|
||||
} else {
|
||||
var last = localStorage.getItem("last-notice-id")
|
||||
localStorage.setItem("last-notice-id", mess[0].ID)
|
||||
for (i = 0; i < mess.length; i++) {
|
||||
var obj = mess[i];
|
||||
if (obj.ID * 1 <= last) {
|
||||
break;
|
||||
} else {
|
||||
if (obj.type == "textv2") {
|
||||
if (~obj.languages.indexOf(lang.language)) {
|
||||
var show = true;
|
||||
if (obj.toot != "") {
|
||||
var toot = '<button class="btn-flat toast-action" onclick="detEx(\'' + obj.toot + '\',\'main\')">Show</button>';
|
||||
} else {
|
||||
var toot = "";
|
||||
}
|
||||
});
|
||||
if (obj.ver != "") {
|
||||
if (obj.ver == ver) {
|
||||
show = true;
|
||||
} else {
|
||||
show = false;
|
||||
}
|
||||
}
|
||||
if (obj.domain != "") {
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (multi) {
|
||||
show = false;
|
||||
var accts = JSON.parse(multi);
|
||||
Object.keys(accts).forEach(function (key) {
|
||||
var acct = accts[key];
|
||||
if (acct.domain == obj.domain) {
|
||||
show = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
if (show) {
|
||||
M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(show){
|
||||
Materialize.toast(obj.Text+toot+'<span class="sml grey-text">(スライドして消去)</span>', 86400);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
var infostreaming=false;
|
||||
function infowebsocket(){
|
||||
var infostreaming = false;
|
||||
function infowebsocket() {
|
||||
infows = new WebSocket("wss://thedesk.top/ws/");
|
||||
infows.onopen = function(mess) {
|
||||
console.log(tlid + ":Connect Streaming Info:");
|
||||
console.log(mess);
|
||||
infostreaming=true;
|
||||
infows.onopen = function (mess) {
|
||||
console.log([tlid, ":Connect Streaming Info:", mess]);
|
||||
infostreaming = true;
|
||||
}
|
||||
infows.onmessage = function(mess) {
|
||||
console.log(":Receive Streaming:");
|
||||
console.log(JSON.parse(mess.data));
|
||||
var obj=JSON.parse(mess.data);
|
||||
if(obj.type!="counter"){
|
||||
if(obj.id*1<=localStorage.getItem("last-notice-id")){
|
||||
|
||||
}else{
|
||||
localStorage.setItem("last-notice-id",obj.id)
|
||||
var show=true;
|
||||
if(obj.toot!=""){
|
||||
var toot='<button class="btn-flat toast-action" onclick="detEx(\''+obj.toot+'\',\'main\')">Show</button>';
|
||||
}else{
|
||||
var toot="";
|
||||
}
|
||||
if(obj.ver!=""){
|
||||
if(obj.ver==ver){
|
||||
show=true;
|
||||
}else{
|
||||
show=false;
|
||||
}
|
||||
}
|
||||
if(obj.domain!=""){
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (multi) {
|
||||
show=false;
|
||||
var accts = JSON.parse(multi);
|
||||
Object.keys(accts).forEach(function(key) {
|
||||
var acct = accts[key];
|
||||
if(acct.domain==obj.domain){
|
||||
show=true;
|
||||
infows.onmessage = function (mess) {
|
||||
console.log([tlid, ":Receive Streaming:", JSON.parse(mess.data)]);
|
||||
var obj = JSON.parse(mess.data);
|
||||
if (obj.type != "counter") {
|
||||
if (obj.type == "textv2") {
|
||||
if (~obj.languages.indexOf(lang.language)) {
|
||||
localStorage.setItem("last-notice-id", obj.id)
|
||||
var show = true;
|
||||
if (obj.toot != "") {
|
||||
var toot = '<button class="btn-flat toast-action" onclick="detEx(\'' + obj.toot + '\',\'main\')">Show</button>';
|
||||
} else {
|
||||
var toot = "";
|
||||
}
|
||||
if (obj.ver != "") {
|
||||
if (obj.ver == ver) {
|
||||
show = true;
|
||||
} else {
|
||||
show = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (obj.domain != "") {
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (multi) {
|
||||
show = false;
|
||||
var accts = JSON.parse(multi);
|
||||
Object.keys(accts).forEach(function (key) {
|
||||
var acct = accts[key];
|
||||
if (acct.domain == obj.domain) {
|
||||
show = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
if (show) {
|
||||
console.log(obj.text)
|
||||
console.log(escapeHTML(obj.text))
|
||||
M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 })
|
||||
}
|
||||
}
|
||||
}
|
||||
if(show){
|
||||
Materialize.toast(obj.text+toot+'<span class="sml grey-text">(スライドして消去)</span>', 86400);
|
||||
}
|
||||
} else {
|
||||
$("#persons").text(obj.text);
|
||||
}
|
||||
}else{
|
||||
$("#persons").text(obj.text);
|
||||
}
|
||||
}
|
||||
infows.onerror = function(error) {
|
||||
infostreaming=false;
|
||||
infows.onerror = function (error) {
|
||||
infostreaming = false;
|
||||
console.error("Error closing:info");
|
||||
console.error(error);
|
||||
return false;
|
||||
};
|
||||
infows.onclose = function() {
|
||||
infostreaming=false;
|
||||
infows.onclose = function () {
|
||||
infostreaming = false;
|
||||
console.error("Closing:info");
|
||||
};
|
||||
}
|
||||
setInterval(function(){
|
||||
if(!infostreaming){
|
||||
console.log("try to connect")
|
||||
setInterval(function () {
|
||||
if (!infostreaming) {
|
||||
console.log("try to connect to base-streaming")
|
||||
infowebsocket();
|
||||
}
|
||||
}, 10000);
|
||||
function openRN() {
|
||||
$('#releasenote').modal('open');
|
||||
if (lang.language == "ja") {
|
||||
verp = ver.replace('(', '');
|
||||
verp = verp.replace('.', '-');
|
||||
verp = verp.replace('.', '-');
|
||||
verp = verp.replace('[', '-');
|
||||
verp = verp.replace(']', '');
|
||||
verp = verp.replace(')', '');
|
||||
verp = verp.replace(' ', '_');
|
||||
$("#release-" + verp).show();
|
||||
} else {
|
||||
$("#release-en").show();
|
||||
}
|
||||
}
|
||||
function closeSupport() {
|
||||
$("#support-btm").animate({
|
||||
'bottom': '-300px'
|
||||
}, {
|
||||
'duration': 300,
|
||||
'complete': function () {
|
||||
$("#support-btm").addClass("hide")
|
||||
}
|
||||
});
|
||||
}
|
||||
function storeDialog(platform, ver) {
|
||||
if (platform == "win32") {
|
||||
var mes = lang.lang_version_platform;
|
||||
} else if (platform == "linux") {
|
||||
var mes = lang.lang_version_platform_linux;
|
||||
} else if (platform == "darwin") {
|
||||
var mes = lang.lang_version_platform_mac;
|
||||
}
|
||||
Swal.fire({
|
||||
title: "Select your platform",
|
||||
text: mes,
|
||||
type: 'info',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#3085d6',
|
||||
confirmButtonText: lang.lang_no,
|
||||
cancelButtonText: lang.lang_yesno
|
||||
}).then((result) => {
|
||||
//逆にしてる
|
||||
if (!result.value) {
|
||||
localStorage.setItem("winstore", "winstore")
|
||||
} else {
|
||||
localStorage.setItem("winstore", "localinstall")
|
||||
}
|
||||
localStorage.setItem("ver", ver);
|
||||
show = true
|
||||
console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
|
||||
$(document).ready(function () {
|
||||
$('#releasenote').modal('open');
|
||||
verp = ver.replace('(', '');
|
||||
verp = verp.replace('.', '-');
|
||||
verp = verp.replace('.', '-');
|
||||
verp = verp.replace('[', '-');
|
||||
verp = verp.replace(']', '');
|
||||
verp = verp.replace(')', '');
|
||||
verp = verp.replace(' ', '_');
|
||||
console.log("%c " + verp, "color: red;font-size:200%;");
|
||||
if (lang.language == "ja") {
|
||||
$("#release-" + verp).show();
|
||||
} else {
|
||||
$("#release-en").show();
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
@@ -1,87 +1,89 @@
|
||||
var defaultemojiList=["activity","flag","food","nature","object","people","place","symbol"];
|
||||
var defaultemoji={
|
||||
activity:activity,
|
||||
flag:flag,
|
||||
food:food,
|
||||
nature:nature,
|
||||
object:object,
|
||||
people:people,
|
||||
place:place,
|
||||
symbol:symbol
|
||||
var defaultemojiList = ["activity", "flag", "food", "nature", "object", "people", "place", "symbol"];
|
||||
var defaultemoji = {
|
||||
activity: activity,
|
||||
flag: flag,
|
||||
food: food,
|
||||
nature: nature,
|
||||
object: object,
|
||||
people: people,
|
||||
place: place,
|
||||
symbol: symbol
|
||||
};
|
||||
if(lang=="ja"){
|
||||
var defaultemojiname={
|
||||
activity:"活動",
|
||||
flag:"国旗",
|
||||
food:"食べ物",
|
||||
nature:"自然",
|
||||
object:"もの",
|
||||
people:"ひと",
|
||||
place:"場所",
|
||||
symbol:"記号"
|
||||
if (lang == "ja") {
|
||||
var defaultemojiname = {
|
||||
activity: "活動",
|
||||
flag: "国旗",
|
||||
food: "食べ物",
|
||||
nature: "自然",
|
||||
object: "もの",
|
||||
people: "ひと",
|
||||
place: "場所",
|
||||
symbol: "記号"
|
||||
};
|
||||
}else{
|
||||
var defaultemojiname={
|
||||
activity:"Activities",
|
||||
flag:"Flags",
|
||||
food:"Foods",
|
||||
nature:"Nature",
|
||||
object:"Tools",
|
||||
people:"People",
|
||||
place:"Places",
|
||||
symbol:"Symbols"
|
||||
} else {
|
||||
var defaultemojiname = {
|
||||
activity: "Activities",
|
||||
flag: "Flags",
|
||||
food: "Foods",
|
||||
nature: "Nature",
|
||||
object: "Tools",
|
||||
people: "People",
|
||||
place: "Places",
|
||||
symbol: "Symbols"
|
||||
};
|
||||
}
|
||||
|
||||
function defaultEmoji(target){
|
||||
var json=defaultemoji[target];
|
||||
var emojis="";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
function defaultEmoji(target) {
|
||||
var json = defaultemoji[target];
|
||||
var emojis = "";
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var emoji = json[key];
|
||||
emojis = emojis + '<a onclick="defEmoji(\''+emoji["shortcode"]+'\')" class="pointer"><span style="width: 20px; height: 20px; display: inline-block; background-image: url(\'../../img/sheet.png\'); background-size: 4900%; background-position: '+emoji["css"]+';"></span></a>';
|
||||
emojis = emojis + '<a onclick="defEmoji(\'' + emoji["shortcode"] + '\')" class="pointer"><span style="width: 20px; height: 20px; display: inline-block; background-image: url(\'../../img/sheet.png\'); background-size: 4900%; background-position: ' + emoji["css"] + ';"></span></a>';
|
||||
});
|
||||
$("#emoji-list").html(emojis);
|
||||
$("#now-emoji").text(lang.lang_defaultemojis_text.replace("{{cat}}" ,defaultemojiname[target]));
|
||||
console.log(target);
|
||||
$("#now-emoji").text(lang.lang_defaultemojis_text.replace("{{cat}}", defaultemojiname[target]));
|
||||
$(".emoji-control").addClass("hide");
|
||||
}
|
||||
function customEmoji(){
|
||||
function customEmoji() {
|
||||
$("#emoji-suggest").val("");
|
||||
$(".emoji-control").removeClass("hide");
|
||||
emojiList('home')
|
||||
}
|
||||
function defEmoji(target){
|
||||
var emojiraw = newpack.filter(function(item, index){
|
||||
if (item.short_name == target) return true;
|
||||
function defEmoji(target) {
|
||||
var emojiraw = newpack.filter(function (item, index) {
|
||||
if (item.short_name == target) return true;
|
||||
});
|
||||
emoji=twemoji.convert.fromCodePoint(emojiraw[0].unified);
|
||||
var hex = emojiraw[0].unified.split("-");
|
||||
if (hex.length === 2) {
|
||||
emoji = twemoji.convert.fromCodePoint(hex[0]) + twemoji.convert.fromCodePoint(hex[1]);
|
||||
} else {
|
||||
emoji = twemoji.convert.fromCodePoint(hex[0]);
|
||||
}
|
||||
var now = $("#textarea").val();
|
||||
var selin = localStorage.getItem("cursor");
|
||||
var now = $("#textarea").val();
|
||||
if(selin>0){
|
||||
if (selin > 0) {
|
||||
var before = now.substr(0, selin);
|
||||
var after = now.substr(selin, now.length);
|
||||
newt = before+ emoji + after;
|
||||
}else{
|
||||
newt = emoji+now;
|
||||
}
|
||||
console.log(emoji);
|
||||
$("#textarea").val(newt);
|
||||
$("#textarea").focus();
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if(!selin){
|
||||
selin=0;
|
||||
}
|
||||
localStorage.setItem("cursor", selin);
|
||||
newt = before + emoji + after;
|
||||
} else {
|
||||
newt = emoji + now;
|
||||
}
|
||||
$("#textarea").val(newt);
|
||||
$("#textarea").focus();
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if (!selin) {
|
||||
selin = 0;
|
||||
}
|
||||
localStorage.setItem("cursor", selin);
|
||||
}
|
||||
function faicon(){
|
||||
var json=faicons;
|
||||
console.log(json);
|
||||
var emojis="";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
function faicon() {
|
||||
var json = faicons;
|
||||
var emojis = "";
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var emoji = json[key];
|
||||
var eje = emoji.replace( /fa-/g , "" ) ;
|
||||
emojis = emojis + '<a onclick="emojiInsert(\'[faicon]'+eje+'[/faicon]\')" class="pointer white-text" style="font-size:24px"><i class="fa '+emoji+'"></i></a>';
|
||||
var eje = emoji.replace(/fa-/g, "");
|
||||
emojis = emojis + '<a onclick="emojiInsert(\'[faicon]' + eje + '[/faicon]\')" class="pointer white-text" style="font-size:24px"><i class="fa ' + emoji + '"></i></a>';
|
||||
});
|
||||
$("#emoji-list").html(emojis);
|
||||
$("#now-emoji").text("faicon");
|
||||
|
||||
228
app/js/lang/lang.bg.js
Normal file
@@ -0,0 +1,228 @@
|
||||
var lang={
|
||||
"language": "en",
|
||||
"lang_toot": "Раздумай",
|
||||
"lang_there": "Да",
|
||||
"lang_nothing": "Няма",
|
||||
"lang_yesno": "Да",
|
||||
"lang_no": "Не",
|
||||
"lang_progress": "Изчакайте...",
|
||||
"lang_edit": "Редактиране",
|
||||
"lang_del": "Изтрий",
|
||||
"lang_add": "Добави",
|
||||
"lang_fatalerroroccured": "Възникнаха някои грешки, моля рестартирайте Desk.",
|
||||
"lang_speech": "Google US English",
|
||||
"lang_lang": "Език",
|
||||
"lang_langlocale": "Английски",
|
||||
"lang_back": "Назад",
|
||||
"lang_set": "Задай",
|
||||
"lang_langadd": "Преведете TheDesk на други езици или проверете TheDesk на <a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\"> GitHub </a>. TheDesk се нуждае от вашата помощ.",
|
||||
"lang_version_usever": "Не е намерена актуализация({{ver}})",
|
||||
"lang_version_skipver": "Актуализацията бе игнорирана.",
|
||||
"lang_version_platform": "Искате ли автоматични актуализации? (За потребителите инсталирали от Microsoft Store, изберете „Не“)",
|
||||
"lang_version_platform_linux": "Искате ли автоматични актуализации? (За потребителите инсталирали от Snapcraft, изберете „Не“)",
|
||||
"lang_version_platform_mac": "Искате ли автоматични актуализации? (За потребителите на Homebrew Cask изберете „Не“)",
|
||||
"lang_login_noauth": "Показване на TL на нерегистрирани профили",
|
||||
"lang_manager_info": "За тази инстанция",
|
||||
"lang_manager_refresh": "Обнови",
|
||||
"lang_manager_delete": "Излизане",
|
||||
"lang_manager_color": "Цвят на профила",
|
||||
"lang_manager_confirm": "е на път да излезе. Продължаване?",
|
||||
"lang_manager_mainAcct": "Готово: изберете основния профил",
|
||||
"lang_manager_def": "По подразбиране",
|
||||
"lang_manager_none": "Няма",
|
||||
"lang_manager_godev": "Отворете DevCenter на Misskey. Ние показваме официални документи, на които се позоваваме.",
|
||||
"lang_manager_logout": "Излизане",
|
||||
"lang_bbmd_misskey": "TheDesk разглежда \"@\" като отговор, но поставя друг параметър. Ако не е включено в Mastodon това означава, че е в Home на Misskey.",
|
||||
"lang_emoji_get": "Вземи емотикони",
|
||||
"lang_emoji_custom": "Персонализирани емотикони",
|
||||
"lang_defaultemojis_text": "Още емотикони {{cat}}",
|
||||
"lang_postimg_previewdis": "не може да се визуализира",
|
||||
"lang_postimg_aftupload": "Не можете да променяте профилите след качването.",
|
||||
"lang_postimg_delete": "Изтрийте това изображение.",
|
||||
"lang_post_tagTL": "Тази раздумка не съдържа маркер по подразбиране. Тази раздумка няма да се показва в локалния TL. Продължавате?",
|
||||
"lang_post_tagVis": "Тази раздумка (не е \"публична\") не е показана с този етикет в ТЛ.",
|
||||
"lang_post_cwtitle": "Авто CW Сигнал",
|
||||
"lang_post_cwtxt": "На път сте да публикувате по-дълга раздумка, отколкото е зададена.\nТекст на предупреждението:",
|
||||
"lang_post_btn1": "Отказ (няма да се публикува)",
|
||||
"lang_post_btn2": "Текстът да се скрива автоматично",
|
||||
"lang_post_btn3": "Продължете към публикуването",
|
||||
"lang_status_favWarn": "Ще отнеме минута раздумката отдалечено да стане любима.",
|
||||
"lang_status_btWarn": "Ще отнеме минута раздумката отдалечено да бъде подсилена.",
|
||||
"lang_status_follow": "Следване",
|
||||
"lang_status_unfollow": "Спри следенето",
|
||||
"lang_status_block": "Блокирай",
|
||||
"lang_status_unblock": "Отблокирай",
|
||||
"lang_status_mute": "Без звук",
|
||||
"lang_status_unmute": "Със звук",
|
||||
"lang_status_redraftTitle": "Изтрий & върни",
|
||||
"lang_status_redraft": "Продължете да изтривате & преработвате? Ще изгубите статуса на тази раздумка. В тази функция може да се съдържат някои грешки. Снимките от тази раздумка ще бъдат изтрити на по-стари от Mastodon 2.4.1.",
|
||||
"lang_status_emphas": "'s toots are emphasized. Please reload after this action.",
|
||||
"lang_status_unemphas": "'s toots are not emphasized. Please reload after this action.",
|
||||
"lang_status_unendorse": "Not feature on profile",
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_details_nodata": "No data",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
"lang_details_url": "URL of this toot is cliped.",
|
||||
"lang_details_txt": "Content of this toot is cliped.",
|
||||
"lang_filter_nodata": "No data",
|
||||
"lang_filter_errordegree": "Please check a context",
|
||||
"lang_list_nodata": "No data",
|
||||
"lang_list_show": "Show",
|
||||
"lang_list_users": "Users list",
|
||||
"lang_list_nouser": "No users in this list.",
|
||||
"lang_list_add": "Add to the list",
|
||||
"lang_list_add_misskey": "(perhaps this user has been listed)",
|
||||
"lang_list_remove": "Remove from the list",
|
||||
"lang_notf_new": " new notifications",
|
||||
"lang_speech_refresh": "Save value about TTS config",
|
||||
"lang_src_ts": "chronological order",
|
||||
"lang_src_people": " people toot",
|
||||
"lang_tags_always": "Always toots with ",
|
||||
"lang_tags_realtime": "Tag-stream toot",
|
||||
"lang_tags_tagunpin": "Unpin {{tag}}",
|
||||
"lang_tags_unrealtime": "Disable TsT",
|
||||
"lang_tags_tagwarn": "Автоматично попълване на {{tag}}, ако раздумката няма {{tag}}",
|
||||
"lang_tl_media": "Media",
|
||||
"lang_tl_reconnect": "Reconnect to streaming API",
|
||||
"lang_img_DLDone": "Downloaded:",
|
||||
"lang_layout_gotop": "Go top of this column. When icon is red, this column cannot connect straming API. Please reload.",
|
||||
"lang_layout_thisacct": "{{notf}} of this account",
|
||||
"lang_layout_delthis": "Remove this column",
|
||||
"lang_layout_setthis": "Preferences of this column",
|
||||
"lang_layout_mediafil": "Media filtering",
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reconnect to streaming API",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Показване в BT режим (ИЗКЛ./Изключване BT/ Само в BT)",
|
||||
"lang_layout_leftFold": "Стъпка наляво",
|
||||
"lang_layout_leftUnfold": "Док отдясно",
|
||||
"lang_layout_deleteColumn": "Премахване на тази колона",
|
||||
"lang_layout_deleteColumnDesc": "Премахване на тази колона",
|
||||
"lang_sort_gothis": "Отидете в тази колона",
|
||||
"lang_sort_remthis": "Премахване на тази колона",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
"lang_spotify_imgno": "Not attach an album artwork",
|
||||
"lang_spotify_acct": "Connect TheDesk to Spotify",
|
||||
"lang_spotify_np": "Готово:шаблон на NowPlaying",
|
||||
"lang_setting_npprovide": "NowPlaying provider:{{set}}",
|
||||
"lang_hisdata_frcreq": "Required Mastodon 2.4.3 and above",
|
||||
"lang_hisdata_frcwarn": "Unfollow accounts will be shown.",
|
||||
"lang_hisdata_taketime": "It will take 30s ~ several minutes",
|
||||
"lang_hisdata_notonmisskey": "Misskey is unable to request.",
|
||||
"lang_hisdata_key": "This user is proofed by {{set}}",
|
||||
"lang_showontl_movetxt": "This account was moved",
|
||||
"lang_showontl_movebtn": "Continue on the new account",
|
||||
"lang_showontl_botacct": "[bot]",
|
||||
"lang_showontl_followed": "Following you",
|
||||
"lang_showontl_notf": "Notification ",
|
||||
"lang_showontl_domain": "Domain ",
|
||||
"lang_showontl_listwarn": "Follow to add this user to lists.",
|
||||
"lang_showontl_verified": "This website is verified by owner at ",
|
||||
"lang_parse_mentioned": " replied to you",
|
||||
"lang_parse_faved": " favourited your toot",
|
||||
"lang_parse_bted": " boosted your toot",
|
||||
"lang_parse_btedsimple": " boosted",
|
||||
"lang_parse_polled": "'s poll",
|
||||
"lang_parse_notftime": "Actioned at",
|
||||
"lang_parse_cwshow": "Show",
|
||||
"lang_parse_fulltext": "Full size text:",
|
||||
"lang_parse_autofold": "Auto folded",
|
||||
"lang_parse_more": "More",
|
||||
"lang_parse_url": "URL Analyzer",
|
||||
"lang_parse_tagTL": "Timeline of {{tag}}",
|
||||
"lang_parse_tagtoot": "Toot with {{tag}}",
|
||||
"lang_parse_tagpin": "Pin {{tag}}",
|
||||
"lang_parse_public": "Public",
|
||||
"lang_parse_unlisted": "Unlisted",
|
||||
"lang_parse_private": "Private",
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
"lang_parse_quote": "Quote this toot",
|
||||
"lang_parse_del": "Изтрийте тази раздумка",
|
||||
"lang_parse_pin": "Pin this toot",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_redraft": "Изтрий & върни",
|
||||
"lang_parse_followed": "Followed you",
|
||||
"lang_parse_clientop": "Operation of this client",
|
||||
"lang_parse_clienttxt": " will be",
|
||||
"lang_parse_clientno": "done nothing",
|
||||
"lang_parse_clientemp": "emphasized(/not emphasized)",
|
||||
"lang_parse_clientmute": "muted",
|
||||
"lang_parse_mute": " will be muted. You can remove on preferences.",
|
||||
"lang_parse_voted": "Voted",
|
||||
"lang_parse_vote": "Vote",
|
||||
"lang_parse_unvoted": "Show the result without voting",
|
||||
"lang_parse_endedvote": "Expired",
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "NSFW media",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
"lang_misskeyparse_tagnostr": "No streaming API on Tag TLs",
|
||||
"lang_misskeyparse_listnostr": "No streaming API on List TLs",
|
||||
"lang_misskeyparse_home": "Home",
|
||||
"lang_misskeyparse_followers": "Follower",
|
||||
"lang_misskeyparse_specified": "Specified User",
|
||||
"lang_misskeyparse_qt": "Misskey renote(quote) mode:Ctrl+Shift+Enter to clear",
|
||||
"lang_misskeyparse_renoted": " renoted your following post.",
|
||||
"lang_misskeyparse_quoted": " quoted your following post.",
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
"lang_setting_cws": "Always CW on:{{set}}",
|
||||
"lang_setting_rp": "Reply counter:{{set}}",
|
||||
"lang_setting_vis": "Default visibility:{{set}}",
|
||||
"lang_setting_popup": "Popup notification:{{set}}",
|
||||
"lang_setting_off": "Off",
|
||||
"lang_setting_s": "s",
|
||||
"lang_setting_box": "Default toot box action:{{set}}",
|
||||
"lang_setting_gif": "GIF:{{set}}",
|
||||
"lang_setting_selt": "Автоматично сгъване:{{set1}} линии по-нагоре,{{set2}} букви по-нагоре",
|
||||
"lang_setting_autocw": "Автоматично CW:{{set1}} линии по-нагоре, {{set2}} букви по-нагоре",
|
||||
"lang_setting_width": "Minimam width:{{set}}",
|
||||
"lang_setting_fixwidth": "TweetDeck fixed width:{{set}}px",
|
||||
"lang_setting_img": "After posting an image:{{set}}",
|
||||
"lang_setting_font": "Fonts:{{set}}",
|
||||
"lang_setting_default": "default font",
|
||||
"lang_setting_size": "Font size:{{set}}px",
|
||||
"lang_setting_imgheight": "Image height:{{set}}px",
|
||||
"lang_setting_ticker": "#InstanceTicker:{{set}}px",
|
||||
"lang_setting_animation": "Animation: {{set}}",
|
||||
"lang_setting_tag": "Tag TL:{{set}}",
|
||||
"lang_setting_boxConfirm": "Post box:{{set}}",
|
||||
"lang_setting_ul": "Native locale:{{set}}",
|
||||
"lang_setting_notf": "Native notification:{{set}}",
|
||||
"lang_setting_quote": "Quote format:{{set}}",
|
||||
"lang_setting_via": "Via:{{set}}",
|
||||
"lang_setting_mov": "Action buttons hiding:{{set}}",
|
||||
"lang_setting_setasread": "Notification markers:{{set}}",
|
||||
"lang_setting_main": "Default account:{{set}}",
|
||||
"lang_setting_sec": "Secondary toot button:{{set}}",
|
||||
"lang_setting_ksref": "Keyboard shortcuts are refreshed.",
|
||||
"lang_setting_nomuting": "No client is muted.",
|
||||
"lang_setting_notftest": " Notification test ",
|
||||
"lang_setting_notftestprof": "Your icon is shown.",
|
||||
"lang_setting_exportwarn": "Only important data will be exported. You must keep this data secure.",
|
||||
"lang_setting_importwarn": "Всички данни ще бъдат изтрити."
|
||||
}
|
||||
228
app/js/lang/lang.cs.js
Normal file
@@ -0,0 +1,228 @@
|
||||
var lang={
|
||||
"language": "cs",
|
||||
"lang_toot": "Toot",
|
||||
"lang_there": "Ano",
|
||||
"lang_nothing": "Nic",
|
||||
"lang_yesno": "Ano",
|
||||
"lang_no": "Ne",
|
||||
"lang_progress": "Čekejte...",
|
||||
"lang_edit": "Upravit",
|
||||
"lang_del": "Smazat",
|
||||
"lang_add": "Přidat",
|
||||
"lang_fatalerroroccured": "Vyskytly se nějaké chyby, prosím restartujte TheDesk.",
|
||||
"lang_speech": "Google Čeština",
|
||||
"lang_lang": "Jazyk",
|
||||
"lang_langlocale": "Čeština",
|
||||
"lang_back": "Zpět",
|
||||
"lang_set": "Nastavit",
|
||||
"lang_langadd": "Přeložte TheDesk do jiných jazyků nebo opravte existující překlad na <a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHubu</a> nebo <a href=\"https://translate.thedesk.top/\" target=\"_blank\">Crowdinu</a>. TheDesk potřebuje vaši pomoc.",
|
||||
"lang_version_usever": "Nebyla nalezena žádná aktualizace ({{ver}})",
|
||||
"lang_version_skipver": "Aktualizace byla ignorována.",
|
||||
"lang_version_platform": "Do you want auto-updates?(users installed on Microsoft Store select 'No')",
|
||||
"lang_version_platform_linux": "Do you want auto-updates?(users installed on Snapcraft select 'No')",
|
||||
"lang_version_platform_mac": "Do you want auto-updates?(Homebrew Cask users select 'No')",
|
||||
"lang_login_noauth": "Zobrazit časové osy nepřihlášených účtů",
|
||||
"lang_manager_info": "O tomto serveru",
|
||||
"lang_manager_refresh": "Obnovit",
|
||||
"lang_manager_delete": "Odhlásit",
|
||||
"lang_manager_color": "Barva účtu",
|
||||
"lang_manager_confirm": "se chce odhlásit. Pokračovat?",
|
||||
"lang_manager_mainAcct": "Hotovo: vyberte hlavní účet",
|
||||
"lang_manager_def": "Výchozí",
|
||||
"lang_manager_none": "Žádný",
|
||||
"lang_manager_godev": "Otevřené vývojářské centrum softwaru Misskey. Zobrazujeme také oficiální dokumentaci.",
|
||||
"lang_manager_logout": "Logout",
|
||||
"lang_bbmd_misskey": "TheDesk považuje „@“ za odpověď, ale vkládá ho do jiných parametrů. „Neuvedeno“ na Mastodonu znamená „Domů“ na Misskey.",
|
||||
"lang_emoji_get": "Získat emoji",
|
||||
"lang_emoji_custom": "Vlastní emoji",
|
||||
"lang_defaultemojis_text": "Emojis about {{cat}}",
|
||||
"lang_postimg_previewdis": "nelze vytvořit náhled",
|
||||
"lang_postimg_aftupload": "Po nahrání nemůžete změnit účty.",
|
||||
"lang_postimg_delete": "Delete this image.",
|
||||
"lang_post_tagTL": "Tento toot neobsahuje výchozí hashtag. Tento toot nebude zobrazen na výchozí časové ose. Pokračovat?",
|
||||
"lang_post_tagVis": "Tento toot (ne „veřejný“ toot) není zobrazen na časové ose tohoto hashtagu.",
|
||||
"lang_post_cwtitle": "Automatické varování o obsahu",
|
||||
"lang_post_cwtxt": "Chcete napsat delší toot, než jste nastavil/a.\nText varování:",
|
||||
"lang_post_btn1": "Zrušit (příspěvek nebude publikován)",
|
||||
"lang_post_btn2": "Skrýt text automaticky",
|
||||
"lang_post_btn3": "Pokračovat k přispívání",
|
||||
"lang_status_favWarn": "Oblíbení vzdáleného tootu bude chvíli trvat.",
|
||||
"lang_status_btWarn": "Boostnutí vzdáleného tootu bude chvíli trvat.",
|
||||
"lang_status_follow": "Sledovat",
|
||||
"lang_status_unfollow": "Přestat sledovat",
|
||||
"lang_status_block": "Blokovat",
|
||||
"lang_status_unblock": "Odblokovat",
|
||||
"lang_status_mute": "Ignorovat",
|
||||
"lang_status_unmute": "Přestat ignorovat",
|
||||
"lang_status_redraftTitle": "Delete & redraft",
|
||||
"lang_status_redraft": "Chcete pokračovat k vymazání a přepsání? Ztratíte odpovědi na tento toot. Tato funkce může obashovat několik chyb. Obrázky v tomto tootu budou na verzi Mastodonu starší než 2.4.1 smazány.",
|
||||
"lang_status_emphas": ": tooty tohoto uživatele jsou zdůrazněny. Po této akci prosím obnovte stránku.",
|
||||
"lang_status_unemphas": ": tooty tohoto uživatele nejsou zdůrazněny. Po této akci prosím obnovte stránku.",
|
||||
"lang_status_unendorse": "Nepředstavit na profilu",
|
||||
"lang_status_endorse": "Představit na profilu",
|
||||
"lang_suggest_nodata": "Pro zobrazení návrhu prosím získejte seznam emoji.",
|
||||
"lang_usetxtbox_reply": "Režim odpovězení. Pro vymazání stiskněte Ctrl+Shift+C.",
|
||||
"lang_cards_check": " kontrolovat",
|
||||
"lang_cards_pip": "Režim PiP",
|
||||
"lang_details_nodata": "Žádná data",
|
||||
"lang_details_filtered": "Filtrovaný toot",
|
||||
"lang_details_embed": "HTML pro vložení je zkopírován.",
|
||||
"lang_details_url": "URL adresa tohoto tootu je zkopírována.",
|
||||
"lang_details_txt": "Obsah tohoto tootu je zkopírován.",
|
||||
"lang_filter_nodata": "Žádná data",
|
||||
"lang_filter_errordegree": "Prosím zkontrolujte kontext",
|
||||
"lang_list_nodata": "Žádná data",
|
||||
"lang_list_show": "Zobrazit",
|
||||
"lang_list_users": "Seznam uživatelů",
|
||||
"lang_list_nouser": "Žádní uživatelé na tomto seznamu.",
|
||||
"lang_list_add": "Přidat na seznam",
|
||||
"lang_list_add_misskey": "(perhaps this user has been listed)",
|
||||
"lang_list_remove": "Odstranit ze seznamu",
|
||||
"lang_notf_new": " nových oznámení",
|
||||
"lang_speech_refresh": "Uložit hodnotu nastavení TTS",
|
||||
"lang_src_ts": "chronologické pořadí",
|
||||
"lang_src_people": " lidí tootují",
|
||||
"lang_tags_always": "Vždy tootnout s ",
|
||||
"lang_tags_realtime": "Tag-stream toot",
|
||||
"lang_tags_tagunpin": "Odepnout {{tag}}",
|
||||
"lang_tags_unrealtime": "Disable TsT",
|
||||
"lang_tags_tagwarn": "Auto complete {{tag}}, if toot without {{tag}}",
|
||||
"lang_tl_media": "Média",
|
||||
"lang_tl_reconnect": "Reconnect to streaming API",
|
||||
"lang_img_DLDone": "Downloaded:",
|
||||
"lang_layout_gotop": "Go top of this column. When icon is red, this column cannot connect straming API. Please reload.",
|
||||
"lang_layout_thisacct": "{{notf}} tohoto účtu",
|
||||
"lang_layout_delthis": "Odstranit tento sloupec",
|
||||
"lang_layout_setthis": "Nastavení tohoto sloupce",
|
||||
"lang_layout_mediafil": "Filtrování médií",
|
||||
"lang_layout_linkana": "Automatický analyzátor odkazů",
|
||||
"lang_layout_linkanades": "Automatický analyzátor odkazů",
|
||||
"lang_layout_tts": "Převod textu na řeč ",
|
||||
"lang_layout_reconnect": "Reconnect to streaming API",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[Žádná data]<br>Obnovte stránku klávesami F5/⌘+R",
|
||||
"lang_layout_dm": "Přímá zpráva",
|
||||
"lang_layout_webviewmode": "Preferovat WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
"lang_layout_deleteColumnDesc": "Delete this column",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
"lang_spotify_imgno": "Not attach an album artwork",
|
||||
"lang_spotify_acct": "Spojit TheDesk se Spotify",
|
||||
"lang_spotify_np": "Hotovo: šablona NowPlaying",
|
||||
"lang_setting_npprovide": "NowPlaying provider:{{set}}",
|
||||
"lang_hisdata_frcreq": "Vyžaduje Mastodon 2.4.3 nebo vyšší verzi",
|
||||
"lang_hisdata_frcwarn": "Budou zobrazeny již nesledované účty.",
|
||||
"lang_hisdata_taketime": "It will take 30s ~ several minutes",
|
||||
"lang_hisdata_notonmisskey": "Misskey is unable to request.",
|
||||
"lang_hisdata_key": "This user is proofed by {{set}}",
|
||||
"lang_showontl_movetxt": "Tento účet byl přesunut",
|
||||
"lang_showontl_movebtn": "Continue on the new account",
|
||||
"lang_showontl_botacct": "[robot]",
|
||||
"lang_showontl_followed": "Sledují vás",
|
||||
"lang_showontl_notf": "Oznámení ",
|
||||
"lang_showontl_domain": "Doména ",
|
||||
"lang_showontl_listwarn": "Follow to add this user to lists.",
|
||||
"lang_showontl_verified": "This website is verified by owner at ",
|
||||
"lang_parse_mentioned": " vám odpověděl/a",
|
||||
"lang_parse_faved": " si oblíbil/a váš toot",
|
||||
"lang_parse_bted": " boostnul/a váš toot",
|
||||
"lang_parse_btedsimple": " boostnul/a",
|
||||
"lang_parse_polled": "'s poll",
|
||||
"lang_parse_notftime": "Provedeno",
|
||||
"lang_parse_cwshow": "Zobrazit",
|
||||
"lang_parse_fulltext": "Celý text:",
|
||||
"lang_parse_autofold": "Auto folded",
|
||||
"lang_parse_more": "Více",
|
||||
"lang_parse_url": "Analyzátor URL",
|
||||
"lang_parse_tagTL": "Časová osa {{tag}}",
|
||||
"lang_parse_tagtoot": "Tootnout s hashtagem {{tag}}",
|
||||
"lang_parse_tagpin": "Připnout {{tag}}",
|
||||
"lang_parse_public": "Veřejný",
|
||||
"lang_parse_unlisted": "Neuvedený",
|
||||
"lang_parse_private": "Soukromý",
|
||||
"lang_parse_direct": "Přímý",
|
||||
"lang_parse_clickcopy": "Klikněte pro zkopírování textu tohoto tootu",
|
||||
"lang_parse_clickcopyurl": "Klikněte pro zkopírování URL adresy tohoto tootu",
|
||||
"lang_parse_trans": "Přeložit do japonštiny",
|
||||
"lang_parse_replyto": "Odpovědět na tento toot",
|
||||
"lang_parse_bt": "Boostnout tento toot",
|
||||
"lang_parse_fav": "Oblíbit si tento toot",
|
||||
"lang_parse_quote": "Citovat tento toot",
|
||||
"lang_parse_del": "Smazat tento toot",
|
||||
"lang_parse_pin": "Připnout tento toot",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_redraft": "Vymazat a přepsat",
|
||||
"lang_parse_followed": "vás nyní sleduje",
|
||||
"lang_parse_clientop": "Operace tohoto klienta",
|
||||
"lang_parse_clienttxt": " bude",
|
||||
"lang_parse_clientno": "nic nedělat",
|
||||
"lang_parse_clientemp": "zdůrazněna (nebo nezdůrazněna)",
|
||||
"lang_parse_clientmute": "ztlumena",
|
||||
"lang_parse_mute": " bude ztlumena. To můžete odstranit v nastavení.",
|
||||
"lang_parse_voted": "Voted",
|
||||
"lang_parse_vote": "Vote",
|
||||
"lang_parse_unvoted": "Show the result without voting",
|
||||
"lang_parse_endedvote": "Expired",
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "NSFW media",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Znovusdílení",
|
||||
"lang_misskeyparse_renoteqt": "Renotování",
|
||||
"lang_misskeyparse_reaction": "Reakce",
|
||||
"lang_misskeyparse_tagnostr": "Žádné streamovací API na časových osách hashtagů",
|
||||
"lang_misskeyparse_listnostr": "Žádné streamovací API na časových osách seznamů",
|
||||
"lang_misskeyparse_home": "Domů",
|
||||
"lang_misskeyparse_followers": "Sledující",
|
||||
"lang_misskeyparse_specified": "Určený uživatel",
|
||||
"lang_misskeyparse_qt": "Režim renotování (citace) Misskey: pro vymazání stiskněte Ctrl+Shift+Enter",
|
||||
"lang_misskeyparse_renoted": " renotoval/a váš následující příspěvek.",
|
||||
"lang_misskeyparse_quoted": " citoval/a váš následující příspěvek.",
|
||||
"lang_misskeyparse_reacted": " reagoval/a na váš následující příspěvek.",
|
||||
"lang_setting_time": "Časový formát: {{set}}",
|
||||
"lang_setting_theme": "Motiv: {{set}}",
|
||||
"lang_setting_nsfw": "Citlivý obsah: {{set}}",
|
||||
"lang_setting_cw": "Varování: {{set}}",
|
||||
"lang_setting_cwtext": "Výchozí text varování: {{set}}",
|
||||
"lang_setting_cws": "Vždy zapnout varování na: {{set}}",
|
||||
"lang_setting_rp": "Počitadlo odpovědí: {{set}}",
|
||||
"lang_setting_vis": "Výchozí viditelnost: {{set}}",
|
||||
"lang_setting_popup": "Popupové oznámení: {{set}}",
|
||||
"lang_setting_off": "Vyl",
|
||||
"lang_setting_s": "s",
|
||||
"lang_setting_box": "Výchozí akce tootového pole: {{set}}",
|
||||
"lang_setting_gif": "GIF: {{set}}",
|
||||
"lang_setting_selt": "Auto fold:{{set1}} lines and above, {{set2}} letters and above",
|
||||
"lang_setting_autocw": "Auto CW:{{set1}} lines and above, {{set2}} letters and above",
|
||||
"lang_setting_width": "Minimam width:{{set}}",
|
||||
"lang_setting_fixwidth": "TweetDeck fixed width:{{set}}px",
|
||||
"lang_setting_img": "After posting an image:{{set}}",
|
||||
"lang_setting_font": "Písma: {{set}}",
|
||||
"lang_setting_default": "výchozí písmo",
|
||||
"lang_setting_size": "Velikost písma: {{set}} px",
|
||||
"lang_setting_imgheight": "Výška obrázků: {{set}} px",
|
||||
"lang_setting_ticker": "#InstanceTicker: {{set}} px",
|
||||
"lang_setting_animation": "Animation: {{set}}",
|
||||
"lang_setting_tag": "Časová osa hashtagu: {{set}}",
|
||||
"lang_setting_boxConfirm": "Post box:{{set}}",
|
||||
"lang_setting_ul": "Native locale:{{set}}",
|
||||
"lang_setting_notf": "Native notification:{{set}}",
|
||||
"lang_setting_quote": "Formát citace: {{set}}",
|
||||
"lang_setting_via": "Přes: {{set}}",
|
||||
"lang_setting_mov": "Action buttons hiding:{{set}}",
|
||||
"lang_setting_setasread": "Notification markers:{{set}}",
|
||||
"lang_setting_main": "Default account:{{set}}",
|
||||
"lang_setting_sec": "Secondary toot button:{{set}}",
|
||||
"lang_setting_ksref": "Keyboard shortcuts are refreshed.",
|
||||
"lang_setting_nomuting": "Žádný klient není ztlumen.",
|
||||
"lang_setting_notftest": " Test oznámení ",
|
||||
"lang_setting_notftestprof": "Vaše ikona je zobrazena.",
|
||||
"lang_setting_exportwarn": "Budou exportována pouze důležitá data. Tato data musíte udržet v bezpečí.",
|
||||
"lang_setting_importwarn": "Všechna data budou smazána."
|
||||
}
|
||||
228
app/js/lang/lang.de.js
Normal file
@@ -0,0 +1,228 @@
|
||||
var lang={
|
||||
"language": "en",
|
||||
"lang_toot": "Tröt",
|
||||
"lang_there": "Ja",
|
||||
"lang_nothing": "Ohne",
|
||||
"lang_yesno": "Ja",
|
||||
"lang_no": "Nein",
|
||||
"lang_progress": "Warten...",
|
||||
"lang_edit": "Bearbeiten",
|
||||
"lang_del": "Löschen",
|
||||
"lang_add": "Hinzufügen",
|
||||
"lang_fatalerroroccured": "Ein Fehler ist aufgetreten, bitte starten Sie TheDesk neu.",
|
||||
"lang_speech": "Google US Englisch",
|
||||
"lang_lang": "Sprache",
|
||||
"lang_langlocale": "Englisch",
|
||||
"lang_back": "Zurück",
|
||||
"lang_set": "Setzen",
|
||||
"lang_langadd": "Übersetzen oder korrigieren Sie TheDesk in andere Sprachen auf <a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHub</a>. TheDesk benötigt Ihre Hilfe.",
|
||||
"lang_version_usever": "Keine Aktualisierung gefunden({{ver}})",
|
||||
"lang_version_skipver": "Update wurde ignoriert.",
|
||||
"lang_version_platform": "Möchten Sie automatische Updates?(Benutzer im Microsoft Store wählen 'Nein')",
|
||||
"lang_version_platform_linux": "Möchten Sie automatische Updates?(Benutzer auf Snapcraft wählen 'Nein')",
|
||||
"lang_version_platform_mac": "Möchten Sie automatische Updates?(Homebrew Cask Benutzer wählen 'Nein')",
|
||||
"lang_login_noauth": "Verläufe von nicht angemeldeten Konten anzeigen",
|
||||
"lang_manager_info": "Über diese Instanz",
|
||||
"lang_manager_refresh": "Aktualisieren",
|
||||
"lang_manager_delete": "Abmelden",
|
||||
"lang_manager_color": "Kontofarbe",
|
||||
"lang_manager_confirm": "ist im Begriff, sich auszuloggen. Fortfahren?",
|
||||
"lang_manager_mainAcct": "Fertig:Hauptkonto wählen",
|
||||
"lang_manager_def": "Standard",
|
||||
"lang_manager_none": "Ohne",
|
||||
"lang_manager_godev": "Öffnen Sie das DevCenter von Misskey. Wir zeigen auch ein offizielles Dokument als Referenz.",
|
||||
"lang_manager_logout": "Abmelden",
|
||||
"lang_bbmd_misskey": "TheDesk betrachtet \"@\" als Antwort, setzt aber einen anderen Parameter. Nicht auf Mastodon gelistet bedeutet Home on Misskey.",
|
||||
"lang_emoji_get": "Hole Emojis",
|
||||
"lang_emoji_custom": "Eigene Emojis",
|
||||
"lang_defaultemojis_text": "Emojis über {{cat}}",
|
||||
"lang_postimg_previewdis": "keine Vorschau",
|
||||
"lang_postimg_aftupload": "Sie können die Konten nach dem Hochladen nicht mehr ändern.",
|
||||
"lang_postimg_delete": "Dieses Bild löschen.",
|
||||
"lang_post_tagTL": "Dieses Tröt enthält keinen Standard-Tag. Er wird in dem lokalen Verlauf nicht angezeigt. Fortfahren?",
|
||||
"lang_post_tagVis": "Dieser Tröt (nicht 'öffentlicher' Tröt) wird nicht in diesem Tag-Verlauf angezeigt.",
|
||||
"lang_post_cwtitle": "Auto CW Alert",
|
||||
"lang_post_cwtxt": "Du bist dabei, länger zu posten, als du eingestellt hast.\nWarntext:",
|
||||
"lang_post_btn1": "Abbrechen (wird nicht gesendet)",
|
||||
"lang_post_btn2": "Text automatisch ausblenden",
|
||||
"lang_post_btn3": "Weiter mit Senden",
|
||||
"lang_status_favWarn": "Es braucht einen Moment, um ein entferntes Tröt zu favorisieren.",
|
||||
"lang_status_btWarn": "Es braucht einen Moment, um ein entferntes Tröt zu verstärken.",
|
||||
"lang_status_follow": "Folgen",
|
||||
"lang_status_unfollow": "Nicht mehr folgen",
|
||||
"lang_status_block": "Blockieren",
|
||||
"lang_status_unblock": "Freigeben",
|
||||
"lang_status_mute": "Stummschalten",
|
||||
"lang_status_unmute": "Stummschalten aufheben",
|
||||
"lang_status_redraftTitle": "Löschen & Neuentwerfen",
|
||||
"lang_status_redraft": "Weiter mit löschen & neu entwerfen? Du verlierst den Status dieses Tröts. Diese Aktion kann einige Fehler enthalten. Bilder dieses Tröts werden auf älteren Versionen als Mastodon 2.4.1 gelöscht.",
|
||||
"lang_status_emphas": "'s Tröts werden hervorgehoben. Bitte laden Sie nach dieser Aktion neu.",
|
||||
"lang_status_unemphas": "'s Tröts werden nicht hervorgehoben. Bitte laden Sie nach dieser Aktion neu.",
|
||||
"lang_status_unendorse": "Nicht auf dem Profil zeigen",
|
||||
"lang_status_endorse": "Auf dem Profil zeigen",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Antwortmodus. Strg+Umschalt+C zum Löschen.",
|
||||
"lang_cards_check": " überprüfen",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_details_nodata": "Keine Daten",
|
||||
"lang_details_filtered": "Gefilterter Tröt",
|
||||
"lang_details_embed": "Eingefügtes HTML wurde entfernt.",
|
||||
"lang_details_url": "URL dieses Tröts wurde entfernt.",
|
||||
"lang_details_txt": "Inhalt dieses Tröts wurde entfernt.",
|
||||
"lang_filter_nodata": "Keine Daten",
|
||||
"lang_filter_errordegree": "Bitte überprüfen Sie den Kontext",
|
||||
"lang_list_nodata": "Keine Daten",
|
||||
"lang_list_show": "Anzeigen",
|
||||
"lang_list_users": "Benutzerliste",
|
||||
"lang_list_nouser": "Keine Benutzer in dieser Liste.",
|
||||
"lang_list_add": "Zur Liste hinzufügen",
|
||||
"lang_list_add_misskey": "(vielleicht wurde dieser Benutzer aufgelistet)",
|
||||
"lang_list_remove": "Aus Liste entfernen",
|
||||
"lang_notf_new": " neue Benachrichtigungen",
|
||||
"lang_speech_refresh": "Sichern der Vorlesefunktionseinstellungen",
|
||||
"lang_src_ts": "chronologische Reihenfolge",
|
||||
"lang_src_people": " Leute Tröt",
|
||||
"lang_tags_always": "Immer Tröten mit ",
|
||||
"lang_tags_realtime": "Tag-Stream Tröt",
|
||||
"lang_tags_tagunpin": "{{tag}} entsperren",
|
||||
"lang_tags_unrealtime": "Disable TsT",
|
||||
"lang_tags_tagwarn": "Automatisch {{tag}} anfügen, wenn Tröt ohne {{tag}} ist",
|
||||
"lang_tl_media": "Medien",
|
||||
"lang_tl_reconnect": "Mit Streaming API erneut verbinden",
|
||||
"lang_img_DLDone": "Heruntergeladen:",
|
||||
"lang_layout_gotop": "Gehen Sie zum Anfang dieser Spalte. Wenn das Symbol rot ist, kann diese Spalte keine Verbindung zur Streaming-API herstellen. Bitte neu laden.",
|
||||
"lang_layout_thisacct": "{{notf}} dieses Kontos",
|
||||
"lang_layout_delthis": "Diese Spalte löschen",
|
||||
"lang_layout_setthis": "Einstellungen dieser Spalte",
|
||||
"lang_layout_mediafil": "Medien filtern",
|
||||
"lang_layout_linkana": "Automatische Link-Analyse",
|
||||
"lang_layout_linkanades": "Automatische Link-Analyse",
|
||||
"lang_layout_tts": "Sprachausgabe ",
|
||||
"lang_layout_reconnect": "Mit Streaming API erneut verbinden",
|
||||
"lang_layout_headercolor": "Kopfzeilenfarbe dieser Spalte",
|
||||
"lang_layout_nodata": "[Keine Daten]<br>F5/⌘+R zum Neu laden",
|
||||
"lang_layout_dm": "Direkte Nachricht",
|
||||
"lang_layout_webviewmode": "Web-Ansicht bevorzugen",
|
||||
"lang_excluded": "Ausgeschlossene Benachrichtigungsart",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_leftFold": "Nach links Stapeln",
|
||||
"lang_layout_leftUnfold": "Rechts Anheften",
|
||||
"lang_layout_deleteColumn": "Diese Spalte löschen",
|
||||
"lang_layout_deleteColumnDesc": "Diese Spalte löschen",
|
||||
"lang_sort_gothis": "Gehe zu dieser Spalte",
|
||||
"lang_sort_remthis": "Diese Spalte löschen",
|
||||
"lang_spotify_img": "Albumcover anhängen",
|
||||
"lang_spotify_imgno": "Kein Albumcover anhängen",
|
||||
"lang_spotify_acct": "TheDesk mit Spotify verbinden",
|
||||
"lang_spotify_np": "Done:Vorlage für NowPlaying",
|
||||
"lang_setting_npprovide": "NowPlaying Provider:{{set}}",
|
||||
"lang_hisdata_frcreq": "Benötigte Mastodon 2.4.3 und höher",
|
||||
"lang_hisdata_frcwarn": "Unfollow accounts will be shown.",
|
||||
"lang_hisdata_taketime": "Es dauert 30s bis mehrere Minuten",
|
||||
"lang_hisdata_notonmisskey": "Misskey kann nicht angefordert werden.",
|
||||
"lang_hisdata_key": "Dieser Benutzer ist von {{set}} überprüft",
|
||||
"lang_showontl_movetxt": "Dieses Konto wurde verschoben",
|
||||
"lang_showontl_movebtn": "Auf dem neuen Konto fortfahren",
|
||||
"lang_showontl_botacct": "[bot]",
|
||||
"lang_showontl_followed": "Folgt dir",
|
||||
"lang_showontl_notf": "Benachrichtigung ",
|
||||
"lang_showontl_domain": "Domain ",
|
||||
"lang_showontl_listwarn": "Folgen, um diesen Benutzer zu Listen hinzuzufügen.",
|
||||
"lang_showontl_verified": "This website is verified by owner at ",
|
||||
"lang_parse_mentioned": " hat dir geantwortet",
|
||||
"lang_parse_faved": " favorisierte deinen Tröt",
|
||||
"lang_parse_bted": " hat deinen Tröt verstärkt",
|
||||
"lang_parse_btedsimple": " verstärkt",
|
||||
"lang_parse_polled": "'s Umfrage",
|
||||
"lang_parse_notftime": "Bearbeitet am",
|
||||
"lang_parse_cwshow": "Anzeigen",
|
||||
"lang_parse_fulltext": "Full size text:",
|
||||
"lang_parse_autofold": "Automatisches Zusammenfalten",
|
||||
"lang_parse_more": "Mehr",
|
||||
"lang_parse_url": "URL-Analyse",
|
||||
"lang_parse_tagTL": "Verlauf von {{tag}}",
|
||||
"lang_parse_tagtoot": "Tröt mit {{tag}}",
|
||||
"lang_parse_tagpin": "Pin {{tag}}",
|
||||
"lang_parse_public": "Öffentlich",
|
||||
"lang_parse_unlisted": "Nicht aufgeführt",
|
||||
"lang_parse_private": "Privat",
|
||||
"lang_parse_direct": "Direkt",
|
||||
"lang_parse_clickcopy": "Klicken, um den Text dieses Tröts zu kopieren",
|
||||
"lang_parse_clickcopyurl": "Klicken, um die URL dieses Tröts zu kopieren",
|
||||
"lang_parse_trans": "Übersetzen nach Japanisch",
|
||||
"lang_parse_replyto": "Auf diesen Tröt antworten",
|
||||
"lang_parse_bt": "Diesen Tröt verstärken",
|
||||
"lang_parse_fav": "Diesen Tröt favorisieren",
|
||||
"lang_parse_quote": "Diesen Tröt zitieren",
|
||||
"lang_parse_del": "Diesen Tröt löschen",
|
||||
"lang_parse_pin": "Dieses Tröt fixieren",
|
||||
"lang_parse_det": "Details über Ihr Hauptkonto.",
|
||||
"lang_parse_redraft": "Löschen & Neuentwerfen",
|
||||
"lang_parse_followed": "Folgt dir",
|
||||
"lang_parse_clientop": "Aktion dieses Clients",
|
||||
"lang_parse_clienttxt": " wird",
|
||||
"lang_parse_clientno": "Nichts unternehmen",
|
||||
"lang_parse_clientemp": "Hervorgehoben(/nicht hervorgehoben)",
|
||||
"lang_parse_clientmute": "Stumm",
|
||||
"lang_parse_mute": " wird stumm gemacht. Kann in den Einstellungen wieder entfernt werden.",
|
||||
"lang_parse_voted": "Abgestimmt",
|
||||
"lang_parse_vote": "Abstimmen",
|
||||
"lang_parse_unvoted": "Ergebnis ohne Abstimmung anzeigen",
|
||||
"lang_parse_endedvote": "Abgelaufen",
|
||||
"lang_parse_thread": "Konversation anzeigen",
|
||||
"lang_parse_unknown": "Angehängte Datei",
|
||||
"lang_parse_nsfw": "NSFW Medien",
|
||||
"lang_parse_notffilter": "Benachrichtigungen dieses Benutzers anzeigen",
|
||||
"lang_misskeyparse_renote": "Weiterleiten",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaktion",
|
||||
"lang_misskeyparse_tagnostr": "Keine Streaming-API für Tag-Verläufe",
|
||||
"lang_misskeyparse_listnostr": "Keine Streaming-API fpr Listen-Verläufe",
|
||||
"lang_misskeyparse_home": "Startseite",
|
||||
"lang_misskeyparse_followers": "Abonnent",
|
||||
"lang_misskeyparse_specified": "Ausgewählte Benutzer",
|
||||
"lang_misskeyparse_qt": "Misskey renote(quote) mode:Ctrl+Shift+Enter to clear",
|
||||
"lang_misskeyparse_renoted": " hat deinen folgenden Beitrag zurückgewiesen.",
|
||||
"lang_misskeyparse_quoted": " zitierte deinen folgenden Beitrag.",
|
||||
"lang_misskeyparse_reacted": " hat auf Ihren folgenden Beitrag reagiert.",
|
||||
"lang_setting_time": "Zeitformat:{{set}}",
|
||||
"lang_setting_theme": "Design:{{set}}",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
"lang_setting_cws": "Always CW on:{{set}}",
|
||||
"lang_setting_rp": "Antwortzähler:{{set}}",
|
||||
"lang_setting_vis": "Standardsichtbarkeit:{{set}}",
|
||||
"lang_setting_popup": "Popup-Benachrichtigung:{{set}}",
|
||||
"lang_setting_off": "Aus",
|
||||
"lang_setting_s": "s",
|
||||
"lang_setting_box": "Standard-Tröt-Box-Aktion:{{set}}",
|
||||
"lang_setting_gif": "GIF:{{set}}",
|
||||
"lang_setting_selt": "Auto-Falten:{{set1}} Zeilen und höher, {{set2}} Buchstaben und höher",
|
||||
"lang_setting_autocw": "Auto CW:{{set1}} lines and above, {{set2}} letters and above",
|
||||
"lang_setting_width": "Minimale Breite:{{set}}",
|
||||
"lang_setting_fixwidth": "TweetDeck feste Breite:{{set}}px",
|
||||
"lang_setting_img": "Nach dem Posten eines Bildes:{{set}}",
|
||||
"lang_setting_font": "Schriftart:{{set}}",
|
||||
"lang_setting_default": "Standard-Schriftart",
|
||||
"lang_setting_size": "Schriftgröße:{{set}}px",
|
||||
"lang_setting_imgheight": "Bildhöhe:{{set}}px",
|
||||
"lang_setting_ticker": "#InstanceTicker:{{set}}px",
|
||||
"lang_setting_animation": "Animation: {{set}}",
|
||||
"lang_setting_tag": "Tag-Verlauf:{{set}}",
|
||||
"lang_setting_boxConfirm": "Postfach:{{set}}",
|
||||
"lang_setting_ul": "Muttersprache:{{set}}",
|
||||
"lang_setting_notf": "System Benachrichtigungen:{{set}}",
|
||||
"lang_setting_quote": "Zitierformat:{{set}}",
|
||||
"lang_setting_via": "Via:{{set}}",
|
||||
"lang_setting_mov": "Aktionstasten verstecken:{{set}}",
|
||||
"lang_setting_setasread": "Benachrichtigungs-Markierungen:{{set}}",
|
||||
"lang_setting_main": "Standard-Konto:{{set}}",
|
||||
"lang_setting_sec": "Zweite Tröt-Taste:{{set}}",
|
||||
"lang_setting_ksref": "Tastaturkürzel werden aktualisiert.",
|
||||
"lang_setting_nomuting": "Kein Client ist stumm.",
|
||||
"lang_setting_notftest": " Benachrichtigungen testen ",
|
||||
"lang_setting_notftestprof": "Ihr Symbol wird angezeigt.",
|
||||
"lang_setting_exportwarn": "Nur wichtige Daten werden exportiert. Sie müssen diese Daten sichern.",
|
||||
"lang_setting_importwarn": "Alle Daten werden gelöscht."
|
||||
}
|
||||
@@ -1,246 +1,260 @@
|
||||
//commonError
|
||||
var lang={
|
||||
"language":"en",
|
||||
"lang_toot":"Toot",
|
||||
"lang_there":"Yes",
|
||||
"lang_nothing":"None",
|
||||
"lang_yesno":"Yes",
|
||||
"lang_no":"No",
|
||||
"lang_progress":"Wait...",
|
||||
"lang_edit":"Edit",
|
||||
"lang_del":"Delete",
|
||||
"lang_add":"Add",
|
||||
"lang_fatalerroroccured":"Some errors are occured, please restart TheDesk.",
|
||||
"lang_speech":"Google US English",
|
||||
var lang = {
|
||||
"language": "en",
|
||||
"lang_toot": "Toot",
|
||||
"lang_there": "Yes",
|
||||
"lang_nothing": "None",
|
||||
"lang_yesno": "Yes",
|
||||
"lang_no": "No",
|
||||
"lang_progress": "Wait...",
|
||||
"lang_edit": "Edit",
|
||||
"lang_del": "Delete",
|
||||
"lang_add": "Add",
|
||||
"lang_fatalerroroccured": "Some errors are occured, please restart TheDesk.",
|
||||
"lang_speech": "Google US English",
|
||||
//language.html
|
||||
"lang_lang":"Language",
|
||||
"lang_langlocale":"English",
|
||||
"lang_back":"Back",
|
||||
"lang_set":"Set",
|
||||
"lang_langadd":"Translate TheDesk to other languages or proofread TheDesk on <a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHub</a>. TheDesk needs your help.",
|
||||
"lang_lang": "Language",
|
||||
"lang_langlocale": "English",
|
||||
"lang_back": "Back",
|
||||
"lang_set": "Set",
|
||||
"lang_langadd": "Translate TheDesk to other languages or proofread TheDesk on <a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHub</a>. TheDesk needs your help.",
|
||||
//common/version.js
|
||||
"lang_version_usever":"No update is found({{ver}})",
|
||||
"lang_version_skipver":"Update was ignored.",
|
||||
"lang_version_platform":"Was this software installed at Microsoft Store? When select 'yes', any update was ignored.",
|
||||
"lang_version_platform_linux":"Was this software installed at Snapcraft(snapd)? When select 'yes', any update was ignored.",
|
||||
"lang_version_platform_mac":"Was this software installed at Homebrew Cask? When select 'yes', any update was ignored.",
|
||||
"lang_version_usever": "No update is found({{ver}})",
|
||||
"lang_version_skipver": "Update was ignored.",
|
||||
"lang_version_platform": "Do you want auto-updates?(users installed on Microsoft Store select 'No')",
|
||||
"lang_version_platform_linux": "Do you want auto-updates?(users installed on Snapcraft select 'No')",
|
||||
"lang_version_platform_mac": "Do you want auto-updates?(Homebrew Cask users select 'No')",
|
||||
//login
|
||||
//login/login.js
|
||||
"lang_login_noauth":"Show TL of unlogined accounts",
|
||||
"lang_login_noauth": "Show TL of unlogined accounts",
|
||||
//login/manager.js
|
||||
"lang_manager_info":"About this instance",
|
||||
"lang_manager_refresh":"Refresh",
|
||||
"lang_manager_delete":"Logout",
|
||||
"lang_manager_color":"Account Color",
|
||||
"lang_manager_confirm":"is about to logout. Continue?",
|
||||
"lang_manager_mainAcct":"Done:choose main account",
|
||||
"lang_manager_def":"Default",
|
||||
"lang_manager_none":"None",
|
||||
"lang_manager_godev":"Open DevCenter of Misskey. We show also an official documents to refer.",
|
||||
"lang_manager_info": "About this instance",
|
||||
"lang_manager_refresh": "Refresh",
|
||||
"lang_manager_delete": "Logout",
|
||||
"lang_manager_color": "Account Color",
|
||||
"lang_manager_confirm": "is about to logout. Continue?",
|
||||
"lang_manager_mainAcct": "Done:choose main account",
|
||||
"lang_manager_def": "Default",
|
||||
"lang_manager_none": "None",
|
||||
"lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.",
|
||||
"lang_manager_logout": "Logout",
|
||||
//post/bb-md.js
|
||||
"lang_bbmd_misskey":"TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
|
||||
"lang_bbmd_misskey": "TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
|
||||
//post/emoji.js
|
||||
"lang_emoji_get":"Get emojis",
|
||||
"lang_emoji_custom":"Custom emojis",
|
||||
"lang_defaultemojis_text":"Emojis about {{cat}}",
|
||||
"lang_emoji_get": "Get emojis",
|
||||
"lang_emoji_custom": "Custom emojis",
|
||||
"lang_defaultemojis_text": "Emojis about {{cat}}",
|
||||
//post/img.js
|
||||
"lang_postimg_previewdis":"cannot preview",
|
||||
"lang_postimg_aftupload":"You cannot change accounts after uploading.",
|
||||
"lang_postimg_delete":"Delete this image.",
|
||||
"lang_postimg_previewdis": "cannot preview",
|
||||
"lang_postimg_aftupload": "You cannot change accounts after uploading.",
|
||||
"lang_postimg_failupload": "Failed",
|
||||
"lang_postimg_delete": "Delete this image.",
|
||||
//post/post.js
|
||||
"lang_post_tagTL":"This toot does not contain a default tag. This toot will not be shown on Local TL. Continue?",
|
||||
"lang_post_tagVis":"This toot(not 'public' toot) is not shown on this tag's TL.",
|
||||
"lang_post_cwtitle":"Auto CW Alert",
|
||||
"lang_post_cwtxt":"You are about to post longer toot than you set.\nWarning text:",
|
||||
"lang_post_btn1":"Cancel (will not post)",
|
||||
"lang_post_btn2":"Make text hidden automatically",
|
||||
"lang_post_btn3":"Continue to post",
|
||||
"lang_post_tagTL": "This toot does not contain a default tag. This toot will not be shown on Local TL. Continue?",
|
||||
"lang_post_tagVis": "This toot(not 'public' toot) is not shown on this tag's TL.",
|
||||
"lang_post_cwtitle": "Auto CW Alert",
|
||||
"lang_post_cwtxt": "You are about to post longer toot than you set.\nWarning text:",
|
||||
"lang_post_btn1": "Cancel (will not post)",
|
||||
"lang_post_btn2": "Make text hidden automatically",
|
||||
"lang_post_btn3": "Continue to post",
|
||||
//post/status.js
|
||||
"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",
|
||||
"lang_status_unfollow":"Unfollow",
|
||||
"lang_status_block":"Block",
|
||||
"lang_status_unblock":"Unblock",
|
||||
"lang_status_mute":"Mute",
|
||||
"lang_status_unmute":"Unmute",
|
||||
"lang_status_redraft":"Continue to delete & redraft? You lose statuses of this toot. This fanction may contain some bugs. Images of this toot will be deleted on older than Mastodon 2.4.1.",
|
||||
"lang_status_emphas":"'s toots are emphasized. Please reload after this action.",
|
||||
"lang_status_unemphas":"'s toots are not emphasized. Please reload after this action.",
|
||||
"lang_status_unendorse":"Not feature on profile",
|
||||
"lang_status_endorse":"Feature on profile",
|
||||
"lang_status_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",
|
||||
"lang_status_unfollow": "Unfollow",
|
||||
"lang_status_block": "Block",
|
||||
"lang_status_unblock": "Unblock",
|
||||
"lang_status_mute": "Mute",
|
||||
"lang_status_unmute": "Unmute",
|
||||
"lang_status_redraftTitle": "Delete & redraft",
|
||||
"lang_status_redraft": "Continue to delete & redraft? You lose statuses of this toot. This fanction may contain some bugs. Images of this toot will be deleted on older than Mastodon 2.4.1.",
|
||||
"lang_status_emphas": "'s toots are emphasized. Please reload after this action.",
|
||||
"lang_status_unemphas": "'s toots are not emphasized. Please reload after this action.",
|
||||
"lang_status_unendorse": "Not feature on profile",
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
//post/suggest.js
|
||||
"lang_suggest_nodata":"Please get emojis list in order to show suggestion.",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
//post/use-txtbox.js
|
||||
"lang_usetxtbox_reply":"Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
//tl/card.js
|
||||
"lang_cards_check":" check",
|
||||
"lang_cards_pip":"PiP mode",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
//tl/details.js
|
||||
"lang_details_nodata":"No data",
|
||||
"lang_details_filtered":"Filtered toot",
|
||||
"lang_details_embed":"Embed HTML is cliped.",
|
||||
"lang_details_url":"URL of this toot is cliped.",
|
||||
"lang_details_txt":"Content of this toot is cliped.",
|
||||
"lang_details_nodata": "No data",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
"lang_details_url": "URL of this toot is cliped.",
|
||||
"lang_details_txt": "Content of this toot is cliped.",
|
||||
//tl/filter.js
|
||||
"lang_filter_nodata":"No data",
|
||||
"lang_filter_errordegree":"Please check a context",
|
||||
"lang_filter_nodata": "No data",
|
||||
"lang_filter_errordegree": "Please check a context",
|
||||
//tl/list.js
|
||||
"lang_list_nodata":"No data",
|
||||
"lang_list_show":"Show",
|
||||
"lang_list_users":"Users list",
|
||||
"lang_list_nouser":"No users in this list.",
|
||||
"lang_list_add":"Add to the list",
|
||||
"lang_list_remove":"Remove from the list",
|
||||
"lang_list_nodata": "No data",
|
||||
"lang_list_show": "Show",
|
||||
"lang_list_users": "Users list",
|
||||
"lang_list_nouser": "No users in this list.",
|
||||
"lang_list_add": "Add to the list",
|
||||
"lang_list_add_misskey": "(perhaps this user has been listed)",
|
||||
"lang_list_remove": "Remove from the list",
|
||||
//tl/notification.js
|
||||
"lang_notf_new":" new notifications",
|
||||
"lang_notf_new": " new notifications",
|
||||
//tl/speech.js
|
||||
"lang_speech_refresh":"Save value about TTS config",
|
||||
"lang_speech_refresh": "Save value about TTS config",
|
||||
//tl/src.js
|
||||
"lang_src_ts":"chronological order",
|
||||
"lang_src_people":" people toot",
|
||||
"lang_src_ts": "chronological order",
|
||||
"lang_src_people": " people toot",
|
||||
//tl/tag.js
|
||||
"lang_tags_always":"Always toots with ",
|
||||
"lang_tags_realtime":"Tag-stream toot",
|
||||
"lang_tags_tagunpin":"Unpin {{tag}}",
|
||||
"lang_tags_unrealtime":"Disable TsT",
|
||||
"lang_tags_tagwarn":"Auto complete {{tag}}, if toot without {{tag}}",
|
||||
"lang_tags_always": "Always toots with ",
|
||||
"lang_tags_realtime": "Tag-stream toot",
|
||||
"lang_tags_tagunpin": "Unpin {{tag}}",
|
||||
"lang_tags_unrealtime": "Disable TsT",
|
||||
"lang_tags_tagwarn": "Auto complete {{tag}}, if toot without {{tag}}",
|
||||
//tl/tl.js
|
||||
"lang_tl_media":"Media",
|
||||
"lang_tl_reconnect":"Reconnect to streaming API",
|
||||
"lang_tl_media": "Media",
|
||||
"lang_tl_reconnect": "Reconnect to streaming API",
|
||||
//ui/img.js
|
||||
"lang_img_DLDone": "Downloaded:",
|
||||
//ui/layout.js
|
||||
"lang_layout_gotop":"Go top of this column. When icon is red, this column cannot connect straming API. Please reload.",
|
||||
"lang_layout_thisacct":"{{notf}} of this account",
|
||||
"lang_layout_delthis":"Remove this column",
|
||||
"lang_layout_setthis":"Preferences of this column",
|
||||
"lang_layout_mediafil":"Media filtering",
|
||||
"lang_layout_linkana":"Auto Link Analyzer",
|
||||
"lang_layout_linkanades":"Auto link analyzer",
|
||||
"lang_layout_tts":"Text to speech ",
|
||||
"lang_layout_reconnect":"Reconnect to streaming API",
|
||||
"lang_layout_headercolor":"Header color of this column",
|
||||
"lang_layout_nodata":"[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm":"Direct Message",
|
||||
"lang_layout_webviewmode":"Prefer WebView",
|
||||
"lang_excluded":"Excluded type of notification",
|
||||
"lang_layout_excludingbt":"Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_leftFold":"Stack to the left",
|
||||
"lang_layout_leftUnfold":"Dock on the right",
|
||||
"lang_layout_gotop": "Go top of this column. When icon is red, this column cannot connect straming API. Please reload.",
|
||||
"lang_layout_thisacct": "{{notf}} of this account",
|
||||
"lang_layout_delthis": "Remove this column",
|
||||
"lang_layout_setthis": "Preferences of this column",
|
||||
"lang_layout_mediafil": "Media filtering",
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn":"Delete this column",
|
||||
"lang_layout_deleteColumnDesc":"Delete this column",
|
||||
//ui/sort.js
|
||||
"lang_sort_gothis":"Go to this column",
|
||||
"lang_sort_remthis":"Delete this column",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
//ui/spotify.js
|
||||
"lang_spotify_img":"Attach an album artwork",
|
||||
"lang_spotify_imgno":"Not attach an album artwork",
|
||||
"lang_spotify_acct":"Connect TheDesk to Spotify",
|
||||
"lang_spotify_np":"Done:templete of NowPlaying",
|
||||
"lang_setting_npprovide":"NowPlaying provider:{{set}}",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
"lang_spotify_imgno": "Not attach an album artwork",
|
||||
"lang_spotify_acct": "Connect TheDesk to Spotify",
|
||||
"lang_spotify_np": "Done:templete of NowPlaying",
|
||||
"lang_setting_npprovide": "NowPlaying provider:{{set}}",
|
||||
//userdata/his-data.js
|
||||
"lang_hisdata_frcreq":"Required Mastodon 2.4.3 and above",
|
||||
"lang_hisdata_frcwarn":"Unfollow accounts will be shown.",
|
||||
"lang_hisdata_taketime":"It will take 30s ~ several minutes",
|
||||
"lang_hisdata_notonmisskey":"Misskey is unable to request.",
|
||||
"lang_hisdata_frcreq": "Required Mastodon 2.4.3 and above",
|
||||
"lang_hisdata_frcwarn": "Unfollow accounts will be shown.",
|
||||
"lang_hisdata_taketime": "It will take 30s ~ several minutes",
|
||||
"lang_hisdata_notonmisskey": "Misskey is unable to request.",
|
||||
"lang_hisdata_key": "This user is proofed by {{set}}",
|
||||
//userdata/showOnTL.js
|
||||
"lang_showontl_movetxt":"This account was moved",
|
||||
"lang_showontl_movebtn":"Continue on the new account",
|
||||
"lang_showontl_botacct":"[bot]",
|
||||
"lang_showontl_followed":"Following you",
|
||||
"lang_showontl_notf":"Notification ",
|
||||
"lang_showontl_domain":"Domain ",
|
||||
"lang_showontl_listwarn":"Follow to add this user to lists.",
|
||||
//parse
|
||||
"lang_parse_mentioned":" replied to you",
|
||||
"lang_parse_faved":" favourited your toot",
|
||||
"lang_parse_bted":" boosted your toot",
|
||||
"lang_parse_btedsimple":" boosted",
|
||||
"lang_parse_notftime":"Actioned at",
|
||||
"lang_parse_cwshow":"Show",
|
||||
"lang_parse_fulltext":"Full size text:",
|
||||
"lang_parse_autofold":"Auto folded",
|
||||
"lang_parse_more":"More",
|
||||
"lang_parse_url":"URL Analyzer",
|
||||
"lang_parse_tagTL":"Timeline of {{tag}}",
|
||||
"lang_parse_tagtoot":"Toot with {{tag}}",
|
||||
"lang_parse_tagpin":"Pin {{tag}}",
|
||||
"lang_parse_public":"Public",
|
||||
"lang_parse_unlisted":"Unlisted",
|
||||
"lang_parse_private":"Private",
|
||||
"lang_parse_direct":"Direct",
|
||||
"lang_parse_clickcopy":"Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl":"Click to copy URL of this toot",
|
||||
"lang_parse_trans":"Translate to Japanese",
|
||||
"lang_parse_replyto":"Reply to this toot",
|
||||
"lang_parse_bt":"Boost this toot",
|
||||
"lang_parse_fav":"Favourite this toot",
|
||||
"lang_parse_quote":"Quote this toot",
|
||||
"lang_parse_del":"Delete this toot",
|
||||
"lang_parse_pin":"Pin this toot",
|
||||
"lang_parse_det":"Details via your main account.",
|
||||
"lang_parse_redraft":"Delete & re-draft",
|
||||
"lang_parse_followed":"Followed you",
|
||||
"lang_parse_clientop":"Operation of this client",
|
||||
"lang_parse_clienttxt":" will be",
|
||||
"lang_parse_clientno":"done nothing",
|
||||
"lang_parse_clientemp":"emphasized(/not emphasized)",
|
||||
"lang_parse_clientmute":"muted",
|
||||
"lang_parse_mute":" will be muted. You can remove on preferences.",
|
||||
"lang_parse_voted":"Voted",
|
||||
"lang_parse_vote":"Voted",
|
||||
"lang_parse_unvoted":"Show the result without voting",
|
||||
"lang_parse_endedvote":"Expired",
|
||||
"lang_parse_thread":"Show thread",
|
||||
"lang_showontl_movetxt": "This account was moved",
|
||||
"lang_showontl_movebtn": "Continue on the new account",
|
||||
"lang_showontl_botacct": "[bot]",
|
||||
"lang_showontl_followed": "Following you",
|
||||
"lang_showontl_notf": "Notification ",
|
||||
"lang_showontl_domain": "Domain ",
|
||||
"lang_showontl_listwarn": "Follow to add this user to lists.",
|
||||
"lang_showontl_verified": "This website is verified by owner at ",
|
||||
//parse
|
||||
"lang_parse_mentioned": " replied to you",
|
||||
"lang_parse_faved": " favourited your toot",
|
||||
"lang_parse_bted": " boosted your toot",
|
||||
"lang_parse_btedsimple": " boosted",
|
||||
"lang_parse_polled": "'s poll",
|
||||
"lang_parse_notftime": "Actioned at",
|
||||
"lang_parse_cwshow": "Show",
|
||||
"lang_parse_fulltext": "Full size text:",
|
||||
"lang_parse_autofold": "Auto folded",
|
||||
"lang_parse_more": "More",
|
||||
"lang_parse_url": "URL Analyzer",
|
||||
"lang_parse_tagTL": "Timeline of {{tag}}",
|
||||
"lang_parse_tagtoot": "Toot with {{tag}}",
|
||||
"lang_parse_tagpin": "Pin {{tag}}",
|
||||
"lang_parse_public": "Public",
|
||||
"lang_parse_unlisted": "Unlisted",
|
||||
"lang_parse_private": "Private",
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
"lang_parse_quote": "Quote this toot",
|
||||
"lang_parse_del": "Delete this toot",
|
||||
"lang_parse_pin": "Pin this toot",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_redraft": "Delete & re-draft",
|
||||
"lang_parse_followed": "Followed you",
|
||||
"lang_parse_clientop": "Operation of this client",
|
||||
"lang_parse_clienttxt": " will be",
|
||||
"lang_parse_clientno": "done nothing",
|
||||
"lang_parse_clientemp": "emphasized(/not emphasized)",
|
||||
"lang_parse_clientmute": "muted",
|
||||
"lang_parse_mute": " will be muted. You can remove on preferences.",
|
||||
"lang_parse_voted": "Voted",
|
||||
"lang_parse_vote": "Vote",
|
||||
"lang_parse_unvoted": "Show the result without voting",
|
||||
"lang_parse_endedvote": "Expired",
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "NSFW media",
|
||||
"lang_parse_notffilter":"Show this user's notifications",
|
||||
//misskey
|
||||
"lang_misskeyparse_renote":"Repost",
|
||||
"lang_misskeyparse_renoteqt":"Renote",
|
||||
"lang_misskeyparse_reaction":"Reaction",
|
||||
"lang_misskeyparse_tagnostr":"No streaming API on Tag TLs",
|
||||
"lang_misskeyparse_listnostr":"No streaming API on List TLs",
|
||||
"lang_misskeyparse_home":"Home",
|
||||
"lang_misskeyparse_followers":"Follower",
|
||||
"lang_misskeyparse_specified":"Specified User",
|
||||
"lang_misskeyparse_qt":"Misskey renote(quote) mode:Ctrl+Shift+Enter to clear",
|
||||
"lang_misskeyparse_renoted":" renoted your following post.",
|
||||
"lang_misskeyparse_quoted":" quoted your following post.",
|
||||
"lang_misskeyparse_reacted":" reacted your following post.",
|
||||
//setting
|
||||
"lang_setting_time":"Time format:{{set}}",
|
||||
"lang_setting_theme":"Theme:{{set}}",
|
||||
"lang_setting_nsfw":"NSFW:{{set}}",
|
||||
"lang_setting_cw":"CW:{{set}}",
|
||||
"lang_setting_cwtext":"Default CW text:{{set}}",
|
||||
"lang_setting_cws":"Always CW on:{{set}}",
|
||||
"lang_setting_rp":"Reply counter:{{set}}",
|
||||
"lang_setting_vis":"Default visibility:{{set}}",
|
||||
"lang_setting_popup":"Popup notification:{{set}}",
|
||||
"lang_setting_off":"Off",
|
||||
"lang_setting_s":"s",
|
||||
"lang_setting_box":"Default toot box action:{{set}}",
|
||||
"lang_setting_gif":"GIF:{{set}}",
|
||||
"lang_setting_selt":"Auto fold:{{set1}} lines and above, {{set2}} letters and above",
|
||||
"lang_setting_autocw":"Auto CW:{{set1}} lines and above, {{set2}} letters and above",
|
||||
"lang_setting_width":"Minimam width:{{set}}",
|
||||
"lang_setting_fixwidth":"TweetDeck fixed width:{{set}}px",
|
||||
"lang_setting_img":"After posting an image:{{set}}",
|
||||
"lang_setting_font":"Fonts:{{set}}",
|
||||
"lang_setting_default":"default font",
|
||||
"lang_setting_size":"Font size:{{set}}px",
|
||||
"lang_setting_imgheight":"Image height:{{set}}px",
|
||||
"lang_setting_ticker":"#InstanceTicker:{{set}}px",
|
||||
"lang_setting_animation":"Animation: {{set}}",
|
||||
"lang_setting_tag":"Tag TL:{{set}}",
|
||||
"lang_setting_boxConfirm":"Post box:{{set}}",
|
||||
"lang_setting_ul":"Native locale:{{set}}",
|
||||
"lang_setting_notf":"Native notification:{{set}}",
|
||||
"lang_setting_quote":"Quote format:{{set}}",
|
||||
"lang_setting_via":"Via:{{set}}",
|
||||
"lang_setting_mov":"Action buttons hiding:{{set}}",
|
||||
"lang_setting_setasread":"Notification markers:{{set}}",
|
||||
"lang_setting_main":"Default account:{{set}}",
|
||||
"lang_setting_sec":"Secondary toot button:{{set}}",
|
||||
"lang_setting_ksref":"Keyboard shortcuts are refreshed.",
|
||||
"lang_setting_nomuting":"No client is muted.",
|
||||
"lang_setting_notftest":" Notification test ",
|
||||
"lang_setting_notftestprof":"Your icon is shown.",
|
||||
"lang_setting_exportwarn":"Only important data will be exported. You must keep this data secure.",
|
||||
"lang_setting_importwarn":"All data will be deleted.",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
"lang_misskeyparse_tagnostr": "No streaming API on Tag TLs",
|
||||
"lang_misskeyparse_listnostr": "No streaming API on List TLs",
|
||||
"lang_misskeyparse_home": "Home",
|
||||
"lang_misskeyparse_followers": "Follower",
|
||||
"lang_misskeyparse_specified": "Specified User",
|
||||
"lang_misskeyparse_qt": "Misskey renote(quote) mode:Ctrl+Shift+Enter to clear",
|
||||
"lang_misskeyparse_renoted": " renoted your following post.",
|
||||
"lang_misskeyparse_quoted": " quoted your following post.",
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
//setting
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
"lang_setting_cws": "Always CW on:{{set}}",
|
||||
"lang_setting_rp": "Reply counter:{{set}}",
|
||||
"lang_setting_vis": "Default visibility:{{set}}",
|
||||
"lang_setting_popup": "Popup notification:{{set}}",
|
||||
"lang_setting_off": "Off",
|
||||
"lang_setting_s": "s",
|
||||
"lang_setting_box": "Default toot box action:{{set}}",
|
||||
"lang_setting_gif": "GIF:{{set}}",
|
||||
"lang_setting_selt": "Auto fold:{{set1}} lines and above, {{set2}} letters and above",
|
||||
"lang_setting_autocw": "Auto CW:{{set1}} lines and above, {{set2}} letters and above",
|
||||
"lang_setting_width": "Minimam width:{{set}}",
|
||||
"lang_setting_fixwidth": "TweetDeck fixed width:{{set}}px",
|
||||
"lang_setting_img": "After posting an image:{{set}}",
|
||||
"lang_setting_font": "Fonts:{{set}}",
|
||||
"lang_setting_default": "default font",
|
||||
"lang_setting_size": "Font size:{{set}}px",
|
||||
"lang_setting_imgheight": "Image height:{{set}}px",
|
||||
"lang_setting_ticker": "#InstanceTicker:{{set}}px",
|
||||
"lang_setting_animation": "Animation: {{set}}",
|
||||
"lang_setting_tag": "Tag TL:{{set}}",
|
||||
"lang_setting_boxConfirm": "Post box:{{set}}",
|
||||
"lang_setting_ul": "Native locale:{{set}}",
|
||||
"lang_setting_notf": "Native notification:{{set}}",
|
||||
"lang_setting_quote": "Quote format:{{set}}",
|
||||
"lang_setting_via": "Via:{{set}}",
|
||||
"lang_setting_mov": "Action buttons hiding:{{set}}",
|
||||
"lang_setting_setasread": "Notification markers:{{set}}",
|
||||
"lang_setting_main": "Default account:{{set}}",
|
||||
"lang_setting_sec": "Secondary toot button:{{set}}",
|
||||
"lang_setting_ksref": "Keyboard shortcuts are refreshed.",
|
||||
"lang_setting_nomuting": "No client is muted.",
|
||||
"lang_setting_notftest": " Notification test ",
|
||||
"lang_setting_notftestprof": "Your icon is shown.",
|
||||
"lang_setting_exportwarn": "Only important data will be exported. You must keep this data secure.",
|
||||
"lang_setting_importwarn": "All data will be deleted.",
|
||||
}
|
||||
@@ -1,246 +1,260 @@
|
||||
//commonError
|
||||
var lang={
|
||||
"language":"ja",
|
||||
"lang_toot":"トゥート",
|
||||
"lang_there":"あり",
|
||||
"lang_nothing":"なし",
|
||||
"lang_yesno":"はい",
|
||||
"lang_no":"いいえ",
|
||||
"lang_progress":"処理中",
|
||||
"lang_edit":"編集",
|
||||
"lang_del":"削除",
|
||||
"lang_add":"追加",
|
||||
"lang_fatalerroroccured":"エラーが発生しました。しばらく待ってから再起動してください。",
|
||||
"lang_speech":"Google 日本語",
|
||||
//language.html
|
||||
"lang_lang":"言語",
|
||||
"lang_langlocale":"日本語",
|
||||
"lang_back":"戻る",
|
||||
"lang_set":"設定",
|
||||
"lang_langadd":"<a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHub</a>から翻訳に参加できます。英語の校正(緊急)や他言語に翻訳していただける方を募集しております。",
|
||||
//common/version.js
|
||||
"lang_version_usever":"お使いのバージョン{{ver}}は最新です。",
|
||||
"lang_version_skipver":"アップデートはスキップされました。",
|
||||
"lang_version_platform":"このソフトウェアはMicrosoft Storeからダウンロードされましたか?(「はい」を選択すると次回からアップデート通知を無視します。)",
|
||||
"lang_version_platform_linux":"このソフトウェアはSnapcraft(snapd)からインストールしましたか?(「はい」を選択すると次回からアップデート通知を無視します。)",
|
||||
"lang_version_platform_mac":"このソフトウェアはHomebrew Caskからインストールしましたか?(「はい」を選択すると次回からアップデート通知を無視します。)",
|
||||
//login
|
||||
//login/login.js
|
||||
"lang_login_noauth":"認証せずに見る",
|
||||
//login/manager.js
|
||||
"lang_manager_info":"インスタンス情報",
|
||||
"lang_manager_refresh":"情報更新",
|
||||
"lang_manager_delete":"削除",
|
||||
"lang_manager_color":"アカウントカラーを選択",
|
||||
"lang_manager_confirm":"を削除します。",
|
||||
"lang_manager_mainAcct":"メインアカウントを設定しました。",
|
||||
"lang_manager_def":"既定",
|
||||
"lang_manager_none":"なし",
|
||||
"lang_manager_godev":"MisskeyのDevセンターに移動します。同時に開かれるドキュメントを参考にログインしてください。",
|
||||
//post/bb-md.js
|
||||
"lang_bbmd_misskey":"TheDeskにおけるMisskeyでは、@を返信として扱いますが、全ての@は消去され別パラメータに入力されます。また、「未収載」を「ホーム」として扱います。",
|
||||
//post/emoji.js
|
||||
"lang_emoji_get":"絵文字リストを取得",
|
||||
"lang_emoji_custom":"カスタム絵文字",
|
||||
"lang_defaultemojis_text":"{{cat}}の絵文字",
|
||||
//post/img.js
|
||||
"lang_postimg_previewdis":"プレビューできません。",
|
||||
"lang_postimg_aftupload":"アップロード後はアカウントを切り替えられません。",
|
||||
"lang_postimg_delete":"この画像を削除します",
|
||||
//post/post.js
|
||||
"lang_post_tagTL":"デフォルトタグが挿入されていません。このまま投稿するとローカルには表示されません。",
|
||||
"lang_post_tagVis":"公開範囲が「公開」以外だと、タグTLに表示されません。(一部インスタンスを除く)",
|
||||
"lang_post_cwtitle":"長文投稿の警告",
|
||||
"lang_post_cwtxt":"指定文字数、行数を超えるトゥートを行おうとしています。\n自動CWのタイトル:",
|
||||
"lang_post_btn1":"キャンセル(投稿しない)",
|
||||
"lang_post_btn2":"自動でCWを付ける",
|
||||
"lang_post_btn3":"そのまま投稿",
|
||||
//post/status.js
|
||||
"lang_status_favWarn":"お気に入り登録しました。インスタンスが違うときは時間がかかる場合があります。",
|
||||
"lang_status_btWarn":"ブーストしました。インスタンスが違うときは時間がかかる場合があります。",
|
||||
"lang_status_follow":"フォロー",
|
||||
"lang_status_unfollow":"フォロー解除",
|
||||
"lang_status_block":"ブロック",
|
||||
"lang_status_unblock":"ブロック解除",
|
||||
"lang_status_mute":"ミュート",
|
||||
"lang_status_unmute":"ミュート解除",
|
||||
"lang_status_redraft":"削除して再編集しますか?そのトゥートの全てのデータがリセットされます。この機能はベータ版です。画像は~v2.4.1で破棄されます。",
|
||||
"lang_status_emphas":"を強調します。リロードしてください。",
|
||||
"lang_status_unemphas":"を強調解除します。リロードしてください。",
|
||||
"lang_status_unendorse":"紹介解除",
|
||||
"lang_status_endorse":"プロフで紹介する",
|
||||
//post/suggest.js
|
||||
"lang_suggest_nodata":"サジェストのために絵文字リストを取得してください。",
|
||||
//post/use-txtbox.js
|
||||
"lang_usetxtbox_reply":"返信モードです。クリアするときはCtrl+Shift+Cを押してください。",
|
||||
//tl/card.js
|
||||
"lang_cards_check":"チェック",
|
||||
"lang_cards_pip":"ながら観モード",
|
||||
//tl/details.js
|
||||
"lang_details_nodata":"データなし",
|
||||
"lang_details_filtered":"フィルターされました。",
|
||||
"lang_details_embed":"埋め込みHTMLがコピーされました。",
|
||||
"lang_details_url":"トゥートURLがコピーされました。",
|
||||
"lang_details_txt":"トゥート本文がコピーされました。",
|
||||
//tl/filter.js
|
||||
"lang_filter_nodata":"フィルターはありません",
|
||||
"lang_filter_errordegree":"適応範囲を最低一つ以上チェックしてください。",
|
||||
//tl/list.js
|
||||
"lang_list_nodata":"リストはありません",
|
||||
"lang_list_show":"表示",
|
||||
"lang_list_users":"ユーザー一覧",
|
||||
"lang_list_nouser":"ユーザーはいません",
|
||||
"lang_list_add":"リストに追加",
|
||||
"lang_list_remove":"リストから削除",
|
||||
//tl/notification.js
|
||||
"lang_notf_new":"件の新しい通知",
|
||||
//tl/speech.js
|
||||
"lang_speech_refresh":"音声読み上げ設定を更新しました。",
|
||||
//tl/src.js
|
||||
"lang_src_ts":"時系列",
|
||||
"lang_src_people":"人がトゥート",
|
||||
//tl/tag.js
|
||||
"lang_tags_always":"常に",
|
||||
"lang_tags_realtime":"実況",
|
||||
"lang_tags_tagunpin":"{{tag}}をよく使うタグから削除",
|
||||
"lang_tags_unrealtime":"実況解除",
|
||||
"lang_tags_tagwarn":"{{tag}}がない場合自動で補完されます。",
|
||||
//tl/tl.js
|
||||
"lang_tl_media":"メディア",
|
||||
"lang_tl_reconnect":"Streamingに再接続しました",
|
||||
//ui/layout.js
|
||||
"lang_layout_gotop":"一番上へ。アイコンが赤のときはストリーミングに接続できていません。F5等で再読込をお試し下さい。",
|
||||
"lang_layout_thisacct":"このアカウントの{{notf}}",
|
||||
"lang_layout_delthis":"このカラムを削除",
|
||||
"lang_layout_setthis":"このカラムの設定",
|
||||
"lang_layout_mediafil":"メディアフィルター",
|
||||
"lang_layout_linkana":"リンク解析",
|
||||
"lang_layout_linkanades":"リンクの解析を切り替え",
|
||||
"lang_layout_tts":"読み上げ",
|
||||
"lang_layout_reconnect":"ストリーミング再接続",
|
||||
"lang_layout_headercolor":"TLヘッダーカラー",
|
||||
"lang_layout_nodata":"[ここにトゥートはありません。]<br>F5/⌘+Rで再読込できます。",
|
||||
"lang_layout_dm":"ダイレクトメッセージ",
|
||||
"lang_layout_webviewmode":"WebView優先",
|
||||
"lang_excluded":"除外する通知",
|
||||
"lang_layout_excludingbt":"BT表示(OFF/BT除外/BTのみ)",
|
||||
"lang_layout_leftFold":"左へ重ねる",
|
||||
"lang_layout_leftUnfold":"右へ出す",
|
||||
//ui/sort.js
|
||||
"lang_sort_gothis":"このカラムへ",
|
||||
"lang_sort_remthis":"このカラムを削除",
|
||||
//ui/spotify.js
|
||||
"lang_spotify_img":"アルバムアートワークを添付します。",
|
||||
"lang_spotify_imgno":"アルバムアートワークを添付しません。",
|
||||
"lang_spotify_acct":"アカウント連携をしてください。",
|
||||
"lang_spotify_np":"NowPlaying文書を更新しました。",
|
||||
"lang_setting_npprovide":"NowPlayingのソースを{{set}}に設定しました。",
|
||||
//userdata/his-data.js
|
||||
"lang_hisdata_frcreq":"Mastodon 2.4.3~が必要です",
|
||||
"lang_hisdata_frcwarn":"非フォローだけど絡みがある時に表示されます。",
|
||||
"lang_hisdata_taketime":"30秒から数分かかります",
|
||||
"lang_hisdata_notonmisskey":"このシステムはMisskeyにはありません。",
|
||||
//userdata/showOnTL.js
|
||||
"lang_showontl_movetxt":"このアカウントは移行しています",
|
||||
"lang_showontl_movebtn":"移行先を見る",
|
||||
"lang_showontl_botacct":"botアカウント",
|
||||
"lang_showontl_followed":"フォローされています",
|
||||
"lang_showontl_notf":"通知",
|
||||
"lang_showontl_domain":"ドメイン",
|
||||
"lang_showontl_listwarn":"リストに追加するためにはフォローが必要です。",
|
||||
//parse
|
||||
"lang_parse_mentioned":"が返信しました",
|
||||
"lang_parse_faved":"がお気に入り登録しました",
|
||||
"lang_parse_bted":"がブーストしました",
|
||||
"lang_parse_btedsimple":"がブースト",
|
||||
"lang_parse_notftime":"通知された時間",
|
||||
"lang_parse_cwshow":"見る",
|
||||
"lang_parse_fulltext":"以下全文",
|
||||
"lang_parse_autofold":"自動折り畳み",
|
||||
"lang_parse_more":"続き...",
|
||||
"lang_parse_url":"URL解析",
|
||||
"lang_parse_tagTL":"{{tag}}のタイムライン",
|
||||
"lang_parse_tagtoot":"{{tag}}でトゥート",
|
||||
"lang_parse_tagpin":"{{tag}}をよく使うタグへ",
|
||||
"lang_parse_public":"公開",
|
||||
"lang_parse_unlisted":"未収載",
|
||||
"lang_parse_private":"非公開",
|
||||
"lang_parse_direct":"ダイレクト",
|
||||
"lang_parse_clickcopy":"クリックして本文をコピー",
|
||||
"lang_parse_clickcopyurl":"クリックしてトゥートURLをコピー",
|
||||
"lang_parse_trans":"このトゥートを日本語に翻訳",
|
||||
"lang_parse_replyto":"このトゥートに返信",
|
||||
"lang_parse_bt":"このトゥートをブースト",
|
||||
"lang_parse_fav":"このトゥートをお気に入り登録",
|
||||
"lang_parse_quote":"このトゥートを引用",
|
||||
"lang_parse_del":"このトゥートを削除",
|
||||
"lang_parse_pin":"このトゥートをピン留め",
|
||||
"lang_parse_det":"詳細(メインアカウント経由)",
|
||||
"lang_parse_redraft":"このトゥートを削除して再編集",
|
||||
"lang_parse_followed":"フォローされました。",
|
||||
"lang_parse_clientop":"クライアント処理",
|
||||
"lang_parse_clienttxt":"に対する処理を選択してください。",
|
||||
"lang_parse_clientno":"何もしない",
|
||||
"lang_parse_clientemp":"強調表示/解除",
|
||||
"lang_parse_clientmute":"ミュート",
|
||||
"lang_parse_mute":"ミュートします。設定から解除できます。",
|
||||
"lang_parse_voted":"投票済みです",
|
||||
"lang_parse_vote":"投票",
|
||||
"lang_parse_unvoted":"結果だけ見る",
|
||||
"lang_parse_endedvote":"終了済み",
|
||||
"lang_parse_thread":"会話を表示",
|
||||
//commonError
|
||||
var lang = {
|
||||
"language": "ja",
|
||||
"lang_toot": "トゥート",
|
||||
"lang_there": "あり",
|
||||
"lang_nothing": "なし",
|
||||
"lang_yesno": "はい",
|
||||
"lang_no": "いいえ",
|
||||
"lang_progress": "処理中",
|
||||
"lang_edit": "編集",
|
||||
"lang_del": "削除",
|
||||
"lang_add": "追加",
|
||||
"lang_fatalerroroccured": "エラーが発生しました。しばらく待ってから再起動してください。",
|
||||
"lang_speech": "Google 日本語",
|
||||
//language.html
|
||||
"lang_lang": "言語",
|
||||
"lang_langlocale": "日本語",
|
||||
"lang_back": "戻る",
|
||||
"lang_set": "設定",
|
||||
"lang_langadd": "<a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHub</a>から翻訳に参加できます。英語の校正(緊急)や他言語に翻訳していただける方を募集しております。",
|
||||
//common/version.js
|
||||
"lang_version_usever": "お使いのバージョン{{ver}}は最新です。",
|
||||
"lang_version_skipver": "アップデートはスキップされました。",
|
||||
"lang_version_platform": "このソフトウェアはMicrosoft Storeからダウンロードされましたか?通常はホームページからインストールするため「いいえ」を選んでください。「はい」を選ぶとMicrosoft Storeからアップデートが提供され、アップデートの通知を出しません。",
|
||||
"lang_version_platform_linux": "このソフトウェアはSnapcraft(snapd)からインストールしましたか?通常はホームページからインストールするため「いいえ」を選んでください。「はい」を選ぶとSnapcraftからアップデートが提供され、アップデートの通知を出しません。",
|
||||
"lang_version_platform_mac": "このソフトウェアはHomebrew Caskからインストールしましたか?通常はホームページからインストールするため「いいえ」を選んでください。「はい」を選ぶとアップデートの通知を出しません。",
|
||||
//login
|
||||
//login/login.js
|
||||
"lang_login_noauth": "認証せずに見る",
|
||||
//login/manager.js
|
||||
"lang_manager_info": "インスタンス情報",
|
||||
"lang_manager_refresh": "情報更新",
|
||||
"lang_manager_delete": "削除",
|
||||
"lang_manager_color": "アカウントカラーを選択",
|
||||
"lang_manager_confirm": "を削除します。",
|
||||
"lang_manager_mainAcct": "メインアカウントを設定しました。",
|
||||
"lang_manager_def": "既定",
|
||||
"lang_manager_none": "なし",
|
||||
"lang_manager_godev": "MisskeyのDevセンターに移動します。同時に開かれるドキュメントを参考にログインしてください。",
|
||||
"lang_manager_logout": "ログアウト",
|
||||
//post/bb-md.js
|
||||
"lang_bbmd_misskey": "TheDeskにおけるMisskeyでは、@を返信として扱いますが、全ての@は消去され別パラメータに入力されます。また、「未収載」を「ホーム」として扱います。",
|
||||
//post/emoji.js
|
||||
"lang_emoji_get": "絵文字リストを取得",
|
||||
"lang_emoji_custom": "カスタム絵文字",
|
||||
"lang_defaultemojis_text": "{{cat}}の絵文字",
|
||||
//post/img.js
|
||||
"lang_postimg_previewdis": "プレビューできません。",
|
||||
"lang_postimg_aftupload": "アップロード後はアカウントを切り替えられません。",
|
||||
"lang_postimg_failupload": "アップロードに失敗しました。",
|
||||
"lang_postimg_delete": "この画像を削除します",
|
||||
//post/post.js
|
||||
"lang_post_tagTL": "デフォルトタグが挿入されていません。このまま投稿するとローカルには表示されません。",
|
||||
"lang_post_tagVis": "公開範囲が「公開」以外だと、タグTLに表示されません。(一部インスタンスを除く)",
|
||||
"lang_post_cwtitle": "長文投稿の警告",
|
||||
"lang_post_cwtxt": "指定文字数、行数を超えるトゥートを行おうとしています。\n自動CWのタイトル:",
|
||||
"lang_post_btn1": "キャンセル(投稿しない)",
|
||||
"lang_post_btn2": "自動でCWを付ける",
|
||||
"lang_post_btn3": "そのまま投稿",
|
||||
//post/status.js
|
||||
"lang_status_favWarn": "お気に入り登録しました。インスタンスが違うときは時間がかかる場合があります。",
|
||||
"lang_status_btWarn": "ブーストしました。インスタンスが違うときは時間がかかる場合があります。",
|
||||
"lang_status_follow": "フォロー",
|
||||
"lang_status_unfollow": "フォロー解除",
|
||||
"lang_status_block": "ブロック",
|
||||
"lang_status_unblock": "ブロック解除",
|
||||
"lang_status_mute": "ミュート",
|
||||
"lang_status_unmute": "ミュート解除",
|
||||
"lang_status_redraftTitle": "削除して再編集",
|
||||
"lang_status_redraft": "削除して再編集しますか?そのトゥートの全てのデータがリセットされます。この機能はベータ版です。画像は~v2.4.1で破棄されます。",
|
||||
"lang_status_emphas": "を強調します。リロードしてください。",
|
||||
"lang_status_unemphas": "を強調解除します。リロードしてください。",
|
||||
"lang_status_unendorse": "紹介解除",
|
||||
"lang_status_endorse": "プロフで紹介する",
|
||||
//post/suggest.js
|
||||
"lang_suggest_nodata": "サジェストのために絵文字リストを取得してください。",
|
||||
//post/use-txtbox.js
|
||||
"lang_usetxtbox_reply": "返信モードです。クリアするときはCtrl+Shift+Cを押してください。",
|
||||
//tl/card.js
|
||||
"lang_cards_check": "チェック",
|
||||
"lang_cards_pip": "ながら観モード",
|
||||
//tl/details.js
|
||||
"lang_details_nodata": "データなし",
|
||||
"lang_details_filtered": "フィルターされました。",
|
||||
"lang_details_embed": "埋め込みHTMLがコピーされました。",
|
||||
"lang_details_url": "トゥートURLがコピーされました。",
|
||||
"lang_details_txt": "トゥート本文がコピーされました。",
|
||||
//tl/filter.js
|
||||
"lang_filter_nodata": "フィルターはありません",
|
||||
"lang_filter_errordegree": "適応範囲を最低一つ以上チェックしてください。",
|
||||
//tl/list.js
|
||||
"lang_list_nodata": "リストはありません",
|
||||
"lang_list_show": "表示",
|
||||
"lang_list_users": "ユーザー一覧",
|
||||
"lang_list_nouser": "ユーザーはいません",
|
||||
"lang_list_add": "リストに追加",
|
||||
"lang_list_add_misskey": "(重複追加の可能性があります)",
|
||||
"lang_list_remove": "リストから削除",
|
||||
//tl/notification.js
|
||||
"lang_notf_new": "件の新しい通知",
|
||||
//tl/speech.js
|
||||
"lang_speech_refresh": "音声読み上げ設定を更新しました。",
|
||||
//tl/src.js
|
||||
"lang_src_ts": "時系列",
|
||||
"lang_src_people": "人がトゥート",
|
||||
//tl/tag.js
|
||||
"lang_tags_always": "常に",
|
||||
"lang_tags_realtime": "実況",
|
||||
"lang_tags_tagunpin": "{{tag}}をよく使うタグから削除",
|
||||
"lang_tags_unrealtime": "実況解除",
|
||||
"lang_tags_tagwarn": "{{tag}}がない場合自動で補完されます。",
|
||||
//tl/tl.js
|
||||
"lang_tl_media": "メディア",
|
||||
"lang_tl_reconnect": "Streamingに再接続しました",
|
||||
//ui/img.js
|
||||
"lang_img_DLDone": "ダウンロード先:",
|
||||
//ui/layout.js
|
||||
"lang_layout_gotop": "一番上へ。アイコンが赤のときはストリーミングに接続できていません。F5等で再読込をお試し下さい。",
|
||||
"lang_layout_thisacct": "このアカウントの{{notf}}",
|
||||
"lang_layout_delthis": "このカラムを削除",
|
||||
"lang_layout_setthis": "このカラムの設定",
|
||||
"lang_layout_mediafil": "メディアフィルター",
|
||||
"lang_layout_linkana": "リンク解析",
|
||||
"lang_layout_linkanades": "リンクの解析を切り替え",
|
||||
"lang_layout_tts": "読み上げ",
|
||||
"lang_layout_reconnect": "カラム再読込",
|
||||
"lang_layout_headercolor": "TLヘッダーカラー",
|
||||
"lang_layout_nodata": "[ここにトゥートはありません。]<br>F5/⌘+Rで再読込できます。",
|
||||
"lang_layout_dm": "ダイレクトメッセージ",
|
||||
"lang_layout_webviewmode": "WebView優先",
|
||||
"lang_excluded": "除外する通知",
|
||||
"lang_layout_excludingbt": "BT表示(OFF/BT除外/BTのみ)",
|
||||
"lang_layout_leftFold": "左へ重ねる",
|
||||
"lang_layout_leftUnfold": "右へ出す",
|
||||
"lang_layout_deleteColumn": "カラム削除",
|
||||
"lang_layout_deleteColumnDesc": "カラムを削除しますか?",
|
||||
//ui/sort.js
|
||||
"lang_sort_gothis": "このカラムへ",
|
||||
"lang_sort_remthis": "このカラムを削除",
|
||||
//ui/spotify.js
|
||||
"lang_spotify_img": "アルバムアートワークを添付します。",
|
||||
"lang_spotify_imgno": "アルバムアートワークを添付しません。",
|
||||
"lang_spotify_acct": "アカウント連携をしてください。",
|
||||
"lang_spotify_np": "NowPlaying文書を更新しました。",
|
||||
"lang_setting_npprovide": "NowPlayingのソースを{{set}}に設定しました。",
|
||||
//userdata/his-data.js
|
||||
"lang_hisdata_frcreq": "Mastodon 2.4.3~が必要です",
|
||||
"lang_hisdata_frcwarn": "非フォローだけど絡みがある時に表示されます。",
|
||||
"lang_hisdata_taketime": "30秒から数分かかります",
|
||||
"lang_hisdata_notonmisskey": "このシステムはMisskeyにはありません。",
|
||||
"lang_hisdata_key": "このユーザーの信頼性は{{set}}によって示されています",
|
||||
//userdata/showOnTL.js
|
||||
"lang_showontl_movetxt": "このアカウントは移行しています",
|
||||
"lang_showontl_movebtn": "移行先を見る",
|
||||
"lang_showontl_botacct": "botアカウント",
|
||||
"lang_showontl_followed": "フォローされています",
|
||||
"lang_showontl_notf": "通知",
|
||||
"lang_showontl_domain": "ドメイン",
|
||||
"lang_showontl_listwarn": "リストに追加するためにはフォローが必要です。",
|
||||
"lang_showontl_verified": "このユーザーの所持するWebサイトであると証明されています。",
|
||||
//parse
|
||||
"lang_parse_mentioned": "が返信しました",
|
||||
"lang_parse_faved": "がお気に入り登録しました",
|
||||
"lang_parse_bted": "がブーストしました",
|
||||
"lang_parse_btedsimple": "がブースト",
|
||||
"lang_parse_polled": "のアンケート",
|
||||
"lang_parse_notftime": "通知された時間",
|
||||
"lang_parse_cwshow": "見る",
|
||||
"lang_parse_fulltext": "以下全文",
|
||||
"lang_parse_autofold": "自動折り畳み",
|
||||
"lang_parse_more": "続き...",
|
||||
"lang_parse_url": "URL解析",
|
||||
"lang_parse_tagTL": "{{tag}}のタイムライン",
|
||||
"lang_parse_tagtoot": "{{tag}}でトゥート",
|
||||
"lang_parse_tagpin": "{{tag}}をよく使うタグへ",
|
||||
"lang_parse_public": "公開",
|
||||
"lang_parse_unlisted": "未収載",
|
||||
"lang_parse_private": "非公開",
|
||||
"lang_parse_direct": "ダイレクト",
|
||||
"lang_parse_clickcopy": "クリックして本文をコピー",
|
||||
"lang_parse_clickcopyurl": "クリックしてトゥートURLをコピー",
|
||||
"lang_parse_trans": "このトゥートを日本語に翻訳",
|
||||
"lang_parse_replyto": "このトゥートに返信",
|
||||
"lang_parse_bt": "このトゥートをブースト",
|
||||
"lang_parse_fav": "このトゥートをお気に入り登録",
|
||||
"lang_parse_quote": "このトゥートを引用",
|
||||
"lang_parse_del": "このトゥートを削除",
|
||||
"lang_parse_pin": "このトゥートをピン留め",
|
||||
"lang_parse_det": "詳細(メインアカウント経由)",
|
||||
"lang_parse_redraft": "このトゥートを削除して再編集",
|
||||
"lang_parse_followed": "フォローされました。",
|
||||
"lang_parse_clientop": "クライアント操作",
|
||||
"lang_parse_clienttxt": " に対する処理を選択してください。",
|
||||
"lang_parse_clientno": "何もしない",
|
||||
"lang_parse_clientemp": "強調表示/解除",
|
||||
"lang_parse_clientmute": "ミュート",
|
||||
"lang_parse_mute": "ミュートします。設定から解除できます。",
|
||||
"lang_parse_voted": "投票済みです",
|
||||
"lang_parse_vote": "投票",
|
||||
"lang_parse_unvoted": "結果だけ見る",
|
||||
"lang_parse_endedvote": "終了済み",
|
||||
"lang_parse_thread": "会話を表示",
|
||||
"lang_parse_unknown": "添付ファイル",
|
||||
"lang_parse_nsfw": "閲覧注意",
|
||||
"lang_parse_notffilter": "このユーザーの通知のみを表示",
|
||||
//misskey
|
||||
"lang_misskeyparse_renote":"再投稿",
|
||||
"lang_misskeyparse_renoteqt":"引用",
|
||||
"lang_misskeyparse_reaction":"リアクション",
|
||||
"lang_misskeyparse_tagnostr":"タグTLはストリーミング非対応です。",
|
||||
"lang_misskeyparse_listnostr":"リストTLはストリーミング非対応です。",
|
||||
"lang_misskeyparse_home":"ホーム",
|
||||
"lang_misskeyparse_followers":"フォロワー",
|
||||
"lang_misskeyparse_specified":"ユーザー指定",
|
||||
"lang_misskeyparse_qt":"MisskeyのRenote(引用モード)中:Ctrl+Shift+Cでクリア",
|
||||
"lang_misskeyparse_renoted":"がRepost",
|
||||
"lang_misskeyparse_quoted":"が引用",
|
||||
"lang_misskeyparse_reacted":"がリアクション",
|
||||
//setting
|
||||
"lang_setting_time":"時間設定を{{set}}に設定しました。",
|
||||
"lang_setting_theme":"テーマ設定を{{set}}に設定しました。",
|
||||
"lang_setting_nsfw":"画像表示設定を{{set}}に設定しました。",
|
||||
"lang_setting_cw":"テキスト表示設定を{{set}}に設定しました。",
|
||||
"lang_setting_cwtext":"デフォルトの警告文を「{{set}}」に設定しました。",
|
||||
"lang_setting_cws":"標準でCW:{{set}}",
|
||||
"lang_setting_rp":"リプライ数表示:{{set}}",
|
||||
"lang_setting_vis":"デフォルトの公開設定を{{set}}に設定しました。",
|
||||
"lang_setting_popup":"ポップアップお知らせを{{set}}に設定しました。",
|
||||
"lang_setting_off":"オフ",
|
||||
"lang_setting_s":"秒",
|
||||
"lang_setting_box":"デフォルトでのボックスの挙動を{{set}}に設定しました。",
|
||||
"lang_setting_gif":"アイコンアニメーション再生を{{set}}に設定しました。",
|
||||
"lang_setting_selt":"{{set1}}行以上または{{set2}}文字以上でテキストを隠します。",
|
||||
"lang_setting_autocw":"{{set1}}行以上または{{set2}}文字以上で警告を表示します。",
|
||||
"lang_setting_width":"横幅最低を{{set}}pxに設定しました。",
|
||||
"lang_setting_fixwidth":"TweetDeckの横幅を{{set}}pxに設定しました。",
|
||||
"lang_setting_img":"画像投稿後の設定を「{{set}}」に設定しました。",
|
||||
"lang_setting_font":"フォントを{{set}}に設定しました。",
|
||||
"lang_setting_default":"デフォルト",
|
||||
"lang_setting_size":"フォントサイズを{{set}}pxに設定しました。",
|
||||
"lang_setting_imgheight":"画像高さを{{set}}pxに設定しました。",
|
||||
"lang_setting_ticker":"#InstanceTicker使用を{{set}}に設定しました。",
|
||||
"lang_setting_animation":"アニメーションを{{set}}に設定しました。",
|
||||
"lang_setting_tag":"タグの取得範囲を「{{set}}」に設定しました。",
|
||||
"lang_setting_boxConfirm":"投稿ボックスを{{set}}",
|
||||
"lang_setting_ul":"独自ロケール設定を{{set}}に設定しました。",
|
||||
"lang_setting_notf":"ネイティブ通知を{{set}}に設定しました。",
|
||||
"lang_setting_quote":"引用形式を{{set}}に設定しました。",
|
||||
"lang_setting_via":"via表示を{{set}}に設定しました。",
|
||||
"lang_setting_mov":"アクションボタン非表示を{{set}}に設定しました。",
|
||||
"lang_setting_setasread":"通知カラム存在時新着非表示を{{set}}に設定しました。",
|
||||
"lang_setting_main":"起動時・投稿時のアカウントを{{set}}に設定しました。",
|
||||
"lang_setting_sec":"セカンダリートゥートボタン:{{set}}",
|
||||
"lang_setting_ksref":"キーボードショートカットが更新されました。",
|
||||
"lang_setting_nomuting":"ミュートしているクライアントはありません。",
|
||||
"lang_setting_notftest":"通知テスト",
|
||||
"lang_setting_notftestprof":"アイコンはあなたのアカウントのものです。",
|
||||
"lang_setting_exportwarn":"重要なデータのみエクスポートされます。エクスポートされたデータは外部に公開しないでください。全ての認証データが含まれています。",
|
||||
"lang_setting_importwarn":"全てのデータがリセットされます。"
|
||||
"lang_misskeyparse_renote": "再投稿",
|
||||
"lang_misskeyparse_renoteqt": "引用",
|
||||
"lang_misskeyparse_reaction": "リアクション",
|
||||
"lang_misskeyparse_tagnostr": "タグTLはストリーミング非対応です。",
|
||||
"lang_misskeyparse_listnostr": "リストTLはストリーミング非対応です。",
|
||||
"lang_misskeyparse_home": "ホーム",
|
||||
"lang_misskeyparse_followers": "フォロワー",
|
||||
"lang_misskeyparse_specified": "ユーザー指定",
|
||||
"lang_misskeyparse_qt": "MisskeyのRenote(引用モード)中:Ctrl+Shift+Cでクリア",
|
||||
"lang_misskeyparse_renoted": "がRepost",
|
||||
"lang_misskeyparse_quoted": "が引用",
|
||||
"lang_misskeyparse_reacted": "がリアクション",
|
||||
//setting
|
||||
"lang_setting_time": "時間設定を{{set}}に設定しました。",
|
||||
"lang_setting_theme": "テーマ設定を{{set}}に設定しました。",
|
||||
"lang_setting_nsfw": "画像表示設定を{{set}}に設定しました。",
|
||||
"lang_setting_cw": "テキスト表示設定を{{set}}に設定しました。",
|
||||
"lang_setting_cwtext": "デフォルトの警告文を「{{set}}」に設定しました。",
|
||||
"lang_setting_cws": "標準でCW:{{set}}",
|
||||
"lang_setting_rp": "リプライ数表示:{{set}}",
|
||||
"lang_setting_vis": "デフォルトの公開設定を{{set}}に設定しました。",
|
||||
"lang_setting_popup": "ポップアップお知らせを{{set}}に設定しました。",
|
||||
"lang_setting_off": "オフ",
|
||||
"lang_setting_s": "秒",
|
||||
"lang_setting_box": "デフォルトでのボックスの挙動を{{set}}に設定しました。",
|
||||
"lang_setting_gif": "アイコンアニメーション再生を{{set}}に設定しました。",
|
||||
"lang_setting_selt": "{{set1}}行以上または{{set2}}文字以上でテキストを隠します。",
|
||||
"lang_setting_autocw": "{{set1}}行以上または{{set2}}文字以上で警告を表示します。",
|
||||
"lang_setting_width": "横幅最低を{{set}}pxに設定しました。",
|
||||
"lang_setting_fixwidth": "TweetDeckの横幅を{{set}}pxに設定しました。",
|
||||
"lang_setting_img": "画像投稿後の設定を「{{set}}」に設定しました。",
|
||||
"lang_setting_font": "フォントを{{set}}に設定しました。",
|
||||
"lang_setting_default": "デフォルト",
|
||||
"lang_setting_size": "フォントサイズを{{set}}pxに設定しました。",
|
||||
"lang_setting_imgheight": "画像高さを{{set}}pxに設定しました。",
|
||||
"lang_setting_ticker": "#InstanceTicker使用を{{set}}に設定しました。",
|
||||
"lang_setting_animation": "アニメーションを{{set}}に設定しました。",
|
||||
"lang_setting_tag": "タグの取得範囲を「{{set}}」に設定しました。",
|
||||
"lang_setting_boxConfirm": "投稿ボックスを{{set}}",
|
||||
"lang_setting_ul": "独自ロケール設定を{{set}}に設定しました。",
|
||||
"lang_setting_notf": "ネイティブ通知を{{set}}に設定しました。",
|
||||
"lang_setting_quote": "引用形式を{{set}}に設定しました。",
|
||||
"lang_setting_via": "via表示を{{set}}に設定しました。",
|
||||
"lang_setting_mov": "アクションボタン非表示を{{set}}に設定しました。",
|
||||
"lang_setting_setasread": "通知カラム存在時新着非表示を{{set}}に設定しました。",
|
||||
"lang_setting_main": "起動時・投稿時のアカウントを{{set}}に設定しました。",
|
||||
"lang_setting_sec": "セカンダリートゥートボタン:{{set}}",
|
||||
"lang_setting_ksref": "キーボードショートカットが更新されました。",
|
||||
"lang_setting_nomuting": "ミュートしているクライアントはありません。",
|
||||
"lang_setting_notftest": "通知テスト",
|
||||
"lang_setting_notftestprof": "アイコンはあなたのアカウントのものです。",
|
||||
"lang_setting_exportwarn": "重要なデータのみエクスポートされます。エクスポートされたデータは外部に公開しないでください。全ての認証データが含まれています。",
|
||||
"lang_setting_importwarn": "全てのデータがリセットされます。"
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
var lang={
|
||||
var lang = {
|
||||
"language": "crwdns1960:0crwdne1960:0",
|
||||
"lang_toot": "crwdns1962:0crwdne1962:0",
|
||||
"lang_there": "crwdns1964:0crwdne1964:0",
|
||||
|
||||
@@ -1,110 +1,114 @@
|
||||
//インスタンスリスト
|
||||
var idata={
|
||||
"kirishima.cloud":"instance",
|
||||
"kirishima.cloud_name":"アスタルテ",
|
||||
"kirishima.cloud_letters":"6229",
|
||||
"kirishima.cloud_bbcode":"enabled",
|
||||
"kirishima.cloud_markdown":"enabled",
|
||||
"kirishima.cloud_glitch":"enabled",
|
||||
"kirishima.cloud_public":"パブリックタイムライン",
|
||||
"minohdon.jp":"instance",
|
||||
"minohdon.jp_name":"箕面丼",
|
||||
"minohdon.jp_letters":"500",
|
||||
"minohdon.jp_bbcode":"disabled",
|
||||
"minohdon.jp_markdown":"disabled",
|
||||
"minohdon.jp_glitch":"disabled",
|
||||
"knzk.me":"instance",
|
||||
"knzk.me_name":"神崎丼",
|
||||
"knzk.me_letters":"5000",
|
||||
"knzk.me_bbcode":"disabled",
|
||||
"knzk.me_markdown":"disabled",
|
||||
"knzk.me_glitch":"enabled",
|
||||
"mastodos.com":"instance",
|
||||
"mastodos.com_name":"マストどす",
|
||||
"mastodos.com_letters":"500",
|
||||
"mastodos.com_bbcode":"disabled",
|
||||
"mastodos.com_markdown":"disabled",
|
||||
"mastodos.com_glitch":"disabled",
|
||||
"dev.kirishima.cloud":"hidden",
|
||||
"dev.kirishima.cloud_name":"アスタルテ(Dev)",
|
||||
"dev.kirishima.cloud_letters":"6229",
|
||||
"dev.kirishima.cloud_bbcode":"enabled",
|
||||
"dev.kirishima.cloud_markdown":"enabled",
|
||||
"dev.kirishima.cloud_glitch":"enabled",
|
||||
"mstdn.y-zu.org":"instance",
|
||||
"mstdn.y-zu.org_name":"Yづドン!(502 BadGateway)",
|
||||
"mstdn.y-zu.org_letters":"500",
|
||||
"mstdn.y-zu.org_bbcode":"disabled",
|
||||
"mstdn.y-zu.org_markdown":"enabled",
|
||||
"mstdn.y-zu.org_glitch":"disabled",
|
||||
"imastodon.net":"instance",
|
||||
"imastodon.net_name":"im@stodon",
|
||||
"imastodon.net_letters":"500",
|
||||
"imastodon.net_bbcode":"disabled",
|
||||
"imastodon.net_markdown":"disabled",
|
||||
"imastodon.net_home":"オフィス",
|
||||
"imastodon.net_local":"楽屋",
|
||||
"imastodon.net_notification":"ホワイトボード",
|
||||
"imastodon.net_public":"ライブステージ",
|
||||
"imastodon.net_post":"あふぅ",
|
||||
"imastodon.net_fav":"の頭にティンときたようです",
|
||||
"imastodon.net_bt":":「わかるわ」",
|
||||
"imastodon.net_follow":"名刺をいただきました",
|
||||
"imastodon.net_glitch":"disabled",
|
||||
"mstdn.osaka":"instance",
|
||||
"mstdn.osaka_name":"大阪丼",
|
||||
"mstdn.osaka_letters":"500",
|
||||
"mstdn.osaka_bbcode":"disabled",
|
||||
"mstdn.osaka_markdown":"disabled",
|
||||
"mstdn.osaka_home":"ウチ",
|
||||
"mstdn.osaka_local":"近所",
|
||||
"mstdn.osaka_notification":"あめちゃん",
|
||||
"mstdn.osaka_public":"新世界",
|
||||
"mstdn.osaka_post":"なんや!",
|
||||
"mstdn.osaka_fav":"がええやん言いました",
|
||||
"mstdn.osaka_bt":"がしばいた",
|
||||
"mstdn.osaka_follow":"ツルまれました",
|
||||
"mstdn.osaka_glitch":"disabled",
|
||||
"mstdn.kemono-friends.info":"instance",
|
||||
"mstdn.kemono-friends.info_name":"ますとどんちほー",
|
||||
"mstdn.kemono-friends.info_letters":"1024",
|
||||
"mstdn.kemono-friends.info_bbcode":"disabled",
|
||||
"mstdn.kemono-friends.info_markdown":"disabled",
|
||||
"mstdn.kemono-friends.info_home":"なわばり",
|
||||
"mstdn.kemono-friends.info_local":"ますとどんちほー",
|
||||
"mstdn.kemono-friends.info_notification":"ねえねえ!",
|
||||
"mstdn.kemono-friends.info_public":"ジャパリパーク",
|
||||
"mstdn.kemono-friends.info_post":"がおー!",
|
||||
"mstdn.kemono-friends.info_fav":":「すごーい」",
|
||||
"mstdn.kemono-friends.info_bt":":「たーのしー」",
|
||||
"mstdn.kemono-friends.info_glitch":"disabled",
|
||||
"itabashi.0j0.jp":"instance",
|
||||
"itabashi.0j0.jp_name":"板橋丼",
|
||||
"itabashi.0j0.jp_letters":"1024",
|
||||
"itabashi.0j0.jp_bbcode":"disabled",
|
||||
"itabashi.0j0.jp_markdown":"disabled",
|
||||
"itabashi.0j0.jp_glitch":"disabled",
|
||||
"theboss.tech":"instance",
|
||||
"theboss.tech_name":"theboss.tech",
|
||||
"theboss.tech_letters":"1000",
|
||||
"theboss.tech_bbcode":"disabled",
|
||||
"theboss.tech_markdown":"disabled",
|
||||
"theboss.tech_glitch":"disabled",
|
||||
"dtp-mstdn.jp":"instance",
|
||||
"dtp-mstdn.jp_name":"DTP鯖",
|
||||
"dtp-mstdn.jp_letters":"500",
|
||||
"dtp-mstdn.jp_bbcode":"disabled",
|
||||
"dtp-mstdn.jp_markdown":"disabled",
|
||||
"dtp-mstdn.jp_glitch":"disabled",
|
||||
"misskey.xyz":"instance",
|
||||
"misskey.xyz_name":"Misskey",
|
||||
"misskey.xyz_letters":"1000",
|
||||
"misskey.xyz_bbcode":"disabled",
|
||||
"misskey.xyz_markdown":"enabled",
|
||||
"misskey.xyz_public":"Global",
|
||||
"misskey.xyz_post":"Post",
|
||||
"misskey.xyz_fav":" reacted your post.",
|
||||
"misskey.xyz_bt":" reposted your post.",
|
||||
var idata = {
|
||||
"kirishima.cloud": "instance",
|
||||
"kirishima.cloud_name": "アスタルテ",
|
||||
"kirishima.cloud_letters": "6229",
|
||||
"kirishima.cloud_bbcode": "enabled",
|
||||
"kirishima.cloud_markdown": "enabled",
|
||||
"kirishima.cloud_glitch": "enabled",
|
||||
"kirishima.cloud_public": "パブリックタイムライン",
|
||||
"minohdon.jp": "instance",
|
||||
"minohdon.jp_name": "箕面どん",
|
||||
"minohdon.jp_letters": "500",
|
||||
"minohdon.jp_bbcode": "disabled",
|
||||
"minohdon.jp_markdown": "disabled",
|
||||
"minohdon.jp_glitch": "disabled",
|
||||
"mastodos.com": "instance",
|
||||
"mastodos.com_name": "マストどす",
|
||||
"mastodos.com_letters": "500",
|
||||
"mastodos.com_bbcode": "disabled",
|
||||
"mastodos.com_markdown": "disabled",
|
||||
"mastodos.com_glitch": "disabled",
|
||||
"dev.kirishima.cloud": "hidden",
|
||||
"dev.kirishima.cloud_name": "アスタルテ(Dev)",
|
||||
"dev.kirishima.cloud_letters": "6229",
|
||||
"dev.kirishima.cloud_bbcode": "enabled",
|
||||
"dev.kirishima.cloud_markdown": "enabled",
|
||||
"dev.kirishima.cloud_glitch": "enabled",
|
||||
"mstdn.y-zu.org": "instance",
|
||||
"mstdn.y-zu.org_name": "Yづドン(Y-zuDon)",
|
||||
"mstdn.y-zu.org_letters": "500",
|
||||
"mstdn.y-zu.org_bbcode": "disabled",
|
||||
"mstdn.y-zu.org_markdown": "enabled",
|
||||
"mstdn.y-zu.org_glitch": "disabled",
|
||||
"imastodon.net": "instance",
|
||||
"imastodon.net_name": "im@stodon",
|
||||
"imastodon.net_letters": "500",
|
||||
"imastodon.net_bbcode": "disabled",
|
||||
"imastodon.net_markdown": "disabled",
|
||||
"imastodon.net_home": "オフィス",
|
||||
"imastodon.net_local": "楽屋",
|
||||
"imastodon.net_notification": "ホワイトボード",
|
||||
"imastodon.net_public": "ライブステージ",
|
||||
"imastodon.net_post": "あふぅ",
|
||||
"imastodon.net_fav": "の頭にティンときたようです",
|
||||
"imastodon.net_bt": ":「わかるわ」",
|
||||
"imastodon.net_follow": "名刺をいただきました",
|
||||
"imastodon.net_glitch": "disabled",
|
||||
"mstdn.osaka": "instance",
|
||||
"mstdn.osaka_name": "大阪丼",
|
||||
"mstdn.osaka_letters": "500",
|
||||
"mstdn.osaka_bbcode": "disabled",
|
||||
"mstdn.osaka_markdown": "disabled",
|
||||
"mstdn.osaka_home": "ウチ",
|
||||
"mstdn.osaka_local": "近所",
|
||||
"mstdn.osaka_notification": "あめちゃん",
|
||||
"mstdn.osaka_public": "新世界",
|
||||
"mstdn.osaka_post": "なんや!",
|
||||
"mstdn.osaka_fav": "がええやん言いました",
|
||||
"mstdn.osaka_bt": "がしばいた",
|
||||
"mstdn.osaka_follow": "ツルまれました",
|
||||
"mstdn.osaka_glitch": "disabled",
|
||||
"mstdn.kemono-friends.info": "instance",
|
||||
"mstdn.kemono-friends.info_name": "ますとどんちほー",
|
||||
"mstdn.kemono-friends.info_letters": "1024",
|
||||
"mstdn.kemono-friends.info_bbcode": "disabled",
|
||||
"mstdn.kemono-friends.info_markdown": "disabled",
|
||||
"mstdn.kemono-friends.info_home": "なわばり",
|
||||
"mstdn.kemono-friends.info_local": "ますとどんちほー",
|
||||
"mstdn.kemono-friends.info_notification": "ねえねえ!",
|
||||
"mstdn.kemono-friends.info_public": "ジャパリパーク",
|
||||
"mstdn.kemono-friends.info_post": "がおー!",
|
||||
"mstdn.kemono-friends.info_fav": ":「すごーい」",
|
||||
"mstdn.kemono-friends.info_bt": ":「たーのしー」",
|
||||
"mstdn.kemono-friends.info_glitch": "disabled",
|
||||
"itabashi.0j0.jp": "instance",
|
||||
"itabashi.0j0.jp_name": "板橋丼",
|
||||
"itabashi.0j0.jp_letters": "1024",
|
||||
"itabashi.0j0.jp_bbcode": "disabled",
|
||||
"itabashi.0j0.jp_markdown": "disabled",
|
||||
"itabashi.0j0.jp_glitch": "disabled",
|
||||
"dtp-mstdn.jp": "instance",
|
||||
"dtp-mstdn.jp_name": "DTP鯖",
|
||||
"dtp-mstdn.jp_letters": "500",
|
||||
"dtp-mstdn.jp_bbcode": "disabled",
|
||||
"dtp-mstdn.jp_markdown": "disabled",
|
||||
"dtp-mstdn.jp_glitch": "disabled",
|
||||
"misskey.io": "misskey",
|
||||
"misskey.io_name": "misskey.io",
|
||||
"misskey.io_letters": "1000",
|
||||
"misskey.io_bbcode": "disabled",
|
||||
"misskey.io_markdown": "enabled",
|
||||
"misskey.io_public": "Global",
|
||||
"misskey.io_post": "Post",
|
||||
"misskey.io_fav": " reacted your post.",
|
||||
"misskey.io_bt": " reposted your post.",
|
||||
"misskey.dev": "misskey.dev",
|
||||
"misskey.dev_name": "misskey.dev",
|
||||
"misskey.dev_letters": "1024",
|
||||
"misskey.dev_bbcode": "disabled",
|
||||
"misskey.dev_markdown": "enabled",
|
||||
"misskey.dev_public": "Global",
|
||||
"misskey.dev_post": "Post",
|
||||
"misskey.dev_fav": " reacted your post.",
|
||||
"misskey.dev_bt": " reposted your post.",
|
||||
"precure.ml": "instance",
|
||||
"precure.ml_name": "キュアスタ!",
|
||||
"precure.ml_letters": "1024",
|
||||
"precure.ml_bbcode": "disabled",
|
||||
"precure.ml_markdown": "disabled",
|
||||
"precure.ml_post": "キュア!",
|
||||
"precure.ml_glitch": "disabled"
|
||||
};
|
||||
|
||||
localStorage.setItem("instance", JSON.stringify(idata));
|
||||
|
||||
@@ -6,71 +6,55 @@ localStorage.removeItem("kirishima")
|
||||
localStorage.removeItem("imas")
|
||||
localStorage.removeItem("image");
|
||||
localStorage.removeItem("stable")
|
||||
localStorage.setItem("mode_misskey.xyz","misskey")
|
||||
localStorage.setItem("mode_misskey.xyz", "misskey")
|
||||
function ck() {
|
||||
var main = localStorage.getItem("main");
|
||||
if(!main){
|
||||
localStorage.setItem("main",0)
|
||||
if (!main) {
|
||||
localStorage.setItem("main", 0)
|
||||
}
|
||||
var domainz = localStorage.getItem("domain_0");
|
||||
var at = localStorage.getItem("acct_0_at");
|
||||
var oldat = localStorage.getItem(domainz + "_at");
|
||||
if(oldat){
|
||||
console.log("Move to New Account Management System")
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (!multi) {
|
||||
var acctlen=1;
|
||||
} else {
|
||||
var obj = JSON.parse(multi);
|
||||
var acctlen=obj.length;
|
||||
}
|
||||
for(i=0;acctlen>i;i++){
|
||||
var domain = localStorage.getItem("domain_"+i);
|
||||
var oldat = localStorage.getItem(domain + "_at");
|
||||
var newat = localStorage.setItem("acct_"+ i + "_at",oldat);
|
||||
localStorage.removeItem(domain + "_at");
|
||||
}
|
||||
}
|
||||
//コード受信
|
||||
if(location.search){
|
||||
if (location.search) {
|
||||
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/);
|
||||
var mode=m[1];
|
||||
var codex=m[2];
|
||||
if(mode=="manager" || mode=="login"){
|
||||
code(codex,mode);
|
||||
}else{
|
||||
var mode = m[1];
|
||||
var codex = m[2];
|
||||
if (mode == "manager" || mode == "login") {
|
||||
code(codex, mode);
|
||||
} else {
|
||||
}
|
||||
}
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (!multi) {
|
||||
var obj = [];
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
if (!multi || multi == "[]") {
|
||||
var date = new Date();
|
||||
localStorage.setItem("showSupportMe", date.getMonth() + 2)
|
||||
location.href = "acct.html?mode=first&code=true"
|
||||
} else {
|
||||
var obj = JSON.parse(multi);
|
||||
}
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var acct=obj[key];
|
||||
if(acct.domain){
|
||||
refresh(key,true)
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var acct = obj[key];
|
||||
if (acct.domain) {
|
||||
refresh(key, true)
|
||||
}
|
||||
});
|
||||
if (obj[0].domain) {
|
||||
$("#tl").show();
|
||||
ticker();
|
||||
multiSelector(false);
|
||||
verck(ver);
|
||||
$(".stw").show()
|
||||
$("#something-wrong img").attr("src", "../../img/thinking.svg")
|
||||
}
|
||||
});
|
||||
console.log(obj);
|
||||
if (obj[0].domain) {
|
||||
$("#tl").show();
|
||||
ticker();
|
||||
multiSelector();
|
||||
} else {
|
||||
$("#tl").show();
|
||||
$("#post-box").hide();
|
||||
}
|
||||
}
|
||||
ck();
|
||||
|
||||
|
||||
//ログインポップアップ
|
||||
function login(url) {
|
||||
if($('#linux:checked').val()=="on"){
|
||||
if ($('#linux:checked').val() == "on") {
|
||||
var red = "urn:ietf:wg:oauth:2.0:oob"
|
||||
}else{
|
||||
} else {
|
||||
var red = 'thedesk://login';
|
||||
}
|
||||
localStorage.setItem("redirect", red);
|
||||
@@ -85,28 +69,23 @@ function login(url) {
|
||||
redirect_uris: red,
|
||||
website: "https://thedesk.top"
|
||||
}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
console.log(json);
|
||||
var auth = "https://" + url + "/oauth/authorize?client_id=" + json[
|
||||
"client_id"] + "&client_secret=" + json["client_secret"] +
|
||||
"&response_type=code&redirect_uri="+red+"&scope=read+write+follow";
|
||||
localStorage.setItem("domain_" + acct_id, url);
|
||||
localStorage.setItem("client_id", json["client_id"]);
|
||||
localStorage.setItem("client_secret", json["client_secret"]);
|
||||
$("#auth").show();
|
||||
$("#masara").hide();
|
||||
const { shell } = require('electron');
|
||||
"&response_type=code&redirect_uri=" + red + "&scope=read+write+follow";
|
||||
localStorage.setItem("domain_" + acct_id, url);
|
||||
localStorage.setItem("client_id", json["client_id"]);
|
||||
localStorage.setItem("client_secret", json["client_secret"]);
|
||||
$("#auth").show();
|
||||
$("#masara").hide();
|
||||
postMessage(["openUrl", auth], "*")
|
||||
|
||||
shell.openExternal(auth);
|
||||
|
||||
if($('#linux:checked').val()=="on"){
|
||||
}else{
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('quit', 'go');
|
||||
}
|
||||
if ($('#linux:checked').val() == "on") {
|
||||
} else {
|
||||
postMessage(["sendSinmpleIpc", "quit"], "*")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -119,15 +98,15 @@ function instance() {
|
||||
|
||||
|
||||
//コードを入れた後認証
|
||||
function code(code,mode) {
|
||||
function code(code, mode) {
|
||||
var red = localStorage.getItem("redirect");
|
||||
localStorage.removeItem("redirect")
|
||||
if(!code){
|
||||
if (!code) {
|
||||
var code = $("#code").val();
|
||||
}
|
||||
if(localStorage.getItem("domain_tmp")){
|
||||
if (localStorage.getItem("domain_tmp")) {
|
||||
var url = localStorage.getItem("domain_tmp");
|
||||
}else{
|
||||
} else {
|
||||
var url = localStorage.getItem("domain_" + acct_id);
|
||||
}
|
||||
var start = "https://" + url + "/oauth/token";
|
||||
@@ -145,18 +124,18 @@ function code(code,mode) {
|
||||
client_secret: secret,
|
||||
code: code
|
||||
})
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
}).then(function (json) {
|
||||
todo(json);
|
||||
if (json["access_token"]) {
|
||||
localStorage.setItem(url + "_at", json["access_token"]);
|
||||
if(mode=="manager"){
|
||||
if (mode == "manager") {
|
||||
getdataAdv(url, json["access_token"]);
|
||||
}else{
|
||||
} else {
|
||||
getdata();
|
||||
}
|
||||
|
||||
@@ -168,7 +147,7 @@ function code(code,mode) {
|
||||
function getdata() {
|
||||
var acct_id = 0;
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/accounts/verify_credentials";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
@@ -176,23 +155,21 @@ function getdata() {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
}).then(function (json) {
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast(lang.lang_fatalerroroccured+"Error:" + json.error,
|
||||
5000);
|
||||
M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
|
||||
return;
|
||||
}
|
||||
var avatar=json["avatar"];
|
||||
var avatar = json["avatar"];
|
||||
//missingがmissingなやつ
|
||||
if(avatar=="/avatars/original/missing.png"){
|
||||
avatar="./img/missing.svg";
|
||||
if (avatar == "/avatars/original/missing.png") {
|
||||
avatar = "./img/missing.svg";
|
||||
}
|
||||
var obj = [{
|
||||
at: at,
|
||||
@@ -204,7 +181,6 @@ function getdata() {
|
||||
vis: json["source"]["privacy"]
|
||||
}];
|
||||
var json = JSON.stringify(obj);
|
||||
console.log(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
localStorage.setItem("name_" + acct_id, json["display_name"]);
|
||||
localStorage.setItem("user_" + acct_id, json["acct"]);
|
||||
@@ -226,28 +202,26 @@ function getdataAdv(domain, at) {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
}).then(function (json) {
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast(lang.lang_fatalerroroccured+"Error:" + json.error,
|
||||
5000);
|
||||
M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
|
||||
return;
|
||||
}
|
||||
var avatar=json["avatar"];
|
||||
var avatar = json["avatar"];
|
||||
//missingがmissingなやつ
|
||||
if(avatar=="/avatars/original/missing.png"){
|
||||
avatar="../../img/missing.svg";
|
||||
if (avatar == "/avatars/original/missing.png") {
|
||||
avatar = "../../img/missing.svg";
|
||||
}
|
||||
if(json["source"]["privacy"]){
|
||||
var priv=json["source"]["privacy"];
|
||||
}else{
|
||||
var priv="public";
|
||||
if (json["source"]["privacy"]) {
|
||||
var priv = json["source"]["privacy"];
|
||||
} else {
|
||||
var priv = "public";
|
||||
}
|
||||
var add = {
|
||||
at: at,
|
||||
@@ -266,45 +240,41 @@ function getdataAdv(domain, at) {
|
||||
localStorage.setItem("user_" + target, json["acct"]);
|
||||
localStorage.setItem("user-id_" + target, json["id"]);
|
||||
localStorage.setItem("prof_" + target, avatar);
|
||||
console.log(obj);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
location.href="index.html";
|
||||
location.href = "index.html";
|
||||
});
|
||||
}
|
||||
//ユーザーデータ更新
|
||||
function refresh(target,loadskip) {
|
||||
function refresh(target, loadskip) {
|
||||
var multi = localStorage.getItem("multi");
|
||||
var obj = JSON.parse(multi);
|
||||
if(obj[target].mode=="misskey"){
|
||||
if (obj[target].mode == "misskey") {
|
||||
return
|
||||
}
|
||||
var start = "https://" + obj[target].domain +
|
||||
"/api/v1/accounts/verify_credentials";
|
||||
console.log(start);
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + obj[target].at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
}).then(function (json) {
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast(lang.lang_fatalerroroccured+"Error:" + json.error,
|
||||
5000);
|
||||
M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
|
||||
return;
|
||||
}
|
||||
var avatar=json["avatar"];
|
||||
var avatar = json["avatar"];
|
||||
//missingがmissingなやつ
|
||||
if(avatar=="/avatars/original/missing.png" || !avatar){
|
||||
avatar="./img/missing.svg";
|
||||
if (avatar == "/avatars/original/missing.png" || !avatar) {
|
||||
avatar = "./img/missing.svg";
|
||||
}
|
||||
var ref = {
|
||||
at: obj[target].at,
|
||||
@@ -318,14 +288,12 @@ function refresh(target,loadskip) {
|
||||
localStorage.setItem("name_" + target, json["display_name"]);
|
||||
localStorage.setItem("user_" + target, json["acct"]);
|
||||
localStorage.setItem("user-id_" + target, json["id"]);
|
||||
console.log("user-id_" + target+":"+json["id"])
|
||||
console.log(localStorage.getItem("user-id_"+target));
|
||||
localStorage.setItem("prof_" + target, avatar);
|
||||
localStorage.setItem("follow_" + target, json["following_count"]);
|
||||
obj[target] = ref;
|
||||
console.log(obj)
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
if(!loadskip){
|
||||
if (!loadskip) {
|
||||
load();
|
||||
}
|
||||
});
|
||||
@@ -344,100 +312,99 @@ function ckdb(acct_id) {
|
||||
localStorage.removeItem("fav_" + acct_id);
|
||||
localStorage.removeItem("bt_" + acct_id);
|
||||
localStorage.removeItem("followlocale_" + acct_id);
|
||||
if(domain=="kirishima.cloud"){
|
||||
if (domain == "kirishima.cloud") {
|
||||
localStorage.setItem("kirishima", "true");
|
||||
$("#ranking-btn").show();
|
||||
}else if(domain=="imastodon.net"){
|
||||
} else if (domain == "imastodon.net") {
|
||||
localStorage.setItem("imas", "true");
|
||||
$(".imasonly").show();
|
||||
}
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var bbcode = domain + "_bbcode";
|
||||
var letters = domain + "_letters";
|
||||
if(localStorage.getItem("instance")){
|
||||
var json=JSON.parse(localStorage.getItem("instance"));
|
||||
if (json[bbcode]) {
|
||||
if (json[bbcode] == "enabled") {
|
||||
localStorage.setItem("bb_" + acct_id, "true");
|
||||
} else {
|
||||
localStorage.removeItem("bb_" + acct_id);
|
||||
$("[data-activates='bbcode']").addClass("disabled");
|
||||
$("[data-activates='bbcode']").prop("disabled", true);
|
||||
}
|
||||
if (localStorage.getItem("instance")) {
|
||||
var json = JSON.parse(localStorage.getItem("instance"));
|
||||
if (json[bbcode]) {
|
||||
if (json[bbcode] == "enabled") {
|
||||
localStorage.setItem("bb_" + acct_id, "true");
|
||||
} else {
|
||||
localStorage.removeItem("bb_" + acct_id);
|
||||
$("[data-activates='bbcode']").addClass("disabled");
|
||||
$("[data-activates='bbcode']").addClass("disabled", true);
|
||||
$("[data-activates='bbcode']").prop("disabled", true);
|
||||
}
|
||||
} else {
|
||||
localStorage.removeItem("bb_" + acct_id);
|
||||
$("[data-activates='bbcode']").addClass("disabled");
|
||||
$("[data-activates='bbcode']").addClass("disabled", true);
|
||||
}
|
||||
|
||||
if (json[domain + "_markdown"] == "enabled") {
|
||||
localStorage.setItem("md_" + acct_id, "true");
|
||||
$(".markdown").show();
|
||||
}else{
|
||||
$(".anti-markdown").hide();
|
||||
$(".markdown").hide();
|
||||
localStorage.removeItem("bb_" + acct_id);
|
||||
}
|
||||
if(json[domain + "_home"]){
|
||||
console.log("unique name:"+json[domain + "_home"]);
|
||||
localStorage.setItem("home_" + acct_id, json[domain + "_home"]);
|
||||
}
|
||||
if(json[domain + "_local"]){
|
||||
localStorage.setItem("local_" + acct_id, json[domain + "_local"]);
|
||||
}
|
||||
if(json[domain + "_public"]){
|
||||
localStorage.setItem("public_" + acct_id, json[domain + "_public"]);
|
||||
}
|
||||
if(json[domain + "_notification"]){
|
||||
localStorage.setItem("notification_" + acct_id, json[domain + "_notification"]);
|
||||
}
|
||||
if(json[domain + "_post"]){
|
||||
localStorage.setItem("post_" + acct_id, json[domain + "_post"]);
|
||||
}
|
||||
if(json[domain + "_fav"]){
|
||||
localStorage.setItem("fav_" + acct_id, json[domain + "_fav"]);
|
||||
}
|
||||
if(json[domain + "_bt"]){
|
||||
localStorage.setItem("bt_" + acct_id, json[domain + "_bt"]);
|
||||
}
|
||||
if(json[domain + "_follow"]){
|
||||
localStorage.setItem("followlocale_" + acct_id, json[domain + "_follow"]);
|
||||
}
|
||||
if (json[domain + "_markdown"] == "enabled") {
|
||||
localStorage.setItem("md_" + acct_id, "true");
|
||||
$(".markdown").show();
|
||||
} else {
|
||||
$(".anti-markdown").hide();
|
||||
$(".markdown").hide();
|
||||
localStorage.removeItem("bb_" + acct_id);
|
||||
}
|
||||
if (json[domain + "_home"]) {
|
||||
localStorage.setItem("home_" + acct_id, json[domain + "_home"]);
|
||||
}
|
||||
if (json[domain + "_local"]) {
|
||||
localStorage.setItem("local_" + acct_id, json[domain + "_local"]);
|
||||
}
|
||||
if (json[domain + "_public"]) {
|
||||
localStorage.setItem("public_" + acct_id, json[domain + "_public"]);
|
||||
}
|
||||
if (json[domain + "_notification"]) {
|
||||
localStorage.setItem("notification_" + acct_id, json[domain + "_notification"]);
|
||||
}
|
||||
if (json[domain + "_post"]) {
|
||||
localStorage.setItem("post_" + acct_id, json[domain + "_post"]);
|
||||
}
|
||||
if (json[domain + "_fav"]) {
|
||||
localStorage.setItem("fav_" + acct_id, json[domain + "_fav"]);
|
||||
}
|
||||
if (json[domain + "_bt"]) {
|
||||
localStorage.setItem("bt_" + acct_id, json[domain + "_bt"]);
|
||||
}
|
||||
if (json[domain + "_follow"]) {
|
||||
localStorage.setItem("followlocale_" + acct_id, json[domain + "_follow"]);
|
||||
}
|
||||
}
|
||||
if(localStorage.getItem("mode_" + domain)!="misskey"){
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
var start = "https://" + domain + "/api/v1/instance";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'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) {
|
||||
console.log(json);
|
||||
}).then(function (json) {
|
||||
if (json.error) {
|
||||
console.error(json.error);
|
||||
return;
|
||||
}
|
||||
if(json){
|
||||
if(json["max_toot_chars"]){
|
||||
if (json) {
|
||||
if (json["max_toot_chars"]) {
|
||||
localStorage.setItem("letters_" + acct_id, json["max_toot_chars"]);
|
||||
}
|
||||
if(json["urls"]["streaming_api"]){
|
||||
if (json["urls"]["streaming_api"]) {
|
||||
localStorage.setItem("streaming_" + acct_id, json["urls"]["streaming_api"]);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}else{
|
||||
} else {
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//アカウントを選択…を実装
|
||||
function multiSelector() {
|
||||
function multiSelector(parseC) {
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (!multi) {
|
||||
var obj = [];
|
||||
@@ -447,92 +414,96 @@ function multiSelector() {
|
||||
var obj = JSON.parse(multi);
|
||||
}
|
||||
var templete;
|
||||
if(localStorage.getItem("mainuse")=="main"){
|
||||
if (localStorage.getItem("mainuse") == "main") {
|
||||
var last = localStorage.getItem("main");
|
||||
}else if(localStorage.getItem("last-use")){
|
||||
} else if (localStorage.getItem("last-use")) {
|
||||
var last = localStorage.getItem("last-use");
|
||||
}else{
|
||||
var last=0;
|
||||
}
|
||||
var sel;
|
||||
if(obj.length<1){
|
||||
$("#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) {
|
||||
var acct = obj[key];
|
||||
var list = key * 1 + 1;
|
||||
if (key == last) {
|
||||
sel = "selected";
|
||||
var domain = acct.domain;
|
||||
localStorage.setItem("domain_" + key, domain);
|
||||
if(idata[domain+"_letters"]){
|
||||
$("#textarea").attr("data-length", idata[domain+"_letters"])
|
||||
}else{
|
||||
var maxletters = localStorage.getItem("letters_" + key);
|
||||
if(maxletters>0){
|
||||
$("#textarea").attr("data-length", maxletters)
|
||||
}else{
|
||||
$("#textarea").attr("data-length", 500)
|
||||
}
|
||||
}
|
||||
if(idata[domain+"_glitch"]){
|
||||
$("#local-button").removeClass("hide")
|
||||
}
|
||||
var profimg = acct.prof;
|
||||
localStorage.setItem("prof_" + key, profimg);
|
||||
console.log(profimg);
|
||||
if(!profimg){
|
||||
profimg="../../img/missing.svg";
|
||||
}
|
||||
$("#acct-sel-prof").attr("src",profimg);
|
||||
console.log(domain);
|
||||
if(domain){
|
||||
var cc="("+domain+")";
|
||||
}else{
|
||||
var cc="";
|
||||
}
|
||||
$("#toot-post-btn").text(lang.lang_toot+cc);
|
||||
if(acct.background && acct.background!="def" && acct.text && acct.text!="def"){
|
||||
$("#toot-post-btn").removeClass("indigo");
|
||||
$("#toot-post-btn").css("background-color","#"+acct.background);
|
||||
$("#toot-post-btn").css("color",acct.text);
|
||||
}else{
|
||||
}
|
||||
if(domain=="kirishima.cloud"){
|
||||
$("#faicon-btn").show();
|
||||
}else{
|
||||
$("#faicon-btn").hide();
|
||||
}
|
||||
if(domain=="imastodon.net"){
|
||||
trendTag();
|
||||
}else{
|
||||
$("#trendtag").html("");
|
||||
}
|
||||
} else {
|
||||
sel = "";
|
||||
if (last == "webview" || last == "noauth") {
|
||||
last = "0";
|
||||
}
|
||||
templete = '<option value="' + key + '" data-icon="' + acct.prof +
|
||||
'" class="left circle" ' + sel + '>' + acct.user + '@' + acct.domain +
|
||||
'</option>';
|
||||
$(".acct-sel").append(templete);
|
||||
|
||||
});
|
||||
$("#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>');
|
||||
} else {
|
||||
var last = "0";
|
||||
}
|
||||
last = last + "";
|
||||
var sel;
|
||||
if (obj.length < 1) {
|
||||
$("#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) {
|
||||
var acct = obj[key];
|
||||
var list = key * 1 + 1;
|
||||
if (key+"" === last) {
|
||||
sel = "selected";
|
||||
var domain = acct.domain;
|
||||
localStorage.setItem("domain_" + key, domain);
|
||||
if (idata[domain + "_letters"]) {
|
||||
$("#textarea").attr("data-length", idata[domain + "_letters"])
|
||||
} else {
|
||||
var maxletters = localStorage.getItem("letters_" + key);
|
||||
if (maxletters > 0) {
|
||||
$("#textarea").attr("data-length", maxletters)
|
||||
} else {
|
||||
$("#textarea").attr("data-length", 500)
|
||||
}
|
||||
}
|
||||
if (idata[domain + "_glitch"]) {
|
||||
$("#local-button").removeClass("hide")
|
||||
}
|
||||
var profimg = acct.prof;
|
||||
//localStorage.setItem("prof_" + key, profimg);
|
||||
if (!profimg) {
|
||||
profimg = "../../img/missing.svg";
|
||||
}
|
||||
$("#acct-sel-prof").attr("src", profimg);
|
||||
if (domain) {
|
||||
var cc = "(" + domain + ")";
|
||||
} else {
|
||||
var cc = "";
|
||||
}
|
||||
$("#toot-post-btn").text(lang.lang_toot + cc);
|
||||
if (acct.background && acct.background != "def" && acct.text && acct.text != "def") {
|
||||
$("#toot-post-btn").removeClass("indigo");
|
||||
$("#toot-post-btn").css("background-color", "#" + acct.background);
|
||||
$("#toot-post-btn").css("color", acct.text);
|
||||
} else {
|
||||
}
|
||||
if (domain == "kirishima.cloud") {
|
||||
$("#faicon-btn").show();
|
||||
} else {
|
||||
$("#faicon-btn").hide();
|
||||
}
|
||||
if (domain == "imastodon.net") {
|
||||
trendTag();
|
||||
} else {
|
||||
$("#trendtag").html("");
|
||||
}
|
||||
} else {
|
||||
sel = "";
|
||||
}
|
||||
templete = '<option value="' + key + '" data-icon="' + acct.prof +
|
||||
'" class="left circle" ' + sel + '>' + acct.user + '@' + acct.domain +
|
||||
'</option>';
|
||||
$(".acct-sel").append(templete);
|
||||
|
||||
});
|
||||
$("#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>');
|
||||
}
|
||||
$('select').formSelect();
|
||||
if(!parseC){
|
||||
parseColumn(null, true);
|
||||
}
|
||||
$('select').material_select('update');
|
||||
parseColumn();
|
||||
}
|
||||
|
||||
//バージョンエンコ
|
||||
function enc(ver){
|
||||
var ver = ver.replace( /\s/g , "" );
|
||||
var ver = ver.replace( /\(/g , "-" );
|
||||
var ver = ver.replace( /\)/g , "" );
|
||||
var ver = ver.replace( /\[/g , "_" );
|
||||
var ver = ver.replace( /\]/g , "" );
|
||||
return ver;
|
||||
function enc(ver) {
|
||||
var ver = ver.replace(/\s/g, "");
|
||||
var ver = ver.replace(/\(/g, "-");
|
||||
var ver = ver.replace(/\)/g, "");
|
||||
var ver = ver.replace(/\[/g, "_");
|
||||
var ver = ver.replace(/\]/g, "");
|
||||
return ver;
|
||||
}
|
||||
//インスタンスティッカー
|
||||
function ticker() {
|
||||
@@ -542,15 +513,15 @@ function ticker() {
|
||||
headers: {
|
||||
'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) {
|
||||
return;
|
||||
}
|
||||
if(json){
|
||||
if (json) {
|
||||
localStorage.setItem("ticker", JSON.stringify(json));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//ログアウトします
|
||||
function logout(){
|
||||
localStorage.removeItem("acct_"+ acct_id + "_at");
|
||||
localStorage.removeItem("domain_"+acct_id);
|
||||
location.href="index.html";
|
||||
function logout() {
|
||||
localStorage.removeItem("acct_" + acct_id + "_at");
|
||||
localStorage.removeItem("domain_" + acct_id);
|
||||
location.href = "index.html";
|
||||
todc();
|
||||
}
|
||||
@@ -1,167 +1,105 @@
|
||||
//プラットフォーム別 最後に読むやつ
|
||||
//リンクを外部で開くか内部で出すか
|
||||
$(document).on('click', 'a', e => {
|
||||
var $a = $(e.target);
|
||||
var url = $a.attr('href');
|
||||
if (!url) {
|
||||
var url = $a.parent().attr('href');
|
||||
}
|
||||
var urls=[];
|
||||
if(url){
|
||||
$(document).on('click', 'a', e => {
|
||||
var $a = $(e.target);
|
||||
var url = $a.attr('href');
|
||||
if (!url) {
|
||||
var url = $a.parent().attr('href');
|
||||
}
|
||||
var urls = [];
|
||||
if (url) {
|
||||
urls = url.match(/https?:\/\/(.+)/);
|
||||
//トゥートのURLぽかったら
|
||||
toot = url.match(/https:\/\/([a-zA-Z0-9.-]+)\/@([a-zA-Z0-9_]+)\/([0-9]+)/);
|
||||
toot = url.match(/https:\/\/([^+_]+)\/@([a-zA-Z0-9_]+)\/([0-9]+)/);
|
||||
if(!toot){
|
||||
//Pleroma対策
|
||||
toot = url.match(/https:\/\/([^+_]+)\/users\/([a-zA-Z0-9_]+)\/statuses\/([0-9]+)/);
|
||||
}
|
||||
//タグのURLぽかったら
|
||||
var tags=[];
|
||||
tags = url.match(
|
||||
/https:\/\/([-a-zA-Z0-9@.]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#]+)/
|
||||
);
|
||||
var tags = [];
|
||||
tags = url.match(
|
||||
/https:\/\/([^+_]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#]+)/
|
||||
);
|
||||
//メンションっぽかったら
|
||||
var ats=[];
|
||||
ats = url.match(
|
||||
/https:\/\/([-a-zA-Z0-9@.]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#]+)/
|
||||
);
|
||||
console.log(toot);
|
||||
if(toot){
|
||||
if(toot[1]){
|
||||
var acct_id=$a.parent().attr("data-acct");
|
||||
if(!acct_id){
|
||||
acct_id=0;
|
||||
var ats = [];
|
||||
ats = url.match(
|
||||
/https:\/\/([^+_]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#@]+)/
|
||||
);
|
||||
if (toot) {
|
||||
if (toot[1]) {
|
||||
var acct_id = $a.parent().attr("data-acct");
|
||||
if (!acct_id) {
|
||||
acct_id = 0;
|
||||
}
|
||||
$a.parent().addClass("loadp")
|
||||
$a.parent().text("Loading...")
|
||||
detEx(url,acct_id);
|
||||
detEx(url, acct_id);
|
||||
}
|
||||
|
||||
}else if(tags){
|
||||
if(tags[2]){
|
||||
tagShow(tags[2]);
|
||||
Materialize.toast('<a class="btn-flat toast-action" href="detEx(\''+url+'\')">Open in browser</a>', 86400);
|
||||
} else if (tags) {
|
||||
if (tags[2]) {
|
||||
var acct_id = $a.parent().attr("data-acct");
|
||||
if (!acct_id) {
|
||||
acct_id = 0;
|
||||
}
|
||||
tl('tag', decodeURI(tags[2]), acct_id, 'add')
|
||||
}
|
||||
}else if(ats){
|
||||
console.log(ats);
|
||||
if(ats[2]){
|
||||
if(ats[1]!="quesdon.rinsuki.net"){
|
||||
udgEx(ats[2]+"@"+ats[1],"main");
|
||||
} else if (ats) {
|
||||
if (ats[2]) {
|
||||
//Quesdon判定
|
||||
if (!~ats[2].indexOf("@")) {
|
||||
udgEx(ats[2] + "@" + ats[1], "main");
|
||||
return false
|
||||
}else{
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
|
||||
shell.openExternal(url);
|
||||
} else {
|
||||
postMessage(["openUrl", url], "*")
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}else{
|
||||
//hrefがhttp/httpsならブラウザで
|
||||
if(urls){
|
||||
if (urls[0]) {
|
||||
const {shell} = require('electron');
|
||||
if(~url.indexOf("thedeks.top")){
|
||||
//alert("If you recieve this alert, let the developer(Cutls@kirishima.cloud) know it with a screenshot.");
|
||||
url="https://thedesk.top";
|
||||
}
|
||||
shell.openExternal(url);
|
||||
} else {
|
||||
//hrefがhttp/httpsならブラウザで
|
||||
if (urls) {
|
||||
if (urls[0]) {
|
||||
if (~url.indexOf("thedeks.top")) {
|
||||
//alert("If you recieve this alert, let the developer(Cutls@kirishima.cloud) know it with a screenshot.");
|
||||
url = "https://thedesk.top";
|
||||
}
|
||||
postMessage(["openUrl", url], "*")
|
||||
} else {
|
||||
|
||||
location.href = url;
|
||||
location.href = url;
|
||||
}
|
||||
} else {
|
||||
location.href = url;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
location.href = url;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
//よく使うライブラリ
|
||||
/*マルチバイト用切り出し*/
|
||||
$.isSurrogatePear = function(upper, lower) {
|
||||
return 0xD800 <= upper && upper <= 0xDBFF && 0xDC00 <= lower && lower <= 0xDFFF;
|
||||
};
|
||||
$.mb_strlen = function(str) {
|
||||
var ret = 0;
|
||||
for (var i = 0; i < str.length; i++, ret++) {
|
||||
var upper = str.charCodeAt(i);
|
||||
var lower = str.length > (i + 1) ? str.charCodeAt(i + 1) : 0;
|
||||
if ($.isSurrogatePear(upper, lower)) {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
$.mb_substr = function(str, begin, end) {
|
||||
var ret = '';
|
||||
for (var i = 0, len = 0; i < str.length; i++, len++) {
|
||||
var upper = str.charCodeAt(i);
|
||||
var lower = str.length > (i + 1) ? str.charCodeAt(i + 1) : 0;
|
||||
var s = '';
|
||||
if ($.isSurrogatePear(upper, lower)) {
|
||||
i++;
|
||||
s = String.fromCharCode(upper, lower);
|
||||
} else {
|
||||
s = String.fromCharCode(upper);
|
||||
}
|
||||
if (begin <= len && len < end) {
|
||||
ret += s;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
//よく使うライブラリ
|
||||
|
||||
//コピー
|
||||
function execCopy(string){
|
||||
//コピー
|
||||
function execCopy(string) {
|
||||
var temp = $("#copy");
|
||||
temp.val(string);
|
||||
temp.select();
|
||||
var result = document.execCommand('copy');
|
||||
return result;
|
||||
}
|
||||
//Nano
|
||||
function nano(){
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('nano', "");
|
||||
}
|
||||
function progshow(e) {
|
||||
if (e.lengthComputable) {
|
||||
var percent = e.loaded / e.total;
|
||||
console.log(percent * 100);
|
||||
$("#imgsel").hide();
|
||||
if(percent<1){
|
||||
$("#imgup").text(Math.floor(percent*100)+"%");
|
||||
}else{
|
||||
$("#imgup").text(lang.lang_progress);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.on('reload', function (event, arg) {
|
||||
location.reload();
|
||||
})
|
||||
ipc.on('mess', function (event, arg) {
|
||||
if(arg=="unzip"){
|
||||
if(lang=="ja"){
|
||||
$("body").text("アップデートを展開中です。");
|
||||
}else{
|
||||
$("body").text("Unzipping...");
|
||||
var percent = e.loaded / e.total;
|
||||
console.log("Progress: " + percent * 100);
|
||||
$("#imgsel").hide();
|
||||
if (percent < 1) {
|
||||
$("#imgup").text(Math.floor(percent * 100) + "%");
|
||||
} else {
|
||||
$("#imgup").text(lang.lang_progress);
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
//Native Notf
|
||||
ipc.on('shownotf', function (event, args) {
|
||||
if(args["type"]=="toot"){
|
||||
details(id, acct_id)
|
||||
}else if(args["type"]=="userdata"){
|
||||
udg(user, acct_id)
|
||||
}
|
||||
})
|
||||
function opendev(){
|
||||
}
|
||||
function opendev() {
|
||||
var webview = document.getElementById("webview");
|
||||
webview.openDevTools();
|
||||
/*webview.sendInputEvent({
|
||||
@@ -170,11 +108,66 @@ function opendev(){
|
||||
});
|
||||
*/
|
||||
}
|
||||
|
||||
var webviewDom = document.getElementById('webview');
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
webviewDom.addEventListener('new-window', function(e) {
|
||||
shell.openExternal(e.url);
|
||||
});
|
||||
function playSound() {
|
||||
window.AudioContext = window.AudioContext || window.webkitAudioContext;
|
||||
context = new AudioContext();
|
||||
context.createBufferSource().start(0);
|
||||
context.decodeAudioData(request.response, function (buf) {
|
||||
console.log("Playing:" + source)
|
||||
source.buffer = buf;
|
||||
source.loop = false;
|
||||
});
|
||||
source = context.createBufferSource();
|
||||
volumeControl = context.createGain();
|
||||
source.connect(volumeControl);
|
||||
volumeControl.connect(context.destination);
|
||||
volumeControl.gain.value = 0.8
|
||||
source.start(0);
|
||||
}
|
||||
function nano() {
|
||||
postMessage(["nano", null], "*")
|
||||
}
|
||||
onmessage = function (e) {
|
||||
if (e.data[0] == "details") {
|
||||
details(e.data[1][0], e.data[1][1])
|
||||
} else if (e.data[0] == "udg") {
|
||||
udg(e.data[1][0], e.data[1][1])
|
||||
} else if (e.data[0] == "media") {
|
||||
media(e.data[1][0], e.data[1][1], e.data[1][2])
|
||||
} else if (e.data[0] == "post") {
|
||||
post("pass")
|
||||
} else if (e.data[0] == "toastSaved") {
|
||||
M.toast({ html: lang.lang_img_DLDone + e.data[1][0] + '<button class="btn-flat toast-action" onclick="openFinder(\'' + e.data[1][1] + '\')">Show</button>', displayLength: 5000 })
|
||||
} else if (e.data[0] == "parseColumn") {
|
||||
parseColumn(e.data[1])
|
||||
} else if (e.data[0] == "exportSettingsCore") {
|
||||
exportSettingsCore()
|
||||
} else if (e.data[0] == "fontList") {
|
||||
fontList(e.data[1])
|
||||
} else if (e.data[0] == "customSoundSave") {
|
||||
customSoundSave(e.data[1][0], e.data[1][1])
|
||||
} else if (e.data[0] == "ctLoadCore") {
|
||||
ctLoadCore(e.data[1])
|
||||
} else if (e.data[0] == "ctLoad") {
|
||||
ctLoad()
|
||||
} else if (e.data[0] == "customConnect") {
|
||||
customConnect(e.data[1])
|
||||
} else if (e.data[0] == "clearCustomImport") {
|
||||
clearCustomImport()
|
||||
} else if (e.data[0] == "npCore") {
|
||||
npCore(e.data[1]);
|
||||
} else if (e.data[0] == "renderMem") {
|
||||
renderMem(e.data[1][0], e.data[1][1], e.data[1][2])
|
||||
} else if (e.data[0] == "updateProg") {
|
||||
updateProg(e.data[1]);
|
||||
} else if (e.data[0] == "updateMess") {
|
||||
updateMess(e.data[1]);
|
||||
} else if (e.data[0] == "renderAbout") {
|
||||
renderAbout(e.data[1]);
|
||||
} else if (e.data[0] == "alert") {
|
||||
Swal.fire({
|
||||
type: 'info',
|
||||
title: e.data[1]
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1 @@
|
||||
//jQuery読む
|
||||
window.jQuery = window.$ = require('./js/common/jquery.js');
|
||||
var Hammer = require('./js/common/hammer.min.js');
|
||||
@@ -1,160 +1,199 @@
|
||||
//jQuery読む
|
||||
window.jQuery = window.$ = require('../../js/common/jquery.js');
|
||||
var Hammer = require('../../js/common/hammer.min.js');
|
||||
$.strip_tags = function(str, allowed) {
|
||||
if(!str){
|
||||
document.title="TheDesk"
|
||||
$.strip_tags = function (str, allowed) {
|
||||
if (!str) {
|
||||
return "";
|
||||
}
|
||||
allowed = (((allowed || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || [])
|
||||
.join('');
|
||||
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi,
|
||||
commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
|
||||
return str.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
|
||||
return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
|
||||
});
|
||||
};
|
||||
function escapeHTML(str) {
|
||||
if (!str) {
|
||||
return "";
|
||||
}
|
||||
allowed = (((allowed || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || [])
|
||||
.join('');
|
||||
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi,
|
||||
commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
|
||||
return str.replace(commentsAndPhpTags, '').replace(tags, function($0, $1) {
|
||||
return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
|
||||
});
|
||||
};
|
||||
function escapeHTML(str) {
|
||||
if(!str){
|
||||
return "";
|
||||
}
|
||||
return str.replace(/&/g, '&')
|
||||
.replace(/</g, '<')
|
||||
.replace(/>/g, '>')
|
||||
.replace(/"/g, '"')
|
||||
.replace(/'/g, ''');
|
||||
}
|
||||
//PHPのnl2brと同様
|
||||
.replace(/</g, '<')
|
||||
.replace(/>/g, '>')
|
||||
.replace(/"/g, '"')
|
||||
.replace(/'/g, ''');
|
||||
}
|
||||
//PHPのnl2brと同様
|
||||
function nl2br(str) {
|
||||
if(!str){
|
||||
if (!str) {
|
||||
return "";
|
||||
}
|
||||
str = str.replace(/\r\n/g, "<br />");
|
||||
str = str.replace(/\r\n/g, "<br />");
|
||||
str = str.replace(/(\n|\r)/g, "<br />");
|
||||
return str;
|
||||
}
|
||||
function formattime(date){
|
||||
var str=date.getFullYear()+"-";
|
||||
if(date.getMonth()+1<10){
|
||||
str=str+"0"+(date.getMonth()+1)+"-";
|
||||
}else{
|
||||
str=str+(date.getMonth()+1)+"-";
|
||||
}
|
||||
if(date.getDate()<10){
|
||||
str=str+"0"+date.getDate()
|
||||
}else{
|
||||
str=str+date.getDate()
|
||||
}
|
||||
str=str+"T";
|
||||
if(date.getHours()<10){
|
||||
str=str+"0"+date.getHours()+":"
|
||||
}else{
|
||||
str=str+date.getHours()+":"
|
||||
}
|
||||
if(date.getMinutes()<10){
|
||||
str=str+"0"+date.getMinutes()
|
||||
}else{
|
||||
str=str+date.getMinutes()
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function formattimeutc(date){
|
||||
var str=date.getUTCFullYear()+"-";
|
||||
if(date.getUTCMonth()+1<10){
|
||||
str=str+"0"+(date.getUTCMonth()+1)+"-";
|
||||
}else{
|
||||
str=str+(date.getUTCMonth()+1)+"-";
|
||||
}
|
||||
if(date.getUTCDate()<10){
|
||||
str=str+"0"+date.getUTCDate()
|
||||
}else{
|
||||
str=str+date.getUTCDate()
|
||||
}
|
||||
str=str+"T";
|
||||
if(date.getUTCHours()<10){
|
||||
str=str+"0"+date.getUTCHours()+":"
|
||||
}else{
|
||||
str=str+date.getUTCHours()+":"
|
||||
}
|
||||
if(date.getUTCMinutes()<10){
|
||||
str=str+"0"+date.getUTCMinutes()
|
||||
}else{
|
||||
str=str+date.getUTCMinutes()
|
||||
function br2nl(str) {
|
||||
if (!str) {
|
||||
return "";
|
||||
}
|
||||
str = str.replace(/<br \/>/g, "\r\n");
|
||||
return str;
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('custom-css-request', "");
|
||||
ipc.on('custom-css-response', function (event, arg) {
|
||||
if(arg==""){ return false; }
|
||||
var styleNode = document.createElement("style");
|
||||
styleNode.setAttribute("type","text/css")
|
||||
|
||||
var content = document.createTextNode(arg)
|
||||
styleNode.append(content)
|
||||
document.getElementsByTagName("head")[0].append(styleNode)
|
||||
})
|
||||
ipc.on('theme-css-response', function (event, arg) {
|
||||
if(arg==""){ return false; }
|
||||
var styleNode = document.createElement("style");
|
||||
styleNode.setAttribute("type","text/css")
|
||||
|
||||
var content = document.createTextNode(arg)
|
||||
styleNode.append(content)
|
||||
document.getElementsByTagName("head")[0].append(styleNode)
|
||||
})
|
||||
function makeCID(){
|
||||
return randomStr(8)+"-"+randomStr(4)+"-"+randomStr(4)+"-"+randomStr(4)+"-"+randomStr(12);
|
||||
function formattime(date) {
|
||||
var str = date.getFullYear() + "-";
|
||||
if (date.getMonth() + 1 < 10) {
|
||||
str = str + "0" + (date.getMonth() + 1) + "-";
|
||||
} else {
|
||||
str = str + (date.getMonth() + 1) + "-";
|
||||
}
|
||||
if (date.getDate() < 10) {
|
||||
str = str + "0" + date.getDate()
|
||||
} else {
|
||||
str = str + date.getDate()
|
||||
}
|
||||
str = str + "T";
|
||||
if (date.getHours() < 10) {
|
||||
str = str + "0" + date.getHours() + ":"
|
||||
} else {
|
||||
str = str + date.getHours() + ":"
|
||||
}
|
||||
if (date.getMinutes() < 10) {
|
||||
str = str + "0" + date.getMinutes()
|
||||
} else {
|
||||
str = str + date.getMinutes()
|
||||
}
|
||||
return escapeHTML(str);
|
||||
}
|
||||
function randomStr(l){
|
||||
function formattimeutc(date) {
|
||||
var str = date.getUTCFullYear() + "-";
|
||||
if (date.getUTCMonth() + 1 < 10) {
|
||||
str = str + "0" + (date.getUTCMonth() + 1) + "-";
|
||||
} else {
|
||||
str = str + (date.getUTCMonth() + 1) + "-";
|
||||
}
|
||||
if (date.getUTCDate() < 10) {
|
||||
str = str + "0" + date.getUTCDate()
|
||||
} else {
|
||||
str = str + date.getUTCDate()
|
||||
}
|
||||
str = str + "T";
|
||||
if (date.getUTCHours() < 10) {
|
||||
str = str + "0" + date.getUTCHours() + ":"
|
||||
} else {
|
||||
str = str + date.getUTCHours() + ":"
|
||||
}
|
||||
if (date.getUTCMinutes() < 10) {
|
||||
str = str + "0" + date.getUTCMinutes()
|
||||
} else {
|
||||
str = str + date.getUTCMinutes()
|
||||
}
|
||||
return escapeHTML(str);
|
||||
}
|
||||
postMessage(["sendSinmpleIpc", "custom-css-request"], "*")
|
||||
function makeCID() {
|
||||
return randomStr(8) + "-" + randomStr(4) + "-" + randomStr(4) + "-" + randomStr(4) + "-" + randomStr(12);
|
||||
}
|
||||
function randomStr(l) {
|
||||
// 生成する文字列に含める文字セット
|
||||
var c = "abcdefghijklmnopqrstuvwxyz0123456789";
|
||||
var cl = c.length;
|
||||
var r = "";
|
||||
for(var i=0; i<l; i++){
|
||||
r += c[Math.floor(Math.random()*cl)];
|
||||
for (var i = 0; i < l; i++) {
|
||||
r += c[Math.floor(Math.random() * cl)];
|
||||
}
|
||||
return r;
|
||||
}
|
||||
function rgbToHex(color)
|
||||
{
|
||||
// HEXに変換したものを代入する変数
|
||||
var hex = '';
|
||||
function rgbToHex(color) {
|
||||
// HEXに変換したものを代入する変数
|
||||
var hex = '';
|
||||
|
||||
// 第1引数がHEXのとき変換処理は必要ないのでそのままreturn
|
||||
// IE8の場合はjQueryのcss()関数でHEXを返すので除外
|
||||
if (color.match(/^#[a-f\d]{3}$|^#[a-f\d]{6}$/i))
|
||||
{
|
||||
return color;
|
||||
}
|
||||
// 第1引数がHEXのとき変換処理は必要ないのでそのままreturn
|
||||
// IE8の場合はjQueryのcss()関数でHEXを返すので除外
|
||||
if (color.match(/^#[a-f\d]{3}$|^#[a-f\d]{6}$/i)) {
|
||||
return color;
|
||||
}
|
||||
|
||||
// 正規表現
|
||||
var regex = color.match(/^rgb\(([0-9.]+),\s*([0-9.]+),\s*([0-9.]+)\)$/);
|
||||
// 正規表現
|
||||
var regex = color.match(/^rgb\(([0-9.]+),\s*([0-9.]+),\s*([0-9.]+)\)$/);
|
||||
|
||||
// 正規表現でマッチしたとき
|
||||
if (regex)
|
||||
{
|
||||
var rgb =
|
||||
[
|
||||
// RGBからHEXへ変換
|
||||
parseInt(regex[1]).toString(16),
|
||||
parseInt(regex[2]).toString(16),
|
||||
parseInt(regex[3]).toString(16)
|
||||
];
|
||||
// 正規表現でマッチしたとき
|
||||
if (regex) {
|
||||
var rgb =
|
||||
[
|
||||
// RGBからHEXへ変換
|
||||
parseInt(regex[1]).toString(16),
|
||||
parseInt(regex[2]).toString(16),
|
||||
parseInt(regex[3]).toString(16)
|
||||
];
|
||||
|
||||
for (var i = 0; i < rgb.length; ++i)
|
||||
{
|
||||
// rgb(1,1,1)のようなときHEXに変換すると1桁になる
|
||||
// 1桁のときは前に0を足す
|
||||
if (rgb[i].length == 1)
|
||||
{
|
||||
rgb[i] = '0' + rgb[i];
|
||||
}
|
||||
hex += rgb[i];
|
||||
}
|
||||
for (var i = 0; i < rgb.length; ++i) {
|
||||
// rgb(1,1,1)のようなときHEXに変換すると1桁になる
|
||||
// 1桁のときは前に0を足す
|
||||
if (rgb[i].length == 1) {
|
||||
rgb[i] = '0' + rgb[i];
|
||||
}
|
||||
hex += rgb[i];
|
||||
}
|
||||
|
||||
return hex;
|
||||
}
|
||||
return hex;
|
||||
}
|
||||
|
||||
console.error(color+':第1引数はRGB形式で入力');
|
||||
console.error(color + ':第1引数はRGB形式で入力');
|
||||
}
|
||||
/*マルチバイト用切り出し*/
|
||||
$.isSurrogatePear = function (upper, lower) {
|
||||
return 0xD800 <= upper && upper <= 0xDBFF && 0xDC00 <= lower && lower <= 0xDFFF;
|
||||
};
|
||||
$.mb_strlen = function (str) {
|
||||
var ret = 0;
|
||||
for (var i = 0; i < str.length; i++ , ret++) {
|
||||
var upper = str.charCodeAt(i);
|
||||
var lower = str.length > (i + 1) ? str.charCodeAt(i + 1) : 0;
|
||||
if ($.isSurrogatePear(upper, lower)) {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
$.mb_substr = function (str, begin, end) {
|
||||
var ret = '';
|
||||
for (var i = 0, len = 0; i < str.length; i++ , len++) {
|
||||
var upper = str.charCodeAt(i);
|
||||
var lower = str.length > (i + 1) ? str.charCodeAt(i + 1) : 0;
|
||||
var s = '';
|
||||
if ($.isSurrogatePear(upper, lower)) {
|
||||
i++;
|
||||
s = String.fromCharCode(upper, lower);
|
||||
} else {
|
||||
s = String.fromCharCode(upper);
|
||||
}
|
||||
if (begin <= len && len < end) {
|
||||
ret += s;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
//ソートするやつ
|
||||
function object_array_sort(data, key, order, fn) {
|
||||
var num_a = -1;
|
||||
var num_b = 1;
|
||||
if (order === 'asc') {
|
||||
num_a = 1;
|
||||
num_b = -1;
|
||||
}
|
||||
data = data.sort(function (a, b) {
|
||||
var x = a[key];
|
||||
var y = b[key];
|
||||
if (x > y) return num_a;
|
||||
if (x < y) return num_b;
|
||||
return 0;
|
||||
});
|
||||
var arrObj = {};
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
arrObj[data[i]['family']] = data[i];
|
||||
}
|
||||
data = [];
|
||||
for (var key in arrObj) {
|
||||
data.push(arrObj[key]);
|
||||
}
|
||||
fn(data);
|
||||
}
|
||||
localStorage.removeItem("errors");
|
||||
@@ -1,38 +1,37 @@
|
||||
|
||||
//TL取得
|
||||
function tl(data) {
|
||||
var tlid=0;
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var type = $("#type-sel").val();
|
||||
var tlid = 0;
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var type = $("#type-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
//タグの場合はカラム追加して描画
|
||||
if (!type) {
|
||||
//デフォルト
|
||||
var type = "local";
|
||||
}
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if (!type) {
|
||||
//デフォルト
|
||||
var type = "local";
|
||||
}
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
$("#notice_nano").text(cap(type, data) + " TL(" + localStorage.getItem(
|
||||
"user_" + acct_id) + "@" + domain + ")");
|
||||
var start = "https://" + domain + "/api/v1/timelines/" + com(type, data);
|
||||
console.log(start);
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
}).then(function (json) {
|
||||
var templete = parse([json[0]], '', acct_id, tlid);
|
||||
$("#timeline_nano").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
//Streaming接続
|
||||
var websocket=[];
|
||||
var tlid=0;
|
||||
//Streaming接続
|
||||
var websocket = [];
|
||||
var tlid = 0;
|
||||
if (type == "home") {
|
||||
var start = "wss://" + domain +
|
||||
"/api/v1/streaming/?stream=user&access_token=" + at;
|
||||
@@ -44,19 +43,14 @@ var websocket=[];
|
||||
"/api/v1/streaming/?stream=public:local&access_token=" + at;
|
||||
} else if (type == "tag") {
|
||||
var start = "wss://" + domain +
|
||||
"/api/v1/streaming/?stream=hashtag&tag=" + data +"&access_token=" + at;
|
||||
"/api/v1/streaming/?stream=hashtag&tag=" + data + "&access_token=" + at;
|
||||
}
|
||||
console.log(start);
|
||||
var wsid = websocket.length;
|
||||
websocket[wsid] = new WebSocket(start);
|
||||
websocket[wsid].onopen = function(mess) {
|
||||
console.log(tlid + ":Connect Streaming API:" + type);
|
||||
console.log(mess);
|
||||
websocket[wsid].onopen = function (mess) {
|
||||
$("#notice_icon_" + tlid).removeClass("red-text");
|
||||
}
|
||||
websocket[wsid].onmessage = function(mess) {
|
||||
console.log(tlid + ":Receive Streaming API:");
|
||||
console.log(websocket[wsid]);
|
||||
websocket[wsid].onmessage = function (mess) {
|
||||
var typeA = JSON.parse(mess.data).event;
|
||||
if (typeA == "delete") {
|
||||
var obj = JSON.parse(mess.data).payload;
|
||||
@@ -64,15 +58,14 @@ var websocket=[];
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").remove();
|
||||
} else if (typeA == "update") {
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload);
|
||||
console.log(obj);
|
||||
var templete = parse([obj], '', acct_id, tlid);
|
||||
$("#timeline_nano").html(templete);
|
||||
var templete = parse([obj], '', acct_id, tlid);
|
||||
$("#timeline_nano").html(templete);
|
||||
}
|
||||
websocket[wsid].onclose = function(mess) {
|
||||
console.log("Close Streaming API:" + type);
|
||||
websocket[wsid].onclose = function (mess) {
|
||||
console.error("Close Streaming API:" + type);
|
||||
}
|
||||
}
|
||||
websocket[wsid].onerror = function(error) {
|
||||
websocket[wsid].onerror = function (error) {
|
||||
console.error('WebSocket Error ' + error);
|
||||
};
|
||||
}
|
||||
@@ -124,12 +117,12 @@ function icon(type) {
|
||||
return "subject"
|
||||
}
|
||||
}
|
||||
function todo(){}
|
||||
function todc(){}
|
||||
function hide(){}
|
||||
$(function($) {
|
||||
function todo() { }
|
||||
function todc() { }
|
||||
function hide() { }
|
||||
$(function ($) {
|
||||
//キーボードショートカット
|
||||
$(window).keydown(function(e) {
|
||||
$(window).keydown(function (e) {
|
||||
var hasFocus = $('input').is(':focus');
|
||||
var hasFocus2 = $('textarea').is(':focus');
|
||||
//Ctrl+Enter:投稿
|
||||
|
||||
173
app/js/platform/preload.js
Normal file
@@ -0,0 +1,173 @@
|
||||
var electron = require("electron");
|
||||
const shell = electron.shell;
|
||||
var ipc = electron.ipcRenderer;
|
||||
onmessage = function (e) {
|
||||
if (e.data[0] == "openUrl") {
|
||||
urls = e.data[1].match(/https?:\/\/(.+)/);
|
||||
if (urls) {
|
||||
shell.openExternal(e.data[1]);
|
||||
}
|
||||
} else if (e.data[0] == "sendSinmpleIpc") {
|
||||
ipc.send(e.data[1], "")
|
||||
} else if (e.data[0] == "dialogStore") {
|
||||
ipc.send("dialogStore", e.data[1])
|
||||
} else if (e.data[0] == "bmpImage") {
|
||||
ipc.send('bmp-image', e.data[1]);
|
||||
} else if (e.data[0] == "dialogCW") {
|
||||
ipc.send("dialogCW", e.data[1])
|
||||
} else if (e.data[0] == "nativeNotf") {
|
||||
console.log(e.data[1])
|
||||
ipc.send('native-notf', e.data[1]);
|
||||
} else if (e.data[0] == "dialogClient") {
|
||||
ipc.send("dialogClient", e.data[1])
|
||||
} else if (e.data[0] == "generalDL") {
|
||||
ipc.send('general-dl', e.data[1]);
|
||||
} else if (e.data[0] == "openFinder") {
|
||||
ipc.send('open-finder', e.data[1]);
|
||||
} else if (e.data[0] == "columnDel") {
|
||||
ipc.send('column-del', e.data[1]);
|
||||
} else if (e.data[0] == "lang") {
|
||||
ipc.send('lang', e.data[1]);
|
||||
} else if (e.data[0] == "exportSettings") {
|
||||
ipc.send('exportSettings', e.data[1]);
|
||||
} else if (e.data[0] == "importSettings") {
|
||||
ipc.send('importSettings', e.data[1]);
|
||||
} else if (e.data[0] == "customSound") {
|
||||
ipc.send('customSound', e.data[1]);
|
||||
} else if (e.data[0] == "themeJsonDelete") {
|
||||
ipc.send('theme-json-delete', e.data[1]);
|
||||
} else if (e.data[0] == "themeJsonCreate") {
|
||||
ipc.send('theme-json-create', e.data[1]);
|
||||
} else if (e.data[0] == "themeJsonRequest") {
|
||||
ipc.send('theme-json-request', e.data[1]);
|
||||
} else if (e.data[0] == "ha") {
|
||||
ipc.send('ha', e.data[1]);
|
||||
} else if (e.data[0] == "aboutData") {
|
||||
ipc.send('aboutData', "");
|
||||
} else if (e.data[0] == "itunes") {
|
||||
console.log("NowPlaying" + ipc.listenerCount('itunes-np'))
|
||||
if (ipc.listenerCount('itunes-np') > 1) {
|
||||
return false;
|
||||
} else {
|
||||
ipc.send("itunes", e.data[1])
|
||||
}
|
||||
} else if (e.data[0] == "themeCSSRequest") {
|
||||
ipc.send('theme-css-request', e.data[1]);
|
||||
} else if (e.data[0] == "downloadButton") {
|
||||
ipc.send('download-btn', e.data[1]);
|
||||
} else if (e.data[0] == "nano") {
|
||||
ipc.send('nano', null);
|
||||
}
|
||||
}
|
||||
//version.js
|
||||
ipc.send("getPlatform", "")
|
||||
ipc.on('platform', function (event, args) {
|
||||
localStorage.setItem("platform", args[0])
|
||||
localStorage.setItem("bit", args[1])
|
||||
localStorage.setItem("about", JSON.stringify([args[2], args[3], args[4]]))
|
||||
})
|
||||
|
||||
ipc.on('reload', function (event, arg) {
|
||||
location.reload();
|
||||
})
|
||||
//Native Notf
|
||||
ipc.on('shownotf', function (event, args) {
|
||||
if (args["type"] == "toot") {
|
||||
postMessage(["details", [id, acct_id]], "*")
|
||||
} else if (args["type"] == "userdata") {
|
||||
postMessage(["udg", [user, acct_id]], "*")
|
||||
}
|
||||
})
|
||||
|
||||
//first.js
|
||||
ipc.on('custom-css-response', function (event, arg) {
|
||||
if (arg == "") { return false; }
|
||||
var styleNode = document.createElement("style");
|
||||
styleNode.setAttribute("type", "text/css")
|
||||
|
||||
var content = document.createTextNode(arg)
|
||||
styleNode.append(content)
|
||||
document.getElementsByTagName("head")[0].append(styleNode)
|
||||
})
|
||||
ipc.on('theme-css-response', function (event, arg) {
|
||||
if (arg == "") { return false; }
|
||||
var styleNode = document.createElement("style");
|
||||
styleNode.setAttribute("type", "text/css")
|
||||
|
||||
var content = document.createTextNode(arg)
|
||||
styleNode.append(content)
|
||||
document.getElementsByTagName("head")[0].append(styleNode)
|
||||
})
|
||||
//img.js
|
||||
ipc.on('bmp-img-comp', function (event, b64) {
|
||||
postMessage(["media", [b64[0], "image/png", b64[1]]], "*")
|
||||
});
|
||||
//ui,img.js
|
||||
ipc.on('general-dl-prog', function (event, arg) {
|
||||
console.log("Progress: " + arg);
|
||||
})
|
||||
ipc.on('general-dl-message', function (event, arg) {
|
||||
var argC = arg.replace(/\\/g, "\\\\") + "\\\\.";
|
||||
console.log("saved")
|
||||
postMessage(["toastSaved", [arg, argC]], "*")
|
||||
})
|
||||
//setting.js
|
||||
ipc.on('langres', function (event, arg) {
|
||||
location.href = "../" + arg + "/setting.html"
|
||||
});
|
||||
ipc.on('exportSettingsFile', function (event, savedFiles) {
|
||||
var exp = exportSettingsCore()
|
||||
ipc.send('export', [savedFiles, JSON.stringify(exp)]);
|
||||
postMessage(["alert", "Done"], "*")
|
||||
//cards
|
||||
//lang
|
||||
});
|
||||
ipc.on('config', function (event, arg) {
|
||||
postMessage(["importSettingsCore", arg], "*")
|
||||
});
|
||||
ipc.on('savefolder', function (event, arg) {
|
||||
localStorage.setItem("savefolder", arg);
|
||||
});
|
||||
ipc.on('font-list', function (event, arg) {
|
||||
postMessage(["fontList", arg], "*")
|
||||
});
|
||||
ipc.on('customSoundRender', function (event, args) {
|
||||
postMessage(["customSoundSave", [args[0], args[1]]], "*")
|
||||
});
|
||||
ipc.on('theme-json-list-response', function (event, args) {
|
||||
postMessage(["ctLoadCore", args], "*")
|
||||
});
|
||||
ipc.on('theme-json-delete-complete', function (event, args) {
|
||||
postMessage(["ctLoad", ""], "*")
|
||||
});
|
||||
ipc.on('theme-json-response', function (event, args) {
|
||||
postMessage(["customConnect", args], "*")
|
||||
});
|
||||
ipc.on('theme-json-create-complete', function (event, args) {
|
||||
postMessage(["clearCustomImport", ""], "*")
|
||||
postMessage(["ctLoad", ""], "*")
|
||||
});
|
||||
//spotify.js
|
||||
ipc.once('itunes-np', function (event, arg) {
|
||||
postMessage(["npCore", arg], "*")
|
||||
})
|
||||
//tips.js
|
||||
ipc.on('memory', function (event, arg) {
|
||||
var use = arg[0];
|
||||
var cpu = arg[1];
|
||||
var total = arg[2]
|
||||
postMessage(["renderMem", [use, cpu, total]], "*")
|
||||
})
|
||||
//update.html
|
||||
ipc.on('prog', function (event, arg) {
|
||||
postMessage(["updateProg", arg], "*")
|
||||
})
|
||||
ipc.on('mess', function (event, arg) {
|
||||
postMessage(["updateMess", arg], "*")
|
||||
})
|
||||
var webviewDom = document.getElementById('webview');
|
||||
if (webviewDom) {
|
||||
webviewDom.addEventListener('new-window', function (e) {
|
||||
shell.openExternal(e.url);
|
||||
});
|
||||
}
|
||||
533
app/js/platform/punycode.js
Normal file
@@ -0,0 +1,533 @@
|
||||
/*! https://mths.be/punycode v1.4.1 by @mathias */
|
||||
;(function(root) {
|
||||
|
||||
/** Detect free variables */
|
||||
var freeExports = typeof exports == 'object' && exports &&
|
||||
!exports.nodeType && exports;
|
||||
var freeModule = typeof module == 'object' && module &&
|
||||
!module.nodeType && module;
|
||||
var freeGlobal = typeof global == 'object' && global;
|
||||
if (
|
||||
freeGlobal.global === freeGlobal ||
|
||||
freeGlobal.window === freeGlobal ||
|
||||
freeGlobal.self === freeGlobal
|
||||
) {
|
||||
root = freeGlobal;
|
||||
}
|
||||
|
||||
/**
|
||||
* The `punycode` object.
|
||||
* @name punycode
|
||||
* @type Object
|
||||
*/
|
||||
var punycode,
|
||||
|
||||
/** Highest positive signed 32-bit float value */
|
||||
maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
|
||||
|
||||
/** Bootstring parameters */
|
||||
base = 36,
|
||||
tMin = 1,
|
||||
tMax = 26,
|
||||
skew = 38,
|
||||
damp = 700,
|
||||
initialBias = 72,
|
||||
initialN = 128, // 0x80
|
||||
delimiter = '-', // '\x2D'
|
||||
|
||||
/** Regular expressions */
|
||||
regexPunycode = /^xn--/,
|
||||
regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
|
||||
regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
|
||||
|
||||
/** Error messages */
|
||||
errors = {
|
||||
'overflow': 'Overflow: input needs wider integers to process',
|
||||
'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
|
||||
'invalid-input': 'Invalid input'
|
||||
},
|
||||
|
||||
/** Convenience shortcuts */
|
||||
baseMinusTMin = base - tMin,
|
||||
floor = Math.floor,
|
||||
stringFromCharCode = String.fromCharCode,
|
||||
|
||||
/** Temporary variable */
|
||||
key;
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* A generic error utility function.
|
||||
* @private
|
||||
* @param {String} type The error type.
|
||||
* @returns {Error} Throws a `RangeError` with the applicable error message.
|
||||
*/
|
||||
function error(type) {
|
||||
throw new RangeError(errors[type]);
|
||||
}
|
||||
|
||||
/**
|
||||
* A generic `Array#map` utility function.
|
||||
* @private
|
||||
* @param {Array} array The array to iterate over.
|
||||
* @param {Function} callback The function that gets called for every array
|
||||
* item.
|
||||
* @returns {Array} A new array of values returned by the callback function.
|
||||
*/
|
||||
function map(array, fn) {
|
||||
var length = array.length;
|
||||
var result = [];
|
||||
while (length--) {
|
||||
result[length] = fn(array[length]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* A simple `Array#map`-like wrapper to work with domain name strings or email
|
||||
* addresses.
|
||||
* @private
|
||||
* @param {String} domain The domain name or email address.
|
||||
* @param {Function} callback The function that gets called for every
|
||||
* character.
|
||||
* @returns {Array} A new string of characters returned by the callback
|
||||
* function.
|
||||
*/
|
||||
function mapDomain(string, fn) {
|
||||
var parts = string.split('@');
|
||||
var result = '';
|
||||
if (parts.length > 1) {
|
||||
// In email addresses, only the domain name should be punycoded. Leave
|
||||
// the local part (i.e. everything up to `@`) intact.
|
||||
result = parts[0] + '@';
|
||||
string = parts[1];
|
||||
}
|
||||
// Avoid `split(regex)` for IE8 compatibility. See #17.
|
||||
string = string.replace(regexSeparators, '\x2E');
|
||||
var labels = string.split('.');
|
||||
var encoded = map(labels, fn).join('.');
|
||||
return result + encoded;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an array containing the numeric code points of each Unicode
|
||||
* character in the string. While JavaScript uses UCS-2 internally,
|
||||
* this function will convert a pair of surrogate halves (each of which
|
||||
* UCS-2 exposes as separate characters) into a single code point,
|
||||
* matching UTF-16.
|
||||
* @see `punycode.ucs2.encode`
|
||||
* @see <https://mathiasbynens.be/notes/javascript-encoding>
|
||||
* @memberOf punycode.ucs2
|
||||
* @name decode
|
||||
* @param {String} string The Unicode input string (UCS-2).
|
||||
* @returns {Array} The new array of code points.
|
||||
*/
|
||||
function ucs2decode(string) {
|
||||
var output = [],
|
||||
counter = 0,
|
||||
length = string.length,
|
||||
value,
|
||||
extra;
|
||||
while (counter < length) {
|
||||
value = string.charCodeAt(counter++);
|
||||
if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
|
||||
// high surrogate, and there is a next character
|
||||
extra = string.charCodeAt(counter++);
|
||||
if ((extra & 0xFC00) == 0xDC00) { // low surrogate
|
||||
output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
|
||||
} else {
|
||||
// unmatched surrogate; only append this code unit, in case the next
|
||||
// code unit is the high surrogate of a surrogate pair
|
||||
output.push(value);
|
||||
counter--;
|
||||
}
|
||||
} else {
|
||||
output.push(value);
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a string based on an array of numeric code points.
|
||||
* @see `punycode.ucs2.decode`
|
||||
* @memberOf punycode.ucs2
|
||||
* @name encode
|
||||
* @param {Array} codePoints The array of numeric code points.
|
||||
* @returns {String} The new Unicode string (UCS-2).
|
||||
*/
|
||||
function ucs2encode(array) {
|
||||
return map(array, function(value) {
|
||||
var output = '';
|
||||
if (value > 0xFFFF) {
|
||||
value -= 0x10000;
|
||||
output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
|
||||
value = 0xDC00 | value & 0x3FF;
|
||||
}
|
||||
output += stringFromCharCode(value);
|
||||
return output;
|
||||
}).join('');
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a basic code point into a digit/integer.
|
||||
* @see `digitToBasic()`
|
||||
* @private
|
||||
* @param {Number} codePoint The basic numeric code point value.
|
||||
* @returns {Number} The numeric value of a basic code point (for use in
|
||||
* representing integers) in the range `0` to `base - 1`, or `base` if
|
||||
* the code point does not represent a value.
|
||||
*/
|
||||
function basicToDigit(codePoint) {
|
||||
if (codePoint - 48 < 10) {
|
||||
return codePoint - 22;
|
||||
}
|
||||
if (codePoint - 65 < 26) {
|
||||
return codePoint - 65;
|
||||
}
|
||||
if (codePoint - 97 < 26) {
|
||||
return codePoint - 97;
|
||||
}
|
||||
return base;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a digit/integer into a basic code point.
|
||||
* @see `basicToDigit()`
|
||||
* @private
|
||||
* @param {Number} digit The numeric value of a basic code point.
|
||||
* @returns {Number} The basic code point whose value (when used for
|
||||
* representing integers) is `digit`, which needs to be in the range
|
||||
* `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
|
||||
* used; else, the lowercase form is used. The behavior is undefined
|
||||
* if `flag` is non-zero and `digit` has no uppercase form.
|
||||
*/
|
||||
function digitToBasic(digit, flag) {
|
||||
// 0..25 map to ASCII a..z or A..Z
|
||||
// 26..35 map to ASCII 0..9
|
||||
return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bias adaptation function as per section 3.4 of RFC 3492.
|
||||
* https://tools.ietf.org/html/rfc3492#section-3.4
|
||||
* @private
|
||||
*/
|
||||
function adapt(delta, numPoints, firstTime) {
|
||||
var k = 0;
|
||||
delta = firstTime ? floor(delta / damp) : delta >> 1;
|
||||
delta += floor(delta / numPoints);
|
||||
for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
|
||||
delta = floor(delta / baseMinusTMin);
|
||||
}
|
||||
return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a Punycode string of ASCII-only symbols to a string of Unicode
|
||||
* symbols.
|
||||
* @memberOf punycode
|
||||
* @param {String} input The Punycode string of ASCII-only symbols.
|
||||
* @returns {String} The resulting string of Unicode symbols.
|
||||
*/
|
||||
function decode(input) {
|
||||
// Don't use UCS-2
|
||||
var output = [],
|
||||
inputLength = input.length,
|
||||
out,
|
||||
i = 0,
|
||||
n = initialN,
|
||||
bias = initialBias,
|
||||
basic,
|
||||
j,
|
||||
index,
|
||||
oldi,
|
||||
w,
|
||||
k,
|
||||
digit,
|
||||
t,
|
||||
/** Cached calculation results */
|
||||
baseMinusT;
|
||||
|
||||
// Handle the basic code points: let `basic` be the number of input code
|
||||
// points before the last delimiter, or `0` if there is none, then copy
|
||||
// the first basic code points to the output.
|
||||
|
||||
basic = input.lastIndexOf(delimiter);
|
||||
if (basic < 0) {
|
||||
basic = 0;
|
||||
}
|
||||
|
||||
for (j = 0; j < basic; ++j) {
|
||||
// if it's not a basic code point
|
||||
if (input.charCodeAt(j) >= 0x80) {
|
||||
error('not-basic');
|
||||
}
|
||||
output.push(input.charCodeAt(j));
|
||||
}
|
||||
|
||||
// Main decoding loop: start just after the last delimiter if any basic code
|
||||
// points were copied; start at the beginning otherwise.
|
||||
|
||||
for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
|
||||
|
||||
// `index` is the index of the next character to be consumed.
|
||||
// Decode a generalized variable-length integer into `delta`,
|
||||
// which gets added to `i`. The overflow checking is easier
|
||||
// if we increase `i` as we go, then subtract off its starting
|
||||
// value at the end to obtain `delta`.
|
||||
for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
|
||||
|
||||
if (index >= inputLength) {
|
||||
error('invalid-input');
|
||||
}
|
||||
|
||||
digit = basicToDigit(input.charCodeAt(index++));
|
||||
|
||||
if (digit >= base || digit > floor((maxInt - i) / w)) {
|
||||
error('overflow');
|
||||
}
|
||||
|
||||
i += digit * w;
|
||||
t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
|
||||
|
||||
if (digit < t) {
|
||||
break;
|
||||
}
|
||||
|
||||
baseMinusT = base - t;
|
||||
if (w > floor(maxInt / baseMinusT)) {
|
||||
error('overflow');
|
||||
}
|
||||
|
||||
w *= baseMinusT;
|
||||
|
||||
}
|
||||
|
||||
out = output.length + 1;
|
||||
bias = adapt(i - oldi, out, oldi == 0);
|
||||
|
||||
// `i` was supposed to wrap around from `out` to `0`,
|
||||
// incrementing `n` each time, so we'll fix that now:
|
||||
if (floor(i / out) > maxInt - n) {
|
||||
error('overflow');
|
||||
}
|
||||
|
||||
n += floor(i / out);
|
||||
i %= out;
|
||||
|
||||
// Insert `n` at position `i` of the output
|
||||
output.splice(i++, 0, n);
|
||||
|
||||
}
|
||||
|
||||
return ucs2encode(output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a string of Unicode symbols (e.g. a domain name label) to a
|
||||
* Punycode string of ASCII-only symbols.
|
||||
* @memberOf punycode
|
||||
* @param {String} input The string of Unicode symbols.
|
||||
* @returns {String} The resulting Punycode string of ASCII-only symbols.
|
||||
*/
|
||||
function encode(input) {
|
||||
var n,
|
||||
delta,
|
||||
handledCPCount,
|
||||
basicLength,
|
||||
bias,
|
||||
j,
|
||||
m,
|
||||
q,
|
||||
k,
|
||||
t,
|
||||
currentValue,
|
||||
output = [],
|
||||
/** `inputLength` will hold the number of code points in `input`. */
|
||||
inputLength,
|
||||
/** Cached calculation results */
|
||||
handledCPCountPlusOne,
|
||||
baseMinusT,
|
||||
qMinusT;
|
||||
|
||||
// Convert the input in UCS-2 to Unicode
|
||||
input = ucs2decode(input);
|
||||
|
||||
// Cache the length
|
||||
inputLength = input.length;
|
||||
|
||||
// Initialize the state
|
||||
n = initialN;
|
||||
delta = 0;
|
||||
bias = initialBias;
|
||||
|
||||
// Handle the basic code points
|
||||
for (j = 0; j < inputLength; ++j) {
|
||||
currentValue = input[j];
|
||||
if (currentValue < 0x80) {
|
||||
output.push(stringFromCharCode(currentValue));
|
||||
}
|
||||
}
|
||||
|
||||
handledCPCount = basicLength = output.length;
|
||||
|
||||
// `handledCPCount` is the number of code points that have been handled;
|
||||
// `basicLength` is the number of basic code points.
|
||||
|
||||
// Finish the basic string - if it is not empty - with a delimiter
|
||||
if (basicLength) {
|
||||
output.push(delimiter);
|
||||
}
|
||||
|
||||
// Main encoding loop:
|
||||
while (handledCPCount < inputLength) {
|
||||
|
||||
// All non-basic code points < n have been handled already. Find the next
|
||||
// larger one:
|
||||
for (m = maxInt, j = 0; j < inputLength; ++j) {
|
||||
currentValue = input[j];
|
||||
if (currentValue >= n && currentValue < m) {
|
||||
m = currentValue;
|
||||
}
|
||||
}
|
||||
|
||||
// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
|
||||
// but guard against overflow
|
||||
handledCPCountPlusOne = handledCPCount + 1;
|
||||
if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
|
||||
error('overflow');
|
||||
}
|
||||
|
||||
delta += (m - n) * handledCPCountPlusOne;
|
||||
n = m;
|
||||
|
||||
for (j = 0; j < inputLength; ++j) {
|
||||
currentValue = input[j];
|
||||
|
||||
if (currentValue < n && ++delta > maxInt) {
|
||||
error('overflow');
|
||||
}
|
||||
|
||||
if (currentValue == n) {
|
||||
// Represent delta as a generalized variable-length integer
|
||||
for (q = delta, k = base; /* no condition */; k += base) {
|
||||
t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
|
||||
if (q < t) {
|
||||
break;
|
||||
}
|
||||
qMinusT = q - t;
|
||||
baseMinusT = base - t;
|
||||
output.push(
|
||||
stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
|
||||
);
|
||||
q = floor(qMinusT / baseMinusT);
|
||||
}
|
||||
|
||||
output.push(stringFromCharCode(digitToBasic(q, 0)));
|
||||
bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
|
||||
delta = 0;
|
||||
++handledCPCount;
|
||||
}
|
||||
}
|
||||
|
||||
++delta;
|
||||
++n;
|
||||
|
||||
}
|
||||
return output.join('');
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a Punycode string representing a domain name or an email address
|
||||
* to Unicode. Only the Punycoded parts of the input will be converted, i.e.
|
||||
* it doesn't matter if you call it on a string that has already been
|
||||
* converted to Unicode.
|
||||
* @memberOf punycode
|
||||
* @param {String} input The Punycoded domain name or email address to
|
||||
* convert to Unicode.
|
||||
* @returns {String} The Unicode representation of the given Punycode
|
||||
* string.
|
||||
*/
|
||||
function toUnicode(input) {
|
||||
return mapDomain(input, function(string) {
|
||||
return regexPunycode.test(string)
|
||||
? decode(string.slice(4).toLowerCase())
|
||||
: string;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a Unicode string representing a domain name or an email address to
|
||||
* Punycode. Only the non-ASCII parts of the domain name will be converted,
|
||||
* i.e. it doesn't matter if you call it with a domain that's already in
|
||||
* ASCII.
|
||||
* @memberOf punycode
|
||||
* @param {String} input The domain name or email address to convert, as a
|
||||
* Unicode string.
|
||||
* @returns {String} The Punycode representation of the given domain name or
|
||||
* email address.
|
||||
*/
|
||||
function toASCII(input) {
|
||||
return mapDomain(input, function(string) {
|
||||
return regexNonASCII.test(string)
|
||||
? 'xn--' + encode(string)
|
||||
: string;
|
||||
});
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/** Define the public API */
|
||||
punycode = {
|
||||
/**
|
||||
* A string representing the current Punycode.js version number.
|
||||
* @memberOf punycode
|
||||
* @type String
|
||||
*/
|
||||
'version': '1.4.1',
|
||||
/**
|
||||
* An object of methods to convert from JavaScript's internal character
|
||||
* representation (UCS-2) to Unicode code points, and back.
|
||||
* @see <https://mathiasbynens.be/notes/javascript-encoding>
|
||||
* @memberOf punycode
|
||||
* @type Object
|
||||
*/
|
||||
'ucs2': {
|
||||
'decode': ucs2decode,
|
||||
'encode': ucs2encode
|
||||
},
|
||||
'decode': decode,
|
||||
'encode': encode,
|
||||
'toASCII': toASCII,
|
||||
'toUnicode': toUnicode
|
||||
};
|
||||
|
||||
/** Expose `punycode` */
|
||||
// Some AMD build optimizers, like r.js, check for specific condition patterns
|
||||
// like the following:
|
||||
if (
|
||||
typeof define == 'function' &&
|
||||
typeof define.amd == 'object' &&
|
||||
define.amd
|
||||
) {
|
||||
define('punycode', function() {
|
||||
return punycode;
|
||||
});
|
||||
} else if (freeExports && freeModule) {
|
||||
if (module.exports == freeExports) {
|
||||
// in Node.js, io.js, or RingoJS v0.8.0+
|
||||
freeModule.exports = punycode;
|
||||
} else {
|
||||
// in Narwhal or RingoJS v0.7.0-
|
||||
for (key in punycode) {
|
||||
punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// in Rhino or a web browser
|
||||
root.punycode = punycode;
|
||||
}
|
||||
|
||||
}(this));
|
||||
@@ -1,51 +0,0 @@
|
||||
var electron = require("electron");
|
||||
const fs = require("fs");
|
||||
const os = require('os')
|
||||
const shell = electron.shell;
|
||||
const path = require('path')
|
||||
function shot(){
|
||||
//screenshotMsg.textContent = 'Gathering screens...'
|
||||
$(window).height
|
||||
let options = {
|
||||
types: ['screen'],
|
||||
thumbnailSize: {
|
||||
width: window.parent.screen.width,
|
||||
height: window.parent.screen.height
|
||||
}
|
||||
}
|
||||
const desktopCapturer = electron.desktopCapturer;
|
||||
desktopCapturer.getSources(options, function(error, sources) {
|
||||
if (error) return console.log(error)
|
||||
|
||||
sources.forEach(function(source) {
|
||||
if(location.search){
|
||||
var m = location.search.match(/\?id=([a-zA-Z-0-9]+)/);
|
||||
var title=m[1];
|
||||
}else{
|
||||
var title="screenshot";
|
||||
}
|
||||
if (source.name === 'Screen 1' || source.name === 'TheDesk') {
|
||||
var durl=source.thumbnail.toDataURL();
|
||||
var b64 = durl.match(
|
||||
/data:image\/png;base64,(.+)/
|
||||
);
|
||||
const screenshotPath = path.join(os.tmpdir(), 'screenshot.png');
|
||||
const savePath = path.join(os.tmpdir(), 'screenshot.png');
|
||||
var ipc = electron.ipcRenderer;
|
||||
var h = $(window).height()-150;
|
||||
var w = $(window).width();
|
||||
ipc.send('shot', ['file://' + screenshotPath,w,h,b64[1],title]);
|
||||
if($(".img-parsed").length>0){
|
||||
for(i=0;i<$(".img-parsed").length;i++){
|
||||
var url=$(".img-parsed").eq(i).attr("data-url");
|
||||
ipc.send('shot-img-dl', [url,title+"_img"+i+".png"]);
|
||||
}
|
||||
}
|
||||
window.close();
|
||||
return;
|
||||
const message = `Saved screenshot to: ${screenshotPath}`
|
||||
//screenshotMsg.textContent = message
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -12,33 +12,33 @@ function _classCallCheck(a, e) {
|
||||
if (!(a instanceof e)) throw new TypeError("Cannot call a class as a function")
|
||||
}
|
||||
var TJScrollTask = function () {
|
||||
function a(e, f, g) {
|
||||
_classCallCheck(this, a), this.tjDeck = e, this.$t = e.$wrap, this.x = f, this.d = g, this.sl = e.wrapL, this.sTime = Date.now(), this.ended = !1, this._bindAnim = this._anim.bind(this);
|
||||
var h = e.getClms();
|
||||
0 > f || f > h[0].offsetWidth * (h.length - 1) ? this.ended = !0 : requestAnimationFrame(this._bindAnim)
|
||||
function a(e, f, g) {
|
||||
_classCallCheck(this, a), this.tjDeck = e, this.$t = e.$wrap, this.x = f, this.d = g, this.sl = e.wrapL, this.sTime = Date.now(), this.ended = !1, this._bindAnim = this._anim.bind(this);
|
||||
var h = e.getClms();
|
||||
0 > f || f > h[0].offsetWidth * (h.length - 1) ? this.ended = !0 : requestAnimationFrame(this._bindAnim)
|
||||
}
|
||||
return _createClass(a, [{
|
||||
key: "stop",
|
||||
value: function stop() {
|
||||
this.ended || (this.ended = !0, cancelAnimationFrame(this._bindAnim))
|
||||
}
|
||||
return _createClass(a, [{
|
||||
key: "stop",
|
||||
value: function stop() {
|
||||
this.ended || (this.ended = !0, cancelAnimationFrame(this._bindAnim))
|
||||
}, {
|
||||
key: "_anim",
|
||||
value: function _anim() {
|
||||
if (!this.ended) {
|
||||
var e = (Date.now() - this.sTime) / this.d,
|
||||
f = this.sl,
|
||||
g = this.x - this.sl;
|
||||
1 < e && !this.ended && (this.stop(), e = 1), this.tjDeck.scrollWrap(this._easeOut(e, f, g, 1)), 1 > e && requestAnimationFrame(this._bindAnim)
|
||||
}
|
||||
}, {
|
||||
key: "_anim",
|
||||
value: function _anim() {
|
||||
if (!this.ended) {
|
||||
var e = (Date.now() - this.sTime) / this.d,
|
||||
f = this.sl,
|
||||
g = this.x - this.sl;
|
||||
1 < e && !this.ended && (this.stop(), e = 1), this.tjDeck.scrollWrap(this._easeOut(e, f, g, 1)), 1 > e && requestAnimationFrame(this._bindAnim)
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "_easeOut",
|
||||
value: function _easeOut(e, f, g, h) {
|
||||
return e /= h, --e, g * (e * e * e + 1) + f
|
||||
}
|
||||
}]), a
|
||||
}(),
|
||||
}
|
||||
}, {
|
||||
key: "_easeOut",
|
||||
value: function _easeOut(e, f, g, h) {
|
||||
return e /= h, --e, g * (e * e * e + 1) + f
|
||||
}
|
||||
}]), a
|
||||
}(),
|
||||
TJDeck = function () {
|
||||
function a() {
|
||||
_classCallCheck(this, a), this.version = "0.0.9", this.$wrap = document.querySelector(".js-app-columns"), this.wrapL = 0, this.scrollTask = null, this.options = this.getOptionObj(), this.setOptionFromObj(this.options), this.$options = this.createOptionPanel(), document.body.appendChild(this.$options), this.updateBlur(), this.updateLight()
|
||||
@@ -117,22 +117,22 @@ var TJScrollTask = function () {
|
||||
key: "observeModals",
|
||||
value: function observeModals() {
|
||||
for (var e = new MutationObserver(function (j) {
|
||||
for (var k, l, m = 0; m < j.length; m++) {
|
||||
k = j[m];
|
||||
for (var o = 0; o < k.addedNodes.length; o++) l = k.addedNodes[m], this.stopAnkerFromModal(l)
|
||||
}
|
||||
}.bind(this)), f = {
|
||||
attributes: !1,
|
||||
characterData: !0,
|
||||
childList: !0
|
||||
}, g = document.querySelectorAll(".js-modals-container, .js-modal"), h = 0; h < g.length; h++) e.observe(g[h], f)
|
||||
for (var k, l, m = 0; m < j.length; m++) {
|
||||
k = j[m];
|
||||
for (var o = 0; o < k.addedNodes.length; o++) l = k.addedNodes[m], this.stopAnkerFromModal(l)
|
||||
}
|
||||
}.bind(this)), f = {
|
||||
attributes: !1,
|
||||
characterData: !0,
|
||||
childList: !0
|
||||
}, g = document.querySelectorAll(".js-modals-container, .js-modal"), h = 0; h < g.length; h++) e.observe(g[h], f)
|
||||
}
|
||||
}, {
|
||||
key: "stopAnkerFromModal",
|
||||
value: function stopAnkerFromModal(e) {
|
||||
for (var g, f = e.querySelectorAll("a"), h = function (k) {
|
||||
return k.preventDefault(), k.target.removeEventListener("click", h), !1
|
||||
}, j = 0; j < f.length; j++) g = f[j], g.href && g.href.match(/#$/) && g.addEventListener("click", h)
|
||||
return k.preventDefault(), k.target.removeEventListener("click", h), !1
|
||||
}, j = 0; j < f.length; j++) g = f[j], g.href && g.href.match(/#$/) && g.addEventListener("click", h)
|
||||
}
|
||||
}, {
|
||||
key: "observeClms",
|
||||
@@ -160,7 +160,7 @@ var TJScrollTask = function () {
|
||||
if (j) {
|
||||
if (0 > j) {
|
||||
var l = this._getPosObj(k);
|
||||
if (Math.abs(l.x - e.x) < Math.abs(l.y - e.y)) return void(j = 0);
|
||||
if (Math.abs(l.x - e.x) < Math.abs(l.y - e.y)) return void (j = 0);
|
||||
j = 1
|
||||
}
|
||||
if (1 == j) {
|
||||
@@ -217,7 +217,7 @@ var TJScrollTask = function () {
|
||||
}
|
||||
}, {
|
||||
key: "showTJSetting",
|
||||
value: function showTJSetting() {}
|
||||
value: function showTJSetting() { }
|
||||
}, {
|
||||
key: "addTJNav",
|
||||
value: function addTJNav() {
|
||||
@@ -298,7 +298,7 @@ var TJScrollTask = function () {
|
||||
}
|
||||
}, {
|
||||
key: "refreshStyle",
|
||||
value: function refreshStyle() {}
|
||||
value: function refreshStyle() { }
|
||||
}, {
|
||||
key: "addStyle",
|
||||
value: function addStyle() {
|
||||
|
||||
@@ -1,67 +1,67 @@
|
||||
//BBCodeとMarkdownの入力・パーサー
|
||||
//アカウント変えた時にBBとかMDとか
|
||||
function mdCheck(){
|
||||
function mdCheck() {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var profimg=localStorage.getItem("prof_"+acct_id);
|
||||
if(!profimg){
|
||||
profimg="../../img/missing.svg";
|
||||
var profimg = localStorage.getItem("prof_" + acct_id);
|
||||
if (!profimg) {
|
||||
profimg = "../../img/missing.svg";
|
||||
}
|
||||
$("#acct-sel-prof").attr("src",profimg);
|
||||
if(localStorage.getItem("post_" + acct_id)){
|
||||
$("#toot-post-btn").text(localStorage.getItem("post_" + acct_id)+"("+localStorage.getItem("domain_"+acct_id)+")");
|
||||
}else{
|
||||
$("#toot-post-btn").text(lang.lang_toot+"("+localStorage.getItem("domain_"+acct_id)+")");
|
||||
}
|
||||
if(!localStorage.getItem("bb_"+acct_id) && !localStorage.getItem("md_"+acct_id)){
|
||||
$(".markdown").addClass("hide");
|
||||
$("#acct-sel-prof").attr("src", profimg);
|
||||
if (localStorage.getItem("post_" + acct_id)) {
|
||||
$("#toot-post-btn").text(localStorage.getItem("post_" + acct_id) + "(" + localStorage.getItem("domain_" + acct_id) + ")");
|
||||
} else {
|
||||
$("#toot-post-btn").text(lang.lang_toot + "(" + localStorage.getItem("domain_" + acct_id) + ")");
|
||||
}
|
||||
if (!localStorage.getItem("bb_" + acct_id) && !localStorage.getItem("md_" + acct_id)) {
|
||||
$(".markdown").addClass("hide");
|
||||
$(".anti-markdown").addClass("hide");
|
||||
}else{
|
||||
} else {
|
||||
$(".anti-markdown").removeClass("hide");
|
||||
}
|
||||
if($(".markdown").hasClass("hide")){
|
||||
localStorage.setItem("md","hide");
|
||||
}else{
|
||||
}
|
||||
if ($(".markdown").hasClass("hide")) {
|
||||
localStorage.setItem("md", "hide");
|
||||
} else {
|
||||
localStorage.removeItem("md");
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if(domain=="itabashi.0j0.jp"){
|
||||
if (domain == "itabashi.0j0.jp") {
|
||||
$("#limited-button").removeClass("hide");
|
||||
}else{
|
||||
} else {
|
||||
$("#limited-button").addClass("hide");
|
||||
}
|
||||
if(domain=="kirishima.cloud"){
|
||||
if (domain == "kirishima.cloud") {
|
||||
$("#faicon-btn").show();
|
||||
}else{
|
||||
} else {
|
||||
$("#faicon-btn").hide();
|
||||
}
|
||||
if(domain=="imastodon.net"){
|
||||
if (domain == "imastodon.net") {
|
||||
trendTag();
|
||||
}else{
|
||||
} else {
|
||||
$("#trendtag").html("");
|
||||
}
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
Materialize.toast(lang.lang_bbmd_misskey, 5000);
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
M.toast({ html: lang.lang_bbmd_misskey, displayLength: 5000 })
|
||||
}
|
||||
if(idata[domain+"_letters"]){
|
||||
$("#textarea").attr("data-length", idata[domain+"_letters"])
|
||||
}else{
|
||||
if (idata[domain + "_letters"]) {
|
||||
$("#textarea").attr("data-length", idata[domain + "_letters"])
|
||||
} else {
|
||||
$("#textarea").attr("data-length", 500)
|
||||
}
|
||||
if(idata[domain+"_glitch"]==="true"){
|
||||
if (idata[domain + "_glitch"] === "true") {
|
||||
$("#local-button").removeClass("hide");
|
||||
}else{
|
||||
} else {
|
||||
$("#local-button").addClass("hide");
|
||||
}
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (multi) {
|
||||
var obj = JSON.parse(multi);
|
||||
if(obj[acct_id].background && obj[acct_id].background!="def" && obj[acct_id].text && obj[acct_id].text!="def"){
|
||||
if (obj[acct_id].background && obj[acct_id].background != "def" && obj[acct_id].text && obj[acct_id].text != "def") {
|
||||
$("#toot-post-btn").removeClass("indigo");
|
||||
$("#toot-post-btn").css("background-color","#"+obj[acct_id].background);
|
||||
$("#toot-post-btn").css("color",obj[acct_id].text);
|
||||
}else{
|
||||
$("#toot-post-btn").css("background-color","");
|
||||
$("#toot-post-btn").css("color","");
|
||||
$("#toot-post-btn").css("background-color", "#" + obj[acct_id].background);
|
||||
$("#toot-post-btn").css("color", obj[acct_id].text);
|
||||
} else {
|
||||
$("#toot-post-btn").css("background-color", "");
|
||||
$("#toot-post-btn").css("color", "");
|
||||
$("#toot-post-btn").addClass("indigo");
|
||||
|
||||
}
|
||||
@@ -69,248 +69,248 @@ function mdCheck(){
|
||||
loadVis();
|
||||
}
|
||||
//BOXのトグルボタン
|
||||
function mdToggle(){
|
||||
function mdToggle() {
|
||||
$(".markdown").toggleClass("hide");
|
||||
$(".anti-markdown").toggleClass("hide");
|
||||
if($(".markdown").hasClass("hide")){
|
||||
localStorage.setItem("md","hide");
|
||||
}else{
|
||||
if ($(".markdown").hasClass("hide")) {
|
||||
localStorage.setItem("md", "hide");
|
||||
} else {
|
||||
localStorage.removeItem("md");
|
||||
}
|
||||
|
||||
}
|
||||
//最初に読み込みます(MD対応インスタンスかチェック)
|
||||
if(localStorage.getItem("md")=="hide"){
|
||||
if (localStorage.getItem("md") == "hide") {
|
||||
$(".markdown").addClass("hide");
|
||||
$(".anti-markdown").removeClass("hide");
|
||||
}
|
||||
//タグを選んだ時に(BB版)
|
||||
function tagsel(tag){
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
if(!localStorage.getItem("bb_"+acct_id)){
|
||||
return false;
|
||||
}
|
||||
if(tag=="large" || tag=="size" || tag=="color" || tag=="colorhex"){
|
||||
var sub=$("#"+tag).val();
|
||||
var sub = sub.replace( /#/g , "" ) ;
|
||||
surroundHTML(tag+"="+sub,tag);
|
||||
}else if(tag=="flip=vertical" || tag=="flip=horizontal"){
|
||||
surroundHTML(tag,"flip");
|
||||
}else{
|
||||
surroundHTML(tag,tag);
|
||||
}
|
||||
$("#textarea").focus();
|
||||
}
|
||||
//HTMLをエスケープしてXSSを防ぐ
|
||||
function escape_html (string) {
|
||||
if(typeof string !== 'string') {
|
||||
return string;
|
||||
}
|
||||
return string.replace(/[&'`"<>]/g, function(match) {
|
||||
return {
|
||||
'&': '&',
|
||||
"'": ''',
|
||||
'`': '`',
|
||||
'"': '"',
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
}[match]
|
||||
});
|
||||
function tagsel(tag) {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
if (!localStorage.getItem("bb_" + acct_id)) {
|
||||
return false;
|
||||
}
|
||||
if (tag == "large" || tag == "size" || tag == "color" || tag == "colorhex") {
|
||||
var sub = $("#" + tag).val();
|
||||
var sub = sub.replace(/#/g, "");
|
||||
surroundHTML(tag + "=" + sub, tag);
|
||||
} else if (tag == "flip=vertical" || tag == "flip=horizontal") {
|
||||
surroundHTML(tag, "flip");
|
||||
} else {
|
||||
surroundHTML(tag, tag);
|
||||
}
|
||||
$("#textarea").focus();
|
||||
}
|
||||
//HTMLをエスケープしてXSSを防ぐ
|
||||
function escape_html(string) {
|
||||
if (typeof string !== 'string') {
|
||||
return string;
|
||||
}
|
||||
return string.replace(/[&'`"<>]/g, function (match) {
|
||||
return {
|
||||
'&': '&',
|
||||
"'": ''',
|
||||
'`': '`',
|
||||
'"': '"',
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
}[match]
|
||||
});
|
||||
}
|
||||
//テキストボックスで選択したやつをタグで囲む(BB版)
|
||||
function surroundHTML(tagS,tagE) {
|
||||
function surroundHTML(tagS, tagE) {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
if(!localStorage.getItem("bb_"+acct_id)){
|
||||
return false;
|
||||
}
|
||||
if (!localStorage.getItem("bb_" + acct_id)) {
|
||||
return false;
|
||||
}
|
||||
var target = document.getElementById("textarea");
|
||||
var pos = getAreaRange(target);
|
||||
|
||||
var val = target.value;
|
||||
var range = val.slice(pos.start, pos.end);
|
||||
var beforeNode = val.slice(0, pos.start);
|
||||
var afterNode = val.slice(pos.end);
|
||||
var beforeNode = val.slice(0, pos.start);
|
||||
var afterNode = val.slice(pos.end);
|
||||
var insertNode;
|
||||
if (range || pos.start != pos.end) {
|
||||
insertNode = '[' + tagS + ']' + range + '[/' + tagE + ']';
|
||||
target.value = beforeNode + insertNode + afterNode;
|
||||
}
|
||||
|
||||
else if (pos.start == pos.end) {
|
||||
insertNode = '[' + tagS + ']' + '[/' + tagE + ']';
|
||||
target.value = beforeNode + insertNode + afterNode;
|
||||
}
|
||||
}
|
||||
function markdown(tag,ck,br,space){
|
||||
if(space=="before"){
|
||||
tagE=tag;
|
||||
tag=" "+tag;
|
||||
}else{
|
||||
tagE=tag;
|
||||
}
|
||||
surroundMD(tag,tagE,ck,br);
|
||||
$("#textarea").focus();
|
||||
}
|
||||
function surroundMD(tagS,tagE,ck,br) {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
if(!localStorage.getItem("md_"+acct_id)){
|
||||
return false;
|
||||
}
|
||||
var target = document.getElementById("textarea");
|
||||
var pos = getAreaRange(target);
|
||||
|
||||
var val = target.value;
|
||||
var range = val.slice(pos.start, pos.end);
|
||||
var beforeNode = val.slice(0, pos.start);
|
||||
var afterNode = val.slice(pos.end);
|
||||
var insertNode;
|
||||
if(br=="yes"){
|
||||
var br="\n";
|
||||
}else{
|
||||
var br="";
|
||||
if (range || pos.start != pos.end) {
|
||||
insertNode = '[' + tagS + ']' + range + '[/' + tagE + ']';
|
||||
target.value = beforeNode + insertNode + afterNode;
|
||||
}
|
||||
|
||||
if ((range || pos.start != pos.end )&& ck=="yes") {
|
||||
insertNode = tagS + range + tagE ;
|
||||
target.value = beforeNode + insertNode + br + afterNode;
|
||||
}
|
||||
else if (pos.start == pos.end) {
|
||||
insertNode = '[' + tagS + ']' + '[/' + tagE + ']';
|
||||
target.value = beforeNode + insertNode + afterNode;
|
||||
}
|
||||
}
|
||||
function markdown(tag, ck, br, space) {
|
||||
if (space == "before") {
|
||||
tagE = tag;
|
||||
tag = " " + tag;
|
||||
} else {
|
||||
tagE = tag;
|
||||
}
|
||||
surroundMD(tag, tagE, ck, br);
|
||||
$("#textarea").focus();
|
||||
}
|
||||
function surroundMD(tagS, tagE, ck, br) {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
if (!localStorage.getItem("md_" + acct_id)) {
|
||||
return false;
|
||||
}
|
||||
var target = document.getElementById("textarea");
|
||||
var pos = getAreaRange(target);
|
||||
|
||||
else if (pos.start == pos.end || ck=="no") {
|
||||
insertNode = tagS + range;
|
||||
target.value = beforeNode + insertNode + br + afterNode;
|
||||
}
|
||||
var val = target.value;
|
||||
var range = val.slice(pos.start, pos.end);
|
||||
var beforeNode = val.slice(0, pos.start);
|
||||
var afterNode = val.slice(pos.end);
|
||||
var insertNode;
|
||||
if (br == "yes") {
|
||||
var br = "\n";
|
||||
} else {
|
||||
var br = "";
|
||||
}
|
||||
|
||||
if ((range || pos.start != pos.end) && ck == "yes") {
|
||||
insertNode = tagS + range + tagE;
|
||||
target.value = beforeNode + insertNode + br + afterNode;
|
||||
}
|
||||
|
||||
else if (pos.start == pos.end || ck == "no") {
|
||||
insertNode = tagS + range;
|
||||
target.value = beforeNode + insertNode + br + afterNode;
|
||||
}
|
||||
}
|
||||
|
||||
//テキストボックスの前後チェック
|
||||
function getAreaRange(obj) {
|
||||
var pos = new Object();
|
||||
if(window.getSelection()) {
|
||||
if (window.getSelection()) {
|
||||
pos.start = obj.selectionStart;
|
||||
pos.end = obj.selectionEnd;
|
||||
pos.end = obj.selectionEnd;
|
||||
}
|
||||
|
||||
return pos;
|
||||
}
|
||||
|
||||
//Markdownのリンク挿入
|
||||
function markdownLink(){
|
||||
function markdownLink() {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
if(!localStorage.getItem("md_"+acct_id)){
|
||||
return false;
|
||||
}
|
||||
var linkIns="["+$("#linkt").val()+"]"+"("+$("#link2").val()+")";
|
||||
if(linkIns!="[]()"){
|
||||
$("#textarea").val($("#textarea").val()+linkIns);
|
||||
$("#linkt").val("");
|
||||
$("#link2").val("");
|
||||
$("#textarea").focus();
|
||||
if (!localStorage.getItem("md_" + acct_id)) {
|
||||
return false;
|
||||
}
|
||||
var linkIns = "[" + $("#linkt").val() + "]" + "(" + $("#link2").val() + ")";
|
||||
if (linkIns != "[]()") {
|
||||
$("#textarea").val($("#textarea").val() + linkIns);
|
||||
$("#linkt").val("");
|
||||
$("#link2").val("");
|
||||
$("#textarea").focus();
|
||||
}
|
||||
}
|
||||
//Markdownのimg挿入
|
||||
function markdownImage(){
|
||||
function markdownImage() {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
if(!localStorage.getItem("md_"+acct_id)){
|
||||
return false;
|
||||
}
|
||||
var imgIns="!["+$("#image").val()+"]"+"("+$("#image2").val()+")";
|
||||
if(imgIns!="![]()"){
|
||||
$("#textarea").val($("#textarea").val()+imgIns);
|
||||
$("#image").val("");
|
||||
$("#image2").val("");
|
||||
$("#textarea").focus();
|
||||
if (!localStorage.getItem("md_" + acct_id)) {
|
||||
return false;
|
||||
}
|
||||
var imgIns = "![" + $("#image").val() + "]" + "(" + $("#image2").val() + ")";
|
||||
if (imgIns != "![]()") {
|
||||
$("#textarea").val($("#textarea").val() + imgIns);
|
||||
$("#image").val("");
|
||||
$("#image2").val("");
|
||||
$("#textarea").focus();
|
||||
}
|
||||
}
|
||||
//文字数をチェック(hタグ用)
|
||||
function str_count(all, part) {
|
||||
return (all.match(new RegExp(part, "g")) || []).length;
|
||||
return (all.match(new RegExp(part, "g")) || []).length;
|
||||
}
|
||||
|
||||
//プレビュー
|
||||
function preview(){
|
||||
$("#preview-field").show();
|
||||
$("#toot-field").hide();
|
||||
$("#preview-btn").hide();
|
||||
var bb=escape_html($("#textarea").val());
|
||||
function preview() {
|
||||
$("#preview-field").show();
|
||||
$("#toot-field").hide();
|
||||
$("#preview-btn").hide();
|
||||
var bb = escape_html($("#textarea").val());
|
||||
//quote
|
||||
var bb=bb.replace(/>(.+)$/g,'<blockquote>$1<\/blockquote>');
|
||||
var bb = bb.replace(/>(.+)$/g, '<blockquote>$1<\/blockquote>');
|
||||
//spin
|
||||
var bb=bb.replace(/\[spin\](.+)\[\/spin\]/g,'<span class="fa fa-spin">$1<\/span>');
|
||||
var bb = bb.replace(/\[spin\](.+)\[\/spin\]/g, '<span class="fa fa-spin">$1<\/span>');
|
||||
//pulse
|
||||
var bb=bb.replace(/\[pulse\](.+)\[\/pulse\]/g,'<span class="bbcode-pulse-loading">$1<\/span>');
|
||||
var bb = bb.replace(/\[pulse\](.+)\[\/pulse\]/g, '<span class="bbcode-pulse-loading">$1<\/span>');
|
||||
//large
|
||||
var bb=bb.replace(/\[large=([0-9]{1,2})x\](.+)\[\/large\]/g,'<span class="fa fa-$1x">$2<\/span>');
|
||||
var bb = bb.replace(/\[large=([0-9]{1,2})x\](.+)\[\/large\]/g, '<span class="fa fa-$1x">$2<\/span>');
|
||||
//vertical
|
||||
var bb=bb.replace(/\[flip=vertical\](.+)\[\/flip\]/g,'<span class="fa fa-flip-vertical">$1<\/span>');
|
||||
var bb = bb.replace(/\[flip=vertical\](.+)\[\/flip\]/g, '<span class="fa fa-flip-vertical">$1<\/span>');
|
||||
//horizontal
|
||||
var bb=bb.replace(/\[flip=horizontal\](.+)\[\/flip\]/g,'<span class="fa fa-flip-horizontal">$1<\/span>');
|
||||
var bb = bb.replace(/\[flip=horizontal\](.+)\[\/flip\]/g, '<span class="fa fa-flip-horizontal">$1<\/span>');
|
||||
//b
|
||||
var bb=bb.replace(/\[b\](.+)\[\/b\]/g,'<b>$1<\/b>');
|
||||
var bb = bb.replace(/\[b\](.+)\[\/b\]/g, '<b>$1<\/b>');
|
||||
//i
|
||||
var bb=bb.replace(/\[i\](.+)\[\/i\]/g,'<i>$1<\/i>');
|
||||
var bb = bb.replace(/\[i\](.+)\[\/i\]/g, '<i>$1<\/i>');
|
||||
//u
|
||||
var bb=bb.replace(/\[u\](.+)\[\/u\]/g,'<u>$1<\/u>');
|
||||
var bb = bb.replace(/\[u\](.+)\[\/u\]/g, '<u>$1<\/u>');
|
||||
//s
|
||||
var bb=bb.replace(/\[s\](.+)\[\/s\]/g,'<s>$1<\/s>');
|
||||
var bb = bb.replace(/\[s\](.+)\[\/s\]/g, '<s>$1<\/s>');
|
||||
//size
|
||||
var bb=bb.replace(/\[size=([0-9]{1,2})\](.+)\[\/size\]/g,'<span style="font-size:$1px">$2<\/span>');
|
||||
var bb = bb.replace(/\[size=([0-9]{1,2})\](.+)\[\/size\]/g, '<span style="font-size:$1px">$2<\/span>');
|
||||
//colorhex
|
||||
var bb=bb.replace(/\[colorhex=([A-Fa-f0-9]+)\](.+)\[\/colorhex\]/g,'<span style="color:#$1">$2<\/span>');
|
||||
var bb = bb.replace(/\[colorhex=([A-Fa-f0-9]+)\](.+)\[\/colorhex\]/g, '<span style="color:#$1">$2<\/span>');
|
||||
//code
|
||||
var bb=bb.replace(/`(.+)`/g,'<code>$1<\/code>');
|
||||
var bb = bb.replace(/`(.+)`/g, '<code>$1<\/code>');
|
||||
//head
|
||||
var m;
|
||||
m=bb.match(/^#{1,6}(.+)$/gm);
|
||||
if(m){
|
||||
for(let i = 0; i < m.length; i++) {
|
||||
var t=m[i].match(/^#{1,6}(.+)$/);
|
||||
var indexct='<h'+str_count(m[i],"#")+'>'+t[1]+'</h'+str_count(m[i],"#")+'>';
|
||||
var bb=bb.replace(new RegExp(m[i], ""),indexct);
|
||||
}
|
||||
m = bb.match(/^#{1,6}(.+)$/gm);
|
||||
if (m) {
|
||||
for (let i = 0; i < m.length; i++) {
|
||||
var t = m[i].match(/^#{1,6}(.+)$/);
|
||||
var indexct = '<h' + str_count(m[i], "#") + '>' + t[1] + '</h' + str_count(m[i], "#") + '>';
|
||||
var bb = bb.replace(new RegExp(m[i], ""), indexct);
|
||||
}
|
||||
}
|
||||
//list(ul)
|
||||
var li;
|
||||
li=bb.match(/^\- (.+)$/gm);
|
||||
if(li){
|
||||
for(let l = 0; l < li.length; l++) {
|
||||
var u=li[l].match(/^\- (.+)$/);
|
||||
var listUl='<li>'+u[1]+'</li>';
|
||||
if(l == 0){
|
||||
listUl='<ul>'+listUl;
|
||||
li = bb.match(/^\- (.+)$/gm);
|
||||
if (li) {
|
||||
for (let l = 0; l < li.length; l++) {
|
||||
var u = li[l].match(/^\- (.+)$/);
|
||||
var listUl = '<li>' + u[1] + '</li>';
|
||||
if (l == 0) {
|
||||
listUl = '<ul>' + listUl;
|
||||
}
|
||||
if (l == li.length - 1) {
|
||||
listUl = listUl + '</ul>';
|
||||
}
|
||||
var bb = bb.replace(new RegExp(li[l], ""), listUl);
|
||||
}
|
||||
if(l==li.length-1){
|
||||
listUl=listUl+'</ul>';
|
||||
}
|
||||
var bb=bb.replace(new RegExp(li[l], ""),listUl);
|
||||
}
|
||||
}
|
||||
//list(ol)
|
||||
var li;
|
||||
li=bb.match(/^1\. (.+)$/gm);
|
||||
if(li){
|
||||
for(let l = 0; l < li.length; l++) {
|
||||
var u=li[l].match(/^1\. (.+)$/);
|
||||
var listUl='<li>'+u[1]+'</li>';
|
||||
if(l === 0){
|
||||
listUl='<ol>'+listUl;
|
||||
li = bb.match(/^1\. (.+)$/gm);
|
||||
if (li) {
|
||||
for (let l = 0; l < li.length; l++) {
|
||||
var u = li[l].match(/^1\. (.+)$/);
|
||||
var listUl = '<li>' + u[1] + '</li>';
|
||||
if (l === 0) {
|
||||
listUl = '<ol>' + listUl;
|
||||
}
|
||||
if (l === li.length - 1) {
|
||||
listUl = listUl + '</ol>';
|
||||
}
|
||||
var bb = bb.replace(new RegExp(li[l], ""), listUl);
|
||||
}
|
||||
if(l===li.length-1){
|
||||
listUl=listUl+'</ol>';
|
||||
}
|
||||
var bb=bb.replace(new RegExp(li[l], ""),listUl);
|
||||
}
|
||||
}
|
||||
//img
|
||||
var bb=bb.replace(/!\[(.+)\]\((https:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\)/g,'<img src="$2" text="$1" style="width:100%">');
|
||||
var bb = bb.replace(/!\[(.+)\]\((https:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\)/g, '<img src="$2" text="$1" style="width:100%">');
|
||||
//link
|
||||
var bb=bb.replace(/\[(.+)\]\((https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\)/g,'<a href="$2" target="_blank">$1<\/a>');
|
||||
bb=nl2br(bb);
|
||||
bb=bb.replace(new RegExp("</li><br />", "g"),"");
|
||||
var bb = bb.replace(/\[(.+)\]\((https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\)/g, '<a href="$2" target="_blank">$1<\/a>');
|
||||
bb = nl2br(bb);
|
||||
bb = bb.replace(new RegExp("</li><br />", "g"), "");
|
||||
$("#md-preview").html(bb);
|
||||
}
|
||||
//Editで戻る
|
||||
function previewEdit(){
|
||||
$("#preview-field").hide();
|
||||
$("#toot-field").show();
|
||||
$("#preview-btn").show();
|
||||
$("#md-preview").html("");
|
||||
}
|
||||
}
|
||||
//Editで戻る
|
||||
function previewEdit() {
|
||||
$("#preview-field").hide();
|
||||
$("#toot-field").show();
|
||||
$("#preview-btn").show();
|
||||
$("#md-preview").html("");
|
||||
}
|
||||
@@ -4,11 +4,11 @@ $("#emoji-before").addClass("disabled");
|
||||
$("#emoji-next").addClass("disabled");
|
||||
|
||||
//絵文字ボタンのトグル
|
||||
function emojiToggle() {
|
||||
function emojiToggle(reaction) {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if(!selin){
|
||||
selin=0;
|
||||
if (!selin) {
|
||||
selin = 0;
|
||||
}
|
||||
localStorage.setItem("cursor", selin);
|
||||
|
||||
@@ -18,10 +18,10 @@ function emojiToggle() {
|
||||
$("#suggest").html("");
|
||||
if (!localStorage.getItem("emoji_" + 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>';
|
||||
'<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);
|
||||
} else {
|
||||
emojiList('home');
|
||||
emojiList('home', reaction);
|
||||
}
|
||||
} else {
|
||||
$("#poll").addClass("hide")
|
||||
@@ -34,43 +34,97 @@ function emojiToggle() {
|
||||
}
|
||||
|
||||
//絵文字リスト挿入
|
||||
function emojiGet(parse) {
|
||||
$('#emoji-list').html('Loading...');
|
||||
function emojiGet(parse, started) {
|
||||
$('#emoji-list').text('Loading...');
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var start = "https://" + domain + "/api/v1/custom_emojis";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if (parse == "true") {
|
||||
$('#emoji-list').html('Parsing...');
|
||||
//絵文字をマストドン公式と同順にソート
|
||||
json.sort(function(a, b) {
|
||||
if (a.shortcode < b.shortcode) return -1;
|
||||
if (a.shortcode > b.shortcode) return 1;
|
||||
return 0;
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
var start = "https://" + domain + "/api/v1/custom_emojis";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (parse == "true") {
|
||||
$('#emoji-list').text('Parsing...');
|
||||
//絵文字をマストドン公式と同順にソート
|
||||
json.sort(function (a, b) {
|
||||
if (a.shortcode < b.shortcode) return -1;
|
||||
if (a.shortcode > b.shortcode) return 1;
|
||||
return 0;
|
||||
});
|
||||
localStorage.setItem("emoji_" + acct_id, JSON.stringify(json));
|
||||
} else {
|
||||
localStorage.setItem("emoji_" + acct_id, JSON.stringify(json));
|
||||
}
|
||||
localStorage.setItem("emojiseek", 0);
|
||||
if (!started) {
|
||||
emojiList('home')
|
||||
}
|
||||
});
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/meta";
|
||||
fetch(start, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json.enableEmojiReaction) {
|
||||
localStorage.setItem("emojiReaction_" + acct_id, "true");
|
||||
} else {
|
||||
localStorage.setItem("emojiReaction_" + acct_id, "disabled");
|
||||
}
|
||||
var emojis = json.emojis;
|
||||
var md = [];
|
||||
Object.keys(emojis).forEach(function (key) {
|
||||
var emoji = emojis[key];
|
||||
md.push({
|
||||
"shortcode": emoji.name,
|
||||
"url": emoji.url
|
||||
})
|
||||
});
|
||||
localStorage.setItem("emoji_" + acct_id, JSON.stringify(json));
|
||||
} else {
|
||||
localStorage.setItem("emoji_" + acct_id, JSON.stringify(json));
|
||||
}
|
||||
localStorage.setItem("emojiseek", 0);
|
||||
emojiList('home')
|
||||
});
|
||||
if (parse == "true") {
|
||||
$('#emoji-list').text('Parsing...');
|
||||
//絵文字をマストドン公式と同順にソート
|
||||
md.sort(function (a, b) {
|
||||
if (a.shortcode < b.shortcode) return -1;
|
||||
if (a.shortcode > b.shortcode) return 1;
|
||||
return 0;
|
||||
});
|
||||
localStorage.setItem("emoji_" + acct_id, JSON.stringify(md));
|
||||
} else {
|
||||
localStorage.setItem("emoji_" + acct_id, JSON.stringify(md));
|
||||
}
|
||||
localStorage.setItem("emojiseek", 0);
|
||||
if (!started) {
|
||||
emojiList('home')
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//リストの描画
|
||||
function emojiList(target) {
|
||||
function emojiList(target, reaction) {
|
||||
$("#now-emoji").text(lang.lang_emoji_custom);
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
if (reaction && localStorage.getItem("emojiReaction_" + acct_id) != "true") {
|
||||
console.error("Disabled")
|
||||
clear()
|
||||
hide();
|
||||
return false;
|
||||
}
|
||||
var start = localStorage.getItem("emojiseek");
|
||||
if (target == "next") {
|
||||
var start = start * 1 + 127;
|
||||
@@ -103,8 +157,14 @@ function emojiList(target) {
|
||||
for (i = start; i < start + 126; i++) {
|
||||
var emoji = obj[i];
|
||||
if (emoji) {
|
||||
html = html + '<a onclick="emojiInsert(\':' + emoji.shortcode +
|
||||
': \')" class="pointer"><img src="' + emoji.url + '" width="20"></a>';
|
||||
if (reaction) {
|
||||
html = html + '<a onclick="emojiReaction(\':' + emoji.shortcode +
|
||||
':\')" class="pointer"><img src="' + emoji.url + '" width="20"></a>';
|
||||
} else {
|
||||
html = html + '<a onclick="emojiInsert(\':' + emoji.shortcode +
|
||||
':\')" class="pointer"><img src="' + emoji.url + '" width="20"></a>';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
$("#emoji-list").html(html);
|
||||
@@ -114,35 +174,39 @@ function emojiList(target) {
|
||||
function emojiInsert(code, del) {
|
||||
var now = $("#textarea").val();
|
||||
var selin = localStorage.getItem("cursor");
|
||||
console.log(selin);
|
||||
if (localStorage.getItem("emoji-zero-width") == "yes") {
|
||||
var brank = "";
|
||||
} else {
|
||||
var brank = " ";
|
||||
}
|
||||
var now = $("#textarea").val();
|
||||
if(selin>0){
|
||||
var before = now.substr(0, selin);
|
||||
var after = now.substr(selin, now.length);
|
||||
newt = before + " "+ code+" " + after;
|
||||
}else{
|
||||
newt = code+" ";
|
||||
if (selin > 0) {
|
||||
var before = now.substr(0, selin);
|
||||
var after = now.substr(selin, now.length);
|
||||
newt = before + brank + code + brank + after;
|
||||
} else {
|
||||
newt = code + brank;
|
||||
}
|
||||
if (!del) {
|
||||
$("#textarea").val(newt);
|
||||
//emoji();
|
||||
} else {
|
||||
var regExp = new RegExp(del, "g");
|
||||
var regExp = new RegExp(del.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
var now = now.replace(regExp, "");
|
||||
$("#textarea").val(now + " " + code);
|
||||
$("#textarea").val(now + brank + code);
|
||||
}
|
||||
|
||||
$("#textarea").focus();
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if(!selin){
|
||||
selin=0;
|
||||
if (!selin) {
|
||||
selin = 0;
|
||||
}
|
||||
localStorage.setItem("cursor", selin);
|
||||
}
|
||||
//改行挿入
|
||||
function brInsert(code) {
|
||||
if(!$('#post-box').hasClass("appear")){
|
||||
localStorage.setItem("nohide",true);
|
||||
if (!$('#post-box').hasClass("appear")) {
|
||||
localStorage.setItem("nohide", true);
|
||||
show();
|
||||
}
|
||||
var now = $("#textarea").val();
|
||||
|
||||
@@ -2,26 +2,26 @@
|
||||
var obj = $("body");
|
||||
var system;
|
||||
//ドラッグスタート
|
||||
obj.on('dragstart', function(e) {
|
||||
obj.on('dragstart', function (e) {
|
||||
system = "locked"
|
||||
});
|
||||
//何もなくファイルが通過
|
||||
obj.on('dragend', function(e) {
|
||||
obj.on('dragend', function (e) {
|
||||
system = "";
|
||||
});
|
||||
//ドラッグファイルが画面上に
|
||||
obj.on('dragenter', function(e) {
|
||||
obj.on('dragenter', function (e) {
|
||||
if (system != "locked") {
|
||||
$("#drag").css('display', 'flex');
|
||||
}
|
||||
|
||||
});
|
||||
$("body").on('dragover', function(e) {
|
||||
$("body").on('dragover', function (e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
});
|
||||
//ドロップした
|
||||
$("body").on('drop', function(e) {
|
||||
$("body").on('drop', function (e) {
|
||||
if (system != "locked") {
|
||||
$("#drag").css('display', 'none');
|
||||
e.preventDefault();
|
||||
@@ -30,44 +30,37 @@ $("body").on('drop', function(e) {
|
||||
}
|
||||
});
|
||||
//何もなくファイルが通過
|
||||
$("#drag").on('dragleave', function(e) {
|
||||
$("#drag").on('dragleave', function (e) {
|
||||
$("#drag").css('display', 'none');
|
||||
});
|
||||
|
||||
//複数アップ
|
||||
function pimg(files) {
|
||||
console.log(files);
|
||||
console.table(files);
|
||||
for (i = 0; i < files.length; i++) {
|
||||
var dot=files[i].path.match(/\.(.+)$/)[1];
|
||||
if(dot=="bmp" || dot=="BMP"){
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('bmp-image', [files[i].path,i]);
|
||||
todo(lang.lang_progress);
|
||||
var dot = files[i].path.match(/\.(.+)$/)[1];
|
||||
if (dot == "bmp" || dot == "BMP") {
|
||||
postMessage(["bmpImage", [files[i].path, i]], "*")
|
||||
todo(lang.lang_progress);
|
||||
|
||||
}else{
|
||||
handleFileUpload(files[i], obj,i);
|
||||
} else {
|
||||
handleFileUpload(files[i], obj, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.on('bmp-img-comp', function (event, b64) {
|
||||
media(b64[0],"image/png",b64[1]);
|
||||
});
|
||||
//ドラッグ・アンド・ドロップを終了
|
||||
function closedrop() {
|
||||
$("#drag").css('display', 'none');
|
||||
}
|
||||
//ファイル選択
|
||||
function fileselect() {
|
||||
ipc.send('file-select', "");
|
||||
postMessage(["sendSinmpleIpc", "file-select"], "*")
|
||||
}
|
||||
|
||||
//ファイル読み込み
|
||||
function handleFileUpload(files, obj, no) {
|
||||
var fr = new FileReader();
|
||||
fr.onload = function(evt) {
|
||||
fr.onload = function (evt) {
|
||||
var b64 = evt.target.result;
|
||||
$('#b64-box').val(b64);
|
||||
var ret = media(b64, files["type"], no)
|
||||
@@ -82,27 +75,26 @@ function media(b64, type, no) {
|
||||
var c = "abcdefghijklmnopqrstuvwxyz0123456789";
|
||||
var cl = c.length;
|
||||
var r = "";
|
||||
for(var i=0; i<l; i++){
|
||||
r += c[Math.floor(Math.random()*cl)];
|
||||
for (var i = 0; i < l; i++) {
|
||||
r += c[Math.floor(Math.random() * cl)];
|
||||
}
|
||||
if ($("#media").val()) {
|
||||
$("#media").val($("#media").val() + ',' + "tmp_"+r);
|
||||
$("#media").val($("#media").val() + ',' + "tmp_" + r);
|
||||
} else {
|
||||
$("#media").val("tmp_"+r);
|
||||
$("#media").val("tmp_" + r);
|
||||
}
|
||||
$(".toot-btn-group").prop("disabled", true);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
localStorage.setItem("image","busy");
|
||||
localStorage.setItem("image", "busy");
|
||||
todo("Image Upload...");
|
||||
var media = toBlob(b64, type);
|
||||
console.log(media);
|
||||
var fd = new FormData();
|
||||
fd.append('file', media);
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var httpreq = new XMLHttpRequest();
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/drive/files/create";
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.upload.addEventListener("progress", progshow, false);
|
||||
@@ -112,12 +104,12 @@ function media(b64, type, no) {
|
||||
} else {
|
||||
var nsfw = false;
|
||||
}
|
||||
var previewer="url"
|
||||
var previewer = "url"
|
||||
fd.append('i', at);
|
||||
//fd.append('isSensitive', nsfw);
|
||||
httpreq.send(fd);
|
||||
}else{
|
||||
var previewer="preview_url"
|
||||
} else {
|
||||
var previewer = "preview_url"
|
||||
var start = "https://" + domain + "/api/v1/media";
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.upload.addEventListener("progress", progshow, false);
|
||||
@@ -125,13 +117,22 @@ function media(b64, type, no) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.send(fd);
|
||||
}
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
console.log(json);
|
||||
if (!json.id) {
|
||||
todc();
|
||||
$("#imgup").text("");
|
||||
$(".toot-btn-group").prop("disabled", false);
|
||||
$("#post-acct-sel").prop("disabled", false);
|
||||
$('select').formSelect();
|
||||
$("#imgsel").show();
|
||||
M.toast({ html: lang.lang_postimg_failupload, displayLength: 5000 })
|
||||
return false
|
||||
}
|
||||
var img = localStorage.getItem("img");
|
||||
if (json.type.indexOf("image")!=-1) {
|
||||
var html = '<img src="' + json[previewer] + '" class="preview-img pointer" data-media="'+json["id"]+'" onclick="deleteImage(\''+json["id"]+'\')" title="'+lang.lang_postimg_delete+'">';
|
||||
if (json.type.indexOf("image") != -1) {
|
||||
var html = '<img src="' + json[previewer] + '" class="preview-img pointer" data-media="' + json["id"] + '" onclick="deleteImage(\'' + json["id"] + '\')" title="' + lang.lang_postimg_delete + '">';
|
||||
$('#preview').append(html);
|
||||
} else {
|
||||
$('#preview').append(lang.lang_postimg_previewdis);
|
||||
@@ -140,8 +141,8 @@ function media(b64, type, no) {
|
||||
var img = "no-act";
|
||||
}
|
||||
if (img != "inline") {
|
||||
var mediav=$("#media").val();
|
||||
var regExp = new RegExp("tmp_"+r, "g");
|
||||
var mediav = $("#media").val();
|
||||
var regExp = new RegExp("tmp_" + r, "g");
|
||||
mediav = mediav.replace(regExp, json["id"]);
|
||||
$("#media").val(mediav);
|
||||
|
||||
@@ -151,9 +152,9 @@ function media(b64, type, no) {
|
||||
}
|
||||
todc();
|
||||
$(".toot-btn-group").prop("disabled", false);
|
||||
$('select').material_select();
|
||||
$('select').formSelect();
|
||||
$("#mec").text(lang.lang_there);
|
||||
Materialize.toast(lang.lang_postimg_aftupload, 1000);
|
||||
M.toast({ html: lang.lang_postimg_aftupload, displayLength: 1000 })
|
||||
$("#imgup").text("");
|
||||
$("#imgsel").show();
|
||||
localStorage.removeItem("image");
|
||||
@@ -180,62 +181,61 @@ function toBlob(base64, type) {
|
||||
return blob;
|
||||
}
|
||||
//画像を貼り付けたら…
|
||||
var element = document.querySelector("#textarea");
|
||||
element.addEventListener("paste", function(e){
|
||||
console.log(e)
|
||||
// 画像の場合
|
||||
// e.clipboardData.types.length == 0
|
||||
// かつ
|
||||
// e.clipboardData.types[0] == "Files"
|
||||
// となっているので、それ以外を弾く
|
||||
if (!e.clipboardData
|
||||
|| !e.clipboardData.types
|
||||
|| (e.clipboardData.types.length != 1)
|
||||
|| (e.clipboardData.types[0] != "Files")) {
|
||||
console.log("not image")
|
||||
return true;
|
||||
}
|
||||
var element = document.querySelector("#textarea");
|
||||
element.addEventListener("paste", function (e) {
|
||||
if (!e.clipboardData || !e.clipboardData.items) {
|
||||
return true;
|
||||
}
|
||||
// DataTransferItemList に画像が含まれいない場合は終了する
|
||||
var imageItems = [...e.clipboardData.items].filter(i => i.type.startsWith('image'));
|
||||
if (imageItems.length == 0) {
|
||||
console.warn("it is not image")
|
||||
return true;
|
||||
}
|
||||
|
||||
// ファイルとして得る
|
||||
// (なぜかgetAsStringでは上手くいかなかった)
|
||||
var imageFile = e.clipboardData.items[0].getAsFile();
|
||||
// ファイルとして得る
|
||||
// DataTransferItem の kind は file なので getAsString ではなく getAsFile を呼ぶ
|
||||
var imageFile = imageItems[0].getAsFile();
|
||||
var imageType = imageItems[0].type;
|
||||
|
||||
// FileReaderで読み込む
|
||||
var fr = new FileReader();
|
||||
fr.onload = function(e) {
|
||||
// onload内ではe.target.resultにbase64が入っているのであとは煮るなり焼くなり
|
||||
// FileReaderで読み込む
|
||||
var fr = new FileReader();
|
||||
fr.onload = function (e) {
|
||||
// onload内ではe.target.resultにbase64が入っているのであとは煮るなり焼くなり
|
||||
var base64 = e.target.result;
|
||||
var mediav = $("#media").val();
|
||||
if(mediav){
|
||||
var i=mediav.split(",").length;
|
||||
if (mediav) {
|
||||
var i = mediav.split(",").length;
|
||||
}
|
||||
media(base64, "image/png", i)
|
||||
};
|
||||
fr.readAsDataURL(imageFile);
|
||||
// DataTransferItem の type に mime tipes があるのでそれを使う
|
||||
media(base64, imageType, i)
|
||||
};
|
||||
fr.readAsDataURL(imageFile);
|
||||
|
||||
// 画像以外がペーストされたときのために、元に戻しておく
|
||||
// 画像以外がペーストされたときのために、元に戻しておく
|
||||
});
|
||||
//Adobeフォトエディタ
|
||||
function adobe(){
|
||||
var agree = localStorage.getItem("adobeagree");
|
||||
ipc.send('adobe', agree);
|
||||
}
|
||||
ipc.on('adobeagree', function (event, arg) {
|
||||
localStorage.setItem("adobeagree",arg);
|
||||
});
|
||||
function deleteImage(key){
|
||||
console.log(key);
|
||||
if(!confirm(lang.lang_postimg_delete)){
|
||||
return false;
|
||||
}
|
||||
var media = $("#media").val();
|
||||
var arr=media.split(",");
|
||||
for(var i=0;i<media.length;i++){
|
||||
if(arr[i]==key){
|
||||
arr.splice(i, 1);
|
||||
break;
|
||||
function deleteImage(key) {
|
||||
Swal.fire({
|
||||
title: lang.lang_postimg_delete,
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
var media = $("#media").val();
|
||||
var arr = media.split(",");
|
||||
for (var i = 0; i < media.length; i++) {
|
||||
if (arr[i] == key) {
|
||||
arr.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
$("#media").val(arr.join(","));
|
||||
$('#preview [data-media=' + key + ']').remove();
|
||||
}
|
||||
}
|
||||
$("#media").val(arr.join(","));
|
||||
$('#preview [data-media='+key+']').remove();
|
||||
})
|
||||
|
||||
}
|
||||
@@ -1,217 +1,241 @@
|
||||
//Renpost
|
||||
function renote(id, acct_id, remote) {
|
||||
if ($("#pub_" + id).hasClass("rted")) {
|
||||
return false;
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/notes/create";
|
||||
if(localStorage.getItem("mode_" + domain)!="misskey"){
|
||||
if ($("#pub_" + id).hasClass("rted")) {
|
||||
return false;
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/notes/create";
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
return false;
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({i:at,renoteId:id}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
if (httpreq.readyState === 4) {
|
||||
httpreq.send(JSON.stringify({ i: at, renoteId: id }));
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
console.log(json);
|
||||
console.log(["Success: renote", json]);
|
||||
$("[toot-id=" + id + "]").addClass("rted");
|
||||
$(".rt_"+id).toggleClass("teal-text");
|
||||
}
|
||||
}
|
||||
$(".rt_" + id).toggleClass("teal-text");
|
||||
}
|
||||
}
|
||||
}
|
||||
//Renote
|
||||
function renoteqt(id, acct_id) {
|
||||
localStorage.setItem("nohide",true);
|
||||
show();
|
||||
$("#reply").val("renote_"+id);
|
||||
$("#rec").text("Renote");
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').material_select();
|
||||
$("#textarea").attr("placeholder",lang.lang_misskeyparse_qt);
|
||||
$("#textarea").focus();
|
||||
localStorage.setItem("nohide", true);
|
||||
show();
|
||||
$("#reply").val("renote_" + id);
|
||||
$("#rec").text("Renote");
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').formSelect();
|
||||
$("#textarea").attr("placeholder", lang.lang_misskeyparse_qt);
|
||||
$("#textarea").focus();
|
||||
}
|
||||
//Reply
|
||||
function misskeyreply(id, acct_id) {
|
||||
localStorage.setItem("nohide",true);
|
||||
show();
|
||||
$("#reply").val(id);
|
||||
$("#rec").text("Renote");
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').material_select();
|
||||
$("#textarea").attr("placeholder",lang.lang_misskeyparse_qt);
|
||||
$("#textarea").focus();
|
||||
localStorage.setItem("nohide", true);
|
||||
show();
|
||||
$("#reply").val(id);
|
||||
$("#rec").text("Renote");
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').formSelect();
|
||||
$("#textarea").attr("placeholder", lang.lang_misskeyparse_qt);
|
||||
$("#textarea").focus();
|
||||
}
|
||||
//Reaction
|
||||
function reactiontoggle(id,acct_id,tlid){
|
||||
function reactiontoggle(id, acct_id, tlid) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/notes/show";
|
||||
if(localStorage.getItem("mode_" + domain)!="misskey"){
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
return false;
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({i:at,noteId:id}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
if (httpreq.readyState === 4) {
|
||||
httpreq.send(JSON.stringify({ i: at, noteId: id }));
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
console.log(json);
|
||||
if(json.reactionCounts){
|
||||
var reactions=["like","love","laugh","hmm","surprise","congrats","angry","confused","pudding"];
|
||||
for(var i=0;i<reactions.length;i++){
|
||||
if(json.reactionCounts[reactions[i]]){
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(json.reactionCounts[reactions[i]])
|
||||
$("#pub_" + id +" .re-"+reactions[i]).removeClass("hide")
|
||||
}else{
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(0)
|
||||
if($("#pub_" + id +" .reactions").hasClass("fullreact")){
|
||||
$("#pub_" + id +" .re-"+reactions[i]).addClass("hide")
|
||||
}else{
|
||||
$("#pub_" + id +" .re-"+reactions[i]).removeClass("hide")
|
||||
console.log(["Success: reaction", json]);
|
||||
if (json.reactions) {
|
||||
var reactions = ["like", "love", "laugh", "hmm", "surprise", "congrats", "angry", "confused", "pudding", "rip"];
|
||||
for (var i = 0; i < reactions.length; i++) {
|
||||
if (json.reactions[reactions[i]]) {
|
||||
$("#pub_" + id + " .re-" + reactions[i] + "ct").text(json.reactions[reactions[i]])
|
||||
$("#pub_" + id + " .re-" + reactions[i]).removeClass("hide")
|
||||
} else {
|
||||
$("#pub_" + id + " .re-" + reactions[i] + "ct").text(0)
|
||||
if ($("#pub_" + id + " .reactions").hasClass("fullreact")) {
|
||||
$("#pub_" + id + " .re-" + reactions[i]).addClass("hide")
|
||||
} else {
|
||||
$("#pub_" + id + " .re-" + reactions[i]).removeClass("hide")
|
||||
}
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(json.reactionCounts[reactions[i]])
|
||||
$("#pub_" + id + " .re-" + reactions[i] + "ct").text(json.reactions[reactions[i]])
|
||||
}
|
||||
}
|
||||
$("#pub_" + id +" .reactions").removeClass("hide");
|
||||
$("#pub_" + id +" .reactions").toggleClass("fullreact")
|
||||
}else{
|
||||
if($("#pub_" + id +" .reactions").hasClass("fullreact")){
|
||||
$("#pub_" + id +" .reactions").addClass("hide")
|
||||
$("#pub_" + id +" .reactions").removeClass("fullreact")
|
||||
}else{
|
||||
$("#pub_" + id +" .reactions").removeClass("hide");
|
||||
$("#pub_" + id +" .reaction").removeClass("hide");
|
||||
$("#pub_" + id +" .reactions").addClass("fullreact");
|
||||
$("#pub_" + id + " .reactions").removeClass("hide");
|
||||
$("#pub_" + id + " .reactions").toggleClass("fullreact")
|
||||
} else {
|
||||
if ($("#pub_" + id + " .reactions").hasClass("fullreact")) {
|
||||
$("#pub_" + id + " .reactions").addClass("hide")
|
||||
$("#pub_" + id + " .reactions").removeClass("fullreact")
|
||||
} else {
|
||||
$("#pub_" + id + " .reactions").removeClass("hide");
|
||||
$("#pub_" + id + " .reaction").removeClass("hide");
|
||||
$("#pub_" + id + " .reactions").addClass("fullreact");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$("#pub_" + id + " .freeReact").toggleClass("hide");
|
||||
}
|
||||
function reactRefresh(acct_id,id){
|
||||
//reactioncustom
|
||||
function reactioncustom(acct_id, id) {
|
||||
$("#reply").val(id);
|
||||
$("#unreact").hide();
|
||||
$("#addreact").removeClass("hide");
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$('select').formSelect();
|
||||
localStorage.setItem("nohide", true);
|
||||
show()
|
||||
emojiToggle(true)
|
||||
$("#left-side").hide();
|
||||
$("#default-emoji").hide();
|
||||
}
|
||||
function reactRefresh(acct_id, id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/notes/show";
|
||||
|
||||
var req={};
|
||||
req.i=at;
|
||||
req.noteId=id;
|
||||
var i={
|
||||
var req = {};
|
||||
req.i = at;
|
||||
req.noteId = id;
|
||||
var i = {
|
||||
method: "POST",
|
||||
body: JSON.stringify(req),
|
||||
}
|
||||
console.log(req)
|
||||
fetch(start, i,
|
||||
).then(function(response) {
|
||||
).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if(!json){
|
||||
}).then(function (json) {
|
||||
if (!json) {
|
||||
return false;
|
||||
}
|
||||
var poll="";
|
||||
console.log(json);
|
||||
reactRefreshCore(json)
|
||||
var poll = "";
|
||||
if (json.error) {
|
||||
$("[toot-id=" + id + "]").hide();
|
||||
$("[toot-id=" + id + "]").remove();
|
||||
} else {
|
||||
reactRefreshCore(json)
|
||||
}
|
||||
});
|
||||
}
|
||||
function reactRefreshCore(json){
|
||||
var id=json.id;
|
||||
if(json.reactionCounts){
|
||||
var reactions=["like","love","laugh","hmm","surprise","congrats","angry","confused","pudding"];
|
||||
$("#pub_" + id +" .reactions").removeClass("hide")
|
||||
for(var i=0;i<reactions.length;i++){
|
||||
if(json.reactionCounts[reactions[i]]){
|
||||
console.log(json.reactionCounts[reactions[i]])
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(json.reactionCounts[reactions[i]])
|
||||
$("#pub_" + id +" .re-"+reactions[i]).removeClass("hide")
|
||||
}else{
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(0)
|
||||
if($("#pub_" + id +" .reactions").hasClass("fullreact")){
|
||||
$("#pub_" + id +" .re-"+reactions[i]).addClass("hide")
|
||||
function reactRefreshCore(json) {
|
||||
var id = json.id;
|
||||
if (json.reactions) {
|
||||
$("#pub_" + id + " .reactions").removeClass("hide")
|
||||
var regExp = new RegExp(":", "g");
|
||||
Object.keys(json.reactions).forEach(function (keye) {
|
||||
keyeClass = keye.replace(regExp, '');
|
||||
if (json.reactions[keye]) {
|
||||
$("#pub_" + id + " .re-" + keyeClass + "ct").text(json.reactions[keye])
|
||||
$("#pub_" + id + " .re-" + keyeClass).removeClass("hide")
|
||||
} else {
|
||||
$("#pub_" + id + " .re-" + keyeClass + "ct").text(0)
|
||||
if ($("#pub_" + id + " .reactions").hasClass("fullreact")) {
|
||||
$("#pub_" + id + " .re-" + keyeClass).addClass("hide")
|
||||
}
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(json.reactionCounts[reactions[i]])
|
||||
$("#pub_" + id + " .re-" + keyeClass + "ct").text(json.reactions[keye])
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function emojiReaction(emoji) {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var id = $("#reply").val();
|
||||
reaction(emoji, id, acct_id, null)
|
||||
clear();
|
||||
hide();
|
||||
}
|
||||
function reaction(mode, id, acct_id, tlid) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if ($(".fav_" + id).hasClass("yellow-text")) {
|
||||
var flag = "delete";
|
||||
} else {
|
||||
var flag = "create";
|
||||
}
|
||||
var start = "https://" + domain + "/api/notes/reactions/" + flag;
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
return false;
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({ i: at, noteId: id, reaction: mode }));
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
$(".fav_" + id).toggleClass("yellow-text");
|
||||
}
|
||||
}
|
||||
}
|
||||
//Vote
|
||||
function vote(acct_id, id, to) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/notes/polls/vote";
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
return false;
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({ i: at, noteId: id, choice: to }));
|
||||
httpreq.onreadystatechange = function () {
|
||||
voterefresh(acct_id, id)
|
||||
}
|
||||
}
|
||||
function voterefresh(acct_id, id) {
|
||||
var httpreqd = new XMLHttpRequest();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/notes/show";
|
||||
httpreqd.open('POST', start, true);
|
||||
httpreqd.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreqd.responseType = 'json';
|
||||
httpreqd.send(JSON.stringify({ i: at, noteId: id }));
|
||||
httpreqd.onreadystatechange = function () {
|
||||
if (httpreqd.readyState == 4) {
|
||||
var json = httpreqd.response;
|
||||
if (!json) {
|
||||
return false;
|
||||
}
|
||||
var poll = "";
|
||||
if (json.poll) {
|
||||
var choices = json.poll.choices;
|
||||
Object.keys(choices).forEach(function (keyc) {
|
||||
var choice = choices[keyc];
|
||||
if (choice.isVoted) {
|
||||
var myvote = twemoji.parse("✅");
|
||||
} else {
|
||||
var myvote = "";
|
||||
}
|
||||
poll = poll + '<div class="pointer vote" onclick="vote(\'' + acct_id + '\',\'' + json.id + '\',' + choice.id + ')">' + escapeHTML(choice.text) + '(' + choice.votes + '' + myvote + ')</div>';
|
||||
});
|
||||
$(".vote_" + json.id).html(poll)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function reaction(mode,id,acct_id,tlid){
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if($(".fav_"+id).hasClass("yellow-text")){
|
||||
var flag="delete";
|
||||
}else{
|
||||
var flag="create";
|
||||
}
|
||||
var start = "https://" + domain + "/api/notes/reactions/"+flag;
|
||||
if(localStorage.getItem("mode_" + domain)!="misskey"){
|
||||
return false;
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({i:at,noteId:id,reaction:mode}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
if (httpreq.readyState === 4) {
|
||||
$(".fav_"+id).toggleClass("yellow-text");
|
||||
}
|
||||
}
|
||||
}
|
||||
//Vote
|
||||
function vote(acct_id,id,to){
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/notes/polls/vote";
|
||||
if(localStorage.getItem("mode_" + domain)!="misskey"){
|
||||
return false;
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({i:at,noteId:id,choice:to}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
voterefresh(acct_id,id)
|
||||
}
|
||||
}
|
||||
function voterefresh(acct_id,id){
|
||||
var httpreqd = new XMLHttpRequest();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/notes/show";
|
||||
httpreqd.open('POST', start, true);
|
||||
httpreqd.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreqd.responseType = 'json';
|
||||
httpreqd.send(JSON.stringify({i:at,noteId:id}));
|
||||
httpreqd.onreadystatechange = function() {
|
||||
if (httpreqd.readyState == 4) {
|
||||
var json = httpreqd.response;
|
||||
if(!json){
|
||||
return false;
|
||||
}
|
||||
var poll="";
|
||||
if(json.poll){
|
||||
var choices=json.poll.choices;
|
||||
Object.keys(choices).forEach(function(keyc) {
|
||||
var choice = choices[keyc];
|
||||
if(choice.isVoted){
|
||||
var myvote=twemoji.parse("✅");
|
||||
}else{
|
||||
var myvote="";
|
||||
}
|
||||
poll=poll+'<div class="pointer vote" onclick="vote(\''+acct_id+'\',\''+json.id+'\','+choice.id+')">'+choice.text+'('+choice.votes+''+myvote+')</div>';
|
||||
});
|
||||
$(".vote_"+json.id).html(poll)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,177 +1,152 @@
|
||||
/*投稿系*/
|
||||
//投稿
|
||||
function sec(){
|
||||
var mode=localStorage.getItem("sec");
|
||||
function sec() {
|
||||
var mode = localStorage.getItem("sec");
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if(~domain.indexOf("kirishima.cloud")>=0 && mode=="local"){
|
||||
mode="unlisted";
|
||||
if (~domain.indexOf("kirishima.cloud") >= 0 && mode == "local") {
|
||||
mode = "unlisted";
|
||||
}
|
||||
post(null,mode);
|
||||
post(null, mode);
|
||||
}
|
||||
function post(mode,postvis) {
|
||||
if($("#toot-post-btn").prop("disabled")){
|
||||
function post(mode, postvis) {
|
||||
if ($("#toot-post-btn").prop("disabled")) {
|
||||
return false;
|
||||
}
|
||||
var str = $("#textarea").val();
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
localStorage.setItem("last-use", acct_id);
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if(domain=="theboss.tech"){
|
||||
if(~str.indexOf("#")){
|
||||
if(str.indexOf("#theboss_tech")=="-1"){
|
||||
if(!confirm(lang.lang_post_tagTL)){
|
||||
return false;
|
||||
if (!localStorage.getItem("cw_sentence")) {
|
||||
var cw_sent = 500;
|
||||
} else {
|
||||
var cw_sent = localStorage.getItem("cw_sentence");
|
||||
}
|
||||
if (!localStorage.getItem("cw_letters")) {
|
||||
var cw_ltres = 7000;
|
||||
} else {
|
||||
var cw_ltres = localStorage.getItem("cw_letters");
|
||||
}
|
||||
if (domain != "kirishima.cloud") {
|
||||
if (mode != "pass" && !$("#cw").hasClass("cw-avail") && (str.length > cw_sent || (str.split("\n").length - 1) > cw_ltres)) {
|
||||
var plus = str.replace(/\n/g, "").slice(0, 10) + "...";
|
||||
Swal.fire({
|
||||
title: lang.lang_post_cwtitle,
|
||||
text: lang.lang_post_cwtxt + plus,
|
||||
type: 'info',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#3085d6',
|
||||
confirmButtonText: lang.lang_post_btn2,
|
||||
cancelButtonText: lang.lang_post_btn3,
|
||||
showCloseButton: true,
|
||||
focusConfirm: false,
|
||||
}).then((result) => {
|
||||
if (result.dismiss == "cancel") {
|
||||
//btn3:sonomama
|
||||
post("pass")
|
||||
} else if (result.value) {
|
||||
//btn2:auto-CW
|
||||
$("#cw-text").show();
|
||||
$("#cw").addClass("yellow-text");
|
||||
$("#cw").addClass("cw-avail");
|
||||
$("#cw-text").val(plus);
|
||||
post("pass")
|
||||
}
|
||||
}
|
||||
})
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(domain=="dtp-mstdn.jp"){
|
||||
if(~str.indexOf("#")){
|
||||
if(str.indexOf("#dtp")=="-1"){
|
||||
if(!confirm(lang.lang_post_tagTL)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!localStorage.getItem("cw_sentence")){
|
||||
var cw_sent=500;
|
||||
}else{
|
||||
var cw_sent=localStorage.getItem("cw_sentence");
|
||||
}
|
||||
if(!localStorage.getItem("cw_letters")){
|
||||
var cw_ltres=500;
|
||||
}else{
|
||||
var cw_ltres=localStorage.getItem("cw_letters");
|
||||
}
|
||||
if(domain!="kirishima.cloud"){
|
||||
if(mode!="pass" && !$("#cw").hasClass("cw-avail") && (str.length>cw_sent || (str.split("\n").length - 1)>cw_ltres)){
|
||||
var electron = require("electron");
|
||||
var remote=electron.remote;
|
||||
var dialog=remote.dialog;
|
||||
var plus=str.replace(/\n/g,"").slice(0,10)+"...";
|
||||
const options = {
|
||||
type: 'info',
|
||||
title: lang.lang_post_cwtitle,
|
||||
message: lang.lang_post_cwtxt+plus,
|
||||
buttons: [lang.lang_post_btn1,lang.lang_post_btn2, lang.lang_post_btn3]
|
||||
}
|
||||
dialog.showMessageBox(options, function(arg) {
|
||||
if(arg===1){
|
||||
$("#cw-text").show();
|
||||
$("#cw").addClass("yellow-text");
|
||||
$("#cw").addClass("cw-avail");
|
||||
$("#cw-text").val(plus);
|
||||
post("pass");
|
||||
}else if(arg===2){
|
||||
post("pass");
|
||||
}
|
||||
})
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
misskeyPost();
|
||||
return;
|
||||
}
|
||||
$(".toot-btn-group").prop("disabled", true);
|
||||
todo("Posting");
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/statuses";
|
||||
var reply = $("#reply").val();
|
||||
if(str.indexOf(localStorage.getItem("stable"))==-1){
|
||||
str+" #"+localStorage.getItem("stable");
|
||||
if (str.indexOf(localStorage.getItem("stable")) == -1) {
|
||||
str + " #" + localStorage.getItem("stable");
|
||||
}
|
||||
var toot={
|
||||
var toot = {
|
||||
status: str
|
||||
}
|
||||
if(reply){
|
||||
toot.in_reply_to_id=reply
|
||||
if (reply) {
|
||||
toot.in_reply_to_id = reply
|
||||
}
|
||||
var media = $("#media").val();
|
||||
if(media){
|
||||
toot.media_ids=media.split(",");
|
||||
if (media) {
|
||||
toot.media_ids = media.split(",");
|
||||
}
|
||||
if ($("#nsfw").hasClass("nsfw-avail")) {
|
||||
var nsfw = "true";
|
||||
toot.sensitive=nsfw;
|
||||
toot.sensitive = nsfw;
|
||||
} else {
|
||||
var nsfw = "false";
|
||||
}
|
||||
if(postvis){
|
||||
if (postvis) {
|
||||
var vis = postvis;
|
||||
}else{
|
||||
} else {
|
||||
var vis = $("#vis").text();
|
||||
}
|
||||
|
||||
if(vis!="inherit" && vis!="local"){
|
||||
toot.visibility=vis;
|
||||
}else if(vis=="local"){
|
||||
toot.status=str+"👁️";
|
||||
if (vis != "inherit" && vis != "local") {
|
||||
toot.visibility = vis;
|
||||
} else if (vis == "local") {
|
||||
toot.status = str + "👁️";
|
||||
}
|
||||
//ここに非公開・未収載タグについてwarn
|
||||
if(domain!="kirishima.cloud" && domain!="imastodon.net"){
|
||||
if(~str.indexOf("#")){
|
||||
if(vis == "local" || vis=="unlisted" || vis=="direct" || vis=="private"){
|
||||
if(!confirm(lang.lang_post_tagVis)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($("#cw").hasClass("cw-avail")) {
|
||||
var spo = $("#cw-text").val();
|
||||
cw();
|
||||
toot.spoiler_text=spo;
|
||||
toot.spoiler_text = spo;
|
||||
} else {
|
||||
var spo = "";
|
||||
}
|
||||
if ($("#sch-box").hasClass("sch-avail")) {
|
||||
var scheduled=formattimeutc(new Date(Date.parse($("#sch-date").val())))
|
||||
console.log(scheduled)
|
||||
var scheduled = formattimeutc(new Date(Date.parse($("#sch-date").val())))
|
||||
console.log("This toot will be posted at:" + scheduled)
|
||||
schedule();
|
||||
toot.scheduled_at=scheduled;
|
||||
toot.scheduled_at = scheduled;
|
||||
} else {
|
||||
var scheduled = "";
|
||||
}
|
||||
if ($("#poll-sel").val()=="mastodon-poll") {
|
||||
var options=[];
|
||||
$(".mastodon-choice").map(function() {
|
||||
var choice=$(this).val();
|
||||
if(choice!=""){
|
||||
if ($("#poll-sel").val() == "mastodon-poll") {
|
||||
var options = [];
|
||||
$(".mastodon-choice").map(function () {
|
||||
var choice = $(this).val();
|
||||
if (choice != "") {
|
||||
options.push(choice);
|
||||
}
|
||||
});
|
||||
if($("#poll-multiple:checked").val()=="1"){
|
||||
var mul=true;
|
||||
}else{
|
||||
var mul=false;
|
||||
if ($("#poll-multiple:checked").val() == "1") {
|
||||
var mul = true;
|
||||
} else {
|
||||
var mul = false;
|
||||
}
|
||||
if($("#poll-until:checked").val()=="1"){
|
||||
var htt=true;
|
||||
}else{
|
||||
var htt=false;
|
||||
if ($("#poll-until:checked").val() == "1") {
|
||||
var htt = true;
|
||||
} else {
|
||||
var htt = false;
|
||||
}
|
||||
var exin=pollCalc();
|
||||
if(!exin){
|
||||
var exin = pollCalc();
|
||||
if (!exin) {
|
||||
todc("Error: Poll expires_in param")
|
||||
}
|
||||
toot.poll={
|
||||
toot.poll = {
|
||||
options: options,
|
||||
expires_in: exin,
|
||||
multiple: mul,
|
||||
hide_totals: htt
|
||||
}
|
||||
}
|
||||
console.log(toot);
|
||||
console.table(toot);
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify(toot));
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
var box = localStorage.getItem("box");
|
||||
@@ -185,71 +160,71 @@ function post(mode,postvis) {
|
||||
}
|
||||
}
|
||||
}
|
||||
function misskeyPost(){
|
||||
function misskeyPost() {
|
||||
var str = $("#textarea").val();
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
localStorage.setItem("last-use", acct_id);
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
$(".toot-btn-group").prop("disabled", true);
|
||||
todo("Posting");
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/notes/create";
|
||||
var reply = $("#reply").val();
|
||||
var toot={
|
||||
var toot = {
|
||||
text: str
|
||||
}
|
||||
if(reply){
|
||||
if(reply.indexOf("renote")!== -1){
|
||||
toot.renoteId=reply.replace("renote_","")
|
||||
}else{
|
||||
toot.replyId=reply
|
||||
if (reply) {
|
||||
if (reply.indexOf("renote") !== -1) {
|
||||
toot.renoteId = reply.replace("renote_", "")
|
||||
} else {
|
||||
toot.replyId = reply
|
||||
}
|
||||
}
|
||||
|
||||
var media = $("#media").val();
|
||||
if(media){
|
||||
toot.mediaIds=media.split(",");
|
||||
if (media) {
|
||||
toot.mediaIds = media.split(",");
|
||||
}
|
||||
if ($("#nsfw").hasClass("nsfw-avail")) {
|
||||
var nsfw = "true";
|
||||
toot.sensitive=nsfw;
|
||||
toot.sensitive = nsfw;
|
||||
} else {
|
||||
var nsfw = "false";
|
||||
}
|
||||
var vis = $("#vis").text();
|
||||
if(vis=="unlisted"){
|
||||
vis=="home"
|
||||
}else if(vis=="direct"){
|
||||
vis=="specified";
|
||||
toot.visibleUserIds=str.match(/@([a-zA-Z0-9_@.-]+)(\s|$)/g).join('').split("@");
|
||||
if (vis == "unlisted") {
|
||||
vis = "home"
|
||||
} else if (vis == "direct") {
|
||||
vis = "specified";
|
||||
toot.visibleUserIds = str.match(/@([a-zA-Z0-9_@.-]+)(\s|$)/g).join('').split("@");
|
||||
}
|
||||
if(vis!="inherit"){
|
||||
toot.visibility=vis;
|
||||
if (vis != "inherit") {
|
||||
toot.visibility = vis;
|
||||
}
|
||||
if ($("#cw").hasClass("cw-avail")) {
|
||||
var spo = $("#cw-text").val();
|
||||
cw();
|
||||
toot.cw=spo;
|
||||
toot.cw = spo;
|
||||
} else {
|
||||
var spo = "";
|
||||
}
|
||||
toot.i=at;
|
||||
toot.i = at;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
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){
|
||||
if (str.indexOf(localStorage.getItem("stable")) == -1) {
|
||||
localStorage.removeItem("stable")
|
||||
}
|
||||
var json = httpreq.response;
|
||||
console.log(json);
|
||||
console.log(["Success: toot", json]);
|
||||
var box = localStorage.getItem("box");
|
||||
if (box == "yes") {
|
||||
hide();
|
||||
}else if (box == "hide"){
|
||||
} else if (box == "hide") {
|
||||
$("body").addClass("mini-post");
|
||||
$(".mini-btn").text("expand_less");
|
||||
}
|
||||
@@ -263,8 +238,8 @@ function misskeyPost(){
|
||||
//クリア(Shift+C)
|
||||
function clear() {
|
||||
$("#textarea").val("");
|
||||
if(localStorage.getItem("stable")){
|
||||
$("#textarea").val("#"+localStorage.getItem("stable")+" ")
|
||||
if (localStorage.getItem("stable")) {
|
||||
$("#textarea").val("#" + localStorage.getItem("stable") + " ")
|
||||
}
|
||||
$("#textarea").attr("placeholder", lang.lang_toot);
|
||||
$("#reply").val("");
|
||||
@@ -280,7 +255,7 @@ function clear() {
|
||||
$("#cw").removeClass("yellow-text");
|
||||
$("#cw").removeClass("cw-avail");
|
||||
$("#cw-text").hide();
|
||||
}else{
|
||||
} else {
|
||||
$("#cw").addClass("yellow-text");
|
||||
$("#cw").addClass("cw-avail");
|
||||
$("#cw-text").show();
|
||||
@@ -297,14 +272,18 @@ function clear() {
|
||||
$(".toot-btn-group").prop("disabled", false);
|
||||
$("#post-acct-sel").prop("disabled", false);
|
||||
$("#days_poll").val(0);
|
||||
$("#hours_poll").val(0);
|
||||
$("#mins_poll").val(0);
|
||||
$(".mastodon-choice").map(function() {
|
||||
$("#hours_poll").val(0);
|
||||
$("#mins_poll").val(6);
|
||||
$(".mastodon-choice").map(function () {
|
||||
$(this).val("");
|
||||
});
|
||||
localStorage.removeItem("image");
|
||||
if(localStorage.getItem("mainuse")=="main"){
|
||||
if (localStorage.getItem("mainuse") == "main") {
|
||||
$("#post-acct-sel").val(localStorage.getItem("main"));
|
||||
}
|
||||
$('select').material_select();
|
||||
$('select').formSelect();
|
||||
$("#left-side").show();
|
||||
$("#default-emoji").show();
|
||||
$("#unreact").show();
|
||||
$("#addreact").addClass("hide");
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
/*保護系*/
|
||||
//画像保護
|
||||
function nsfw(){
|
||||
if($("#nsfw").hasClass("nsfw-avail")){
|
||||
function nsfw() {
|
||||
if ($("#nsfw").hasClass("nsfw-avail")) {
|
||||
$("#nsfw").removeClass("yellow-text");
|
||||
$("#nsfw").html("visibility_off");
|
||||
$("#nsfw").removeClass("nsfw-avail");
|
||||
}else{
|
||||
} else {
|
||||
$("#nsfw").addClass("yellow-text");
|
||||
$("#nsfw").html("visibility");
|
||||
$("#nsfw").addClass("nsfw-avail");
|
||||
@@ -13,7 +13,7 @@ function nsfw(){
|
||||
}
|
||||
|
||||
//投稿公開範囲
|
||||
function vis(set){
|
||||
function vis(set) {
|
||||
$("#vis").text(set);
|
||||
$("#vis-icon").removeClass("red-text");
|
||||
$("#vis-icon").removeClass("orange-text");
|
||||
@@ -21,109 +21,110 @@ function vis(set){
|
||||
$("#vis-icon").removeClass("purple-text");
|
||||
$("#vis-icon").removeClass("light-blue-text");
|
||||
$("#vis-icon").removeClass("teal-text");
|
||||
if(set=="public"){
|
||||
if (set == "public") {
|
||||
$("#vis-icon").text("public");
|
||||
$("#vis-icon").addClass("purple-text");
|
||||
}else if(set=="unlisted"){
|
||||
} else if (set == "unlisted") {
|
||||
$("#vis-icon").text("lock_open");
|
||||
$("#vis-icon").addClass("blue-text");
|
||||
}else if(set=="private"){
|
||||
} else if (set == "private") {
|
||||
$("#vis-icon").text("lock");
|
||||
$("#vis-icon").addClass("orange-text");
|
||||
}else if(set=="direct"){
|
||||
} else if (set == "direct") {
|
||||
$("#vis-icon").text("mail");
|
||||
$("#vis-icon").addClass("red-text");
|
||||
}else if(set=="limited"){
|
||||
} else if (set == "limited") {
|
||||
$("#vis-icon").text("group");
|
||||
$("#vis-icon").addClass("teal-text");
|
||||
}else if(set=="local"){
|
||||
} else if (set == "local") {
|
||||
$("#vis-icon").text("visibility");
|
||||
$("#vis-icon").addClass("light-blue-text");
|
||||
}
|
||||
var vis=localStorage.getItem("vis");
|
||||
if(vis=="memory"){
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
localStorage.setItem("vis-memory-"+acct_id,set);
|
||||
}
|
||||
$('.dropdown-button').dropdown('close');
|
||||
var vis = localStorage.getItem("vis");
|
||||
if (vis == "memory") {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
localStorage.setItem("vis-memory-" + acct_id, set);
|
||||
}
|
||||
var ins = M.Dropdown.getInstance($('#dropdown1'))
|
||||
if(ins){
|
||||
ins.close();
|
||||
}
|
||||
}
|
||||
function loadVis(){
|
||||
var vist = localStorage.getItem("vis");
|
||||
console.log(vist);
|
||||
if (!vist) {
|
||||
vis("public");
|
||||
} else {
|
||||
if (vist == "memory") {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var memory = localStorage.getItem("vis-memory-"+acct_id);
|
||||
if (!memory) {
|
||||
memory = "public";
|
||||
}
|
||||
vis(memory);
|
||||
} else if(vist == "useapi") {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var multi = localStorage.getItem("multi");
|
||||
var obj = JSON.parse(multi);
|
||||
var memory = obj[acct_id]["vis"];
|
||||
if (!memory) {
|
||||
memory = "public";
|
||||
}
|
||||
vis(memory);
|
||||
} else {
|
||||
vis(vist);
|
||||
function loadVis() {
|
||||
var vist = localStorage.getItem("vis");
|
||||
if (!vist) {
|
||||
vis("public");
|
||||
} else {
|
||||
if (vist == "memory") {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var memory = localStorage.getItem("vis-memory-" + acct_id);
|
||||
if (!memory) {
|
||||
memory = "public";
|
||||
}
|
||||
vis(memory);
|
||||
} else if (vist == "useapi") {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var multi = localStorage.getItem("multi");
|
||||
var obj = JSON.parse(multi);
|
||||
var memory = obj[acct_id]["vis"];
|
||||
if (!memory) {
|
||||
memory = "public";
|
||||
}
|
||||
vis(memory);
|
||||
} else {
|
||||
vis(vist);
|
||||
}
|
||||
}
|
||||
}
|
||||
loadVis();
|
||||
|
||||
//コンテントワーニング
|
||||
function cw(){
|
||||
if($("#cw").hasClass("cw-avail")){
|
||||
function cw() {
|
||||
if ($("#cw").hasClass("cw-avail")) {
|
||||
$("#cw-text").val();
|
||||
$("#cw-text").hide();
|
||||
$("#cw").removeClass("yellow-text");
|
||||
$("#cw").removeClass("cw-avail");
|
||||
}else{
|
||||
} else {
|
||||
$("#cw-text").show();
|
||||
$("#cw").addClass("yellow-text");
|
||||
$("#cw").addClass("cw-avail");
|
||||
var cwt=localStorage.getItem("cw-text");
|
||||
if(cwt){
|
||||
var cwt = localStorage.getItem("cw-text");
|
||||
if (cwt) {
|
||||
$("#cw-text").val(cwt);
|
||||
}
|
||||
}
|
||||
}
|
||||
//TLでコンテントワーニングを表示トグル
|
||||
function cw_show(id){
|
||||
$(".cw_hide_"+id).toggleClass("cw");
|
||||
$(".cw-long-"+id).toggleClass("hide");
|
||||
function cw_show(id) {
|
||||
$(".cw_hide_" + id).toggleClass("cw");
|
||||
$(".cw-long-" + id).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;
|
||||
var cwlen = $('#cw-text').val().length;
|
||||
|
||||
if(idata[domain+"_letters"]){
|
||||
$("#textarea").attr("data-length", idata[domain+"_letters"]-cwlen)
|
||||
}else{
|
||||
$("#textarea").attr("data-length", 500-cwlen)
|
||||
if (idata[domain + "_letters"]) {
|
||||
$("#textarea").attr("data-length", idata[domain + "_letters"] - cwlen)
|
||||
} else {
|
||||
$("#textarea").attr("data-length", 500 - cwlen)
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
//スケジュール
|
||||
function schedule(){
|
||||
if($("#sch-box").hasClass("sch-avail")){
|
||||
function schedule() {
|
||||
if ($("#sch-box").hasClass("sch-avail")) {
|
||||
$("#sch-box").hide();
|
||||
$("#sch-box").removeClass("sch-avail");
|
||||
}else{
|
||||
} else {
|
||||
var date = new Date();
|
||||
|
||||
$("#sch-box").show();
|
||||
$("#sch-date").val(formattime(date));
|
||||
console.log(formattime(date));
|
||||
$("#sch-box").addClass("sch-avail");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ function fav(id, acct_id, remote) {
|
||||
var flag = "favourite";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id + "/" + flag;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
@@ -15,19 +15,19 @@ function fav(id, acct_id, remote) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send();
|
||||
httpreq.onreadystatechange = function() {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
if(remote!="remote"){
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
if (remote != "remote") {
|
||||
//APIのふぁぼカウントがおかしい
|
||||
if ($("[toot-id=" + id + "] .fav_ct").text() == json.favourites_count){
|
||||
if(flag=="unfavourite"){
|
||||
var fav=json.favourites_count - 1;
|
||||
}else{
|
||||
var fav=json.favourites_count + 1;
|
||||
if ($("[toot-id=" + id + "] .fav_ct").text() == json.favourites_count) {
|
||||
if (flag == "unfavourite") {
|
||||
var fav = json.favourites_count - 1;
|
||||
} else {
|
||||
var fav = json.favourites_count + 1;
|
||||
//var fav = json.favourites_count;
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
var fav = json.favourites_count;
|
||||
}
|
||||
$("[toot-id=" + id + "] .fav_ct").text(fav);
|
||||
@@ -35,17 +35,17 @@ function fav(id, acct_id, remote) {
|
||||
} else {
|
||||
$("[toot-id=" + id + "] .rt_ct").text(fav);
|
||||
}
|
||||
if ($("[toot-id=" + id +"]").hasClass("faved")) {
|
||||
$("[toot-id=" + id +"]").removeClass("faved");
|
||||
if ($("[toot-id=" + id + "]").hasClass("faved")) {
|
||||
$("[toot-id=" + id + "]").removeClass("faved");
|
||||
$(".fav_" + id).removeClass("yellow-text");
|
||||
} else {
|
||||
$("[toot-id=" + id +"]").addClass("faved");
|
||||
$("[toot-id=" + id + "]").addClass("faved");
|
||||
$(".fav_" + id).addClass("yellow-text");
|
||||
}
|
||||
}else{
|
||||
Materialize.toast(lang.lang_status_favWarn, 1000);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
M.toast({ html: lang.lang_status_favWarn, displayLength: 1000 })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ function rt(id, acct_id, remote) {
|
||||
var flag = "reblog";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id + "/" + flag;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
@@ -65,10 +65,10 @@ function rt(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;
|
||||
console.log(json);
|
||||
console.log(["Success: boost", json]);
|
||||
if (remote != "remote") {
|
||||
$("[toot-id=" + id + "] .fav_ct").text(json.favourites_count);
|
||||
if (!json.reblog) {
|
||||
@@ -84,23 +84,23 @@ function rt(id, acct_id, remote) {
|
||||
|
||||
if ($("[toot-id=" + id + "]").hasClass("rted")) {
|
||||
$("[toot-id=" + id + "]").removeClass("rted");
|
||||
$(".rt_" + id).removeClass("teal-text");
|
||||
$(".rt_" + id).removeClass("light-blue-text");
|
||||
} else {
|
||||
$("[toot-id=" + id + "]").addClass("rted");
|
||||
$(".rt_" + id).addClass("teal-text");
|
||||
$(".rt_" + id).addClass("light-blue-text");
|
||||
}
|
||||
} else {
|
||||
Materialize.toast(lang.lang_status_btWarn, 1000);
|
||||
M.toast({ html: lang.lang_status_btWarn, displayLength: 1000 })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//フォロー
|
||||
function follow(acct_id,remote) {
|
||||
if (!acct_id && acct_id!="selector") {
|
||||
function follow(acct_id, remote) {
|
||||
if (!acct_id && acct_id != "selector") {
|
||||
var acct_id = $('#his-data').attr("use-acct");
|
||||
}else if (acct_id=="selector") {
|
||||
} else if (acct_id == "selector") {
|
||||
var acct_id = $("#user-acct-sel").val();
|
||||
}
|
||||
if (!remote && $("#his-data").hasClass("following")) {
|
||||
@@ -111,34 +111,29 @@ function follow(acct_id,remote) {
|
||||
var flagm = "create";
|
||||
}
|
||||
var id = $("#his-data").attr("user-id");
|
||||
if(!remote){
|
||||
if (!remote) {
|
||||
var remote = $("#his-data").attr("remote");
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var start = "https://" + domain + "/api/following/"+flagm;
|
||||
var user=$("#his-acct").text();
|
||||
var ent={"i":at,"userId":id}
|
||||
}else if(remote=="true" && flag=="follow"){
|
||||
var start = "https://" + domain + "/api/v1/follows";
|
||||
var user=$("#his-acct").text();
|
||||
var ent={"uri":user}
|
||||
}else{
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var user = $("#his-acct").text();
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/following/" + flagm;
|
||||
var ent = { "i": at, "userId": id }
|
||||
} else if (remote == "true" && flag == "follow") {
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
|
||||
var ent={}
|
||||
var ent = {}
|
||||
}
|
||||
console.log(ent);
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
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;
|
||||
console.log(json);
|
||||
console.log(["Success: folllow", json]);
|
||||
if ($("#his-data").hasClass("following")) {
|
||||
$("#his-data").removeClass("following");
|
||||
$("#his-follow-btn").text(lang.lang_status_follow);
|
||||
@@ -162,7 +157,7 @@ function block(acct_id) {
|
||||
var flag = "block";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
@@ -170,7 +165,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 ($("#his-data").hasClass("blocking")) {
|
||||
$("#his-data").removeClass("blocking");
|
||||
@@ -184,7 +179,7 @@ function block(acct_id) {
|
||||
}
|
||||
|
||||
//ミュート
|
||||
function mute(acct_id) {
|
||||
function muteDo(acct_id) {
|
||||
if (!acct_id) {
|
||||
var acct_id = $('#his-data').attr("use-acct");
|
||||
}
|
||||
@@ -197,14 +192,14 @@ function mute(acct_id) {
|
||||
var flagm = "create";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var start = "https://" + domain + "/api/mute/"+flagm;
|
||||
var ent={"i":at,"userId":id}
|
||||
var rq=JSON.stringify(ent);
|
||||
}else{
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/mute/" + flagm;
|
||||
var ent = { "i": at, "userId": id }
|
||||
var rq = JSON.stringify(ent);
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
|
||||
var rq="";
|
||||
var rq = "";
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
@@ -212,7 +207,7 @@ function mute(acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(rq);
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if ($("#his-data").hasClass("muting")) {
|
||||
$("#his-data").removeClass("muting");
|
||||
@@ -228,15 +223,17 @@ function mute(acct_id) {
|
||||
//投稿削除
|
||||
function del(id, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/notes/delete";
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({i:at,noteId:id}));
|
||||
}else{
|
||||
httpreq.send(JSON.stringify({ i: at, noteId: id }));
|
||||
$("[toot-id=" + id + "]").hide();
|
||||
$("[toot-id=" + id + "]").remove();
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('DELETE', start, true);
|
||||
@@ -245,46 +242,57 @@ function del(id, acct_id) {
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send();
|
||||
}
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
}
|
||||
}
|
||||
}
|
||||
//redraft
|
||||
function redraft(id, acct_id){
|
||||
if(confirm(lang.lang_status_redraft)){
|
||||
show();
|
||||
del(id, acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
var medias=$("[toot-id="+id+"]").attr("data-medias");
|
||||
var vismode=$("[toot-id="+id+"] .vis-data").attr("data-vis");
|
||||
vis(vismode);
|
||||
$("#media").val(medias);
|
||||
var ct=medias.split(",").length;
|
||||
$("[toot-id="+id+"] img.toot-img").each(function(i, elem) {
|
||||
if(i<ct){
|
||||
var url=$(elem).attr("src");
|
||||
console.log(url);
|
||||
$('#preview').append('<img src="' + url + '" style="width:50px; max-height:100px;">');
|
||||
function redraft(id, acct_id) {
|
||||
Swal.fire({
|
||||
title: lang.lang_status_redraftTitle,
|
||||
text: lang.lang_status_redraft,
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
show();
|
||||
del(id, acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
var medias = $("[toot-id=" + id + "]").attr("data-medias");
|
||||
var vismode = $("[toot-id=" + id + "] .vis-data").attr("data-vis");
|
||||
vis(vismode);
|
||||
$("#media").val(medias);
|
||||
var ct = medias.split(",").length;
|
||||
$("[toot-id=" + id + "] img.toot-img").each(function (i, elem) {
|
||||
if (i < ct) {
|
||||
var url = $(elem).attr("src");
|
||||
console.log("Play back image data:" + url);
|
||||
$('#preview').append('<img src="' + url + '" style="width:50px; max-height:100px;">');
|
||||
}
|
||||
});
|
||||
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);
|
||||
localStorage.setItem("nohide", true);
|
||||
show();
|
||||
$("#textarea").val(html);
|
||||
var cwtxt = $("[toot-id=" + id + "] .cw_text").html();
|
||||
if (cwtxt != "") {
|
||||
cwtxt = $.strip_tags(cwtxt);
|
||||
cw();
|
||||
$("#cw-text").val(cwtxt);
|
||||
}
|
||||
});
|
||||
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);
|
||||
localStorage.setItem("nohide",true);
|
||||
show();
|
||||
$("#textarea").val(html);
|
||||
var cwtxt=$("[toot-id="+id+"] .cw_text").html();
|
||||
if(cwtxt!=""){
|
||||
cwtxt=$.strip_tags(cwtxt);
|
||||
cw();
|
||||
$("#cw-text").val(cwtxt);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
//ピン留め
|
||||
function pin(id, acct_id) {
|
||||
@@ -294,7 +302,7 @@ function pin(id, acct_id) {
|
||||
var flag = "pin";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id + "/" + flag;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
@@ -302,10 +310,10 @@ 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;
|
||||
console.log(json);
|
||||
console.log(["Success: pinned", json]);
|
||||
if ($("[toot-id=" + id + "]").hasClass("pined")) {
|
||||
$("[toot-id=" + id + "]").removeClass("pined");
|
||||
$(".pin_" + id).removeClass("blue-text");
|
||||
@@ -320,7 +328,7 @@ function pin(id, acct_id) {
|
||||
//フォロリク
|
||||
function request(id, flag, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/follow_requests/" + id + "/" + flag;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
@@ -328,10 +336,10 @@ 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;
|
||||
console.log(json);
|
||||
console.log(["Success: request", "type:" + flag, json]);
|
||||
showReq();
|
||||
}
|
||||
}
|
||||
@@ -343,7 +351,7 @@ function domainblock(add, flag, acct_id) {
|
||||
var acct_id = $('#his-data').attr("use-acct");
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/domain_blocks"
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
@@ -351,10 +359,10 @@ 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;
|
||||
console.log(json);
|
||||
console.log(["Success: domain block", json]);
|
||||
showDom();
|
||||
}
|
||||
}
|
||||
@@ -365,25 +373,24 @@ function addDomainblock() {
|
||||
domainblock(domain, 'POST');
|
||||
}
|
||||
//ユーザー強調
|
||||
function empUser(){
|
||||
function empUser() {
|
||||
var usr = localStorage.getItem("user_emp");
|
||||
var obj = JSON.parse(usr);
|
||||
var id=$("#his-acct").attr("fullname");
|
||||
console.log(id);
|
||||
if(!obj){
|
||||
var obj=[];
|
||||
var id = $("#his-acct").attr("fullname");
|
||||
if (!obj) {
|
||||
var obj = [];
|
||||
obj.push(id);
|
||||
Materialize.toast(id+lang.lang_status_emphas, 4000);
|
||||
}else{
|
||||
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;
|
||||
}else{
|
||||
can=true;
|
||||
if (usT != id && !can) {
|
||||
can = false;
|
||||
} else {
|
||||
can = true;
|
||||
obj.splice(key, 1);
|
||||
Materialize.toast(id+lang.lang_status_unemphas, 4000);
|
||||
M.toast({ html: id + lang.lang_status_unemphas, displayLength: 4000 })
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -391,16 +398,16 @@ function empUser(){
|
||||
localStorage.setItem("user_emp", json);
|
||||
}
|
||||
//Endorse
|
||||
function pinUser(){
|
||||
var id=$("#his-data").attr("user-id");
|
||||
var acct_id=$("#his-data").attr("use-acct");
|
||||
function pinUser() {
|
||||
var id = $("#his-data").attr("user-id");
|
||||
var acct_id = $("#his-data").attr("use-acct");
|
||||
if ($("#his-end-btn").hasClass("endorsed")) {
|
||||
var flag = "unpin";
|
||||
} else {
|
||||
var flag = "pin";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
@@ -408,10 +415,9 @@ 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;
|
||||
console.log(json);
|
||||
if ($("#his-end-btn").hasClass("endorsed")) {
|
||||
$("#his-end-btn").removeClass("endorsed")
|
||||
$("#his-end-btn").text(lang.lang_status_endorse)
|
||||
@@ -424,57 +430,57 @@ function pinUser(){
|
||||
}
|
||||
}
|
||||
//URLコピー
|
||||
function tootUriCopy(url){
|
||||
function tootUriCopy(url) {
|
||||
execCopy(url);
|
||||
Materialize.toast(lang.lang_details_url, 1500);
|
||||
M.toast({ html: lang.lang_details_url, displayLength: 1500 })
|
||||
}
|
||||
|
||||
//他のアカウントで…
|
||||
function staEx(mode){
|
||||
var url=$("#tootmodal").attr("data-url");
|
||||
function staEx(mode) {
|
||||
var url = $("#tootmodal").attr("data-url");
|
||||
var acct_id = $("#status-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/search?resolve=true&q="+url
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/search?resolve=true&q=" + url
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
}
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
var id=json.statuses[0].id;
|
||||
if(mode=="rt"){
|
||||
}).then(function (json) {
|
||||
var id = json.statuses[0].id;
|
||||
if (mode == "rt") {
|
||||
rt(id, acct_id, 'remote')
|
||||
}else if(mode=="fav"){
|
||||
} else if (mode == "fav") {
|
||||
fav(id, acct_id, 'remote')
|
||||
}else if(mode=="reply"){
|
||||
} else if (mode == "reply") {
|
||||
reEx(id)
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
function toggleAction(id,tlid,acct_id){
|
||||
if(tlid=="notf"){
|
||||
var tlide="[data-notf="+acct_id+"]";
|
||||
}else{
|
||||
var tlide="[tlid="+tlid+"]";
|
||||
function toggleAction(id, tlid, acct_id) {
|
||||
if (tlid == "notf") {
|
||||
var tlide = "[data-notf=" + acct_id + "]";
|
||||
} else {
|
||||
var tlide = "[tlid=" + tlid + "]";
|
||||
}
|
||||
if(!$(tlide+" [toot-id="+id+"]").hasClass("ext-mode")){
|
||||
$(tlide+" [toot-id="+id+"] .type-a").hide();
|
||||
$(tlide+" [toot-id="+id+"] .type-b").show();
|
||||
$(tlide+" [toot-id="+id+"]").addClass("ext-mode")
|
||||
$(tlide+" [toot-id="+id+"] .act-icon").text("expand_less");
|
||||
}else{
|
||||
$(tlide+" [toot-id="+id+"] .type-b").hide();
|
||||
$(tlide+" [toot-id="+id+"] .type-a").show();
|
||||
$(tlide+" [toot-id="+id+"]").removeClass("ext-mode")
|
||||
$(tlide+" [toot-id="+id+"] .act-icon").text("expand_more");
|
||||
if (!$(tlide + " [toot-id=" + id + "]").hasClass("ext-mode")) {
|
||||
$(tlide + " [toot-id=" + id + "] .type-a").hide();
|
||||
$(tlide + " [toot-id=" + id + "] .type-b").show();
|
||||
$(tlide + " [toot-id=" + id + "]").addClass("ext-mode")
|
||||
$(tlide + " [toot-id=" + id + "] .act-icon").text("expand_less");
|
||||
} else {
|
||||
$(tlide + " [toot-id=" + id + "] .type-b").hide();
|
||||
$(tlide + " [toot-id=" + id + "] .type-a").show();
|
||||
$(tlide + " [toot-id=" + id + "]").removeClass("ext-mode")
|
||||
$(tlide + " [toot-id=" + id + "] .act-icon").text("expand_more");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,44 +7,44 @@ var prev_val = input.value;
|
||||
var oldSuggest;
|
||||
var suggest;
|
||||
|
||||
input.addEventListener("focus", function() {
|
||||
input.addEventListener("focus", function () {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
$("#suggest").html("");
|
||||
window.clearInterval(timer);
|
||||
timer = window.setInterval(function() {
|
||||
timer = window.setInterval(function () {
|
||||
var new_val = input.value;
|
||||
if(new_val==""){
|
||||
if (new_val == "") {
|
||||
$("#suggest").html("");
|
||||
if($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")){
|
||||
if ($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")) {
|
||||
$("#right-side").hide()
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (prev_val != new_val) {
|
||||
var semoji = new_val.match(/:(\S{3,})/);
|
||||
if(semoji){
|
||||
if (semoji) {
|
||||
var obj = JSON.parse(localStorage.getItem("emoji_" + acct_id));
|
||||
if(!obj){
|
||||
var ehtml=lang.lang_suggest_nodata;
|
||||
}else{
|
||||
if (!obj) {
|
||||
var ehtml = lang.lang_suggest_nodata;
|
||||
} else {
|
||||
var num = obj.length;
|
||||
var ehtml="";
|
||||
var ehtml = "";
|
||||
for (i = 0; i < num; i++) {
|
||||
var emoji = obj[i];
|
||||
if ( ~emoji.shortcode.indexOf(semoji[1])) {
|
||||
if (~emoji.shortcode.indexOf(semoji[1])) {
|
||||
if (emoji) {
|
||||
ehtml = ehtml+'<a onclick="emojiInsert(\':' + emoji.shortcode +
|
||||
': \',\':'+semoji[1]+'\')" class="pointer"><img src="' + emoji.url + '" width="20"></a>';
|
||||
ehtml = ehtml + '<a onclick="emojiInsert(\':' + emoji.shortcode +
|
||||
': \',\':' + semoji[1] + '\')" class="pointer"><img src="' + emoji.url + '" width="20"></a>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(ehtml!=""){
|
||||
if (ehtml != "") {
|
||||
$("#right-side").show()
|
||||
$("#poll").addClass("hide")
|
||||
$("#emoji").addClass("hide")
|
||||
}else{
|
||||
if($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")){
|
||||
} else {
|
||||
if ($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")) {
|
||||
$("#right-side").hide()
|
||||
}
|
||||
}
|
||||
@@ -53,65 +53,81 @@ input.addEventListener("focus", function() {
|
||||
|
||||
var tag = new_val.match(/#(\S{3,})/);
|
||||
var acct = new_val.match(/@(\S{3,})/);
|
||||
if(localStorage.getItem("imas")){
|
||||
//セルフNP
|
||||
var cpnp = new_val.match(/^(?!.*http)\/\/(\S{1,})/);
|
||||
}else{
|
||||
var cpnp=[];
|
||||
}
|
||||
if (cpnp && cpnp[1]) {
|
||||
var q = cpnp[1];
|
||||
cgNPs(q);
|
||||
} else if (tag && tag[1]) {
|
||||
if (tag && tag[1]) {
|
||||
var q = tag[1];
|
||||
} else if (acct && acct[1]) {
|
||||
var q = acct[1];
|
||||
}else {
|
||||
} else {
|
||||
$("#suggest").html("");
|
||||
if($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")){
|
||||
if ($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")) {
|
||||
$("#right-side").hide()
|
||||
}
|
||||
return;
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
suggest = "https://" + domain + "/api/v1/search?q=" + q
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
suggest = "https://" + domain + "/api/v2/search?q=" + q
|
||||
if (suggest != oldSuggest) {
|
||||
console.log(suggest)
|
||||
console.log("Try to get suggest at " + suggest)
|
||||
fetch(suggest, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
}).then(function (json) {
|
||||
console.log(["Search", json]);
|
||||
//ハッシュタグ
|
||||
if (json.hashtags[0] && tag) {
|
||||
if(tag[1]){
|
||||
var tags = "";
|
||||
Object.keys(json.hashtags).forEach(function(key4) {
|
||||
var tag = json.hashtags[key4];
|
||||
if(tag!=q){
|
||||
tags = tags + '<a onclick="tagInsert(\'#' + tag + '\',\'#' + q +
|
||||
'\')" class="pointer">#' + tag + '</a><br>';
|
||||
}
|
||||
});
|
||||
$("#right-side").show()
|
||||
$("#suggest").html("Tags:<br>" + tags);
|
||||
$("#poll").addClass("hide")
|
||||
$("#emoji").addClass("hide")
|
||||
if (tag[1]) {
|
||||
var tags = [];
|
||||
Object.keys(json.hashtags).forEach(function (key4) {
|
||||
var tag = json.hashtags[key4];
|
||||
var his = tag.history;
|
||||
var uses = his[0].uses * 1 + his[1].uses * 1 + his[2].uses * 1 + his[3].uses * 1 + his[4].uses * 1 + his[5].uses * 1 + his[6].uses * 1;
|
||||
tagHTML = '<br><a onclick="tagInsert(\'#' + escapeHTML(tag.name) + '\',\'#' + q + '\')" class="pointer">#' +
|
||||
escapeHTML(tag.name) + '</a> ' + uses + 'toot(s)'
|
||||
var item = {
|
||||
"uses": uses,
|
||||
"html": tagHTML
|
||||
}
|
||||
tags.push(item)
|
||||
});
|
||||
var num_a = -1;
|
||||
var num_b = 1;
|
||||
tags = tags.sort(function (a, b) {
|
||||
var x = a["uses"];
|
||||
var y = b["uses"];
|
||||
if (x > y) return num_a;
|
||||
if (x < y) return num_b;
|
||||
return 0;
|
||||
});
|
||||
var ins = ""
|
||||
var nev = false
|
||||
Object.keys(tags).forEach(function (key7) {
|
||||
ins = ins + tags[key7].html
|
||||
if (key7 <= 0 && !nev) {
|
||||
ins = ins + '<br>'
|
||||
nev = true
|
||||
}
|
||||
});
|
||||
$("#suggest").html(ins);
|
||||
$("#right-side").show()
|
||||
$("#poll").addClass("hide")
|
||||
$("#emoji").addClass("hide")
|
||||
}
|
||||
} else if (json.accounts[0] && acct[1]) {
|
||||
var accts = "";
|
||||
Object.keys(json.accounts).forEach(function(key3) {
|
||||
Object.keys(json.accounts).forEach(function (key3) {
|
||||
var acct = json.accounts[key3];
|
||||
if(acct.acct!=q){
|
||||
if (acct.acct != q) {
|
||||
accts = accts + '<a onclick="tagInsert(\'@' + acct.acct +
|
||||
'\',\'@' + q + '\')" class="pointer">@' + acct.acct + '</a><br>';
|
||||
'\',\'@' + q + '\')" class="pointer">@' + acct.acct + '</a><br>';
|
||||
}
|
||||
});
|
||||
$("#right-side").show()
|
||||
@@ -119,7 +135,7 @@ input.addEventListener("focus", function() {
|
||||
$("#poll").addClass("hide")
|
||||
$("#emoji").addClass("hide")
|
||||
} else {
|
||||
if($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")){
|
||||
if ($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")) {
|
||||
$("#right-side").hide()
|
||||
}
|
||||
}
|
||||
@@ -131,7 +147,7 @@ input.addEventListener("focus", function() {
|
||||
}, 1000);
|
||||
}, false);
|
||||
|
||||
input.addEventListener("blur", function() {
|
||||
input.addEventListener("blur", function () {
|
||||
window.clearInterval(timer);
|
||||
favTag();
|
||||
}, false);
|
||||
@@ -140,50 +156,49 @@ function tagInsert(code, del) {
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if (!del) {
|
||||
} else {
|
||||
var regExp = new RegExp(del, "g");
|
||||
var regExp = new RegExp(del.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
var now = now.replace(regExp, "");
|
||||
selin=selin-del.length;
|
||||
selin = selin - del.length;
|
||||
}
|
||||
if(selin>0){
|
||||
var before = now.substr(0, selin);
|
||||
var after = now.substr(selin, now.length);
|
||||
newt = before + " "+ code+" " + after;
|
||||
}else{
|
||||
newt = code+" "+now;
|
||||
if (selin > 0) {
|
||||
var before = now.substr(0, selin);
|
||||
var after = now.substr(selin, now.length);
|
||||
newt = before + " " + code + " " + after;
|
||||
} else {
|
||||
newt = code + " " + now;
|
||||
}
|
||||
$("#textarea").val(newt);
|
||||
$("#textarea").focus();
|
||||
if($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")){
|
||||
if ($("#poll").hasClass("hide") && $("#emoji").hasClass("hide")) {
|
||||
$("#right-side").hide()
|
||||
}
|
||||
$("#suggest").html("");
|
||||
}
|
||||
function cgNPs(q){
|
||||
function cgNPs(q) {
|
||||
suggest = "https://cg.toot.app/api/v1/search/light?q=" + q
|
||||
if (suggest != oldSuggest) {
|
||||
console.log(suggest)
|
||||
fetch(suggest, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
if (json[0]) {
|
||||
var tags = "";
|
||||
Object.keys(json).forEach(function(key4) {
|
||||
var tag = json[key4];
|
||||
tags = tags + '<a onclick="cgNP(\''+json[key4]+'\')" class="pointer">' + json[key4] + '</a> ';
|
||||
});
|
||||
$("#suggest").html("Cinderella NowPlaying:" + tags);
|
||||
}else{
|
||||
$("#suggest").html("Cinderella NowPlaying:Not Found");
|
||||
}
|
||||
if (suggest != oldSuggest) {
|
||||
console.log("Try to get suggest at " + suggest)
|
||||
fetch(suggest, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json[0]) {
|
||||
var tags = "";
|
||||
Object.keys(json).forEach(function (key4) {
|
||||
var tag = json[key4];
|
||||
tags = tags + '<a onclick="cgNP(\'' + json[key4] + '\')" class="pointer">' + escapeHTML(json[key4]) + '</a> ';
|
||||
});
|
||||
$("#suggest").html("Cinderella NowPlaying:" + tags);
|
||||
} else {
|
||||
$("#suggest").html("Cinderella NowPlaying:Not Found");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,64 +1,64 @@
|
||||
/*リプライ*/
|
||||
function re(id,ats_cm,acct_id,mode){
|
||||
function re(id, ats_cm, acct_id, mode) {
|
||||
clear();
|
||||
var ats=ats_cm.split(',');
|
||||
localStorage.setItem("nohide",true);
|
||||
var ats = ats_cm.split(',');
|
||||
localStorage.setItem("nohide", true);
|
||||
show();
|
||||
$("#reply").val(id);
|
||||
for(var i=0;i<ats.length;i++){
|
||||
var at=ats[i];
|
||||
var te=$("#textarea").val();
|
||||
if(at!=localStorage.getItem("user_"+acct_id)){
|
||||
$("#textarea").val("@"+at+" "+te);
|
||||
for (var i = 0; i < ats.length; i++) {
|
||||
var at = ats[i];
|
||||
var te = $("#textarea").val();
|
||||
if (at != localStorage.getItem("user_" + acct_id)) {
|
||||
$("#textarea").val("@" + at + " " + te);
|
||||
}
|
||||
}
|
||||
$("#rec").text(lang.lang_yesno);
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').material_select();
|
||||
$("#textarea").attr("placeholder",lang.lang_usetxtbox_reply);
|
||||
$('select').formSelect();
|
||||
$("#textarea").attr("placeholder", lang.lang_usetxtbox_reply);
|
||||
$("#textarea").focus();
|
||||
var profimg=localStorage.getItem("prof_"+acct_id);
|
||||
if(!profimg){
|
||||
profimg="../../img/missing.svg";
|
||||
var profimg = localStorage.getItem("prof_" + acct_id);
|
||||
if (!profimg) {
|
||||
profimg = "../../img/missing.svg";
|
||||
}
|
||||
$("#acct-sel-prof").attr("src",profimg);
|
||||
$("#acct-sel-prof").attr("src", profimg);
|
||||
vis(mode);
|
||||
}
|
||||
function reEx(id){
|
||||
function reEx(id) {
|
||||
$('#tootmodal').modal('close');
|
||||
var at=$("#tootmodal").attr("data-user");
|
||||
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 mode = $("#tootmodal .vis-data").attr("data-vis");
|
||||
re(id, at, acct_id, mode);
|
||||
}
|
||||
//引用
|
||||
function qt(id,acct_id,at,url){
|
||||
localStorage.setItem("nohide",true);
|
||||
function qt(id, acct_id, at, url) {
|
||||
localStorage.setItem("nohide", true);
|
||||
var qt = localStorage.getItem("quote");
|
||||
if(!qt){
|
||||
var qt="simple";
|
||||
if (!qt) {
|
||||
var qt = "simple";
|
||||
}
|
||||
if(qt=="nothing"){
|
||||
if (qt == "nothing") {
|
||||
return false;
|
||||
}
|
||||
if(qt=="simple"){
|
||||
if (qt == "simple") {
|
||||
show();
|
||||
$("#textarea").val("\n"+url);
|
||||
}else if(qt=="mention"){
|
||||
$("#textarea").val("\n" + url);
|
||||
} else if (qt == "mention") {
|
||||
show();
|
||||
$("#textarea").val("\n"+url+" From:@"+at);
|
||||
}else if(qt=="full"){
|
||||
$("#textarea").val("\n" + url + " From:@" + at);
|
||||
} else if (qt == "full") {
|
||||
show();
|
||||
var html=$("[toot-id="+id+"] .toot").html();
|
||||
var html = $("[toot-id=" + id + "] .toot").html();
|
||||
html = html.match(/^<p>(.+)<\/p>$/)[1];
|
||||
html = html.replace(/<br\s?\/?>/, "\n");
|
||||
html = html.replace(/<p>/, "\n");
|
||||
html = html.replace(/<\/p>/, "\n");
|
||||
html=$.strip_tags(html);
|
||||
$("#textarea").val("\n"+"@"+at+" "+html+"\n"+url);
|
||||
html = $.strip_tags(html);
|
||||
$("#textarea").val("\n" + "@" + at + " " + html + "\n" + url);
|
||||
}
|
||||
$("#textarea").focus();
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$('select').material_select();
|
||||
$('select').formSelect();
|
||||
$("#textarea").focus();
|
||||
}
|
||||
@@ -4,211 +4,208 @@ function additional(acct_id, tlid) {
|
||||
//メンション系
|
||||
//$(".mention").attr("href", "");
|
||||
|
||||
$(".mention").addClass("parsed");
|
||||
$("#timeline-container .mention").addClass("parsed");
|
||||
|
||||
$(".hashtag").each(function(i, elem) {
|
||||
$("#timeline-container .hashtag").each(function (i, elem) {
|
||||
var tags = $(this).attr("href").match(
|
||||
/https?:\/\/([-a-zA-Z0-9@.]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/
|
||||
);
|
||||
$(this).attr("href","#");
|
||||
if(tags){
|
||||
if(tags[2]){
|
||||
$(this).attr("onclick",'tagShow(\'' + tags[2] + '\')');
|
||||
$(this).attr("href", "#");
|
||||
if (tags) {
|
||||
if (tags[2]) {
|
||||
$(this).attr("onclick", 'tagShow(\'' + tags[2] + '\')');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
//トゥートサムネ
|
||||
$("#timeline_" + tlid + " .toot a:not(.parsed)").each(function(i, elem) {
|
||||
$("#timeline_" + tlid + " .toot a:not(.parsed)").each(function (i, elem) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var card = localStorage.getItem("card_" + tlid);
|
||||
var text = $(this).attr('href');
|
||||
if(text){
|
||||
if(text.indexOf("twimg.com")=== -1){
|
||||
if (text) {
|
||||
if (text.indexOf("twimg.com") === -1) {
|
||||
var urls = text.match(
|
||||
/https?:\/\/([-a-zA-Z0-9@.]+)\/media\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/
|
||||
);
|
||||
}
|
||||
}else{
|
||||
var urls =[]
|
||||
} else {
|
||||
text = ""
|
||||
var urls = []
|
||||
}
|
||||
|
||||
//トゥートのURLぽかったら
|
||||
toot = text.match(/https:\/\/([a-zA-Z0-9.-]+)\/@([a-zA-Z0-9_]+)\/([0-9]+)/);
|
||||
if(toot){
|
||||
if(toot[1]){
|
||||
$(this).attr("data-acct",acct_id);
|
||||
if (toot) {
|
||||
if (toot[1]) {
|
||||
$(this).attr("data-acct", acct_id);
|
||||
}
|
||||
}
|
||||
if (urls) {
|
||||
$(this).remove();
|
||||
} else if (!card) {
|
||||
var id = $(this).parents('.cvo').attr("toot-id");
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var start = "https://" + domain + "/url?url="+text;
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/url?url=" + text;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
//body: JSON.stringify({})
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
}).then(function (json) {
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
"<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + json.title + "<br>" +
|
||||
json.description + "</span>");
|
||||
"<span class=\"gray\">URL" + lang.lang_cards_check + ":<br>Title:" + escapeHTML(json.title) + "<br>" +
|
||||
escapeHTML(json.description) + "</span>");
|
||||
$("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed");
|
||||
$("[toot-id=" + id + "]").addClass("parsed");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}else{
|
||||
$(this).attr("title",text);
|
||||
} else {
|
||||
$(this).attr("title", text);
|
||||
}
|
||||
});
|
||||
$("i.unparsed").each(function(i, elem) {
|
||||
var dem=$(this).text();
|
||||
var dom=$(this);
|
||||
$("i.unparsed").each(function (i, elem) {
|
||||
var dem = $(this).text();
|
||||
var dom = $(this);
|
||||
var start = "./js/emoji/emoji-map.json";
|
||||
var xmlHttpRequest = new XMLHttpRequest();
|
||||
xmlHttpRequest.onreadystatechange = function()
|
||||
{
|
||||
if( this.readyState === 4 && this.status === 200 ) {
|
||||
if( this.response){
|
||||
var json=this.response;
|
||||
var emojis=json.emojis;
|
||||
for (i = 0; i < emojis.length; i++) {
|
||||
var emojie = emojis[i];
|
||||
var regExp = new RegExp(dem, "g");
|
||||
if (emojie.emoji.match(regExp)) {
|
||||
var sc=emojie.name;
|
||||
var sc="twa-"+sc.replace(/_/g,"-");
|
||||
dom.addClass(sc);
|
||||
dom.text("");
|
||||
dom.removeClass("unparsed");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
xmlHttpRequest.open( 'GET', start, true );
|
||||
xmlHttpRequest.responseType = 'json';
|
||||
xmlHttpRequest.send( null );
|
||||
xmlHttpRequest.onreadystatechange = function () {
|
||||
if (this.readyState === 4 && this.status === 200) {
|
||||
if (this.response) {
|
||||
var json = this.response;
|
||||
var emojis = json.emojis;
|
||||
for (i = 0; i < emojis.length; i++) {
|
||||
var emojie = emojis[i];
|
||||
var regExp = new RegExp(dem, "g");
|
||||
if (emojie.emoji.match(regExp)) {
|
||||
var sc = emojie.name;
|
||||
var sc = "twa-" + sc.replace(/_/g, "-");
|
||||
dom.addClass(sc);
|
||||
dom.text("");
|
||||
dom.removeClass("unparsed");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
xmlHttpRequest.open('GET', start, true);
|
||||
xmlHttpRequest.responseType = 'json';
|
||||
xmlHttpRequest.send(null);
|
||||
});
|
||||
|
||||
$("#timeline_" + tlid + " .toot:not(:has(a:not(.add-show,.parsed)))").each(function(i, elem) {
|
||||
$("#timeline_" + tlid + " .toot:not(:has(a:not(.add-show,.parsed)))").each(function (i, elem) {
|
||||
$(this).parent().find(".add-show").hide();
|
||||
});
|
||||
//Markdownイメージビューワー
|
||||
$("#timeline_" + tlid + " .toot a:not(.img-parsed):has(img)").each(function(i, elem) {
|
||||
var ilink=$(this).attr("href");
|
||||
var id = $(this).parents('.cvo').attr("toot-id");
|
||||
$(this).attr("href","#");
|
||||
$(this).attr("onclick","imgv('"+id+"','"+i+"')");
|
||||
$(this).attr("data-type","image");
|
||||
$(this).attr("id",id+"-image-"+i);
|
||||
$(this).attr("data-url",ilink);
|
||||
$(this).addClass("img-parsed");
|
||||
$("#timeline_" + tlid + " .toot a:not(.img-parsed):has(img)").each(function (i, elem) {
|
||||
var ilink = $(this).attr("href");
|
||||
var id = $(this).parents('.cvo').attr("toot-id");
|
||||
$(this).attr("href", "#");
|
||||
$(this).attr("onclick", "imgv('" + id + "','" + i + "')");
|
||||
$(this).attr("data-type", "image");
|
||||
$(this).attr("id", id + "-image-" + i);
|
||||
$(this).attr("data-url", ilink);
|
||||
$(this).addClass("img-parsed");
|
||||
});
|
||||
}
|
||||
|
||||
function additionalIndv(tlid, acct_id, id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var text = $("[toot-id="+id+"] .toot a").attr('href');
|
||||
var urls = text.match(
|
||||
/https?:\/\/([-a-zA-Z0-9@.]+)\/media\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/
|
||||
);
|
||||
if (urls) {
|
||||
$("[toot-id="+id+"] .toot a").remove();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var text = $("[toot-id=" + id + "] .toot a").attr('href');
|
||||
var urls = text.match(
|
||||
/https?:\/\/([-a-zA-Z0-9@.]+)\/media\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/
|
||||
);
|
||||
if (urls) {
|
||||
$("[toot-id=" + id + "] .toot a").remove();
|
||||
} else {
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/url?url=" + text;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
//body: JSON.stringify({})
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
"<span class=\"gray\">URL" + lang.lang_cards_check + ":<br>Title:" + escapeHTML(json.title) + "<br>" +
|
||||
escapeHTML(json.description) + "</span>");
|
||||
$("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed");
|
||||
$("[toot-id=" + id + "]").addClass("parsed");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var start = "https://" + domain + "/url?url="+text;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
//body: JSON.stringify({})
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
var id = $("[toot-id=" + id + "] .toot a").parents('.cvo').attr("toot-id");
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
//body: JSON.stringify({})
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
json = json.card;
|
||||
//このリンク鳥やんけ、ってとき
|
||||
if (json.provider_name == "Twitter") {
|
||||
if (json.image) {
|
||||
var twiImg = '<br><img src="' + json.image + '" style="max-width:100%" onclick="imgv(\'twi_' + id + '\', 0, \'twitter\');" id="twi_' + id + '-image-0" data-url="' + json.image + '" data-type="image">';
|
||||
} else {
|
||||
var twiImg = '';
|
||||
}
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
'<div class="twitter-tweet"><b>' + escapeHTML(json.author_name) + '</b><br>' + escapeHTML(json.description) + twiImg + '</div>');
|
||||
} else if (json.provider_name == "pixiv") {
|
||||
if (json.image) {
|
||||
var pxvImg = '<br><img src="' + json.image + '" style="max-width:100%" onclick="imgv(\'pixiv_' + id + '\', 0, \'pixiv\');" id="pixiv_' + id + '-image-0" data-url="' + json.embed_url + '" data-type="image">';
|
||||
} else {
|
||||
var pxvImg = '';
|
||||
}
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
'<div class="pixiv-post"><b><a href="' + json.author_url + '" target="_blank">' + escapeHTML(json.author_name) + '</a></b><br>' + escapeHTML(json.title) + pxvImg + '</div>');
|
||||
} else {
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
"<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + json.title + "<br>" +
|
||||
json.description + "</span>");
|
||||
$("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed");
|
||||
$("[toot-id=" + id + "]").addClass("parsed");
|
||||
"<span class=\"gray\">URL" + lang.lang_cards_check + ":<br>Title:" + escapeHTML(json.title) + "<br>" +
|
||||
escapeHTML(json.description) + "</span>");
|
||||
}
|
||||
});
|
||||
}else{
|
||||
var id = $("[toot-id="+id+"] .toot a").parents('.cvo').attr("toot-id");
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id + "/card";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
//body: JSON.stringify({})
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
//このリンク鳥やんけ、ってとき
|
||||
console.log(json.provider_name);
|
||||
if (json.provider_name=="Twitter"){
|
||||
if(json.image){
|
||||
var twiImg='<br><img src="'+json.image+'" style="max-width:100%" onclick="imgv(\'twi_'+id+'\', 0, \'twitter\');" id="twi_'+id+'-image-0" data-url="'+json.image+'" data-type="image">';
|
||||
}else{
|
||||
var twiImg='';
|
||||
}
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
'<div class="twitter-tweet"><b>'+escapeHTML(json.author_name)+'</b><br>'+escapeHTML(json.description)+twiImg+'</div>');
|
||||
}else if (json.provider_name=="pixiv"){
|
||||
if(json.image){
|
||||
var pxvImg='<br><img src="'+json.image+'" style="max-width:100%" onclick="imgv(\'pixiv_'+id+'\', 0, \'pixiv\');" id="pixiv_'+id+'-image-0" data-url="'+json.embed_url+'" data-type="image">';
|
||||
}else{
|
||||
var pxvImg='';
|
||||
}
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
'<div class="pixiv-post"><b><a href="'+json.author_url+'" target="_blank">'+escapeHTML(json.author_name)+'</a></b><br>'+escapeHTML(json.title)+pxvImg+'</div>');
|
||||
}else{
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
"<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + escapeHTML(json.title) + "<br>" +
|
||||
escapeHTML(json.description) + "</span>");
|
||||
}
|
||||
if (json.html) {
|
||||
$("[toot-id=" + id + "] .additional").html(json.html+'<i class="material-icons sml pointer" onclick="pip(\''+id+'\')" title="'+lang.lang_cards_pip+'">picture_in_picture_alt</i>');
|
||||
if (json.html) {
|
||||
$("[toot-id=" + id + "] .additional").html(json.html + '<i class="material-icons sml pointer" onclick="pip(\'' + id + '\')" title="' + lang.lang_cards_pip + '">picture_in_picture_alt</i>');
|
||||
|
||||
}
|
||||
}
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed");
|
||||
$("[toot-id=" + id + "]").addClass("parsed");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed");
|
||||
$("[toot-id=" + id + "]").addClass("parsed");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//各TL上方のLink[On/Off]
|
||||
@@ -217,11 +214,11 @@ function cardToggle(tlid) {
|
||||
if (!card) {
|
||||
localStorage.setItem("card_" + tlid, "true");
|
||||
$("#sta-card-" + tlid).text("Off");
|
||||
$("#sta-card-" + tlid).css("color",'red');
|
||||
$("#sta-card-" + tlid).css("color", 'red');
|
||||
} else {
|
||||
localStorage.removeItem("card_" + tlid);
|
||||
$("#sta-card-" + tlid).text("On");
|
||||
$("#sta-card-" + tlid).css("color",'#009688');
|
||||
$("#sta-card-" + tlid).css("color", '#009688');
|
||||
}
|
||||
}
|
||||
//各TL上方のLink[On/Off]をチェック
|
||||
@@ -229,55 +226,54 @@ function cardCheck(tlid) {
|
||||
var card = localStorage.getItem("card_" + tlid);
|
||||
if (!card) {
|
||||
$("#sta-card-" + tlid).text("On");
|
||||
$("#sta-card-" + tlid).css("color",'#009688');
|
||||
$("#sta-card-" + tlid).css("color", '#009688');
|
||||
} else {
|
||||
$("#sta-card-" + tlid).text("Off");
|
||||
$("#sta-card-" + tlid).css("color",'red');
|
||||
$("#sta-card-" + tlid).css("color", 'red');
|
||||
}
|
||||
}
|
||||
|
||||
function mov(id,tlid,type){
|
||||
if(tlid=="notf"){
|
||||
var tlide="[data-notf="+acct_id+"]";
|
||||
}else if(tlid=="user"){
|
||||
var tlide="#his-data";
|
||||
}else{
|
||||
var tlide="[tlid="+tlid+"]";
|
||||
function mov(id, tlid, type) {
|
||||
if (tlid == "notf") {
|
||||
var tlide = "[data-notf=" + acct_id + "]";
|
||||
} else if (tlid == "user") {
|
||||
var tlide = "#his-data";
|
||||
} else {
|
||||
var tlide = "[tlid=" + tlid + "]";
|
||||
}
|
||||
console.log(tlid)
|
||||
var mouseover=localStorage.getItem("mouseover");
|
||||
if(!mouseover){
|
||||
mouseover="";
|
||||
var mouseover = localStorage.getItem("mouseover");
|
||||
if (!mouseover) {
|
||||
mouseover = "";
|
||||
}
|
||||
if(mouseover=="yes"){
|
||||
mouseover="hide";
|
||||
}else if(mouseover=="click"){
|
||||
if(type=="mv"){
|
||||
mouseover="";
|
||||
}else{
|
||||
mouseover="hide";
|
||||
if (mouseover == "yes") {
|
||||
mouseover = "hide";
|
||||
} else if (mouseover == "click") {
|
||||
if (type == "mv") {
|
||||
mouseover = "";
|
||||
} else {
|
||||
mouseover = "hide";
|
||||
}
|
||||
}else if(mouseover=="no"){
|
||||
mouseover="";
|
||||
} else if (mouseover == "no") {
|
||||
mouseover = "";
|
||||
}
|
||||
if(mouseover=="hide"){
|
||||
$(tlide+" [toot-id="+id+"] .area-actions").toggleClass("hide")
|
||||
$(tlide+" [toot-id="+id+"] .area-side").toggleClass("hide")
|
||||
if (mouseover == "hide") {
|
||||
$(tlide + " [toot-id=" + id + "] .area-actions").toggleClass("hide")
|
||||
$(tlide + " [toot-id=" + id + "] .area-side").toggleClass("hide")
|
||||
}
|
||||
}
|
||||
|
||||
function resetmv(type){
|
||||
var mouseover=localStorage.getItem("mouseover");
|
||||
if(!mouseover){
|
||||
mouseover="";
|
||||
}else if(mouseover=="yes"){
|
||||
mouseover="hide";
|
||||
}else if(mouseover=="no"){
|
||||
mouseover="";
|
||||
}else if(mouseover=="click" && type!="mv"){
|
||||
mouseover="hide";
|
||||
function resetmv(type) {
|
||||
var mouseover = localStorage.getItem("mouseover");
|
||||
if (!mouseover) {
|
||||
mouseover = "";
|
||||
} else if (mouseover == "yes") {
|
||||
mouseover = "hide";
|
||||
} else if (mouseover == "no") {
|
||||
mouseover = "";
|
||||
} else if (mouseover == "click" && type != "mv") {
|
||||
mouseover = "hide";
|
||||
}
|
||||
if(mouseover=="hide"){
|
||||
if (mouseover == "hide") {
|
||||
$(".area-actions").addClass("hide");
|
||||
$(".area-side").addClass("hide");
|
||||
}
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
//トゥートの詳細
|
||||
function details(id, acct_id, tlid, mode) {
|
||||
if(mode=="dm"){
|
||||
if (mode == "dm") {
|
||||
$(".dm-hide").hide();
|
||||
}else{
|
||||
} else {
|
||||
$(".dm-hide").show();
|
||||
}
|
||||
$(".toot-reset").html('<span class="no-data">'+lang.lang_details_nodata+'</span>');
|
||||
var html = $("#timeline_"+tlid+" [toot-id=" + id + "]").html();
|
||||
$(".toot-reset").html('<span class="no-data">' + lang.lang_details_nodata + '</span>');
|
||||
var html = $("#timeline_" + tlid + " [toot-id=" + id + "]").html();
|
||||
$("#toot-this").html(html);
|
||||
$('#tootmodal').modal('open');
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/notes/show";
|
||||
var i={
|
||||
var i = {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
body:JSON.stringify({
|
||||
i:at,
|
||||
noteId:id
|
||||
body: JSON.stringify({
|
||||
i: at,
|
||||
noteId: id
|
||||
})
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id;
|
||||
var i={
|
||||
var i = {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
@@ -34,72 +34,77 @@ function details(id, acct_id, tlid, mode) {
|
||||
}
|
||||
}
|
||||
|
||||
fetch(start, i).then(function(response) {
|
||||
fetch(start, i).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
if(!$("#timeline_"+tlid+" #pub_" + id).length){
|
||||
}).then(function (json) {
|
||||
console.log(["Toot data:", json]);
|
||||
if (!$("#timeline_" + tlid + " #pub_" + id).length) {
|
||||
var html = parse([json], '', acct_id);
|
||||
$("#toot-this").html(html);
|
||||
jQuery("time.timeago").timeago();
|
||||
}
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var url="https://"+domain+"/notes/"+json.id;
|
||||
var scn=json.user.username;
|
||||
if(!json.user.host){
|
||||
var local=true;
|
||||
}else{
|
||||
var local=false;
|
||||
scn=scn+"@"+host;
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var url = "https://" + domain + "/notes/" + json.id;
|
||||
var scn = json.user.username;
|
||||
if (!json.user.host) {
|
||||
var local = true;
|
||||
} else {
|
||||
var local = false;
|
||||
scn = scn + "@" + host;
|
||||
}
|
||||
var rep="";
|
||||
var uid=json.user.id;
|
||||
if(json._replyIds){
|
||||
var rep = "";
|
||||
var uid = json.user.id;
|
||||
if (json._replyIds) {
|
||||
replyTL(json._replyIds[0], acct_id);
|
||||
}
|
||||
}else{
|
||||
var url=json.url
|
||||
if(json.account.acct==json.account.username){
|
||||
var local=true;
|
||||
}else{
|
||||
var local=false;
|
||||
} else {
|
||||
var url = json.url
|
||||
if (json.account.acct == json.account.username) {
|
||||
var local = true;
|
||||
} else {
|
||||
var local = false;
|
||||
}
|
||||
var scn=json.account.acct;
|
||||
var uid=json.account.id;
|
||||
var scn = json.account.acct;
|
||||
var uid = json.account.id;
|
||||
if (json["in_reply_to_id"]) {
|
||||
replyTL(json["in_reply_to_id"], acct_id);
|
||||
}
|
||||
}
|
||||
$("#toot-this .fav_ct").text(json.favourites_count);
|
||||
$("#toot-this .rt_ct").text(json.reblogs_count);
|
||||
$("#tootmodal").attr("data-url",url);
|
||||
$("#tootmodal").attr("data-id",json.id);
|
||||
if(local){
|
||||
$("#tootmodal").attr("data-user",scn+"@"+domain);
|
||||
}else{
|
||||
$("#tootmodal").attr("data-user",scn);
|
||||
$("#tootmodal").attr("data-url", url);
|
||||
$("#tootmodal").attr("data-id", json.id);
|
||||
if (local) {
|
||||
$("#tootmodal").attr("data-user", scn + "@" + domain);
|
||||
} else {
|
||||
$("#tootmodal").attr("data-user", scn);
|
||||
}
|
||||
context(id, acct_id);
|
||||
var dom=null;
|
||||
if(!local){
|
||||
dom=scn.replace(/.+@/g,'');
|
||||
}else{
|
||||
dom=domain;
|
||||
getContext(id, acct_id);
|
||||
var dom = null;
|
||||
if (!local) {
|
||||
dom = scn.replace(/.+@/g, '');
|
||||
} else {
|
||||
dom = domain;
|
||||
}
|
||||
beforeToot(id, acct_id, dom);
|
||||
userToot(id, acct_id, uid);
|
||||
afterToot(id, acct_id, dom);
|
||||
afterUserToot(id, acct_id, uid);
|
||||
afterFTLToot(id, acct_id, dom);
|
||||
faved(id, acct_id);
|
||||
rted(id, acct_id);
|
||||
if($("#toot-this div").hasClass("cvo")){
|
||||
if ($("#toot-this div").hasClass("cvo")) {
|
||||
$("#toot-this").removeClass("cvo");
|
||||
}else{
|
||||
$("#toot-this").addClass("cvo");
|
||||
} else {
|
||||
if(!$("#toot-this .cvo").hasClass("cvo")){
|
||||
$("#toot-this").addClass("cvo");
|
||||
}
|
||||
}
|
||||
if(!$("#activator").hasClass("active")){
|
||||
$('#det-col').collapsible('open', 1);
|
||||
if (!$("#activator").hasClass("active")) {
|
||||
$('#det-col').collapsible('open', 4);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -108,88 +113,67 @@ function details(id, acct_id, tlid, mode) {
|
||||
//返信タイムライン
|
||||
function replyTL(id, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/notes/show";
|
||||
var i={
|
||||
var i = {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
body:JSON.stringify({
|
||||
i:at,
|
||||
noteId:id
|
||||
body: JSON.stringify({
|
||||
i: at,
|
||||
noteId: id
|
||||
})
|
||||
}
|
||||
}else{
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id;
|
||||
var i={
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
fetch(start, i).then(function(response) {
|
||||
fetch(start, i).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if(localStorage.getItem("filter_"+ acct_id)!="undefined"){
|
||||
var mute=getFilterType(JSON.parse(localStorage.getItem("filter_"+ acct_id)),"thread");
|
||||
}else{
|
||||
var mute=[];
|
||||
}).then(function (json) {
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "thread");
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var templete = misskeyParse([json], '', acct_id,"","",mute);
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var templete = misskeyParse([json], '', acct_id, "", "", mute);
|
||||
$("#toot-after").prepend(templete);
|
||||
$("#toot-after .hide").html(lang.lang_details_filtered);
|
||||
$("#toot-after .by_filter").css("display","block");
|
||||
$("#toot-after .by_filter").css("display", "block");
|
||||
$("#toot-after .by_filter").removeClass("hide");
|
||||
var rep="_replyIds";
|
||||
var rep = "_replyIds";
|
||||
if (json[rep]) {
|
||||
replyTL(json[rep][0], acct_id);
|
||||
}
|
||||
}else{
|
||||
var templete = parse([json], '', acct_id,"","",mute);
|
||||
if(templete!=""){
|
||||
$("#toot-reply .no-data").hide();
|
||||
}
|
||||
$("#toot-reply").prepend(templete);
|
||||
$("#toot-reply .hide").html(lang.lang_details_filtered);
|
||||
$("#toot-reply .by_filter").css("display","block");
|
||||
$("#toot-reply .by_filter").removeClass("hide");
|
||||
jQuery("time.timeago").timeago();
|
||||
var rep="in_reply_to_id";
|
||||
if (json[rep]) {
|
||||
replyTL(json[rep], acct_id);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
//コンテクストってなんですか
|
||||
function context(id, acct_id) {
|
||||
function getContext(id, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/notes/conversation";
|
||||
var i={
|
||||
var i = {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
body:JSON.stringify({
|
||||
i:at,
|
||||
noteId:id
|
||||
body: JSON.stringify({
|
||||
i: at,
|
||||
noteId: id
|
||||
})
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id + "/context";
|
||||
var i={
|
||||
var i = {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
@@ -197,35 +181,42 @@ function context(id, acct_id) {
|
||||
},
|
||||
}
|
||||
}
|
||||
fetch(start, i).then(function(response) {
|
||||
fetch(start, i).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
}).then(function (json) {
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
json.reverse();
|
||||
console.log(json);
|
||||
var templete = misskeyParse(json, '', acct_id,"","",[]);
|
||||
var templete = misskeyParse(json, '', acct_id, "", "", []);
|
||||
$("#toot-reply").html(templete);
|
||||
$("#toot-reply .hide").html(lang.lang_details_filtered);
|
||||
$("#toot-reply .by_filter").css("display","block");
|
||||
$("#toot-reply .by_filter").css("display", "block");
|
||||
$("#toot-reply .by_filter").removeClass("hide");
|
||||
jQuery("time.timeago").timeago();
|
||||
}else{
|
||||
if(localStorage.getItem("filter_"+ acct_id)!="undefined"){
|
||||
var mute=getFilterType(JSON.parse(localStorage.getItem("filter_"+ acct_id)),"thread");
|
||||
}else{
|
||||
var mute=[];
|
||||
} else {
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "thread");
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
var templete = parse(json.descendants, '', acct_id,"","",mute);
|
||||
if(templete!=""){
|
||||
var templete = parse(json.descendants, '', acct_id, "", "", mute);
|
||||
if (templete != "") {
|
||||
$("#toot-after .no-data").hide();
|
||||
}
|
||||
$("#toot-after").html(templete);
|
||||
$("#toot-after .hide").html(lang.lang_details_filtered);
|
||||
$("#toot-after .by_filter").css("display","block");
|
||||
$("#toot-after .by_filter").css("display", "block");
|
||||
$("#toot-after .by_filter").removeClass("hide");
|
||||
var templete = parse(json.ancestors, '', acct_id, "", "", mute);
|
||||
if (templete != "") {
|
||||
$("#toot-reply .no-data").hide();
|
||||
}
|
||||
$("#toot-reply").prepend(templete);
|
||||
$("#toot-reply .hide").html(lang.lang_details_filtered);
|
||||
$("#toot-reply .by_filter").css("display", "block");
|
||||
$("#toot-reply .by_filter").removeClass("hide");
|
||||
jQuery("time.timeago").timeago();
|
||||
}
|
||||
|
||||
@@ -235,45 +226,45 @@ function context(id, acct_id) {
|
||||
//前のトゥート(Back TL)
|
||||
function beforeToot(id, acct_id, domain) {
|
||||
//var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain +
|
||||
"/api/notes/local-timeline"
|
||||
"/api/notes/local-timeline"
|
||||
fetch(start, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
body:JSON.stringify({
|
||||
i:at,
|
||||
untilID:id
|
||||
body: JSON.stringify({
|
||||
i: at,
|
||||
untilID: id
|
||||
})
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
var templete = misskeyParse(json, 'noauth', acct_id);
|
||||
$("#toot-before").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}else{
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
var templete = misskeyParse(json, 'noauth', acct_id);
|
||||
$("#toot-before").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
} else {
|
||||
var start = "https://" + domain +
|
||||
"/api/v1/timelines/public?local=true&max_id=" + id;
|
||||
"/api/v1/timelines/public?local=true&max_id=" + id;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
}).then(function (json) {
|
||||
var templete = parse(json, 'noauth', acct_id);
|
||||
if(templete!=""){
|
||||
if (templete != "") {
|
||||
$("#toot-before .no-data").hide();
|
||||
}
|
||||
$("#toot-before").html(templete);
|
||||
@@ -284,31 +275,31 @@ function beforeToot(id, acct_id, domain) {
|
||||
//前のユーザーのトゥート
|
||||
function userToot(id, acct_id, user) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain +
|
||||
"/api/users/notes"
|
||||
"/api/users/notes"
|
||||
fetch(start, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
body:JSON.stringify({
|
||||
i:at,
|
||||
untilID:id,
|
||||
userId:user
|
||||
body: JSON.stringify({
|
||||
i: at,
|
||||
untilID: id,
|
||||
userId: user
|
||||
})
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
var templete = misskeyParse(json, 'noauth', acct_id);
|
||||
$("#user-before").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}else{
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
var templete = misskeyParse(json, 'noauth', acct_id);
|
||||
$("#user-before").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + user + "/statuses?max_id=" + id;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
@@ -316,14 +307,14 @@ function userToot(id, acct_id, user) {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
}).then(function (json) {
|
||||
var templete = parse(json, '', acct_id);
|
||||
if(templete!=""){
|
||||
if (templete != "") {
|
||||
$("#user-before .no-data").hide();
|
||||
}
|
||||
$("#user-before").html(templete);
|
||||
@@ -332,12 +323,87 @@ function userToot(id, acct_id, user) {
|
||||
}
|
||||
|
||||
}
|
||||
//後のLTL
|
||||
function afterToot(id, acct_id, domain) {
|
||||
//var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain +
|
||||
"/api/v1/timelines/public?local=true&min_id=" + id;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
var templete = parse(json, 'noauth', acct_id);
|
||||
if (templete != "") {
|
||||
$("#ltl-after .no-data").hide();
|
||||
}
|
||||
$("#ltl-after").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
//後のUTL
|
||||
function afterUserToot(id, acct_id, user) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + user + "/statuses?min_id=" + id;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
var templete = parse(json, '', acct_id);
|
||||
if (templete != "") {
|
||||
$("#user-after .no-data").hide();
|
||||
}
|
||||
$("#user-after").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
//後のFTL
|
||||
function afterFTLToot(id, acct_id, domain) {
|
||||
//var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain +
|
||||
"/api/v1/timelines/public?min_id=" + id;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
var templete = parse(json, 'noauth', acct_id);
|
||||
if (templete != "") {
|
||||
$("#ftl-after .no-data").hide();
|
||||
}
|
||||
$("#ftl-after").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
|
||||
//ふぁぼ一覧
|
||||
function faved(id, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){ return false; }
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") { return false; }
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id + "/favourited_by";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
@@ -345,14 +411,14 @@ function faved(id, acct_id) {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
}).then(function (json) {
|
||||
var templete = userparse(json, '', acct_id);
|
||||
if(templete!=""){
|
||||
if (templete != "") {
|
||||
$("#toot-fav .no-data").hide();
|
||||
}
|
||||
$("#toot-fav").html(templete);
|
||||
@@ -362,8 +428,8 @@ function faved(id, acct_id) {
|
||||
//ブースト一覧
|
||||
function rted(id, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){ return false; }
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") { return false; }
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/statuses/" + id + "/reblogged_by";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
@@ -371,167 +437,103 @@ function rted(id, acct_id) {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
}).then(function (json) {
|
||||
var templete = userparse(json, '', acct_id);
|
||||
$("#toot-rt").html(templete);
|
||||
});
|
||||
}
|
||||
//URL等のコピー
|
||||
function cbCopy(mode){
|
||||
var url=$("#tootmodal").attr("data-url");
|
||||
function cbCopy(mode) {
|
||||
var url = $("#tootmodal").attr("data-url");
|
||||
var urls = url.match(/https?:\/\/([-.a-zA-Z0-9]+)/);
|
||||
var domain=urls[1];
|
||||
if(mode=="emb"){
|
||||
var emb='<iframe src="'+url+'/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="400"></iframe><script src="https://'+domain+'/embed.js" async="async"></script>';
|
||||
var domain = urls[1];
|
||||
if (mode == "emb") {
|
||||
var emb = '<iframe src="' + url + '/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="400"></iframe><script src="https://' + domain + '/embed.js" async="async"></script>';
|
||||
execCopy(emb)
|
||||
Materialize.toast(lang.lang_details_embed, 1500);
|
||||
}else{
|
||||
if(execCopy(url)){
|
||||
Materialize.toast(lang.lang_details_url, 1500);
|
||||
M.toast({ html: lang.lang_details_embed, displayLength: 1500 })
|
||||
} else {
|
||||
if (execCopy(url)) {
|
||||
M.toast({ html: lang.lang_details_url, displayLength: 1500 })
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
//本文のコピー
|
||||
function staCopy(id){
|
||||
var html=$("[toot-id="+id+"] .toot").html();
|
||||
html = html.replace(/^<p>(.+)<\/p>$/,"$1");
|
||||
function staCopy(id) {
|
||||
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");
|
||||
console.log(html);
|
||||
console.log("Copy it:\n" + html);
|
||||
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1");
|
||||
html=$.strip_tags(html);
|
||||
if(execCopy(html)){
|
||||
Materialize.toast(lang.lang_details_txt, 1500);
|
||||
html = $.strip_tags(html);
|
||||
if (execCopy(html)) {
|
||||
M.toast({ html: lang.lang_details_txt, displayLength: 1500 })
|
||||
}
|
||||
|
||||
}
|
||||
//魚拓
|
||||
function shot(){
|
||||
var title=$("#tootmodal").attr("data-id");
|
||||
var off = $('#toot-this').offset();
|
||||
var w=$("#toot-this").width()+50;
|
||||
var h=$("#toot-this").height()+50;
|
||||
var electron = require("electron");
|
||||
const fs = require("fs");
|
||||
const os = require('os')
|
||||
const shell = electron.shell;
|
||||
const path = require('path')
|
||||
var ipc = electron.ipcRenderer;
|
||||
let options = {
|
||||
types: ['screen'],
|
||||
thumbnailSize: {
|
||||
width: window.parent.screen.width,
|
||||
height: window.parent.screen.height
|
||||
}
|
||||
}
|
||||
const desktopCapturer = electron.desktopCapturer;
|
||||
desktopCapturer.getSources(options, function(error, sources) {
|
||||
if (error) return console.log(error)
|
||||
|
||||
sources.forEach(function(source) {
|
||||
if (source.name === 'Screen 1' || source.name === 'TheDesk') {
|
||||
var durl=source.thumbnail.toDataURL();
|
||||
var b64 = durl.match(
|
||||
/data:image\/png;base64,(.+)/
|
||||
);
|
||||
const screenshotPath = path.join(os.tmpdir(), 'screenshot.png');
|
||||
const savePath = path.join(os.tmpdir(), 'screenshot.png');
|
||||
var ipc = electron.ipcRenderer;
|
||||
if(localStorage.getItem("savefolder")){
|
||||
var save=localStorage.getItem("savefolder");
|
||||
}else{
|
||||
var save="";
|
||||
}
|
||||
ipc.send('shot', ['file://' + screenshotPath,w,h,b64[1],title,off.top+50,off.left,save]);
|
||||
if($("#toot-this .img-parsed").length>0){
|
||||
for(i=0;i<$("#toot-this .img-parsed").length;i++){
|
||||
var url=$("#toot-this .img-parsed").eq(i).attr("data-url");
|
||||
if(localStorage.getItem("savefolder")){
|
||||
var save=localStorage.getItem("savefolder");
|
||||
}else{
|
||||
var save="";
|
||||
}
|
||||
ipc.send('shot-img-dl', [url,title+"_img"+i+".png",save]);
|
||||
}
|
||||
}
|
||||
return;
|
||||
const message = `Saved screenshot to: ${screenshotPath}`
|
||||
//screenshotMsg.textContent = message
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
//翻訳
|
||||
function trans(tar,to){
|
||||
var html=$("#toot-this .toot").html();
|
||||
if(html.match(/^<p>(.+)<\/p>$/)){
|
||||
function trans(tar, to) {
|
||||
var html = $("#toot-this .toot").html();
|
||||
if (html.match(/^<p>(.+)<\/p>$/)) {
|
||||
html = html.match(/^<p>(.+)<\/p>$/)[1];
|
||||
}
|
||||
html = html.replace(/<br\s?\/?>/g, "\n");
|
||||
html = html.replace(/<p>/g, "\n");
|
||||
html = html.replace(/<\/p>/g, "\n");
|
||||
html=$.strip_tags(html);
|
||||
if(~tar.indexOf("zh")){
|
||||
tar="zh";
|
||||
html = $.strip_tags(html);
|
||||
if (~tar.indexOf("zh")) {
|
||||
tar = "zh";
|
||||
}
|
||||
$("#toot-this .additional").text("Loading...(Powered by Google Translate)");
|
||||
var exec='https://script.google.com/macros/s/AKfycbxhwW5tjjop9Irg-y1zr_WsXlCKEzwWG6KuoOt_vVRDfEbRv0c/exec?format=json&text='+encodeURIComponent(html)+'&source='+tar+'&target='+to
|
||||
console.log(exec);
|
||||
var exec = 'https://script.google.com/macros/s/AKfycbxhwW5tjjop9Irg-y1zr_WsXlCKEzwWG6KuoOt_vVRDfEbRv0c/exec?format=json&text=' + encodeURIComponent(html) + '&source=' + tar + '&target=' + to
|
||||
console.log("Try to translate from " + tar + " to " + to + " at " + exec);
|
||||
fetch(exec, {
|
||||
method: 'GET',
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(text) {
|
||||
$("#toot-this .additional").html('<span class="gray">'+text.text+'</span>');
|
||||
}).then(function (text) {
|
||||
$("#toot-this .additional").html('<span class="gray translate">' + text.text + '</span>');
|
||||
});
|
||||
}
|
||||
//ブラウザで開く
|
||||
function brws(){
|
||||
var url=$("#tootmodal").attr("data-url");
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
|
||||
shell.openExternal(url);
|
||||
function brws() {
|
||||
var url = $("#tootmodal").attr("data-url");
|
||||
postMessage(["openUrl", url], "*")
|
||||
}
|
||||
//外部からトゥート開く
|
||||
function detEx(url,acct_id){
|
||||
if(acct_id=="main"){
|
||||
acct_id=localStorage.getItem("main");
|
||||
function detEx(url, acct_id) {
|
||||
if (acct_id == "main") {
|
||||
acct_id = localStorage.getItem("main");
|
||||
}
|
||||
var domain = localStorage.getItem("domain_"+acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/search?resolve=true&q="+url
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/search?resolve=true&q=" + url
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
}
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if(!json.statuses){
|
||||
const {
|
||||
shell
|
||||
} = require('electron');
|
||||
|
||||
shell.openExternal(url);
|
||||
}else{
|
||||
var id=json.statuses[0].id;
|
||||
}).then(function (json) {
|
||||
if (!json.statuses) {
|
||||
postMessage(["openUrl", url], "*")
|
||||
} else {
|
||||
var id = json.statuses[0].id;
|
||||
$(".loadp").text($(".loadp").attr("href"));
|
||||
$(".loadp").removeClass("loadp");
|
||||
details(id, acct_id, 0)
|
||||
|
||||
@@ -15,7 +15,7 @@ function date(str, datetype) {
|
||||
} else {
|
||||
var min = date.getMinutes();
|
||||
}
|
||||
var sec=null;
|
||||
var sec = null;
|
||||
if (date.getSeconds() < 10) {
|
||||
sec = "0" + date.getSeconds();
|
||||
} else {
|
||||
@@ -57,31 +57,31 @@ function date(str, datetype) {
|
||||
//特殊フォーマット(インスタンス情報で利用)
|
||||
function crat(str) {
|
||||
var date = new Date(str);
|
||||
var mnt=null;
|
||||
if(date.getMonth()<9){
|
||||
mnt="0"+(date.getMonth()+1);
|
||||
}else{
|
||||
mnt=date.getMonth()+1;
|
||||
var mnt = null;
|
||||
if (date.getMonth() < 9) {
|
||||
mnt = "0" + (date.getMonth() + 1);
|
||||
} else {
|
||||
mnt = date.getMonth() + 1;
|
||||
}
|
||||
if(date.getDate()<10){
|
||||
var dat="0"+date.getDate();
|
||||
}else{
|
||||
var dat=date.getDate();
|
||||
if (date.getDate() < 10) {
|
||||
var dat = "0" + date.getDate();
|
||||
} else {
|
||||
var dat = date.getDate();
|
||||
}
|
||||
if(date.getHours()<10){
|
||||
var hrs="0"+date.getHours();
|
||||
}else{
|
||||
var hrs=date.getHours();
|
||||
if (date.getHours() < 10) {
|
||||
var hrs = "0" + date.getHours();
|
||||
} else {
|
||||
var hrs = date.getHours();
|
||||
}
|
||||
if(date.getMinutes()<10){
|
||||
var mns="0"+date.getMinutes();
|
||||
}else{
|
||||
var mns=date.getMinutes();
|
||||
if (date.getMinutes() < 10) {
|
||||
var mns = "0" + date.getMinutes();
|
||||
} else {
|
||||
var mns = date.getMinutes();
|
||||
}
|
||||
if(date.getSeconds()<10){
|
||||
var sec="0"+date.getSeconds();
|
||||
}else{
|
||||
var sec=date.getSeconds();
|
||||
if (date.getSeconds() < 10) {
|
||||
var sec = "0" + date.getSeconds();
|
||||
} else {
|
||||
var sec = date.getSeconds();
|
||||
}
|
||||
format_str = 'YYYY-MM-DD hh:mm:ss';
|
||||
format_str = format_str.replace(/YYYY/g, date.getFullYear());
|
||||
|
||||
413
app/js/tl/dm.js
@@ -1,80 +1,79 @@
|
||||
//DM(Conv) TL
|
||||
function dm(acct_id, tlid, type,delc,voice) {
|
||||
function dm(acct_id, tlid, type, delc, voice) {
|
||||
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/conversations";
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/conversations";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
var templete = '<div id="convList'+tlid+'">'+dmListParse(json, type, acct_id, tlid, "", mute)+'</div>';
|
||||
localStorage.setItem("lastobj_"+ tlid,json[0].id)
|
||||
$("#timeline_" + tlid).html(templete);
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
todc();
|
||||
//reload(type, '', acct_id, tlid, data, mute, delc,voice);
|
||||
$(window).scrollTop(0);
|
||||
});
|
||||
}).then(function (json) {
|
||||
var templete = '<div id="convList' + tlid + '">' + dmListParse(json, type, acct_id, tlid, "", mute) + '</div>';
|
||||
localStorage.setItem("lastobj_" + tlid, json[0].id)
|
||||
$("#timeline_" + tlid).html(templete);
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
todc();
|
||||
//reload(type, '', acct_id, tlid, data, mute, delc,voice);
|
||||
$(window).scrollTop(0);
|
||||
});
|
||||
|
||||
}
|
||||
function dmmore(tlid){
|
||||
function dmmore(tlid) {
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
var acct_id = obj[tlid].domain;
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var sid = $("#timeline_" + tlid + " .cvo").last().attr("unique-id");
|
||||
var start = "https://" + domain + "/api/v1/conversations?max_id="+sid;
|
||||
var type="dm";
|
||||
var start = "https://" + domain + "/api/v1/conversations?max_id=" + sid;
|
||||
var type = "dm";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
var templete = '<div id="convList'+tlid+'">'+dmListParse(json, type, acct_id, tlid, "", mute)+'</div>';
|
||||
$("#timeline_" + tlid).append(templete);
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
moreloading=false;
|
||||
}).then(function (json) {
|
||||
var templete = '<div id="convList' + tlid + '">' + dmListParse(json, type, acct_id, tlid, "", mute) + '</div>';
|
||||
$("#timeline_" + tlid).append(templete);
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
moreloading = false;
|
||||
})
|
||||
}
|
||||
//DMオブジェクトパーサー(トゥート)
|
||||
function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
console.log(obj);
|
||||
var templete = '';
|
||||
if(obj[0]){
|
||||
localStorage.setItem("lastunix_"+ tlid,date(obj[0].created_at, 'unix'));
|
||||
if (obj[0]) {
|
||||
localStorage.setItem("lastunix_" + tlid, date(obj[0].created_at, 'unix'));
|
||||
}
|
||||
|
||||
var actb = localStorage.getItem("action_btns");
|
||||
var actb='re,rt,fav,qt,del,pin,red';
|
||||
if(actb){
|
||||
var actb = 're,rt,fav,qt,del,pin,red';
|
||||
if (actb) {
|
||||
var actb = actb.split(',');
|
||||
var disp={};
|
||||
for(var k=0;k<actb.length;k++){
|
||||
if(k<4){
|
||||
var tp="type-a";
|
||||
}else{
|
||||
var tp="type-b";
|
||||
var disp = {};
|
||||
for (var k = 0; k < actb.length; k++) {
|
||||
if (k < 4) {
|
||||
var tp = "type-a";
|
||||
} else {
|
||||
var tp = "type-b";
|
||||
}
|
||||
disp[actb[k]]=tp;
|
||||
disp[actb[k]] = tp;
|
||||
}
|
||||
}
|
||||
var datetype = localStorage.getItem("datetype");
|
||||
@@ -85,48 +84,48 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
var imh = localStorage.getItem("img-height");
|
||||
//独自ロケール
|
||||
var locale = localStorage.getItem("locale");
|
||||
if(locale=="yes"){
|
||||
var locale=false;
|
||||
if (locale == "yes") {
|
||||
var locale = false;
|
||||
}
|
||||
//ネイティブ通知
|
||||
var native=localStorage.getItem("nativenotf");
|
||||
if(!native){
|
||||
native="yes";
|
||||
var native = localStorage.getItem("nativenotf");
|
||||
if (!native) {
|
||||
native = "yes";
|
||||
}
|
||||
//クライアント強調
|
||||
var emp = localStorage.getItem("client_emp");
|
||||
if(emp){
|
||||
if (emp) {
|
||||
var emp = JSON.parse(emp);
|
||||
}
|
||||
//クライアントミュート
|
||||
var mute = localStorage.getItem("client_mute");
|
||||
if(mute){
|
||||
if (mute) {
|
||||
var mute = JSON.parse(mute);
|
||||
}
|
||||
//ユーザー強調
|
||||
var useremp = localStorage.getItem("user_emp");
|
||||
if(useremp){
|
||||
if (useremp) {
|
||||
var useremp = JSON.parse(useremp);
|
||||
}
|
||||
//ワード強調
|
||||
var wordemp = localStorage.getItem("word_emp");
|
||||
if(wordemp){
|
||||
if (wordemp) {
|
||||
var wordemp = JSON.parse(wordemp);
|
||||
}
|
||||
//ワードミュート
|
||||
var wordmute = localStorage.getItem("word_mute");
|
||||
if(wordmute){
|
||||
if (wordmute) {
|
||||
var wordmute = JSON.parse(wordmute);
|
||||
wordmute = wordmute.concat(mutefilter);
|
||||
}else{
|
||||
} else {
|
||||
wordmute = mutefilter;
|
||||
}
|
||||
//Ticker
|
||||
var tickerck = localStorage.getItem("ticker_ok");
|
||||
if(tickerck){
|
||||
var ticker=true;
|
||||
}else{
|
||||
var ticker=false;
|
||||
if (tickerck) {
|
||||
var ticker = true;
|
||||
} else {
|
||||
var ticker = false;
|
||||
}
|
||||
//Cards
|
||||
var card = localStorage.getItem("card_" + tlid);
|
||||
@@ -157,117 +156,117 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
if (!imh) {
|
||||
var imh = "200";
|
||||
}
|
||||
if(!emp){
|
||||
var emp=[];
|
||||
if (!emp) {
|
||||
var emp = [];
|
||||
}
|
||||
if(!mute){
|
||||
var mute=[];
|
||||
if (!mute) {
|
||||
var mute = [];
|
||||
}
|
||||
if(!useremp){
|
||||
var useremp=[];
|
||||
if (!useremp) {
|
||||
var useremp = [];
|
||||
}
|
||||
if(!wordemp){
|
||||
var wordemp=[];
|
||||
if (!wordemp) {
|
||||
var wordemp = [];
|
||||
}
|
||||
if(!wordmute){
|
||||
var wordmute=[];
|
||||
if (!wordmute) {
|
||||
var wordmute = [];
|
||||
}
|
||||
//via通知
|
||||
var viashow=localStorage.getItem("viashow");
|
||||
if(!viashow){
|
||||
viashow="via-hide";
|
||||
var viashow = localStorage.getItem("viashow");
|
||||
if (!viashow) {
|
||||
viashow = "via-hide";
|
||||
}
|
||||
if(viashow=="hide"){
|
||||
viashow="via-hide";
|
||||
if (viashow == "hide") {
|
||||
viashow = "via-hide";
|
||||
}
|
||||
//認証なしTL
|
||||
if(mix=="noauth"){
|
||||
var noauth="hide";
|
||||
var antinoauth="";
|
||||
}else{
|
||||
var noauth="";
|
||||
var antinoauth="hide";
|
||||
if (mix == "noauth") {
|
||||
var noauth = "hide";
|
||||
var antinoauth = "";
|
||||
} else {
|
||||
var noauth = "";
|
||||
var antinoauth = "hide";
|
||||
}
|
||||
//マウスオーバーのみ
|
||||
var mouseover=localStorage.getItem("mouseover");
|
||||
if(!mouseover){
|
||||
mouseover="";
|
||||
}else if(mouseover=="yes" || mouseover=="click"){
|
||||
mouseover="hide";
|
||||
}else if(mouseover=="no"){
|
||||
mouseover="";
|
||||
var mouseover = localStorage.getItem("mouseover");
|
||||
if (!mouseover) {
|
||||
mouseover = "";
|
||||
} else if (mouseover == "yes" || mouseover == "click") {
|
||||
mouseover = "hide";
|
||||
} else if (mouseover == "no") {
|
||||
mouseover = "";
|
||||
}
|
||||
var local = [];
|
||||
var times=[];
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var conv_id=obj[key].id;
|
||||
var times = [];
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var conv_id = obj[key].id;
|
||||
var toot = obj[key].last_status;
|
||||
var dis_name=escapeHTML(toot.account.display_name);
|
||||
if(toot.account.emojis){
|
||||
var dis_name = escapeHTML(toot.account.display_name);
|
||||
if (toot.account.emojis) {
|
||||
var actemojick = toot.account.emojis[0];
|
||||
}else{
|
||||
var actemojick=false;
|
||||
} else {
|
||||
var actemojick = false;
|
||||
}
|
||||
//絵文字があれば
|
||||
if (actemojick) {
|
||||
Object.keys(toot.account.emojis).forEach(function(key5) {
|
||||
Object.keys(toot.account.emojis).forEach(function (key5) {
|
||||
var emoji = toot.account.emojis[key5];
|
||||
var shortcode = emoji.shortcode;
|
||||
var emoji_url = '<img src="' + emoji.url +
|
||||
'" class="emoji-img" data-emoji="'+shortcode+'" alt=" :'+shortcode+': ">';
|
||||
'" class="emoji-img" data-emoji="' + shortcode + '" alt=" :' + shortcode + ': ">';
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g");
|
||||
dis_name = dis_name.replace(regExp, emoji_url);
|
||||
|
||||
});
|
||||
}
|
||||
var noticeavatar="";
|
||||
var if_notf="";
|
||||
var uniqueid=toot.id;
|
||||
var notice = "";
|
||||
var boostback = "";
|
||||
//ユーザー強調
|
||||
if(toot.account.username!=toot.account.acct){
|
||||
var fullname=toot.account.acct;
|
||||
}else{
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var fullname=toot.account.acct+"@"+domain;
|
||||
}
|
||||
if(useremp){
|
||||
Object.keys(useremp).forEach(function(key10) {
|
||||
var noticeavatar = "";
|
||||
var if_notf = "";
|
||||
var uniqueid = toot.id;
|
||||
var notice = "";
|
||||
var boostback = "";
|
||||
//ユーザー強調
|
||||
if (toot.account.username != toot.account.acct) {
|
||||
var fullname = toot.account.acct;
|
||||
} else {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var fullname = toot.account.acct + "@" + domain;
|
||||
}
|
||||
if (useremp) {
|
||||
Object.keys(useremp).forEach(function (key10) {
|
||||
var user = useremp[key10];
|
||||
if(user==fullname){
|
||||
if (user == fullname) {
|
||||
boostback = "emphasized";
|
||||
}
|
||||
});
|
||||
}
|
||||
var id = toot.id;
|
||||
var home = "";
|
||||
var id = toot.id;
|
||||
var home = "";
|
||||
if (toot.account.locked) {
|
||||
var locked = ' <i class="fa fa-lock red-text"></i>';
|
||||
var locked = ' <i class="fas fa-lock red-text"></i>';
|
||||
} else {
|
||||
var locked = "";
|
||||
}
|
||||
if (!toot.application) {
|
||||
var via = '';
|
||||
viashow="hide";
|
||||
viashow = "hide";
|
||||
} else {
|
||||
var via = toot.application.name;
|
||||
var via = escapeHTML(toot.application.name);
|
||||
//強調チェック
|
||||
Object.keys(emp).forEach(function(key6) {
|
||||
Object.keys(emp).forEach(function (key6) {
|
||||
var cli = emp[key6];
|
||||
if(cli == via){
|
||||
if (cli == via) {
|
||||
boostback = "emphasized";
|
||||
}
|
||||
});
|
||||
//ミュートチェック
|
||||
Object.keys(mute).forEach(function(key7) {
|
||||
Object.keys(mute).forEach(function (key7) {
|
||||
var cli = mute[key7];
|
||||
if(cli == via){
|
||||
if (cli == via) {
|
||||
boostback = "hide";
|
||||
}
|
||||
});
|
||||
}
|
||||
if(mix=="pinned"){
|
||||
if (mix == "pinned") {
|
||||
boostback = "emphasized";
|
||||
}
|
||||
if (toot.spoiler_text && cw) {
|
||||
@@ -276,19 +275,19 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var api_spoil = "gray";
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
|
||||
'\')" class="nex parsed">'+lang.lang_parse_cwshow+'</a><br>';
|
||||
'\')" class="nex parsed">' + lang.lang_parse_cwshow + '</a><br>';
|
||||
} else {
|
||||
var ct1 = toot.content.split('</p>').length + toot.content.split('<br />').length -2;
|
||||
var ct2 = toot.content.split('</p>').length + toot.content.split('<br>').length -2;
|
||||
if(ct1>ct2){ var ct= ct1; }else{ var ct= ct2; }
|
||||
var ct1 = toot.content.split('</p>').length + toot.content.split('<br />').length - 2;
|
||||
var ct2 = toot.content.split('</p>').length + toot.content.split('<br>').length - 2;
|
||||
if (ct1 > ct2) { var ct = ct1; } else { var ct = ct2; }
|
||||
if ((sent < ct && $.mb_strlen($.strip_tags(toot.content)) > 5) || ($.strip_tags(toot.content).length > ltr && $.mb_strlen($.strip_tags(toot.content)) > 5)) {
|
||||
var content = '<span class="gray">'+lang.lang_parse_fulltext+'</span><br>' + toot.content
|
||||
var content = '<span class="gray">' + lang.lang_parse_fulltext + '</span><br>' + toot.content
|
||||
var spoil = '<span class="cw-long-' + toot.id + '">' + $.mb_substr($.strip_tags(
|
||||
toot.content), 0, 100) +
|
||||
'</span><span class="gray">'+lang.lang_parse_autofold+'</span>';
|
||||
toot.content), 0, 100) +
|
||||
'</span><span class="gray">' + lang.lang_parse_autofold + '</span>';
|
||||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
|
||||
'\')" class="nex parsed">'+lang.lang_parse_more+'</a><br>';
|
||||
'\')" class="nex parsed">' + lang.lang_parse_more + '</a><br>';
|
||||
} else {
|
||||
var content = toot.content;
|
||||
var spoil = escapeHTML(toot.spoiler_text);
|
||||
@@ -301,66 +300,66 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
);
|
||||
if (urls) {
|
||||
var analyze = '<a onclick="additionalIndv(\'' + tlid + '\',' + acct_id +
|
||||
',\'' + id + '\')" class="add-show pointer">'+lang.lang_parse_url+'</a><br>';
|
||||
',\'' + id + '\')" class="add-show pointer">' + lang.lang_parse_url + '</a><br>';
|
||||
} else {
|
||||
var analyze = '';
|
||||
}
|
||||
var viewer = "";
|
||||
var hasmedia = "";
|
||||
var youtube = "";
|
||||
if(toot.emojis){
|
||||
if (toot.emojis) {
|
||||
var emojick = toot.emojis[0];
|
||||
}else{
|
||||
var emojick=false;
|
||||
} else {
|
||||
var emojick = false;
|
||||
}
|
||||
//絵文字があれば
|
||||
if (emojick) {
|
||||
Object.keys(toot.emojis).forEach(function(key5) {
|
||||
Object.keys(toot.emojis).forEach(function (key5) {
|
||||
var emoji = toot.emojis[key5];
|
||||
var shortcode = emoji.shortcode;
|
||||
var emoji_url = '<img src="' + emoji.url +
|
||||
'" class="emoji-img" data-emoji="'+shortcode+'" alt=" :'+shortcode+': ">';
|
||||
'" class="emoji-img" data-emoji="' + shortcode + '" alt=" :' + shortcode + ': ">';
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g");
|
||||
content = content.replace(regExp, emoji_url);
|
||||
spoil = spoil.replace(regExp, emoji_url);
|
||||
});
|
||||
}
|
||||
//ニコフレ絵文字
|
||||
if(toot.profile_emojis){
|
||||
if (toot.profile_emojis) {
|
||||
var nicoemojick = toot.profile_emojis[0];
|
||||
}else{
|
||||
var nicoemojick=false;
|
||||
} else {
|
||||
var nicoemojick = false;
|
||||
}
|
||||
//絵文字があれば
|
||||
if (nicoemojick) {
|
||||
Object.keys(toot.profile_emojis).forEach(function(keynico) {
|
||||
Object.keys(toot.profile_emojis).forEach(function (keynico) {
|
||||
var emoji = toot.profile_emojis[keynico];
|
||||
var shortcode = emoji.shortcode;
|
||||
var emoji_url = '<img src="' + emoji.url +
|
||||
'" class="emoji-img" data-emoji="'+shortcode+'" alt=" :'+shortcode+': ">';
|
||||
'" class="emoji-img" data-emoji="' + shortcode + '" alt=" :' + shortcode + ': ">';
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g");
|
||||
content = content.replace(regExp, emoji_url);
|
||||
spoil = spoil.replace(regExp, emoji_url);
|
||||
});
|
||||
}
|
||||
//デフォ絵文字
|
||||
content=twemoji.parse(content);
|
||||
if(dis_name){
|
||||
dis_name=twemoji.parse(dis_name);
|
||||
content = twemoji.parse(content);
|
||||
if (dis_name) {
|
||||
dis_name = twemoji.parse(dis_name);
|
||||
}
|
||||
if(spoil){
|
||||
spoil=twemoji.parse(spoil);
|
||||
if (spoil) {
|
||||
spoil = twemoji.parse(spoil);
|
||||
}
|
||||
var mediack = toot.media_attachments[0];
|
||||
//メディアがあれば
|
||||
var media_ids="";
|
||||
var media_ids = "";
|
||||
if (mediack) {
|
||||
hasmedia = "hasmedia";
|
||||
var cwdt = 100 / toot.media_attachments.length;
|
||||
Object.keys(toot.media_attachments).forEach(function(key2) {
|
||||
Object.keys(toot.media_attachments).forEach(function (key2) {
|
||||
var media = toot.media_attachments[key2];
|
||||
var purl = media.preview_url;
|
||||
media_ids=media_ids+media.id+",";
|
||||
media_ids = media_ids + media.id + ",";
|
||||
var url = media.url;
|
||||
if (toot.sensitive && nsfw) {
|
||||
var sense = "sensitive"
|
||||
@@ -371,9 +370,9 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
acct_id + '\')" id="' + id + '-image-' + key2 + '" data-url="' + url +
|
||||
'" data-type="' + media.type + '" class="img-parsed"><img src="' +
|
||||
purl + '" class="' + sense +
|
||||
' toot-img pointer" style="width:' + cwdt + '%; height:'+imh+'px;"></a></span>';
|
||||
' toot-img pointer" style="width:' + cwdt + '%; height:' + imh + 'px;"></a></span>';
|
||||
});
|
||||
media_ids = media_ids.slice(0, -1) ;
|
||||
media_ids = media_ids.slice(0, -1);
|
||||
} else {
|
||||
viewer = "";
|
||||
hasmedia = "nomedia";
|
||||
@@ -383,7 +382,7 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
//メンションであれば
|
||||
if (menck) {
|
||||
mentions = "";
|
||||
Object.keys(toot.mentions).forEach(function(key3) {
|
||||
Object.keys(toot.mentions).forEach(function (key3) {
|
||||
var mention = toot.mentions[key3];
|
||||
mentions = mentions + '<a onclick="udg(\'' + mention.id + '\',' +
|
||||
acct_id + ')" class="pointer">@' + mention.acct + '</a> ';
|
||||
@@ -394,11 +393,11 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
var tags = "";
|
||||
//タグであれば
|
||||
if (tagck) {
|
||||
Object.keys(toot.tags).forEach(function(key4) {
|
||||
Object.keys(toot.tags).forEach(function (key4) {
|
||||
var tag = toot.tags[key4];
|
||||
tags = tags + '<span class="hide" data-tag="' + tag.name + '">#' + tag.name + ':<a onclick="tl(\'tag\',\'' + tag.name + '\',' + acct_id +
|
||||
',\'add\')" class="pointer" title="' +lang.lang_parse_tagTL.replace("{{tag}}" ,'#'+tag.name)+ '">TL</a> <a onclick="brInsert(\'#' + tag.name + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag.name) + '">Toot</a> '+
|
||||
'<a onclick="tagPin(\'' + tag.name + '\')" class="pointer" title="' +lang.lang_parse_tagpin.replace("{{tag}}" ,'#'+tag.name)+ '">Pin</a></span> ';
|
||||
',\'add\')" class="pointer" title="' + lang.lang_parse_tagTL.replace("{{tag}}", '#' + tag.name) + '">TL</a> <a onclick="brInsert(\'#' + tag.name + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}", '#' + tag.name) + '">Toot</a> ' +
|
||||
'<a onclick="tagPin(\'' + tag.name + '\')" class="pointer" title="' + lang.lang_parse_tagpin.replace("{{tag}}", '#' + tag.name) + '">Pin</a></span> ';
|
||||
});
|
||||
tags = '<div style="float:right">' + tags + '</div>';
|
||||
}
|
||||
@@ -409,38 +408,38 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
var avatar = toot.account.avatar_static;
|
||||
}
|
||||
//ワードミュート
|
||||
if(wordmute){
|
||||
Object.keys(wordmute).forEach(function(key8) {
|
||||
if (wordmute) {
|
||||
Object.keys(wordmute).forEach(function (key8) {
|
||||
var worde = wordmute[key8];
|
||||
if(worde){
|
||||
if(worde.tag){
|
||||
var word=worde.tag;
|
||||
}else{
|
||||
var word=worde
|
||||
if (worde) {
|
||||
if (worde.tag) {
|
||||
var word = worde.tag;
|
||||
} else {
|
||||
var word = worde
|
||||
}
|
||||
var regExp = new RegExp( word, "g" ) ;
|
||||
if($.strip_tags(content).match(regExp)){
|
||||
var regExp = new RegExp(word, "g");
|
||||
if ($.strip_tags(content).match(regExp)) {
|
||||
boostback = "hide by_filter";
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
//ワード強調
|
||||
if(wordemp){
|
||||
Object.keys(wordemp).forEach(function(key9) {
|
||||
if (wordemp) {
|
||||
Object.keys(wordemp).forEach(function (key9) {
|
||||
var word = wordemp[key9];
|
||||
if(word){
|
||||
var word=word.tag;
|
||||
var regExp = new RegExp( word, "g" ) ;
|
||||
content=content.replace(regExp,'<span class="emp">'+word+"</span>");
|
||||
if (word) {
|
||||
var word = word.tag;
|
||||
var regExp = new RegExp(word, "g");
|
||||
content = content.replace(regExp, '<span class="emp">' + escapeHTML(word) + "</span>");
|
||||
}
|
||||
});
|
||||
}
|
||||
//日本語じゃない
|
||||
if(toot.language!="ja"){
|
||||
var trans='<div class="action pin"><a onclick="trans(\''+toot.language+'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_trans+'"><i class="material-icons">g_translate</i></a></div>';
|
||||
}else{
|
||||
var trans="";
|
||||
if (toot.language != "ja") {
|
||||
var trans = '<div class="action pin"><a onclick="trans(\'' + toot.language + '\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_parse_trans + '"><i class="material-icons">g_translate</i></a></div>';
|
||||
} else {
|
||||
var trans = "";
|
||||
}
|
||||
if (toot.favourited) {
|
||||
var if_fav = " yellow-text";
|
||||
@@ -451,72 +450,72 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
}
|
||||
//Cards
|
||||
if (!card && toot.card) {
|
||||
var cards=toot.card;
|
||||
if (cards.provider_name=="Twitter"){
|
||||
if(cards.image){
|
||||
var twiImg='<br><img src="'+cards.image+'">';
|
||||
}else{
|
||||
var twiImg='';
|
||||
}
|
||||
analyze='<blockquote class="twitter-tweet"><b>'+escapeHTML(cards.author_name)+'</b><br>'+escapeHTML(cards.description)+twiImg+'</blockquote>';
|
||||
}
|
||||
if (cards.title) {
|
||||
analyze="<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + escapeHTML(cards.title) + "<br>" +
|
||||
escapeHTML(cards.description) + "</span>";
|
||||
}
|
||||
if (cards.html) {
|
||||
analyze=cards.html+'<i class="material-icons" onclick="pip('+id+')" title="'+lang.lang_cards_pip+'">picture_in_picture_alt</i>';
|
||||
var cards = toot.card;
|
||||
if (cards.provider_name == "Twitter") {
|
||||
if (cards.image) {
|
||||
var twiImg = '<br><img src="' + cards.image + '">';
|
||||
} else {
|
||||
var twiImg = '';
|
||||
}
|
||||
analyze = '<blockquote class="twitter-tweet"><b>' + escapeHTML(cards.author_name) + '</b><br>' + escapeHTML(cards.description) + twiImg + '</blockquote>';
|
||||
}
|
||||
if (cards.title) {
|
||||
analyze = "<span class=\"gray\">URL" + lang.lang_cards_check + ":<br>Title:" + escapeHTML(cards.title) + "<br>" +
|
||||
escapeHTML(cards.description) + "</span>";
|
||||
}
|
||||
if (cards.html) {
|
||||
analyze = cards.html + '<i class="material-icons" onclick="pip(' + id + ')" title="' + lang.lang_cards_pip + '">picture_in_picture_alt</i>';
|
||||
}
|
||||
|
||||
}
|
||||
//Ticker
|
||||
var tickerdom="";
|
||||
if(ticker){
|
||||
var tickerdata=localStorage.getItem("ticker")
|
||||
if(tickerdata){
|
||||
var tickerdata=JSON.parse(tickerdata);
|
||||
var tickerdom = "";
|
||||
if (ticker) {
|
||||
var tickerdata = localStorage.getItem("ticker")
|
||||
if (tickerdata) {
|
||||
var tickerdata = JSON.parse(tickerdata);
|
||||
|
||||
var thisdomain=toot.account.acct.split("@");
|
||||
if(thisdomain.length>1){
|
||||
thisdomain=thisdomain[1];
|
||||
}
|
||||
for( var i=0; i<tickerdata.length; i++) {
|
||||
var value=tickerdata[i];
|
||||
if(value.domain==thisdomain){
|
||||
var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+value.name+'</span></div>';
|
||||
break;
|
||||
var thisdomain = toot.account.acct.split("@");
|
||||
if (thisdomain.length > 1) {
|
||||
thisdomain = thisdomain[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < tickerdata.length; i++) {
|
||||
var value = tickerdata[i];
|
||||
if (value.domain == thisdomain) {
|
||||
var tickerdom = '<div style="background:linear-gradient(to left,transparent, ' + value.bg + ' 96%) !important; color:' + value.text + ';width:100%; height:0.9rem; font-size:0.8rem;"><img src="' + value.image + '" style="height:100%;"><span style="position:relative; top:-0.2rem;"> ' + escapeHTML(value.name) + '</span></div>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' +
|
||||
boostback + ' ' + fav_app +
|
||||
' ' + hasmedia + '" toot-id="' + id + '" unique-id="' + uniqueid + '" data-medias="'+media_ids+' " unixtime="' + date(obj[
|
||||
key].created_at, 'unix') + '" '+if_notf+' onclick="dmStatus()">' +
|
||||
' ' + hasmedia + '" toot-id="' + id + '" unique-id="' + uniqueid + '" data-medias="' + media_ids + ' " unixtime="' + date(obj[
|
||||
key].created_at, 'unix') + '" ' + if_notf + ' onclick="dmStatus()">' +
|
||||
'<div class="area-notice"><span class="gray sharesta">' + notice + home +
|
||||
'</span></div>' +
|
||||
'<div class="area-icon"><a onclick="udg(\'' + toot.account.id +
|
||||
'\',' + acct_id + ');" user="' + toot.account.acct + '" class="udg">' +
|
||||
'<img src="' + avatar +
|
||||
'" width="40" class="prof-img" user="' + toot.account.acct +
|
||||
'"></a>'+noticeavatar+'</div>' +
|
||||
'"></a>' + noticeavatar + '</div>' +
|
||||
'<div class="area-display_name"><div class="flex-name"><span class="user">' +
|
||||
dis_name +
|
||||
'</span><span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis; cursor:text;"> @' +
|
||||
toot.account.acct + locked + '</span></div>' +
|
||||
'<div class="flex-time"><span class="cbadge cbadge-hover pointer waves-effect" onclick="tootUriCopy(\'' +
|
||||
toot.url + '\');" title="' + date(toot.created_at, 'absolute') +
|
||||
'('+lang.lang_parse_clickcopyurl+')"><i class="fa fa-clock-o"></i>' +
|
||||
'(' + lang.lang_parse_clickcopyurl + ')"><i class="far fa-clock-o"></i>' +
|
||||
date(toot.created_at, datetype) + '</span>' +
|
||||
'</div></div>' +
|
||||
'<div class="area-toot">'+tickerdom+'<span class="' +
|
||||
'<div class="area-toot">' + tickerdom + '<span class="' +
|
||||
api_spoil + ' cw_text_' + toot.id + '"><span class="cw_text">' + spoil + "</span>" + spoiler_show +
|
||||
'</span><span class="toot ' + spoiler + '">' + content +
|
||||
'</span>' +
|
||||
'' + viewer + '' +
|
||||
'<br><a onclick="details(\'' + toot.id + '\',' + acct_id +
|
||||
',\''+tlid+'\',\'dm\')" class="pointer waves-effect">'+lang.lang_parse_thread+'</a></div>'+
|
||||
'<div class="area-vis"></div>'+
|
||||
',\'' + tlid + '\',\'dm\')" class="pointer waves-effect">' + lang.lang_parse_thread + '</a></div>' +
|
||||
'<div class="area-vis"></div>' +
|
||||
'</div></div>';
|
||||
});
|
||||
return templete;
|
||||
|
||||
@@ -3,38 +3,38 @@
|
||||
function mediaToggle(tlid) {
|
||||
var media = localStorage.getItem("media_" + tlid);
|
||||
if (media) {
|
||||
localStorage.removeItem("media_" + tlid);
|
||||
localStorage.removeItem("media_" + tlid);
|
||||
$("#sta-media-" + tlid).text("Off");
|
||||
$("#sta-media-" + tlid).css("color",'red');
|
||||
$("#timeline_"+tlid).removeClass("media-filter")
|
||||
$("#sta-media-" + tlid).css("color", 'red');
|
||||
$("#timeline_" + tlid).removeClass("media-filter")
|
||||
} else {
|
||||
localStorage.setItem("media_" + tlid, "true");
|
||||
$("#sta-media-" + tlid).text("On");
|
||||
$("#sta-media-" + tlid).css("color",'#009688');
|
||||
$("#timeline_"+tlid).addClass("media-filter")
|
||||
$("#sta-media-" + tlid).css("color", '#009688');
|
||||
$("#timeline_" + tlid).addClass("media-filter")
|
||||
}
|
||||
}
|
||||
//各TL上方のBT[BTOnly/BTExc/Off]
|
||||
function ebtToggle(tlid) {
|
||||
var ebt = localStorage.getItem("ebt_" + tlid);
|
||||
if (ebt=="true") {
|
||||
if (ebt == "true") {
|
||||
localStorage.setItem("ebt_" + tlid, "but");
|
||||
$("#sta-bt-" + tlid).text("BT Only");
|
||||
$("#sta-bt-" + tlid).css("color",'#ff9800');
|
||||
$("#timeline_"+tlid).addClass("except-bt-filter")
|
||||
$("#timeline_"+tlid).removeClass("bt-filter")
|
||||
}else if (ebt=="but") {
|
||||
localStorage.removeItem("ebt_" + tlid);
|
||||
$("#sta-bt-" + tlid).css("color", '#ff9800');
|
||||
$("#timeline_" + tlid).addClass("except-bt-filter")
|
||||
$("#timeline_" + tlid).removeClass("bt-filter")
|
||||
} else if (ebt == "but") {
|
||||
localStorage.removeItem("ebt_" + tlid);
|
||||
$("#sta-bt-" + tlid).text("Off");
|
||||
$("#sta-bt-" + tlid).css("color",'red');
|
||||
$("#timeline_"+tlid).removeClass("bt-filter")
|
||||
$("#timeline_"+tlid).removeClass("except-bt-filter")
|
||||
$("#sta-bt-" + tlid).css("color", 'red');
|
||||
$("#timeline_" + tlid).removeClass("bt-filter")
|
||||
$("#timeline_" + tlid).removeClass("except-bt-filter")
|
||||
} else {
|
||||
localStorage.setItem("ebt_" + tlid, "true");
|
||||
$("#sta-bt-" + tlid).text("BT Ex");
|
||||
$("#sta-bt-" + tlid).css("color",'#009688');
|
||||
$("#timeline_"+tlid).addClass("bt-filter")
|
||||
$("#timeline_"+tlid).removeClass("except-bt-filter")
|
||||
$("#sta-bt-" + tlid).css("color", '#009688');
|
||||
$("#timeline_" + tlid).addClass("bt-filter")
|
||||
$("#timeline_" + tlid).removeClass("except-bt-filter")
|
||||
}
|
||||
}
|
||||
//各TL上方のMedia[On/Off]をチェック
|
||||
@@ -42,144 +42,146 @@ function mediaCheck(tlid) {
|
||||
var media = localStorage.getItem("media_" + tlid);
|
||||
if (media) {
|
||||
$("#sta-media-" + tlid).text("On");
|
||||
$("#sta-media-" + tlid).css("color",'#009688');
|
||||
$("#timeline_"+tlid).addClass("media-filter")
|
||||
$("#sta-media-" + tlid).css("color", '#009688');
|
||||
$("#timeline_" + tlid).addClass("media-filter")
|
||||
} else {
|
||||
$("#sta-media-" + tlid).text("Off");
|
||||
$("#sta-media-" + tlid).css("color",'red');
|
||||
$("#timeline_"+tlid).removeClass("media-filter")
|
||||
$("#sta-media-" + tlid).css("color", 'red');
|
||||
$("#timeline_" + tlid).removeClass("media-filter")
|
||||
}
|
||||
}
|
||||
//各TL上方のBT[On/Off]をチェック
|
||||
function ebtCheck(tlid) {
|
||||
var ebt = localStorage.getItem("ebt_" + tlid);
|
||||
if (ebt=="true") {
|
||||
if (ebt == "true") {
|
||||
$("#sta-bt-" + tlid).text("BT Ex");
|
||||
$("#sta-bt-" + tlid).css("color",'#009688');
|
||||
$("#timeline_"+tlid).addClass("bt-filter")
|
||||
$("#timeline_"+tlid).removeClass("except-bt-filter")
|
||||
} else if (ebt=="but") {
|
||||
$("#sta-bt-" + tlid).css("color", '#009688');
|
||||
$("#timeline_" + tlid).addClass("bt-filter")
|
||||
$("#timeline_" + tlid).removeClass("except-bt-filter")
|
||||
} else if (ebt == "but") {
|
||||
$("#sta-bt-" + tlid).text("BT Only");
|
||||
$("#sta-bt-" + tlid).css("color",'#ff9800');
|
||||
$("#timeline_"+tlid).addClass("except-bt-filter")
|
||||
$("#timeline_"+tlid).removeClass("bt-filter")
|
||||
} else{
|
||||
$("#sta-bt-" + tlid).css("color", '#ff9800');
|
||||
$("#timeline_" + tlid).addClass("except-bt-filter")
|
||||
$("#timeline_" + tlid).removeClass("bt-filter")
|
||||
} else {
|
||||
$("#sta-bt-" + tlid).text("Off");
|
||||
$("#sta-bt-" + tlid).css("color",'red');
|
||||
$("#timeline_"+tlid).removeClass("bt-filter")
|
||||
$("#timeline_"+tlid).removeClass("except-bt-filter")
|
||||
$("#sta-bt-" + tlid).css("color", 'red');
|
||||
$("#timeline_" + tlid).removeClass("bt-filter")
|
||||
$("#timeline_" + tlid).removeClass("except-bt-filter")
|
||||
}
|
||||
}
|
||||
/* 削除追跡*/
|
||||
function catchToggle(tlid) {
|
||||
var catchck = localStorage.getItem("catch_" + tlid);
|
||||
if (catchck) {
|
||||
localStorage.removeItem("catch_" + tlid);
|
||||
localStorage.removeItem("catch_" + tlid);
|
||||
$("#sta-del-" + tlid).text("Off");
|
||||
$("#sta-del-" + tlid).css("color",'red');
|
||||
parseColumn();
|
||||
$("#sta-del-" + tlid).css("color", 'red');
|
||||
parseColumn(tlid);
|
||||
} else {
|
||||
localStorage.setItem("catch_" + tlid, "true");
|
||||
$("#sta-del-" + tlid).text("On");
|
||||
$("#sta-del-" + tlid).css("color",'#009688');
|
||||
parseColumn();
|
||||
$("#sta-del-" + tlid).css("color", '#009688');
|
||||
parseColumn(tlid);
|
||||
}
|
||||
}
|
||||
function catchCheck(tlid) {
|
||||
var catchck = localStorage.getItem("catch_" + tlid);
|
||||
if (catchck) {
|
||||
$("#sta-del-" + tlid).text("On");
|
||||
$("#sta-del-" + tlid).css("color",'#009688');
|
||||
$("#sta-del-" + tlid).css("color", '#009688');
|
||||
} else {
|
||||
$("#sta-del-" + tlid).text("Off");
|
||||
$("#sta-del-" + tlid).css("color",'red');
|
||||
$("#sta-del-" + tlid).css("color", 'red');
|
||||
}
|
||||
}
|
||||
function delreset(tlid){
|
||||
function delreset(tlid) {
|
||||
$("[tlid=" + tlid + "] .by_delcatch").hide();
|
||||
$("[tlid=" + tlid + "] .by_delcatch").remove();
|
||||
|
||||
}
|
||||
/*ワードフィルター機能*/
|
||||
function filterMenu(){
|
||||
$("#left-menu div").removeClass("active");
|
||||
function filterMenu() {
|
||||
$("#left-menu div").removeClass("active");
|
||||
$("#filterMenu").addClass("active");
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#filter-box").removeClass("hide");
|
||||
$("#filter-box").removeClass("hide");
|
||||
}
|
||||
function filter(){
|
||||
function filter() {
|
||||
$("#filtered-words").html("");
|
||||
$("#filter-edit-id").val("")
|
||||
var acct_id = $("#filter-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/filters"
|
||||
console.log(start)
|
||||
var acct_id = $("#filter-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/filters"
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
var filters = "";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var filterword = json[key];
|
||||
var context = filterword.context.join(',');
|
||||
filters = filters + escapeHTML(filterword.phrase)+'<span class="sml">(for '+context+')</span>:<a onclick="filterEdit(\'' + filterword.id + '\',\'' + acct_id +
|
||||
'\')" class="pointer">'+lang.lang_edit+'</a>/<a onclick="filterDel(' + filterword.id + ',' + acct_id +
|
||||
')" class="pointer">'+lang.lang_del+'</a><br> ';
|
||||
filters = filters + escapeHTML(filterword.phrase) + '<span class="sml">(for ' + context + ')</span>:<a onclick="filterEdit(\'' + filterword.id + '\',\'' + acct_id +
|
||||
'\')" class="pointer">' + lang.lang_edit + '</a>/<a onclick="filterDel(' + filterword.id + ',' + acct_id +
|
||||
')" class="pointer">' + lang.lang_del + '</a><br> ';
|
||||
});
|
||||
if(filters==""){
|
||||
filters=lang.lang_filter_nodata+"<br>";
|
||||
if (filters == "") {
|
||||
filters = lang.lang_filter_nodata + "<br>";
|
||||
}
|
||||
$("#filtered-words").html(filters);
|
||||
}else{
|
||||
$("#filtered-words").html(lang_filter_nodata);
|
||||
}
|
||||
} else {
|
||||
$("#filtered-words").html(lang_filter_nodata);
|
||||
}
|
||||
});
|
||||
}
|
||||
function makeNewFilter(){
|
||||
function filterTime(day, hour, min) {
|
||||
$("#days_filter").val(day)
|
||||
$("#hours_filter").val(hour)
|
||||
$("#mins_filter").val(min)
|
||||
}
|
||||
function makeNewFilter() {
|
||||
var acct_id = $("#filter-acct-sel").val();
|
||||
var phr=$("#filter-add-word").val();
|
||||
var cont=[];
|
||||
if($("#home_filter:checked").val()){
|
||||
var phr = $("#filter-add-word").val();
|
||||
var cont = [];
|
||||
if ($("#home_filter:checked").val()) {
|
||||
cont.push("home");
|
||||
}
|
||||
if($("#local_filter:checked").val()){
|
||||
if ($("#local_filter:checked").val()) {
|
||||
cont.push("public");
|
||||
}
|
||||
if($("#notf_filter:checked").val()){
|
||||
if ($("#notf_filter:checked").val()) {
|
||||
cont.push("notifications");
|
||||
}
|
||||
if($("#conv_filter:checked").val()){
|
||||
if ($("#conv_filter:checked").val()) {
|
||||
cont.push("thread");
|
||||
}
|
||||
console.log(cont);
|
||||
if(!cont.length){
|
||||
$("#filtered-words").html('Error:'+lang.lang_filter_errordegree);
|
||||
if (!cont.length) {
|
||||
$("#filtered-words").html('Error:' + lang.lang_filter_errordegree);
|
||||
}
|
||||
var exc=$("#except_filter:checked").val();
|
||||
var who=$("#wholeword_filter:checked").val();
|
||||
if(!who){
|
||||
who=false;
|
||||
var exc = $("#except_filter:checked").val();
|
||||
var who = $("#wholeword_filter:checked").val();
|
||||
if (!who) {
|
||||
who = false;
|
||||
}
|
||||
var time=$("#days_filter").val()*24*60*60+$("#hours_filter").val()*60*60+$("#mins_filter").val()*60;
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if($("#filter-edit-id").val()){
|
||||
var start = "https://" + domain + "/api/v1/filters/"+$("#filter-edit-id").val();
|
||||
var method="PUT"
|
||||
}else{
|
||||
var time = $("#days_filter").val() * 24 * 60 * 60 + $("#hours_filter").val() * 60 * 60 + $("#mins_filter").val() * 60;
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if ($("#filter-edit-id").val()) {
|
||||
var start = "https://" + domain + "/api/v1/filters/" + $("#filter-edit-id").val();
|
||||
var method = "PUT"
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/filters"
|
||||
var method="POST"
|
||||
var method = "POST"
|
||||
}
|
||||
|
||||
var httpreq = new XMLHttpRequest();
|
||||
@@ -191,21 +193,21 @@ function makeNewFilter(){
|
||||
phrase: phr,
|
||||
context: cont,
|
||||
irreversible: exc,
|
||||
whole_word:who,
|
||||
expires_in:time
|
||||
whole_word: who,
|
||||
expires_in: time
|
||||
}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
filter();
|
||||
filterUpdate(acct_id)
|
||||
$("#filter-add-word").val("");
|
||||
$("#home_filter").prop("checked",false);
|
||||
$("#local_filter").prop("checked",false);
|
||||
$("#notf_filter").prop("checked",false);
|
||||
$("#conv_filter").prop("checked",false);
|
||||
$("#except_filter").prop("checked",false);
|
||||
$("#wholeword_filter").prop("checked",false);
|
||||
$("#home_filter").prop("checked", false);
|
||||
$("#local_filter").prop("checked", false);
|
||||
$("#notf_filter").prop("checked", false);
|
||||
$("#conv_filter").prop("checked", false);
|
||||
$("#except_filter").prop("checked", false);
|
||||
$("#wholeword_filter").prop("checked", false);
|
||||
$("#days_filter").val("0");
|
||||
$("#hours_filter").val("0");
|
||||
$("#mins_filter").val("0");
|
||||
@@ -214,72 +216,70 @@ function makeNewFilter(){
|
||||
}
|
||||
}
|
||||
}
|
||||
function filterEdit(id,acct_id){
|
||||
$("#filter-add-word").val("");
|
||||
$("#home_filter").prop("checked",false);
|
||||
$("#local_filter").prop("checked",false);
|
||||
$("#notf_filter").prop("checked",false);
|
||||
$("#conv_filter").prop("checked",false);
|
||||
$("#except_filter").prop("checked",false);
|
||||
$("#wholeword_filter").prop("checked",false);
|
||||
$("#days_filter").val("0");
|
||||
$("#hours_filter").val("0");
|
||||
$("#mins_filter").val("0");
|
||||
function filterEdit(id, acct_id) {
|
||||
$("#filter-add-word").val("");
|
||||
$("#home_filter").prop("checked", false);
|
||||
$("#local_filter").prop("checked", false);
|
||||
$("#notf_filter").prop("checked", false);
|
||||
$("#conv_filter").prop("checked", false);
|
||||
$("#except_filter").prop("checked", false);
|
||||
$("#wholeword_filter").prop("checked", false);
|
||||
$("#days_filter").val("0");
|
||||
$("#hours_filter").val("0");
|
||||
$("#mins_filter").val("0");
|
||||
$("#add-filter-btn").text(lang.lang_edit);
|
||||
$("#filter-edit-id").val(id);
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/filters/"+id
|
||||
console.log(start)
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/filters/" + id
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
var now = new Date() ;
|
||||
now = now.getTime() ;
|
||||
var now = Math.floor(now / 1000 ) ;
|
||||
var now = new Date();
|
||||
now = now.getTime();
|
||||
var now = Math.floor(now / 1000);
|
||||
$("#filter-add-word").val(json.phrase);
|
||||
Object.keys(json.context).forEach(function(key) {
|
||||
Object.keys(json.context).forEach(function (key) {
|
||||
var context = json.context[key];
|
||||
$("[value="+context+"]").prop("checked",true);
|
||||
$("[value=" + context + "]").prop("checked", true);
|
||||
});
|
||||
if(json.irreversible){
|
||||
$("#except_filter").prop("checked",true);
|
||||
if (json.irreversible) {
|
||||
$("#except_filter").prop("checked", true);
|
||||
}
|
||||
if(json.whole_word){
|
||||
$("#wholeword_filter").prop("checked",true);
|
||||
if (json.whole_word) {
|
||||
$("#wholeword_filter").prop("checked", true);
|
||||
}
|
||||
var expires=date(json.expires_at, 'unix')-now;
|
||||
var mins=Math.floor(expires/60)%60;
|
||||
var hours=Math.floor(expires/3600)%24;
|
||||
var days=Math.floor(expires/3600/24);
|
||||
var expires = date(json.expires_at, 'unix') - now;
|
||||
var mins = Math.floor(expires / 60) % 60;
|
||||
var hours = Math.floor(expires / 3600) % 24;
|
||||
var days = Math.floor(expires / 3600 / 24);
|
||||
$("#days_filter").val(days);
|
||||
$("#hours_filter").val(hours);
|
||||
$("#mins_filter").val(mins);
|
||||
}
|
||||
});
|
||||
}
|
||||
function filterDel(id,acct_id){
|
||||
function filterDel(id, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/filters/"+id;
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/filters/" + id;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open("DELETE", start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send();
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
filter();
|
||||
@@ -287,98 +287,96 @@ function filterDel(id,acct_id){
|
||||
}
|
||||
}
|
||||
}
|
||||
function getFilter(acct_id){
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(localStorage.getItem("mode_" + domain)!="misskey"){
|
||||
var start = "https://" + domain + "/api/v1/filters"
|
||||
console.log(start)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
localStorage.setItem("filter_"+ acct_id ,JSON.stringify(json));
|
||||
});
|
||||
}else{
|
||||
localStorage.setItem("filter_"+ acct_id ,JSON.stringify({}));
|
||||
function getFilter(acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
var start = "https://" + domain + "/api/v1/filters"
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
localStorage.setItem("filter_" + acct_id, JSON.stringify(json));
|
||||
});
|
||||
} else {
|
||||
localStorage.setItem("filter_" + acct_id, JSON.stringify({}));
|
||||
}
|
||||
}
|
||||
function getFilterType(json,type){
|
||||
if(!json){
|
||||
function getFilterType(json, type) {
|
||||
if (!json) {
|
||||
return [];
|
||||
}
|
||||
if(type=="local"){
|
||||
type="public";
|
||||
}else if(type=="list"){
|
||||
type="home";
|
||||
}else if(type=="notf"){
|
||||
type="notifi";
|
||||
if (type == "local") {
|
||||
type = "public";
|
||||
} else if (type == "list") {
|
||||
type = "home";
|
||||
} else if (type == "notf") {
|
||||
type = "notifi";
|
||||
}
|
||||
var mutedfilters=[];
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var mutedfilters = [];
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var filterword = json[key];
|
||||
var phrases = filterword.phrase;
|
||||
if(filterword.context.join(",").indexOf(type)!== -1){
|
||||
if (filterword.context.join(",").indexOf(type) !== -1) {
|
||||
mutedfilters.push(phrases);
|
||||
}
|
||||
});
|
||||
return mutedfilters;
|
||||
}
|
||||
function filterUpdate(acct_id){
|
||||
function filterUpdate(acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/filters"
|
||||
console.log(start)
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/filters"
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
localStorage.setItem("filter_"+ acct_id ,JSON.stringify(json));
|
||||
filterUpdateInternal(json,"home");
|
||||
filterUpdateInternal(json,"local");
|
||||
filterUpdateInternal(json,"notf");
|
||||
filterUpdateInternal(json,"pub");
|
||||
}).then(function (json) {
|
||||
localStorage.setItem("filter_" + acct_id, JSON.stringify(json));
|
||||
filterUpdateInternal(json, "home");
|
||||
filterUpdateInternal(json, "local");
|
||||
filterUpdateInternal(json, "notf");
|
||||
filterUpdateInternal(json, "pub");
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
function filterUpdateInternal(json,type){
|
||||
var home=getFilterType(json,type);
|
||||
var wordmute = localStorage.getItem("word_mute");
|
||||
if(wordmute){
|
||||
var wordmute = JSON.parse(wordmute);
|
||||
home = home.concat(wordmute);
|
||||
}
|
||||
if(home){
|
||||
$("[data-acct="+acct_id+"] [data-type="+type+"] .cvo").each(function(i, elem) {
|
||||
var id=$(elem).attr("toot-id");
|
||||
$("[toot-id="+id+"]").removeClass("hide");
|
||||
var text=$(elem).find('.toot').html();
|
||||
Object.keys(home).forEach(function(key8) {
|
||||
var word = home[key8];
|
||||
var regExp = new RegExp( word, "g" );
|
||||
if($.strip_tags(text).match(regExp)){
|
||||
$("[toot-id="+id+"]").addClass("hide");
|
||||
}
|
||||
});
|
||||
function filterUpdateInternal(json, type) {
|
||||
var home = getFilterType(json, type);
|
||||
var wordmute = localStorage.getItem("word_mute");
|
||||
if (wordmute) {
|
||||
var wordmute = JSON.parse(wordmute);
|
||||
home = home.concat(wordmute);
|
||||
}
|
||||
if (home) {
|
||||
$("[data-acct=" + acct_id + "] [data-type=" + type + "] .cvo").each(function (i, elem) {
|
||||
var id = $(elem).attr("toot-id");
|
||||
$("[toot-id=" + id + "]").removeClass("hide");
|
||||
var text = $(elem).find('.toot').html();
|
||||
Object.keys(home).forEach(function (key8) {
|
||||
var word = home[key8];
|
||||
var regExp = new RegExp(word.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
|
||||
if ($.strip_tags(text).match(regExp)) {
|
||||
$("[toot-id=" + id + "]").addClass("hide");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
/*
|
||||
<a onclick="catchToggle(' + key +
|
||||
@@ -387,53 +385,74 @@ function filterUpdateInternal(json,type){
|
||||
')" class="pointer">リセット</a><br>
|
||||
*/
|
||||
//通知フィルター
|
||||
function exclude(key){
|
||||
var excludetxt="";
|
||||
if($('#exc-reply-'+key+':checked').val()){
|
||||
excludetxt="?exclude_types[]=mention"
|
||||
var reply=true
|
||||
}else{
|
||||
var reply=false;
|
||||
function exclude(key) {
|
||||
localStorage.setItem("exclude-" + key, "")
|
||||
var excludetxt = localStorage.getItem("exclude-" + key);
|
||||
if ($('#exc-reply-' + key + ':checked').val()) {
|
||||
excludetxt = "?exclude_types[]=mention"
|
||||
}
|
||||
if($('#exc-fav-'+key+':checked').val()){
|
||||
if(reply){
|
||||
excludetxt=excludetxt+"&exclude_types[]=favourite"
|
||||
}else{
|
||||
excludetxt="?exclude_types[]=favourite"
|
||||
if ($('#exc-fav-' + key + ':checked').val()) {
|
||||
if (excludetxt || excludetxt !="") {
|
||||
excludetxt = excludetxt + "&exclude_types[]=favourite"
|
||||
} else {
|
||||
excludetxt = "?exclude_types[]=favourite"
|
||||
}
|
||||
var fav=true
|
||||
}else{
|
||||
var fav=false;
|
||||
}
|
||||
if($('#exc-bt-'+key+':checked').val()){
|
||||
if(reply || fav){
|
||||
excludetxt=excludetxt+"&exclude_types[]=reblog"
|
||||
}else{
|
||||
excludetxt="?exclude_types[]=reblog"
|
||||
if ($('#exc-bt-' + key + ':checked').val()) {
|
||||
if (excludetxt || excludetxt !="") {
|
||||
excludetxt = excludetxt + "&exclude_types[]=reblog"
|
||||
} else {
|
||||
excludetxt = "?exclude_types[]=reblog"
|
||||
}
|
||||
var bt=true
|
||||
}else{
|
||||
var bt=false;
|
||||
}
|
||||
if($('#exc-follow-'+key+':checked').val()){
|
||||
if(reply || bt || fav){
|
||||
excludetxt=excludetxt+"&exclude_types[]=follow"
|
||||
}else{
|
||||
excludetxt="?exclude_types[]=follow"
|
||||
if ($('#exc-follow-' + key + ':checked').val()) {
|
||||
if (excludetxt || excludetxt !="") {
|
||||
excludetxt = excludetxt + "&exclude_types[]=follow"
|
||||
} else {
|
||||
excludetxt = "?exclude_types[]=follow"
|
||||
}
|
||||
}else{
|
||||
}
|
||||
localStorage.setItem("exclude-"+key,excludetxt)
|
||||
parseColumn();
|
||||
if ($('#exc-poll-' + key + ':checked').val()) {
|
||||
if (excludetxt || excludetxt !="") {
|
||||
excludetxt = excludetxt + "&exclude_types[]=poll"
|
||||
} else {
|
||||
excludetxt = "?exclude_types[]=poll"
|
||||
}
|
||||
} else {
|
||||
}
|
||||
localStorage.setItem("exclude-" + key, excludetxt)
|
||||
parseColumn(key);
|
||||
}
|
||||
function excludeCk(key,target){
|
||||
var exc=localStorage.getItem("exclude-"+key);
|
||||
if(!exc){
|
||||
function excludeCk(key, target) {
|
||||
var exc = localStorage.getItem("exclude-" + key);
|
||||
if (!exc) {
|
||||
return "";
|
||||
}
|
||||
if(~exc.indexOf(target)){
|
||||
if (~exc.indexOf(target)) {
|
||||
return "checked"
|
||||
}else{
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
function checkNotfFilter(tlid){
|
||||
var excludetxt = localStorage.getItem("exclude-" + tlid);
|
||||
if(!excludetxt || excludetxt != ""){
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function resetNotfFilter(tlid){
|
||||
localStorage.setItem("exclude-" + tlid, "")
|
||||
parseColumn(tlid);
|
||||
}
|
||||
function notfFilter(id,tlid,acct_id){
|
||||
var excludetxt = localStorage.getItem("exclude-" + tlid);
|
||||
if (excludetxt || excludetxt !="") {
|
||||
excludetxt = excludetxt + "&account_id="+id
|
||||
} else {
|
||||
excludetxt = "?account_id="+id
|
||||
}
|
||||
localStorage.setItem("exclude-" + tlid, excludetxt)
|
||||
parseColumn(tlid);
|
||||
}
|
||||
@@ -1,195 +1,285 @@
|
||||
function listMenu(){
|
||||
$("#left-menu div").removeClass("active");
|
||||
function listMenu() {
|
||||
$("#left-menu div").removeClass("active");
|
||||
$("#listMenu").addClass("active");
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#list-box").removeClass("hide");
|
||||
$("#list-box").removeClass("hide");
|
||||
$('ul.tabs').tabs('select_tab', 'src-sta');
|
||||
$("#src-contents").html("");
|
||||
}
|
||||
|
||||
|
||||
function list(){
|
||||
$("#lists-user").html("");
|
||||
var acct_id = $("#list-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/lists"
|
||||
console.log(start)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if (json) {
|
||||
var lists = "";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var list = json[key];
|
||||
lists = lists + list.title+':<a onclick="listShow(' + list.id + ',\'' + list.title + '\',\'' + acct_id +
|
||||
'\')" class="pointer">'+lang.lang_list_show+'</a>/<a onclick="listUser(' + list.id + ',' + acct_id +
|
||||
')" class="pointer">'+lang.lang_list_users+'</a><br> ';
|
||||
});
|
||||
$("#lists").html(lists);
|
||||
}else{
|
||||
$("#lists").html(lang.lang_list_nodata);
|
||||
}
|
||||
});
|
||||
function list() {
|
||||
$("#lists-user").html("");
|
||||
var acct_id = $("#list-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/users/lists/list"
|
||||
fetch(start, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({
|
||||
i: at
|
||||
}),
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
var lists = "";
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var list = json[key];
|
||||
lists = lists + escapeHTML(list.title) + ':<a onclick="listShow(\'' + list.id + '\',\'' + escapeHTML(list.title) + '\',\'' + acct_id +
|
||||
'\')" class="pointer">' + lang.lang_list_show + '</a><br>';
|
||||
});
|
||||
$("#lists").html(lists);
|
||||
} else {
|
||||
$("#lists").html(lang.lang_list_nodata);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/lists"
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
var lists = "";
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var list = json[key];
|
||||
lists = lists + escapeHTML(list.title) + ':<a onclick="listShow(\'' + list.id + '\',\'' + escapeHTML(list.title) + '\',\'' + acct_id +
|
||||
'\')" class="pointer">' + lang.lang_list_show + '</a>/<a onclick="listUser(\'' + list.id + '\',' + acct_id +
|
||||
')" class="pointer">' + lang.lang_list_users + '</a><br>';
|
||||
});
|
||||
$("#lists").html(lists);
|
||||
} else {
|
||||
$("#lists").html(lang.lang_list_nodata);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function makeNewList(){
|
||||
var acct_id = $("#list-acct-sel").val();
|
||||
var text=$("#list-add").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/lists"
|
||||
console.log(start)
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({
|
||||
title: text
|
||||
}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
list();
|
||||
$("#list-add").val("")
|
||||
function makeNewList() {
|
||||
var acct_id = $("#list-acct-sel").val();
|
||||
var text = $("#list-add").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
var start = "https://" + domain + "/api/v1/lists"
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({
|
||||
title: text
|
||||
}));
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
list();
|
||||
$("#list-add").val("")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/users/lists/create"
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({
|
||||
i: at,
|
||||
title: text
|
||||
}));
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
list();
|
||||
$("#list-add").val("")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function listShow(id,title,acct_id){
|
||||
localStorage.setItem("list_"+id+"_"+acct_id,title);
|
||||
tl('list',id,acct_id,'add');
|
||||
function listShow(id, title, acct_id) {
|
||||
localStorage.setItem("list_" + id + "_" + acct_id, title);
|
||||
tl('list', id, acct_id, 'add');
|
||||
}
|
||||
function listUser(id,acct_id){
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/lists/"+id+"/accounts"
|
||||
console.log(start)
|
||||
function listUser(id, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/lists/" + id + "/accounts"
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
var lists = "";
|
||||
var templete = userparse(json,'',acct_id);
|
||||
if(!json[0]){
|
||||
templete=lang.lang_list_nouser;
|
||||
}
|
||||
var templete = userparse(json, '', acct_id);
|
||||
if (!json[0]) {
|
||||
templete = lang.lang_list_nouser;
|
||||
}
|
||||
$("#lists-user").html(templete);
|
||||
}else{
|
||||
$("#lists-user").html(lang.lang_list_nouser);
|
||||
}
|
||||
} else {
|
||||
$("#lists-user").html(lang.lang_list_nouser);
|
||||
}
|
||||
});
|
||||
}
|
||||
function hisList(user,acct_id){
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/lists"
|
||||
console.log(start)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if (json) {
|
||||
var lists = lang.lang_list_add+"<br>";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var list = json[key];
|
||||
lists = lists + '<a onclick="listAdd(' + list.id + ',\'' + user + '\',\'' + acct_id +
|
||||
'\')" class="pointer">'+escapeHTML(list.title)+'</a><br> ';
|
||||
});
|
||||
$("#his-lists-a").html(lists);
|
||||
}else{
|
||||
$("#his-lists-a").html(lang.lang_list_nodata);
|
||||
}
|
||||
});
|
||||
var start = "https://" + domain + "/api/v1/accounts/"+user+"/lists"
|
||||
console.log(start)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if (json) {
|
||||
var lists = lang.lang_list_remove+"<br>";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var list = json[key];
|
||||
lists = lists + '<a onclick="listRemove(' + list.id + ',\'' + user + '\',\'' + acct_id +
|
||||
'\')" class="pointer">'+list.title+'</a><br> ';
|
||||
});
|
||||
$("#his-lists-b").html(lists);
|
||||
}else{
|
||||
$("#his-lists-b").html(lang.lang_list_nodata);
|
||||
}
|
||||
});
|
||||
function hisList(user, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
var start = "https://" + domain + "/api/v1/lists"
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
var lists = lang.lang_list_add + "<br>";
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var list = json[key];
|
||||
lists = lists + '<a onclick="listAdd(\'' + list.id + '\',\'' + user + '\',\'' + acct_id +
|
||||
'\')" class="pointer">' + escapeHTML(list.title) + '</a><br> ';
|
||||
});
|
||||
$("#his-lists-a").html(lists);
|
||||
} else {
|
||||
$("#his-lists-a").html(lang.lang_list_nodata);
|
||||
}
|
||||
});
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + user + "/lists"
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
var lists = lang.lang_list_remove + "<br>";
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var list = json[key];
|
||||
lists = lists + '<a onclick="listRemove(\'' + list.id + '\',\'' + user + '\',\'' + acct_id +
|
||||
'\')" class="pointer">' + escapeHTML(list.title) + '</a><br> ';
|
||||
});
|
||||
$("#his-lists-b").html(lists);
|
||||
} else {
|
||||
$("#his-lists-b").html(lang.lang_list_nodata);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/users/lists/list"
|
||||
fetch(start, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({
|
||||
i: at
|
||||
}),
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
var lists = "";
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var list = json[key];
|
||||
lists = lists + list.title + ':<a onclick="listShow(\'' + list.id + '\',\'' + escapeHTML(list.title) + '\',\'' + acct_id +
|
||||
'\')" class="pointer">' + lang.lang_list_show + '</a>/<a onclick="listAdd(\'' + list.id + '\',\'' + user + '\',\'' + acct_id +
|
||||
'\')" class="pointer">' + lang.lang_list_add + lang.lang_list_add_misskey + '</a><br>';
|
||||
});
|
||||
$("#his-lists-a").html(lists);
|
||||
} else {
|
||||
$("#his-lists-a").html(lang.lang_list_nodata);
|
||||
}
|
||||
});
|
||||
$("#his-lists-b").html("");
|
||||
}
|
||||
}
|
||||
function listAdd(id,user,acct_id){
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/lists/"+id+"/accounts"
|
||||
console.log(start)
|
||||
function listAdd(id, user, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/users/lists/push"
|
||||
var i = {
|
||||
i: at,
|
||||
listId: id,
|
||||
userId: user
|
||||
}
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/lists/" + id + "/accounts"
|
||||
var i = {
|
||||
account_ids: [user]
|
||||
}
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({
|
||||
account_ids: [user]
|
||||
}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.send(JSON.stringify(i));
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
hisList(user,acct_id)
|
||||
hisList(user, acct_id)
|
||||
}
|
||||
}
|
||||
}
|
||||
function listRemove(id,user,acct_id){
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/lists/"+id+"/accounts"
|
||||
console.log(start)
|
||||
function listRemove(id, user, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var start = "https://" + domain + "/api/users/lists/push"
|
||||
var method = 'POST'
|
||||
var i = {
|
||||
i: at,
|
||||
listId: id,
|
||||
userId: user
|
||||
}
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/lists/" + id + "/accounts"
|
||||
var method = 'DELETE'
|
||||
var i = {
|
||||
account_ids: [user]
|
||||
}
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('DELETE', start, true);
|
||||
httpreq.open(method, start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({
|
||||
account_ids: [user]
|
||||
}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.send(JSON.stringify(i));
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
hisList(user,acct_id)
|
||||
hisList(user, acct_id)
|
||||
}
|
||||
}
|
||||
}
|
||||
343
app/js/tl/mix.js
@@ -1,129 +1,127 @@
|
||||
//Integrated TL
|
||||
function mixtl(acct_id, tlid, type,delc,voice) {
|
||||
console.log(delc);
|
||||
function mixtl(acct_id, tlid, type, delc, voice) {
|
||||
localStorage.removeItem("morelock")
|
||||
localStorage.setItem("now", type);
|
||||
todo("Integrated TL Loading...(Local)");
|
||||
//まずLocal
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/timelines/public?local=true";
|
||||
//まずLocal
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/timelines/public?local=true";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(jsonL) {
|
||||
var start = "https://" + domain + "/api/v1/timelines/home";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(jsonH) {
|
||||
var homearr=[];
|
||||
var timeline = jsonL.concat(jsonH);
|
||||
timeline.sort(function(a,b){
|
||||
if(date(a.created_at,"unix")>=date(b.created_at,"unix")) return -1;
|
||||
if(date(a.created_at,"unix")<date(b.created_at,"unix")) return 1;
|
||||
return 0;
|
||||
}).then(function (jsonL) {
|
||||
var start = "https://" + domain + "/api/v1/timelines/home";
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (jsonH) {
|
||||
var homearr = [];
|
||||
var timeline = jsonL.concat(jsonH);
|
||||
timeline.sort(function (a, b) {
|
||||
if (date(a.created_at, "unix") >= date(b.created_at, "unix")) return -1;
|
||||
if (date(a.created_at, "unix") < date(b.created_at, "unix")) return 1;
|
||||
return 0;
|
||||
});
|
||||
if(type=="integrated"){
|
||||
if (type == "integrated") {
|
||||
timeline.splice(20);
|
||||
}
|
||||
var templete="";
|
||||
Object.keys(timeline).forEach(function(key) {
|
||||
var pkey=key*1+1;
|
||||
if(pkey<timeline.length){
|
||||
if(date(timeline[key].created_at,"unix")!=date(timeline[pkey].created_at,"unix")){
|
||||
if(localStorage.getItem("filter_"+ acct_id)!="undefined"){
|
||||
var mute=getFilterType(JSON.parse(localStorage.getItem("filter_"+ acct_id)),"mix");
|
||||
}else{
|
||||
var mute=[];
|
||||
}
|
||||
if(type=="integrated"){
|
||||
templete = templete+parse([timeline[key]], '', acct_id, tlid, "", mute, "mix");
|
||||
}else if(type=="plus"){
|
||||
if(timeline[key].account.acct==timeline[key].account.username){
|
||||
templete = templete+parse([timeline[key]], '', acct_id, tlid, "", mute, "plus");
|
||||
var templete = "";
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "mix");
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
Object.keys(timeline).forEach(function (key) {
|
||||
var pkey = key * 1 + 1;
|
||||
if (pkey < timeline.length) {
|
||||
if (date(timeline[key].created_at, "unix") != date(timeline[pkey].created_at, "unix")) {
|
||||
if (type == "integrated") {
|
||||
templete = templete + parse([timeline[key]], '', acct_id, tlid, "", mute, "mix");
|
||||
} else if (type == "plus") {
|
||||
if (timeline[key].account.acct == timeline[key].account.username) {
|
||||
templete = templete + parse([timeline[key]], '', acct_id, tlid, "", mute, "plus");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
$("#landing_" + tlid).hide();
|
||||
$("#timeline_" + tlid).html(templete);
|
||||
mixre(acct_id, tlid, type, mute,delc,voice);
|
||||
});
|
||||
$("#landing_" + tlid).hide();
|
||||
$("#timeline_" + tlid).html(templete);
|
||||
mixre(acct_id, tlid, type, mute, delc, voice);
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
todc();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//Streamingに接続
|
||||
function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
|
||||
function mixre(acct_id, tlid, TLtype, mute, delc, voice, mode) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(localStorage.getItem("streaming_" + acct_id)){
|
||||
var wss=localStorage.getItem("streaming_" + acct_id)
|
||||
}else{
|
||||
var wss="wss://"+domain
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (localStorage.getItem("streaming_" + acct_id)) {
|
||||
var wss = localStorage.getItem("streaming_" + acct_id)
|
||||
} else {
|
||||
var wss = "wss://" + domain
|
||||
}
|
||||
var startHome = wss+
|
||||
var startHome = wss +
|
||||
"/api/v1/streaming/?stream=user&access_token=" + at;
|
||||
var startLocal = wss+
|
||||
var startLocal = wss +
|
||||
"/api/v1/streaming/?stream=public:local&access_token=" + at;
|
||||
var wshid = websocketHome.length;
|
||||
var wslid = websocketLocal.length;
|
||||
websocketHome[wshid] = new WebSocket(startHome);
|
||||
websocketLocal[wslid] = new WebSocket(startLocal);
|
||||
websocketHome[wshid].onopen = function(mess) {
|
||||
websocketHome[wshid].onopen = function (mess) {
|
||||
localStorage.setItem("wssH_" + tlid, wshid);
|
||||
console.log("Connect Streaming API(Integrated:Home)");
|
||||
console.table({ "tlid": tlid, "type": "Connect Streaming API(Integrated:Home)", "domain": domain, "message": mess })
|
||||
$("#notice_icon_" + tlid).removeClass("red-text");
|
||||
}
|
||||
websocketLocal[wslid].onopen = function(mess) {
|
||||
websocketLocal[wslid].onopen = function (mess) {
|
||||
localStorage.setItem("wssL_" + tlid, wslid);
|
||||
console.log("Connect Streaming API(Integrated:Local)");
|
||||
console.table({ "tlid": tlid, "type": "Connect Streaming API(Integrated:Local)", "domain": domain, "message": mess })
|
||||
$("#notice_icon_" + tlid).removeClass("red-text");
|
||||
}
|
||||
websocketLocal[wslid].onmessage = function(mess) {
|
||||
console.log("Receive Streaming API:(Integrated:Local)");
|
||||
websocketLocal[wslid].onmessage = function (mess) {
|
||||
console.log(["Receive Streaming API:(Integrated:Local)", obj]);
|
||||
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload);
|
||||
console.log(obj);
|
||||
var type = JSON.parse(mess.data).event;
|
||||
if (type == "delete") {
|
||||
if(delc=="true"){
|
||||
$("#timeline_"+tlid+" [toot-id=" + JSON.parse(mess.data).payload + "]").addClass("emphasized");
|
||||
$("#timeline_"+tlid+" [toot-id=" + JSON.parse(mess.data).payload + "]").addClass("by_delcatch");
|
||||
}else{
|
||||
if (delc == "true") {
|
||||
$("#timeline_" + tlid + " [toot-id=" + JSON.parse(mess.data).payload + "]").addClass("emphasized");
|
||||
$("#timeline_" + tlid + " [toot-id=" + JSON.parse(mess.data).payload + "]").addClass("by_delcatch");
|
||||
} else {
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").hide();
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").remove();
|
||||
}
|
||||
|
||||
} else if (type == "update") {
|
||||
var templete = parse([obj], '', acct_id, tlid,"",mute);
|
||||
if($("#timeline_" + tlid +" [toot-id=" + obj.id + "]").length < 1){
|
||||
if(voice){
|
||||
var templete = parse([obj], '', acct_id, tlid, "", mute);
|
||||
if ($("#timeline_" + tlid + " [toot-id=" + obj.id + "]").length < 1) {
|
||||
if (voice) {
|
||||
say(obj.content)
|
||||
}
|
||||
var templete = parse([obj], type, acct_id, tlid,"",mute, "mix");
|
||||
var templete = parse([obj], type, acct_id, tlid, "", mute, "mix");
|
||||
var pool = localStorage.getItem("pool_" + tlid);
|
||||
if (pool) {
|
||||
pool = templete + pool;
|
||||
@@ -136,47 +134,45 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
|
||||
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
}else{
|
||||
} else {
|
||||
todo("二重取得発生中");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
websocketHome[wshid].onmessage = function(mess) {
|
||||
console.log("Receive Streaming API:(Integrated:Home)");
|
||||
|
||||
websocketHome[wshid].onmessage = function (mess) {
|
||||
console.log(["Receive Streaming API:(Integrated:Home)", obj]);
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload);
|
||||
console.log(obj);
|
||||
var type = JSON.parse(mess.data).event;
|
||||
if (type == "delete") {
|
||||
if(del>10){
|
||||
reconnector(tlid,type,acct_id,data)
|
||||
}else{
|
||||
localStorage.setItem("delete",del*1+1)
|
||||
if (del > 10) {
|
||||
reconnector(tlid, type, acct_id, data)
|
||||
} else {
|
||||
localStorage.setItem("delete", del * 1 + 1)
|
||||
}
|
||||
if(delc=="true"){
|
||||
if (delc == "true") {
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").addClass("emphasized");
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").addClass("by_delcatch");
|
||||
}else{
|
||||
} else {
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").hide();
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").remove();
|
||||
}
|
||||
} else if (type == "update") {
|
||||
localStorage.removeItem("delete");
|
||||
if(TLtype=="integrated"){
|
||||
if (TLtype == "integrated") {
|
||||
var templete = parse([obj], '', acct_id, tlid);
|
||||
}else if(TLtype=="plus"){
|
||||
if(obj.account.acct==obj.account.username){
|
||||
var templete = parse([obj], '', acct_id, tlid,"",mute, "mix");
|
||||
}else{
|
||||
var templete="";
|
||||
} else if (TLtype == "plus") {
|
||||
if (obj.account.acct == obj.account.username) {
|
||||
var templete = parse([obj], '', acct_id, tlid, "", mute, "mix");
|
||||
} else {
|
||||
var templete = "";
|
||||
}
|
||||
}
|
||||
if($("#timeline_" + tlid +" [toot-id=" + obj.id + "]").length < 1){
|
||||
if(voice){
|
||||
if ($("#timeline_" + tlid + " [toot-id=" + obj.id + "]").length < 1) {
|
||||
if (voice) {
|
||||
say(obj.content)
|
||||
}
|
||||
var templete = parse([obj], type, acct_id, tlid,"",mute,"mix");
|
||||
var templete = parse([obj], type, acct_id, tlid, "", mute, "mix");
|
||||
var pool = localStorage.getItem("pool_" + tlid);
|
||||
if (pool) {
|
||||
pool = templete + pool;
|
||||
@@ -189,45 +185,62 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
|
||||
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
}else{
|
||||
} else {
|
||||
todo("二重取得発生中");
|
||||
}
|
||||
}
|
||||
}
|
||||
websocketLocal[wslid].onerror = function(error) {
|
||||
console.error('WebSocket Error ' + error);
|
||||
if(mode=="error"){
|
||||
websocketLocal[wslid].onerror = function (error) {
|
||||
console.error('WebSocketLocal Error')
|
||||
console.error(error);
|
||||
if (mode == "error") {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
todo('WebSocket Error ' + error);
|
||||
}else{
|
||||
reconnector(tlid,TLtype,acct_id,"","error");
|
||||
} else {
|
||||
var errorct = localStorage.getItem("wserror_" + tlid) * 1 + 1;
|
||||
localStorage.setItem("wserror_" + tlid, errorct);
|
||||
if (errorct < 3) {
|
||||
reconnector(tlid, TLtype, acct_id, "", "error");
|
||||
}
|
||||
}
|
||||
};
|
||||
websocketLocal[wslid].onclose = function() {
|
||||
console.error('WebSocketLocal Closing by error:' + tlid);
|
||||
if(mode=="error"){
|
||||
websocketLocal[wslid].onclose = function () {
|
||||
console.warn('WebSocketLocal Closing:' + tlid);
|
||||
if (mode == "error") {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
todo('WebSocket Closed');
|
||||
}else{
|
||||
reconnector(tlid,TLtype,acct_id,"","error");
|
||||
} else {
|
||||
var errorct = localStorage.getItem("wserror_" + tlid) * 1 + 1;
|
||||
localStorage.setItem("wserror_" + tlid, errorct);
|
||||
if (errorct < 3) {
|
||||
reconnector(tlid, TLtype, acct_id, "", "error");
|
||||
}
|
||||
}
|
||||
};
|
||||
websocketHome[wshid].onerror = function(error) {
|
||||
console.error('WebSocket Error ' + error);
|
||||
if(mode=="error"){
|
||||
websocketHome[wshid].onerror = function (error) {
|
||||
console.error(['WebSocketHome Error', error])
|
||||
if (mode == "error") {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
todo('WebSocket Error ' + error);
|
||||
}else{
|
||||
reconnector(tlid,TLtype,acct_id,"","error");
|
||||
} else {
|
||||
var errorct = localStorage.getItem("wserror_" + tlid) * 1 + 1;
|
||||
localStorage.setItem("wserror_" + tlid, errorct);
|
||||
if (errorct < 3) {
|
||||
reconnector(tlid, TLtype, acct_id, "", "error");
|
||||
}
|
||||
}
|
||||
};
|
||||
websocketHome[wshid].onclose = function() {
|
||||
console.error('WebSocketHome Closing by error:' + tlid);
|
||||
if(mode=="error"){
|
||||
websocketHome[wshid].onclose = function () {
|
||||
console.warn('WebSocketHome Closing:' + tlid);
|
||||
if (mode == "error") {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
todo('WebSocket Closed');
|
||||
}else{
|
||||
reconnector(tlid,TLtype,acct_id,"","error");
|
||||
} else {
|
||||
var errorct = localStorage.getItem("wserror_" + tlid) * 1 + 1;
|
||||
localStorage.setItem("wserror_" + tlid, errorct);
|
||||
if (errorct < 3) {
|
||||
reconnector(tlid, TLtype, acct_id, "", "error");
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
@@ -235,79 +248,79 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
|
||||
}
|
||||
|
||||
//ある程度のスクロールで発火
|
||||
function mixmore(tlid,type) {
|
||||
function mixmore(tlid, type) {
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
var acct_id = obj[tlid].domain;
|
||||
moreloading=true;
|
||||
moreloading = true;
|
||||
todo("Integrated TL MoreLoading...(Local)");
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var sid = $("#timeline_" + tlid + " .cvo").last().attr("unique-id");
|
||||
|
||||
|
||||
var start = "https://" + domain + "/api/v1/timelines/public?local=true&max_id="+sid;
|
||||
var start = "https://" + domain + "/api/v1/timelines/public?local=true&max_id=" + sid;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(jsonL) {
|
||||
var start = "https://" + domain + "/api/v1/timelines/home?max_id="+sid;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(jsonH) {
|
||||
var homearr=[];
|
||||
var timeline = jsonL.concat(jsonH);
|
||||
timeline.sort(function(a,b){
|
||||
if(date(a.created_at,"unix")>date(b.created_at,"unix")) return -1;
|
||||
if(date(a.created_at,"unix")<date(b.created_at,"unix")) return 1;
|
||||
return 0;
|
||||
});
|
||||
timeline.splice(20);
|
||||
var templete="";
|
||||
Object.keys(timeline).forEach(function(key) {
|
||||
var pkey=key*1+1;
|
||||
if(pkey<20){
|
||||
if(date(timeline[key].created_at,"unix")!=date(timeline[pkey].created_at,"unix")){
|
||||
if(localStorage.getItem("filter_"+ acct_id)!="undefined"){
|
||||
var mute=getFilterType(JSON.parse(localStorage.getItem("filter_"+ acct_id)),"mix");
|
||||
}else{
|
||||
var mute=[];
|
||||
}).then(function (jsonL) {
|
||||
var start = "https://" + domain + "/api/v1/timelines/home?max_id=" + sid;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (jsonH) {
|
||||
var homearr = [];
|
||||
var timeline = jsonL.concat(jsonH);
|
||||
timeline.sort(function (a, b) {
|
||||
if (date(a.created_at, "unix") > date(b.created_at, "unix")) return -1;
|
||||
if (date(a.created_at, "unix") < date(b.created_at, "unix")) return 1;
|
||||
return 0;
|
||||
});
|
||||
timeline.splice(20);
|
||||
var templete = "";
|
||||
Object.keys(timeline).forEach(function (key) {
|
||||
var pkey = key * 1 + 1;
|
||||
if (pkey < 20) {
|
||||
if (date(timeline[key].created_at, "unix") != date(timeline[pkey].created_at, "unix")) {
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "mix");
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
if(type=="integrated"){
|
||||
templete = templete+parse([timeline[key]], '', acct_id, tlid,"",mute,"mix");
|
||||
}else if(type=="plus"){
|
||||
if(timeline[key].account.acct==timeline[key].account.username){
|
||||
templete = templete+parse([timeline[key]], '', acct_id, tlid,"",mute,"mix");
|
||||
if (type == "integrated") {
|
||||
templete = templete + parse([timeline[key]], '', acct_id, tlid, "", mute, "mix");
|
||||
} else if (type == "plus") {
|
||||
if (timeline[key].account.acct == timeline[key].account.username) {
|
||||
templete = templete + parse([timeline[key]], '', acct_id, tlid, "", mute, "mix");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
$("#timeline_" + tlid).append(templete);
|
||||
$("#timeline_" + tlid).append(templete);
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
moreloading=false;
|
||||
moreloading = false;
|
||||
todc();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -1,209 +1,143 @@
|
||||
//通知
|
||||
//取得+Streaming接続
|
||||
function notf(acct_id, tlid, sys){
|
||||
function notf(acct_id, tlid, sys) {
|
||||
if (sys == "direct") {
|
||||
notfColumn(acct_id, tlid, sys)
|
||||
} else {
|
||||
notfCommon(acct_id, tlid, sys)
|
||||
}
|
||||
}
|
||||
function notfColumn(acct_id, tlid, sys){
|
||||
function notfColumn(acct_id, tlid, sys) {
|
||||
todo("Notifications Loading...");
|
||||
var native=localStorage.getItem("nativenotf");
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(!native){
|
||||
native="yes";
|
||||
var native = localStorage.getItem("nativenotf");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (!native) {
|
||||
native = "yes";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
console.log(start)
|
||||
var httpreq = new XMLHttpRequest();
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var misskey=true;
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var misskey = true;
|
||||
var start = "https://" + domain + "/api/i/notifications";
|
||||
httpreq.open(POST, start, true);
|
||||
httpreq.open("POST", start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
var body=JSON.stringify({
|
||||
i:at
|
||||
var body = JSON.stringify({
|
||||
i: at
|
||||
});
|
||||
}else{
|
||||
var misskey=false;
|
||||
if(localStorage.getItem("exclude-"+tlid)){
|
||||
var exc=localStorage.getItem("exclude-"+tlid);
|
||||
}else{
|
||||
var exc="";
|
||||
} else {
|
||||
var misskey = false;
|
||||
if (localStorage.getItem("exclude-" + tlid)) {
|
||||
var exc = localStorage.getItem("exclude-" + tlid);
|
||||
} else {
|
||||
var exc = "";
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/notifications"+exc;
|
||||
var start = "https://" + domain + "/api/v1/notifications" + exc;
|
||||
httpreq.open("GET", start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
var body="";
|
||||
var body = "";
|
||||
}
|
||||
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(body);
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
var max_id = httpreq.getResponseHeader("link").match(/[?&]{1}max_id=([0-9]+)/)[1];
|
||||
if(json[0]){
|
||||
var templete="";
|
||||
var lastnotf=localStorage.getItem("lastnotf_" + acct_id);
|
||||
localStorage.setItem("lastnotf_" + acct_id,json[0].id);
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var max_id = httpreq.getResponseHeader("link");
|
||||
if (max_id) {
|
||||
max_id = max_id.match(/[?&]{1}max_id=([0-9]+)/)[1]
|
||||
}
|
||||
if (json[0]) {
|
||||
var templete = "";
|
||||
var lastnotf = localStorage.getItem("lastnotf_" + acct_id);
|
||||
localStorage.setItem("lastnotf_" + acct_id, json[0].id);
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var obj = json[key];
|
||||
if(lastnotf==obj.id && key>0 && native=="yes"){
|
||||
var ct=key;
|
||||
if(key>14){
|
||||
ct="15+";
|
||||
if (lastnotf == obj.id && key > 0 && native == "yes") {
|
||||
var ct = key;
|
||||
if (key > 14) {
|
||||
ct = "15+";
|
||||
}
|
||||
var os = localStorage.getItem("platform");
|
||||
var options = {
|
||||
body: ct + lang.lang_notf_new,
|
||||
icon: localStorage.getItem("prof_" + acct_id)
|
||||
};
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
var nativeNotfOpt=['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
var options = {
|
||||
body: ct+lang_notf_new[lang],
|
||||
icon: localStorage.getItem("prof_"+acct_id)
|
||||
};
|
||||
if(os=="darwin"){
|
||||
var n = new Notification('TheDesk:'+domain, options);
|
||||
}else{
|
||||
ipc.send('native-notf', ['TheDesk:'+domain,ct+lang_notf_new[lang],localStorage.getItem("prof_"+acct_id)]);
|
||||
}
|
||||
|
||||
}
|
||||
if(localStorage.getItem("filter_"+ acct_id)!="undefined"){
|
||||
var mute=getFilterType(JSON.parse(localStorage.getItem("filter_"+ acct_id)),"notif");
|
||||
}else{
|
||||
var mute=[];
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "notif");
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
if(obj.type!="follow"){
|
||||
if(misskey){
|
||||
templete = templete+misskeyParse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
}else{
|
||||
templete = templete+parse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
if (obj.type != "follow") {
|
||||
if (misskey) {
|
||||
templete = templete + misskeyParse([obj], 'notf', acct_id, tlid, -1, mute);
|
||||
} else {
|
||||
templete = templete + parse([obj], 'notf', acct_id, tlid, -1, mute);
|
||||
}
|
||||
}else{
|
||||
if(misskey){
|
||||
templete = templete+misskeyUserparse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
}else{
|
||||
templete = templete+userparse([obj.account], 'notf', acct_id, 'notf', -1);
|
||||
} else {
|
||||
if (misskey) {
|
||||
templete = templete + misskeyUserparse([obj], 'notf', acct_id, tlid, -1, mute);
|
||||
} else {
|
||||
templete = templete + userparse([obj.account], 'notf', acct_id, tlid, -1);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
templete=templete+'<div class="hide notif-marker" data-maxid="'+max_id+'"></div>';
|
||||
templete = templete + '<div class="hide notif-marker" data-maxid="' + max_id + '"></div>';
|
||||
$("#timeline_" + tlid).html(templete);
|
||||
$("#landing_" + tlid).hide();
|
||||
jQuery("time.timeago").timeago();
|
||||
}
|
||||
$("#notf-box").addClass("fetched");
|
||||
todc();
|
||||
}
|
||||
$("#notf-box").addClass("fetched");
|
||||
todc();
|
||||
}
|
||||
}
|
||||
if(!misskey){
|
||||
if(localStorage.getItem("streaming_" + acct_id)){
|
||||
var wss=localStorage.getItem("streaming_" + acct_id)
|
||||
}else{
|
||||
var wss="wss://"+domain
|
||||
if (!misskey) {
|
||||
if (localStorage.getItem("streaming_" + acct_id)) {
|
||||
var wss = localStorage.getItem("streaming_" + acct_id)
|
||||
} else {
|
||||
var wss = "wss://" + domain
|
||||
}
|
||||
var start = wss + "/api/v1/streaming/?stream=user&access_token=" +
|
||||
at;
|
||||
}else{
|
||||
at;
|
||||
} else {
|
||||
var start = "wss://" + domain + "/?i=" +
|
||||
at;
|
||||
at;
|
||||
}
|
||||
|
||||
console.log(start);
|
||||
var wsid = websocketNotf.length;
|
||||
websocketNotf[acct_id] = new WebSocket(start);
|
||||
console.log(websocketNotf);
|
||||
websocketNotf[acct_id].onopen = function(mess) {
|
||||
console.log("Connect Streaming API(Notf):");
|
||||
console.log(mess);
|
||||
$("i[data-notf=" + acct_id +"]").removeClass("red-text");
|
||||
|
||||
}
|
||||
websocketNotf[acct_id].onmessage = function(mess) {
|
||||
console.log("Receive Streaming API(Notf):"+acct_id);
|
||||
var popup = localStorage.getItem("popup");
|
||||
if (!popup) {
|
||||
popup = 0;
|
||||
}
|
||||
console.log(domain)
|
||||
if(misskey){
|
||||
console.log("misskey")
|
||||
console.log(JSON.parse(mess.data));
|
||||
if (JSON.parse(mess.data).type == "notification") {
|
||||
var obj = JSON.parse(mess.data).body;
|
||||
console.log(obj);
|
||||
if(obj.type!="follow"){
|
||||
|
||||
templete = misskeyParse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}else{
|
||||
templete = misskeyUserparse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}
|
||||
if(obj.type=="reaction"){
|
||||
console.log("refresh")
|
||||
reactRefresh(acct_id,obj.note.id)
|
||||
}
|
||||
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
|
||||
$("div[data-notf=" + acct_id +"]").prepend(templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
}else if(JSON.parse(mess.data).type == "note-updated"){
|
||||
var obj = JSON.parse(mess.data).body.note;
|
||||
reactRefreshCore(obj)
|
||||
}
|
||||
}else{
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload);
|
||||
console.log(obj);
|
||||
var type = JSON.parse(mess.data).event;
|
||||
if (type == "notification") {
|
||||
var templete="";
|
||||
localStorage.setItem("lastnotf_" + acct_id,obj.id);
|
||||
if(obj.type!="follow"){
|
||||
templete = parse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}else{
|
||||
templete = userparse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}
|
||||
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
|
||||
$(".tl[data-notf=" + acct_id +"]").prepend(templete);
|
||||
}
|
||||
$(".notf-timeline[data-acct=" + acct_id +"]").prepend(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
} else if (type == "delete") {
|
||||
$("[toot-id=" + obj + "]").hide();
|
||||
$("[toot-id=" + obj + "]").remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
websocketNotf[acct_id].onerror = function(error) {
|
||||
console.error('WebSocket Error ' + error);
|
||||
};
|
||||
}
|
||||
function notfCommon(acct_id, tlid, sys) {
|
||||
todo("Notifications Loading...");
|
||||
var native=localStorage.getItem("nativenotf");
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
if(!native){
|
||||
native="yes";
|
||||
var native = localStorage.getItem("nativenotf");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (!native) {
|
||||
native = "yes";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var misskey=true;
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var misskey = true;
|
||||
var start = "https://" + domain + "/api/i/notifications";
|
||||
var i={
|
||||
var i = {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
body:JSON.stringify({
|
||||
i:at
|
||||
body: JSON.stringify({
|
||||
i: at
|
||||
})
|
||||
}
|
||||
}else{
|
||||
var misskey=false;
|
||||
} else {
|
||||
var misskey = false;
|
||||
var start = "https://" + domain + "/api/v1/notifications";
|
||||
var i={
|
||||
var i = {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
@@ -211,260 +145,230 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
},
|
||||
}
|
||||
}
|
||||
fetch(start, i).then(function(response) {
|
||||
console.log(response.headers.get('link'));
|
||||
fetch(start, i).then(function (response) {
|
||||
console.log("header to get param:" + response.headers.get('link'));
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if(json[0]){
|
||||
var templete="";
|
||||
var lastnotf=localStorage.getItem("lastnotf_" + acct_id);
|
||||
localStorage.setItem("lastnotf_" + acct_id,json[0].id);
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var obj = json[key];
|
||||
if(lastnotf==obj.id && key>0 && native=="yes"){
|
||||
var ct=key;
|
||||
if(key>14){
|
||||
ct="15+";
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
}).then(function (json) {
|
||||
if (json[0]) {
|
||||
var templete = "";
|
||||
var lastnotf = localStorage.getItem("lastnotf_" + acct_id);
|
||||
localStorage.setItem("lastnotf_" + acct_id, json[0].id);
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var obj = json[key];
|
||||
if (lastnotf == obj.id && key > 0 && native == "yes") {
|
||||
var ct = key;
|
||||
if (key > 14) {
|
||||
ct = "15+";
|
||||
}
|
||||
var os = localStorage.getItem("platform");
|
||||
var options = {
|
||||
body: ct+lang_notf_new[lang],
|
||||
icon: localStorage.getItem("prof_"+acct_id)
|
||||
};
|
||||
if(os=="darwin"){
|
||||
var n = new Notification('TheDesk:'+domain, options);
|
||||
}else{
|
||||
ipc.send('native-notf', ['TheDesk:'+domain,ct+lang_notf_new[lang],localStorage.getItem("prof_"+acct_id)]);
|
||||
body: ct + lang.lang_notf_new,
|
||||
icon: localStorage.getItem("prof_" + acct_id)
|
||||
};
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
var nativeNotfOpt=['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
|
||||
}
|
||||
if(localStorage.getItem("filter_"+ acct_id)!="undefined"){
|
||||
var mute=getFilterType(JSON.parse(localStorage.getItem("filter_"+ acct_id)),"notif");
|
||||
}else{
|
||||
var mute=[];
|
||||
}
|
||||
if(obj.type!="follow"){
|
||||
if(misskey){
|
||||
templete = templete+misskeyParse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
}else{
|
||||
templete = templete+parse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
}
|
||||
}else{
|
||||
if(misskey){
|
||||
templete = templete+misskeyUserparse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
}else{
|
||||
templete = templete+userparse([obj.account], 'notf', acct_id, 'notf', -1);
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "notif");
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
if (obj.type != "follow") {
|
||||
if (misskey) {
|
||||
templete = templete + misskeyParse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
} else {
|
||||
templete = templete + parse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
}
|
||||
} else {
|
||||
if (misskey) {
|
||||
templete = templete + misskeyUserparse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
} else {
|
||||
templete = templete + userparse([obj.account], 'notf', acct_id, 'notf', -1);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
$("div[data-notf=" + acct_id +"]").html(templete);
|
||||
$("#landing_" + tlid).hide();
|
||||
jQuery("time.timeago").timeago();
|
||||
}
|
||||
});
|
||||
$("div[data-notf=" + acct_id + "]").html(templete);
|
||||
$("#landing_" + tlid).hide();
|
||||
jQuery("time.timeago").timeago();
|
||||
}
|
||||
$("#notf-box").addClass("fetched");
|
||||
todc();
|
||||
notfWS(misskey, acct_id, tlid, domain, at)
|
||||
});
|
||||
if(!misskey){
|
||||
if(localStorage.getItem("streaming_" + acct_id)){
|
||||
var wss=localStorage.getItem("streaming_" + acct_id)
|
||||
}else{
|
||||
var wss="wss://"+domain
|
||||
|
||||
}
|
||||
function notfWS(misskey, acct_id, tlid, domain, at) {
|
||||
if (!misskey) {
|
||||
if (localStorage.getItem("streaming_" + acct_id)) {
|
||||
var wss = localStorage.getItem("streaming_" + acct_id)
|
||||
} else {
|
||||
var wss = "wss://" + domain
|
||||
}
|
||||
var start = wss + "/api/v1/streaming/?stream=user&access_token=" +
|
||||
at;
|
||||
}else{
|
||||
var start = "wss://" + domain + "/?i=" +
|
||||
at;
|
||||
}
|
||||
at;
|
||||
|
||||
console.log(start);
|
||||
var wsid = websocketNotf.length;
|
||||
websocketNotf[acct_id] = new WebSocket(start);
|
||||
console.log(websocketNotf);
|
||||
websocketNotf[acct_id].onopen = function(mess) {
|
||||
console.log("Connect Streaming API(Notf):");
|
||||
console.log(mess);
|
||||
$("i[data-notf=" + acct_id +"]").removeClass("red-text");
|
||||
var wsid = websocketNotf.length;
|
||||
websocketNotf[acct_id] = new WebSocket(start);
|
||||
websocketNotf[acct_id].onopen = function (mess) {
|
||||
console.table({ "acct_id": acct_id, "type": "Connect Streaming API(Notf)", "domain": domain, "message": [mess] })
|
||||
$("i[data-notf=" + acct_id + "]").removeClass("red-text");
|
||||
|
||||
}
|
||||
websocketNotf[acct_id].onmessage = function(mess) {
|
||||
console.log("Receive Streaming API(Notf):"+acct_id);
|
||||
var popup = localStorage.getItem("popup");
|
||||
}
|
||||
websocketNotf[acct_id].onmessage = function (mess) {
|
||||
console.log(["Receive Streaming API(Notf):" + acct_id + "(" + domain + ")", JSON.parse(JSON.parse(mess.data).payload)]);
|
||||
var popup = localStorage.getItem("popup");
|
||||
if (!popup) {
|
||||
popup = 0;
|
||||
}
|
||||
console.log(domain)
|
||||
if(misskey){
|
||||
console.log("misskey")
|
||||
console.log(JSON.parse(mess.data));
|
||||
if (JSON.parse(mess.data).type == "notification") {
|
||||
var obj = JSON.parse(mess.data).body;
|
||||
console.log(obj);
|
||||
if(obj.type!="follow"){
|
||||
|
||||
templete = misskeyParse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}else{
|
||||
templete = misskeyUserparse([obj], 'notf', acct_id, 'notf', popup);
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload);
|
||||
var type = JSON.parse(mess.data).event;
|
||||
if (type == "notification") {
|
||||
var templete = "";
|
||||
localStorage.setItem("lastnotf_" + acct_id, obj.id);
|
||||
if (obj.type != "follow") {
|
||||
templete = parse([obj], 'notf', acct_id, 'notf', popup);
|
||||
} else {
|
||||
templete = userparse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}
|
||||
if(obj.type=="reaction"){
|
||||
console.log("refresh")
|
||||
reactRefresh(acct_id,obj.note.id)
|
||||
}
|
||||
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
|
||||
$("div[data-notf=" + acct_id +"]").prepend(templete);
|
||||
if (!$("div[data-notfIndv=" + acct_id + "_" + obj.id + "]").length) {
|
||||
$("div[data-notf=" + acct_id + "]").prepend(templete);
|
||||
$("div[data-const=notf_" + acct_id + "]").prepend(templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
}else if(JSON.parse(mess.data).type == "note-updated"){
|
||||
var obj = JSON.parse(mess.data).body.note;
|
||||
reactRefreshCore(obj)
|
||||
} else if (type == "delete") {
|
||||
$("[toot-id=" + obj + "]").hide();
|
||||
$("[toot-id=" + obj + "]").remove();
|
||||
}
|
||||
}else{
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload);
|
||||
console.log(obj);
|
||||
var type = JSON.parse(mess.data).event;
|
||||
if (type == "notification") {
|
||||
var templete="";
|
||||
localStorage.setItem("lastnotf_" + acct_id,obj.id);
|
||||
if(obj.type!="follow"){
|
||||
templete = parse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}else{
|
||||
templete = userparse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}
|
||||
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
|
||||
$("div[data-notf=" + acct_id +"]").prepend(templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
} else if (type == "delete") {
|
||||
$("[toot-id=" + obj + "]").hide();
|
||||
$("[toot-id=" + obj + "]").remove();
|
||||
}
|
||||
}
|
||||
websocketNotf[acct_id].onerror = function (error) {
|
||||
console.error('WebSocket Error ' + error);
|
||||
notfWS(misskey, acct_id, tlid, domain, at)
|
||||
};
|
||||
}
|
||||
websocketNotf[acct_id].onerror = function(error) {
|
||||
console.error('WebSocket Error ' + error);
|
||||
};
|
||||
}
|
||||
//一定のスクロールで発火
|
||||
function notfmore(tlid) {
|
||||
console.log(moreloading);
|
||||
console.log("kicked");
|
||||
console.log({ "status": "kicked", "status": moreloading });
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
var acct_id = obj[tlid].domain;
|
||||
if (!type) {
|
||||
var type = obj[tlid].type;
|
||||
}else{
|
||||
} else {
|
||||
var data;
|
||||
}
|
||||
var sid = $("#timeline_" + tlid + " .notif-marker").last().attr("data-maxid");
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if (sid && !moreloading) {
|
||||
moreloading=true;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var misskey=true;
|
||||
var start = "https://" + domain + "/api/i/notifications";
|
||||
httpreq.open(POST, start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
var body=JSON.stringify({
|
||||
i:at,
|
||||
untilID:sid
|
||||
});
|
||||
}else{
|
||||
var misskey=false;
|
||||
if(localStorage.getItem("exclude-"+tlid)){
|
||||
var exc=localStorage.getItem("exclude-"+tlid)+"&max_id="+sid;
|
||||
}else{
|
||||
var exc="?max_id="+sid;
|
||||
moreloading = true;
|
||||
var httpreq = new XMLHttpRequest();
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var misskey = true;
|
||||
var start = "https://" + domain + "/api/i/notifications";
|
||||
httpreq.open(POST, start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
var body = JSON.stringify({
|
||||
i: at,
|
||||
untilID: sid
|
||||
});
|
||||
} else {
|
||||
var misskey = false;
|
||||
if (localStorage.getItem("exclude-" + tlid)) {
|
||||
var exc = localStorage.getItem("exclude-" + tlid) + "&max_id=" + sid;
|
||||
} else {
|
||||
var exc = "?max_id=" + sid;
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/notifications" + exc;
|
||||
httpreq.open("GET", start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
var body = "";
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/notifications"+exc;
|
||||
httpreq.open("GET", start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
var body="";
|
||||
}
|
||||
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(body);
|
||||
httpreq.onreadystatechange = function() {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
console.log(json);
|
||||
var max_id = httpreq.getResponseHeader("link").match(/[?&]{1}max_id=([0-9]+)/)[1];
|
||||
if(json[0]){
|
||||
var templete="";
|
||||
var lastnotf=localStorage.getItem("lastnotf_" + acct_id);
|
||||
localStorage.setItem("lastnotf_" + acct_id,json[0].id);
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var obj = json[key];
|
||||
if(localStorage.getItem("filter_"+ acct_id)!="undefined"){
|
||||
var mute=getFilterType(JSON.parse(localStorage.getItem("filter_"+ acct_id)),"notif");
|
||||
}else{
|
||||
var mute=[];
|
||||
}
|
||||
if(obj.type!="follow"){
|
||||
if(misskey){
|
||||
templete = templete+misskeyParse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
}else{
|
||||
templete = templete+parse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
}
|
||||
}else{
|
||||
if(misskey){
|
||||
templete = templete+misskeyUserparse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
}else{
|
||||
templete = templete+userparse([obj.account], 'notf', acct_id, 'notf', -1);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(body);
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
console.log(["More notifications on " + tlid, json]);
|
||||
var max_id = httpreq.getResponseHeader("link").match(/[?&]{1}max_id=([0-9]+)/)[1];
|
||||
if (json[0]) {
|
||||
var templete = "";
|
||||
var lastnotf = localStorage.getItem("lastnotf_" + acct_id);
|
||||
localStorage.setItem("lastnotf_" + acct_id, json[0].id);
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var obj = json[key];
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "notif");
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
if (obj.type != "follow") {
|
||||
if (misskey) {
|
||||
templete = templete + misskeyParse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
} else {
|
||||
templete = templete + parse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
}
|
||||
} else {
|
||||
if (misskey) {
|
||||
templete = templete + misskeyUserparse([obj], 'notf', acct_id, 'notf', -1, mute);
|
||||
} else {
|
||||
templete = templete + userparse([obj.account], 'notf', acct_id, 'notf', -1);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
moreloading=false;
|
||||
templete=templete+'<div class="hide notif-marker" data-maxid="'+max_id+'"></div>';
|
||||
$("#timeline_" + tlid).append(templete);
|
||||
$("#landing_" + tlid).hide();
|
||||
jQuery("time.timeago").timeago();
|
||||
}
|
||||
});
|
||||
moreloading = false;
|
||||
templete = templete + '<div class="hide notif-marker" data-maxid="' + max_id + '"></div>';
|
||||
$("#timeline_" + tlid).append(templete);
|
||||
$("#landing_" + tlid).hide();
|
||||
jQuery("time.timeago").timeago();
|
||||
}
|
||||
$("#notf-box").addClass("fetched");
|
||||
todc();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//通知トグルボタン
|
||||
function notfToggle(acct, tlid) {
|
||||
if($("#notf-box_" + tlid).hasClass("column-hide")){
|
||||
$("#notf-box_" + tlid).css("display","block")
|
||||
if ($("#notf-box_" + tlid).hasClass("column-hide")) {
|
||||
$("#notf-box_" + tlid).css("display", "block")
|
||||
$("#notf-box_" + tlid).animate({
|
||||
'height': '400px'
|
||||
},{
|
||||
'duration': 300,
|
||||
'complete': function(){
|
||||
$("#notf-box_" + tlid).css("overflow-y","scroll")
|
||||
$("#notf-box_" + tlid).removeClass("column-hide")
|
||||
}
|
||||
});
|
||||
}else{
|
||||
$("#notf-box_" + tlid).css("overflow-y","hidden")
|
||||
}, {
|
||||
'duration': 300,
|
||||
'complete': function () {
|
||||
$("#notf-box_" + tlid).css("overflow-y", "scroll")
|
||||
$("#notf-box_" + tlid).removeClass("column-hide")
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#notf-box_" + tlid).css("overflow-y", "hidden")
|
||||
$("#notf-box_" + tlid).animate({
|
||||
'height': '0'
|
||||
},{
|
||||
'duration': 300,
|
||||
'complete': function(){
|
||||
$("#notf-box_" + tlid).addClass("column-hide")
|
||||
$("#notf-box_" + tlid).css("display","none")
|
||||
}
|
||||
});
|
||||
}, {
|
||||
'duration': 300,
|
||||
'complete': function () {
|
||||
$("#notf-box_" + tlid).addClass("column-hide")
|
||||
$("#notf-box_" + tlid).css("display", "none")
|
||||
}
|
||||
});
|
||||
}
|
||||
notfCanceler(acct)
|
||||
}
|
||||
function notfCanceler(acct){
|
||||
function notfCanceler(acct) {
|
||||
$(".notf-reply_" + acct).text(0);
|
||||
localStorage.removeItem("notf-reply_" + acct)
|
||||
$(".notf-reply_" + acct).addClass("hide");
|
||||
@@ -479,26 +383,13 @@ function notfCanceler(acct){
|
||||
$(".notf-follow_" + acct).addClass("hide");
|
||||
$(".notf-icon_" + acct).removeClass("red-text");
|
||||
}
|
||||
function allNotfRead(){
|
||||
console.log(localStorage.getItem("notf-fav_2"));
|
||||
function allNotfRead() {
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (!multi) {
|
||||
var obj = [{
|
||||
at: localStorage.getItem("acct_0_at"),
|
||||
name: localStorage.getItem("name_0"),
|
||||
domain: localStorage.getItem("domain_0"),
|
||||
user: localStorage.getItem("user_0"),
|
||||
prof: localStorage.getItem("prof_0"),
|
||||
id: localStorage.getItem("user-id_0")
|
||||
}];
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
} else {
|
||||
if (multi) {
|
||||
var obj = JSON.parse(multi);
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
notfCanceler(key)
|
||||
});
|
||||
}
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
console.log(key);
|
||||
notfCanceler(key)
|
||||
});
|
||||
}
|
||||
allNotfRead()
|
||||
1268
app/js/tl/parse.js
@@ -1,17 +1,17 @@
|
||||
//アンケートのトグル
|
||||
function pollToggle() {
|
||||
if ($("#poll").hasClass("hide")) {
|
||||
if ($("#poll").hasClass("hide")) {
|
||||
$("#right-side").show()
|
||||
$("#poll").removeClass("hide")
|
||||
} else {
|
||||
$("#poll").removeClass("hide")
|
||||
} else {
|
||||
$("#right-side").hide()
|
||||
$("#emoji").addClass("hide")
|
||||
$("#poll").addClass("hide")
|
||||
}
|
||||
$("#poll").addClass("hide")
|
||||
}
|
||||
}
|
||||
function pollProviderCk(){
|
||||
function pollProviderCk() {
|
||||
$(".poll-provider").addClass("hide");
|
||||
$("#"+$("#poll-sel").val()).removeClass("hide");
|
||||
$("#" + $("#poll-sel").val()).removeClass("hide");
|
||||
}
|
||||
/*
|
||||
function pollAddtime(num){
|
||||
@@ -21,99 +21,99 @@ function pollAddtime(num){
|
||||
pollCalc();
|
||||
}
|
||||
*/
|
||||
function pollCalc(){
|
||||
var days=$("#days_poll").val();
|
||||
var hrs=$("#hours_poll").val();
|
||||
var mins=$("#mins_poll").val();
|
||||
console.log(days*86400+hrs*3600+mins*60)
|
||||
return days*86400+hrs*3600+mins*60;
|
||||
function pollCalc() {
|
||||
var days = $("#days_poll").val();
|
||||
var hrs = $("#hours_poll").val();
|
||||
var mins = $("#mins_poll").val();
|
||||
console.log("Poll calc:" + days * 86400 + hrs * 3600 + mins * 60)
|
||||
return days * 86400 + hrs * 3600 + mins * 60;
|
||||
|
||||
}
|
||||
//Vote
|
||||
function voteSelMastodon(acct_id,id,to,mul){
|
||||
console.log('.vote_'+acct_id+'_'+id+'_'+to);
|
||||
if($('.vote_'+acct_id+'_'+id+'_'+to).hasClass("sel")){
|
||||
$('.vote_'+acct_id+'_'+id+'_'+to).css("background-color","transparent")
|
||||
$('.vote_'+acct_id+'_'+id+'_'+to).removeClass("sel");
|
||||
}else{
|
||||
if(!mul){
|
||||
$('.vote_'+acct_id+'_'+id+' div' ).each(function(i, elem) {
|
||||
if(i==to){
|
||||
$(this).css("background-color","var(--emphasized)");
|
||||
function voteSelMastodon(acct_id, id, to, mul) {
|
||||
if ($('.vote_' + acct_id + '_' + id + '_' + to).hasClass("sel")) {
|
||||
$('.vote_' + acct_id + '_' + id + '_' + to).css("background-color", "transparent")
|
||||
$('.vote_' + acct_id + '_' + id + '_' + to).removeClass("sel");
|
||||
} else {
|
||||
if (!mul) {
|
||||
$('.vote_' + acct_id + '_' + id + ' div').each(function (i, elem) {
|
||||
if (i == to) {
|
||||
$(this).css("background-color", "var(--emphasized)");
|
||||
$(this).addClass("sel");
|
||||
}else{
|
||||
$(this).css("background-color","transparent")
|
||||
} else {
|
||||
$(this).css("background-color", "transparent")
|
||||
$(this).removeClass("sel");
|
||||
}
|
||||
});
|
||||
}else{
|
||||
$('.vote_'+acct_id+'_'+id+'_'+to).css("background-color","var(--emphasized)")
|
||||
$('.vote_'+acct_id+'_'+id+'_'+to).addClass("sel");
|
||||
} else {
|
||||
$('.vote_' + acct_id + '_' + id + '_' + to).css("background-color", "var(--emphasized)")
|
||||
$('.vote_' + acct_id + '_' + id + '_' + to).addClass("sel");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
function voteMastodon(acct_id,id){
|
||||
var choice=[];
|
||||
$('.vote_'+acct_id+'_'+id+' div' ).each(function(i, elem) {
|
||||
if($(this).hasClass("sel")){
|
||||
choice.push(i+"");
|
||||
function voteMastodon(acct_id, id) {
|
||||
var choice = [];
|
||||
$('.vote_' + acct_id + '_' + id + ' div').each(function (i, elem) {
|
||||
if ($(this).hasClass("sel")) {
|
||||
choice.push(i + "");
|
||||
}
|
||||
});
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/polls/"+id+"/votes";
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/polls/" + id + "/votes";
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
return false;
|
||||
}
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify({choices:choice}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
voteMastodonrefresh(acct_id,id)
|
||||
}
|
||||
httpreq.send(JSON.stringify({ choices: choice }));
|
||||
httpreq.onreadystatechange = function () {
|
||||
voteMastodonrefresh(acct_id, id)
|
||||
}
|
||||
}
|
||||
function showResult(acct_id,id){
|
||||
$('.vote_'+acct_id+'_'+id+'_result').toggleClass("hide")
|
||||
function showResult(acct_id, id) {
|
||||
$('.vote_' + acct_id + '_' + id + '_result').toggleClass("hide")
|
||||
}
|
||||
function voteMastodonrefresh(acct_id,id){
|
||||
function voteMastodonrefresh(acct_id, id) {
|
||||
var datetype = localStorage.getItem("datetype");
|
||||
if (!datetype) {
|
||||
datetype = "absolute";
|
||||
}
|
||||
datetype = "absolute";
|
||||
}
|
||||
var httpreqd = new XMLHttpRequest();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/polls/"+id;
|
||||
httpreqd.open('GET', start, true);
|
||||
httpreqd.setRequestHeader('Content-Type', 'application/json');
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/polls/" + id;
|
||||
httpreqd.open('GET', start, true);
|
||||
httpreqd.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreqd.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreqd.responseType = 'json';
|
||||
httpreqd.send(JSON.stringify({i:at,noteId:id}));
|
||||
httpreqd.onreadystatechange = function() {
|
||||
if (httpreqd.readyState == 4) {
|
||||
httpreqd.send();
|
||||
httpreqd.onreadystatechange = function () {
|
||||
if (httpreqd.readyState == 4) {
|
||||
var json = httpreqd.response;
|
||||
console.log(json);
|
||||
if(!json){
|
||||
console.log(["Refresh vote", json]);
|
||||
if (!json) {
|
||||
return false;
|
||||
}
|
||||
var poll="";
|
||||
var choices=json.options;
|
||||
var myvote=lang.lang_parse_voted;
|
||||
var result_hide="";
|
||||
Object.keys(choices).forEach(function(keyc) {
|
||||
var choice = choices[keyc];
|
||||
if(!json.voted){
|
||||
votesel='voteSelMastodon(\''+acct_id+'\',\''+json.id+'\','+keyc+','+json.multiple+')';
|
||||
}
|
||||
poll=poll+'<div class="pointer vote vote_'+acct_id+'_'+json.id+'_'+keyc+'" onclick="'+votesel+'">'+choice.title+'<span class="vote_'+acct_id+'_'+json.id+'_result '+result_hide+'">('+choice.votes_count+')</span></div>';
|
||||
});
|
||||
poll=poll+myvote+'<span class="cbadge cbadge-hover" title="' + date(json.expires_at, 'absolute') +
|
||||
'"><i class="fa fa-calendar-times-o"></i>' +
|
||||
date(json.expires_at, datetype) + '</span>';
|
||||
$('.vote_'+acct_id+'_'+json.id).html(poll)
|
||||
}
|
||||
}
|
||||
var poll = "";
|
||||
var choices = json.options;
|
||||
var myvote = lang.lang_parse_voted;
|
||||
var result_hide = "";
|
||||
Object.keys(choices).forEach(function (keyc) {
|
||||
var choice = choices[keyc];
|
||||
if (!json.voted) {
|
||||
votesel = 'voteSelMastodon(\'' + acct_id + '\',\'' + json.id + '\',' + keyc + ',' + json.multiple + ')';
|
||||
}
|
||||
poll = poll + '<div class="pointer vote vote_' + acct_id + '_' + json.id + '_' + keyc + '" onclick="' + votesel + '">' + escapeHTML(choice.title) + '<span class="vote_' + acct_id + '_' + json.id + '_result ' + result_hide + '">(' + choice.votes_count + ')</span></div>';
|
||||
});
|
||||
poll = poll + myvote + '<a onclick="voteMastodonrefresh(\'' + acct_id + '\',\'' + json.id + '\')" class="pointer">' + lang.lang_manager_refresh + '</a><span class="cbadge cbadge-hover" title="' + date(json.expires_at, 'absolute') +
|
||||
'"><i class="far fa-calendar-times"></i>' +
|
||||
date(json.expires_at, datetype) + '</span>';
|
||||
$('.vote_' + acct_id + '_' + json.id).html(poll)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +1,38 @@
|
||||
$voise = null;
|
||||
$voiseName = lang.lang_speech;
|
||||
$voices = speechSynthesis.getVoices();
|
||||
$synthes = new SpeechSynthesisUtterance();
|
||||
$voise = $.grep($voices, function(n, i){return n.name == $voiseName})[0];
|
||||
$synthes.voice = $voise; // 音声の設定
|
||||
localStorage.removeItem("voicebank");
|
||||
speechSynthesis.cancel()
|
||||
if(!localStorage.getItem("voice_vol")){
|
||||
localStorage.setItem("voice_vol",1)
|
||||
}
|
||||
$synthes.rate=localStorage.getItem("voice_speed");
|
||||
$synthes.pitch=localStorage.getItem("voice_pitch");
|
||||
$synthes.volume=localStorage.getItem("voice_vol");
|
||||
function say(msgr){
|
||||
msg=voiceParse(msgr);
|
||||
var voice=localStorage.getItem("voicebank");
|
||||
$voise = null;
|
||||
$voiseName = lang.lang_speech;
|
||||
$voices = speechSynthesis.getVoices();
|
||||
$synthes = new SpeechSynthesisUtterance();
|
||||
$voise = $.grep($voices, function (n, i) { return n.name == $voiseName })[0];
|
||||
$synthes.voice = $voise; // 音声の設定
|
||||
localStorage.removeItem("voicebank");
|
||||
speechSynthesis.cancel()
|
||||
if (!localStorage.getItem("voice_vol")) {
|
||||
localStorage.setItem("voice_vol", 1)
|
||||
}
|
||||
$synthes.rate = localStorage.getItem("voice_speed");
|
||||
$synthes.pitch = localStorage.getItem("voice_pitch");
|
||||
$synthes.volume = localStorage.getItem("voice_vol");
|
||||
function say(msgr) {
|
||||
msg = voiceParse(msgr);
|
||||
var voice = localStorage.getItem("voicebank");
|
||||
var obj = JSON.parse(voice);
|
||||
if(!obj){
|
||||
var json = JSON.stringify([msg]);
|
||||
localStorage.setItem("voicebank", json);
|
||||
}else{
|
||||
obj.push([msg]);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("voicebank", json);
|
||||
}
|
||||
if (!obj) {
|
||||
var json = JSON.stringify([msg]);
|
||||
localStorage.setItem("voicebank", json);
|
||||
} else {
|
||||
obj.push([msg]);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("voicebank", json);
|
||||
}
|
||||
|
||||
}
|
||||
$repeat = setInterval(function() {
|
||||
if(!speechSynthesis.speaking){
|
||||
var voice=localStorage.getItem("voicebank");
|
||||
if(voice){
|
||||
$repeat = setInterval(function () {
|
||||
if (!speechSynthesis.speaking) {
|
||||
var voice = localStorage.getItem("voicebank");
|
||||
if (voice) {
|
||||
var obj = JSON.parse(voice);
|
||||
if(obj[0]){
|
||||
$synthes.text = obj[0];
|
||||
console.log($synthes);
|
||||
if (obj[0]) {
|
||||
$synthes.text = obj[0];
|
||||
speechSynthesis.speak($synthes);
|
||||
obj.splice(0, 1);
|
||||
var json = JSON.stringify(obj);
|
||||
@@ -42,68 +41,68 @@ $repeat = setInterval(function() {
|
||||
}
|
||||
}
|
||||
}, 300);
|
||||
function voiceParse(msg){
|
||||
function voiceParse(msg) {
|
||||
msg = $.strip_tags(msg);
|
||||
msg = msg.replace(/#/g, "");
|
||||
msg = msg.replace(/'/g, "");
|
||||
msg = msg.replace(/"/g, "");
|
||||
msg = msg.replace(/https?:\/\/[a-zA-Z0-9./-@_=?%&-]+/g, "");
|
||||
return msg;
|
||||
return msg;
|
||||
}
|
||||
function voiceToggle(tlid) {
|
||||
var voiceck = localStorage.getItem("voice_" + tlid);
|
||||
if (voiceck) {
|
||||
var voiceck = localStorage.getItem("voice_" + tlid);
|
||||
if (voiceck) {
|
||||
localStorage.removeItem("voice_" + tlid);
|
||||
speechSynthesis.cancel()
|
||||
$("#sta-voice-" + tlid).text("Off");
|
||||
$("#sta-voice-" + tlid).css("color",'red');
|
||||
parseColumn();
|
||||
} else {
|
||||
localStorage.setItem("voice_" + tlid, "true");
|
||||
$("#sta-voice-" + tlid).text("On");
|
||||
$("#sta-voice-" + tlid).css("color",'#009688');
|
||||
parseColumn();
|
||||
}
|
||||
$("#sta-voice-" + tlid).text("Off");
|
||||
$("#sta-voice-" + tlid).css("color", 'red');
|
||||
parseColumn(tlid);
|
||||
} else {
|
||||
localStorage.setItem("voice_" + tlid, "true");
|
||||
$("#sta-voice-" + tlid).text("On");
|
||||
$("#sta-voice-" + tlid).css("color", '#009688');
|
||||
parseColumn(tlid);
|
||||
}
|
||||
}
|
||||
function voiceCheck(tlid) {
|
||||
var voiceck = localStorage.getItem("voice_" + tlid);
|
||||
if (voiceck) {
|
||||
$("#sta-voice-" + tlid).text("On");
|
||||
$("#sta-voice-" + tlid).css("color",'#009688');
|
||||
} else {
|
||||
$("#sta-voice-" + tlid).text("Off");
|
||||
$("#sta-voice-" + tlid).css("color",'red');
|
||||
}
|
||||
if (voiceck) {
|
||||
$("#sta-voice-" + tlid).text("On");
|
||||
$("#sta-voice-" + tlid).css("color", '#009688');
|
||||
} else {
|
||||
$("#sta-voice-" + tlid).text("Off");
|
||||
$("#sta-voice-" + tlid).css("color", 'red');
|
||||
}
|
||||
}
|
||||
function voicePlay(){
|
||||
if(speechSynthesis.speaking){
|
||||
function voicePlay() {
|
||||
if (speechSynthesis.speaking) {
|
||||
speechSynthesis.cancel()
|
||||
}else{
|
||||
$synthes.text = $("#voicetxt").val();
|
||||
$synthes.rate = $("#voicespeed").val()/10;
|
||||
$synthes.pitch = $("#voicepitch").val()/50;
|
||||
$synthes.volume = $("#voicevol").val()/100;
|
||||
} else {
|
||||
$synthes.text = $("#voicetxt").val();
|
||||
$synthes.rate = $("#voicespeed").val() / 10;
|
||||
$synthes.pitch = $("#voicepitch").val() / 50;
|
||||
$synthes.volume = $("#voicevol").val() / 100;
|
||||
speechSynthesis.speak($synthes);
|
||||
}
|
||||
}
|
||||
|
||||
function voiceSettings(){
|
||||
localStorage.setItem("voice_speed", $("#voicespeed").val()/10);
|
||||
localStorage.setItem("voice_pitch", $("#voicepitch").val()/50);
|
||||
localStorage.setItem("voice_vol", $("#voicevol").val()/100);
|
||||
Materialize.toast(lang.lang_speech_refresh, 3000);
|
||||
function voiceSettings() {
|
||||
localStorage.setItem("voice_speed", $("#voicespeed").val() / 10);
|
||||
localStorage.setItem("voice_pitch", $("#voicepitch").val() / 50);
|
||||
localStorage.setItem("voice_vol", $("#voicevol").val() / 100);
|
||||
M.toast({ html: lang.lang_speech_refresh, displayLength: 3000 })
|
||||
}
|
||||
function voiceSettingLoad(){
|
||||
var speed=localStorage.getItem("voice_speed");
|
||||
var pitch=localStorage.getItem("voice_pitch");
|
||||
var vol=localStorage.getItem("voice_vol");
|
||||
if(speed){
|
||||
$("#voicespeed").val(speed*10);
|
||||
function voiceSettingLoad() {
|
||||
var speed = localStorage.getItem("voice_speed");
|
||||
var pitch = localStorage.getItem("voice_pitch");
|
||||
var vol = localStorage.getItem("voice_vol");
|
||||
if (speed) {
|
||||
$("#voicespeed").val(speed * 10);
|
||||
}
|
||||
if(pitch){
|
||||
$("#voicepitch").val(pitch*50);
|
||||
if (pitch) {
|
||||
$("#voicepitch").val(pitch * 50);
|
||||
}
|
||||
if(vol){
|
||||
$("#voicevol").val(vol*100);
|
||||
if (vol) {
|
||||
$("#voicevol").val(vol * 100);
|
||||
}
|
||||
}
|
||||
301
app/js/tl/src.js
@@ -1,12 +1,13 @@
|
||||
//検索
|
||||
//検索ボックストグル
|
||||
function searchMenu() {
|
||||
$("#src-contents").html("");
|
||||
trend();
|
||||
$("#left-menu div").removeClass("active");
|
||||
$("#searchMenu").addClass("active");
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#src-box").removeClass("hide");
|
||||
$('ul.tabs').tabs('select_tab', 'src-sta');
|
||||
$("#src-contents").html("");
|
||||
$("#src-box").removeClass("hide");
|
||||
//$('ul.tabs').tabs('select_tab', 'src-sta');
|
||||
}
|
||||
|
||||
//検索取得
|
||||
@@ -14,23 +15,195 @@ function src(mode) {
|
||||
$("#src-contents").html("");
|
||||
var q = $("#src").val();
|
||||
var acct_id = $("#src-acct-sel").val();
|
||||
if(acct_id=="tootsearch"){
|
||||
tootsearch(q);
|
||||
if (acct_id == "tootsearch") {
|
||||
tsAdd(q)
|
||||
return false;
|
||||
}
|
||||
localStorage.setItem("last-use", acct_id);
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var m = q.match(/^#(.+)$/);
|
||||
if(m){q=m[1];}
|
||||
if (m) { q = m[1]; }
|
||||
if (user == "--now") {
|
||||
var user = $('#his-data').attr("user-id");
|
||||
}
|
||||
if(!mode){
|
||||
if (!mode) {
|
||||
var start = "https://" + domain + "/api/v2/search?q=" + q
|
||||
}else{
|
||||
} else {
|
||||
var start = "https://" + domain + "/api/v1/search?q=" + q
|
||||
}
|
||||
console.log("Try to search at " + start)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
src("v1")
|
||||
return false;
|
||||
}).then(function (json) {
|
||||
console.log(["Search", json]);
|
||||
//ハッシュタグ
|
||||
if (json.hashtags[0]) {
|
||||
var tags = "";
|
||||
Object.keys(json.hashtags).forEach(function (key4) {
|
||||
var tag = json.hashtags[key4];
|
||||
if (mode) {
|
||||
tags = tags + '<a onclick="tl(\'tag\',\'' + tag + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + escapeHTML(tag) + '</a><br> ';
|
||||
} else {
|
||||
tags = tags + graphDraw(tag, acct_id);
|
||||
}
|
||||
|
||||
});
|
||||
$("#src-contents").append("Tags<br>" + tags);
|
||||
}
|
||||
//トゥート
|
||||
if (json.statuses[0]) {
|
||||
var templete = parse(json.statuses, '', acct_id);
|
||||
$("#src-contents").append("<br>Mentions<br>" + templete);
|
||||
}
|
||||
//アカウント
|
||||
if (json.accounts[0]) {
|
||||
var templete = userparse(json.accounts, '', acct_id);
|
||||
$("#src-contents").append("<br>Accounts<br>" + templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
function tsAdd(q) {
|
||||
var add = {
|
||||
domain: acct_id,
|
||||
type: "tootsearch",
|
||||
data: q
|
||||
};
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
localStorage.setItem("card_" + obj.length, "true");
|
||||
obj.push(add);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
parseColumn('add');
|
||||
}
|
||||
function tootsearch(tlid, q) {
|
||||
var start = "https://tootsearch.chotto.moe/api/v1/search?from=0&sort=created_at%3Adesc&q=" + q
|
||||
console.log("Toot srrach at " + start)
|
||||
$("#notice_" + tlid).text("tootsearch(" + q + ")");
|
||||
$("#notice_icon_" + tlid).text("search");
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (raw) {
|
||||
var templete = "";
|
||||
var json = raw.hits.hits;
|
||||
var max_id = raw["hits"].length;
|
||||
for (var i = 0; i < json.length; i++) {
|
||||
var toot = json[i]["_source"];
|
||||
if (lastid != toot.uri) {
|
||||
if (toot && toot.account) {
|
||||
templete = templete + parse([toot], "noauth", null, tlid, 0, [], "tootsearch")
|
||||
}
|
||||
}
|
||||
var lastid = toot.uri;
|
||||
}
|
||||
if (!templete) {
|
||||
templete = lang.lang_details_nodata;
|
||||
} else {
|
||||
templete = templete + '<div class="hide ts-marker" data-maxid="' + max_id + '"></div>';
|
||||
}
|
||||
$("#timeline_" + tlid).html(templete);
|
||||
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
function moreTs(tlid, q) {
|
||||
var sid = $("#timeline_" + tlid + " .ts-marker").last().attr("data-maxid");
|
||||
moreloading = true;
|
||||
var start = "https://tootsearch.chotto.moe/api/v1/search?from=" + sid + "&sort=created_at%3Adesc&q=" + q
|
||||
$("#notice_" + tlid).text("tootsearch(" + q + ")");
|
||||
$("#notice_icon_" + tlid).text("search");
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (raw) {
|
||||
var templete = "";
|
||||
var json = raw.hits.hits;
|
||||
var max_id = raw["hits"].length;
|
||||
for (var i = 0; i < json.length; i++) {
|
||||
var toot = json[i]["_source"];
|
||||
if (lastid != toot.uri) {
|
||||
if (toot && toot.account) {
|
||||
templete = templete + parse([toot], "noauth", null, tlid, 0, [], "tootsearch")
|
||||
}
|
||||
}
|
||||
var lastid = toot.uri;
|
||||
}
|
||||
if (!templete) {
|
||||
templete = lang.lang_details_nodata;
|
||||
} else {
|
||||
templete = templete + '<div class="hide ts-marker" data-maxid="' + max_id + '"></div>';
|
||||
}
|
||||
$("#timeline_" + tlid).append(templete);
|
||||
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
function graphDraw(tag, acct_id) {
|
||||
var tags = "";
|
||||
var his = tag.history;
|
||||
var max = Math.max.apply(null, [his[0].uses, his[1].uses, his[2].uses, his[3].uses, his[4].uses, his[5].uses, his[6].uses]);
|
||||
var six = 50 - (his[6].uses / max * 50);
|
||||
var five = 50 - (his[5].uses / max * 50);
|
||||
var four = 50 - (his[4].uses / max * 50);
|
||||
var three = 50 - (his[3].uses / max * 50);
|
||||
var two = 50 - (his[2].uses / max * 50);
|
||||
var one = 50 - (his[1].uses / max * 50);
|
||||
var zero = 50 - (his[0].uses / max * 50);
|
||||
if (max === 0) {
|
||||
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">' +
|
||||
'</svg><span style="font-size:200%">' + his[0].uses + '</span>toot(s) <a onclick="tl(\'tag\',\'' + escapeHTML(tag.name) + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + escapeHTML(tag.name) + '</a> ' + his[0].accounts + lang.lang_src_people;
|
||||
} else {
|
||||
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">' +
|
||||
'<g><path d="M0,' + six + ' L10,' + five + ' 20,' + four + ' 30,' + three + ' 40,' + two + ' 50,' + one + ' 60,' + zero + '" style="stroke: #9e9e9e; stroke-width: 1;fill: none;"></path></g>' +
|
||||
'</svg><span style="font-size:200%">' + his[0].uses + '</span>toot <a onclick="tl(\'tag\',\'' + escapeHTML(tag.name) + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + escapeHTML(tag.name) + '</a> ' + his[0].accounts + lang.lang_src_people;
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
/*
|
||||
<svg version="1.1" viewbox="0 0 50 300" width="100%" height="50">
|
||||
<path d="M0,0 L10,0 20,10 20,50" fill="#3F51B5"></path>
|
||||
</svg>
|
||||
*/
|
||||
function trend(){
|
||||
console.log("get trend")
|
||||
$("#src-contents").html("");
|
||||
var acct_id = $("#src-acct-sel").val();
|
||||
if(acct_id=="tootsearch"){
|
||||
return false;
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/trends"
|
||||
console.log(start)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
@@ -41,96 +214,28 @@ function src(mode) {
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
src("v1")
|
||||
return false;
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
//ハッシュタグ
|
||||
if (json.hashtags[0]) {
|
||||
var tags = "";
|
||||
Object.keys(json.hashtags).forEach(function(key4) {
|
||||
var tag = json.hashtags[key4];
|
||||
if(mode){
|
||||
tags = tags + '<a onclick="tl(\'tag\',\'' + tag + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag + '</a><br> ';
|
||||
}else{
|
||||
tags=tags+graphDraw(tag);
|
||||
}
|
||||
|
||||
});
|
||||
$("#src-contents").append("Tags<br>" + tags);
|
||||
}
|
||||
//トゥート
|
||||
if (json.statuses[0]) {
|
||||
var templete = parse(json.statuses,'',acct_id);
|
||||
$("#src-contents").append("Mentions<br>" + templete);
|
||||
}
|
||||
//アカウント
|
||||
if (json.accounts[0]) {
|
||||
var templete = userparse(json.accounts,'',acct_id);
|
||||
$("#src-contents").append("Accounts<br>" + templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
function tootsearch(q){
|
||||
var start = "https://tootsearch.chotto.moe/api/v1/search?from=0&sort=created_at%3Adesc&q=" + q
|
||||
console.log(start)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
//todo(error);
|
||||
console.error(error);
|
||||
}).then(function(raw) {
|
||||
var templete="";
|
||||
var json=raw.hits.hits;
|
||||
console.log(json);
|
||||
Object.keys(json).forEach(function(key5) {
|
||||
var toot = json[key5]["_source"];
|
||||
console.log(toot);
|
||||
if(toot && toot.account){
|
||||
templete = templete+parse([toot],'noauth');
|
||||
}
|
||||
}).then(function(json) {
|
||||
var tags = "";
|
||||
Object.keys(json).forEach(function(keye) {
|
||||
var tag = json[keye];
|
||||
var his=tag.history;
|
||||
var max=Math.max.apply(null, [his[0].uses,his[1].uses,his[2].uses,his[3].uses,his[4].uses,his[5].uses,his[6].uses]);
|
||||
var six=50-(his[6].uses/max*50);
|
||||
var five=50-(his[5].uses/max*50);
|
||||
var four=50-(his[4].uses/max*50);
|
||||
var three=50-(his[3].uses/max*50);
|
||||
var two=50-(his[2].uses/max*50);
|
||||
var one=50-(his[1].uses/max*50);
|
||||
var zero=50-(his[0].uses/max*50);
|
||||
tags = '<svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
|
||||
'<g><path d="M0,'+six+' L10,'+five+' 20,'+four+' 30,'+three+' 40,'+two+' 50,'+one+' 60,'+zero+'" style="stroke: #9e9e9e; stroke-width: 1;fill: none;"></path></g>'+
|
||||
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang.lang_src_people+"<br><br>";
|
||||
|
||||
$("#src-contents").append(tags);
|
||||
});
|
||||
if(!templete){
|
||||
templete=lang.lang_details_nodata;
|
||||
}
|
||||
$("#src-contents").html("Tootsearch("+lang.lang_src_ts+")<br>" + templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
|
||||
});
|
||||
}
|
||||
function graphDraw(tag){
|
||||
var tags="";
|
||||
var his=tag.history;
|
||||
console.log(his);
|
||||
var max=Math.max.apply(null, [his[0].uses,his[1].uses,his[2].uses,his[3].uses,his[4].uses,his[5].uses,his[6].uses]);
|
||||
var six=50-(his[6].uses/max*50);
|
||||
var five=50-(his[5].uses/max*50);
|
||||
var four=50-(his[4].uses/max*50);
|
||||
var three=50-(his[3].uses/max*50);
|
||||
var two=50-(his[2].uses/max*50);
|
||||
var one=50-(his[1].uses/max*50);
|
||||
var zero=50-(his[0].uses/max*50);
|
||||
if(max===0){
|
||||
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
|
||||
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang.lang_src_people;
|
||||
}else{
|
||||
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
|
||||
'<g><path d="M0,'+six+' L10,'+five+' 20,'+four+' 30,'+three+' 40,'+two+' 50,'+one+' 60,'+zero+'" style="stroke: #9e9e9e; stroke-width: 1;fill: none;"></path></g>'+
|
||||
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang.lang_src_people;
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
/*
|
||||
<svg version="1.1" viewbox="0 0 50 300" width="100%" height="50">
|
||||
<path d="M0,0 L10,0 20,10 20,50" fill="#3F51B5"></path>
|
||||
</svg>
|
||||
*/
|
||||
148
app/js/tl/tag.js
@@ -1,35 +1,35 @@
|
||||
//タグ表示
|
||||
if(location.search){
|
||||
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/);
|
||||
var mode=m[1];
|
||||
var codex=m[2];
|
||||
if(mode=="tag"){
|
||||
var acct_id=localStorage.getItem("main");
|
||||
tl('tag',decodeURI(codex),acct_id,'add');
|
||||
}
|
||||
if (location.search) {
|
||||
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/);
|
||||
var mode = m[1];
|
||||
var codex = m[2];
|
||||
if (mode == "tag") {
|
||||
var acct_id = localStorage.getItem("main");
|
||||
tl('tag', decodeURI(codex), acct_id, 'add');
|
||||
}
|
||||
}
|
||||
//よく使うタグ
|
||||
function tagShow(tag){
|
||||
$("[data-tag="+decodeURI(tag)+"]").toggleClass("hide");
|
||||
function tagShow(tag) {
|
||||
$("[data-tag=" + decodeURI(tag) + "]").toggleClass("hide");
|
||||
}
|
||||
//タグ追加
|
||||
function tagPin(tag){
|
||||
function tagPin(tag) {
|
||||
var tags = localStorage.getItem("tag");
|
||||
if(!tags){
|
||||
var obj=[];
|
||||
}else{
|
||||
if (!tags) {
|
||||
var obj = [];
|
||||
} else {
|
||||
var obj = JSON.parse(tags);
|
||||
}
|
||||
var can;
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var tagT = obj[key];
|
||||
if(tagT==tag){
|
||||
can=true;
|
||||
}else{
|
||||
can=false;
|
||||
if (tagT == tag) {
|
||||
can = true;
|
||||
} else {
|
||||
can = false;
|
||||
}
|
||||
});
|
||||
if(!can){
|
||||
if (!can) {
|
||||
obj.push(tag);
|
||||
}
|
||||
var json = JSON.stringify(obj);
|
||||
@@ -45,84 +45,86 @@ function tagRemove(key) {
|
||||
localStorage.setItem("tag", json);
|
||||
favTag();
|
||||
}
|
||||
function favTag(){
|
||||
function favTag() {
|
||||
$("#taglist").html("");
|
||||
var tagarr = localStorage.getItem("tag");
|
||||
if(!tagarr){
|
||||
var obj=[];
|
||||
}else{
|
||||
if (!tagarr) {
|
||||
var obj = [];
|
||||
} else {
|
||||
var obj = JSON.parse(tagarr);
|
||||
}
|
||||
var tags="";
|
||||
var nowPT=localStorage.getItem("stable")
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var tags = "";
|
||||
var nowPT = localStorage.getItem("stable")
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var tag = obj[key];
|
||||
if(nowPT!=tag){
|
||||
console.log(nowPT+"/"+tag);
|
||||
var ptt=lang.lang_tags_realtime;
|
||||
var nowon="";
|
||||
}else{
|
||||
var ptt=lang.lang_tags_unrealtime;
|
||||
var nowon="("+lang.lang_tags_realtime+")";
|
||||
if (nowPT != tag) {
|
||||
console.log("stable tags:" + nowPT + "/" + tag);
|
||||
var ptt = lang.lang_tags_realtime;
|
||||
var nowon = "";
|
||||
} else {
|
||||
var ptt = lang.lang_tags_unrealtime;
|
||||
var nowon = "(" + lang.lang_tags_realtime + ")";
|
||||
}
|
||||
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a>'+nowon+'<span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="' +lang.lang_parse_tagTL.replace("{{tag}}" ,'#'+tag)+ '">TL</a> <a onclick="brInsert(\'#' + tag + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">Toot</a> '+
|
||||
'<a onclick="autoToot(\'' + tag + '\');" class="pointer" title="'+lang.lang_tags_always + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">'+ptt+'</a> <a onclick="tagRemove(\'' + key + '\')" class="pointer" title="' +lang.lang_tags_tagunpin.replace("{{tag}}" ,'#'+tag)+ '">'+lang.lang_del+'</a></span> ';
|
||||
tag = escapeHTML(tag);
|
||||
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a>' + nowon + '<span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="' + lang.lang_parse_tagTL.replace("{{tag}}", '#' + tag) + '">TL</a> <a onclick="brInsert(\'#' + tag + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}", '#' + tag) + '">Toot</a> ' +
|
||||
'<a onclick="autoToot(\'' + tag + '\');" class="pointer" title="' + lang.lang_tags_always + lang.lang_parse_tagtoot.replace("{{tag}}", '#' + tag) + '">' + ptt + '</a> <a onclick="tagRemove(\'' + key + '\')" class="pointer" title="' + lang.lang_tags_tagunpin.replace("{{tag}}", '#' + tag) + '">' + lang.lang_del + '</a></span> ';
|
||||
});
|
||||
if(obj.length>0){
|
||||
if (obj.length > 0) {
|
||||
$("#taglist").append("My Tags:" + tags);
|
||||
}else{
|
||||
} else {
|
||||
$("#taglist").append("");
|
||||
}
|
||||
}
|
||||
function trendTag(){
|
||||
function trendTag() {
|
||||
$(".trendtag").remove();
|
||||
var domain="imastodon.net"
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var domain = "imastodon.net"
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/trend_tags"
|
||||
console.log(start)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if (json) {
|
||||
var tags="";
|
||||
json=json.score;
|
||||
Object.keys(json).forEach(function(tag) {
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
var tags = "";
|
||||
json = json.score;
|
||||
Object.keys(json).forEach(function (tag) {
|
||||
tag = escapeHTML(tag);
|
||||
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a><span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="#' + tag + 'のタイムライン">TL</a> <a onclick="show();brInsert(\'#' + tag + '\')" class="pointer" title="#' + tag + 'でトゥート">Toot</a></span> ';
|
||||
});
|
||||
$("#taglist").append('<div class="trendtag">アイマストドントレンドタグ<i class="material-icons pointer" onclick="trendTag()" style="font-size:12px">refresh</i>:' + tags+'</div>');
|
||||
trendintervalset()
|
||||
}else{
|
||||
});
|
||||
$("#taglist").append('<div class="trendtag">アイマストドントレンドタグ<i class="material-icons pointer" onclick="trendTag()" style="font-size:12px">refresh</i>:' + tags + '</div>');
|
||||
trendintervalset()
|
||||
} else {
|
||||
$("#taglist").html("");
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function trendintervalset(){
|
||||
function trendintervalset() {
|
||||
setTimeout(trendTag, 6000000);
|
||||
}
|
||||
function tagTL(a,b,c,d){
|
||||
function tagTL(a, b, c, d) {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
tl(a,b,acct_id,d);
|
||||
tl(a, b, acct_id, d);
|
||||
}
|
||||
function autoToot(tag){
|
||||
var nowPT=localStorage.getItem("stable")
|
||||
if(nowPT==tag){
|
||||
function autoToot(tag) {
|
||||
tag = escapeHTML(tag)
|
||||
var nowPT = localStorage.getItem("stable")
|
||||
if (nowPT == tag) {
|
||||
localStorage.removeItem("stable");
|
||||
Materialize.toast(lang.lang_tags_unrealtime,3000);
|
||||
}else{
|
||||
localStorage.setItem("stable",tag);
|
||||
Materialize.toast(lang.lang_tags_tagwarn.replace("{{tag}}" ,tag).replace("{{tag}}" ,tag),3000);
|
||||
brInsert('#' + tag+" ")
|
||||
M.toast({ html: lang.lang_tags_unrealtime, displayLength: 3000 })
|
||||
} else {
|
||||
localStorage.setItem("stable", tag);
|
||||
M.toast({ html: lang.lang_tags_tagwarn.replace("{{tag}}", tag).replace("{{tag}}", tag), displayLength: 3000 })
|
||||
brInsert('#' + tag + " ")
|
||||
}
|
||||
favTag();
|
||||
}
|
||||
945
app/js/tl/tl.js
282
app/js/ui/img.js
@@ -6,25 +6,25 @@ function imgv(id, key, acct_id) {
|
||||
$('#imgmodal').attr('src', '../../img/loading.svg');
|
||||
var murl = $("#" + id + "-image-" + key).attr("data-url");
|
||||
var type = $("#" + id + "-image-" + key).attr("data-type");
|
||||
$("#imagemodal").attr("data-id",id);
|
||||
$("#imagemodal").attr("data-acct",acct_id);
|
||||
$(document).ready(function() {
|
||||
$("#imagemodal").attr("data-id", id);
|
||||
$("#imagemodal").attr("data-acct", acct_id);
|
||||
$(document).ready(function () {
|
||||
if (type == "image") {
|
||||
$('#imagemodal').modal('open');
|
||||
xhr = new XMLHttpRequest;
|
||||
xhr = new XMLHttpRequest;
|
||||
xhr.open('GET', murl, true);
|
||||
xhr.addEventListener('progress', function (event) {
|
||||
if (event.lengthComputable) {
|
||||
var total=event.total;
|
||||
var now=event.loaded;
|
||||
var per=now/total*100;
|
||||
$("#imgprog").text(Math.floor(per));
|
||||
}
|
||||
if (event.lengthComputable) {
|
||||
var total = event.total;
|
||||
var now = event.loaded;
|
||||
var per = now / total * 100;
|
||||
$("#imgprog").text(Math.floor(per));
|
||||
}
|
||||
}, false);
|
||||
xhr.addEventListener('loadend', function (event) {
|
||||
var total=event.total;
|
||||
var now=event.loaded;
|
||||
var per=now/total*100;
|
||||
var total = event.total;
|
||||
var now = event.loaded;
|
||||
var per = now / total * 100;
|
||||
$("#imgprog").text(Math.floor(per));
|
||||
}, false);
|
||||
xhr.send();
|
||||
@@ -40,36 +40,35 @@ function imgv(id, key, acct_id) {
|
||||
}
|
||||
var element = new Image();
|
||||
var width;
|
||||
element.onload = function() {
|
||||
element.onload = function () {
|
||||
var width = element.naturalWidth;
|
||||
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+60+"px")
|
||||
$("#imagemodal img").css("height","100%")
|
||||
if(width>windowW*0.8){
|
||||
$("#imagemodal").css("width","80vw")
|
||||
$("#imagemodal img").css("width","100%")
|
||||
var heightS=windowW*0.8/width*height;
|
||||
$("#imagemodal").css("height",heightS+60+"px")
|
||||
}else{
|
||||
$("#imagemodal").css("width",width+"px")
|
||||
$("#imagemodal").css("bottom", "0")
|
||||
$("#imagemodal img").css("width", "auto")
|
||||
if (height < windowH) {
|
||||
$("#imagemodal").css("height", height + 60 + "px")
|
||||
$("#imagemodal img").css("height", "100%")
|
||||
if (width > windowW * 0.8) {
|
||||
$("#imagemodal").css("width", "80vw")
|
||||
$("#imagemodal img").css("width", "100%")
|
||||
var heightS = windowW * 0.8 / width * height;
|
||||
$("#imagemodal").css("height", heightS + 60 + "px")
|
||||
} else {
|
||||
$("#imagemodal").css("width", width + "px")
|
||||
}
|
||||
}else{
|
||||
console.log("long")
|
||||
$("#imagemodal img").css("width","auto")
|
||||
var widthS=windowH/height*width;
|
||||
if(widthS<windowW){
|
||||
$("#imagemodal").css("width",widthS+"px")
|
||||
}else{
|
||||
$("#imagemodal").css("width","100vw")
|
||||
} 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)")
|
||||
$("#imagemodal").css("height", "100vh")
|
||||
$("#imagemodal img").css("height", "calc(100vh - 60px)")
|
||||
}
|
||||
|
||||
}
|
||||
@@ -97,101 +96,99 @@ function imgCont(type) {
|
||||
key = key * 1 - 1;
|
||||
}
|
||||
var murl = $("#" + id + "-image-" + key).attr("data-url");
|
||||
if(murl){
|
||||
$('#imgmodal').attr('src', '../../img/loading.svg');
|
||||
var type = $("#" + id + "-image-" + key).attr("data-type");
|
||||
$(document).ready(function() {
|
||||
if (type == "image") {
|
||||
xhr = new XMLHttpRequest;
|
||||
xhr.open('GET', murl, true);
|
||||
xhr.responseType = "arraybuffer";
|
||||
xhr.addEventListener('progress', function (event) {
|
||||
if (event.lengthComputable) {
|
||||
var total=event.total;
|
||||
var now=event.loaded;
|
||||
var per=now/total*100;
|
||||
$("#imgprog").text(Math.floor(per));
|
||||
}
|
||||
}, false);
|
||||
xhr.addEventListener('loadend', function (event) {
|
||||
var total=event.total;
|
||||
var now=event.loaded;
|
||||
var per=now/total*100;
|
||||
$("#imgprog").text(Math.floor(per));
|
||||
}, false);
|
||||
xhr.send();
|
||||
$('#imgmodal').attr('src', murl);
|
||||
$('#imagewrap').dragScroll(); // ドラッグスクロール設定
|
||||
$('#imagemodal').attr('data-key', key);
|
||||
$('#imagemodal').attr('data-id', id);
|
||||
} else if (type == "video" || type == "gifv") {
|
||||
$('#video').attr('src', murl);
|
||||
$('#videomodal').modal('open');
|
||||
}
|
||||
var element = new Image();
|
||||
var width;
|
||||
element.onload = function() {
|
||||
var width = element.naturalWidth;
|
||||
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+60+"px")
|
||||
$("#imagemodal img").css("height","100%")
|
||||
if(width>windowW*0.8){
|
||||
$("#imagemodal").css("width","80vw")
|
||||
$("#imagemodal img").css("width","100%")
|
||||
var heightS=windowW*0.8/width*height;
|
||||
$("#imagemodal").css("height",heightS+60+"px")
|
||||
}else{
|
||||
$("#imagemodal").css("width",width+"px")
|
||||
}
|
||||
}else{
|
||||
console.log("long")
|
||||
$("#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)")
|
||||
if (murl) {
|
||||
$('#imgmodal').attr('src', '../../img/loading.svg');
|
||||
var type = $("#" + id + "-image-" + key).attr("data-type");
|
||||
$(document).ready(function () {
|
||||
if (type == "image") {
|
||||
xhr = new XMLHttpRequest;
|
||||
xhr.open('GET', murl, true);
|
||||
xhr.responseType = "arraybuffer";
|
||||
xhr.addEventListener('progress', function (event) {
|
||||
if (event.lengthComputable) {
|
||||
var total = event.total;
|
||||
var now = event.loaded;
|
||||
var per = now / total * 100;
|
||||
$("#imgprog").text(Math.floor(per));
|
||||
}
|
||||
}, false);
|
||||
xhr.addEventListener('loadend', function (event) {
|
||||
var total = event.total;
|
||||
var now = event.loaded;
|
||||
var per = now / total * 100;
|
||||
$("#imgprog").text(Math.floor(per));
|
||||
}, false);
|
||||
xhr.send();
|
||||
$('#imgmodal').attr('src', murl);
|
||||
$('#imagewrap').dragScroll(); // ドラッグスクロール設定
|
||||
$('#imagemodal').attr('data-key', key);
|
||||
$('#imagemodal').attr('data-id', id);
|
||||
} else if (type == "video" || type == "gifv") {
|
||||
$('#video').attr('src', murl);
|
||||
$('#videomodal').modal('open');
|
||||
}
|
||||
}
|
||||
if ($("#" + id + "-image-" + (key * 1 + 1)).length === 0) {
|
||||
$("#image-next").prop("disabled", true);
|
||||
} else {
|
||||
$("#image-next").prop("disabled", false);
|
||||
}
|
||||
console.log("#" + id + "-image-" + (key * 1 - 1));
|
||||
if ($("#" + id + "-image-" + (key * 1 - 1)).length === 0) {
|
||||
$("#image-prev").prop("disabled", true);
|
||||
} else {
|
||||
$("#image-prev").prop("disabled", false);
|
||||
}
|
||||
element.src = murl;
|
||||
var element = new Image();
|
||||
var width;
|
||||
element.onload = function () {
|
||||
var width = element.naturalWidth;
|
||||
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 + 60 + "px")
|
||||
$("#imagemodal img").css("height", "100%")
|
||||
if (width > windowW * 0.8) {
|
||||
$("#imagemodal").css("width", "80vw")
|
||||
$("#imagemodal img").css("width", "100%")
|
||||
var heightS = windowW * 0.8 / width * height;
|
||||
$("#imagemodal").css("height", heightS + 60 + "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)")
|
||||
}
|
||||
}
|
||||
if ($("#" + id + "-image-" + (key * 1 + 1)).length === 0) {
|
||||
$("#image-next").prop("disabled", true);
|
||||
} else {
|
||||
$("#image-next").prop("disabled", false);
|
||||
}
|
||||
if ($("#" + id + "-image-" + (key * 1 - 1)).length === 0) {
|
||||
$("#image-prev").prop("disabled", true);
|
||||
} else {
|
||||
$("#image-prev").prop("disabled", false);
|
||||
}
|
||||
element.src = murl;
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
//ズームボタン(z:倍率)
|
||||
function zoom(z) {
|
||||
var wdth = $('#imagewrap img').width();
|
||||
var wdth = wdth * z;
|
||||
$('#imagewrap img').css("width", wdth+"px");
|
||||
$('#imagewrap img').css("width", wdth + "px");
|
||||
var hgt = $('#imagewrap img').height();
|
||||
var hgt = hgt * z;
|
||||
$('#imagewrap img').css("height", hgt+"px");
|
||||
$('#imagewrap img').css("height", hgt + "px");
|
||||
}
|
||||
//スマホ対応ドラッグ移動システム
|
||||
(function() {
|
||||
$.fn.dragScroll = function() {
|
||||
(function () {
|
||||
$.fn.dragScroll = function () {
|
||||
var target = this;
|
||||
$(this).mousedown(function(event) {
|
||||
$(this).mousedown(function (event) {
|
||||
$(this)
|
||||
.data('down', true)
|
||||
.data('x', event.clientX)
|
||||
@@ -204,7 +201,7 @@ function zoom(z) {
|
||||
'cursor': 'move'
|
||||
});
|
||||
// ウィンドウから外れてもイベント実行
|
||||
$(document).mousemove(function(event) {
|
||||
$(document).mousemove(function (event) {
|
||||
if ($(target).data('down') == true) {
|
||||
// スクロール
|
||||
target.scrollLeft($(target).data('scrollLeft') + $(target).data('x') -
|
||||
@@ -213,10 +210,10 @@ function zoom(z) {
|
||||
event.clientY);
|
||||
return false; // 文字列選択を抑止
|
||||
}
|
||||
}).mouseup(function(event) {
|
||||
}).mouseup(function (event) {
|
||||
$(target).data('down', false);
|
||||
});
|
||||
$(this).on('touchstart', function(event) {
|
||||
$(this).on('touchstart', function (event) {
|
||||
$(this)
|
||||
.data('down', true)
|
||||
.data('x', getX(event))
|
||||
@@ -228,18 +225,17 @@ function zoom(z) {
|
||||
'overflow': 'hidden', // スクロールバー非表示
|
||||
'cursor': 'move'
|
||||
}); //指が触れたか検知
|
||||
$(this).on('touchmove', function(event) {
|
||||
$(this).on('touchmove', function (event) {
|
||||
if ($(target).data('down') === true) {
|
||||
// スクロール
|
||||
console.log($(target).data('x'));
|
||||
target.scrollLeft($(target).data('scrollLeft') + $(target).data('x') -
|
||||
getX(event));
|
||||
target.scrollTop($(target).data('scrollTop') + $(target).data('y') -
|
||||
getY(event));
|
||||
return false; // 文字列選択を抑止
|
||||
} else {}
|
||||
} else { }
|
||||
}); //指が動いたか検知
|
||||
$(this).on('touchend', function(event) {
|
||||
$(this).on('touchend', function (event) {
|
||||
$(target).data('down', false);
|
||||
});
|
||||
|
||||
@@ -256,7 +252,7 @@ function getY(event) {
|
||||
}
|
||||
//マウスホイールで拡大
|
||||
var element = document.getElementById("imagemodal");
|
||||
element.onmousewheel = function(e) {
|
||||
element.onmousewheel = function (e) {
|
||||
var delta = e.wheelDelta;
|
||||
if (delta > 0) {
|
||||
zoom(1.1)
|
||||
@@ -266,27 +262,23 @@ element.onmousewheel = function(e) {
|
||||
}
|
||||
|
||||
//当該トゥート
|
||||
function detFromImg(){
|
||||
var id=$("#imagemodal").attr("data-id");
|
||||
var acct_id=$("#imagemodal").attr("data-acct");
|
||||
function detFromImg() {
|
||||
var id = $("#imagemodal").attr("data-id");
|
||||
var acct_id = $("#imagemodal").attr("data-acct");
|
||||
$('#imagemodal').modal('close');
|
||||
details(id,acct_id);
|
||||
details(id, acct_id);
|
||||
}
|
||||
//画像保存
|
||||
function dlImg(){
|
||||
var url=$("#imgmodal").attr("src");
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
if(localStorage.getItem("savefolder")){
|
||||
var save=localStorage.getItem("savefolder");
|
||||
}else{
|
||||
var save="";
|
||||
function dlImg() {
|
||||
var url = $("#imgmodal").attr("src");
|
||||
if (localStorage.getItem("savefolder")) {
|
||||
var save = localStorage.getItem("savefolder");
|
||||
} else {
|
||||
var save = "";
|
||||
}
|
||||
ipc.send('general-dl', [url,save,false]);
|
||||
ipc.on('general-dl-prog', function (event, arg) {
|
||||
console.log(arg);
|
||||
})
|
||||
ipc.on('general-dl-message', function (event, arg) {
|
||||
console.log(arg);
|
||||
})
|
||||
postMessage(["generalDL", [url, save, false]], "*")
|
||||
|
||||
}
|
||||
function openFinder(dir) {
|
||||
postMessage(["openFinder", dir], "*")
|
||||
}
|
||||
@@ -11,49 +11,60 @@ function addColumnMenu() {
|
||||
$("#left-menu div").removeClass("active");
|
||||
$("#addColumnMenu").addClass("active");
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#add-box").removeClass("hide");
|
||||
$("#add-box").removeClass("hide");
|
||||
addselCk()
|
||||
}
|
||||
$('.type').click(function() {
|
||||
$('.type').click(function () {
|
||||
$(".type").removeClass("active");
|
||||
$(this).addClass("active");
|
||||
$("#type-sel").val($(this).attr("data-type"))
|
||||
})
|
||||
//最初、カラム変更時に発火
|
||||
function parseColumn() {
|
||||
console.log("parse");
|
||||
function parseColumn(target, dontclose) {
|
||||
if (target === 0) {
|
||||
//this is kuso
|
||||
target = "zero"
|
||||
}
|
||||
console.log("%c Parse column", "color:red;font-size:125%");
|
||||
var size = localStorage.getItem("size");
|
||||
if (size) {
|
||||
$("#timeline-container").css("font-size", size + "px");
|
||||
$(".toot-reset").css("font-size", size + "px");
|
||||
$(".cont-series").css("font-size", size + "px");
|
||||
}
|
||||
tlCloser();
|
||||
if (localStorage.getItem("menu-done")) {
|
||||
$("#fukidashi").addClass("hide")
|
||||
}
|
||||
if (!dontclose && !target) {
|
||||
tlCloser();
|
||||
}
|
||||
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (!multi) {
|
||||
var obj = [];
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
} else {
|
||||
if (multi) {
|
||||
var obj = JSON.parse(multi);
|
||||
|
||||
var templete;
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var acct = obj[key];
|
||||
localStorage.setItem("name_" + key, acct.name);
|
||||
localStorage.setItem("user_" + key, acct.user);
|
||||
localStorage.setItem("user-id_" + key, acct.id);
|
||||
localStorage.setItem("prof_" + key, acct.prof);
|
||||
localStorage.setItem("domain_" + key, acct.domain);
|
||||
localStorage.setItem("acct_"+ key + "_at", acct.at);
|
||||
localStorage.setItem("acct_" + key + "_at", acct.at);
|
||||
notf(key, 0);
|
||||
ckdb(key);
|
||||
//フィルターデータ読もう
|
||||
getFilter(key);
|
||||
var domain = localStorage.getItem("domain_" + key);
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
localStorage.removeItem("misskey_wss_" + key)
|
||||
connectMisskey(key, false)
|
||||
}
|
||||
});
|
||||
}
|
||||
var acctlist=obj;
|
||||
console.log(obj);
|
||||
var acctlist = obj;
|
||||
console.table(obj);
|
||||
/*var xed=localStorage.getItem("xed");
|
||||
if(xed){
|
||||
xpand();
|
||||
@@ -69,194 +80,260 @@ function parseColumn() {
|
||||
} else {
|
||||
var obj = JSON.parse(col);
|
||||
}
|
||||
if ($("#timeline-container").length) {
|
||||
$("#timeline-container").html("");
|
||||
var numtarget = false
|
||||
if (target == "add") {
|
||||
var tlidtar = obj.length - 1
|
||||
obj = [obj[tlidtar]]
|
||||
} else if (target) {
|
||||
var tlidtar = target
|
||||
if (target == "zero") {
|
||||
target = 0
|
||||
}
|
||||
obj = [obj[target]]
|
||||
numtarget = true
|
||||
} else {
|
||||
var tlidtar = null
|
||||
if ($("#timeline-container").length) {
|
||||
$("#timeline-container").html("");
|
||||
}
|
||||
}
|
||||
var basekey=0;
|
||||
for(var key=0;key<obj.length;key++){
|
||||
var next=key+1;
|
||||
var basekey = 0;
|
||||
for (var key = 0; key < obj.length; key++) {
|
||||
var next = key + 1;
|
||||
//acctって言いながらタイムライン
|
||||
var acct = obj[key];
|
||||
if(acct.type=="notf"){
|
||||
var notf_attr=' data-notf='+acct.domain;
|
||||
var if_notf="hide";
|
||||
}else{
|
||||
var notf_attr='';
|
||||
var if_notf="";
|
||||
}
|
||||
if(localStorage.getItem("notification_" + acct.domain)){
|
||||
var unique_notf=lang.lang_layout_thisacct.replace("{{notf}}" ,localStorage.getItem("notification_" + acct.domain));
|
||||
}else{
|
||||
if(lang.language=="ja"){
|
||||
var notflocale="通知";
|
||||
}else if(lang.language=="en"){
|
||||
var notflocale="Notification";
|
||||
if (tlidtar) {
|
||||
if (tlidtar == "zero") {
|
||||
key = 0
|
||||
} else {
|
||||
key = tlidtar
|
||||
}
|
||||
var unique_notf=lang.lang_layout_thisacct.replace("{{notf}}" ,notflocale);
|
||||
}
|
||||
var insert="";
|
||||
var icnsert="";
|
||||
if(acct.background){
|
||||
if(acct.text=="def"){
|
||||
|
||||
}else{
|
||||
if(acct.text=="black"){
|
||||
var txhex="000000";
|
||||
var ichex="9e9e9e"
|
||||
}else if(acct.text=="white"){
|
||||
var txhex="ffffff";
|
||||
var ichex="eeeeee"
|
||||
}
|
||||
if (acct.type == "notf") {
|
||||
var notf_attr = ' data-notf=' + acct.domain;
|
||||
var if_notf = "hide";
|
||||
} else {
|
||||
var notf_attr = '';
|
||||
var if_notf = "";
|
||||
}
|
||||
if (localStorage.getItem("notification_" + acct.domain)) {
|
||||
var unique_notf = lang.lang_layout_thisacct.replace("{{notf}}", localStorage.getItem("notification_" + acct.domain));
|
||||
} else {
|
||||
if (lang.language == "ja") {
|
||||
var notflocale = "通知";
|
||||
} else if (lang.language == "en") {
|
||||
var notflocale = "Notification";
|
||||
}
|
||||
insert='background-color:#'+acct.background+'; color: #'+txhex+'; ';
|
||||
icnsert=' style="color: #'+ichex+'" ';
|
||||
var unique_notf = lang.lang_layout_thisacct.replace("{{notf}}", notflocale);
|
||||
}
|
||||
var insert = "";
|
||||
var icnsert = "";
|
||||
if (acct.background) {
|
||||
if (acct.text == "def") {
|
||||
|
||||
} else {
|
||||
if (acct.text == "black") {
|
||||
var txhex = "000000";
|
||||
var ichex = "9e9e9e"
|
||||
} else if (acct.text == "white") {
|
||||
var txhex = "ffffff";
|
||||
var ichex = "eeeeee"
|
||||
}
|
||||
insert = 'background-color:#' + acct.background + '; color: #' + txhex + '; ';
|
||||
icnsert = ' style="color: #' + ichex + '" ';
|
||||
}
|
||||
}
|
||||
console.log(acct);
|
||||
if(acctlist[acct.domain]){
|
||||
if(acctlist[acct.domain].background!="def"){
|
||||
insert=insert+" border-bottom:medium solid #"+acctlist[acct.domain].background+";";
|
||||
if (acctlist[acct.domain]) {
|
||||
if (acctlist[acct.domain].background != "def") {
|
||||
insert = insert + " border-bottom:medium solid #" + acctlist[acct.domain].background + ";";
|
||||
}
|
||||
}
|
||||
if(acct.type=="notf" && localStorage.getItem("setasread")=="no"){
|
||||
localStorage.setItem("hasNotfC_" + acct.domain,"true");
|
||||
}else{
|
||||
if (acct.type == "notf" && localStorage.getItem("setasread") == "no") {
|
||||
localStorage.setItem("hasNotfC_" + acct.domain, "true");
|
||||
} else {
|
||||
localStorage.removeItem("hasNotfC_" + acct.domain);
|
||||
}
|
||||
if(acct.type=="webview"){
|
||||
if(localStorage.getItem("fixwidth")){
|
||||
var fixwidth=localStorage.getItem("fixwidth");
|
||||
var css=" min-width:"+fixwidth+"px;"
|
||||
}else{
|
||||
var css="";
|
||||
if (acct.type == "webview") {
|
||||
if (localStorage.getItem("fixwidth")) {
|
||||
var fixwidth = localStorage.getItem("fixwidth");
|
||||
var css = " min-width:" + fixwidth + "px;"
|
||||
} else {
|
||||
var css = "";
|
||||
}
|
||||
var html =webviewParse("https://tweetdeck.twitter.com",key,insert,icnsert,css);
|
||||
var html = webviewParse("https://tweetdeck.twitter.com", key, insert, icnsert, css);
|
||||
$("#timeline-container").append(html);
|
||||
}else{
|
||||
} else if (acct.type == "tootsearch") {
|
||||
if (!acct.left_fold) {
|
||||
basekey = key;
|
||||
}
|
||||
var width = localStorage.getItem("width");
|
||||
if (width) {
|
||||
var css=" min-width:"+width+"px;"
|
||||
}
|
||||
var anime = localStorage.getItem("animation");
|
||||
if (anime=="yes" || !anime) {
|
||||
var animecss="box-anime";
|
||||
}else{
|
||||
var animecss="";
|
||||
}
|
||||
if(acct.type=="notf"){
|
||||
var exclude=lang.lang_excluded+':<br><input type="checkbox" class="filled-in" id="exc-reply-'+key+'" '+excludeCk(key,"mention")+' /><label for="exc-reply-'+key+'" class="exc-chb"><i class="fa fa-share exc-icons"></i></label> '+
|
||||
'<input type="checkbox" class="filled-in" id="exc-fav-'+key+'" '+excludeCk(key,"favourite")+' /><label for="exc-fav-'+key+'" class="exc-chb"><i class="fa fa-star exc-icons"></i></label> '+
|
||||
'<input type="checkbox" class="filled-in" id="exc-bt-'+key+'" '+excludeCk(key,"reblog")+' /><label for="exc-bt-'+key+'" class="exc-chb" ><i class="fa fa-retweet exc-icons"></i></label> '+
|
||||
'<input type="checkbox" class="filled-in" id="exc-follow-'+key+'" '+excludeCk(key,"follow")+' /><label for="exc-follow-'+key+'" class="exc-chb" ><i class="fa fa-users exc-icons"></i></label> '+
|
||||
'<button class="btn waves-effect" style="width:60px; padding:0;" onclick="exclude('+key+')">Filter</button><br>';
|
||||
}else if(acct.type=="home"){
|
||||
var exclude='<a onclick="ebtToggle(' + key +
|
||||
')" class="setting nex"><i class="fa fa-retweet waves-effect nex" title="'+lang.lang_layout_excludingbt +'" style="font-size:24px"></i><span id="sta-bt-' +
|
||||
key + '">Off</span></a>'+lang.lang_layout_excludingbt+'<br>';
|
||||
}else{
|
||||
var exclude="";
|
||||
}
|
||||
if(!acct.left_fold){
|
||||
basekey=key;
|
||||
var basehtml = '<div style="'+css+'" class="box '+animecss+'" id="timeline_box_' + basekey + '_parentBox"></div>';
|
||||
$("#timeline-container").append(basehtml);
|
||||
var left_hold='<a onclick="leftFoldSet(' + key +')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_layout_leftFold+'">view_agenda</i></a>'+lang.lang_layout_leftFold+'</span><br>';
|
||||
}else{
|
||||
var left_hold='<a onclick="leftFoldRemove(' + key +')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_layout_leftUnfold+'">view_column</i></a>'+lang.lang_layout_leftUnfold+'</span><br>';
|
||||
if (width) {
|
||||
var css = " min-width:" + width + "px;"
|
||||
}
|
||||
if(key===0){
|
||||
left_hold='';
|
||||
var anime = localStorage.getItem("animation");
|
||||
if (anime == "yes" || !anime) {
|
||||
var animecss = "box-anime";
|
||||
} else {
|
||||
var animecss = "";
|
||||
}
|
||||
var html='<div class="boxIn" id="timeline_box_' + key + '_box" tlid="' + key +
|
||||
'" data-acct="'+acct.domain+'"><div class="notice-box z-depth-2" id="menu_'+key+'" style="'+insert+' ">'+
|
||||
'<div class="area-notice"><i class="material-icons waves-effect red-text" id="notice_icon_' + key + '"'+notf_attr+' style="font-size:40px; padding-top:25%;" onclick="goTop(' + key + ')" title="'+lang.lang_layout_gotop +'"></i></div>'+
|
||||
'<div class="area-notice_name"><span id="notice_' + key + '" class="tl-title"></span></div>'+
|
||||
'<div class="area-a1"><a onclick="notfToggle(' + acct.domain + ',' + key +
|
||||
')" class="setting nex '+if_notf+'" title="'+unique_notf+'"'+icnsert+'><i class="material-icons waves-effect nex notf-icon_' +
|
||||
acct.domain + '">notifications</i></div><div class="area-sta"><span class="new badge teal notf-reply_'+acct.domain+' hide" data-badge-caption="Reply">0</span><span class="new badge yellow black-text notf-fav_'+acct.domain+' hide" data-badge-caption="Fav">0</span><span class="new badge blue notf-bt_'+acct.domain+' hide" data-badge-caption="BT">0</span><span class="new badge orange notf-follow_'+acct.domain+' hide" data-badge-caption="Follow">0</span></a></div>'+
|
||||
'<div class="area-a2"><a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_layout_delthis +'"'+icnsert+'>cancel</i></a></div>'+
|
||||
'<div class="area-a3"><a onclick="setToggle(' + key +
|
||||
')" class="setting nex" title="'+lang.lang_layout_setthis +'"'+icnsert+'><i class="material-icons waves-effect nex">settings</i></a></div></div>'+
|
||||
'<div class="column-hide notf-indv-box z-depth-4" id="notf-box_' + key +
|
||||
'"><div id="notifications_' + key +
|
||||
'" data-notf="' + acct.domain + '" data-type="notf"></div></div><div class="column-hide notf-indv-box" id="util-box_' + key +
|
||||
'" style="padding:5px;">'+exclude+left_hold+'<a onclick="mediaToggle(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_layout_mediafil +'">perm_media</i><span id="sta-media-' +
|
||||
key + '">On</span></a>'+lang.lang_layout_mediafil +'<br><a onclick="cardToggle(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_layout_linkanades +'">link</i><span id="sta-card-' +
|
||||
key + '">On</span></a>'+lang.lang_layout_linkana +'<br><a onclick="voiceToggle(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_layout_tts +'">hearing</i><span id="sta-voice-' +
|
||||
key + '">On</span></a>'+lang.lang_layout_tts +'TL<br><a onclick="reconnector(' + key +
|
||||
',\''+acct.type+'\',\''+acct.domain+'\',\''+acct.data+'\')" class="setting nex '+if_notf+'"><i class="material-icons waves-effect nex '+if_notf+'" title="'+lang.lang_layout_reconnect+'">low_priority</i></a><span class="'+if_notf+'">'+lang.lang_layout_reconnect+'</span><br>'+lang.lang_layout_headercolor +'<br><div id="picker_'+key+'" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key +
|
||||
'" class="tl '+acct.type+'-timeline " tlid="' + key + '" data-type="' + acct.type + '" data-acct="'+acct.domain+'"><div id="landing_'+key+'" style="text-align:center">'+lang.lang_layout_nodata +'</div></div></div>'
|
||||
$('#timeline_box_' + basekey + '_parentBox').append(html);
|
||||
localStorage.removeItem("pool_" + key);
|
||||
if (acct.data) {
|
||||
var data = acct.data;
|
||||
unstreamingTL(acct.type, key, basekey, insert, icnsert, acct.left_fold, css, animecss, acct.data);
|
||||
} else {
|
||||
var data = "";
|
||||
}
|
||||
if(localStorage.getItem("catch_" + key)){
|
||||
var delc="true";
|
||||
}else{
|
||||
var delc="false";
|
||||
}
|
||||
var width = localStorage.getItem("width");
|
||||
if (width) {
|
||||
var css = " min-width:" + width + "px;"
|
||||
}
|
||||
var anime = localStorage.getItem("animation");
|
||||
if (anime == "yes" || !anime) {
|
||||
var animecss = "box-anime";
|
||||
} else {
|
||||
var animecss = "";
|
||||
}
|
||||
if (acct.type == "notf") {
|
||||
var exclude = lang.lang_excluded + ':<br><label><input type="checkbox" class="filled-in" id="exc-reply-' + key + '" ' + excludeCk(key, "mention") + ' /><span><i class="fas fa-share exc-icons"></i></span></label> ' +
|
||||
'<label><input type="checkbox" class="filled-in" id="exc-fav-' + key + '" ' + excludeCk(key, "favourite") + ' /><span><i class="fas fa-star exc-icons"></i></span></label> ' +
|
||||
'<label><input type="checkbox" class="filled-in" id="exc-bt-' + key + '" ' + excludeCk(key, "reblog") + ' /><span><i class="fas fa-retweet exc-icons"></i></span></label> ' +
|
||||
'<label><input type="checkbox" class="filled-in" id="exc-follow-' + key + '" ' + excludeCk(key, "follow") + ' /><span><i class="fas fa-users exc-icons"></i></span></label> ' +
|
||||
'<label><input type="checkbox" class="filled-in" id="exc-poll-' + key + '" ' + excludeCk(key, "poll") + ' /><span><i class="fas fa-tasks exc-icons"></i></span></label> ' +
|
||||
'<button class="btn waves-effect" style="width:60px; padding:0;" onclick="exclude(' + key + ')">Filter</button>';
|
||||
if (checkNotfFilter(key)) {
|
||||
exclude = exclude + '<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter(' + key + ')">Clear all</button>'
|
||||
}
|
||||
exclude = exclude + "<br>";
|
||||
} else if (acct.type == "home") {
|
||||
var exclude = '<a onclick="ebtToggle(' + key +
|
||||
')" class="setting nex"><i class="fas fa-retweet waves-effect nex" title="' + lang.lang_layout_excludingbt + '" style="font-size:24px"></i><span id="sta-bt-' +
|
||||
key + '">Off</span></a>' + lang.lang_layout_excludingbt + '<br>';
|
||||
} else {
|
||||
var exclude = "";
|
||||
}
|
||||
if (!acct.left_fold) {
|
||||
basekey = key;
|
||||
if (!numtarget) {
|
||||
var basehtml = '<div style="' + css + '" class="box ' + animecss + '" id="timeline_box_' + basekey + '_parentBox"></div>';
|
||||
$("#timeline-container").append(basehtml);
|
||||
}
|
||||
var left_hold = '<a onclick="leftFoldSet(' + key + ')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_leftFold + '">view_agenda</i></a>' + lang.lang_layout_leftFold + '</span><br>';
|
||||
} else {
|
||||
var left_hold = '<a onclick="leftFoldRemove(' + key + ')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_leftUnfold + '">view_column</i></a>' + lang.lang_layout_leftUnfold + '</span><br>';
|
||||
}
|
||||
if (key === 0) {
|
||||
left_hold = '';
|
||||
}
|
||||
if (localStorage.getItem("mode_" + localStorage.getItem("domain_" + acct.domain)) == "misskey") {
|
||||
var isMisRed = ""
|
||||
exclude = ""
|
||||
var if_misskey_hide = "hide"
|
||||
} else {
|
||||
var isMisRed = "red-text"
|
||||
var if_misskey_hide = ""
|
||||
}
|
||||
var html = '<div class="boxIn" id="timeline_box_' + key + '_box" tlid="' + key +
|
||||
'" data-acct="' + acct.domain + '"><div class="notice-box z-depth-2" id="menu_' + key + '" style="' + insert + ' ">' +
|
||||
'<div class="area-notice"><i class="material-icons waves-effect ' + isMisRed + '" id="notice_icon_' + key + '"' + notf_attr + ' style="font-size:40px; padding-top:25%;" onclick="checkStr(\'' + acct.type + '\', \'' + data + '\', \'' + acct.domain + '\', \'' + key + '\', \'' + delc + '\',\'' + voice + '\',null)" title="' + lang.lang_layout_gotop + '"></i></div>' +
|
||||
'<div class="area-notice_name"><span id="notice_' + key + '" class="tl-title"></span></div>' +
|
||||
'<div class="area-a1"><a onclick="notfToggle(' + acct.domain + ',' + key +
|
||||
')" class="setting nex ' + if_notf + '" title="' + unique_notf + '"' + icnsert + '><i class="material-icons waves-effect nex notf-icon_' +
|
||||
acct.domain + '">notifications</i></div><div class="area-sta"><span class="new badge teal notf-reply_' + acct.domain + ' hide" data-badge-caption="Reply">0</span><span class="new badge yellow black-text notf-fav_' + acct.domain + ' hide" data-badge-caption="Fav">0</span><span class="new badge blue notf-bt_' + acct.domain + ' hide" data-badge-caption="BT">0</span><span class="new badge orange notf-follow_' + acct.domain + ' hide" data-badge-caption="Follow">0</span></a></div>' +
|
||||
'<div class="area-a2"><a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_delthis + '"' + icnsert + '>cancel</i></a></div>' +
|
||||
'<div class="area-a3"><a onclick="setToggle(' + key +
|
||||
')" class="setting nex" title="' + lang.lang_layout_setthis + '"' + icnsert + '><i class="material-icons waves-effect nex">settings</i></a></div></div>' +
|
||||
'<div class="column-hide notf-indv-box z-depth-4" id="notf-box_' + key +
|
||||
'"><div id="notifications_' + key +
|
||||
'" data-notf="' + acct.domain + '" data-type="notf" class="notf-timeline"></div></div><div class="column-hide notf-indv-box" id="util-box_' + key +
|
||||
'" style="padding:5px;">' + exclude + left_hold + '<a onclick="mediaToggle(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_mediafil + '">perm_media</i><span id="sta-media-' +
|
||||
key + '">On</span></a>' + lang.lang_layout_mediafil + '<br><a onclick="cardToggle(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_linkanades + '">link</i><span id="sta-card-' +
|
||||
key + '">On</span></a>' + lang.lang_layout_linkana + '<br><a onclick="voiceToggle(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_tts + '">hearing</i><span id="sta-voice-' +
|
||||
key + ',\'' + acct.type + '\'">On</span></a>' + lang.lang_layout_tts + 'TL<br><a onclick="columnReload(' + key +
|
||||
')" class="setting nex ' + if_notf + ' ' + if_misskey_hide + '"><i class="material-icons waves-effect nex ' + if_notf + '" title="' + lang.lang_layout_reconnect + '">refresh</i></a><span class="' + if_notf + '">' + lang.lang_layout_reconnect + '</span><br>' + lang.lang_layout_headercolor + '<br><div id="picker_' + key + '" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key +
|
||||
'" class="tl ' + acct.type + '-timeline " tlid="' + key + '" data-type="' + acct.type + '" data-acct="' + acct.domain + '" data-const="' + acct.type + '_' + acct.domain + '"><div id="landing_' + key + '" style="text-align:center">' + lang.lang_layout_nodata + '</div></div></div>'
|
||||
if (numtarget) {
|
||||
$('timeline_box_' + key + '_box').html(html)
|
||||
} else {
|
||||
$('#timeline_box_' + basekey + '_parentBox').append(html)
|
||||
}
|
||||
localStorage.removeItem("pool_" + key);
|
||||
if (acct.data) {
|
||||
var data = acct.data;
|
||||
} else {
|
||||
var data = "";
|
||||
}
|
||||
if (localStorage.getItem("catch_" + key)) {
|
||||
var delc = "true";
|
||||
} else {
|
||||
var delc = "false";
|
||||
}
|
||||
|
||||
if(localStorage.getItem("voice_" + key)){
|
||||
var voice=true;
|
||||
}else{
|
||||
var voice=false;
|
||||
}
|
||||
tl(acct.type, data, acct.domain, key, delc,voice,"");
|
||||
cardCheck(key);
|
||||
ebtCheck(key);
|
||||
mediaCheck(key);
|
||||
catchCheck(key);
|
||||
voiceCheck(key);
|
||||
if (localStorage.getItem("voice_" + key)) {
|
||||
var voice = true;
|
||||
} else {
|
||||
var voice = false;
|
||||
}
|
||||
tl(acct.type, data, acct.domain, key, delc, voice, "");
|
||||
cardCheck(key);
|
||||
ebtCheck(key);
|
||||
mediaCheck(key);
|
||||
catchCheck(key);
|
||||
voiceCheck(key);
|
||||
}
|
||||
}
|
||||
var box = localStorage.getItem("box");
|
||||
if (box == "absolute") {
|
||||
setTimeout(show, 1000);
|
||||
}
|
||||
if(localStorage.getItem("reverse")){
|
||||
if (localStorage.getItem("reverse")) {
|
||||
$("#bottom").removeClass("reverse");
|
||||
$(".leftside").removeClass("reverse");
|
||||
}
|
||||
if(localStorage.getItem("sec") && localStorage.getItem("sec")!="nothing"){
|
||||
$("#bottom").removeClass("hide");
|
||||
if (localStorage.getItem("sec") && localStorage.getItem("sec") != "nothing") {
|
||||
secvis(localStorage.getItem("sec"));
|
||||
}
|
||||
favTag();
|
||||
var cw = localStorage.getItem("always-cw");
|
||||
if (cw == "yes") {
|
||||
if(!$("#cw").hasClass("cw-avail")){
|
||||
if (!$("#cw").hasClass("cw-avail")) {
|
||||
$("#cw-text").show();
|
||||
$("#cw").addClass("yellow-text");
|
||||
$("#cw").addClass("cw-avail");
|
||||
var cwt=localStorage.getItem("cw-text");
|
||||
if(cwt){
|
||||
var cwt = localStorage.getItem("cw-text");
|
||||
if (cwt) {
|
||||
$("#cw-text").val(cwt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function checkStr(type, data, acct_id, key, delc, voice) {
|
||||
if ($('#notice_icon_' + key).hasClass("red-text") && type != "notf" && type != "mix") {
|
||||
goTop(key);
|
||||
tlDiff(type, data, acct_id, key, delc, voice, "");
|
||||
} else {
|
||||
goTop(key);
|
||||
}
|
||||
}
|
||||
//セカンダリートゥートボタン
|
||||
function secvis(set){
|
||||
if(set=="public"){
|
||||
function secvis(set) {
|
||||
if (set == "public") {
|
||||
$("#toot-sec-icon").text("public");
|
||||
$("#toot-sec-btn").addClass("purple");
|
||||
}else if(set=="unlisted"){
|
||||
} else if (set == "unlisted") {
|
||||
$("#toot-sec-icon").text("lock_open");
|
||||
$("#toot-sec-btn").addClass("blue");
|
||||
}else if(set=="private"){
|
||||
} else if (set == "private") {
|
||||
$("#toot-sec-icon").text("lock");
|
||||
$("#toot-sec-btn").addClass("orange");
|
||||
}else if(set=="direct"){
|
||||
} else if (set == "direct") {
|
||||
$("#toot-sec-icon").text("mail");
|
||||
$("#toot-sec-btn").addClass("red");
|
||||
}else if(set=="limited"){
|
||||
} else if (set == "limited") {
|
||||
$("#toot-sec-icon").text("group");
|
||||
$("#toot-sec-btn").addClass("teal");
|
||||
}else if(set=="local"){
|
||||
} else if (set == "local") {
|
||||
$("#toot-sec-icon").text("visibility");
|
||||
$("#toot-sec-btn").addClass("light-blue");
|
||||
}
|
||||
@@ -265,14 +342,16 @@ function secvis(set){
|
||||
//カラム追加
|
||||
function addColumn() {
|
||||
var acct = $("#add-acct-sel").val();
|
||||
localStorage.setItem("last-use", acct);
|
||||
if (acct != "webview" && acct != "noauth") {
|
||||
localStorage.setItem("last-use", acct);
|
||||
}
|
||||
var type = $("#type-sel").val();
|
||||
if(acct=="noauth"){
|
||||
acct=$("#noauth-url").val();
|
||||
type="noauth"
|
||||
}else if(acct=="webview"){
|
||||
acct="";
|
||||
type="webview"
|
||||
if (acct == "noauth") {
|
||||
acct = $("#noauth-url").val();
|
||||
type = "noauth"
|
||||
} else if (acct == "webview") {
|
||||
acct = "";
|
||||
type = "webview"
|
||||
}
|
||||
var add = {
|
||||
domain: acct,
|
||||
@@ -280,38 +359,38 @@ function addColumn() {
|
||||
};
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
if(!obj){
|
||||
var leng=0;
|
||||
if (!obj) {
|
||||
var leng = 0;
|
||||
var json = JSON.stringify([add]);
|
||||
localStorage.setItem("column", json);
|
||||
}else{
|
||||
var leng=obj.length;
|
||||
} else {
|
||||
var leng = obj.length;
|
||||
obj.push(add);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
}
|
||||
|
||||
parseColumn();
|
||||
parseColumn('add');
|
||||
}
|
||||
function addselCk(){
|
||||
function addselCk() {
|
||||
var acct = $("#add-acct-sel").val();
|
||||
var domain=localStorage.getItem("domain_" + acct);
|
||||
if(acct=="webview"){
|
||||
var domain = localStorage.getItem("domain_" + acct);
|
||||
if (acct == "webview") {
|
||||
$("#auth").addClass("hide");
|
||||
$("#noauth").addClass("hide");
|
||||
$("#webview-add").removeClass("hide");
|
||||
}else if(acct=="noauth"){
|
||||
} else if (acct == "noauth") {
|
||||
$("#auth").addClass("hide");
|
||||
$("#noauth").removeClass("hide");
|
||||
$("#webview-add").addClass("hide");
|
||||
}else{
|
||||
} else {
|
||||
$("#auth").removeClass("hide");
|
||||
$("#noauth").addClass("hide");
|
||||
$("#webview-add").addClass("hide");
|
||||
}
|
||||
if(domain=="knzk.me" || domain=="mstdn.y-zu.org"){
|
||||
$("#type-sel").append('<option value="dm" data-trans="dm" id="direct-add">'+lang.layout_dm +'</option>');
|
||||
}else{
|
||||
if (domain == "knzk.me" || domain == "mstdn.y-zu.org") {
|
||||
$("#type-sel").append('<option value="dm" data-trans="dm" id="direct-add">' + lang.layout_dm + '</option>');
|
||||
} else {
|
||||
$("#direct-add").remove();
|
||||
}
|
||||
}
|
||||
@@ -319,137 +398,168 @@ function addselCk(){
|
||||
function removeColumn(tlid) {
|
||||
$("#sort-box").addClass("hide");
|
||||
$("#sort-box").removeClass("show");
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
//聞く
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('column-del', "");
|
||||
ipc.on('column-del-reply', function (event, arg) {
|
||||
console.log(arg);
|
||||
if(arg===1){
|
||||
localStorage.removeItem("card_" + tlid);
|
||||
Swal.fire({
|
||||
title: lang.lang_layout_deleteColumn,
|
||||
text: lang.lang_layout_deleteColumnDesc,
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: lang.lang_yesno,
|
||||
cancelButtonText: lang.lang_no
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
obj.splice(tlid, 1);
|
||||
for(var i=0;i<obj.length;i++){
|
||||
localStorage.setItem("card_" + i,"true");
|
||||
localStorage.removeItem("catch_" + i);
|
||||
}
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
parseColumn();
|
||||
sortload()
|
||||
sortLoad()
|
||||
$("#timeline_box_" + tlid + "_parentBox").remove()
|
||||
}
|
||||
})
|
||||
$("#sort-box").removeClass("hide");
|
||||
$("#sort-box").addClass("show");
|
||||
});
|
||||
}
|
||||
|
||||
//設定トグル
|
||||
function setToggle(tlid) {
|
||||
colorpicker(tlid);
|
||||
if($("#util-box_" + tlid).hasClass("column-hide")){
|
||||
$("#util-box_" + tlid).css("display","block")
|
||||
if ($("#util-box_" + tlid).hasClass("column-hide")) {
|
||||
$("#util-box_" + tlid).css("display", "block")
|
||||
$("#util-box_" + tlid).animate({
|
||||
'height': '200px'
|
||||
},{
|
||||
'duration': 300,
|
||||
'complete': function(){
|
||||
$("#util-box_" + tlid).css("overflow-y","scroll")
|
||||
$("#util-box_" + tlid).removeClass("column-hide")
|
||||
}
|
||||
});
|
||||
}else{
|
||||
$("#util-box_" + tlid).css("overflow-y","hidden")
|
||||
}, {
|
||||
'duration': 300,
|
||||
'complete': function () {
|
||||
$("#util-box_" + tlid).css("overflow-y", "scroll")
|
||||
$("#util-box_" + tlid).removeClass("column-hide")
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#util-box_" + tlid).css("overflow-y", "hidden")
|
||||
$("#util-box_" + tlid).animate({
|
||||
'height': '0'
|
||||
},{
|
||||
'duration': 300,
|
||||
'complete': function(){
|
||||
$("#util-box_" + tlid).addClass("column-hide")
|
||||
$("#util-box_" + tlid).css("display","none")
|
||||
}
|
||||
});
|
||||
}, {
|
||||
'duration': 300,
|
||||
'complete': function () {
|
||||
$("#util-box_" + tlid).addClass("column-hide")
|
||||
$("#util-box_" + tlid).css("display", "none")
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function colorpicker(key){
|
||||
temp=
|
||||
'<div onclick="coloradd('+key+',\'def\',\'def\')" class="pointer">Default</div>'+
|
||||
'<div onclick="coloradd('+key+',\'f44336\',\'white\')" class="red white-text pointer">Red</div>'+
|
||||
'<div onclick="coloradd('+key+',\'e91e63\',\'white\')" class="pink white-text pointer">Pink</div>'+
|
||||
'<div onclick="coloradd('+key+',\'9c27b0\',\'white\')" class="purple white-text pointer">Purple</div>'+
|
||||
'<div onclick="coloradd('+key+',\'673ab7\',\'white\')" class="deep-purple white-text pointer">Deep-purple</div>'+
|
||||
'<div onclick="coloradd('+key+',\'3f51b5\',\'white\')" class="indigo white-text pointer">Indigo</div>'+
|
||||
'<div onclick="coloradd('+key+',\'2196f3\',\'white\')" class="blue white-text pointer">Blue</div>'+
|
||||
'<div onclick="coloradd('+key+',\'03a9f4\',\'black\')" class="light-blue black-text pointer">Light-blue</div>'+
|
||||
'<div onclick="coloradd('+key+',\'00bcd4\',\'black\')" class="cyan black-text pointer">Cyan</div>'+
|
||||
'<div onclick="coloradd('+key+',\'009688\',\'white\')" class="teal white-text pointer">Teal</div>'+
|
||||
'<div onclick="coloradd('+key+',\'4caf50\',\'black\')" class="green black-text pointer">Green</div>'+
|
||||
'<div onclick="coloradd('+key+',\'8bc34a\',\'black\')" class="light-green black-text pointer">Light-green</div>'+
|
||||
'<div onclick="coloradd('+key+',\'cddc39\',\'black\')" class="lime black-text pointer">Lime</div>'+
|
||||
'<div onclick="coloradd('+key+',\'ffeb3b\',\'black\')" class="yellow black-text pointer">Yellow</div>'+
|
||||
'<div onclick="coloradd('+key+',\'ffc107\',\'black\')" class="amber black-text pointer">Amber</div>'+
|
||||
'<div onclick="coloradd('+key+',\'ff9800\',\'black\')" class="orange black-text pointer">Orange</div>'+
|
||||
'<div onclick="coloradd('+key+',\'ff5722\',\'white\')" class="deep-orange white-text pointer">Deep-orange</div>'+
|
||||
'<div onclick="coloradd('+key+',\'795548\',\'white\')" class="brown white-text pointer">Brown</div>'+
|
||||
'<div onclick="coloradd('+key+',\'9e9e9e\',\'white\')" class="grey white-text pointer">Grey</div>'+
|
||||
'<div onclick="coloradd('+key+',\'607d8b\',\'white\')" class="blue-grey white-text pointer">Blue-grey</div>'+
|
||||
'<div onclick="coloradd('+key+',\'000000\',\'white\')" class="black white-text pointer">Black</div>'+
|
||||
'<div onclick="coloradd('+key+',\'ffffff\',\'black\')" class="white black-text pointer">White</div>';
|
||||
$("#picker_"+key).html(temp);
|
||||
function colorpicker(key) {
|
||||
temp =
|
||||
'<div onclick="coloradd(' + key + ',\'def\',\'def\')" class="pointer">Default</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'f44336\',\'white\')" class="red white-text pointer">Red</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'e91e63\',\'white\')" class="pink white-text pointer">Pink</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'9c27b0\',\'white\')" class="purple white-text pointer">Purple</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'673ab7\',\'white\')" class="deep-purple white-text pointer">Deep-purple</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'3f51b5\',\'white\')" class="indigo white-text pointer">Indigo</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'2196f3\',\'white\')" class="blue white-text pointer">Blue</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'03a9f4\',\'black\')" class="light-blue black-text pointer">Light-blue</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'00bcd4\',\'black\')" class="cyan black-text pointer">Cyan</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'009688\',\'white\')" class="teal white-text pointer">Teal</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'4caf50\',\'black\')" class="green black-text pointer">Green</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'8bc34a\',\'black\')" class="light-green black-text pointer">Light-green</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'cddc39\',\'black\')" class="lime black-text pointer">Lime</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'ffeb3b\',\'black\')" class="yellow black-text pointer">Yellow</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'ffc107\',\'black\')" class="amber black-text pointer">Amber</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'ff9800\',\'black\')" class="orange black-text pointer">Orange</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'ff5722\',\'white\')" class="deep-orange white-text pointer">Deep-orange</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'795548\',\'white\')" class="brown white-text pointer">Brown</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'9e9e9e\',\'white\')" class="grey white-text pointer">Grey</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'607d8b\',\'white\')" class="blue-grey white-text pointer">Blue-grey</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'000000\',\'white\')" class="black white-text pointer">Black</div>' +
|
||||
'<div onclick="coloradd(' + key + ',\'ffffff\',\'black\')" class="white black-text pointer">White</div>';
|
||||
$("#picker_" + key).html(temp);
|
||||
}
|
||||
function coloradd(key,bg,txt){
|
||||
function coloradd(key, bg, txt) {
|
||||
var col = localStorage.getItem("column");
|
||||
var o = JSON.parse(col);
|
||||
var obj=o[key];
|
||||
obj.background=bg;
|
||||
obj.text=txt;
|
||||
o[key]=obj;
|
||||
var obj = o[key];
|
||||
obj.background = bg;
|
||||
obj.text = txt;
|
||||
o[key] = obj;
|
||||
var json = JSON.stringify(o);
|
||||
localStorage.setItem("column", json);
|
||||
if(txt=="def"){
|
||||
$("#menu_"+key).css("background-color","");
|
||||
$("#menu_"+key).css("color","");
|
||||
}else{
|
||||
$("#menu_"+key).css('background-color','#'+bg);
|
||||
if(txt=="black"){
|
||||
var bghex="000000";
|
||||
var ichex="9e9e9e"
|
||||
}else if(txt=="white"){
|
||||
var bghex="ffffff";
|
||||
var ichex="eeeeee"
|
||||
}
|
||||
$("#menu_"+key+" .nex").css('color','#'+ichex);
|
||||
$("#menu_"+key).css('color','#'+bghex);
|
||||
if (txt == "def") {
|
||||
$("#menu_" + key).css("background-color", "");
|
||||
$("#menu_" + key).css("color", "");
|
||||
} else {
|
||||
$("#menu_" + key).css('background-color', '#' + bg);
|
||||
if (txt == "black") {
|
||||
var bghex = "000000";
|
||||
var ichex = "9e9e9e"
|
||||
} else if (txt == "white") {
|
||||
var bghex = "ffffff";
|
||||
var ichex = "eeeeee"
|
||||
}
|
||||
$("#menu_" + key + " .nex").css('color', '#' + ichex);
|
||||
$("#menu_" + key).css('color', '#' + bghex);
|
||||
}
|
||||
}
|
||||
//禁断のTwitter
|
||||
function webviewParse(url,key,insert,icnsert,css){
|
||||
function webviewParse(url, key, insert, icnsert, css) {
|
||||
var html = '<div class="box" id="timeline_box_' + key + '_box" tlid="' + key +
|
||||
'" style="'+css+'"><div class="notice-box z-depth-2" id="menu_'+key+'" style="'+insert+'">'+
|
||||
'<div class="area-notice"><i class="fa fa-twitter waves-effect" id="notice_icon_' + key + '" style="font-size:40px; padding-top:25%;"></i></div>'+
|
||||
'<div class="area-notice_name tl-title">WebView('+url+')</div>'+
|
||||
'<div class="area-sta"><input type="checkbox" id="webviewsel" value="true" class="filled-in"><label for="webviewsel">'+lang.lang_layout_webviewmode +'</label></div>'+
|
||||
'<div class="area-a2"><a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_layout_delthis +'"'+icnsert+'>cancel</i></a></div>'+
|
||||
'<div class="area-a3"><a onclick="setToggle(' + key +
|
||||
')" class="setting nex" title="'+lang.lang_layout_setthis +'"'+icnsert+'><i class="material-icons waves-effect nex">settings</i></a></div></div>'+
|
||||
'<div class="column-hide notf-indv-box z-depth-4" id="notf-box_' + key +
|
||||
'"></div><div class="column-hide notf-indv-box" id="util-box_' + key +
|
||||
'" style="padding:5px;">'+lang.lang_layout_headercolor +'<br><div id="picker_'+key+'" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '" style="width:100%;height:calc(100% - 110px);"><div id="timeline_' + key +
|
||||
'" class="tl" tlid="' + key + '" data-type="webview" style="width:100%;height:100%;"><webview src="'+url+'" style="width:100%;height:100%;" id="webview" preload="./js/platform/twitter.js"></webview></div></div></div>';
|
||||
|
||||
'" style="' + css + '"><div class="notice-box z-depth-2" id="menu_' + key + '" style="' + insert + '">' +
|
||||
'<div class="area-notice"><i class="fab fa-twitter waves-effect" id="notice_icon_' + key + '" style="font-size:40px; padding-top:25%;"></i></div>' +
|
||||
'<div class="area-notice_name tl-title">WebView(' + url + ')</div>' +
|
||||
'<div class="area-sta"></div>' +
|
||||
'<div class="area-a2"><a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_delthis + '"' + icnsert + '>cancel</i></a></div>' +
|
||||
'<div class="area-a3"><a onclick="setToggle(' + key +
|
||||
')" class="setting nex" title="' + lang.lang_layout_setthis + '"' + icnsert + '><i class="material-icons waves-effect nex">settings</i></a></div></div>' +
|
||||
'<div class="column-hide notf-indv-box z-depth-4" id="notf-box_' + key +
|
||||
'"></div><div class="column-hide notf-indv-box" id="util-box_' + key +
|
||||
'" style="padding:5px;">' + lang.lang_layout_headercolor + '<br><div id="picker_' + key + '" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '" style="width:100%;height:100%;"><div id="timeline_' + key +
|
||||
'" class="tl" tlid="' + key + '" data-type="webview" style="width:100%;height:100%;"><webview src="' + url + '" style="width:100%;height:100%;" id="webview" preload="./js/platform/twitter.js"></webview></div></div></div>';
|
||||
return html;
|
||||
}
|
||||
function leftFoldSet(key){
|
||||
function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, animecss, q) {
|
||||
if (!left_fold) {
|
||||
var basehtml = '<div style="' + css + '" class="box ' + animecss + '" id="timeline_box_' + basekey + '_parentBox"></div>';
|
||||
$("#timeline-container").append(basehtml);
|
||||
var left_hold = '<a onclick="leftFoldSet(' + key + ')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_leftFold + '">view_agenda</i></a>' + lang.lang_layout_leftFold + '</span><br>';
|
||||
} else {
|
||||
var left_hold = '<a onclick="leftFoldRemove(' + key + ')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_leftUnfold + '">view_column</i></a>' + lang.lang_layout_leftUnfold + '</span><br>';
|
||||
}
|
||||
var html = '<div class="boxIn" id="timeline_box_' + key + '_box" tlid="' + key +
|
||||
'"><div class="notice-box z-depth-2" id="menu_' + key + '" style="' + insert + ' ">' +
|
||||
'<div class="area-notice"><i class="material-icons waves-effect" id="notice_icon_' + key + '" style="font-size:40px; padding-top:25%;" onclick="tootsearch(' + key + ',\'' + q + '\');" title="' + lang.lang_layout_gotop + '"></i></div>' +
|
||||
'<div class="area-notice_name"><span id="notice_' + key + '" class="tl-title"></span></div>' +
|
||||
'<div class="area-a1"></div><div class="area-sta"></div>' +
|
||||
'<div class="area-a2"><a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_delthis + '"' + icnsert + '>cancel</i></a></div>' +
|
||||
'<div class="area-a3"><a onclick="setToggle(' + key +
|
||||
')" class="setting nex" title="' + lang.lang_layout_setthis + '"' + icnsert + '><i class="material-icons waves-effect nex">settings</i></a></div></div>' +
|
||||
'<div class="column-hide notf-indv-box" id="util-box_' + key +
|
||||
'" style="padding:5px;">' + left_hold + '<a onclick="mediaToggle(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_mediafil + '">perm_media</i><span id="sta-media-' +
|
||||
key + '">On</span></a>' + lang.lang_layout_mediafil + '<br>' + lang.lang_layout_headercolor + '<br><div id="picker_' + key + '" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key +
|
||||
'" class="tl ' + type + '-timeline " tlid="' + key + '" data-type="' + type + '" data-acct="nostr"><div id="landing_' + key + '" style="text-align:center">' + lang.lang_layout_nodata + '</div></div></div>'
|
||||
$('#timeline_box_' + basekey + '_parentBox').append(html);
|
||||
tootsearch(key, q);
|
||||
cardCheck(key);
|
||||
ebtCheck(key);
|
||||
mediaCheck(key);
|
||||
catchCheck(key);
|
||||
voiceCheck(key);
|
||||
return true;
|
||||
}
|
||||
function leftFoldSet(key) {
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
obj[key].left_fold=true;
|
||||
obj[key].left_fold = true;
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
parseColumn();
|
||||
}
|
||||
function leftFoldRemove(key){
|
||||
function leftFoldRemove(key) {
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
obj[key].left_fold=false;
|
||||
obj[key].left_fold = false;
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("column", json);
|
||||
parseColumn();
|
||||
|
||||
@@ -1,51 +1,55 @@
|
||||
function menu(){
|
||||
if(!$("#menu").hasClass("appear")){
|
||||
$("#menu").addClass("appear")
|
||||
var left=localStorage.getItem("menu-left");
|
||||
if(left>$('body').width()-$('#menu').width()){
|
||||
left=$('body').width()-$('#menu').width();
|
||||
}else if(left<0){
|
||||
left=0;
|
||||
}
|
||||
var top=localStorage.getItem("menu-top");
|
||||
if(top>$('body').height()-$('#menu').height()){
|
||||
top=$('body').height()-$('#menu').height();
|
||||
}else if(top<0){
|
||||
top=0;
|
||||
}
|
||||
$('#menu').css("left",left+"px")
|
||||
$('#menu').css("top",top+"px")
|
||||
$('#menu').fadeIn();
|
||||
$("#menu-bar").html("TheDesk "+localStorage.getItem("ver"));
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#add-box").removeClass("hide");
|
||||
}else{
|
||||
$('#menu').fadeOut()
|
||||
$("#menu").removeClass("appear")
|
||||
function menu() {
|
||||
localStorage.setItem("menu-done", true);
|
||||
$("#fukidashi").addClass("hide")
|
||||
if (!$("#menu").hasClass("appear")) {
|
||||
$("#menu").addClass("appear")
|
||||
var left = localStorage.getItem("menu-left");
|
||||
if (left > $('body').width() - $('#menu').width()) {
|
||||
left = $('body').width() - $('#menu').width();
|
||||
} else if (left < 0) {
|
||||
left = 0;
|
||||
}
|
||||
var top = localStorage.getItem("menu-top");
|
||||
if (top > $('body').height() - $('#menu').height()) {
|
||||
top = $('body').height() - $('#menu').height();
|
||||
} else if (top < 0) {
|
||||
top = 0;
|
||||
}
|
||||
$('#menu').css("left", left + "px")
|
||||
$('#menu').css("top", top + "px")
|
||||
$('#menu').fadeIn();
|
||||
$("#menu-bar").html("TheDesk " + localStorage.getItem("ver"));
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#add-box").removeClass("hide");
|
||||
$("#left-menu div").removeClass("active");
|
||||
$("#addColumnMenu").addClass("active");
|
||||
} else {
|
||||
$('#menu').fadeOut()
|
||||
$("#menu").removeClass("appear")
|
||||
}
|
||||
|
||||
}
|
||||
$(function() {
|
||||
$( "#menu" ).draggable({handle: "#menu-bar",
|
||||
stop: function() {
|
||||
var left=$('#menu').offset().left;
|
||||
if(left>$('body').width()-$('#menu').width()){
|
||||
left=$('body').width()-$('#menu').width();
|
||||
}else if(left<0){
|
||||
left=0;
|
||||
$(function () {
|
||||
$("#menu").draggable({
|
||||
handle: "#menu-bar",
|
||||
stop: function () {
|
||||
var left = $('#menu').offset().left;
|
||||
if (left > $('body').width() - $('#menu').width()) {
|
||||
left = $('body').width() - $('#menu').width();
|
||||
} else if (left < 0) {
|
||||
left = 0;
|
||||
}
|
||||
var top=$('#menu').offset().top;
|
||||
if(top>$('body').height()-$('#menu').height()){
|
||||
top=$('body').height()-$('#menu').height();
|
||||
}else if(top<0){
|
||||
top=0;
|
||||
var top = $('#menu').offset().top;
|
||||
if (top > $('body').height() - $('#menu').height()) {
|
||||
top = $('body').height() - $('#menu').height();
|
||||
} else if (top < 0) {
|
||||
top = 0;
|
||||
}
|
||||
localStorage.setItem("menu-left",left);
|
||||
localStorage.setItem("menu-top",top);
|
||||
}
|
||||
});
|
||||
localStorage.setItem("menu-left", left);
|
||||
localStorage.setItem("menu-top", top);
|
||||
}
|
||||
});
|
||||
function help(){
|
||||
const {shell} = require('electron');
|
||||
shell.openExternal("https://docs.thedesk.top");
|
||||
});
|
||||
function help() {
|
||||
postMessage(["openUrl", "https://docs.thedesk.top"], "*")
|
||||
}
|
||||
@@ -1,30 +1,30 @@
|
||||
function pip(id){
|
||||
function pip(id) {
|
||||
$("#pip-content").html($("[toot-id=" + id + "] .additional").html());
|
||||
$("#pip").removeClass("hide");
|
||||
}
|
||||
function endPip(){
|
||||
function endPip() {
|
||||
$("#pip-content").html("");
|
||||
$("#pip").addClass("hide");
|
||||
}
|
||||
|
||||
function pipHoriz(){
|
||||
if($("#pip").hasClass("pip-left")){
|
||||
function pipHoriz() {
|
||||
if ($("#pip").hasClass("pip-left")) {
|
||||
$("#pip").removeClass("pip-left");
|
||||
$(".pip-horiz").text("chevron_left");
|
||||
$("#pip").addClass("pip-right");
|
||||
}else{
|
||||
} else {
|
||||
$("#pip").addClass("pip-left");
|
||||
$("#pip").removeClass("pip-right");
|
||||
$(".pip-horiz").text("chevron_right");
|
||||
}
|
||||
}
|
||||
|
||||
function pipVert(){
|
||||
if($("#pip").hasClass("pip-top")){
|
||||
function pipVert() {
|
||||
if ($("#pip").hasClass("pip-top")) {
|
||||
$("#pip").removeClass("pip-top");
|
||||
$("#pip").addClass("pip-bottom");
|
||||
$(".pip-vert").text("expand_less");
|
||||
}else{
|
||||
} else {
|
||||
$("#pip").addClass("pip-top");
|
||||
$("#pip").removeClass("pip-bottom");
|
||||
$(".pip-vert").text("expand_more");
|
||||
|
||||