Compare commits

..

177 Commits

Author SHA1 Message Date
Cutls
eee3c34dd7 TheDesk Usamin (18.8.3) 2019-08-25 22:40:33 +09:00
Cutls
cac39ad539 Fix: cannot follow at Pawoo 2019-08-25 22:22:44 +09:00
Cutls
1b68cdf7db Change: move user matching to More dropdown 2019-08-24 21:19:52 +09:00
Cutls
845c9a0f2e Merge branch 'master' of https://github.com/cutls/TheDesk 2019-08-24 01:10:08 +09:00
Cutls
24c69af942 Fix and Improve: show user data 2019-08-24 01:09:56 +09:00
Cutls
c656bc4bb6 Fix: toggle actions of toots 2019-08-24 01:09:40 +09:00
Cutls
025b60e564 README 2019-08-24 01:09:20 +09:00
Cutls
1e86964d8f Update issue templates 2019-08-23 02:54:29 +09:00
Cutls
61d4d7005e Fix: #108 NowPlaying of iTunes on macOS 2019-08-23 02:00:22 +09:00
Cutls
d0ed9faf50 TheDesk Usamin (18.8.2) 2019-08-22 01:44:37 +09:00
Cutls
8ed12170de TheDesk Usamin (18.8.2) 2019-08-22 01:34:03 +09:00
Cutls
d2ba5cbe4d Fix: ugly layout when display-area is not wide 2019-08-22 01:30:05 +09:00
Cutls
6b6d3c7307 Fix: when hashtags is not lower case 2019-08-22 00:00:08 +09:00
Cutls
362b5b9c69 NSFW media->sensitive media 2019-08-21 23:07:18 +09:00
Cutls
3cde12e893 TheDesk Usain (18.8.1) 2019-08-21 21:51:36 +09:00
Cutls
d2214480f6 Fix: gray color 2019-08-21 00:36:47 +09:00
Cutls
b8bd1a8ae6 Fix CSS 2019-08-21 00:02:29 +09:00
Cutls
0bfef0c2ce Remove: log 2019-08-19 23:31:42 +09:00
Cutls
f2ce98fda5 Fix: some CSS 2019-08-19 23:27:53 +09:00
Cutls
5f08215571 Fix: muting list 2019-08-19 23:09:46 +09:00
Cutls
9567a6ddf9 Fix: emojis 2019-08-19 23:09:34 +09:00
Cutls
4416c56884 Add: show dialogs when muting and blocking 2019-08-19 22:55:50 +09:00
Cutls
68328a9449 Fix: Fontawesome 2019-08-14 02:49:51 +09:00
Cutls
141f2a3f39 Change: CDN 2019-08-14 02:36:01 +09:00
Cutls
7bbca06033 Add: FOSSA 2019-08-14 02:14:34 +09:00
Cutls
ebb72265b9 package.json update 2019-08-14 01:47:21 +09:00
Cutls
c98f433da6 Delete assets 2019-08-14 01:35:01 +09:00
Cutls
2346ef7089 Remove: NowPlaying on Windows 2019-08-14 01:23:25 +09:00
Cutls
8aac6474da TheDesk Usamin (18.8.0) 2019-08-14 00:53:36 +09:00
Cutls
ffcecf38c8 Add: Change: live column add and remove 2019-08-14 00:40:21 +09:00
Cutls
77342206b1 Add: reload this column 2019-08-14 00:25:58 +09:00
Cutls
b6a44e7a7c Fix: vote display refresh 2019-08-14 00:24:11 +09:00
Cutls
e138d357c7 Remove: /follows 2019-08-14 00:23:34 +09:00
Cutls
66645982e9 Fix: arrow key img selector(reversed) 2019-08-14 00:23:05 +09:00
Cutls
4347f55077 Speed up 2019-08-11 02:52:32 +09:00
Cutls
ab9d45c775 Update: CSS about #InstanceTicker 2019-08-11 00:12:11 +09:00
Cutls
9c0c662f25 Update: icons 2019-08-09 10:58:55 +09:00
Cutls
63abdb2d53 Add: Liberapay 2019-08-08 02:06:13 +09:00
Cutls
47e2693368 Fix: about blue theme 2019-08-08 01:55:47 +09:00
Cutls
b909cbe666 Introduce: TheDesk notice v2 2019-08-07 23:27:00 +09:00
Cutls
95f5ce13ba Add: detecting languages[de/cs/bg] 2019-08-07 23:14:20 +09:00
Cutls
fed1496e68 Update: de and Change: algo of locale 2019-08-07 12:14:07 +09:00
Cutls
da6993730c Add: bg/cs/de locales 2019-08-07 09:24:52 +09:00
Cutls
0a1d462ace Add: trending tags 2019-08-06 23:06:09 +09:00
Cutls
1387482db0 TheDesk Usamin (18.7.1) 2019-08-02 00:02:52 +09:00
Cutls
b7a86324dd Merge pull request #105 from cutls/dependabot/npm_and_yarn/app/readline-sync-1.4.10
Update readline-sync requirement from 1.4.9 to 1.4.10 in /app
2019-08-01 22:56:12 +09:00
Cutls
babc5a6424 Merge pull request #107 from cutls/dependabot/npm_and_yarn/app/electron-tw-6.0.0
Update electron requirement from ^5.0.4 to ^6.0.0 in /app
2019-08-01 22:55:31 +09:00
dependabot-preview[bot]
74a468383c Update electron requirement from ^5.0.4 to ^6.0.0 in /app
Updates the requirements on [electron](https://github.com/electron/electron) to permit the latest version.
- [Release notes](https://github.com/electron/electron/releases)
- [Commits](https://github.com/electron/electron/compare/v5.0.4...v6.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-31 20:26:05 +00:00
dependabot-preview[bot]
3a48f0ff0d Update readline-sync requirement from 1.4.9 to 1.4.10 in /app
Updates the requirements on [readline-sync](https://github.com/anseki/readline-sync) to permit the latest version.
- [Release notes](https://github.com/anseki/readline-sync/releases)
- [Commits](https://github.com/anseki/readline-sync/compare/1.4.9...1.4.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-29 20:25:25 +00:00
Cutls
e26363adf6 Fix: when open an image modal, disabled toot selector 2019-07-29 01:13:53 +09:00
Cutls
35d97d42c5 Fix: context func is pollted 2019-07-29 01:09:12 +09:00
Cutls
4fa7d07500 Improve: sorting 2019-07-29 00:52:12 +09:00
Cutls
15f428528b Add: video loop(on modal and Pleroma) and autoplay on modal 2019-07-29 00:42:52 +09:00
Cutls
7fa805fe3a Change: sort suggest 2019-07-29 00:42:17 +09:00
Cutls
fd9c97a126 Add: tag suggest with v2 2019-07-29 00:16:49 +09:00
Cutls
f081154804 init 2019-07-28 23:48:44 +09:00
Cutls
866affdf45 Add: mute by emoji(custom/default) 2019-07-28 23:47:50 +09:00
Cutls
30aee556f1 Fix: if account is null #102 2019-07-25 23:55:25 +09:00
Cutls
b12c18aa08 Add: NSFW warning when not blurhashed sensitive toots 2019-07-25 23:52:44 +09:00
Cutls
f17a47d088 Change: NSFW images on not blurhash supported instance 2019-07-25 23:20:38 +09:00
Cutls
d79f096749 Merge pull request #104 from cutls/dependabot/npm_and_yarn/app/electron-builder-tw-21.1.5
Update electron-builder requirement from ^20.44.4 to ^21.1.5 in /app
2019-07-25 23:16:23 +09:00
dependabot-preview[bot]
5b82b91c6a Update electron-builder requirement from ^20.44.4 to ^21.1.5 in /app
Updates the requirements on [electron-builder](https://github.com/electron-userland/electron-builder) to permit the latest version.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/compare/v20.44.4...v21.1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-24 20:25:27 +00:00
Cutls
4a6b87ac1c Fix: emoji-including URL 2019-07-15 00:56:19 +09:00
Cutls
1bea06354e TheDesk Usamin (18.7.0) 2019-07-13 00:01:16 +09:00
Cutls
5fbd5aaf10 Fix: layout 2019-07-13 00:01:09 +09:00
Cutls
0290a6d918 shortcut key desc 2019-07-13 00:00:26 +09:00
Cutls
2576c48441 Pleroma URL 2019-07-12 23:16:27 +09:00
Cutls
eb02dd2986 Fix: when failed to upload 2019-07-12 01:01:24 +09:00
Cutls
d92570fa3b Add: keyboard-control 2019-07-12 00:53:55 +09:00
Cutls
38c988d2a2 Fix: desc hidden 2019-07-10 22:48:36 +09:00
Cutls
0927282d41 Change: overflow of column name 2019-07-09 22:48:57 +09:00
Cutls
5ffd59619c TheDesk Usamin (18.6.7) 2019-07-09 00:35:33 +09:00
Cutls
a739926ad4 sub-button color 2019-07-09 00:35:20 +09:00
Cutls
e41c38f41d Change: remove get card API 2019-07-09 00:27:31 +09:00
Cutls
2de05b84aa Misskey streaming leak 2019-07-09 00:27:18 +09:00
Cutls
0e9bdef9ca Add: set main account on showOnTL 2019-07-06 23:16:41 +09:00
Cutls
8e70e005c1 TheDesk Usamin (18.6.6) 2019-07-02 00:37:58 +09:00
Cutls
3817dbc925 Some bugs about Vue 2019-07-02 00:32:28 +09:00
Cutls
63ec669c52 boost-btn 2019-07-02 00:32:06 +09:00
Cutls
afc5702796 boost-btn 2019-07-02 00:31:54 +09:00
Cutls
41ec66b58a Add theme: [渚の花嫁] 新田美波 2019-07-02 00:31:44 +09:00
Cutls
936d3ca7fc Change: flexible color of toot-btn 2019-07-02 00:31:08 +09:00
Cutls
f8b4b7b74d Change: unboostable toot btn(hidden to unvisible) 2019-07-02 00:26:41 +09:00
Cutls
bd865977b0 Remove: best-friends.chat from TheDesk support instance 2019-07-01 23:19:47 +09:00
Cutls
d056db5617 Do not ... on translate results #96 2019-07-01 21:46:00 +09:00
Cutls
7685677ada Merge branch 'master' of https://github.com/cutls/TheDesk 2019-07-01 21:40:46 +09:00
Cutls
eb0aa81492 Remove knzk.me from support instances 2019-07-01 21:40:28 +09:00
Cutls
dc52531f28 Merge pull request #99 from kPherox/update-kpherox-links
Update kPherox's links
2019-06-29 16:22:34 +09:00
kPherox
5a20034b9f Update kPherox's links 2019-06-29 16:11:52 +09:00
Cutls
5cd0ef0d8a Update README 2019-06-27 23:17:07 +09:00
Cutls
4daf47bb5f TheDesk Usamin (18.6.5) 2019-06-27 21:57:16 +09:00
Cutls
3e0dbd8433 Remove: colummn-deleting dialog 2019-06-26 00:52:15 +09:00
Cutls
fc4d3b24f6 Fix: column-deleteing and url-analytics bug 2019-06-26 00:51:49 +09:00
Cutls
3a9eab55a4 Fix: misskey streaming 2019-06-26 00:33:44 +09:00
Cutls
546b34275d Fix: setting bugs on Vue 2019-06-26 00:33:32 +09:00
Cutls
3ee4cf27d5 Good-bye native dialogs 2019-06-26 00:33:20 +09:00
Cutls
87da95b9a4 Fix: TheDesk nano 2019-06-25 23:26:15 +09:00
Cutls
3368e30e15 Fix: streaming bug 2019-06-25 23:26:01 +09:00
Cutls
f1ea5ad8f1 Fix: Notf TL bugs about Misskey 2019-06-25 23:16:36 +09:00
Cutls
fa2d5f8492 OAuth and something 2019-06-25 23:16:12 +09:00
Cutls
0f2c5de161 Use sweetalert 2019-06-25 23:15:52 +09:00
Cutls
b69937d4fd Sweetalert CSS for custom themes 2019-06-25 23:15:25 +09:00
Cutls
e82faacbb2 Change: keyboard shortcut 2019-06-24 23:10:44 +09:00
Cutls
2ab5c67545 For MS Store 2019-06-24 23:10:29 +09:00
Cutls
358d01b12e Change: audio wrap 2019-06-24 00:28:42 +09:00
Cutls
95460fabbb TheDesk Usamin (18.6.4) 2019-06-23 18:38:22 +09:00
Cutls
0fb882b3ad Fix: streaming 2019-06-23 18:24:55 +09:00
Cutls
3d0382d279 TheDesk Usamin (18.6.3) 2019-06-23 10:57:56 +09:00
Cutls
59d5aa4515 Add: audio player(chrome default) 2019-06-23 01:20:17 +09:00
Cutls
2dff9f9b17 TheDesk Usamin (18.6.2) 2019-06-23 01:06:07 +09:00
Cutls
03fded672e Add gitignore 2019-06-23 00:51:21 +09:00
Cutls
a21c1f5329 Internal 2019-06-23 00:51:11 +09:00
Cutls
37815ced63 Merge pull request #91 from cutls/dependabot/npm_and_yarn/app/electron-builder-20.44.4
Bump electron-builder from 20.43.0 to 20.44.4 in /app
2019-06-22 10:08:07 +09:00
Cutls
b7f9b8d668 Merge pull request #92 from cutls/dependabot/npm_and_yarn/app/sweetalert2-8.13.0
Bump sweetalert2 from 8.12.2 to 8.13.0 in /app
2019-06-22 10:07:57 +09:00
Cutls
f68af78099 Merge pull request #93 from cutls/dependabot/npm_and_yarn/app/materialize-css-1.0.0
Bump materialize-css from 1.0.0-rc.2 to 1.0.0 in /app
2019-06-22 10:07:43 +09:00
dependabot-preview[bot]
027abffa01 Bump materialize-css from 1.0.0-rc.2 to 1.0.0 in /app
Bumps [materialize-css](https://github.com/Dogfalo/materialize) from 1.0.0-rc.2 to 1.0.0.
- [Release notes](https://github.com/Dogfalo/materialize/releases)
- [Changelog](https://github.com/Dogfalo/materialize/blob/v1-dev/CHANGELOG.md)
- [Commits](https://github.com/Dogfalo/materialize/compare/1.0.0-rc.2...1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-21 20:18:44 +00:00
dependabot-preview[bot]
5dfba4dd5e Bump sweetalert2 from 8.12.2 to 8.13.0 in /app
Bumps [sweetalert2](https://github.com/sweetalert2/sweetalert2) from 8.12.2 to 8.13.0.
- [Release notes](https://github.com/sweetalert2/sweetalert2/releases)
- [Changelog](https://github.com/sweetalert2/sweetalert2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sweetalert2/sweetalert2/compare/v8.12.2...v8.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-21 20:18:16 +00:00
dependabot-preview[bot]
d0ae7e9cf9 Bump electron-builder from 20.43.0 to 20.44.4 in /app
Bumps [electron-builder](https://github.com/electron-userland/electron-builder) from 20.43.0 to 20.44.4.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/compare/v20.43.0...v20.44.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-21 20:17:44 +00:00
Cutls
5a57e984de Introduce: SweetAlert 2019-06-22 01:06:32 +09:00
Cutls
473f4d7c24 Move: jQuery and Materialize 2019-06-22 00:22:45 +09:00
Cutls
35bfea2dbd Fix: update tool 2019-06-21 23:24:28 +09:00
Cutls
62cb30cb5b Merge branch 'master' of https://github.com/cutls/TheDesk 2019-06-21 23:18:08 +09:00
Cutls
9d2eb6f18b Fix: moreLoading 2019-06-21 23:17:56 +09:00
Cutls
d5cd57c26d Merge pull request #88 from cutls/dependabot/npm_and_yarn/app/electron-5.0.4
Bump electron from 5.0.1 to 5.0.4 in /app
2019-06-17 00:34:27 +09:00
Cutls
37695735e0 TheDesk Usamin (18.6.1) 2019-06-16 22:00:31 +09:00
Cutls
c15625c063 Fix: wordmute/emp 2019-06-16 21:52:41 +09:00
Cutls
cd65bd4c2a Fix: bugs about new(?) Materialize 2019-06-16 20:35:15 +09:00
Cutls
fc3fead235 Fix: font of textarea 2019-06-16 20:34:57 +09:00
Cutls
2e00282560 Update README 2019-06-16 20:34:41 +09:00
Cutls
54d740e861 Change: #86 open in browser on acct prof page 2019-06-16 02:05:27 +09:00
Cutls
478a849e8d Fix: error about RAM 2019-06-16 01:34:49 +09:00
Cutls
82c5b35d07 TweetDeck 2019-06-16 01:18:40 +09:00
dependabot-preview[bot]
6cdd4cba9e Bump electron from 5.0.1 to 5.0.4 in /app
Bumps [electron](https://github.com/electron/electron) from 5.0.1 to 5.0.4.
- [Release notes](https://github.com/electron/electron/releases)
- [Commits](https://github.com/electron/electron/compare/v5.0.1...v5.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-06-15 16:10:18 +00:00
Cutls
dda9469874 TheDesk Usamin (18.6.0) - fix 2019-06-16 01:08:10 +09:00
Cutls
334fbdab3f TheDesk Usamin (18.6.0) 2019-06-15 23:07:18 +09:00
Cutls
a5f8e34ee6 Fix: 'about' preload #86 2019-06-15 18:52:28 +09:00
Cutls
eba54d0906 Change: some node integration on rend-proc #86 2019-06-15 02:30:29 +09:00
Cutls
070c40a958 Remove: node on update.html #86 2019-06-15 02:23:41 +09:00
Cutls
8d308cae5e Remove: Adobe photo editor 2019-06-15 02:17:28 +09:00
Cutls
848e9fcf99 Change: language.js reload #86 2019-06-15 02:12:55 +09:00
Cutls
d146776b17 Remove: node on spotify/tips/showOnTL.js #86 2019-06-15 02:10:11 +09:00
Cutls
7da16a7428 Remove: node on setting/system.js #86 2019-06-15 02:01:38 +09:00
Cutls
7b46145114 Remove: node on ui/img/layout.js #86 2019-06-15 01:32:59 +09:00
Cutls
725f0f789a Remove: node on notification/parse.js #86 2019-06-15 01:25:51 +09:00
Cutls
772a5438aa Remove: node on details/misskeyparse.js #86 2019-06-15 01:20:12 +09:00
Cutls
3c276b329b Remove: node on post.js #86 2019-06-15 01:15:45 +09:00
Cutls
e2cde71831 Remove: node in firest/img(post).js #86 2019-06-15 01:10:32 +09:00
Cutls
861ee3250d Remove: node in manager.js #86 2019-06-15 01:05:53 +09:00
Cutls
5672ccfa37 Add: login auth open url #86 2019-06-15 01:01:07 +09:00
Cutls
65e691cda8 Add: install source dialog #86 2019-06-15 00:54:44 +09:00
Cutls
56cca8b529 Change: mainWindow to event.sender on IPC #86 2019-06-15 00:51:41 +09:00
Cutls
367f2f656e Add: getPlatform #86 2019-06-14 23:25:27 +09:00
Cutls
7f806bd155 Add: sendSinmpleIpc for 'about' #86 2019-06-14 23:21:08 +09:00
Cutls
a70444e3c7 Introduce: preload and postMessage #86 2019-06-14 23:17:16 +09:00
Cutls
1a72033571 return 2019-06-14 00:59:33 +09:00
Cutls
a475407c27 try 2019-06-14 00:54:22 +09:00
Cutls
b602cd92a9 try 2019-06-14 00:54:08 +09:00
Cutls
2878a4a524 Fix beta 2019-06-14 00:53:19 +09:00
Cutls
8b1ac63343 Introducing: Materialize 1.0.0 2019-06-07 01:11:04 +09:00
Cutls
8d1012c9fb Merge branch 'master' of https://github.com/cutls/TheDesk 2019-06-06 23:42:15 +09:00
Cutls
62f2654358 Fix: Notice "ended" when poll has been ended without your vote 2019-06-06 23:42:02 +09:00
Cutls
e7feb4b2c5 Merge pull request #84 from cutls/dependabot/npm_and_yarn/app/electron-builder-20.43.0
Bump electron-builder from 20.41.0 to 20.43.0 in /app
2019-06-05 23:55:30 +09:00
dependabot-preview[bot]
dcc62b32a2 Bump electron-builder from 20.41.0 to 20.43.0 in /app
Bumps [electron-builder](https://github.com/electron-userland/electron-builder) from 20.41.0 to 20.43.0.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/compare/v20.41.0...v20.43.0)
2019-06-04 20:25:43 +00:00
Cutls
26eecd11b6 Fix package 2019-06-04 23:31:39 +09:00
Cutls
8d388bbd4b update and construct script 2019-06-04 23:01:04 +09:00
Cutls
409635b00c Fix: hide filter btns on coll notf pane 2019-06-04 22:41:04 +09:00
Cutls
17a71ddbf6 Fix: Exclude notification 2019-06-04 22:37:03 +09:00
Cutls
d2a86af0e2 Change month logic and English 2019-06-04 22:29:47 +09:00
Cutls
f23dc928b2 WIP: Now Usamin (18.5.1) 2019-06-04 01:26:00 +09:00
Cutls
68e11dc222 WIP support me 2019-06-04 01:01:14 +09:00
Cutls
075c3ef9ca Merge branch 'master' of https://github.com/cutls/TheDesk 2019-06-03 23:39:27 +09:00
Cutls
6b004a3992 Fix visibility on Misskey #83 2019-06-03 23:38:58 +09:00
Cutls
3cf198538a Merge pull request #82 from cutls/dependabot/npm_and_yarn/app/electron-builder-20.41.0
Bump electron-builder from 20.40.2 to 20.41.0 in /app
2019-06-03 01:42:00 +09:00
Cutls
612400944e Fix: Pleroma hashtags unshown 2019-05-29 23:24:50 +09:00
Cutls
5f22d2427e Fix: Pleroma image unshown 2019-05-29 23:13:38 +09:00
Cutls
2692967b7d Fix: emojis select buttons on white-themes 2019-05-29 00:42:06 +09:00
dependabot-preview[bot]
2ed85ab978 Bump electron-builder from 20.40.2 to 20.41.0 in /app
Bumps [electron-builder](https://github.com/electron-userland/electron-builder) from 20.40.2 to 20.41.0.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/compare/v20.40.2...v20.41.0)
2019-05-27 23:31:23 +00:00
166 changed files with 15105 additions and 28592 deletions

View File

@@ -0,0 +1,27 @@
---
name: Bug report English
about: Create a report to help us improve
title: ''
labels: "\U0001F41Bbug"
assignees: ''
---
Describe the bug: a clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Click on '....'
2. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Environment**
- OS: [e.g. macOS High Sierra , Windows 10 Pro 1903, Ubuntu 19.04]
- Version: [e.g. Usamin (18.0.0)]
Check at 'Application,' 'About TheDesk' at top of the window.
- Your instance: [e.g. mastodon.social]
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,27 @@
---
name: Bug report Japanese(日本語のバグ報告)
about: 迅速なバグ撲滅のために
title: ''
labels: "\U0001F41Bbug"
assignees: ''
---
バグの簡単な説明を最初に入れます。
**再現方法**
このようにするとバグが発生しました。
1. '....'をクリックすると
2. エラーが出ます
**本来の挙動**
本来どのように動くのが望ましいかを記入
**環境**
- OS: [例 macOS High Sierra , Windows 10 Pro 1903, Ubuntu 19.04]
- バージョン: [例 Usamin (18.0.0)]
TheDesk画面上部の「アプリケーション」から「TheDeskについて」で確認
- インスタンス: [例. mastodon.social]
**追記**
追記

4
.gitignore vendored
View File

@@ -3,8 +3,7 @@
*.7z *.7z
*.exe *.exe
TheDesk-* TheDesk-*
app/build build/*
build
app/.DS_Store app/.DS_Store
.DS_Store .DS_Store
.vs/* .vs/*
@@ -13,3 +12,4 @@ enq.md
app/.tkn app/.tkn
app/node_modules app/node_modules
app/js/login/tkn.js app/js/login/tkn.js
app/package-lock.json

View File

@@ -5,8 +5,8 @@
[![Build Status](https://travis-ci.org/cutls/TheDesk.svg?branch=master)](https://travis-ci.org/cutls/TheDesk) [![Build Status](https://travis-ci.org/cutls/TheDesk.svg?branch=master)](https://travis-ci.org/cutls/TheDesk)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/thedesk/localized.svg)](https://translate.thedesk.top/project/thedesk) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/thedesk/localized.svg)](https://translate.thedesk.top/project/thedesk)
[![FOSSA Status](https://bit.ly/2N4cLd1)](https://bit.ly/31zqMmZ)
[![Version](https://flat.badgen.net/github/release/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases) [![Version](https://flat.badgen.net/github/release/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases)
[![Download](https://flat.badgen.net/github/assets-dl/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases)
![Contributors](https://flat.badgen.net/github/contributors/cutls/TheDesk) ![Contributors](https://flat.badgen.net/github/contributors/cutls/TheDesk)
Mastodon/Misskey client for PC(Windows/Linux/macOS) Mastodon/Misskey client for PC(Windows/Linux/macOS)
オープンソースSNSマストドン/MisskeyのPC向けクライアント[日本語はこちら](README_ja.md) オープンソースSNSマストドン/MisskeyのPC向けクライアント[日本語はこちら](README_ja.md)
@@ -14,6 +14,7 @@ Mastodon/Misskey client for PC(Windows/Linux/macOS)
Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge/?site=thedesk.top)](https://status.cutls.com) Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge/?site=thedesk.top)](https://status.cutls.com)
<a href="https://www.patreon.com/cutls"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160"></a> <a href="https://www.patreon.com/cutls"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160"></a>
<a href="https://liberapay.com/cutls/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a>
![Screenshots1](https://thedesk.top/img/scr1.png) ![Screenshots1](https://thedesk.top/img/scr1.png)
## License ## License
@@ -21,12 +22,13 @@ Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge
[GNU General Public License v3.0](https://github.com/cutls/TheDesk/blob/master/LICENSE) [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/) The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/)
[Press Kit](https://dl.thedesk.top/press/TheDesk+PressKit.zip) [Press Kit](https://d2upiril6ywqp9.cloudfront.net/press/TheDesk+PressKit.zip)
* [PNG](https://dl.thedesk.top/press/TheDesk.png) * [PNG 512x512](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.png)
* [Monotone SVG](https://dl.thedesk.top/press/TheDesk.svg) * [SVG 4095x4096](https://d2upiril6ywqp9.cloudfront.net/press/thedesk-fullcolor.svg)
* [ico](https://dl.thedesk.top/press/TheDesk.ico) * [ico 256x256](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ico)
* [icns](https://dl.thedesk.top/press/TheDesk.icns) * [icns old](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.icns)
* [Illustrator .ai](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ai)
The default sounds of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/) The default sounds of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/)
@@ -44,7 +46,7 @@ The default sounds of notifications is provided [Creative Commons BY](https://cr
Crowdin project is available! Visit: https://translate.thedesk.top Crowdin project is available! Visit: https://translate.thedesk.top
## Requirement ## Requirement and development
* Electron 4.2 or above(install yourself) * Electron 4.2 or above(install yourself)
* electron-dl(in package.json) * electron-dl(in package.json)
@@ -57,6 +59,10 @@ Crowdin project is available! Visit: https://translate.thedesk.top
* sumchecker(in package.json) * sumchecker(in package.json)
* Ability to read unformated files!(install yourself) * Ability to read unformated files!(install yourself)
### Run on developer mode
`npm run dev` on `app` folder.
## Contributors ## Contributors
Build for macOS Build for macOS
@@ -69,7 +75,7 @@ Build for Linux
Fellow coder Fellow coder
* [kPherox](https://www.kr-kp.com/) * [kPherox](https://pl.kpherox.dev/kPherox)
## Build ## Build
@@ -120,3 +126,8 @@ macOS
Did you find a bug with Pleroma accounts? Did you find a bug with Pleroma accounts?
Pleroma **does not** follow Mastodon API rules completely although Pleroma developers say so. Pleroma **does not** follow Mastodon API rules completely although Pleroma developers say so.
Please write issues to improve TheDesk affinity with Pleroma. Please write issues to improve TheDesk affinity with Pleroma.
## Vulnerabilities when `npm i`???
No, if your npm says materialize-css has vulnerabilities(CVE-2019-11002/3/4), look at [here](https://github.com/Dogfalo/materialize/issues/6286) under discussion.

View File

@@ -5,8 +5,8 @@
[![Build Status](https://travis-ci.org/cutls/TheDesk.svg?branch=master)](https://travis-ci.org/cutls/TheDesk) [![Build Status](https://travis-ci.org/cutls/TheDesk.svg?branch=master)](https://travis-ci.org/cutls/TheDesk)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/thedesk/localized.svg)](https://translate.thedesk.top/project/thedesk) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/thedesk/localized.svg)](https://translate.thedesk.top/project/thedesk)
[![FOSSA Status](https://bit.ly/2N4cLd1)](https://bit.ly/31zqMmZ)
[![Version](https://flat.badgen.net/github/release/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases) [![Version](https://flat.badgen.net/github/release/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases)
[![Download](https://flat.badgen.net/github/assets-dl/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases)
![Contributors](https://flat.badgen.net/github/contributors/cutls/TheDesk) ![Contributors](https://flat.badgen.net/github/contributors/cutls/TheDesk)
Mastodon/Misskey client for PC(Windows/Linux/macOS) Mastodon/Misskey client for PC(Windows/Linux/macOS)
オープンソースSNSマストドン/MisskeyのPC向けクライアント オープンソースSNSマストドン/MisskeyのPC向けクライアント
@@ -21,12 +21,13 @@ Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge
[GNU General Public License v3.0](https://github.com/cutls/TheDesk/blob/master/LICENSE) [GNU General Public License v3.0](https://github.com/cutls/TheDesk/blob/master/LICENSE)
アイコンは[クリエイティブ・コモンズ 表示-非営利-継承](https://creativecommons.org/licenses/by-nc-sa/4.0/)で提供されています。 アイコンは[クリエイティブ・コモンズ 表示-非営利-継承](https://creativecommons.org/licenses/by-nc-sa/4.0/)で提供されています。
[プレスキット](https://dl.thedesk.top/press/TheDesk+PressKit.zip) [プレスキット](https://d2upiril6ywqp9.cloudfront.net/press/TheDesk+PressKit.zip)
* [PNG](https://dl.thedesk.top/press/TheDesk.png) * [PNG 512x512](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.png)
* [Monotone SVG](https://dl.thedesk.top/press/TheDesk.svg) * [SVG 4095x4096](https://d2upiril6ywqp9.cloudfront.net/press/thedesk-fullcolor.svg)
* [ico](https://dl.thedesk.top/press/TheDesk.ico) * [ico 256x256](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ico)
* [icns](https://dl.thedesk.top/press/TheDesk.icns) * [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/) で提供されています。 標準の通知音は [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/) で提供されています。
@@ -57,6 +58,10 @@ Crowdinから翻訳に参加してみませんか: https://translate.thedesk.
* sumchecker(in package.json) * sumchecker(in package.json)
* Ability to read unformated files!(自分で入れて) * Ability to read unformated files!(自分で入れて)
### デベロッパーモード
`npm run dev``app`フォルダ内で実行
## 主なコントリビューター ## 主なコントリビューター
macOSビルダー macOSビルダー
@@ -69,7 +74,7 @@ Linuxビルダー
iTunes NowPlayingにアルバムアートワークを付けてくれた人 iTunes NowPlayingにアルバムアートワークを付けてくれた人
* [kPherox](https://www.kr-kp.com/) * [kPherox](https://pl.kpherox.dev/kPherox)
## ビルド ## ビルド
@@ -126,3 +131,8 @@ Issuesに書いてある問題についてはなるべく対処しますので
## 詳しく ## 詳しく
[TheDesk - マストドン日本語ウィキ](https://ja.mstdn.wiki/TheDesk) [TheDesk - マストドン日本語ウィキ](https://ja.mstdn.wiki/TheDesk)
## `npm i`したら脆弱性あるって言われた
materialize-cssの脆弱性(CVE-2019-11002/3/4)については[こちら](https://github.com/Dogfalo/materialize/issues/6286)で本当に脆弱性かどうか議論しています。
実際には害が無いものと思われます。

View File

@@ -4,7 +4,7 @@
<head> <head>
<title>TheDesk</title> <title>TheDesk</title>
<meta content="width=device-width,initial-scale=1.0" name="viewport"> <meta content="width=device-width,initial-scale=1.0" name="viewport">
<link href="./css/materialize.css" type="text/css" rel="stylesheet"> <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/font-awesome.css' rel='stylesheet' type='text/css'>
<link href="./css/themes.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/master.css" type="text/css" rel="stylesheet">
@@ -75,27 +75,27 @@
</head> </head>
<body class="center " style="overflow:hidden"> <body class="center " style="overflow:hidden">
<script type="text/javascript" src="./js/common/jquery.js"></script> <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="./js/platform/first-not-view.js"></script>
<script type="text/javascript" src="./js/common/materialize.js"></script> <script type="text/javascript" src="./node_modules/materialize-css/dist/js/materialize.js"></script>
<img src="./img/desk.png" style="max-width:70%;"> <img src="./img/desk.svg" style="max-width:62%;">
<h5>TheDesk</h5> <h5>TheDesk</h5>
<div class='container'> <div class="container">
<div class='area-name1'>Display version</div> <div class="area-name1">Display version</div>
<div class='area-data1' id="now"></div> <div class="area-data1" id="now"></div>
<div class='area-name2'>Internal version</div> <div class="area-name2">Internal version</div>
<div class='area-data2' id="ver"></div> <div class="area-data2" id="ver"></div>
<div class='area-name3'>Chromium</div> <div class="area-name3">Chromium</div>
<div class='area-data3' id="chrome"></div> <div class="area-data3" id="chrome"></div>
<div class='area-name4'>Electron</div> <div class="area-name4">Electron</div>
<div class='area-data4' id="electron"></div> <div class="area-data4" id="electron"></div>
<div class='area-name5'>Node.js</div> <div class="area-name5">Node.js</div>
<div class='area-data5' id="node"></div> <div class="area-data5" id="node"></div>
</div> </div>
<div class="cp">Copyright &copy; TheDesk 2018<br> <div class="cp">Copyright &copy; TheDesk 2018<br>
Main developer(author): <a href="https://cutls.com/@Cutls" target="_blank">Cutls P</a><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 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://pawoo.net/@kPherox" 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 target="_blank">kPherox</a> and all users
<img draggable="false" style="width:0.8rem;top: 1px;margin-left: 1px;position: relative;" alt="❤️" <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"> title=":heart:" src="https://twemoji.maxcdn.com/2/72x72/2764.png">
@@ -104,13 +104,11 @@
class="material-icons left">close</i>Close</button> class="material-icons left">close</i>Close</button>
<script type="text/javascript" src="./js/ui/theme.js"></script> <script type="text/javascript" src="./js/ui/theme.js"></script>
<script> <script>
var about = JSON.parse(localStorage.getItem("about"));
$("#now").text(localStorage.getItem("ver")); $("#now").text(localStorage.getItem("ver"));
var electron = require("electron"); $("#node").text(about[0]);
var remote = electron.remote; $("#chrome").text(about[1]);
const shell = electron.shell; $("#electron").text(about[2]);
$("#node").text(remote.process.version);
$("#chrome").text(remote.process.versions.chrome);
$("#electron").text(remote.process.versions.electron);
if (location.search) { if (location.search) {
var m = location.search.match(/\?ver=([a-zA-Z-0-9.]+)/); var m = location.search.match(/\?ver=([a-zA-Z-0-9.]+)/);
var ver = m[1]; var ver = m[1];
@@ -118,7 +116,7 @@
} }
$(document).on('click', 'a', e => { $(document).on('click', 'a', e => {
var url = $(e.target).attr('href'); var url = $(e.target).attr('href');
shell.openExternal(url); postMessage(["openUrl", url], "*")
return false; return false;
}); });
</script> </script>

View File

@@ -1,267 +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() {
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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

BIN
app/build/thedesk.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@@ -7,12 +7,8 @@ body {
cursor: default; cursor: default;
font-size: 13px; font-size: 13px;
height: 100vh; height: 100vh;
background-color: var(--bg);
color: var(--color); color: var(--color);
} }
body {
border: thin solid gray;
}
.btn { .btn {
margin: 5px; margin: 5px;
text-transform: none; text-transform: none;
@@ -50,6 +46,7 @@ option {
max-height: 100vh; max-height: 100vh;
position: fixed; position: fixed;
z-index: 9; z-index: 9;
top: 0 !important;
} }
#videomodal, #videomodal,
#tootmodal { #tootmodal {
@@ -75,6 +72,9 @@ option {
min-width: 0 !important; min-width: 0 !important;
margin-left: 5px !important; margin-left: 5px !important;
} }
.unvisible{
opacity: 0;
}
.bbcode-pulse-loadings, .bbcode-pulse-loadings,
.bbcode-pulse-loading, .bbcode-pulse-loading,
.fa-pulse { .fa-pulse {
@@ -234,9 +234,6 @@ blockquote:before,
#drag-content { #drag-content {
font-size: 2rem; font-size: 2rem;
} }
.radio {
font-family: "Baloo Bhai";
}
#pip { #pip {
z-index: 504; z-index: 504;
width: 418px; width: 418px;
@@ -303,6 +300,9 @@ blockquote:before,
.tabs { .tabs {
background-color: var(--subcolor); background-color: var(--subcolor);
} }
.collapsible-header:focus {
background-color: var(--subcolor) !important;
}
.modal-footer { .modal-footer {
background-color: var(--modalfooter) !important; background-color: var(--modalfooter) !important;
} }
@@ -396,7 +396,8 @@ blockquote:before,
text-align: center; text-align: center;
width: calc(100% + 10px); width: calc(100% + 10px);
border-radius: 5px; border-radius: 5px;
background-color: var(--bg); background-color: var(--box);
filter: brightness(80%);
margin-left: -5px; margin-left: -5px;
margin-right: -5px; margin-right: -5px;
margin-top: -5px; margin-top: -5px;
@@ -412,6 +413,45 @@ blockquote:before,
justify-content: center; justify-content: center;
align-items: 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;
}
/*スクロールバー*/ /*スクロールバー*/
::-webkit-scrollbar { ::-webkit-scrollbar {
@@ -430,3 +470,32 @@ blockquote:before,
background: #607d8b; background: #607d8b;
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5); -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;
}

9595
app/css/materialize.css vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -12,6 +12,10 @@
padding: 5px; padding: 5px;
border-radius: 5px; border-radius: 5px;
} }
textarea {
min-height: 100px !important;
font-family: inherit;
}
.cancel { .cancel {
font-size: 0.5rem; font-size: 0.5rem;
@@ -78,7 +82,7 @@
max-height: 100px; max-height: 100px;
} }
#default-emoji a { #default-emoji a {
color: white; color: var(--color);
margin-right: 2px; margin-right: 2px;
} }
.character-counter { .character-counter {
@@ -120,7 +124,9 @@
overflow-y: scroll; overflow-y: scroll;
top: 90px; top: 90px;
} }
#posttgl,#toot-post-btn {
background-color: var(--accentbtn);
}
/*mini*/ /*mini*/
.mini-post .mize { .mini-post .mize {
display: none !important; display: none !important;

View File

@@ -14,6 +14,10 @@
--active: #e6ee9c; --active: #e6ee9c;
--postbox: white; --postbox: white;
--modalfooter: #fafafa; --modalfooter: #fafafa;
--accentbtn: #009688;
--selected: #c0c0c0;
--selectedWithShare: #b2babd;
--gray: #757575;
} }
#imagemodal { #imagemodal {
background: url("../img/pixel.white.svg"); background: url("../img/pixel.white.svg");
@@ -34,6 +38,10 @@
--active: #757575; --active: #757575;
--postbox: #424242; --postbox: #424242;
--modalfooter: #212121; --modalfooter: #212121;
--accentbtn: #3f51b5;
--selected: #3f3f3f;
--selectedWithShare: #003a30;
--gray: #cccccc;
} }
.blacktheme #imagemodal { .blacktheme #imagemodal {
background: url("../img/pixel.svg"); background: url("../img/pixel.svg");
@@ -54,6 +62,10 @@
--active: #757575; --active: #757575;
--postbox: #1a237e; --postbox: #1a237e;
--modalfooter: #031833; --modalfooter: #031833;
--accentbtn: #00acc1;
--selected: #214f8a;
--selectedWithShare: #003a30;
--gray: #cccccc ;
} }
.indigotheme #imagemodal { .indigotheme #imagemodal {
background: url("../img/pixel.svg"); background: url("../img/pixel.svg");
@@ -74,6 +86,10 @@
--active: #757575; --active: #757575;
--postbox: #4e342e; --postbox: #4e342e;
--modalfooter: #261411; --modalfooter: #261411;
--accentbtn: #827717;
--selected: #6d352b;
--selectedWithShare: #003a30;
--gray: #cccccc;
} }
.browntheme #imagemodal { .browntheme #imagemodal {
background: url("../img/pixel.svg"); background: url("../img/pixel.svg");
@@ -86,7 +102,7 @@
--modal: #81c784; --modal: #81c784;
--subcolor: #a5d6a7; --subcolor: #a5d6a7;
--box: #81c784; --box: #81c784;
--sidebar: #81c784; --sidebar: #c5e1a5;
--shared: #ffcc80; --shared: #ffcc80;
--notfbox: #a5d6a7; --notfbox: #a5d6a7;
--emphasized: #9e9d24; --emphasized: #9e9d24;
@@ -94,7 +110,35 @@
--active: #e6ee9c; --active: #e6ee9c;
--postbox: #a5d6a7; --postbox: #a5d6a7;
--modalfooter: #81c784; --modalfooter: #81c784;
--accentbtn: #33691e;
--selected: #78c17a;
--selectedWithShare: #caa266;
--gray: #757575;
} }
.greentheme #imagemodal { .greentheme #imagemodal {
background: url("../img/pixel.white.svg"); background: url("../img/pixel.white.svg");
} }
.bluetheme {
--bg: #c9e1ec;
--drag: rgba(255, 255, 255, 0.8);
--color: black;
--beforehover: #757575;
--modal: #b2ebf2;
--subcolor: #90caf9;
--box: #90caf9;
--sidebar: #b6e6f5;
--shared: #e0ffe4;
--notfbox: #90caf9;
--emphasized: #c5e1a5;
--his-data: rgba(255, 255, 255, 0.9);
--active: #b39ddb;
--postbox: #dff1ff;
--modalfooter: #2196f3;
--accentbtn: #2f7bb7;
--selected: #9dcade;
--selectedWithShare: #c1dac4;
--gray: #757575;
}
.bluetheme #imagemodal {
background: url("../img/pixel.white.svg");
}

View File

@@ -94,8 +94,10 @@
display: none; display: none;
} }
} }
iframe { iframe,
.cvo video {
max-width: 100%; max-width: 100%;
max-height: 300px;
} }
@media screen and (max-width: 600px) { @media screen and (max-width: 600px) {
.mobile #timeline-container { .mobile #timeline-container {
@@ -126,7 +128,7 @@ iframe {
} }
.marquee { .marquee {
width: 100%; width: 100%;
padding: .5em 0; padding: 0.5em 0;
overflow: hidden; overflow: hidden;
margin-bottom: 0; margin-bottom: 0;
position: relative; position: relative;
@@ -142,14 +144,15 @@ iframe {
animation-iteration-count: infinite; animation-iteration-count: infinite;
} }
@keyframes marquee { @keyframes marquee {
0% { 0% {
-webkit-transform: translate(0); -webkit-transform: translate(0);
transform: translate(0); transform: translate(0);
} }
99%, 100% { 99%,
100% {
-webkit-transform: translate(-100%); -webkit-transform: translate(-100%);
transform: translate(-100%); transform: translate(-100%);
} }
} }
.boxIn { .boxIn {
display: flex; display: flex;
@@ -157,6 +160,7 @@ iframe {
height: 100%; height: 100%;
border: thin solid gray; border: thin solid gray;
overflow: hidden; overflow: hidden;
border-top: none;
} }
.box .pin, .box .pin,
#his-data .pin { #his-data .pin {
@@ -207,7 +211,8 @@ iframe {
width: 100%; width: 100%;
display: grid; display: grid;
grid-template-columns: 43px 2fr 1fr; grid-template-columns: 43px 2fr 1fr;
grid-template-areas: "notice notice notice" "icon display_name display_name" "icon toot toot" "vis additional additional" "actions actions side"; grid-template-rows: auto 1.6rem 1fr auto 2.5rem;
grid-template-areas: "notice notice notice" "icon display_name display_name" "space toot toot" "space additional additional" "vis actions side";
} }
.cvo h1, .cvo h1,
.cvo h2, .cvo h2,
@@ -252,7 +257,8 @@ iframe {
.area-toot { .area-toot {
cursor: text; cursor: text;
user-select: auto; user-select: auto;
margin: 2px; margin-top: 5px;
margin-bottom: 5px;
margin-left: 5px; margin-left: 5px;
grid-area: toot; grid-area: toot;
} }
@@ -274,19 +280,22 @@ iframe {
.area-actions { .area-actions {
padding: 0; padding: 0;
margin: 0; margin: 0;
top: -20px; top: -5px;
position: relative;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
width: 250px;
max-width: 100%; max-width: 100%;
grid-area: actions; grid-area: actions;
} }
.area-vis { .area-vis {
margin: 2px; margin: 2px;
grid-area: vis; grid-area: vis;
text-align: center;
} }
.area-side { .area-side {
display: flex; display: flex;
top: -5px;
position: relative;
justify-content: flex-end; justify-content: flex-end;
margin: 2px; margin: 2px;
grid-area: side; grid-area: side;
@@ -339,7 +348,7 @@ iframe {
} }
.gray { .gray {
color: gray; color: var(--gray);
} }
.sml { .sml {
font-size: 0.8em; font-size: 0.8em;
@@ -425,6 +434,9 @@ p:not(:last-child) {
.area-notice_name { .area-notice_name {
grid-area: notice_name; grid-area: notice_name;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
} }
.area-notice_acct { .area-notice_acct {
@@ -523,7 +535,7 @@ p:not(:last-child) {
content: "..."; content: "...";
} }
.toot a:not(.mention) span:last-of-type { .toot a:not(.mention) span:last-of-type {
display: none; /*display: none;*/
} }
.tl-box .via-hide { .tl-box .via-hide {
display: none; display: none;
@@ -581,6 +593,7 @@ p:not(:last-child) {
display: block; display: block;
margin-right: 1px; margin-right: 1px;
float: left; float: left;
overflow: hidden;
} }
.nsfw-media { .nsfw-media {
position: absolute; position: absolute;
@@ -594,6 +607,31 @@ p:not(:last-child) {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.shared.selectedToot {
background-color: var(--selectedWithShare);
}
.selectedToot {
background-color: var(--selected);
}
audio {
height: 2rem;
}
.translate {
white-space: normal;
}
.cw_btn {
margin: 3px;
background-color: var(--emphasized);
color: var(--color);
padding-left: 3px;
padding-right: 3px;
border-radius: 3px;
border: 1px solid var(--color);
}
.vis-data {
font-size: 1rem !important;
margin: 5px;
}
@keyframes jump { @keyframes jump {
0% { 0% {
transform: translateY(0); transform: translateY(0);

View File

@@ -4,6 +4,10 @@
background-image: url("../../loading.svg"); background-image: url("../../loading.svg");
overflow-y: hidden; overflow-y: hidden;
} }
#his-data-content {
display: flex;
justify-content: center;
}
#his-name { #his-name {
font-size: 1.5rem; font-size: 1.5rem;
} }
@@ -13,16 +17,17 @@
margin-right: 5px; margin-right: 5px;
} }
.his-float { .his-float {
float: left;
overflow-y: scroll; overflow-y: scroll;
padding: 5px; padding: 5px;
} }
#his-float-data { #his-float-data {
width: 400px;
height: 100%; height: 100%;
} }
#his-leftside {
width: 500px;
}
#his-float-timeline { #his-float-timeline {
width: calc(100% - 400px); max-width: 775px;
height: 100%; height: 100%;
overflow-y: hidden; overflow-y: hidden;
} }
@@ -61,21 +66,30 @@
#his-data a:not(.mention) span:last-of-type { #his-data a:not(.mention) span:last-of-type {
display: none; display: none;
} }
#his-data a .rep_ct,
#his-data a .rt_ct,
#his-data a .fav_ct {
display: inline !important;
}
#his-data-show { #his-data-show {
margin: 20px; margin: 20px;
margin-left: 50px;
margin-right: 50px;
background-color: var(--his-data); background-color: var(--his-data);
width: calc(100% - 20px);
height: calc(100% - 20px); height: calc(100% - 20px);
margin-bottom: 0; margin-bottom: 0;
padding: 5px; padding: 5px;
} }
.tab-content { #his-data-wrap {
display: flex;
}
.his-var-content {
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;
height: calc(100% - 240px); height: calc(100% - 45px);
} }
.my-data-width { #my-data-nav .btn {
width: 10%; width: 140px;
} }
.active-back { .active-back {
background-color: var(--active); background-color: var(--active);
@@ -87,10 +101,10 @@
#his-plus-action .btn { #his-plus-action .btn {
width: 170px; width: 170px;
} }
.custom-tabs { .tabs {
display: flex; display: flex;
} }
.custom-tabs .custom-tab a { .tabs .tab a {
padding: 8px 12px; padding: 8px 12px;
} }
#his-des .mention { #his-des .mention {
@@ -102,7 +116,11 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
font-size: 2rem; font-size: 2rem;
width: 90%;
height: 100%; height: 100%;
position: absolute; }
#hisdropdown{
background-color: var(--bg);
}
#hisdropdown li:hover{
background-color: var(--active);
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 11 KiB

35
app/img/desk.svg Normal file
View 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

View File

@@ -1,122 +1,35 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" <!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <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" <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"/>
width="7.11022in" height="7.11022in"
viewBox="0 0 512 512"> <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 id="選択範囲 #1" <path class="st5" d="M714.5,2953.5"/>
fill="white" stroke="white" stroke-width="1" <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
d="M 96.00,16.00 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
C 99.85,16.01 102.39,15.12 104.00,19.00 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
104.00,19.00 97.00,19.00 97.00,19.00 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
97.00,19.00 108.00,22.07 108.00,22.07 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
108.00,22.07 144.00,43.08 144.00,43.08 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
144.00,43.08 181.83,64.31 181.83,64.31 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"/>
181.83,64.31 223.00,88.26 223.00,88.26 <rect class="st7" width="4096" height="4096"/>
223.00,88.26 247.00,102.22 247.00,102.22 <path class="st1" d="M-58,1122"/>
247.00,102.22 257.00,107.00 257.00,107.00 </g>
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" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

132
app/img/thinking.svg Normal file
View 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -1,6 +1,4 @@
//このソフトについて //このソフトについて
function about() { function about() {
var electron = require("electron"); postMessage(["sendSinmpleIpc", "about"], "*")
var ipc = electron.ipcRenderer;
ipc.send('about', 'go');
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,5 @@
selectedColumn = 0
selectedToot = 0
$(function ($) { $(function ($) {
//キーボードショートカット //キーボードショートカット
$(window).keydown(function (e) { $(window).keydown(function (e) {
@@ -20,7 +22,6 @@ $(function ($) {
return false; return false;
} }
} }
} }
//Ctrl+Enter:投稿 //Ctrl+Enter:投稿
if (event.metaKey || event.ctrlKey && wv) { if (event.metaKey || event.ctrlKey && wv) {
@@ -36,14 +37,6 @@ $(function ($) {
return false; return false;
} }
} }
//Shift+Space:Markdownゼロ幅スペース
if (event.shiftKey) {
if (e.keyCode === 32) {
brInsert("");
return false;
}
}
//Esc:消す //Esc:消す
if (e.keyCode === 27 && wv) { if (e.keyCode === 27 && wv) {
hide(); hide();
@@ -54,14 +47,6 @@ $(function ($) {
location.href = "index.html"; location.href = "index.html";
return false; 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:全消し //Ctrl+Sift+C:全消し
if (((event.metaKey || event.ctrlKey) && event.shiftKey) && wv) { if (((event.metaKey || event.ctrlKey) && event.shiftKey) && wv) {
if (e.keyCode === 67) { if (e.keyCode === 67) {
@@ -135,7 +120,7 @@ $(function ($) {
} }
} }
//Ctrl+Sift+P:プロフ //Ctrl+Sift+P:プロフ
if ((event.ctrlKey) && event.shiftKey) { if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
if (e.keyCode === 80) { if (e.keyCode === 80) {
profShow() profShow()
return false; return false;
@@ -149,30 +134,82 @@ $(function ($) {
return false; 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フォーカス時 //textareaフォーカス時
if (hasFocus2 && wv) { if (hasFocus2 && wv) {
if (event.metaKey || event.ctrlKey) { 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):ワンクリ //C+S+(No):ワンクリ
if ((event.metaKey || event.ctrlKey) && event.shiftKey) { if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
if (e.keyCode >= 49 && e.keyCode <= 51) { if (e.keyCode >= 49 && e.keyCode <= 51) {
@@ -183,22 +220,28 @@ $(function ($) {
} }
} }
} }
//イメージビューワー切り替え
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(); 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 })
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,17 @@
//モーダル・ドロップダウンの各種設定 //モーダル・ドロップダウンの各種設定
$(document).ready(function () { $(document).ready(function () {
// the "href" attribute of the modal trigger must specify the modal ID that wants to be triggered // the "href" attribute of the modal trigger must specify the modal ID that wants to be triggered
$('.modal').modal(); $('.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
});
$('.dropdown-trigger').dropdown({
inDuration: 300, inDuration: 300,
outDuration: 225, outDuration: 225,
constrainWidth: false, // Does not change width of dropdown to that of the activator constrainWidth: false, // Does not change width of dropdown to that of the activator
@@ -13,5 +22,5 @@ $(document).ready(function () {
stopPropagation: false // Stops event propagation stopPropagation: false // Stops event propagation
} }
); );
$('.collapsible').collapsible();
}); });

View File

@@ -1,8 +1,22 @@
//バージョンチェッカー //バージョンチェッカー
function verck(ver) { function verck(ver) {
console.log("%c Welcome😊", "color: red;font-size:200%;") console.log("%c Welcome😊", "color: red;font-size:200%;")
if (localStorage.getItem("ver") != ver) { 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); localStorage.setItem("ver", ver);
show = true
console.log("%c Thank you for your update🎉", "color: red;font-size:200%;"); console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
$(document).ready(function () { $(document).ready(function () {
$('#releasenote').modal('open'); $('#releasenote').modal('open');
@@ -19,71 +33,33 @@ function verck(ver) {
} else { } else {
$("#release-en").show(); $("#release-en").show();
} }
}); });
} }
var electron = require("electron"); if (!show) {
var remote = electron.remote; console.log(show)
var dialog = remote.dialog; if (date.getMonth() + 1 >= localStorage.getItem("showSupportMe") || !localStorage.getItem("showSupportMe")) {
var platform = remote.process.platform; if (date.getMonth() == 11) {
console.log("Your platform:"+remote.process.platform) var nextmonth = 1
if (platform == "win32") { } else {
const options = { var nextmonth = date.getMonth() + 2
type: 'info',
title: "Select your platform",
message: lang.lang_version_platform,
buttons: [lang.lang_no, lang.lang_yesno]
} }
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
});
}
}
var platform = localStorage.getItem("platform");
console.log("Your platform:" + platform)
if (!localStorage.getItem("winstore")) { if (!localStorage.getItem("winstore")) {
storeDialog(platform, ver)
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 (!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") { if (localStorage.getItem("winstore") == "brewcask" || localStorage.getItem("winstore") == "snapcraft" || localStorage.getItem("winstore") == "winstore") {
var winstore = true; var winstore = true;
@@ -109,9 +85,7 @@ function verck(ver) {
}).then(function (mess) { }).then(function (mess) {
console.table(mess); console.table(mess);
if (mess) { if (mess) {
var electron = require("electron"); var platform = localStorage.getItem("platform");
var remote = electron.remote;
var platform = remote.process.platform;
if (platform == "darwin") { if (platform == "darwin") {
var newest = mess.desk_mac; var newest = mess.desk_mac;
} else { } else {
@@ -126,15 +100,13 @@ function verck(ver) {
localStorage.removeItem("instance") localStorage.removeItem("instance")
if (localStorage.getItem("new-ver-skip")) { if (localStorage.getItem("new-ver-skip")) {
if (localStorage.getItem("next-ver") != newest) { if (localStorage.getItem("next-ver") != newest) {
var ipc = electron.ipcRenderer; postMessage(["sendSinmpleIpc", "update"], "*")
ipc.send('update', "true");
} else { } else {
console.warn(lang.lang_version_skipver); console.warn(lang.lang_version_skipver);
todo(lang.lang_version_skipver); todo(lang.lang_version_skipver);
} }
} else { } else {
var ipc = electron.ipcRenderer; postMessage(["sendSinmpleIpc", "update"], "*")
ipc.send('update', "true");
} }
} }
} }
@@ -161,34 +133,38 @@ function verck(ver) {
if (obj.ID * 1 <= last) { if (obj.ID * 1 <= last) {
break; break;
} else { } else {
if (obj.type == "textv2") {
if (~obj.languages.indexOf(lang.language)) {
var show = true; var show = true;
if (obj.toot != "") { if (obj.toot != "") {
var toot = '<button class="btn-flat toast-action" onclick="detEx(\'' + obj.toot + '\',\'main\')">Show</button>'; var toot = '<button class="btn-flat toast-action" onclick="detEx(\'' + obj.toot + '\',\'main\')">Show</button>';
} else { } else {
var toot = ""; var toot = "";
} }
if (obj.Ver != "") { if (obj.ver != "") {
if (obj.Ver == ver) { if (obj.ver == ver) {
show = true; show = true;
} else { } else {
show = false; show = false;
} }
} }
if (obj.Domain != "") { if (obj.domain != "") {
var multi = localStorage.getItem("multi"); var multi = localStorage.getItem("multi");
if (multi) { if (multi) {
show = false; show = false;
var accts = JSON.parse(multi); var accts = JSON.parse(multi);
Object.keys(accts).forEach(function (key) { Object.keys(accts).forEach(function (key) {
var acct = accts[key]; var acct = accts[key];
if (acct.domain == obj.Domain) { if (acct.domain == obj.domain) {
show = true; show = true;
} }
}); });
} }
} }
if (show) { if (show) {
Materialize.toast(escapeHTML(obj.Text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', 86400); M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 })
}
}
} }
} }
@@ -207,6 +183,8 @@ function infowebsocket() {
console.log([tlid, ":Receive Streaming:", JSON.parse(mess.data)]); console.log([tlid, ":Receive Streaming:", JSON.parse(mess.data)]);
var obj = JSON.parse(mess.data); var obj = JSON.parse(mess.data);
if (obj.type != "counter") { if (obj.type != "counter") {
if (obj.type == "textv2") {
if (~obj.languages.indexOf(lang.language)) {
localStorage.setItem("last-notice-id", obj.id) localStorage.setItem("last-notice-id", obj.id)
var show = true; var show = true;
if (obj.toot != "") { if (obj.toot != "") {
@@ -235,7 +213,11 @@ function infowebsocket() {
} }
} }
if (show) { if (show) {
Materialize.toast(escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', 86400); console.log(obj.text)
console.log(escapeHTML(obj.text))
M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 })
}
}
} }
} else { } else {
$("#persons").text(obj.text); $("#persons").text(obj.text);
@@ -273,3 +255,58 @@ function openRN() {
$("#release-en").show(); $("#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();
}
});
})
}

View File

@@ -50,6 +50,10 @@ function customEmoji() {
emojiList('home') emojiList('home')
} }
function defEmoji(target) { function defEmoji(target) {
var selin = $("#textarea").prop('selectionStart');
if (!selin) {
selin = 0;
}
var emojiraw = newpack.filter(function (item, index) { var emojiraw = newpack.filter(function (item, index) {
if (item.short_name == target) return true; if (item.short_name == target) return true;
}); });
@@ -60,22 +64,11 @@ function defEmoji(target) {
emoji = twemoji.convert.fromCodePoint(hex[0]); emoji = twemoji.convert.fromCodePoint(hex[0]);
} }
var now = $("#textarea").val(); var now = $("#textarea").val();
var selin = localStorage.getItem("cursor");
var now = $("#textarea").val();
if (selin > 0) {
var before = now.substr(0, selin); var before = now.substr(0, selin);
var after = now.substr(selin, now.length); var after = now.substr(selin, now.length);
newt = before + emoji + after; newt = before + emoji + after;
} else {
newt = emoji + now;
}
$("#textarea").val(newt); $("#textarea").val(newt);
$("#textarea").focus(); $("#textarea").focus();
var selin = $("#textarea").prop('selectionStart');
if (!selin) {
selin = 0;
}
localStorage.setItem("cursor", selin);
} }
function faicon() { function faicon() {
var json = faicons; var json = faicons;

228
app/js/lang/lang.bg.js Normal file
View 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
View 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
View 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."
}

View File

@@ -21,9 +21,9 @@ var lang = {
//common/version.js //common/version.js
"lang_version_usever": "No update is found({{ver}})", "lang_version_usever": "No update is found({{ver}})",
"lang_version_skipver": "Update was ignored.", "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": "Do you want auto-updates?(users installed on Microsoft Store select 'No')",
"lang_version_platform_linux": "Was this software installed at Snapcraft(snapd)? When select 'yes', any update was ignored.", "lang_version_platform_linux": "Do you want auto-updates?(users installed on Snapcraft select 'No')",
"lang_version_platform_mac": "Was this software installed at Homebrew Cask? When select 'yes', any update was ignored.", "lang_version_platform_mac": "Do you want auto-updates?(Homebrew Cask users select 'No')",
//login //login
//login/login.js //login/login.js
"lang_login_noauth": "Show TL of unlogined accounts", "lang_login_noauth": "Show TL of unlogined accounts",
@@ -37,6 +37,7 @@ var lang = {
"lang_manager_def": "Default", "lang_manager_def": "Default",
"lang_manager_none": "None", "lang_manager_none": "None",
"lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.", "lang_manager_godev": "Open DevCenter of Misskey. We show also an official documents to refer.",
"lang_manager_logout": "Logout",
//post/bb-md.js //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 //post/emoji.js
@@ -46,6 +47,7 @@ var lang = {
//post/img.js //post/img.js
"lang_postimg_previewdis": "cannot preview", "lang_postimg_previewdis": "cannot preview",
"lang_postimg_aftupload": "You cannot change accounts after uploading.", "lang_postimg_aftupload": "You cannot change accounts after uploading.",
"lang_postimg_failupload": "Failed",
"lang_postimg_delete": "Delete this image.", "lang_postimg_delete": "Delete this image.",
//post/post.js //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_tagTL": "This toot does not contain a default tag. This toot will not be shown on Local TL. Continue?",
@@ -64,6 +66,7 @@ var lang = {
"lang_status_unblock": "Unblock", "lang_status_unblock": "Unblock",
"lang_status_mute": "Mute", "lang_status_mute": "Mute",
"lang_status_unmute": "Unmute", "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_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_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_unemphas": "'s toots are not emphasized. Please reload after this action.",
@@ -109,6 +112,8 @@ var lang = {
//tl/tl.js //tl/tl.js
"lang_tl_media": "Media", "lang_tl_media": "Media",
"lang_tl_reconnect": "Reconnect to streaming API", "lang_tl_reconnect": "Reconnect to streaming API",
//ui/img.js
"lang_img_DLDone": "Downloaded:",
//ui/layout.js //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_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_thisacct": "{{notf}} of this account",
@@ -118,7 +123,7 @@ var lang = {
"lang_layout_linkana": "Auto Link Analyzer", "lang_layout_linkana": "Auto Link Analyzer",
"lang_layout_linkanades": "Auto link analyzer", "lang_layout_linkanades": "Auto link analyzer",
"lang_layout_tts": "Text to speech ", "lang_layout_tts": "Text to speech ",
"lang_layout_reconnect": "Reconnect to streaming API", "lang_layout_reconnect": "Reload this column",
"lang_layout_headercolor": "Header color of this column", "lang_layout_headercolor": "Header color of this column",
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload", "lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
"lang_layout_dm": "Direct Message", "lang_layout_dm": "Direct Message",
@@ -127,6 +132,8 @@ var lang = {
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)", "lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
"lang_layout_leftFold": "Stack to the left", "lang_layout_leftFold": "Stack to the left",
"lang_layout_leftUnfold": "Dock on the right", "lang_layout_leftUnfold": "Dock on the right",
"lang_layout_deleteColumn":"Delete this column",
"lang_layout_deleteColumnDesc":"Delete this column",
//ui/sort.js //ui/sort.js
"lang_sort_gothis": "Go to this column", "lang_sort_gothis": "Go to this column",
"lang_sort_remthis": "Delete this column", "lang_sort_remthis": "Delete this column",
@@ -194,7 +201,7 @@ var lang = {
"lang_parse_endedvote": "Expired", "lang_parse_endedvote": "Expired",
"lang_parse_thread": "Show thread", "lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file", "lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "NSFW media", "lang_parse_nsfw": "sensitive media",
"lang_parse_notffilter":"Show this user's notifications", "lang_parse_notffilter":"Show this user's notifications",
//misskey //misskey
"lang_misskeyparse_renote": "Repost", "lang_misskeyparse_renote": "Repost",
@@ -212,7 +219,7 @@ var lang = {
//setting //setting
"lang_setting_time": "Time format:{{set}}", "lang_setting_time": "Time format:{{set}}",
"lang_setting_theme": "Theme:{{set}}", "lang_setting_theme": "Theme:{{set}}",
"lang_setting_nsfw": "NSFW:{{set}}", "lang_setting_nsfw": "Sensitive media:{{set}}",
"lang_setting_cw": "CW:{{set}}", "lang_setting_cw": "CW:{{set}}",
"lang_setting_cwtext": "Default CW text:{{set}}", "lang_setting_cwtext": "Default CW text:{{set}}",
"lang_setting_cws": "Always CW on:{{set}}", "lang_setting_cws": "Always CW on:{{set}}",

View File

@@ -21,9 +21,9 @@ var lang = {
//common/version.js //common/version.js
"lang_version_usever": "お使いのバージョン{{ver}}は最新です。", "lang_version_usever": "お使いのバージョン{{ver}}は最新です。",
"lang_version_skipver": "アップデートはスキップされました。", "lang_version_skipver": "アップデートはスキップされました。",
"lang_version_platform": "このソフトウェアはMicrosoft Storeからダウンロードされましたか(「はい」を選択すると次回からアップデート通知を無視します。)", "lang_version_platform": "このソフトウェアはMicrosoft Storeからダウンロードされましたか通常はホームページからインストールするため「いいえ」を選んでください。「はい」を選ぶとMicrosoft Storeからアップデートが提供され、アップデートの通知を出しません。",
"lang_version_platform_linux": "このソフトウェアはSnapcraft(snapd)からインストールしましたか?(「はい」を選択すると次回からアップデート通知を無視します。)", "lang_version_platform_linux": "このソフトウェアはSnapcraft(snapd)からインストールしましたか?通常はホームページからインストールするため「いいえ」を選んでください。「はい」を選ぶとSnapcraftからアップデートが提供され、アップデートの通知を出しません。",
"lang_version_platform_mac": "このソフトウェアはHomebrew Caskからインストールしましたか(「はい」を選択すると次回からアップデート通知を無視します。)", "lang_version_platform_mac": "このソフトウェアはHomebrew Caskからインストールしましたか通常はホームページからインストールするため「いいえ」を選んでください。「はい」を選ぶとアップデート通知を出しません。",
//login //login
//login/login.js //login/login.js
"lang_login_noauth": "認証せずに見る", "lang_login_noauth": "認証せずに見る",
@@ -37,6 +37,7 @@ var lang = {
"lang_manager_def": "既定", "lang_manager_def": "既定",
"lang_manager_none": "なし", "lang_manager_none": "なし",
"lang_manager_godev": "MisskeyのDevセンターに移動します。同時に開かれるドキュメントを参考にログインしてください。", "lang_manager_godev": "MisskeyのDevセンターに移動します。同時に開かれるドキュメントを参考にログインしてください。",
"lang_manager_logout": "ログアウト",
//post/bb-md.js //post/bb-md.js
"lang_bbmd_misskey": "TheDeskにおけるMisskeyでは、@を返信として扱いますが、全ての@は消去され別パラメータに入力されます。また、「未収載」を「ホーム」として扱います。", "lang_bbmd_misskey": "TheDeskにおけるMisskeyでは、@を返信として扱いますが、全ての@は消去され別パラメータに入力されます。また、「未収載」を「ホーム」として扱います。",
//post/emoji.js //post/emoji.js
@@ -46,6 +47,7 @@ var lang = {
//post/img.js //post/img.js
"lang_postimg_previewdis": "プレビューできません。", "lang_postimg_previewdis": "プレビューできません。",
"lang_postimg_aftupload": "アップロード後はアカウントを切り替えられません。", "lang_postimg_aftupload": "アップロード後はアカウントを切り替えられません。",
"lang_postimg_failupload": "アップロードに失敗しました。",
"lang_postimg_delete": "この画像を削除します", "lang_postimg_delete": "この画像を削除します",
//post/post.js //post/post.js
"lang_post_tagTL": "デフォルトタグが挿入されていません。このまま投稿するとローカルには表示されません。", "lang_post_tagTL": "デフォルトタグが挿入されていません。このまま投稿するとローカルには表示されません。",
@@ -64,6 +66,7 @@ var lang = {
"lang_status_unblock": "ブロック解除", "lang_status_unblock": "ブロック解除",
"lang_status_mute": "ミュート", "lang_status_mute": "ミュート",
"lang_status_unmute": "ミュート解除", "lang_status_unmute": "ミュート解除",
"lang_status_redraftTitle": "削除して再編集",
"lang_status_redraft": "削除して再編集しますか?そのトゥートの全てのデータがリセットされます。この機能はベータ版です。画像は~v2.4.1で破棄されます。", "lang_status_redraft": "削除して再編集しますか?そのトゥートの全てのデータがリセットされます。この機能はベータ版です。画像は~v2.4.1で破棄されます。",
"lang_status_emphas": "を強調します。リロードしてください。", "lang_status_emphas": "を強調します。リロードしてください。",
"lang_status_unemphas": "を強調解除します。リロードしてください。", "lang_status_unemphas": "を強調解除します。リロードしてください。",
@@ -120,7 +123,7 @@ var lang = {
"lang_layout_linkana": "リンク解析", "lang_layout_linkana": "リンク解析",
"lang_layout_linkanades": "リンクの解析を切り替え", "lang_layout_linkanades": "リンクの解析を切り替え",
"lang_layout_tts": "読み上げ", "lang_layout_tts": "読み上げ",
"lang_layout_reconnect": "ストリーミング再接続", "lang_layout_reconnect": "カラム再読込",
"lang_layout_headercolor": "TLヘッダーカラー", "lang_layout_headercolor": "TLヘッダーカラー",
"lang_layout_nodata": "[ここにトゥートはありません。]<br>F5/⌘+Rで再読込できます。", "lang_layout_nodata": "[ここにトゥートはありません。]<br>F5/⌘+Rで再読込できます。",
"lang_layout_dm": "ダイレクトメッセージ", "lang_layout_dm": "ダイレクトメッセージ",
@@ -129,6 +132,8 @@ var lang = {
"lang_layout_excludingbt": "BT表示(OFF/BT除外/BTのみ)", "lang_layout_excludingbt": "BT表示(OFF/BT除外/BTのみ)",
"lang_layout_leftFold": "左へ重ねる", "lang_layout_leftFold": "左へ重ねる",
"lang_layout_leftUnfold": "右へ出す", "lang_layout_leftUnfold": "右へ出す",
"lang_layout_deleteColumn": "カラム削除",
"lang_layout_deleteColumnDesc": "カラムを削除しますか?",
//ui/sort.js //ui/sort.js
"lang_sort_gothis": "このカラムへ", "lang_sort_gothis": "このカラムへ",
"lang_sort_remthis": "このカラムを削除", "lang_sort_remthis": "このカラムを削除",
@@ -184,8 +189,8 @@ var lang = {
"lang_parse_det": "詳細(メインアカウント経由)", "lang_parse_det": "詳細(メインアカウント経由)",
"lang_parse_redraft": "このトゥートを削除して再編集", "lang_parse_redraft": "このトゥートを削除して再編集",
"lang_parse_followed": "フォローされました。", "lang_parse_followed": "フォローされました。",
"lang_parse_clientop": "クライアント処理", "lang_parse_clientop": "クライアント操作",
"lang_parse_clienttxt": "に対する処理を選択してください。", "lang_parse_clienttxt": " に対する処理を選択してください。",
"lang_parse_clientno": "何もしない", "lang_parse_clientno": "何もしない",
"lang_parse_clientemp": "強調表示/解除", "lang_parse_clientemp": "強調表示/解除",
"lang_parse_clientmute": "ミュート", "lang_parse_clientmute": "ミュート",
@@ -197,7 +202,7 @@ var lang = {
"lang_parse_thread": "会話を表示", "lang_parse_thread": "会話を表示",
"lang_parse_unknown": "添付ファイル", "lang_parse_unknown": "添付ファイル",
"lang_parse_nsfw": "閲覧注意", "lang_parse_nsfw": "閲覧注意",
"lang_parse_notffilter":"このユーザーの通知のみを表示", "lang_parse_notffilter": "このユーザーの通知のみを表示",
//misskey //misskey
"lang_misskeyparse_renote": "再投稿", "lang_misskeyparse_renote": "再投稿",
"lang_misskeyparse_renoteqt": "引用", "lang_misskeyparse_renoteqt": "引用",

View File

@@ -13,12 +13,6 @@ var idata = {
"minohdon.jp_bbcode": "disabled", "minohdon.jp_bbcode": "disabled",
"minohdon.jp_markdown": "disabled", "minohdon.jp_markdown": "disabled",
"minohdon.jp_glitch": "disabled", "minohdon.jp_glitch": "disabled",
"knzk.me": "instance",
"knzk.me_name": "Knzk",
"knzk.me_letters": "5000",
"knzk.me_bbcode": "disabled",
"knzk.me_markdown": "disabled",
"knzk.me_glitch": "disabled",
"mastodos.com": "instance", "mastodos.com": "instance",
"mastodos.com_name": "マストどす", "mastodos.com_name": "マストどす",
"mastodos.com_letters": "500", "mastodos.com_letters": "500",
@@ -90,16 +84,16 @@ var idata = {
"dtp-mstdn.jp_bbcode": "disabled", "dtp-mstdn.jp_bbcode": "disabled",
"dtp-mstdn.jp_markdown": "disabled", "dtp-mstdn.jp_markdown": "disabled",
"dtp-mstdn.jp_glitch": "disabled", "dtp-mstdn.jp_glitch": "disabled",
"misskey.xyz": "misskey", "misskey.io": "misskey",
"misskey.xyz_name": "misskey.xyz", "misskey.io_name": "misskey.io",
"misskey.xyz_letters": "1000", "misskey.io_letters": "1000",
"misskey.xyz_bbcode": "disabled", "misskey.io_bbcode": "disabled",
"misskey.xyz_markdown": "enabled", "misskey.io_markdown": "enabled",
"misskey.xyz_public": "Global", "misskey.io_public": "Global",
"misskey.xyz_post": "Post", "misskey.io_post": "Post",
"misskey.xyz_fav": " reacted your post.", "misskey.io_fav": " reacted your post.",
"misskey.xyz_bt": " reposted your post.", "misskey.io_bt": " reposted your post.",
"misskey.dev": "misskey", "misskey.dev": "misskey.dev",
"misskey.dev_name": "misskey.dev", "misskey.dev_name": "misskey.dev",
"misskey.dev_letters": "1024", "misskey.dev_letters": "1024",
"misskey.dev_bbcode": "disabled", "misskey.dev_bbcode": "disabled",
@@ -114,13 +108,7 @@ var idata = {
"precure.ml_bbcode": "disabled", "precure.ml_bbcode": "disabled",
"precure.ml_markdown": "disabled", "precure.ml_markdown": "disabled",
"precure.ml_post": "キュア!", "precure.ml_post": "キュア!",
"precure.ml_glitch": "disabled", "precure.ml_glitch": "disabled"
"best-friends.chat": "instance",
"best-friends.chat_name": "Best Friends",
"best-friends.chat_letters": "500",
"best-friends.chat_bbcode": "disabled",
"best-friends.chat_markdown": "disabled",
"best-friends.chat_glitch": "disabled",
}; };
localStorage.setItem("instance", JSON.stringify(idata)); localStorage.setItem("instance", JSON.stringify(idata));

View File

@@ -26,6 +26,8 @@ function ck() {
} }
var multi = localStorage.getItem("multi"); var multi = localStorage.getItem("multi");
if (!multi || multi == "[]") { if (!multi || multi == "[]") {
var date = new Date();
localStorage.setItem("showSupportMe", date.getMonth() + 2)
location.href = "acct.html?mode=first&code=true" location.href = "acct.html?mode=first&code=true"
} else { } else {
var obj = JSON.parse(multi); var obj = JSON.parse(multi);
@@ -38,9 +40,10 @@ function ck() {
if (obj[0].domain) { if (obj[0].domain) {
$("#tl").show(); $("#tl").show();
ticker(); ticker();
multiSelector(); multiSelector(false);
verck(ver); verck(ver);
$("#something-wrong img").attr("src", "../../img/thinkingdesk.png") $(".stw").show()
$("#something-wrong img").attr("src", "../../img/thinking.svg")
} }
} }
} }
@@ -77,15 +80,11 @@ function login(url) {
localStorage.setItem("client_secret", json["client_secret"]); localStorage.setItem("client_secret", json["client_secret"]);
$("#auth").show(); $("#auth").show();
$("#masara").hide(); $("#masara").hide();
const { shell } = require('electron'); postMessage(["openUrl", auth], "*")
shell.openExternal(auth);
if ($('#linux:checked').val() == "on") { if ($('#linux:checked').val() == "on") {
} else { } else {
var electron = require("electron"); postMessage(["sendSinmpleIpc", "quit"], "*")
var ipc = electron.ipcRenderer;
ipc.send('quit', 'go');
} }
} }
} }
@@ -164,8 +163,7 @@ function getdata() {
}).then(function (json) { }).then(function (json) {
if (json.error) { if (json.error) {
console.error("Error:" + json.error); console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error, M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
5000);
return; return;
} }
var avatar = json["avatar"]; var avatar = json["avatar"];
@@ -212,8 +210,7 @@ function getdataAdv(domain, at) {
}).then(function (json) { }).then(function (json) {
if (json.error) { if (json.error) {
console.error("Error:" + json.error); console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error, M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
5000);
return; return;
} }
var avatar = json["avatar"]; var avatar = json["avatar"];
@@ -271,8 +268,7 @@ function refresh(target, loadskip) {
}).then(function (json) { }).then(function (json) {
if (json.error) { if (json.error) {
console.error("Error:" + json.error); console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error, M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
5000);
return; return;
} }
var avatar = json["avatar"]; var avatar = json["avatar"];
@@ -294,7 +290,7 @@ function refresh(target, loadskip) {
localStorage.setItem("user-id_" + target, json["id"]); localStorage.setItem("user-id_" + target, json["id"]);
localStorage.setItem("prof_" + target, avatar); localStorage.setItem("prof_" + target, avatar);
localStorage.setItem("follow_" + target, json["following_count"]); localStorage.setItem("follow_" + target, json["following_count"]);
obj[target] = ref; console.log(obj)
var json = JSON.stringify(obj); var json = JSON.stringify(obj);
localStorage.setItem("multi", json); localStorage.setItem("multi", json);
if (!loadskip) { if (!loadskip) {
@@ -408,7 +404,7 @@ function ckdb(acct_id) {
} }
//アカウントを選択…を実装 //アカウントを選択…を実装
function multiSelector() { function multiSelector(parseC) {
var multi = localStorage.getItem("multi"); var multi = localStorage.getItem("multi");
if (!multi) { if (!multi) {
var obj = []; var obj = [];
@@ -455,7 +451,7 @@ function multiSelector() {
$("#local-button").removeClass("hide") $("#local-button").removeClass("hide")
} }
var profimg = acct.prof; var profimg = acct.prof;
localStorage.setItem("prof_" + key, profimg); //localStorage.setItem("prof_" + key, profimg);
if (!profimg) { if (!profimg) {
profimg = "../../img/missing.svg"; profimg = "../../img/missing.svg";
} }
@@ -494,8 +490,10 @@ function multiSelector() {
$("#src-acct-sel").append('<option value="tootsearch">Tootsearch</option>'); $("#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>'); $("#add-acct-sel").append('<option value="noauth">' + lang.lang_login_noauth + '</option><option value="webview">Twitter</option>');
} }
$('select').material_select('update'); $('select').formSelect();
parseColumn(true); if(!parseC){
parseColumn(null, true);
}
} }
//バージョンエンコ //バージョンエンコ

View File

@@ -146,7 +146,17 @@ function multiDel(target) {
var multi = localStorage.getItem("multi"); var multi = localStorage.getItem("multi");
var obj = JSON.parse(multi); var obj = JSON.parse(multi);
//削除確認ダイアログ //削除確認ダイアログ
if (confirm(obj[target]["user"] + "@" + obj[target]["domain"] + lang.lang_manager_confirm)) { Swal.fire({
title: lang.lang_manager_logout,
text: obj[target]["user"] + "@" + obj[target]["domain"] + lang.lang_manager_confirm,
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: lang.lang_yesno,
cancelButtonText: lang.lang_no
}).then((result) => {
if (result.value) {
Object.keys(obj).forEach(function (key) { Object.keys(obj).forEach(function (key) {
var nk = key - 1; var nk = key - 1;
//公開範囲(差分のみ) //公開範囲(差分のみ)
@@ -205,11 +215,22 @@ function multiDel(target) {
localStorage.setItem("column", json); localStorage.setItem("column", json);
} }
})
} }
function multiDel2(target) { function multiDel2(target) {
var multi = localStorage.getItem("multi"); var multi = localStorage.getItem("multi");
var obj = JSON.parse(multi); var obj = JSON.parse(multi);
if (confirm(obj[target]["user"] + "@" + obj[target]["domain"] + lang.lang_manager_confirm)) { Swal.fire({
title: lang.lang_manager_logout,
text: obj[target]["user"] + "@" + obj[target]["domain"] + lang.lang_manager_confirm,
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: lang.lang_yesno,
cancelButtonText: lang.lang_no
}).then((result) => {
if (result.value) {
obj.splice(target, 1); obj.splice(target, 1);
var json = JSON.stringify(obj); var json = JSON.stringify(obj);
localStorage.setItem("multi", json); localStorage.setItem("multi", json);
@@ -254,6 +275,7 @@ function multiDel2(target) {
localStorage.setItem("column", json); localStorage.setItem("column", json);
load(); load();
} }
})
} }
//サポートインスタンス //サポートインスタンス
@@ -282,7 +304,7 @@ function login(url) {
return; return;
} }
if ($('#linux:checked').val() == "on") { if ($('#linux:checked').val() == "on") {
var red = "https://thedesk.top/hello.html" var red = "urn:ietf:wg:oauth:2.0:oob"
} else { } else {
var red = 'thedesk://manager'; var red = 'thedesk://manager';
} }
@@ -310,15 +332,9 @@ function login(url) {
localStorage.setItem("client_secret", json["client_secret"]); localStorage.setItem("client_secret", json["client_secret"]);
$("#auth").show(); $("#auth").show();
$("#add").hide(); $("#add").hide();
const { postMessage(["openUrl", auth], "*")
shell
} = require('electron');
shell.openExternal(auth);
var electron = require("electron");
var ipc = electron.ipcRenderer;
if ($('#linux:checked').val() == "on") { } else { if ($('#linux:checked').val() == "on") { } else {
ipc.send('quit', 'go'); postMessage(["sendSinmpleIpc", "quit"], "*")
} }
} }
} }
@@ -407,16 +423,13 @@ function misskeyAuth(url, mkc) {
httpreq.onreadystatechange = function () { httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) { if (httpreq.readyState === 4) {
var json = httpreq.response; var json = httpreq.response;
const {
shell
} = require('electron');
var token = json.token; var token = json.token;
$("#auth").show(); $("#auth").show();
$("#code").val(token); $("#code").val(token);
$("#add").hide(); $("#add").hide();
$("#misskey").prop("checked", false); $("#misskey").prop("checked", false);
localStorage.setItem("domain_tmp", url); localStorage.setItem("domain_tmp", url);
shell.openExternal(json.url); postMessage(["openUrl", json.url], "*")
} }
} }
} }
@@ -495,7 +508,7 @@ function code(code) {
httpreq.responseType = "json"; httpreq.responseType = "json";
httpreq.send(JSON.stringify({ httpreq.send(JSON.stringify({
grant_type: "authorization_code", grant_type: "authorization_code",
redirect_uri: "https://thedesk.top/hello.html", redirect_uri: "urn:ietf:wg:oauth:2.0:oob",
client_id: id, client_id: id,
client_secret: secret, client_secret: secret,
code: code code: code
@@ -530,8 +543,7 @@ function getdata(domain, at) {
}).then(function (json) { }).then(function (json) {
if (json.error) { if (json.error) {
console.error("Error:" + json.error); console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + escapeHTML(json.error), M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
5000);
return; return;
} }
var avatar = json["avatar"]; var avatar = json["avatar"];
@@ -595,8 +607,7 @@ function refresh(target) {
}).then(function (json) { }).then(function (json) {
if (json.error) { if (json.error) {
console.error("Error:" + json.error); console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error, M.toast({ html: lang.lang_fatalerroroccured + "Error:" + json.error, displayLength: 5000 })
5000);
return; return;
} }
var avatar = json["avatar"]; var avatar = json["avatar"];
@@ -704,12 +715,12 @@ function multisel() {
}); });
} }
$('select').material_select('update'); $('select').formSelect();
} }
function mainacct() { function mainacct() {
var acct_id = $("#main-acct-sel").val(); var acct_id = $("#main-acct-sel").val();
localStorage.setItem("main", acct_id); localStorage.setItem("main", acct_id);
Materialize.toast(lang.lang_manager_mainAcct, 3000); M.toast({ html: lang.lang_manager_mainAcct, displayLength: 3000 })
} }
function colorpicker(key) { function colorpicker(key) {
temp = temp =

View File

@@ -10,16 +10,20 @@ $(document).on('click', 'a', e => {
if (url) { if (url) {
urls = url.match(/https?:\/\/(.+)/); urls = url.match(/https?:\/\/(.+)/);
//トゥートのURLぽかったら //トゥートの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ぽかったら //タグのURLぽかったら
var tags = []; var tags = [];
tags = url.match( tags = url.match(
/https:\/\/([-a-zA-Z0-9@.]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#]+)/ /https:\/\/([^+_]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#]+)/
); );
//メンションっぽかったら //メンションっぽかったら
var ats = []; var ats = [];
ats = url.match( ats = url.match(
/https:\/\/([-a-zA-Z0-9.]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#@]+)/ /https:\/\/([^+_]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#@]+)/
); );
if (toot) { if (toot) {
if (toot[1]) { if (toot[1]) {
@@ -47,11 +51,7 @@ $(document).on('click', 'a', e => {
udgEx(ats[2] + "@" + ats[1], "main"); udgEx(ats[2] + "@" + ats[1], "main");
return false return false
} else { } else {
const { postMessage(["openUrl", url], "*")
shell
} = require('electron');
shell.openExternal(url);
} }
@@ -60,12 +60,11 @@ $(document).on('click', 'a', e => {
//hrefがhttp/httpsならブラウザで //hrefがhttp/httpsならブラウザで
if (urls) { if (urls) {
if (urls[0]) { if (urls[0]) {
const { shell } = require('electron');
if (~url.indexOf("thedeks.top")) { if (~url.indexOf("thedeks.top")) {
//alert("If you recieve this alert, let the developer(Cutls@kirishima.cloud) know it with a screenshot."); //alert("If you recieve this alert, let the developer(Cutls@kirishima.cloud) know it with a screenshot.");
url = "https://thedesk.top"; url = "https://thedesk.top";
} }
shell.openExternal(url); postMessage(["openUrl", url], "*")
} else { } else {
location.href = url; location.href = url;
@@ -88,12 +87,6 @@ function execCopy(string) {
var result = document.execCommand('copy'); var result = document.execCommand('copy');
return result; return result;
} }
//Nano
function nano() {
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.send('nano', "");
}
function progshow(e) { function progshow(e) {
if (e.lengthComputable) { if (e.lengthComputable) {
var percent = e.loaded / e.total; var percent = e.loaded / e.total;
@@ -106,30 +99,6 @@ function progshow(e) {
} }
} }
} }
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...");
}
}
})
//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"); var webview = document.getElementById("webview");
webview.openDevTools(); webview.openDevTools();
@@ -139,14 +108,6 @@ function opendev() {
}); });
*/ */
} }
var webviewDom = document.getElementById('webview');
const {
shell
} = require('electron');
webviewDom.addEventListener('new-window', function (e) {
shell.openExternal(e.url);
});
function playSound() { function playSound() {
window.AudioContext = window.AudioContext || window.webkitAudioContext; window.AudioContext = window.AudioContext || window.webkitAudioContext;
context = new AudioContext(); context = new AudioContext();
@@ -163,3 +124,50 @@ function playSound() {
volumeControl.gain.value = 0.8 volumeControl.gain.value = 0.8
source.start(0); 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]
})
}
}

View File

@@ -1,3 +1 @@
//jQuery読む //jQuery読む
window.jQuery = window.$ = require('./js/common/jquery.js');
var Hammer = require('./js/common/hammer.min.js');

View File

@@ -1,6 +1,4 @@
//jQuery読む document.title="TheDesk"
window.jQuery = window.$ = require('../../js/common/jquery.js');
var Hammer = require('../../js/common/hammer.min.js');
$.strip_tags = function (str, allowed) { $.strip_tags = function (str, allowed) {
if (!str) { if (!str) {
return ""; return "";
@@ -89,27 +87,7 @@ function formattimeutc(date) {
} }
return escapeHTML(str); return escapeHTML(str);
} }
var electron = require("electron"); postMessage(["sendSinmpleIpc", "custom-css-request"], "*")
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() { function makeCID() {
return randomStr(8) + "-" + randomStr(4) + "-" + randomStr(4) + "-" + randomStr(4) + "-" + randomStr(12); return randomStr(8) + "-" + randomStr(4) + "-" + randomStr(4) + "-" + randomStr(4) + "-" + randomStr(12);
} }
@@ -193,4 +171,29 @@ $.mb_substr = function (str, begin, end) {
} }
return ret; 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"); localStorage.removeItem("errors");

169
app/js/platform/preload.js Normal file
View File

@@ -0,0 +1,169 @@
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.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.on('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
View 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));

View File

@@ -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
}
})
})
}

View File

@@ -40,7 +40,7 @@ function mdCheck() {
$("#trendtag").html(""); $("#trendtag").html("");
} }
if (localStorage.getItem("mode_" + domain) == "misskey") { if (localStorage.getItem("mode_" + domain) == "misskey") {
Materialize.toast(lang.lang_bbmd_misskey, 5000); M.toast({ html: lang.lang_bbmd_misskey, displayLength: 5000 })
} }
if (idata[domain + "_letters"]) { if (idata[domain + "_letters"]) {
$("#textarea").attr("data-length", idata[domain + "_letters"]) $("#textarea").attr("data-length", idata[domain + "_letters"])

View File

@@ -10,8 +10,6 @@ function emojiToggle(reaction) {
if (!selin) { if (!selin) {
selin = 0; selin = 0;
} }
localStorage.setItem("cursor", selin);
if ($("#emoji").hasClass("hide")) { if ($("#emoji").hasClass("hide")) {
$("#emoji").removeClass("hide") $("#emoji").removeClass("hide")
$("#right-side").show() $("#right-side").show()
@@ -173,35 +171,31 @@ function emojiList(target, reaction) {
//絵文字など様々なものをテキストボックスに挿入 //絵文字など様々なものをテキストボックスに挿入
function emojiInsert(code, del) { function emojiInsert(code, del) {
var now = $("#textarea").val(); var now = $("#textarea").val();
var selin = localStorage.getItem("cursor"); var selin = $("#textarea").prop('selectionStart');
if (localStorage.getItem("emoji-zero-width") == "yes") { if (localStorage.getItem("emoji-zero-width") == "yes") {
var brank = ""; var blank = "";
} else { } else {
var brank = " "; var blank = " ";
} }
var now = $("#textarea").val();
if (selin > 0) {
var before = now.substr(0, selin); var before = now.substr(0, selin);
var after = now.substr(selin, now.length); if (before.slice(-1) != " ") {
newt = before + brank + code + brank + after; before = before + blank
} else {
newt = code + brank;
} }
var after = now.substr(selin, now.length);
if (after.slice(-1) != " ") {
after = blank + after
}
newt = before + code + after;
if (!del) { if (!del) {
$("#textarea").val(newt); $("#textarea").val(newt);
//emoji(); //emoji();
} else { } else {
var regExp = new RegExp(del, "g"); var regExp = new RegExp(del.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
var now = now.replace(regExp, ""); var now = now.replace(regExp, "");
$("#textarea").val(now + brank + code); $("#textarea").val(now + blank + code);
} }
$("#textarea").focus(); $("#textarea").focus();
var selin = $("#textarea").prop('selectionStart');
if (!selin) {
selin = 0;
}
localStorage.setItem("cursor", selin);
} }
//改行挿入 //改行挿入
function brInsert(code) { function brInsert(code) {

View File

@@ -40,9 +40,7 @@ function pimg(files) {
for (i = 0; i < files.length; i++) { for (i = 0; i < files.length; i++) {
var dot = files[i].path.match(/\.(.+)$/)[1]; var dot = files[i].path.match(/\.(.+)$/)[1];
if (dot == "bmp" || dot == "BMP") { if (dot == "bmp" || dot == "BMP") {
var electron = require("electron"); postMessage(["bmpImage", [files[i].path, i]], "*")
var ipc = electron.ipcRenderer;
ipc.send('bmp-image', [files[i].path, i]);
todo(lang.lang_progress); todo(lang.lang_progress);
} else { } else {
@@ -50,18 +48,13 @@ function pimg(files) {
} }
} }
} }
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() { function closedrop() {
$("#drag").css('display', 'none'); $("#drag").css('display', 'none');
} }
//ファイル選択 //ファイル選択
function fileselect() { function fileselect() {
ipc.send('file-select', ""); postMessage(["sendSinmpleIpc", "file-select"], "*")
} }
//ファイル読み込み //ファイル読み込み
@@ -127,6 +120,16 @@ function media(b64, type, no) {
httpreq.onreadystatechange = function () { httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) { if (httpreq.readyState === 4) {
var json = httpreq.response; var json = httpreq.response;
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"); var img = localStorage.getItem("img");
if (json.type.indexOf("image") != -1) { 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 + '">'; var html = '<img src="' + json[previewer] + '" class="preview-img pointer" data-media="' + json["id"] + '" onclick="deleteImage(\'' + json["id"] + '\')" title="' + lang.lang_postimg_delete + '">';
@@ -149,9 +152,9 @@ function media(b64, type, no) {
} }
todc(); todc();
$(".toot-btn-group").prop("disabled", false); $(".toot-btn-group").prop("disabled", false);
$('select').material_select(); $('select').formSelect();
$("#mec").text(lang.lang_there); $("#mec").text(lang.lang_there);
Materialize.toast(lang.lang_postimg_aftupload, 1000); M.toast({ html: lang.lang_postimg_aftupload, displayLength: 1000 })
$("#imgup").text(""); $("#imgup").text("");
$("#imgsel").show(); $("#imgsel").show();
localStorage.removeItem("image"); localStorage.removeItem("image");
@@ -211,18 +214,17 @@ element.addEventListener("paste", function (e) {
// 画像以外がペーストされたときのために、元に戻しておく // 画像以外がペーストされたときのために、元に戻しておく
}); });
//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) { function deleteImage(key) {
if (!confirm(lang.lang_postimg_delete)) { Swal.fire({
return false; 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 media = $("#media").val();
var arr = media.split(","); var arr = media.split(",");
for (var i = 0; i < media.length; i++) { for (var i = 0; i < media.length; i++) {
@@ -233,4 +235,7 @@ function deleteImage(key) {
} }
$("#media").val(arr.join(",")); $("#media").val(arr.join(","));
$('#preview [data-media=' + key + ']').remove(); $('#preview [data-media=' + key + ']').remove();
}
})
} }

View File

@@ -31,7 +31,7 @@ function renoteqt(id, acct_id) {
$("#rec").text("Renote"); $("#rec").text("Renote");
$("#post-acct-sel").val(acct_id); $("#post-acct-sel").val(acct_id);
$("#post-acct-sel").prop("disabled", true); $("#post-acct-sel").prop("disabled", true);
$('select').material_select(); $('select').formSelect();
$("#textarea").attr("placeholder", lang.lang_misskeyparse_qt); $("#textarea").attr("placeholder", lang.lang_misskeyparse_qt);
$("#textarea").focus(); $("#textarea").focus();
} }
@@ -43,7 +43,7 @@ function misskeyreply(id, acct_id) {
$("#rec").text("Renote"); $("#rec").text("Renote");
$("#post-acct-sel").val(acct_id); $("#post-acct-sel").val(acct_id);
$("#post-acct-sel").prop("disabled", true); $("#post-acct-sel").prop("disabled", true);
$('select').material_select(); $('select').formSelect();
$("#textarea").attr("placeholder", lang.lang_misskeyparse_qt); $("#textarea").attr("placeholder", lang.lang_misskeyparse_qt);
$("#textarea").focus(); $("#textarea").focus();
} }
@@ -102,7 +102,7 @@ function reactioncustom(acct_id, id) {
$("#unreact").hide(); $("#unreact").hide();
$("#addreact").removeClass("hide"); $("#addreact").removeClass("hide");
$("#post-acct-sel").val(acct_id); $("#post-acct-sel").val(acct_id);
$('select').material_select(); $('select').formSelect();
localStorage.setItem("nohide", true); localStorage.setItem("nohide", true);
show() show()
emojiToggle(true) emojiToggle(true)

View File

@@ -17,55 +17,41 @@ function post(mode, postvis) {
var acct_id = $("#post-acct-sel").val(); var acct_id = $("#post-acct-sel").val();
localStorage.setItem("last-use", acct_id); localStorage.setItem("last-use", acct_id);
var domain = localStorage.getItem("domain_" + 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 (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")) { if (!localStorage.getItem("cw_sentence")) {
var cw_sent = 500; var cw_sent = 500;
} else { } else {
var cw_sent = localStorage.getItem("cw_sentence"); var cw_sent = localStorage.getItem("cw_sentence");
} }
if (!localStorage.getItem("cw_letters")) { if (!localStorage.getItem("cw_letters")) {
var cw_ltres = 500; var cw_ltres = 7000;
} else { } else {
var cw_ltres = localStorage.getItem("cw_letters"); var cw_ltres = localStorage.getItem("cw_letters");
} }
if (domain != "kirishima.cloud") { if (domain != "kirishima.cloud") {
if (mode != "pass" && !$("#cw").hasClass("cw-avail") && (str.length > cw_sent || (str.split("\n").length - 1) > cw_ltres)) { 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) + "..."; var plus = str.replace(/\n/g, "").slice(0, 10) + "...";
const options = { Swal.fire({
type: 'info',
title: lang.lang_post_cwtitle, title: lang.lang_post_cwtitle,
message: lang.lang_post_cwtxt + plus, text: lang.lang_post_cwtxt + plus,
buttons: [lang.lang_post_btn1, lang.lang_post_btn2, lang.lang_post_btn3] type: 'info',
} showCancelButton: true,
dialog.showMessageBox(options, function (arg) { confirmButtonColor: '#3085d6',
if (arg === 1) { 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-text").show();
$("#cw").addClass("yellow-text"); $("#cw").addClass("yellow-text");
$("#cw").addClass("cw-avail"); $("#cw").addClass("cw-avail");
$("#cw-text").val(plus); $("#cw-text").val(plus);
post("pass"); post("pass")
} else if (arg === 2) {
post("pass");
} }
}) })
return false; return false;
@@ -104,22 +90,11 @@ function post(mode, postvis) {
} else { } else {
var vis = $("#vis").text(); var vis = $("#vis").text();
} }
if (vis != "inherit" && vis != "local") { if (vis != "inherit" && vis != "local") {
toot.visibility = vis; toot.visibility = vis;
} else if (vis == "local") { } else if (vis == "local") {
toot.status = str + "👁️"; 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")) { if ($("#cw").hasClass("cw-avail")) {
var spo = $("#cw-text").val(); var spo = $("#cw-text").val();
cw(); cw();
@@ -218,9 +193,9 @@ function misskeyPost() {
} }
var vis = $("#vis").text(); var vis = $("#vis").text();
if (vis == "unlisted") { if (vis == "unlisted") {
vis == "home" vis = "home"
} else if (vis == "direct") { } else if (vis == "direct") {
vis == "specified"; vis = "specified";
toot.visibleUserIds = str.match(/@([a-zA-Z0-9_@.-]+)(\s|$)/g).join('').split("@"); toot.visibleUserIds = str.match(/@([a-zA-Z0-9_@.-]+)(\s|$)/g).join('').split("@");
} }
if (vis != "inherit") { if (vis != "inherit") {
@@ -306,7 +281,7 @@ function clear() {
if (localStorage.getItem("mainuse") == "main") { if (localStorage.getItem("mainuse") == "main") {
$("#post-acct-sel").val(localStorage.getItem("main")); $("#post-acct-sel").val(localStorage.getItem("main"));
} }
$('select').material_select(); $('select').formSelect();
$("#left-side").show(); $("#left-side").show();
$("#default-emoji").show(); $("#default-emoji").show();
$("#unreact").show(); $("#unreact").show();

View File

@@ -45,7 +45,10 @@ function vis(set) {
var acct_id = $("#post-acct-sel").val(); var acct_id = $("#post-acct-sel").val();
localStorage.setItem("vis-memory-" + acct_id, set); localStorage.setItem("vis-memory-" + acct_id, set);
} }
$('.dropdown-button').dropdown('close'); var ins = M.Dropdown.getInstance($('#dropdown1'))
if(ins){
ins.close();
}
} }
function loadVis() { function loadVis() {
var vist = localStorage.getItem("vis"); var vist = localStorage.getItem("vis");

View File

@@ -43,7 +43,7 @@ function fav(id, acct_id, remote) {
$(".fav_" + id).addClass("yellow-text"); $(".fav_" + id).addClass("yellow-text");
} }
} else { } else {
Materialize.toast(lang.lang_status_favWarn, 1000); M.toast({ html: lang.lang_status_favWarn, displayLength: 1000 })
} }
} }
} }
@@ -84,13 +84,13 @@ function rt(id, acct_id, remote) {
if ($("[toot-id=" + id + "]").hasClass("rted")) { if ($("[toot-id=" + id + "]").hasClass("rted")) {
$("[toot-id=" + id + "]").removeClass("rted"); $("[toot-id=" + id + "]").removeClass("rted");
$(".rt_" + id).removeClass("teal-text"); $(".rt_" + id).removeClass("light-blue-text");
} else { } else {
$("[toot-id=" + id + "]").addClass("rted"); $("[toot-id=" + id + "]").addClass("rted");
$(".rt_" + id).addClass("teal-text"); $(".rt_" + id).addClass("light-blue-text");
} }
} else { } else {
Materialize.toast(lang.lang_status_btWarn, 1000); M.toast({ html: lang.lang_status_btWarn, displayLength: 1000 })
} }
} }
} }
@@ -116,16 +116,12 @@ function follow(acct_id, remote) {
} }
var domain = localStorage.getItem("domain_" + acct_id); var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at"); var at = localStorage.getItem("acct_" + acct_id + "_at");
var user = $("#his-acct").text();
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
if (localStorage.getItem("mode_" + domain) == "misskey") { if (localStorage.getItem("mode_" + domain) == "misskey") {
var start = "https://" + domain + "/api/following/" + flagm; var start = "https://" + domain + "/api/following/" + flagm;
var user = $("#his-acct").text();
var ent = { "i": at, "userId": id } var ent = { "i": at, "userId": id }
} else if (remote == "true" && flag == "follow") { } else if (remote == "true" && flag == "follow") {
var start = "https://" + domain + "/api/v1/follows";
var user = $("#his-acct").text();
var ent = { "uri": user }
} else {
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
var ent = {} var ent = {}
} }
var httpreq = new XMLHttpRequest(); var httpreq = new XMLHttpRequest();
@@ -151,15 +147,28 @@ function follow(acct_id, remote) {
//ブロック //ブロック
function block(acct_id) { function block(acct_id) {
if ($("#his-data").hasClass("blocking")) {
var flag = "unblock";
var txt = lang.lang_status_unmute
} else {
var flag = "block";
var txt = lang.lang_status_block
}
Swal.fire({
title: txt,
text: "",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: lang.lang_yesno,
cancelButtonText: lang.lang_no
}).then((result) => {
if (result.value) {
if (!acct_id) { if (!acct_id) {
var acct_id = $('#his-data').attr("use-acct"); var acct_id = $('#his-data').attr("use-acct");
} }
var id = $("#his-data").attr("user-id"); var id = $("#his-data").attr("user-id");
if ($("#his-data").hasClass("blocking")) {
var flag = "unblock";
} else {
var flag = "block";
}
var domain = localStorage.getItem("domain_" + acct_id); var 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 start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
@@ -180,21 +189,37 @@ function block(acct_id) {
} }
} }
} }
}
});
} }
//ミュート //ミュート
function mute(acct_id) { function muteDo(acct_id) {
if ($("#his-data").hasClass("muting")) {
var flag = "unmute";
var flagm = "delete";
var txt = lang.lang_status_unmute
} else {
var flag = "mute";
var flagm = "create";
var txt = lang.lang_status_mute
}
Swal.fire({
title: txt,
text: "",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: lang.lang_yesno,
cancelButtonText: lang.lang_no
}).then((result) => {
if (result.value) {
if (!acct_id) { if (!acct_id) {
var acct_id = $('#his-data').attr("use-acct"); var acct_id = $('#his-data').attr("use-acct");
} }
var id = $("#his-data").attr("user-id"); var id = $("#his-data").attr("user-id");
if ($("#his-data").hasClass("muting")) {
var flag = "unmute";
var flagm = "delete";
} else {
var flag = "mute";
var flagm = "create";
}
var domain = localStorage.getItem("domain_" + acct_id); var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at"); var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) == "misskey") { if (localStorage.getItem("mode_" + domain) == "misskey") {
@@ -222,6 +247,9 @@ function mute(acct_id) {
} }
} }
} }
}
});
} }
//投稿削除 //投稿削除
@@ -253,7 +281,17 @@ function del(id, acct_id) {
} }
//redraft //redraft
function redraft(id, acct_id) { function redraft(id, acct_id) {
if (confirm(lang.lang_status_redraft)) { 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(); show();
del(id, acct_id); del(id, acct_id);
$("#post-acct-sel").prop("disabled", true); $("#post-acct-sel").prop("disabled", true);
@@ -286,6 +324,7 @@ function redraft(id, acct_id) {
$("#cw-text").val(cwtxt); $("#cw-text").val(cwtxt);
} }
} }
})
} }
//ピン留め //ピン留め
function pin(id, acct_id) { function pin(id, acct_id) {
@@ -373,7 +412,7 @@ function empUser() {
if (!obj) { if (!obj) {
var obj = []; var obj = [];
obj.push(id); obj.push(id);
Materialize.toast(id + lang.lang_status_emphas, 4000); M.toast({ html: id + lang.lang_status_emphas, displayLength: 4000 })
} else { } else {
var can; var can;
Object.keys(obj).forEach(function (key) { Object.keys(obj).forEach(function (key) {
@@ -383,7 +422,7 @@ function empUser() {
} else { } else {
can = true; can = true;
obj.splice(key, 1); obj.splice(key, 1);
Materialize.toast(id + lang.lang_status_unemphas, 4000); M.toast({ html: id + lang.lang_status_unemphas, displayLength: 4000 })
} }
}); });
} }
@@ -425,7 +464,7 @@ function pinUser() {
//URLコピー //URLコピー
function tootUriCopy(url) { function tootUriCopy(url) {
execCopy(url); execCopy(url);
Materialize.toast(lang.lang_details_url, 1500); M.toast({ html: lang.lang_details_url, displayLength: 1500 })
} }
//他のアカウントで… //他のアカウントで…
@@ -460,7 +499,9 @@ function staEx(mode) {
} }
function toggleAction(id, tlid, acct_id) { function toggleAction(id, tlid, acct_id) {
if (tlid == "notf") { if (tlid == "notf") {
var tlide = "[data-notf=" + acct_id + "]"; var tlide = "[data-acct=" + acct_id + "] .notf-timeline";
} else if (tlid == "user") {
var tlide = "#his-tl-contents";
} else { } else {
var tlide = "[tlid=" + tlid + "]"; var tlide = "[tlid=" + tlid + "]";
} }

View File

@@ -8,6 +8,7 @@ var oldSuggest;
var suggest; var suggest;
input.addEventListener("focus", function () { input.addEventListener("focus", function () {
localStorage.removeItem("cursor");
var acct_id = $("#post-acct-sel").val(); var acct_id = $("#post-acct-sel").val();
$("#suggest").html(""); $("#suggest").html("");
window.clearInterval(timer); window.clearInterval(timer);
@@ -66,7 +67,7 @@ input.addEventListener("focus", function () {
} }
var domain = localStorage.getItem("domain_" + acct_id); var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at"); var at = localStorage.getItem("acct_" + acct_id + "_at");
suggest = "https://" + domain + "/api/v1/search?q=" + q suggest = "https://" + domain + "/api/v2/search?q=" + q
if (suggest != oldSuggest) { if (suggest != oldSuggest) {
console.log("Try to get suggest at " + suggest) console.log("Try to get suggest at " + suggest)
fetch(suggest, { fetch(suggest, {
@@ -81,18 +82,43 @@ input.addEventListener("focus", function () {
todo(error); todo(error);
console.error(error); console.error(error);
}).then(function (json) { }).then(function (json) {
console.log(["Search", json]);
//ハッシュタグ
if (json.hashtags[0] && tag) { if (json.hashtags[0] && tag) {
if (tag[1]) { if (tag[1]) {
var tags = ""; var tags = [];
Object.keys(json.hashtags).forEach(function (key4) { Object.keys(json.hashtags).forEach(function (key4) {
var tag = json.hashtags[key4]; var tag = json.hashtags[key4];
if (tag != q) { var his = tag.history;
tags = tags + '<a onclick="tagInsert(\'#' + tag + '\',\'#' + q + 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;
'\')" class="pointer">#' + tag + '</a><br>'; tagHTML = '<br><a onclick="tagInsert(\'#' + escapeHTML(tag.name) + '\',\'#' + q + '\')" class="pointer">#' +
escapeHTML(tag.name) + '</a>&nbsp;' + 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() $("#right-side").show()
$("#suggest").html("Tags:<br>" + tags);
$("#poll").addClass("hide") $("#poll").addClass("hide")
$("#emoji").addClass("hide") $("#emoji").addClass("hide")
} }
@@ -131,7 +157,7 @@ function tagInsert(code, del) {
var selin = $("#textarea").prop('selectionStart'); var selin = $("#textarea").prop('selectionStart');
if (!del) { if (!del) {
} else { } else {
var regExp = new RegExp(del, "g"); var regExp = new RegExp(del.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
var now = now.replace(regExp, ""); var now = now.replace(regExp, "");
selin = selin - del.length; selin = selin - del.length;
} }

View File

@@ -15,7 +15,7 @@ function re(id, ats_cm, acct_id, mode) {
$("#rec").text(lang.lang_yesno); $("#rec").text(lang.lang_yesno);
$("#post-acct-sel").val(acct_id); $("#post-acct-sel").val(acct_id);
$("#post-acct-sel").prop("disabled", true); $("#post-acct-sel").prop("disabled", true);
$('select').material_select(); $('select').formSelect();
$("#textarea").attr("placeholder", lang.lang_usetxtbox_reply); $("#textarea").attr("placeholder", lang.lang_usetxtbox_reply);
$("#textarea").focus(); $("#textarea").focus();
var profimg = localStorage.getItem("prof_" + acct_id); var profimg = localStorage.getItem("prof_" + acct_id);
@@ -58,7 +58,7 @@ function qt(id, acct_id, at, url) {
html = $.strip_tags(html); html = $.strip_tags(html);
$("#textarea").val("\n" + "@" + at + " " + html + "\n" + url); $("#textarea").val("\n" + "@" + at + " " + html + "\n" + url);
} }
$("#textarea").focus();
$("#post-acct-sel").val(acct_id); $("#post-acct-sel").val(acct_id);
$('select').material_select(); $('select').formSelect();
$("#textarea").focus();
} }

View File

@@ -155,7 +155,7 @@ function additionalIndv(tlid, acct_id, id) {
}); });
} else { } else {
var id = $("[toot-id=" + id + "] .toot a").parents('.cvo').attr("toot-id"); var id = $("[toot-id=" + id + "] .toot a").parents('.cvo').attr("toot-id");
var start = "https://" + domain + "/api/v1/statuses/" + id + "/card"; var start = "https://" + domain + "/api/v1/statuses/" + id;
fetch(start, { fetch(start, {
method: 'GET', method: 'GET',
headers: { headers: {
@@ -169,6 +169,7 @@ function additionalIndv(tlid, acct_id, id) {
todo(error); todo(error);
console.error(error); console.error(error);
}).then(function (json) { }).then(function (json) {
json = json.card;
//このリンク鳥やんけ、ってとき //このリンク鳥やんけ、ってとき
if (json.provider_name == "Twitter") { if (json.provider_name == "Twitter") {
if (json.image) { if (json.image) {

View File

@@ -82,7 +82,7 @@ function details(id, acct_id, tlid, mode) {
} else { } else {
$("#tootmodal").attr("data-user", scn); $("#tootmodal").attr("data-user", scn);
} }
context(id, acct_id); getContext(id, acct_id);
var dom = null; var dom = null;
if (!local) { if (!local) {
dom = scn.replace(/.+@/g, ''); dom = scn.replace(/.+@/g, '');
@@ -99,8 +99,10 @@ function details(id, acct_id, tlid, mode) {
if ($("#toot-this div").hasClass("cvo")) { if ($("#toot-this div").hasClass("cvo")) {
$("#toot-this").removeClass("cvo"); $("#toot-this").removeClass("cvo");
} else { } else {
if(!$("#toot-this .cvo").hasClass("cvo")){
$("#toot-this").addClass("cvo"); $("#toot-this").addClass("cvo");
} }
}
if (!$("#activator").hasClass("active")) { if (!$("#activator").hasClass("active")) {
$('#det-col').collapsible('open', 4); $('#det-col').collapsible('open', 4);
} }
@@ -125,14 +127,7 @@ function replyTL(id, acct_id) {
}) })
} }
} else { } else {
var start = "https://" + domain + "/api/v1/statuses/" + id; return false
var i = {
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + at
},
}
} }
fetch(start, i).then(function (response) { fetch(start, i).then(function (response) {
return response.json(); return response.json();
@@ -155,27 +150,13 @@ function replyTL(id, acct_id) {
if (json[rep]) { if (json[rep]) {
replyTL(json[rep][0], acct_id); 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 domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at"); var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) == "misskey") { if (localStorage.getItem("mode_" + domain) == "misskey") {
@@ -228,6 +209,14 @@ function context(id, acct_id) {
$("#toot-after .hide").html(lang.lang_details_filtered); $("#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"); $("#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(); jQuery("time.timeago").timeago();
} }
@@ -466,10 +455,10 @@ function cbCopy(mode) {
if (mode == "emb") { 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 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) execCopy(emb)
Materialize.toast(lang.lang_details_embed, 1500); M.toast({ html: lang.lang_details_embed, displayLength: 1500 })
} else { } else {
if (execCopy(url)) { if (execCopy(url)) {
Materialize.toast(lang.lang_details_url, 1500); M.toast({ html: lang.lang_details_url, displayLength: 1500 })
} }
} }
@@ -485,7 +474,7 @@ function staCopy(id) {
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1"); html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1");
html = $.strip_tags(html); html = $.strip_tags(html);
if (execCopy(html)) { if (execCopy(html)) {
Materialize.toast(lang.lang_details_txt, 1500); M.toast({ html: lang.lang_details_txt, displayLength: 1500 })
} }
} }
@@ -513,17 +502,13 @@ function trans(tar, to) {
todo(error); todo(error);
console.error(error); console.error(error);
}).then(function (text) { }).then(function (text) {
$("#toot-this .additional").html('<span class="gray">' + text.text + '</span>'); $("#toot-this .additional").html('<span class="gray translate">' + text.text + '</span>');
}); });
} }
//ブラウザで開く //ブラウザで開く
function brws() { function brws() {
var url = $("#tootmodal").attr("data-url"); var url = $("#tootmodal").attr("data-url");
const { postMessage(["openUrl", url], "*")
shell
} = require('electron');
shell.openExternal(url);
} }
//外部からトゥート開く //外部からトゥート開く
function detEx(url, acct_id) { function detEx(url, acct_id) {
@@ -546,11 +531,7 @@ function detEx(url, acct_id) {
console.error(error); console.error(error);
}).then(function (json) { }).then(function (json) {
if (!json.statuses) { if (!json.statuses) {
const { postMessage(["openUrl", url], "*")
shell
} = require('electron');
shell.openExternal(url);
} else { } else {
var id = json.statuses[0].id; var id = json.statuses[0].id;
$(".loadp").text($(".loadp").attr("href")); $(".loadp").text($(".loadp").attr("href"));

View File

@@ -77,12 +77,12 @@ function catchToggle(tlid) {
localStorage.removeItem("catch_" + tlid); localStorage.removeItem("catch_" + tlid);
$("#sta-del-" + tlid).text("Off"); $("#sta-del-" + tlid).text("Off");
$("#sta-del-" + tlid).css("color", 'red'); $("#sta-del-" + tlid).css("color", 'red');
parseColumn(); parseColumn(tlid);
} else { } else {
localStorage.setItem("catch_" + tlid, "true"); localStorage.setItem("catch_" + tlid, "true");
$("#sta-del-" + tlid).text("On"); $("#sta-del-" + tlid).text("On");
$("#sta-del-" + tlid).css("color", '#009688'); $("#sta-del-" + tlid).css("color", '#009688');
parseColumn(); parseColumn(tlid);
} }
} }
function catchCheck(tlid) { function catchCheck(tlid) {
@@ -370,7 +370,7 @@ function filterUpdateInternal(json, type) {
var text = $(elem).find('.toot').html(); var text = $(elem).find('.toot').html();
Object.keys(home).forEach(function (key8) { Object.keys(home).forEach(function (key8) {
var word = home[key8]; var word = home[key8];
var regExp = new RegExp(word, "g"); var regExp = new RegExp(word.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
if ($.strip_tags(text).match(regExp)) { if ($.strip_tags(text).match(regExp)) {
$("[toot-id=" + id + "]").addClass("hide"); $("[toot-id=" + id + "]").addClass("hide");
} }
@@ -386,33 +386,34 @@ function filterUpdateInternal(json, type) {
*/ */
//通知フィルター //通知フィルター
function exclude(key) { function exclude(key) {
localStorage.setItem("exclude-" + key, "")
var excludetxt = localStorage.getItem("exclude-" + key); var excludetxt = localStorage.getItem("exclude-" + key);
if ($('#exc-reply-' + key + ':checked').val()) { if ($('#exc-reply-' + key + ':checked').val()) {
excludetxt = "?exclude_types[]=mention" excludetxt = "?exclude_types[]=mention"
} }
if ($('#exc-fav-' + key + ':checked').val()) { if ($('#exc-fav-' + key + ':checked').val()) {
if (!excludetxt || excludetxt !="") { if (excludetxt || excludetxt !="") {
excludetxt = excludetxt + "&exclude_types[]=favourite" excludetxt = excludetxt + "&exclude_types[]=favourite"
} else { } else {
excludetxt = "?exclude_types[]=favourite" excludetxt = "?exclude_types[]=favourite"
} }
} }
if ($('#exc-bt-' + key + ':checked').val()) { if ($('#exc-bt-' + key + ':checked').val()) {
if (!excludetxt || excludetxt !="") { if (excludetxt || excludetxt !="") {
excludetxt = excludetxt + "&exclude_types[]=reblog" excludetxt = excludetxt + "&exclude_types[]=reblog"
} else { } else {
excludetxt = "?exclude_types[]=reblog" excludetxt = "?exclude_types[]=reblog"
} }
} }
if ($('#exc-follow-' + key + ':checked').val()) { if ($('#exc-follow-' + key + ':checked').val()) {
if (!excludetxt || excludetxt !="") { if (excludetxt || excludetxt !="") {
excludetxt = excludetxt + "&exclude_types[]=follow" excludetxt = excludetxt + "&exclude_types[]=follow"
} else { } else {
excludetxt = "?exclude_types[]=follow" excludetxt = "?exclude_types[]=follow"
} }
} }
if ($('#exc-poll-' + key + ':checked').val()) { if ($('#exc-poll-' + key + ':checked').val()) {
if (!excludetxt || excludetxt !="") { if (excludetxt || excludetxt !="") {
excludetxt = excludetxt + "&exclude_types[]=poll" excludetxt = excludetxt + "&exclude_types[]=poll"
} else { } else {
excludetxt = "?exclude_types[]=poll" excludetxt = "?exclude_types[]=poll"
@@ -420,7 +421,7 @@ function exclude(key) {
} else { } else {
} }
localStorage.setItem("exclude-" + key, excludetxt) localStorage.setItem("exclude-" + key, excludetxt)
parseColumn(); parseColumn(key);
} }
function excludeCk(key, target) { function excludeCk(key, target) {
var exc = localStorage.getItem("exclude-" + key); var exc = localStorage.getItem("exclude-" + key);
@@ -443,15 +444,15 @@ function checkNotfFilter(tlid){
} }
function resetNotfFilter(tlid){ function resetNotfFilter(tlid){
localStorage.setItem("exclude-" + tlid, "") localStorage.setItem("exclude-" + tlid, "")
parseColumn(); parseColumn(tlid);
} }
function notfFilter(id,tlid){ function notfFilter(id,tlid,acct_id){
var excludetxt = localStorage.getItem("exclude-" + tlid); var excludetxt = localStorage.getItem("exclude-" + tlid);
if (!excludetxt || excludetxt !="") { if (excludetxt || excludetxt !="") {
excludetxt = excludetxt + "&account_id="+id excludetxt = excludetxt + "&account_id="+id
} else { } else {
excludetxt = "?account_id="+id excludetxt = "?account_id="+id
} }
localStorage.setItem("exclude-" + tlid, excludetxt) localStorage.setItem("exclude-" + tlid, excludetxt)
parseColumn(); parseColumn(tlid);
} }

View File

@@ -50,14 +50,18 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
native = "yes"; native = "yes";
} }
//クライアント強調 //クライアント強調
var emp = localStorage.getItem("client_emp"); var empCli = localStorage.getItem("client_emp");
if (emp) { if (empCli) {
var emp = JSON.parse(emp); var empCli = JSON.parse(empCli);
} else {
var empCli = [];
} }
//クライアントミュート //クライアントミュート
var mute = localStorage.getItem("client_mute"); var muteCli = localStorage.getItem("client_mute");
if (mute) { if (muteCli) {
var mute = JSON.parse(mute); var muteCli = JSON.parse(muteCli);
} else {
var muteCli = [];
} }
//ユーザー強調 //ユーザー強調
var useremp = localStorage.getItem("user_emp"); var useremp = localStorage.getItem("user_emp");
@@ -65,17 +69,19 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
var useremp = JSON.parse(useremp); var useremp = JSON.parse(useremp);
} }
//ワード強調 //ワード強調
var wordemp = localStorage.getItem("word_emp"); var wordempList = localStorage.getItem("word_emp");
if (wordemp) { if (wordempList) {
var wordemp = JSON.parse(wordemp); var wordempList = JSON.parse(wordempList);
} }
//ワードミュート //ワードミュート
var wordmute = localStorage.getItem("word_mute"); var wordmuteList = localStorage.getItem("word_mute");
if (wordmute) { if (wordmuteList) {
var wordmute = JSON.parse(wordmute); var wordmuteList = JSON.parse(wordmuteList);
wordmute = wordmute.concat(mutefilter); if (wordmuteList) {
wordmuteList = wordmuteList.concat(mutefilter);
}
} else { } else {
wordmute = mutefilter; wordmuteList = mutefilter;
} }
//Ticker //Ticker
var tickerck = localStorage.getItem("ticker_ok"); var tickerck = localStorage.getItem("ticker_ok");
@@ -178,9 +184,9 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
noticeavatar = toot.user.avatarUrl; noticeavatar = toot.user.avatarUrl;
} }
noticeavatar = '<a onclick="udg(\'' + toot.user.id + noticeavatar = '<a onclick="udg(\'' + toot.user.id +
'\',' + acct_id + ');" user="' + toot.user.username + '" class="udg">' + '\',' + acct_id + ');" user="' + toot.user.username + '" class="udg notf-icon">' +
'<img src="' + noticeavatar + '<img src="' + noticeavatar +
'" width="20" class="notf-icon prof-img" user="' + toot.user.username + '" width="20" class="prof-img" user="' + toot.user.username +
'"></a>'; '"></a>';
if (toot.type == "reply") { if (toot.type == "reply") {
var what = lang.lang_parse_mentioned; var what = lang.lang_parse_mentioned;
@@ -254,12 +260,10 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
} }
var domain = localStorage.getItem("domain_" + acct_id); var domain = localStorage.getItem("domain_" + acct_id);
if (popup > 0) { if (popup > 0) {
Materialize.toast("[" + domain + "]" + escapeHTMLtemp(toot.user.name) + what, popup * 1000); M.toast({ html: "[" + domain + "]" + escapeHTMLtemp(toot.user.name) + what, displayLength: popup * 1000 })
} }
if (native == "yes") { if (native == "yes") {
var electron = require("electron"); var os = localStorage.getItem("platform");
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = { var options = {
body: toot.user.name + "(" + toot.user.username + ")" + what + "\n\n" + $.strip_tagstemp(toot.note.text), body: toot.user.name + "(" + toot.user.username + ")" + what + "\n\n" + $.strip_tagstemp(toot.note.text),
icon: toot.user.avatarUrl icon: toot.user.avatarUrl
@@ -267,14 +271,15 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
if (os == "darwin") { if (os == "darwin") {
var n = new Notification('TheDesk:' + domain, options); var n = new Notification('TheDesk:' + domain, options);
} else { } else {
ipc.send('native-notf', [ var nativeNotfOpt = [
'TheDesk:' + domain, 'TheDesk:' + domain,
toot.user.name + "(" + toot.user.username + ")" + what + "\n\n" + $.strip_tagstemp(toot.note.text), toot.user.name + "(" + toot.user.username + ")" + what + "\n\n" + $.strip_tagstemp(toot.note.text),
toot.user.avatarUrl, toot.user.avatarUrl,
"toot", "toot",
acct_id, acct_id,
toot.note.id toot.note.id
]); ]
postMessage(["nativeNotf", nativeNotfOpt], "*")
} }
} }
if (localStorage.getItem("hasNotfC_" + acct_id) != "true") { if (localStorage.getItem("hasNotfC_" + acct_id) != "true") {
@@ -350,16 +355,16 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
viashow = "via-hide"; viashow = "via-hide";
} }
//強調チェック //強調チェック
Object.keys(emp).forEach(function (key6) { Object.keys(empCli).forEach(function (key6) {
var cli = emp[key6]; var empCliList = empCli[key6];
if (cli == via) { if (empCliList == via) {
boostback = "emphasized"; boostback = "emphasized";
} }
}); });
//ミュートチェック //ミュートチェック
Object.keys(mute).forEach(function (key7) { Object.keys(muteCli).forEach(function (key7) {
var cli = mute[key7]; var muteCliList = muteCli[key7];
if (cli == via) { if (muteCliList == via) {
boostback = "hide"; boostback = "hide";
} }
}); });
@@ -370,7 +375,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
var spoiler = "cw cw_hide_" + toot.id; var spoiler = "cw cw_hide_" + toot.id;
var api_spoil = "gray"; var api_spoil = "gray";
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id + var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
'\')" class="nex parsed">' + lang.lang_parse_cwshow + '</a><br>'; '\')" class="nex parsed cw_btn">' + lang.lang_parse_cwshow + '</a><br>';
} else { } else {
var ct1 = nl2br(toot.text).split('<br />').length - 2; var ct1 = nl2br(toot.text).split('<br />').length - 2;
var ct2 = nl2br(toot.text).split('<br>').length - 2; var ct2 = nl2br(toot.text).split('<br>').length - 2;
@@ -382,7 +387,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
'</span><span class="gray">' + lang.lang_parse_autofold + '</span>'; '</span><span class="gray">' + lang.lang_parse_autofold + '</span>';
var spoiler = "cw cw_hide_" + toot.id; var spoiler = "cw cw_hide_" + toot.id;
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id + var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
'\')" class="nex parsed">' + lang.lang_parse_more + '</a><br>'; '\')" class="nex parsed cw_btn">' + lang.lang_parse_more + '</a><br>';
} else { } else {
var content = escapeHTMLtemp(toot.text); var content = escapeHTMLtemp(toot.text);
if (toot.cw) { if (toot.cw) {
@@ -496,12 +501,16 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
'" data-type="video" class="img-parsed"><video src="' + '" data-type="video" class="img-parsed"><video src="' +
purl + '" class="' + sense + purl + '" class="' + sense +
' toot-img pointer" style="max-width:100%;"></a></span>'; ' toot-img pointer" style="max-width:100%;"></a></span>';
} else if (media.type.indexOf("audio") !== -1) {
viewer = viewer + '<audio src="' +
purl + '" class="' + sense +
' toot-img pointer" style="width:100%;" controls></span>';
} else { } else {
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',' + viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',' +
acct_id + ')" id="' + id + '-image-' + key2 + '" data-url="' + url + acct_id + ')" id="' + id + '-image-' + key2 + '" data-url="' + url +
'" data-type="image" class="img-parsed"><img src="' + '" data-type="image" class="img-parsed"><img src="' +
purl + '" class="' + sense + purl + '" class="' + sense +
' toot-img pointer" style="width:' + cwdt + '%; height:' + imh + 'px;"></a></span>'; ' toot-img pointer" style="width:' + cwdt + '%; height:' + imh + 'px;" onerror="this.src=\'../../img/loading.svg\'"></a></span>';
} }
}); });
@@ -572,7 +581,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
var rt_app = ""; var rt_app = "";
/* /*
if (toot.reblogged) { if (toot.reblogged) {
var if_rt = "teal-text"; var if_rt = "light-blue-text";
var rt_app = "rted"; var rt_app = "rted";
} else { } else {
var if_rt = ""; var if_rt = "";
@@ -582,16 +591,16 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
//アバター //アバター
var avatar = toot.user.avatarUrl; var avatar = toot.user.avatarUrl;
//ワードミュート //ワードミュート
if (wordmute) { if (wordmuteList) {
Object.keys(wordmute).forEach(function (key8) { Object.keys(wordmuteList).forEach(function (key8) {
var worde = wordmute[key8]; var worde = wordmuteList[key8];
if (worde) { if (worde) {
if (worde.tag) { if (worde.tag) {
var word = worde.tag; var wordList = worde.tag;
} else { } else {
var word = worde var wordList = worde
} }
var regExp = new RegExp(word, "g"); var regExp = new RegExp(wordList.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
if ($.strip_tagstemp(content).match(regExp)) { if ($.strip_tagstemp(content).match(regExp)) {
boostback = "hide by_filter"; boostback = "hide by_filter";
} }
@@ -599,13 +608,13 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
}); });
} }
//ワード強調 //ワード強調
if (wordemp) { if (wordempList) {
Object.keys(wordemp).forEach(function (key9) { Object.keys(wordempList).forEach(function (key9) {
var word = wordemp[key9]; var wordList = wordempList[key9];
if (word) { if (wordList) {
var word = word.tag; var wordList = wordList.tag;
var regExp = new RegExp(word, "g"); var regExp = new RegExp(wordList.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
content = content.replace(regExp, '<span class="emp">' + word + "</span>"); content = content.replace(regExp, '<span class="emp">' + wordList + "</span>");
} }
}); });
} }
@@ -779,7 +788,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
'\',' + acct_id + ');" user="' + toot.user.username + '" class="udg">' + '\',' + acct_id + ');" user="' + toot.user.username + '" class="udg">' +
'<img src="' + avatar + '<img src="' + avatar +
'" width="40" class="prof-img" user="' + toot.user.username + '" width="40" class="prof-img" user="' + toot.user.username +
'"></a></div>' + '" onerror="this.src=\'../../img/loading.svg\'"></a></div>' +
'<div class="area-display_name"><div class="flex-name"><span class="user">' + '<div class="area-display_name"><div class="flex-name"><span class="user">' +
dis_name + dis_name +
'</span><span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis; cursor:text;"> @' + '</span><span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis; cursor:text;"> @' +
@@ -823,10 +832,10 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
'<div class="action ' + disp["re"] + ' ' + noauth + '"><a onclick="misskeyreply(\'' + toot.id + '<div class="action ' + disp["re"] + ' ' + noauth + '"><a onclick="misskeyreply(\'' + toot.id +
'\',\'' + acct_id + '\',' + '\',\'' + acct_id + '\',' +
acct_id + ',\'' + visen + acct_id + ',\'' + visen +
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_parse_replyto + '"><i class="fas fa-share"></i></a></div>' + '\')" class="waves-effect waves-dark btn-flat rep-btn" style="padding:0" title="' + lang.lang_parse_replyto + '"><i class="fas fa-share"></i></a></div>' +
'<div class="action ' + can_rt + ' ' + disp["rt"] + ' ' + noauth + '"><a onclick="renote(\'' + toot.id + '\',' + acct_id + '<div class="action ' + can_rt + ' ' + disp["rt"] + ' ' + noauth + '"><a onclick="renote(\'' + toot.id + '\',' + acct_id +
',\'' + tlid + ',\'' + tlid +
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_misskeyparse_renote + '"><i class="text-darken-3 fas fa-retweet ' + '\')" class="waves-effect waves-dark btn-flat bt-btn" style="padding:0" title="' + lang.lang_misskeyparse_renote + '"><i class="text-darken-3 fas fa-retweet ' +
if_rt + ' rt_' + toot.id + '"></i><span class="rt_ct"></span></a></div>' + if_rt + ' rt_' + toot.id + '"></i><span class="rt_ct"></span></a></div>' +
'<div class="action ' + can_rt + ' ' + disp["qt"] + ' ' + noauth + '"><a onclick="renoteqt(\'' + toot.id + '\',' + acct_id + '<div class="action ' + can_rt + ' ' + disp["qt"] + ' ' + noauth + '"><a onclick="renoteqt(\'' + toot.id + '\',' + acct_id +
',\'misskey.xyz\',\'misskey.xyz\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_misskeyparse_renoteqt + '"><i class="text-darken-3 fas fa-quote-right"></i></a></div>' + ',\'misskey.xyz\',\'misskey.xyz\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_misskeyparse_renoteqt + '"><i class="text-darken-3 fas fa-quote-right"></i></a></div>' +
@@ -893,7 +902,7 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
} }
var memory = localStorage.getItem("notice-mem"); var memory = localStorage.getItem("notice-mem");
if (popup >= 0 && obj.length < 5 && notftext != memory) { if (popup >= 0 && obj.length < 5 && notftext != memory) {
Materialize.toast(escapeHTMLtemp(toot.name) + ":" + ftxt, popup * 1000); M.toast({ html: escapeHTMLtemp(toot.name) + ":" + ftxt, displayLength: popup * 1000 })
$(".notf-icon_" + tlid).addClass("red-text"); $(".notf-icon_" + tlid).addClass("red-text");
localStorage.setItem("notice-mem", notftext); localStorage.setItem("notice-mem", notftext);
notftext = ""; notftext = "";
@@ -902,9 +911,7 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
native = "yes"; native = "yes";
} }
if (native == "yes") { if (native == "yes") {
var electron = require("electron"); var os = localStorage.getItem("platform");
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = { var options = {
body: toot.display_name + "(" + toot.acct + ")" + ftxt, body: toot.display_name + "(" + toot.acct + ")" + ftxt,
icon: toot.avatar icon: toot.avatar
@@ -913,14 +920,15 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
if (os == "darwin") { if (os == "darwin") {
var n = new Notification('TheDesk:' + domain, options); var n = new Notification('TheDesk:' + domain, options);
} else { } else {
ipc.send('native-notf', [ var nativeNotfOpt = [
'TheDesk:' + domain, 'TheDesk:' + domain,
toot.display_name + "(" + toot.acct + ")" + ftxt, toot.display_name + "(" + toot.acct + ")" + ftxt,
toot.avatar, toot.avatar,
"userdata", "userdata",
acct_id, acct_id,
toot.id toot.id
]); ]
postMessage(["nativeNotf", nativeNotfOpt], "*")
} }
} }
} }
@@ -967,15 +975,11 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
function goGoogle(id) { function goGoogle(id) {
var val = $("#srcbox_" + id).val(); var val = $("#srcbox_" + id).val();
var url = "https://google.com/search?q=" + val; var url = "https://google.com/search?q=" + val;
const { postMessage(["openUrl", url], "*")
shell
} = require('electron');
shell.openExternal(url);
} }
var misskeyws = [] var misskeyws = []
var misskeywsstate = [] var misskeywsstate = []
function connectMisskey(acct_id) { function connectMisskey(acct_id, re) {
var domain = localStorage.getItem("domain_" + acct_id); var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at"); var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "wss://" + domain + var start = "wss://" + domain +
@@ -994,10 +998,9 @@ function connectMisskey(acct_id) {
console.log([domain + ":Receive Streaming API:", data]); console.log([domain + ":Receive Streaming API:", data]);
var data = JSON.parse(mess.data) var data = JSON.parse(mess.data)
var obj = data.body.body var obj = data.body.body
var mute = [];
if (data.body.id.indexOf("notf:") !== -1) { if (data.body.id.indexOf("notf:") !== -1) {
var obj = JSON.parse(mess.data).body; var obj = JSON.parse(mess.data).body;
console.log(obj);
var popup = localStorage.getItem("popup"); var popup = localStorage.getItem("popup");
if (!popup) { if (!popup) {
popup = 0; popup = 0;
@@ -1059,13 +1062,17 @@ function connectMisskey(acct_id) {
console.error("Error closing " + tlid); console.error("Error closing " + tlid);
console.error(error); console.error(error);
misskeywsstate[wsid] = false misskeywsstate[wsid] = false
connectMisskey(acct_id) if(!re){
connectMisskey(acct_id, true)
}
return false; return false;
}; };
misskeyws[wsid].onclose = function () { misskeyws[wsid].onclose = function () {
console.warn("Closing " + tlid); console.warn("Closing " + tlid);
misskeywsstate[wsid] = false misskeywsstate[wsid] = false
connectMisskey(acct_id) if(!re){
connectMisskey(acct_id, true)
}
return false; return false;
}; };

View File

@@ -43,15 +43,15 @@ function mixtl(acct_id, tlid, type, delc, voice) {
timeline.splice(20); timeline.splice(20);
} }
var templete = ""; 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") { if (localStorage.getItem("filter_" + acct_id) != "undefined") {
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "mix"); var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), "mix");
} else { } else {
var mute = []; 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") { if (type == "integrated") {
templete = templete + parse([timeline[key]], '', acct_id, tlid, "", mute, "mix"); templete = templete + parse([timeline[key]], '', acct_id, tlid, "", mute, "mix");
} else if (type == "plus") { } else if (type == "plus") {

View File

@@ -58,9 +58,7 @@ function notfColumn(acct_id, tlid, sys) {
if (key > 14) { if (key > 14) {
ct = "15+"; ct = "15+";
} }
var electron = require("electron"); var os = localStorage.getItem("platform");
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = { var options = {
body: ct + lang.lang_notf_new, body: ct + lang.lang_notf_new,
icon: localStorage.getItem("prof_" + acct_id) icon: localStorage.getItem("prof_" + acct_id)
@@ -68,7 +66,8 @@ function notfColumn(acct_id, tlid, sys) {
if (os == "darwin") { if (os == "darwin") {
var n = new Notification('TheDesk:' + domain, options); var n = new Notification('TheDesk:' + domain, options);
} else { } else {
ipc.send('native-notf', ['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]); var nativeNotfOpt=['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
postMessage(["nativeNotf", nativeNotfOpt], "*")
} }
} }
@@ -164,9 +163,7 @@ function notfCommon(acct_id, tlid, sys) {
if (key > 14) { if (key > 14) {
ct = "15+"; ct = "15+";
} }
var electron = require("electron"); var os = localStorage.getItem("platform");
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = { var options = {
body: ct + lang.lang_notf_new, body: ct + lang.lang_notf_new,
icon: localStorage.getItem("prof_" + acct_id) icon: localStorage.getItem("prof_" + acct_id)
@@ -174,7 +171,8 @@ function notfCommon(acct_id, tlid, sys) {
if (os == "darwin") { if (os == "darwin") {
var n = new Notification('TheDesk:' + domain, options); var n = new Notification('TheDesk:' + domain, options);
} else { } else {
ipc.send('native-notf', ['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]); var nativeNotfOpt=['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
postMessage(["nativeNotf", nativeNotfOpt], "*")
} }
} }
@@ -226,7 +224,7 @@ function notfWS(misskey, acct_id, tlid, domain, at) {
} }
websocketNotf[acct_id].onmessage = function (mess) { websocketNotf[acct_id].onmessage = function (mess) {
console.log(["Receive Streaming API(Notf):" + acct_id + "(" + domain + ")", JSON.parse(JSON.parse(mess.data).payload)]); //console.log(["Receive Streaming API(Notf):" + acct_id + "(" + domain + ")", JSON.parse(JSON.parse(mess.data).payload)]);
var popup = localStorage.getItem("popup"); var popup = localStorage.getItem("popup");
if (!popup) { if (!popup) {
popup = 0; popup = 0;

View File

@@ -52,14 +52,14 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
native = "yes"; native = "yes";
} }
//クライアント強調 //クライアント強調
var emp = localStorage.getItem("client_emp"); var empCli = localStorage.getItem("client_emp");
if (emp) { if (empCli) {
var emp = JSON.parse(emp); var empCli = JSON.parse(empCli);
} }
//クライアントミュート //クライアントミュート
var mute = localStorage.getItem("client_mute"); var muteCli = localStorage.getItem("client_mute");
if (mute) { if (muteCli) {
var mute = JSON.parse(mute); var muteCli = JSON.parse(muteCli);
} }
//ユーザー強調 //ユーザー強調
var useremp = localStorage.getItem("user_emp"); var useremp = localStorage.getItem("user_emp");
@@ -67,17 +67,19 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var useremp = JSON.parse(useremp); var useremp = JSON.parse(useremp);
} }
//ワード強調 //ワード強調
var wordemp = localStorage.getItem("word_emp"); var wordempList = localStorage.getItem("word_emp");
if (wordemp) { if (wordempList) {
var wordemp = JSON.parse(wordemp); var wordempList = JSON.parse(wordempList);
} }
//ワードミュート //ワードミュート
var wordmute = localStorage.getItem("word_mute"); var wordmuteList = localStorage.getItem("word_mute");
if (wordmute) { if (wordmuteList) {
var wordmute = JSON.parse(wordmute); var wordmuteList = JSON.parse(wordmuteList);
wordmute = wordmute.concat(mutefilter); if (wordmuteList) {
wordmuteList = wordmuteList.concat(mutefilter);
}
} else { } else {
wordmute = mutefilter; wordmuteList = mutefilter;
} }
//Ticker //Ticker
var tickerck = localStorage.getItem("ticker_ok"); var tickerck = localStorage.getItem("ticker_ok");
@@ -235,7 +237,12 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var what = lang.lang_parse_polled; var what = lang.lang_parse_polled;
var icon = "fa-tasks purple-text"; var icon = "fa-tasks purple-text";
} }
var noticetext = '<i class="fas fa-filter pointer big-text" onclick="notfFilter(\'' + toot.account.id + if (tlid == "notf") {
var notfFilHide = "hide"
} else {
var notfFilHide = ""
}
var noticetext = '<i class="fas fa-filter pointer big-text ' + notfFilHide + '" onclick="notfFilter(\'' + toot.account.id +
'\',\'' + tlid + '\');" title="' + lang.lang_parse_notffilter + '"></i><span class="cbadge cbadge-hover"title="' + date(toot.created_at, '\',\'' + tlid + '\');" title="' + lang.lang_parse_notffilter + '"></i><span class="cbadge cbadge-hover"title="' + date(toot.created_at,
'absolute') + '(' + lang.lang_parse_notftime + ')"><i class="far fa-clock"></i>' + date(toot.created_at, 'absolute') + '(' + lang.lang_parse_notftime + ')"><i class="far fa-clock"></i>' + date(toot.created_at,
datetype) + datetype) +
@@ -279,7 +286,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var domain = localStorage.getItem("domain_" + acct_id); var domain = localStorage.getItem("domain_" + acct_id);
if (popup > 0) { if (popup > 0) {
Materialize.toast("[" + domain + "]" + escapeHTML(toot.account.display_name) + what, popup * 1000); M.toast({ html: "[" + domain + "]" + escapeHTML(toot.account.display_name) + what, displayLength: popup * 1000 })
} }
//通知音 //通知音
if (sound == "c1") { if (sound == "c1") {
@@ -299,9 +306,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
request.send(); request.send();
} }
if (native == "yes") { if (native == "yes") {
var electron = require("electron"); var os = localStorage.getItem("platform");
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = { var options = {
body: toot.account.display_name + "(" + toot.account.acct + ")" + what + "\n\n" + $.strip_tags(toot.status.content), body: toot.account.display_name + "(" + toot.account.acct + ")" + what + "\n\n" + $.strip_tags(toot.status.content),
icon: toot.account.avatar icon: toot.account.avatar
@@ -309,14 +314,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
if (os == "darwin") { if (os == "darwin") {
var n = new Notification('TheDesk:' + domain, options); var n = new Notification('TheDesk:' + domain, options);
} else { } else {
ipc.send('native-notf', [ var nativeNotfOpt = [
'TheDesk:' + domain, 'TheDesk:' + domain,
toot.account.display_name + "(" + toot.account.acct + ")" + what + "\n\n" + $.strip_tags(toot.status.content), toot.account.display_name + "(" + toot.account.acct + ")" + what + "\n\n" + $.strip_tags(toot.status.content),
toot.account.avatar, toot.account.avatar,
"toot", "toot",
acct_id, acct_id,
toot.status.id toot.status.id
]); ]
postMessage(["nativeNotf", nativeNotfOpt], "*")
} }
} }
if (localStorage.getItem("hasNotfC_" + acct_id) != "true") { if (localStorage.getItem("hasNotfC_" + acct_id) != "true") {
@@ -353,10 +359,10 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
noticeavatar = toot.account.avatar_static; noticeavatar = toot.account.avatar_static;
} }
noticeavatar = '<a onclick="udg(\'' + toot.account.id + noticeavatar = '<a onclick="udg(\'' + toot.account.id +
'\',' + acct_id + ');" user="' + toot.account.acct + '" class="udg">' + '\',' + acct_id + ');" user="' + toot.account.acct + '" class="notf-icon udg">' +
'<img draggable="false" src="' + noticeavatar + '<img draggable="false" src="' + noticeavatar +
'" width="20" class="notf-icon prof-img" user="' + toot.account.acct + '" width="20" class="prof-img" user="' + toot.account.acct +
'"></a>'; '" onerror="this.src=\'../../img/loading.svg\'"></a>';
var rebtxt = lang.lang_parse_btedsimple; var rebtxt = lang.lang_parse_btedsimple;
var rticon = "fa-retweet light-blue-text"; var rticon = "fa-retweet light-blue-text";
if (localStorage.getItem("domain_" + acct_id) == "imastodon.net" && !locale) { if (localStorage.getItem("domain_" + acct_id) == "imastodon.net" && !locale) {
@@ -370,6 +376,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var uniqueid = toot.id; var uniqueid = toot.id;
var toot = toot.reblog; var toot = toot.reblog;
var dis_name = escapeHTML(toot.account.display_name); var dis_name = escapeHTML(toot.account.display_name);
if(!dis_name){
dis_name = toot.account.acct
}
if (toot.account.emojis) { if (toot.account.emojis) {
var actemojick = toot.account.emojis[0]; var actemojick = toot.account.emojis[0];
} else { } else {
@@ -426,21 +435,25 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
viashow = "hide"; viashow = "hide";
} else { } else {
var via = escapeHTML(toot.application.name); var via = escapeHTML(toot.application.name);
if (empCli) {
//強調チェック //強調チェック
Object.keys(emp).forEach(function (key6) { Object.keys(empCli).forEach(function (key6) {
var cli = emp[key6]; var empCliList = empCli[key6];
if (cli == via) { if (empCliList == via) {
boostback = "emphasized"; boostback = "emphasized";
} }
}); });
}
if (muteCli) {
//ミュートチェック //ミュートチェック
Object.keys(mute).forEach(function (key7) { Object.keys(muteCli).forEach(function (key7) {
var cli = mute[key7]; var muteCliList = muteCli[key7];
if (cli == via) { if (muteCliList == via) {
boostback = "hide"; boostback = "hide";
} }
}); });
} }
}
if (mix == "pinned") { if (mix == "pinned") {
boostback = "emphasized"; boostback = "emphasized";
} }
@@ -450,7 +463,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var spoiler = "cw cw_hide_" + toot.id; var spoiler = "cw cw_hide_" + toot.id;
var api_spoil = "gray"; var api_spoil = "gray";
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id + var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
'\')" class="nex parsed">' + lang.lang_parse_cwshow + '</a><br>'; '\')" class="nex parsed cw_btn">' + lang.lang_parse_cwshow + '</a><br>';
} else { } else {
var ct1 = toot.content.split('</p>').length + toot.content.split('<br />').length - 2; 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; var ct2 = toot.content.split('</p>').length + toot.content.split('<br>').length - 2;
@@ -462,7 +475,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
'</span><span class="gray">' + lang.lang_parse_autofold + '</span>'; '</span><span class="gray">' + lang.lang_parse_autofold + '</span>';
var spoiler = "cw cw_hide_" + toot.id; var spoiler = "cw cw_hide_" + toot.id;
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id + var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
'\')" class="nex parsed">' + lang.lang_parse_more + '</a><br>'; '\')" class="nex parsed cw_btn">' + lang.lang_parse_more + '</a><br>';
} else { } else {
var content = toot.content; var content = toot.content;
var spoil = escapeHTML(toot.spoiler_text); var spoil = escapeHTML(toot.spoiler_text);
@@ -471,8 +484,25 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
} }
} }
var urls = $.strip_tags(content).replace(/\n/g, " ").match( var urls = $.strip_tags(content).replace(/\n/g, " ").match(
/https?:\/\/([-a-zA-Z0-9@.]+)\/?(?!.*((media|tags)|mentions)).*([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)?/ /https?:\/\/([^+_]+)\/?(?!.*((media|tags)|mentions)).*([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)?/
); );
urlsck = content.match(/(https?):\/\/([^<>]*?)\/([^"]*)/g)
if (urlsck) {
for (var urlct = 0; urlct < urlsck.length; urlct++) {
var urlindv = urlsck[urlct]
urlCont = urlindv.match(/(https?):\/\/([^a-zA-Z0-9.-]*?)\.(.+?)\/([^"]*)/)
if (urlCont) {
urlindv = urlindv.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&")
var encoded = encodeURI(urlCont[4])
var punycoded = "xn--" + punycode.encode(urlCont[2])
var eUrl = urlCont[1] + "://" + punycoded + "." + urlCont[3] + "/" + encoded
var regExp = new RegExp('href="' + urlindv + '"', "g")
content = content.replace(regExp, 'href="' + eUrl + '"')
}
}
}
if (urls) { if (urls) {
var analyze = '<a onclick="additionalIndv(\'' + tlid + '\',' + acct_id + 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>';
@@ -489,6 +519,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
if (toot.poll.voted) { if (toot.poll.voted) {
var myvote = lang.lang_parse_voted; var myvote = lang.lang_parse_voted;
var result_hide = ""; var result_hide = "";
} else if (toot.poll.expired) {
var myvote = lang.lang_parse_endedvote;
var result_hide = "";
} else { } else {
var myvote = '<a onclick="voteMastodon(\'' + acct_id + '\',\'' + toot.poll.id + '\')" class="votebtn">' + lang.lang_parse_vote + '</a><br>'; var myvote = '<a onclick="voteMastodon(\'' + acct_id + '\',\'' + toot.poll.id + '\')" class="votebtn">' + lang.lang_parse_vote + '</a><br>';
if (choices[0].votes_count === 0 || choices[0].votes_count > 0) { if (choices[0].votes_count === 0 || choices[0].votes_count > 0) {
@@ -496,11 +529,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
} }
var result_hide = "hide"; var result_hide = "hide";
} }
if (toot.poll.expired) {
var ended = lang.lang_parse_endedvote;
} else {
var ended = date(toot.poll.expires_at, datetype); var ended = date(toot.poll.expires_at, datetype);
}
Object.keys(choices).forEach(function (keyc) { Object.keys(choices).forEach(function (keyc) {
var choice = choices[keyc]; var choice = choices[keyc];
if (!toot.poll.voted && !toot.poll.expired) { if (!toot.poll.voted && !toot.poll.expired) {
@@ -512,10 +541,197 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
} }
poll = poll + '<div class="' + voteclass + ' vote vote_' + acct_id + '_' + toot.poll.id + '_' + keyc + '" onclick="' + votesel + '">' + escapeHTML(choice.title) + '<span class="vote_' + acct_id + '_' + toot.poll.id + '_result ' + result_hide + '">(' + choice.votes_count + ')</span></div>'; poll = poll + '<div class="' + voteclass + ' vote vote_' + acct_id + '_' + toot.poll.id + '_' + keyc + '" onclick="' + votesel + '">' + escapeHTML(choice.title) + '<span class="vote_' + acct_id + '_' + toot.poll.id + '_result ' + result_hide + '">(' + choice.votes_count + ')</span></div>';
}); });
poll = '<div class="vote_' + acct_id + '_' + toot.poll.id + '">' + poll + myvote + '<span class="cbadge cbadge-hover" title="' + date(toot.poll.expires_at, 'absolute') + poll = '<div class="vote_' + acct_id + '_' + toot.poll.id + '">' + poll + myvote + '<a onclick="voteMastodonrefresh(\'' + acct_id + '\',\'' + toot.poll.id + '\')" class="pointer">' + lang.lang_manager_refresh + '</a><span class="cbadge cbadge-hover" title="' + date(toot.poll.expires_at, 'absolute') +
'"><i class="far fa-calendar-times"></i>' + '"><i class="far fa-calendar-times"></i>' +
ended + '</span></div>'; ended + '</span></div>';
} }
var mediack = toot.media_attachments[0];
//メディアがあれば
var media_ids = "";
if (mediack) {
hasmedia = "hasmedia";
var cwdt = 100 / toot.media_attachments.length;
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 + ",";
var url = media.url;
var nsfwmes = ""
if (toot.sensitive && nsfw) {
var sense = "sensitive"
var blur = media.blurhash
nsfwmes = '<div class="nsfw-media">' + lang.lang_parse_nsfw + '</div>'
if (blur) {
purl = parseBlur(blur)
var sense = ""
}
} else {
var sense = ""
var blur = null
}
if (media.pleroma && media.pleroma.mime_type.indexOf("video") !== -1) {
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',' +
acct_id + ')" id="' + id + '-image-' + key2 + '" data-url="' + url +
'" data-type="video" class="img-parsed"><video src="' +
purl + '" class="' + sense +
' toot-img pointer" style="max-width:100%;" loop="true"></a></span>';
} else {
if (media.type == "unknown") {
viewer = viewer + '<a href="' + media.remote_url + '" title="' + media.remote_url + '">[' + lang.lang_parse_unknown + ']</a> '
} else if (media.type == "audio") {
viewer = viewer + '<audio src="' +
url + '" class="pointer" style="width:100%;" controls></span>';
} else {
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',\'' +
acct_id + '\')" id="' + id + '-image-' + key2 + '" data-url="' + url +
'" data-type="' + media.type + '" class="img-parsed img-link" style="width:calc(' + cwdt + '% - 1px); height:' + imh + ';"><img draggable="false" src="' +
purl + '" class="' + sense +
' toot-img pointer" onerror="this.src=\'../../img/loading.svg\'">' + nsfwmes + '</a>';
}
}
});
media_ids = media_ids.slice(0, -1);
} else {
viewer = "";
hasmedia = "nomedia";
}
var menck = toot.mentions[0];
var mentions = "";
//メンションであれば
if (menck) {
mentions = "";
var to_mention = [];
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> ';
//自分は除外
//自インスタンスかどうかを確認し、IDの一致
if (mention.acct == mention.username && mention.id == localStorage.getItem("user-id_" + acct_id)) {
//自分
} else {
//そのトゥの人NG
if (toot.account.acct != mention.acct) {
to_mention.push(mention.acct);
}
}
});
to_mention.push(toot.account.acct);
mentions = '<div style="float:right">' + mentions + '</div>';
} else {
var to_mention = [toot.account.acct];
//メンションじゃなくてもlang_parse_thread
if(toot.in_reply_to_id){
mentions = '<div style="float:right"><a onclick="details(\'' + toot.id + '\',' + acct_id +
',\'' + tlid + '\')" class="pointer waves-effect">' + lang.lang_parse_thread + '</a></div>';
}
}
var tagck = toot.tags[0];
var tags = "";
//タグであれば
if (tagck) {
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> ';
});
tags = '<div style="float:right">' + tags + '</div>';
}
//リプ数
if (toot.replies_count || toot.replies_count === 0) {
var replyct = toot.replies_count;
if (replyct_view == "hidden" && replyct > 1) {
replyct = "1+";
}
} else {
var replyct = "";
}
//公開範囲を取得
var vis = "";
var visen = toot.visibility;
if (visen == "public") {
var vis =
'<i class="text-darken-3 material-icons gray sml vis-data pointer" title="' + lang.lang_parse_public + '(' + lang.lang_parse_clickcopy + ')" data-vis="public" onclick="staCopy(\'' + id + '\')">public</i>';
var can_rt = "";
} else if (visen == "unlisted") {
var vis =
'<i class="text-darken-3 material-icons blue-text vis-data pointer" title="' + lang.lang_parse_unlisted + '(' + lang.lang_parse_clickcopy + ')" data-vis="unlisted" onclick="staCopy(\'' + id + '\')">lock_open</i>';
var can_rt = "";
} else if (visen == "private") {
var vis =
'<i class="text-darken-3 material-icons orange-text vis-data pointer" title="' + lang.lang_parse_private + '(' + lang.lang_parse_clickcopy + ')" data-vis="private" onclick="staCopy(\'' + id + '\')">lock</i>';
var can_rt = "unvisible";
} else if (visen == "direct") {
var vis =
'<i class="text-darken-3 material-icons red-text vis-data pointer" title="' + lang.lang_parse_direct + '(' + lang.lang_parse_clickcopy + ')" data-vis="direct" onclick="staCopy(\'' + id + '\')">mail</i>';
var can_rt = "unvisible";
}
if (toot.account.acct == localStorage.getItem("user_" + acct_id)) {
var if_mine = "";
var mine_via = "type-b";
} else {
var if_mine = "hide";
var mine_via = "";
}
if (toot.favourited) {
var if_fav = " yellow-text";
var fav_app = "faved";
} else {
var if_fav = "";
var fav_app = "";
}
if (toot.reblogged) {
var if_rt = "light-blue-text";
var rt_app = "rted";
} else {
var if_rt = "";
var rt_app = "";
}
if (toot.pinned) {
var if_pin = "blue-text";
var pin_app = "pinnedToot";
} else {
var if_pin = "";
var pin_app = "";
}
//アニメ再生
if (gif == "yes") {
var avatar = toot.account.avatar;
} else {
var avatar = toot.account.avatar_static;
}
//ワードミュート
if (wordmuteList) {
Object.keys(wordmuteList).forEach(function (key8) {
var worde = wordmuteList[key8];
if (worde) {
if (worde.tag) {
var wordList = worde.tag;
} else {
var wordList = worde
}
var regExp = new RegExp(wordList.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
if ($.strip_tags(content).match(regExp)) {
boostback = "hide by_filter";
}
}
});
}
//ワード強調
if (wordempList) {
Object.keys(wordempList).forEach(function (key9) {
var wordList = wordempList[key9];
if (wordList) {
var wordList = wordList.tag;
var regExp = new RegExp(wordList.replace(/[.*+?^=!:${}()|[\]\/\\]/g, "\\$&"), "g");
content = content.replace(regExp, '<span class="emp">' + wordList + "</span>");
}
});
}
if (toot.emojis) { if (toot.emojis) {
var emojick = toot.emojis[0]; var emojick = toot.emojis[0];
} else { } else {
@@ -570,189 +786,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
if (poll) { if (poll) {
poll = twemoji.parse(poll); poll = twemoji.parse(poll);
} }
var mediack = toot.media_attachments[0];
//メディアがあれば
var media_ids = "";
if (mediack) {
hasmedia = "hasmedia";
var cwdt = 100 / toot.media_attachments.length;
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 + ",";
var url = media.url;
var nsfwmes = ""
if (toot.sensitive && nsfw) {
var sense = "sensitive"
var blur = media.blurhash
if (blur) {
nsfwmes = '<div class="nsfw-media">' + lang.lang_parse_nsfw + '</div>'
purl = parseBlur(blur)
var sense = ""
}
} else {
var sense = ""
var blur = null
}
if (media.pleroma) {
if (media.pleroma.mime_type.indexOf("video") !== -1) {
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',' +
acct_id + ')" id="' + id + '-image-' + key2 + '" data-url="' + url +
'" data-type="video" class="img-parsed"><video src="' +
purl + '" class="' + sense +
' toot-img pointer" style="max-width:100%;"></a></span>';
}
} else {
if (media.type == "unknown") {
viewer = viewer + '<a href="' + media.remote_url + '" title="' + media.remote_url + '">[' + lang.lang_parse_unknown + ']</a> '
} else {
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',\'' +
acct_id + '\')" id="' + id + '-image-' + key2 + '" data-url="' + url +
'" data-type="' + media.type + '" class="img-parsed img-link" style="width:calc(' + cwdt + '% - 1px); height:' + imh + ';"><img draggable="false" src="' +
purl + '" class="' + sense +
' toot-img pointer">' + nsfwmes + '</a>';
}
}
});
media_ids = media_ids.slice(0, -1);
} else {
viewer = "";
hasmedia = "nomedia";
}
var menck = toot.mentions[0];
var mentions = "";
//メンションであれば
if (menck) {
mentions = "";
var to_mention = [];
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> ';
//自分は除外
//自インスタンスかどうかを確認し、IDの一致
if (mention.acct == mention.username && mention.id == localStorage.getItem("user-id_" + acct_id)) {
//自分
} else {
//そのトゥの人NG
if (toot.account.acct != mention.acct) {
to_mention.push(mention.acct);
}
}
});
to_mention.push(toot.account.acct);
mentions = '<div style="float:right">' + mentions + '</div>';
} else {
var to_mention = [toot.account.acct];
}
var tagck = toot.tags[0];
var tags = "";
//タグであれば
if (tagck) {
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> ';
});
tags = '<div style="float:right">' + tags + '</div>';
}
//リプ数
if (toot.replies_count || toot.replies_count === 0) {
var replyct = toot.replies_count;
if (replyct_view == "hidden" && replyct > 1) {
replyct = "1+";
}
} else {
var replyct = "";
}
//公開範囲を取得
var vis = "";
var visen = toot.visibility;
if (visen == "public") {
var vis =
'<i class="text-darken-3 material-icons gray sml vis-data pointer" title="' + lang.lang_parse_public + '(' + lang.lang_parse_clickcopy + ')" data-vis="public" onclick="staCopy(\'' + id + '\')" style="font-size:1rem;">public</i>';
var can_rt = "";
} else if (visen == "unlisted") {
var vis =
'<i class="text-darken-3 material-icons blue-text vis-data pointer" title="' + lang.lang_parse_unlisted + '(' + lang.lang_parse_clickcopy + ')" data-vis="unlisted" onclick="staCopy(\'' + id + '\')" style="font-size:1rem;">lock_open</i>';
var can_rt = "";
} else if (visen == "private") {
var vis =
'<i class="text-darken-3 material-icons orange-text vis-data pointer" title="' + lang.lang_parse_private + '(' + lang.lang_parse_clickcopy + ')" data-vis="private" onclick="staCopy(\'' + id + '\')" style="font-size:1rem;">lock</i>';
var can_rt = "hide";
} else if (visen == "direct") {
var vis =
'<i class="text-darken-3 material-icons red-text vis-data pointer" title="' + lang.lang_parse_direct + '(' + lang.lang_parse_clickcopy + ')" data-vis="direct" onclick="staCopy(\'' + id + '\')" style="font-size:1rem;">mail</i>';
var can_rt = "hide";
}
if (toot.account.acct == localStorage.getItem("user_" + acct_id)) {
var if_mine = "";
var mine_via = "type-b";
} else {
var if_mine = "hide";
var mine_via = "";
}
if (toot.favourited) {
var if_fav = " yellow-text";
var fav_app = "faved";
} else {
var if_fav = "";
var fav_app = "";
}
if (toot.reblogged) {
var if_rt = "teal-text";
var rt_app = "rted";
} else {
var if_rt = "";
var rt_app = "";
}
if (toot.pinned) {
var if_pin = "blue-text";
var pin_app = "pinned";
} else {
var if_pin = "";
var pin_app = "";
}
//アニメ再生
if (gif == "yes") {
var avatar = toot.account.avatar;
} else {
var avatar = toot.account.avatar_static;
}
//ワードミュート
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
}
var regExp = new RegExp(word, "g");
if ($.strip_tags(content).match(regExp)) {
boostback = "hide by_filter";
}
}
});
}
//ワード強調
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 (toot.language != lang.language && toot.language) { if (toot.language != lang.language && toot.language) {
var trans = '<div class="action pin"><a onclick="trans(\'' + toot.language + '\',\'' + lang.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>'; var trans = '<div class="action pin"><a onclick="trans(\'' + toot.language + '\',\'' + lang.language + '\')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="' + lang.lang_parse_trans + '"><i class="material-icons">g_translate</i></a></div>';
} else { } else {
var trans = ""; var trans = "";
} }
@@ -790,7 +826,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
for (var i = 0; i < tickerdata.length; i++) { for (var i = 0; i < tickerdata.length; i++) {
var value = tickerdata[i]; var value = tickerdata[i];
if (value.domain == thisdomain) { if (value.domain == thisdomain) {
var tickerdom = '<div style="background:linear-gradient(to left,transparent, ' + value.bg + ' 96%) !important; color:' + value.text + ';width:100%; height:0.9rem; font-size:0.8rem;"><img draggable="false" src="' + value.image + '" style="height:100%;"><span style="position:relative; top:-0.2rem;"> ' + escapeHTML(value.name) + '</span></div>'; var tickerdom = '<div style="background:linear-gradient(90deg, ' + value.bg + ', transparent 96%) !important; color:' + value.text + ';width:100%; height:0.9rem; font-size:0.8rem;"><img draggable="false" src="' + value.image + '" style="height:100%;" onerror="this.src=\'../../img/loading.svg\'"><span style="position:relative; top:-0.2rem;"> ' + escapeHTML(value.name) + '</span></div>';
break; break;
} }
} }
@@ -810,7 +846,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
'\',' + acct_id + ');" user="' + toot.account.acct + '" class="udg">' + '\',' + acct_id + ');" user="' + toot.account.acct + '" class="udg">' +
'<img draggable="false" src="' + avatar + '<img draggable="false" src="' + avatar +
'" width="40" class="prof-img" user="' + toot.account.acct + '" width="40" class="prof-img" user="' + toot.account.acct +
'"></a>' + noticeavatar + '</div>' + '" onerror="this.src=\'../../img/loading.svg\'"></a>' + noticeavatar + '</div>' +
'<div class="area-display_name"><div class="flex-name"><span class="user">' + '<div class="area-display_name"><div class="flex-name"><span class="user">' +
dis_name + dis_name +
'</span><span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis; cursor:text;"> @' + '</span><span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis; cursor:text;"> @' +
@@ -828,19 +864,18 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
'</div><div class="area-additional"><span class="additional">' + analyze + '</div><div class="area-additional"><span class="additional">' + analyze +
'</span>' + '</span>' +
'' + mentions + tags + '</div>' + '' + mentions + tags + '</div>' +
'<div class="area-vis"></div>' + '<div class="area-vis">' + vis + '</div>' +
'<div class="area-actions ' + mouseover + '">' + '<div class="area-actions ' + mouseover + '">' +
'<div class="action">' + vis + '</div>' +
'<div class="action ' + antinoauth + '"><a onclick="detEx(\'' + toot.url + '\',\'main\')" class="waves-effect waves-dark details" style="padding:0">' + lang.lang_parse_det + '</a></div>' + '<div class="action ' + antinoauth + '"><a onclick="detEx(\'' + toot.url + '\',\'main\')" class="waves-effect waves-dark details" style="padding:0">' + lang.lang_parse_det + '</a></div>' +
'<div class="action ' + antidmHide + '"><a onclick="details(\'' + toot.id + '\',' + acct_id + ',\'' + tlid + '\',\'normal\')" class="waves-effect waves-dark details" style="padding:0">' + lang.lang_parse_thread + '</a></div>' + '<div class="action ' + antidmHide + '"><a onclick="details(\'' + toot.id + '\',' + acct_id + ',\'' + tlid + '\',\'normal\')" class="waves-effect waves-dark details" style="padding:0">' + lang.lang_parse_thread + '</a></div>' +
'<div class="action ' + disp["re"] + ' ' + noauth + '"><a onclick="re(\'' + toot.id + '<div class="action ' + disp["re"] + ' ' + noauth + '"><a onclick="re(\'' + toot.id +
'\',\'' + to_mention + '\',' + '\',\'' + to_mention + '\',' +
acct_id + ',\'' + visen + acct_id + ',\'' + visen +
'\')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="' + lang.lang_parse_replyto + '"><i class="fas fa-share"></i><span class="rep_ct">' + replyct + '\')" class="waves-effect waves-dark btn-flat actct rep-btn" data-men="' + to_mention + '" data-visen="' + visen + '" style="padding:0" title="' + lang.lang_parse_replyto + '"><i class="fas fa-share"></i><span class="rep_ct">' + replyct +
'</a></span></a></div>' + '</a></span></a></div>' +
'<div class="action ' + can_rt + ' ' + disp["rt"] + ' ' + noauth + '"><a onclick="rt(\'' + toot.id + '\',' + acct_id + '<div class="action ' + can_rt + ' ' + disp["rt"] + ' ' + noauth + '"><a onclick="rt(\'' + toot.id + '\',' + acct_id +
',\'' + tlid + ',\'' + tlid +
'\')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="' + lang.lang_parse_bt + '"><i class="fas fa-retweet ' + '\')" class="waves-effect waves-dark btn-flat actct bt-btn" style="padding:0" title="' + lang.lang_parse_bt + '"><i class="fas fa-retweet ' +
if_rt + ' rt_' + toot.id + '"></i><span class="rt_ct">' + toot.reblogs_count + if_rt + ' rt_' + toot.id + '"></i><span class="rt_ct">' + toot.reblogs_count +
'</span></a></div>' + '</span></a></div>' +
'<div class="action ' + can_rt + ' ' + disp["qt"] + ' ' + noauth + ' ' + qtClass + '"><a onclick="qt(\'' + toot.id + '\',' + acct_id + '<div class="action ' + can_rt + ' ' + disp["qt"] + ' ' + noauth + ' ' + qtClass + '"><a onclick="qt(\'' + toot.id + '\',' + acct_id +
@@ -848,22 +883,21 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
'\')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="' + lang.lang_parse_quote + '"><i class="text-darken-3 fas fa-quote-right"></i></a></div>' + '\')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="' + lang.lang_parse_quote + '"><i class="text-darken-3 fas fa-quote-right"></i></a></div>' +
'<div class="action ' + disp["fav"] + ' ' + noauth + '"><a onclick="fav(\'' + toot.id + '\',' + acct_id + '<div class="action ' + disp["fav"] + ' ' + noauth + '"><a onclick="fav(\'' + toot.id + '\',' + acct_id +
',\'' + tlid + ',\'' + tlid +
'\')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="' + lang.lang_parse_fav + '"><i class="fas text-darken-3 fa-star' + '\')" class="waves-effect waves-dark btn-flat actct fav-btn" style="padding:0" title="' + lang.lang_parse_fav + '"><i class="fas text-darken-3 fa-star' +
if_fav + ' fav_' + toot.id + '"></i><span class="fav_ct">' + toot.favourites_count + if_fav + ' fav_' + toot.id + '"></i><span class="fav_ct">' + toot.favourites_count +
'</a></span></div>' + '</a></span></div>' +
'<div class="' + if_mine + ' action ' + disp["del"] + ' ' + noauth + '"><a onclick="del(\'' + toot.id + '\',' + '<div class="' + if_mine + ' action ' + disp["del"] + ' ' + noauth + '"><a onclick="del(\'' + toot.id + '\',' +
acct_id + acct_id +
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_parse_del + '"><i class="fas fa-trash"></i></a></div>' + ')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="' + lang.lang_parse_del + '"><i class="fas fa-trash"></i></a></div>' +
'<div class="' + if_mine + ' action pin ' + disp["pin"] + ' ' + noauth + '"><a onclick="pin(\'' + toot.id + '\',' + '<div class="' + if_mine + ' action pin ' + disp["pin"] + ' ' + noauth + '"><a onclick="pin(\'' + toot.id + '\',' +
acct_id + acct_id +
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_parse_pin + '"><i class="fas fa-map-pin pin_' + toot.id + ' ' + if_pin + '"></i></a></div>' ')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="' + lang.lang_parse_pin + '"><i class="fas fa-map-pin pin_' + toot.id + ' ' + if_pin + '"></i></a></div>'
+ '<div class="' + if_mine + ' action ' + disp["red"] + ' ' + noauth + '"><a onclick="redraft(\'' + toot.id + '\',' + + '<div class="' + if_mine + ' action ' + disp["red"] + ' ' + noauth + '"><a onclick="redraft(\'' + toot.id + '\',' +
acct_id + acct_id +
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_parse_redraft + '"><i class="material-icons">redo</i></a></div>' + trans + ')" class="waves-effect waves-dark btn-flat actct" style="padding:0" title="' + lang.lang_parse_redraft + '"><i class="material-icons">redo</i></a></div>' + trans +
'<span class="cbadge viabadge waves-effect ' + viashow + ' ' + mine_via + '" onclick="client(\'' + $.strip_tags(via) + '\')" title="via ' + $.strip_tags(via) + '">via ' + '</div><div class="area-side ' + mouseover + '"><span class="cbadge viabadge waves-effect ' + viashow + ' ' + mine_via + '" style="max-width:60px;" onclick="client(\'' + $.strip_tags(via) + '\')" title="via ' + $.strip_tags(via) + '">' +
via + via +
'</span>' + '</span>' + '<div class="action ' + if_mine + ' ' + noauth + '"><a onclick="toggleAction(\'' + toot.id + '\',\'' + tlid + '\',\'' + acct_id + '\')" class="waves-effect waves-dark btn-flat" style="padding:0"><i class="text-darken-3 material-icons act-icon">expand_more</i></a></div>' +
'</div><div class="area-side ' + mouseover + '"><div class="action ' + if_mine + ' ' + noauth + '"><a onclick="toggleAction(\'' + toot.id + '\',\'' + tlid + '\',\'' + acct_id + '\')" class="waves-effect waves-dark btn-flat" style="padding:0"><i class="text-darken-3 material-icons act-icon">expand_more</i></a></div>' +
'<div class="action ' + noauth + '"><a onclick="details(\'' + toot.id + '\',' + acct_id + '<div class="action ' + noauth + '"><a onclick="details(\'' + toot.id + '\',' + acct_id +
',\'' + tlid + '\',\'normal\')" class="waves-effect waves-dark btn-flat details ' + dmHide + '" style="padding:0"><i class="text-darken-3 material-icons">more_vert</i></a></div>' + ',\'' + tlid + '\',\'normal\')" class="waves-effect waves-dark btn-flat details ' + dmHide + '" style="padding:0"><i class="text-darken-3 material-icons">more_vert</i></a></div>' +
'</div></div>' + '</div></div>' +
@@ -887,6 +921,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
var datetype = localStorage.getItem("datetype"); var datetype = localStorage.getItem("datetype");
Object.keys(obj).forEach(function (key) { Object.keys(obj).forEach(function (key) {
var toot = obj[key]; var toot = obj[key];
if (toot) {
console.log(["Parsing", toot]) console.log(["Parsing", toot])
if (!toot.username) { if (!toot.username) {
var raw = toot; var raw = toot;
@@ -918,7 +953,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
} }
var memory = localStorage.getItem("notice-mem"); var memory = localStorage.getItem("notice-mem");
if (popup >= 0 && obj.length < 5 && notftext != memory) { if (popup >= 0 && obj.length < 5 && notftext != memory) {
Materialize.toast(escapeHTML(toot.display_name) + ":" + ftxt, popup * 1000); M.toast({ html: escapeHTML(toot.display_name) + ":" + ftxt, displayLength: popup * 1000 })
$(".notf-icon_" + tlid).addClass("red-text"); $(".notf-icon_" + tlid).addClass("red-text");
localStorage.setItem("notice-mem", notftext); localStorage.setItem("notice-mem", notftext);
notftext = ""; notftext = "";
@@ -927,9 +962,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
native = "yes"; native = "yes";
} }
if (native == "yes") { if (native == "yes") {
var electron = require("electron"); var os = localStorage.getItem("platform");
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = { var options = {
body: toot.display_name + "(" + toot.acct + ")" + ftxt, body: toot.display_name + "(" + toot.acct + ")" + ftxt,
icon: toot.avatar icon: toot.avatar
@@ -938,14 +971,15 @@ function userparse(obj, auth, acct_id, tlid, popup) {
if (os == "darwin") { if (os == "darwin") {
var n = new Notification('TheDesk:' + domain, options); var n = new Notification('TheDesk:' + domain, options);
} else { } else {
ipc.send('native-notf', [ var nativeNotfOpt = [
'TheDesk:' + domain, 'TheDesk:' + domain,
toot.display_name + "(" + toot.acct + ")" + ftxt, toot.display_name + "(" + toot.acct + ")" + ftxt,
toot.avatar, toot.avatar,
"userdata", "userdata",
acct_id, acct_id,
toot.id toot.id
]); ]
postMessage(["nativeNotf", nativeNotfOpt], "*")
} }
} }
} }
@@ -987,20 +1021,22 @@ function userparse(obj, auth, acct_id, tlid, popup) {
'</div><div class="area-icon"><a onclick="udg(\'' + toot.id + '\',' + '</div><div class="area-icon"><a onclick="udg(\'' + toot.id + '\',' +
acct_id + ');" user="' + toot.acct + '" class="udg">' + acct_id + ');" user="' + toot.acct + '" class="udg">' +
'<img draggable="false" src="' + avatar + '" width="40" class="prof-img" user="' + toot '<img draggable="false" src="' + avatar + '" width="40" class="prof-img" user="' + toot
.acct + '"></a></div>' + .acct + '" onerror="this.src=\'../../img/loading.svg\'"></a></div>' +
'<div class="area-display_name"><div class="flex-name"><span class="user">' + '<div class="area-display_name"><div class="flex-name"><span class="user">' +
dis_name + '</span>' + dis_name + '</span>' +
'<span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"> @' + '<span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"> @' +
toot.acct + locked + '</span>' + toot.acct + locked + '</span>' +
'</div>' + '</div>' +
'</div>' + '</div>' +
'<div style="justify-content:space-around" class="area-toot"> <div class="cbadge" style="width:100px;">Follows:' + '<div style="justify-content:space-around;top:5px" class="area-actions"> <div class="cbadge" style="width:100px;">Follows:' +
toot.following_count + toot.following_count +
'</div><div class="cbadge" style="width:100px;">Followers:' + toot.followers_count + '</div><div class="cbadge" style="width:100px;">Followers:' + toot.followers_count +
'</div>' + authhtml + '</div>' + authhtml +
'</div>' + '</div>' +
'</div>' + '</div>' +
'</div>'; '</div>';
}
}); });
return templete; return templete;
@@ -1009,23 +1045,26 @@ function userparse(obj, auth, acct_id, tlid, popup) {
function client(name) { function client(name) {
if (name != "Unknown") { if (name != "Unknown") {
//聞く //聞く
var electron = require("electron"); Swal.fire({
var remote = electron.remote;
var dialog = remote.dialog;
const options = {
type: 'info',
title: lang.lang_parse_clientop, title: lang.lang_parse_clientop,
message: name + lang.lang_parse_clienttxt, text: name + lang.lang_parse_clienttxt,
buttons: [lang.lang_parse_clientno, lang.lang_parse_clientemp, lang.lang_parse_clientmute] type: 'info',
} showCancelButton: true,
dialog.showMessageBox(options, function (arg) { confirmButtonColor: '#3085d6',
if (arg === 1) { cancelButtonColor: '#3085d6',
confirmButtonText: lang.lang_parse_clientmute,
cancelButtonText: lang.lang_parse_clientemp,
showCloseButton: true,
focusConfirm: false,
}).then((result) => {
if (result.dismiss == "cancel") {
//Emp
var cli = localStorage.getItem("client_emp"); var cli = localStorage.getItem("client_emp");
var obj = JSON.parse(cli); var obj = JSON.parse(cli);
if (!obj) { if (!obj) {
var obj = []; var obj = [];
obj.push(name); obj.push(name);
Materialize.toast(escapeHTML(name) + lang.lang_status_emphas, 2000); M.toast({ html: escapeHTML(name) + lang.lang_status_emphas, displayLength: 2000 })
} else { } else {
var can; var can;
Object.keys(obj).forEach(function (key) { Object.keys(obj).forEach(function (key) {
@@ -1035,19 +1074,21 @@ function client(name) {
} else { } else {
can = true; can = true;
obj.splice(key, 1); obj.splice(key, 1);
Materialize.toast(escapeHTML(name) + lang.lang_status_unemphas, 2000); M.toast({ html: escapeHTML(name) + lang.lang_status_unemphas, displayLength: 2000 })
} }
}); });
if (!can) { if (!can) {
obj.push(name); obj.push(name);
Materialize.toast(escapeHTML(name) + lang.lang_status_emphas, 2000); M.toast({ html: escapeHTML(name) + lang.lang_status_emphas, displayLength: 2000 })
} else { } else {
} }
}
var json = JSON.stringify(obj); var json = JSON.stringify(obj);
localStorage.setItem("client_emp", json); localStorage.setItem("client_emp", json);
} else if (arg === 2) { parseColumn()
}
} else if (result.value) {
//Mute
var cli = localStorage.getItem("client_mute"); var cli = localStorage.getItem("client_mute");
var obj = JSON.parse(cli); var obj = JSON.parse(cli);
if (!obj) { if (!obj) {
@@ -1056,12 +1097,9 @@ function client(name) {
obj.push(name); obj.push(name);
var json = JSON.stringify(obj); var json = JSON.stringify(obj);
localStorage.setItem("client_mute", json); localStorage.setItem("client_mute", json);
Materialize.toast(escapeHTML(name) + lang.lang_parse_mute, 2000); M.toast({ html: escapeHTML(name) + lang.lang_parse_mute, displayLength: 2000 })
} else { parseColumn()
return;
} }
parseColumn();
}) })
} }
} }

View File

@@ -89,8 +89,9 @@ function voteMastodonrefresh(acct_id, id) {
var start = "https://" + domain + "/api/v1/polls/" + id; var start = "https://" + domain + "/api/v1/polls/" + id;
httpreqd.open('GET', start, true); httpreqd.open('GET', start, true);
httpreqd.setRequestHeader('Content-Type', 'application/json'); httpreqd.setRequestHeader('Content-Type', 'application/json');
httpreqd.setRequestHeader('Authorization', 'Bearer ' + at);
httpreqd.responseType = 'json'; httpreqd.responseType = 'json';
httpreqd.send(JSON.stringify({ i: at, noteId: id })); httpreqd.send();
httpreqd.onreadystatechange = function () { httpreqd.onreadystatechange = function () {
if (httpreqd.readyState == 4) { if (httpreqd.readyState == 4) {
var json = httpreqd.response; var json = httpreqd.response;
@@ -109,7 +110,7 @@ function voteMastodonrefresh(acct_id, id) {
} }
poll = poll + '<div class="pointer vote vote_' + acct_id + '_' + json.id + '_' + keyc + '" onclick="' + votesel + '">' + escapeHTML(choice.title) + '<span class="vote_' + acct_id + '_' + json.id + '_result ' + result_hide + '">(' + choice.votes_count + ')</span></div>'; poll = poll + '<div class="pointer vote vote_' + acct_id + '_' + json.id + '_' + keyc + '" onclick="' + votesel + '">' + escapeHTML(choice.title) + '<span class="vote_' + acct_id + '_' + json.id + '_result ' + result_hide + '">(' + choice.votes_count + ')</span></div>';
}); });
poll = poll + myvote + '<span class="cbadge cbadge-hover" title="' + date(json.expires_at, 'absolute') + poll = poll + myvote + '<a onclick="voteMastodonrefresh(\'' + acct_id + '\',\'' + json.id + '\')" class="pointer">' + lang.lang_manager_refresh + '</a><span class="cbadge cbadge-hover" title="' + date(json.expires_at, 'absolute') +
'"><i class="far fa-calendar-times"></i>' + '"><i class="far fa-calendar-times"></i>' +
date(json.expires_at, datetype) + '</span>'; date(json.expires_at, datetype) + '</span>';
$('.vote_' + acct_id + '_' + json.id).html(poll) $('.vote_' + acct_id + '_' + json.id).html(poll)

View File

@@ -56,12 +56,12 @@ function voiceToggle(tlid) {
speechSynthesis.cancel() speechSynthesis.cancel()
$("#sta-voice-" + tlid).text("Off"); $("#sta-voice-" + tlid).text("Off");
$("#sta-voice-" + tlid).css("color", 'red'); $("#sta-voice-" + tlid).css("color", 'red');
parseColumn(); parseColumn(tlid);
} else { } else {
localStorage.setItem("voice_" + tlid, "true"); localStorage.setItem("voice_" + tlid, "true");
$("#sta-voice-" + tlid).text("On"); $("#sta-voice-" + tlid).text("On");
$("#sta-voice-" + tlid).css("color", '#009688'); $("#sta-voice-" + tlid).css("color", '#009688');
parseColumn(); parseColumn(tlid);
} }
} }
function voiceCheck(tlid) { function voiceCheck(tlid) {
@@ -90,7 +90,7 @@ function voiceSettings() {
localStorage.setItem("voice_speed", $("#voicespeed").val() / 10); localStorage.setItem("voice_speed", $("#voicespeed").val() / 10);
localStorage.setItem("voice_pitch", $("#voicepitch").val() / 50); localStorage.setItem("voice_pitch", $("#voicepitch").val() / 50);
localStorage.setItem("voice_vol", $("#voicevol").val() / 100); localStorage.setItem("voice_vol", $("#voicevol").val() / 100);
Materialize.toast(lang.lang_speech_refresh, 3000); M.toast({ html: lang.lang_speech_refresh, displayLength: 3000 })
} }
function voiceSettingLoad() { function voiceSettingLoad() {
var speed = localStorage.getItem("voice_speed"); var speed = localStorage.getItem("voice_speed");

View File

@@ -1,12 +1,13 @@
//検索 //検索
//検索ボックストグル //検索ボックストグル
function searchMenu() { function searchMenu() {
$("#src-contents").html("");
trend();
$("#left-menu div").removeClass("active"); $("#left-menu div").removeClass("active");
$("#searchMenu").addClass("active"); $("#searchMenu").addClass("active");
$(".menu-content").addClass("hide"); $(".menu-content").addClass("hide");
$("#src-box").removeClass("hide"); $("#src-box").removeClass("hide");
$('ul.tabs').tabs('select_tab', 'src-sta'); //$('ul.tabs').tabs('select_tab', 'src-sta');
$("#src-contents").html("");
} }
//検索取得 //検索取得
@@ -54,7 +55,7 @@ function src(mode) {
tags = tags + '<a onclick="tl(\'tag\',\'' + tag + '\',\'' + acct_id + tags = tags + '<a onclick="tl(\'tag\',\'' + tag + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + escapeHTML(tag) + '</a><br> '; '\',\'add\')" class="pointer">#' + escapeHTML(tag) + '</a><br> ';
} else { } else {
tags = tags + graphDraw(tag); tags = tags + graphDraw(tag, acct_id);
} }
}); });
@@ -63,12 +64,12 @@ function src(mode) {
//トゥート //トゥート
if (json.statuses[0]) { if (json.statuses[0]) {
var templete = parse(json.statuses, '', acct_id); var templete = parse(json.statuses, '', acct_id);
$("#src-contents").append("Mentions<br>" + templete); $("#src-contents").append("<br>Mentions<br>" + templete);
} }
//アカウント //アカウント
if (json.accounts[0]) { if (json.accounts[0]) {
var templete = userparse(json.accounts, '', acct_id); var templete = userparse(json.accounts, '', acct_id);
$("#src-contents").append("Accounts<br>" + templete); $("#src-contents").append("<br>Accounts<br>" + templete);
} }
jQuery("time.timeago").timeago(); jQuery("time.timeago").timeago();
}); });
@@ -85,7 +86,7 @@ function tsAdd(q) {
obj.push(add); obj.push(add);
var json = JSON.stringify(obj); var json = JSON.stringify(obj);
localStorage.setItem("column", json); localStorage.setItem("column", json);
parseColumn(); parseColumn('add');
} }
function tootsearch(tlid, q) { function tootsearch(tlid, q) {
var start = "https://tootsearch.chotto.moe/api/v1/search?from=0&sort=created_at%3Adesc&q=" + q var start = "https://tootsearch.chotto.moe/api/v1/search?from=0&sort=created_at%3Adesc&q=" + q
@@ -164,7 +165,7 @@ function moreTs(tlid, q) {
jQuery("time.timeago").timeago(); jQuery("time.timeago").timeago();
}); });
} }
function graphDraw(tag) { function graphDraw(tag, acct_id) {
var tags = ""; var tags = "";
var his = tag.history; 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 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]);
@@ -177,12 +178,12 @@ function graphDraw(tag) {
var zero = 50 - (his[0].uses / max * 50); var zero = 50 - (his[0].uses / max * 50);
if (max === 0) { if (max === 0) {
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">' + 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&nbsp;<a onclick="tl(\'tag\',\'' + escapeHTML(tag.name) + '\',\'' + acct_id + '</svg><span style="font-size:200%">' + his[0].uses + '</span>toot(s)&nbsp;<a onclick="tl(\'tag\',\'' + escapeHTML(tag.name) + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + escapeHTML(tag.name) + '</a>&nbsp;' + his[0].accounts + lang.lang_src_people; '\',\'add\')" class="pointer">#' + escapeHTML(tag.name) + '</a>&nbsp;' + his[0].accounts + lang.lang_src_people;
} else { } else {
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">' + 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>' + '<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&nbsp;<a onclick="tl(\'tag\',\'' + escapeHTML(tag.name) + '\',\'' + acct_id + '</svg><span style="font-size:200%">' + his[0].uses + '</span>toot&nbsp;<a onclick="tl(\'tag\',\'' + escapeHTML(tag.name) + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + escapeHTML(tag.name) + '</a>&nbsp;' + his[0].accounts + lang.lang_src_people; '\',\'add\')" class="pointer">#' + escapeHTML(tag.name) + '</a>&nbsp;' + his[0].accounts + lang.lang_src_people;
} }
@@ -193,3 +194,48 @@ function graphDraw(tag) {
<path d="M0,0 L10,0 20,10 20,50" fill="#3F51B5"></path> <path d="M0,0 L10,0 20,10 20,50" fill="#3F51B5"></path>
</svg> </svg>
*/ */
function trend(){
console.log("get trend")
$("#src-contents").html("");
var acct_id = $("#src-acct-sel").val();
if(acct_id=="tootsearch"){
return false;
}
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_"+ acct_id + "_at");
var start = "https://" + domain + "/api/v1/trends"
console.log(start)
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + at
},
}).then(function(response) {
return response.json();
}).catch(function(error) {
//todo(error);
console.error(error);
}).then(function(json) {
var tags = "";
Object.keys(json).forEach(function(keye) {
var tag = json[keye];
var his=tag.history;
var max=Math.max.apply(null, [his[0].uses,his[1].uses,his[2].uses,his[3].uses,his[4].uses,his[5].uses,his[6].uses]);
var six=50-(his[6].uses/max*50);
var five=50-(his[5].uses/max*50);
var four=50-(his[4].uses/max*50);
var three=50-(his[3].uses/max*50);
var two=50-(his[2].uses/max*50);
var one=50-(his[1].uses/max*50);
var zero=50-(his[0].uses/max*50);
tags = '<svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
'<g><path d="M0,'+six+' L10,'+five+' 20,'+four+' 30,'+three+' 40,'+two+' 50,'+one+' 60,'+zero+'" style="stroke: #9e9e9e; stroke-width: 1;fill: none;"></path></g>'+
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots&nbsp;<a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + tag.name + '</a>&nbsp;'+his[0].accounts+lang.lang_src_people+"<br><br>";
$("#src-contents").append(tags);
});
});
}

View File

@@ -10,7 +10,7 @@ if (location.search) {
} }
//よく使うタグ //よく使うタグ
function tagShow(tag) { function tagShow(tag) {
$("[data-tag=" + decodeURI(tag) + "]").toggleClass("hide"); $("[data-tag=" + decodeURI(tag).toLowerCase() + "]").toggleClass("hide");
} }
//タグ追加 //タグ追加
function tagPin(tag) { function tagPin(tag) {
@@ -120,10 +120,10 @@ function autoToot(tag) {
var nowPT = localStorage.getItem("stable") var nowPT = localStorage.getItem("stable")
if (nowPT == tag) { if (nowPT == tag) {
localStorage.removeItem("stable"); localStorage.removeItem("stable");
Materialize.toast(lang.lang_tags_unrealtime, 3000); M.toast({ html: lang.lang_tags_unrealtime, displayLength: 3000 })
} else { } else {
localStorage.setItem("stable", tag); localStorage.setItem("stable", tag);
Materialize.toast(lang.lang_tags_tagwarn.replace("{{tag}}", tag).replace("{{tag}}", tag), 3000); M.toast({ html: lang.lang_tags_tagwarn.replace("{{tag}}", tag).replace("{{tag}}", tag), displayLength: 3000 })
brInsert('#' + tag + " ") brInsert('#' + tag + " ")
} }
favTag(); favTag();

View File

@@ -20,7 +20,7 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
obj.push(add); obj.push(add);
var json = JSON.stringify(obj); var json = JSON.stringify(obj);
localStorage.setItem("column", json); localStorage.setItem("column", json);
parseColumn(); parseColumn('add');
return; return;
} }
@@ -425,6 +425,11 @@ function moreload(type, tlid) {
todo(error); todo(error);
console.error(error); console.error(error);
}).then(function (json) { }).then(function (json) {
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
} else {
var mute = [];
}
if (misskey) { if (misskey) {
var templete = misskeyParse(json, '', acct_id, tlid, "", mute); var templete = misskeyParse(json, '', acct_id, tlid, "", mute);
} else { } else {
@@ -816,6 +821,43 @@ function reconnector(tlid, type, acct_id, data, mode) {
} }
reload(type, '', acct_id, tlid, data, mute, "", voice, mode); reload(type, '', acct_id, tlid, data, mute, "", voice, mode);
} }
Materialize.toast(lang.lang_tl_reconnect, 2000); M.toast({ html: lang.lang_tl_reconnect, displayLength: 2000 })
}
function columnReload(tlid, type){
$("#notice_icon_" + tlid).addClass("red-text");
if (type == "mix" || type == "integrated" || type == "plus") {
if (localStorage.getItem("voice_" + tlid)) {
var voice = true;
} else {
var voice = false;
}
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
} else {
var mute = [];
}
var wssh = localStorage.getItem("wssH_" + tlid);
websocketHome[wssh].close();
var wssl = localStorage.getItem("wssL_" + tlid);
websocketLocal[wssl].close();
parseColumn(tlid)
} else if (type == "notf") {
notfColumn(acct_id, tlid, "")
} else {
var wss = localStorage.getItem("wss_" + tlid);
websocket[wss].close();
if (localStorage.getItem("voice_" + tlid)) {
var voice = true;
} else {
var voice = false;
}
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
} else {
var mute = [];
}
parseColumn(tlid)
}
} }
strAliveInt() strAliveInt()

View File

@@ -271,22 +271,14 @@ function detFromImg() {
//画像保存 //画像保存
function dlImg() { function dlImg() {
var url = $("#imgmodal").attr("src"); var url = $("#imgmodal").attr("src");
var electron = require("electron");
var ipc = electron.ipcRenderer;
if (localStorage.getItem("savefolder")) { if (localStorage.getItem("savefolder")) {
var save = localStorage.getItem("savefolder"); var save = localStorage.getItem("savefolder");
} else { } else {
var save = ""; var save = "";
} }
ipc.send('general-dl', [url, save, false]); postMessage(["generalDL", [url, save, false]], "*")
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, "\\\\") + "\\\\.";
Materialize.toast(lang.lang_img_DLDone + arg + '<button class="btn-flat toast-action" onclick="openFinder(\'' + argC + '\')">Show</button>', 5000);
})
} }
function openFinder(dir) { function openFinder(dir) {
ipc.send('open-finder', dir); postMessage(["openFinder", dir], "*")
} }

View File

@@ -20,7 +20,11 @@ $('.type').click(function () {
$("#type-sel").val($(this).attr("data-type")) $("#type-sel").val($(this).attr("data-type"))
}) })
//最初、カラム変更時に発火 //最初、カラム変更時に発火
function parseColumn(dontclose) { function parseColumn(target, dontclose) {
if (target === 0) {
//this is kuso
target = "zero"
}
console.log("%c Parse column", "color:red;font-size:125%"); console.log("%c Parse column", "color:red;font-size:125%");
var size = localStorage.getItem("size"); var size = localStorage.getItem("size");
if (size) { if (size) {
@@ -31,7 +35,7 @@ function parseColumn(dontclose) {
if (localStorage.getItem("menu-done")) { if (localStorage.getItem("menu-done")) {
$("#fukidashi").addClass("hide") $("#fukidashi").addClass("hide")
} }
if (!dontclose) { if (!dontclose && !target) {
tlCloser(); tlCloser();
} }
@@ -55,7 +59,7 @@ function parseColumn(dontclose) {
var domain = localStorage.getItem("domain_" + key); var domain = localStorage.getItem("domain_" + key);
if (localStorage.getItem("mode_" + domain) == "misskey") { if (localStorage.getItem("mode_" + domain) == "misskey") {
localStorage.removeItem("misskey_wss_" + key) localStorage.removeItem("misskey_wss_" + key)
connectMisskey(key) connectMisskey(key, false)
} }
}); });
} }
@@ -76,13 +80,36 @@ function parseColumn(dontclose) {
} else { } else {
var obj = JSON.parse(col); var obj = JSON.parse(col);
} }
var numtarget = false
if (target == "add") {
var tlidtar = obj.length - 1
obj = [obj[tlidtar]]
} else if (target) {
var tlidtar = target
if (target == "zero") {
target = 0
}
obj = [obj[target]]
numtarget = true
} else {
var tlidtar = null
if ($("#timeline-container").length) { if ($("#timeline-container").length) {
$("#timeline-container").html(""); $("#timeline-container").html("");
} }
}
var basekey = 0; var basekey = 0;
for (var key = 0; key < obj.length; key++) { for (var key = 0; key < obj.length; key++) {
var next = key + 1; var next = key + 1;
//acctって言いながらタイムライン
var acct = obj[key]; var acct = obj[key];
if (tlidtar) {
if (tlidtar == "zero") {
key = 0
} else {
key = tlidtar
}
}
if (acct.type == "notf") { if (acct.type == "notf") {
var notf_attr = ' data-notf=' + acct.domain; var notf_attr = ' data-notf=' + acct.domain;
var if_notf = "hide"; var if_notf = "hide";
@@ -164,16 +191,16 @@ function parseColumn(dontclose) {
var animecss = ""; var animecss = "";
} }
if (acct.type == "notf") { 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="fas fa-share exc-icons"></i></label> ' + 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> ' +
'<input type="checkbox" class="filled-in" id="exc-fav-' + key + '" ' + excludeCk(key, "favourite") + ' /><label for="exc-fav-' + key + '" class="exc-chb"><i class="fas fa-star exc-icons"></i></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> ' +
'<input type="checkbox" class="filled-in" id="exc-bt-' + key + '" ' + excludeCk(key, "reblog") + ' /><label for="exc-bt-' + key + '" class="exc-chb" ><i class="fas fa-retweet exc-icons"></i></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> ' +
'<input type="checkbox" class="filled-in" id="exc-follow-' + key + '" ' + excludeCk(key, "follow") + ' /><label for="exc-follow-' + key + '" class="exc-chb" ><i class="fas fa-users exc-icons"></i></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> ' +
'<input type="checkbox" class="filled-in" id="exc-poll-' + key + '" ' + excludeCk(key, "poll") + ' /><label for="exc-poll-' + key + '" class="exc-chb" ><i class="fas fa-tasks exc-icons"></i></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>'; '<button class="btn waves-effect" style="width:60px; padding:0;" onclick="exclude(' + key + ')">Filter</button>';
if(checkNotfFilter(key)){ if (checkNotfFilter(key)) {
exclude=exclude+'<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter(' + key + ')">Clear all</button>' exclude = exclude + '<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter(' + key + ')">Clear all</button>'
} }
exclude=exclude+"<br>"; exclude = exclude + "<br>";
} else if (acct.type == "home") { } else if (acct.type == "home") {
var exclude = '<a onclick="ebtToggle(' + key + 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-' + ')" 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-' +
@@ -183,8 +210,10 @@ function parseColumn(dontclose) {
} }
if (!acct.left_fold) { if (!acct.left_fold) {
basekey = key; basekey = key;
if (!numtarget) {
var basehtml = '<div style="' + css + '" class="box ' + animecss + '" id="timeline_box_' + basekey + '_parentBox"></div>'; var basehtml = '<div style="' + css + '" class="box ' + animecss + '" id="timeline_box_' + basekey + '_parentBox"></div>';
$("#timeline-container").append(basehtml); $("#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>'; 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 { } 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 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>';
@@ -220,10 +249,14 @@ function parseColumn(dontclose) {
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_linkanades + '">link</i><span id="sta-card-' + ')" 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 + 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-' + ')" 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 + key + ',\'' + acct.type + '\'">On</span></a>' + lang.lang_layout_tts + 'TL<br><a onclick="columnReload(' + key +
',\'' + acct.type + '\',\'' + acct.domain + '\',\'' + escapeHTML(acct.data) + '\')" class="setting nex ' + if_notf + ' ' + if_misskey_hide + '"><i class="material-icons waves-effect nex ' + if_notf + '" title="' + lang.lang_layout_reconnect + '">low_priority</i></a><span class="' + if_notf + '">' + lang.lang_layout_reconnect + '</span><br>' + lang.lang_layout_headercolor + '<br><div id="picker_' + key + '" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key + ')" 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>' '" class="tl ' + acct.type + '-timeline " tlid="' + key + '" data-type="' + acct.type + '" data-acct="' + acct.domain + '" data-const="' + acct.type + '_' + acct.domain + '"><div id="landing_' + key + '" style="text-align:center">' + lang.lang_layout_nodata + '</div></div></div>'
$('#timeline_box_' + basekey + '_parentBox').append(html); if (numtarget) {
$('timeline_box_' + key + '_box').html(html)
} else {
$('#timeline_box_' + basekey + '_parentBox').append(html)
}
localStorage.removeItem("pool_" + key); localStorage.removeItem("pool_" + key);
if (acct.data) { if (acct.data) {
var data = acct.data; var data = acct.data;
@@ -257,6 +290,7 @@ function parseColumn(dontclose) {
$("#bottom").removeClass("reverse"); $("#bottom").removeClass("reverse");
$(".leftside").removeClass("reverse"); $(".leftside").removeClass("reverse");
} }
$("#bottom").removeClass("hide");
if (localStorage.getItem("sec") && localStorage.getItem("sec") != "nothing") { if (localStorage.getItem("sec") && localStorage.getItem("sec") != "nothing") {
secvis(localStorage.getItem("sec")); secvis(localStorage.getItem("sec"));
} }
@@ -308,7 +342,7 @@ function secvis(set) {
//カラム追加 //カラム追加
function addColumn() { function addColumn() {
var acct = $("#add-acct-sel").val(); var acct = $("#add-acct-sel").val();
if(acct != "webview" && acct != "noauth"){ if (acct != "webview" && acct != "noauth") {
localStorage.setItem("last-use", acct); localStorage.setItem("last-use", acct);
} }
var type = $("#type-sel").val(); var type = $("#type-sel").val();
@@ -336,7 +370,7 @@ function addColumn() {
localStorage.setItem("column", json); localStorage.setItem("column", json);
} }
parseColumn(); parseColumn('add');
} }
function addselCk() { function addselCk() {
var acct = $("#add-acct-sel").val(); var acct = $("#add-acct-sel").val();
@@ -364,26 +398,28 @@ function addselCk() {
function removeColumn(tlid) { function removeColumn(tlid) {
$("#sort-box").addClass("hide"); $("#sort-box").addClass("hide");
$("#sort-box").removeClass("show"); $("#sort-box").removeClass("show");
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 multi = localStorage.getItem("column");
var obj = JSON.parse(multi); 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) {
if (arg === 1) {
localStorage.removeItem("card_" + tlid);
obj.splice(tlid, 1); 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); var json = JSON.stringify(obj);
localStorage.setItem("column", json); localStorage.setItem("column", json);
parseColumn(); sortLoad()
sortload() $("#timeline_box_" + tlid + "_parentBox").remove()
} }
}) $("#sort-box").removeClass("hide");
$("#sort-box").addClass("show");
});
} }
//設定トグル //設定トグル
@@ -470,7 +506,7 @@ function webviewParse(url, key, insert, icnsert, css) {
'" style="' + css + '"><div class="notice-box z-depth-2" id="menu_' + key + '" style="' + insert + '">' + '" 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"><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-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-sta"></div>' +
'<div class="area-a2"><a onclick="removeColumn(' + key + '<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>' + ')" 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 + '<div class="area-a3"><a onclick="setToggle(' + key +
@@ -479,7 +515,6 @@ function webviewParse(url, key, insert, icnsert, css) {
'"></div><div class="column-hide notf-indv-box" id="util-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 + '" 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>'; '" 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; return html;
} }
function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, animecss, q) { function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, animecss, q) {

View File

@@ -51,6 +51,5 @@ $(function () {
}); });
}); });
function help() { function help() {
const { shell } = require('electron'); postMessage(["openUrl", "https://docs.thedesk.top"], "*")
shell.openExternal("https://docs.thedesk.top");
} }

View File

@@ -39,6 +39,7 @@ function show() {
$('#post-box').css("left", left + "px") $('#post-box').css("left", left + "px")
$('#post-box').css("top", top + "px") $('#post-box').css("top", top + "px")
$('#post-box').fadeIn(); $('#post-box').fadeIn();
$('#textarea').characterCounter();
} }
$(function () { $(function () {
@@ -69,7 +70,6 @@ if (location.search) {
var mode = m[1]; var mode = m[1];
var codex = m[2]; var codex = m[2];
if (mode == "share") { if (mode == "share") {
console.log(codex);
$('textarea').focus(); $('textarea').focus();
$("#textarea").val(decodeURI(codex)); $("#textarea").val(decodeURI(codex));
show(); show();
@@ -83,15 +83,20 @@ $('#posttgl').click(function (e) {
} else { } else {
hide(); hide();
} }
$('.cvo').removeClass("selectedToot")
selectedColumn = 0
selectedToot = 0
}); });
$("#timeline-container,#group").click(function (e) { $("#timeline-container,#group").click(function (e) {
if (localStorage.getItem("box") != "absolute") { if (localStorage.getItem("box") != "absolute") {
if ($('#post-box').hasClass("appear") && !localStorage.getItem("nohide")) { if ($('#post-box').hasClass("appear") && !localStorage.getItem("nohide")) {
hide(); hide();
} }
} }
$('.cvo').removeClass("selectedToot")
selectedColumn = 0
selectedToot = 0
localStorage.removeItem("nohide") localStorage.removeItem("nohide")
}); });
$('#textarea,#cw-text').focusout(function (e) { $('#textarea,#cw-text').focusout(function (e) {
@@ -100,4 +105,7 @@ $('#textarea,#cw-text').focusout(function (e) {
localStorage.removeItem("nohide") localStorage.removeItem("nohide")
} }
//setTimeout(remove, 100); //setTimeout(remove, 100);
$('.cvo').removeClass("selectedToot")
selectedColumn = 0
selectedToot = 0
}); });

View File

@@ -5,7 +5,7 @@ var envView = new Vue({
methods: { methods: {
complete: function (i, val) { complete: function (i, val) {
var ls = envView.config[i].storage; var ls = envView.config[i].storage;
Materialize.toast("Complete", 3000); M.toast({ html: 'Complete', displayLength: 3000 })
if (!val) { if (!val) {
var id = envView.config[i].id; var id = envView.config[i].id;
var val = $("#" + id).val() var val = $("#" + id).val()
@@ -23,13 +23,22 @@ var tlView = new Vue({
data: { config: tlConstruction }, data: { config: tlConstruction },
methods: { methods: {
complete: function (i, val) { complete: function (i, val) {
var ls = tlView.config[i].storage; var ls = tlView.config[i];
if (!val) { if (val) {
var id = tlView.config[i].id; localStorage.setItem(ls.storage, val)
var val = $("#" + id).val() } else {
if (!ls.data) {
ls = [ls]
} else {
ls = ls.data
}
for (var j = 0; j < ls.length; j++) {
M.toast({ html: 'Complete', displayLength: 3000 })
var id = ls[j].id;
var val = $("#" + id).val()
localStorage.setItem(ls[j].storage, val)
}
} }
Materialize.toast("Complete", 3000);
localStorage.setItem(ls, val)
return true return true
} }
} }
@@ -39,13 +48,22 @@ var postView = new Vue({
data: { config: postConstruction, kirishima: localStorage.getItem('kirishima') }, data: { config: postConstruction, kirishima: localStorage.getItem('kirishima') },
methods: { methods: {
complete: function (i, val) { complete: function (i, val) {
var ls = postView.config[i].storage; var ls = postView.config[i];
Materialize.toast("Complete", 3000); if (val) {
if (!val) { localStorage.setItem(ls.storage, val)
var id = postView.config[i].id; } else {
var val = $("#" + id).val() if (!ls.data) {
ls = [ls]
} else {
ls = ls.data
}
for (var j = 0; j < ls.length; j++) {
M.toast({ html: 'Complete', displayLength: 3000 })
var id = ls[j].id;
var val = $("#" + id).val()
localStorage.setItem(ls[j].storage, val)
}
} }
localStorage.setItem(ls, val)
return true return true
} }
} }
@@ -62,7 +80,7 @@ function settings() {
$("#" + theme).prop("checked", true); $("#" + theme).prop("checked", true);
} else { } else {
if (cd != localStorage.getItem("theme")) { if (cd != localStorage.getItem("theme")) {
Materialize.toast(lang.lang_setting_theme.replace("{{set}}", ct), 3000); M.toast({ html: lang.lang_setting_theme.replace("{{set}}", ct), displayLength: 3000 })
} }
//テーマはこの場で設定 //テーマはこの場で設定
themes(cd); themes(cd);
@@ -71,14 +89,14 @@ function settings() {
var fontd = $("#font").val(); var fontd = $("#font").val();
if (fontd) { if (fontd) {
if (fontd != localStorage.getItem("font")) { if (fontd != localStorage.getItem("font")) {
Materialize.toast(lang.lang_setting_font.replace("{{set}}", fontd), 3000); M.toast({ html: lang.lang_setting_font.replace("{{set}}", ct), displayLength: 3000 })
} }
localStorage.setItem("font", fontd); localStorage.setItem("font", fontd);
themes(); themes();
} else { } else {
if (localStorage.getItem("font")) { if (localStorage.getItem("font")) {
localStorage.removeItem("font"); localStorage.removeItem("font");
Materialize.toast(lang.lang_setting_font.replace("{{set}}", lang.lang_setting_default), 3000); M.toast({ html: lang.lang_setting_font.replace("{{set}}", ct), displayLength: 3000 })
themes(); themes();
} }
} }
@@ -96,16 +114,32 @@ function load() {
var max = tlView.config.length; var max = tlView.config.length;
for (var i = 0; i < max; i++) { for (var i = 0; i < max; i++) {
var ls = tlView.config[i].storage; var ls = tlView.config[i].storage;
if (ls) {
if (localStorage.getItem(ls)) { if (localStorage.getItem(ls)) {
tlView.config[i].setValue = localStorage.getItem(ls) tlView.config[i].setValue = localStorage.getItem(ls)
} }
} else {
ls = tlView.config[i].data
for (var j = 0; j < ls.length; j++) {
if(localStorage.getItem(tlView.config[i].data[j].storage)){
tlView.config[i].data[j].setValue = localStorage.getItem(tlView.config[i].data[j].storage)
}
}
}
} }
var max = postView.config.length; var max = postView.config.length;
for (var i = 0; i < max; i++) { for (var i = 0; i < max; i++) {
var ls = postView.config[i].storage; var ls = postView.config[i].storage;
if (ls) {
if (localStorage.getItem(ls)) { if (localStorage.getItem(ls)) {
postView.config[i].setValue = localStorage.getItem(ls) postView.config[i].setValue = localStorage.getItem(ls)
} }
} else {
ls = postView.config[i].data
for (var j = 0; j < ls.length; j++) {
postView.config[i].data[j].setValue = localStorage.getItem(ls[j].storage)
}
}
} }
if (localStorage.getItem("imas")) { if (localStorage.getItem("imas")) {
$(".imas").removeClass("hide"); $(".imas").removeClass("hide");
@@ -165,12 +199,13 @@ function cliMuteDel(key) {
function wordmute() { function wordmute() {
var word = localStorage.getItem("word_mute"); var word = localStorage.getItem("word_mute");
var obj = JSON.parse(word); var obj = JSON.parse(word);
$('#wordmute').material_chip({ if (!obj) { obj = [] }
$('#wordmute').chips({
data: obj, data: obj,
}); });
} }
function wordmuteSave() { function wordmuteSave() {
var word = $('#wordmute').material_chip('data'); var word = M.Chips.getInstance($("#wordmute")).chipsData;
var json = JSON.stringify(word); var json = JSON.stringify(word);
localStorage.setItem("word_mute", json); localStorage.setItem("word_mute", json);
} }
@@ -178,19 +213,18 @@ function wordmuteSave() {
function wordemp() { function wordemp() {
var word = localStorage.getItem("word_emp"); var word = localStorage.getItem("word_emp");
var obj = JSON.parse(word); var obj = JSON.parse(word);
$('#wordemp').material_chip({ if (!obj) { obj = [] }
$('#wordemp').chips({
data: obj, data: obj,
}); });
} }
function wordempSave() { function wordempSave() {
var word = $('#wordemp').material_chip('data'); var word = M.Chips.getInstance($("#wordemp")).chipsData;
var json = JSON.stringify(word); var json = JSON.stringify(word);
localStorage.setItem("word_emp", json); localStorage.setItem("word_emp", json);
} }
function notftest() { function notftest() {
var electron = require("electron"); var os = localStorage.getItem("platform");
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = { var options = {
body: lang.lang_setting_notftest + '(' + lang.lang_setting_notftestprof + ')', body: lang.lang_setting_notftest + '(' + lang.lang_setting_notftestprof + ')',
icon: localStorage.getItem("prof_0") icon: localStorage.getItem("prof_0")
@@ -198,14 +232,15 @@ function notftest() {
if (os == "darwin") { if (os == "darwin") {
var n = new Notification('TheDesk' + lang.lang_setting_notftest, options); var n = new Notification('TheDesk' + lang.lang_setting_notftest, options);
} else { } else {
ipc.send('native-notf', ['TheDesk' + lang.lang_setting_notftest, lang.lang_setting_notftest + '(' + lang.lang_setting_notftestprof + ')', localStorage.getItem('prof_0'), "", ""]); var nativeNotfOpt = ['TheDesk' + lang.lang_setting_notftest, lang.lang_setting_notftest + '(' + lang.lang_setting_notftestprof + ')', localStorage.getItem('prof_0'), "", ""]
postMessage(["nativeNotf", nativeNotfOpt], "*")
} }
} }
function oks(no) { function oks(no) {
var txt = $("#oks-" + no).val(); var txt = $("#oks-" + no).val();
localStorage.setItem("oks-" + no, txt); localStorage.setItem("oks-" + no, txt);
Materialize.toast(lang.lang_setting_ksref, 3000); M.toast({ html: lang.lang_setting_ksref, displayLength: 3000 })
} }
function oksload() { function oksload() {
if (localStorage.getItem("oks-1")) { $("#oks-1").val(localStorage.getItem("oks-1")) } if (localStorage.getItem("oks-1")) { $("#oks-1").val(localStorage.getItem("oks-1")) }
@@ -213,29 +248,24 @@ function oksload() {
if (localStorage.getItem("oks-3")) { $("#oks-3").val(localStorage.getItem("oks-3")) } if (localStorage.getItem("oks-3")) { $("#oks-3").val(localStorage.getItem("oks-3")) }
} }
function changelang(lang) { function changelang(lang) {
var electron = require("electron"); postMessage(["lang", lang], "*")
var ipc = electron.ipcRenderer;
ipc.send('lang', lang);
ipc.on('langres', function (event, arg) {
location.href = "../" + lang + "/setting.html"
});
} }
function exportSettings() { function exportSettings() {
if (!confirm(lang.lang_setting_exportwarn)) { Swal.fire({
return false; title: lang.lang_setting_exportwarn,
} type: 'warning',
var electron = require("electron"); showCancelButton: true,
var remote = electron.remote; confirmButtonColor: '#3085d6',
var dialog = remote.dialog; cancelButtonColor: '#d33',
var ipc = electron.ipcRenderer; confirmButtonText: lang.lang_yesno,
dialog.showSaveDialog(null, { cancelButtonText: lang.lang_no
title: 'Export', }).then((result) => {
properties: ['openFile', 'createDirectory'], if (result.value) {
defaultPath: "export.thedeskconfigv2" postMessage(["exportSettings", ""], "*")
}, (savedFiles) => {
if (!savedFiles) {
return false;
} }
})
}
function exportSettingsCore() {
var exp = {}; var exp = {};
//Accounts //Accounts
var multi = localStorage.getItem("multi"); var multi = localStorage.getItem("multi");
@@ -293,32 +323,24 @@ function exportSettings() {
var tagarr = localStorage.getItem("tag"); var tagarr = localStorage.getItem("tag");
var favtag = JSON.parse(tagarr); var favtag = JSON.parse(tagarr);
exp.favoriteTags = favtag; exp.favoriteTags = favtag;
ipc.send('export', [savedFiles, JSON.stringify(exp)]); return exp;
alert("Done.")
//cards
//lang
});
} }
function importSettings() { function importSettings() {
if (!confirm(lang.lang_setting_importwarn)) { Swal.fire({
return false; title: lang.lang_setting_importwarn,
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: lang.lang_yesno,
cancelButtonText: lang.lang_no
}).then((result) => {
if (result.value) {
postMessage(["importSettings", ""], "*")
} }
var electron = require("electron"); })
var remote = electron.remote; }
var dialog = remote.dialog; function importSettingsCore(arg) {
var ipc = electron.ipcRenderer;
dialog.showOpenDialog(null, {
title: 'Import',
properties: ['openFile'],
filters: [
{ name: 'TheDesk Config', extensions: ['thedeskconfig', 'thedeskconfigv2'] },
]
}, (fileNames) => {
if (!fileNames) {
return false;
}
ipc.send('import', fileNames[0]);
ipc.on('config', function (event, arg) {
var obj = JSON.parse(arg); var obj = JSON.parse(arg);
if (obj) { if (obj) {
localStorage.clear(); localStorage.clear();
@@ -405,36 +427,25 @@ function importSettings() {
} }
location.href = "index.html"; location.href = "index.html";
} else { } else {
alert("Error.") Swal.fire({
} type: 'error',
title: 'Error'
}) })
//cards }
//lang
});
} }
function savefolder() { function savefolder() {
var electron = require("electron"); postMessage(["sendSinmpleIpc", "savefolder"], "*")
var remote = electron.remote;
var dialog = remote.dialog;
dialog.showOpenDialog(null, {
title: 'Save folder',
properties: ['openDirectory'],
}, (fileNames) => {
localStorage.setItem("savefolder", fileNames[0]);
});
} }
function font() { function font() {
var electron = require("electron"); postMessage(["sendSinmpleIpc", "fonts"], "*")
var ipc = electron.ipcRenderer; }
ipc.send('fonts', []); function fontList(arg) {
ipc.on('font-list', function (event, arg) {
$("#fonts").removeClass("hide"); $("#fonts").removeClass("hide");
for (var i = 0; i < arg.length; i++) { for (var i = 0; i < arg.length; i++) {
var font = arg[i]; var font = arg[i];
$("#fonts").append('<div class="font pointer" style="font-family:' + font.family + '" onclick="insertFont(\'' + font.family + '\')">' + font.family + "</div>") $("#fonts").append('<div class="font pointer" style="font-family:' + font.family + '" onclick="insertFont(\'' + font.family + '\')">' + font.family + "</div>")
} }
});
} }
function insertFont(name) { function insertFont(name) {
$("#font").val(name); $("#font").val(name);
@@ -520,7 +531,7 @@ function customComp() {
pickerDefine(1, "fff"); pickerDefine(1, "fff");
pickerDefine(2, "fff"); pickerDefine(2, "fff");
pickerDefine(3, "fff"); pickerDefine(3, "fff");
ipc.send('theme-json-create', JSON.stringify(json)); postMessage(["themeJsonCreate", JSON.stringify(json)], "*")
} }
function deleteIt() { function deleteIt() {
var id = $("#custom-sel-sel").val(); var id = $("#custom-sel-sel").val();
@@ -540,14 +551,12 @@ function deleteIt() {
pickerDefine(1, "fff"); pickerDefine(1, "fff");
pickerDefine(2, "fff"); pickerDefine(2, "fff");
pickerDefine(3, "fff"); pickerDefine(3, "fff");
ipc.on('theme-json-delete-complete', function (event, args) { postMessage(["themeJsonDelete", id], "*")
ctLoad()
});
ipc.send('theme-json-delete', id);
} }
function ctLoad() { function ctLoad() {
ipc.send('theme-json-list', ""); postMessage(["sendSinmpleIpc", "theme-json-list"], "*")
ipc.on('theme-json-list-response', function (event, args) { }
function ctLoadCore(args) {
var templete = ""; var templete = "";
Object.keys(args).forEach(function (key) { Object.keys(args).forEach(function (key) {
var theme = args[key]; var theme = args[key];
@@ -560,8 +569,7 @@ function ctLoad() {
$("#custom-sel-sel").html(templete); $("#custom-sel-sel").html(templete);
templete = '<option value="add_new">' + $("#edit-selector").attr("data-add") + '</option>' + templete; templete = '<option value="add_new">' + $("#edit-selector").attr("data-add") + '</option>' + templete;
$("#custom-edit-sel").html(templete); $("#custom-edit-sel").html(templete);
$('select').material_select('update'); $('select').formSelect();
});
} }
function customSel() { function customSel() {
var id = $("#custom-sel-sel").val(); var id = $("#custom-sel-sel").val();
@@ -589,8 +597,10 @@ function custom() {
$("#delTheme").addClass("disabled") $("#delTheme").addClass("disabled")
} else { } else {
$("#delTheme").removeClass("disabled") $("#delTheme").removeClass("disabled")
ipc.send('theme-json-request', id); postMessage(["themeJsonRequest", id], "*")
ipc.on('theme-json-response', function (event, args) { }
}
function customConnect(args) {
$("#custom_name").val(args.name); $("#custom_name").val(args.name);
$("#custom_desc").val(args.desc); $("#custom_desc").val(args.desc);
$("#" + args.base).prop("checked", true); $("#" + args.base).prop("checked", true);
@@ -615,40 +625,30 @@ function custom() {
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>') $("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
pickerDefine(3, rgbToHex(accent)) pickerDefine(3, rgbToHex(accent))
$("#custom_json").val(JSON.stringify(args)); $("#custom_json").val(JSON.stringify(args));
});
}
} }
function customImp() { function customImp() {
var json = $("#custom_import").val(); var json = $("#custom_import").val();
if (JSON5.parse(json)) { if (JSON5.parse(json)) {
ipc.send('theme-json-create', json); postMessage(["themeJsonCreate", json], "*")
} else { } else {
alert("Error") Swal.fire({
type: 'error',
title: 'Error'
})
} }
} }
function hardwareAcceleration(had) { function clearCustomImport() {
ipc.send('ha', had);
}
ipc.on('theme-json-create-complete', function (event, args) {
$("#custom_import").val(""); $("#custom_import").val("");
ctLoad() }
}); function hardwareAcceleration(had) {
postMessage(["ha", had], "*")
}
function customSound(key) { function customSound(key) {
var electron = require("electron"); postMessage(["customSound", key], "*")
var remote = electron.remote; }
var dialog = remote.dialog; function customSoundSave(key, file) {
dialog.showOpenDialog(null, { localStorage.setItem("custom" + key, file);
title: 'Custom sound', $("#c1-file").text(file)
properties: ['openFile'],
filters: [
{ name: 'Audio', extensions: ['mp3', 'aac', 'wav', 'flac', 'm4a'] },
{ name: 'All', extensions: ['*'] },
]
}, (fileNames) => {
localStorage.setItem("custom" + key, fileNames[0]);
$("#c1-file").text(fileNames[0])
});
} }
window.onload = function () { window.onload = function () {
//最初に読む //最初に読む
@@ -659,7 +659,6 @@ window.onload = function () {
checkSpotify(); checkSpotify();
voiceSettingLoad(); voiceSettingLoad();
oksload(); oksload();
npprovider();
ctLoad() ctLoad()
}; };

View File

@@ -1,953 +0,0 @@
//設定(setting.html)で読む
var envView = new Vue({
el: '#env-view',
data: {config:envConstruction,value:envValue},
method: {
settings: function (index) {
return true
}
}
});
//設定ボタン押した。
function settings() {
var dd = $("[name=time]:checked").val();
var dt = $("[for="+dd+"]").text();
if (dd != localStorage.getItem("datetype")) {
Materialize.toast(lang.lang_setting_time.replace("{{set}}" ,dt), 3000);
}
localStorage.setItem("datetype", dd);
var cd = $("[name=theme]:checked").val();
var ct = $("[for="+cd+"]").html();
if(cd=="custom" && !$("#custom-sel-sel").val()){
var theme = localStorage.getItem("theme");
if (!theme) {
var theme = "white";
}
$("#" + theme).prop("checked", true);
}else{
if (cd != localStorage.getItem("theme")) {
Materialize.toast(lang.lang_setting_theme.replace("{{set}}" ,ct), 3000);
}
//テーマはこの場で設定
themes(cd);
localStorage.setItem("theme", cd);
}
var nd = $("[name=nsfw]:checked").val();
var nt = $("[for=n_"+nd+"]").text();
if (nd != localStorage.getItem("nsfw")) {
Materialize.toast(lang.lang_setting_nsfw.replace("{{set}}" ,nt), 3000);
}
localStorage.setItem("nsfw", nd);
var cwd = $("[name=cw]:checked").val();
var cwt = $("[for=c_"+cwd+"]").text();
if (cwd != localStorage.getItem("cw")) {
Materialize.toast(lang.lang_setting_cw.replace("{{set}}" ,cwt), 3000);
}
localStorage.setItem("cw", cwd);
var cwtd = $("#cw-text").val();
if (cwtd != localStorage.getItem("cw-text")) {
Materialize.toast(lang.lang_setting_cwtext.replace("{{set}}" ,cwtd), 3000);
}
localStorage.setItem("cw-text", cwtd);
var cwsd = $("[name=cws]:checked").val();
var cwst = $("[for=cws_"+cwsd+"]").text();
if (cwsd != localStorage.getItem("always-cw")) {
Materialize.toast(lang.lang_setting_cws.replace("{{set}}" ,cwst), 3000);
}
localStorage.setItem("always-cw", cwsd);
var rpd = $("[name=rp]:checked").val();
var rpt = $("[for=c_"+cwd+"]").text();
if (rpd != localStorage.getItem("replyct")) {
Materialize.toast(lang.lang_setting_rp.replace("{{set}}" ,rpt), 3000);
}
localStorage.setItem("replyct", rpd);
var visd = $("[name=vis]:checked").val();
var vist = $("[for="+visd+"]").text();
if (visd != localStorage.getItem("vis")) {
Materialize.toast(lang.lang_setting_vis.replace("{{set}}" ,vist), 3000);
}
localStorage.setItem("vis", visd);
var popd = $("#popup").val();
if (popd > 0 && popd != localStorage.getItem("popup")) {
Materialize.toast(lang.lang_setting_popup.replace("{{set}}" ,popd+lang.lang_setting_s), 3000);
} else if (popd != localStorage.getItem("popup")) {
Materialize.toast(lang.lang_setting_popup.replace("{{set}}" ,lang.lang_setting_off), 3000);
}
localStorage.setItem("popup", popd);
var gifd = $("[name=gif]:checked").val();
var gift = $("[for=g_"+gifd+"]").text();
if (gifd != localStorage.getItem("gif")) {
Materialize.toast(lang.lang_setting_gif.replace("{{set}}" ,gift), 3000);
}
localStorage.setItem("gif", gifd);
var sentd = $("#sentence").val();
var ltrd = $("#letters").val();
if (sentd != localStorage.getItem("sentence") || ltrd != localStorage.getItem("letters")) {
Materialize.toast(lang.lang_setting_selt.replace("{{set1}}" ,sentd).replace("{{set2}}" ,ltrd), 3000);
}
localStorage.setItem("sentence", sentd);
localStorage.setItem("letters", ltrd);
var csentd = $("#cw_sentence").val();
var cltrd = $("#cw_letters").val();
if (csentd != localStorage.getItem("cw_sentence") || cltrd != localStorage.getItem("cw_letters")) {
Materialize.toast(lang.lang_setting_autocw.replace("{{set1}}" ,csentd).replace("{{set2}}" ,cltrd), 3000);
}
localStorage.setItem("cw_sentence", csentd);
localStorage.setItem("cw_letters", cltrd);
var widthd = $("#width").val();
if (widthd != localStorage.getItem("width")) {
Materialize.toast(lang.lang_setting_width.replace("{{set}}" ,widthd), 3000);
}
localStorage.setItem("width", widthd);
var fwidthd = $("#fixwidth").val();
if (fwidthd != localStorage.getItem("fixwidth")) {
Materialize.toast(lang.lang_setting_fixwidth.replace("{{set}}" ,fwidthd), 3000);
}
localStorage.setItem("fixwidth", fwidthd);
var imgd = $("[name=img]:checked").val();
var imgt = $("[for=i_"+imgd+"]").text();
if (imgd != localStorage.getItem("img")) {
Materialize.toast(lang.lang_setting_img.replace("{{set}}" ,imgt), 3000);
}
localStorage.setItem("img", imgd);
var fontd = $("#font").val();
if(fontd){
if (fontd != localStorage.getItem("font")) {
Materialize.toast(lang.lang_setting_font.replace("{{set}}" ,fontd), 3000);
}
localStorage.setItem("font", fontd);
themes();
}else{
if(localStorage.getItem("font")){
localStorage.removeItem("font");
Materialize.toast(lang.lang_setting_font.replace("{{set}}" ,lang.lang_setting_default), 3000);
themes();
}
}
var sized = $("#size").val();
if (sized != localStorage.getItem("size")) {
Materialize.toast(lang.lang_setting_size.replace("{{set}}" ,sized), 3000);
}
localStorage.setItem("size", sized);
var heid = $("#img-height").val();
if (heid != localStorage.getItem("img-height")) {
Materialize.toast(lang.lang_setting_imgheight.replace("{{set}}" ,heid), 3000);
}
localStorage.setItem("img-height", heid);
var tckrd = $("[name=ticker]:checked").val();
var tckrt = $("[for=ticker_"+tckrd+"]").text();
if (tckrd != localStorage.getItem("ticker_ok")) {
Materialize.toast(lang.lang_setting_ticker.replace("{{set}}" ,tckrt), 3000);
}
localStorage.setItem("ticker_ok", tckrd);
var animed = $("[name=anime]:checked").val();
var animet = $("[for=anime_"+animed+"]").text();
if (animed != localStorage.getItem("animation")) {
Materialize.toast(lang.lang_setting_animation.replace("{{set}}" ,animet), 3000);
}
localStorage.setItem("animation", animed);
var boxd = $("[name=box]:checked").val();
var boxt = $("[for=bx_"+boxd+"]").text();
if (boxd != localStorage.getItem("box")) {
Materialize.toast(lang.lang_setting_boxConfirm.replace("{{set}}" ,boxt), 3000);
}
localStorage.setItem("box", boxd);
var tagd = $("[name=tag]:checked").val();
var tagt = $("[for=t_"+tagd+"]").text();
if (tagd != localStorage.getItem("tag-range")) {
Materialize.toast(lang.lang_setting_tag.replace("{{set}}" ,tagt), 3000);
}
localStorage.setItem("tag-range", tagd);
var uld = $("[name=ul]:checked").val();
var ult = $("[for=ul_"+uld+"]").text();
if (uld != localStorage.getItem("locale")) {
Materialize.toast(lang.lang_setting_ul.replace("{{set}}" ,ult), 3000);
}
localStorage.setItem("locale", uld);
var ntd = $("[name=notf]:checked").val();
var ntt = $("[for=ntf_"+ntd+"]").text();
if (ntd != localStorage.getItem("nativenotf")) {
Materialize.toast(lang.lang_setting_notf.replace("{{set}}" ,ntt), 3000);
}
localStorage.setItem("nativenotf", ntd);
var qtd = $("[name=quote]:checked").val();
var qtt = $("[for=q_"+qtd+"]").text();
if (qtd != localStorage.getItem("quote")) {
Materialize.toast(lang.lang_setting_quote.replace("{{set}}" ,qtt), 3000);
}
localStorage.setItem("quote", qtd);
var viad = $("[name=via]:checked").val();
var viat = $("[for=via_"+viad+"]").text();
if (viad != localStorage.getItem("viashow")) {
Materialize.toast(lang.lang_setting_via.replace("{{set}}" ,viat), 3000);
}
localStorage.setItem("viashow", viad);
var notfmd = $("[name=notfm]:checked").val();
var notfmt = $("[for=notfm_"+notfmd+"]").text();
if (notfmd != localStorage.getItem("setasread")) {
Materialize.toast(lang.lang_setting_setasread.replace("{{set}}" ,notfmt), 3000);
}
localStorage.setItem("setasread", notfmd);
var movd = $("[name=mov]:checked").val();
var movt = $("[for=mov_"+movd+"]").text();
if (movd != localStorage.getItem("mouseover")) {
Materialize.toast(lang.lang_setting_mov.replace("{{set}}" ,movt), 3000);
}
localStorage.setItem("mouseover", movd);
var maind = $("[name=main]:checked").val();
var maint = $("[for=mn_"+maind+"]").text();
if (maind != localStorage.getItem("mainuse")) {
Materialize.toast(lang.lang_setting_main.replace("{{set}}" ,maint), 3000);
}
localStorage.setItem("mainuse", maind);
var secd = $("[name=sec]:checked").val();
var sect = $("[for=sec-"+secd+"]").text();
if (secd != localStorage.getItem("sec")) {
Materialize.toast(lang.lang_setting_sec.replace("{{set}}" ,sect), 3000);
}
localStorage.setItem("sec", secd);
}
//読み込み時の設定ロード
function load() {
if(localStorage.getItem("imas")){
$(".imas").removeClass("hide");
}
if(localStorage.getItem("kirishima")){
$(".kirishima").removeClass("hide");
}
var prof = localStorage.getItem("prof");
$("#my-prof").attr("src", prof);
var datetype = localStorage.getItem("datetype");
if (!datetype) {
var datetype = "absolute";
}
$("#" + datetype).prop("checked", true);
var theme = localStorage.getItem("theme");
if (!theme) {
var theme = "white";
}
$("#" + theme).prop("checked", true);
var ha = localStorage.getItem("ha");
if (!ha) {
var ha = "false";
}
$("#ha_" + ha).prop("checked", true);
var nsfw = localStorage.getItem("nsfw");
if (!nsfw) {
var nsfw = "yes";
}
$("#n_" + nsfw).prop("checked", true);
var cw = localStorage.getItem("cw");
if (!cw) {
var cw = "yes";
}
$("#c_" + cw).prop("checked", true);
var cws = localStorage.getItem("always-cw");
if (!cws) {
var cws = "no";
}
$("#cws_" + cws).prop("checked", true);
var popup = localStorage.getItem("popup");
if (!popup) {
var popup = "0";
}
$("#popup").val(popup);
var box = localStorage.getItem("box");
if (!box) {
var box = "no";
}
if(box=="absolute"){
var box = "abs";
}
$("#bx_" + box).prop("checked", true);
var gif = localStorage.getItem("gif");
if (!gif) {
var gif = "yes";
}
$("#g_" + gif).prop("checked", true);
var sent = localStorage.getItem("sentence");
if (!sent) {
var sent = "500";
}
$("#sentence").val(sent);
var ltrs = localStorage.getItem("letters");
if (!ltrs) {
var ltrs = "500";
}
$("#letters").val(ltrs);
var csent = localStorage.getItem("cw_sentence");
if (!csent) {
var csent = "500";
}
$("#cw_sentence").val(csent);
var cltrs = localStorage.getItem("cw_letters");
if (!cltrs) {
var cltrs = "500";
}
$("#cw_letters").val(cltrs);
var width = localStorage.getItem("width");
if (!width) {
var width = "300";
}
$("#width").val(width);
var fwidth = localStorage.getItem("fixwidth");
if (!fwidth) {
var fwidth = "300";
}
$("#fixwidth").val(fwidth);
var cwt = localStorage.getItem("cw-text");
if (!cwt) {
var cwt = "";
}
$("#cw-text").val(cwt);
var cws = localStorage.getItem("always-cw");
if (!cws) {
var cws = "no";
}
$("#cws_" + cws).prop("checked", true);
var rps = localStorage.getItem("replyct");
if (!rps) {
var rps = "hidden";
}
$("#rp_" + rps).prop("checked", true);
var vis = localStorage.getItem("vis");
if (!vis) {
var vis = "public";
}
$("#" + vis).prop("checked", true);
var img = localStorage.getItem("img");
if (!img) {
var img = "no-act";
}
$("#i_" + img).prop("checked", true);
var font = localStorage.getItem("font");
if (!font) {
var font = "";
}
$("#font").val(font);
var size = localStorage.getItem("size");
if (!size) {
var size = "13";
}
$("#size").val(size);
var imh = localStorage.getItem("img-height");
if (!imh) {
var imh = "200";
}
$("#img-height").val(imh);
var ticker = localStorage.getItem("ticker_ok");
if (!ticker) {
var ticker = "no";
}
$("#ticker_" + ticker).prop("checked", true);
var animation = localStorage.getItem("animation");
if (!animation) {
var animation = "yes";
}
$("#anime_" + animation).prop("checked", true);
var tag = localStorage.getItem("tag-range");
if (!tag) {
var tag = "all";
}
$("#t_" + tag).prop("checked", true);
var box = localStorage.getItem("box");
if (!box) {
var box = "yes";
}
$("#bx_" + box).prop("checked", true);
var uld = localStorage.getItem("locale");
if (!uld) {
var uld = "yes";
}
$("#ul_" + uld).prop("checked", true);
var nnd = localStorage.getItem("nativenotf");
if (!nnd) {
var nnd = "yes";
}
$("#ntf_" + nnd).prop("checked", true);
var qt = localStorage.getItem("quote");
if (!qt) {
var qt = "simple";
}
$("#q_" + qt).prop("checked", true);
var viat = localStorage.getItem("viashow");
if (!viat) {
var viat = "hide";
}
$("#via_" + viat).prop("checked", true);
var movt = localStorage.getItem("mouseover");
if (!movt) {
var movt = "no";
}
$("#mov_" + movt).prop("checked", true);
var notfmt = localStorage.getItem("setasread");
if (!notfmt) {
var notfmt = "yes";
}
$("#notfm_" + notfmt).prop("checked", true);
var maint = localStorage.getItem("mainuse");
if (!maint) {
var maint = "remain";
}
$("#mn_" + maint).prop("checked", true);
var sect = localStorage.getItem("sec");
if (!sect) {
var sect = "nothing";
}
$("#sec-" + sect).prop("checked", true);
}
function climute(){
//クライアントミュート
var cli = localStorage.getItem("client_mute");
var obj = JSON.parse(cli);
if(!obj){
$("#mute-cli").html(lang.lang_setting_nomuting);
}else{
if(!obj[0]){
$("#mute-cli").html(lang.lang_setting_nomuting);
return;
}
var templete;
Object.keys(obj).forEach(function(key) {
var cli = obj[key];
var list = key * 1 + 1;
templete = '<div class="acct" id="acct_' + key + '">' + list +
'.' +
cli + '<button class="btn waves-effect red disTar" onclick="cliMuteDel(' +
key + ')">'+lang.lang_del+'</button><br></div>';
$("#mute-cli").append(templete);
});
}
}
function cliMuteDel(key){
var cli = localStorage.getItem("client_mute");
var obj = JSON.parse(cli);
obj.splice(key, 1);
var json = JSON.stringify(obj);
localStorage.setItem("client_mute", json);
mute();
}
function wordmute(){
var word = localStorage.getItem("word_mute");
var obj = JSON.parse(word);
$('#wordmute').material_chip({
data: obj,
});
}
function wordmuteSave(){
var word=$('#wordmute').material_chip('data');
var json = JSON.stringify(word);
localStorage.setItem("word_mute", json);
}
function wordemp(){
var word = localStorage.getItem("word_emp");
var obj = JSON.parse(word);
$('#wordemp').material_chip({
data: obj,
});
}
function wordempSave(){
var word=$('#wordemp').material_chip('data');
var json = JSON.stringify(word);
localStorage.setItem("word_emp", json);
}
function notftest(){
var electron = require("electron");
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = {
body: lang.lang_setting_notftest+'('+lang.lang_setting_notftestprof+')',
icon: localStorage.getItem("prof_0")
};
if(os=="darwin"){
var n = new Notification('TheDesk'+lang.lang_setting_notftest, options);
}else{
ipc.send('native-notf', ['TheDesk'+lang.lang_setting_notftest,lang.lang_setting_notftest+'('+lang.lang_setting_notftestprof+')',localStorage.getItem('prof_0'),"",""]);
}
}
function oks(no){
var txt=$("#oks-"+no).val();
localStorage.setItem("oks-"+no, txt);
Materialize.toast(lang.lang_setting_ksref, 3000);
}
function oksload(){
if(localStorage.getItem("oks-1")){$("#oks-1").val(localStorage.getItem("oks-1"))}
if(localStorage.getItem("oks-2")){$("#oks-2").val(localStorage.getItem("oks-2"))}
if(localStorage.getItem("oks-3")){$("#oks-3").val(localStorage.getItem("oks-3"))}
}
function changelang(lang){
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.send('lang',lang);
ipc.on('langres', function (event, arg) {
location.href="../"+lang+"/setting.html"
});
}
function exportSettings(){
if(!confirm(lang.lang_setting_exportwarn)){
return false;
}
var electron = require("electron");
var remote=electron.remote;
var dialog=remote.dialog;
var ipc = electron.ipcRenderer;
dialog.showSaveDialog(null, {
title: 'Export',
properties: ['openFile', 'createDirectory'],
defaultPath: "export.thedeskconfig"
}, (savedFiles) => {
console.log(savedFiles);
if(!savedFiles){
return false;
}
var exp={};
//Accounts
var multi = localStorage.getItem("multi");
var acct = JSON.parse(multi);
exp.accts=acct;
//Columns
var multi = localStorage.getItem("column");
var column = JSON.parse(multi);
exp.columns=column;
//Themes
exp.theme=localStorage.getItem("theme");
//Min width
exp.minwidth=localStorage.getItem("width");
//Font
exp.font=localStorage.getItem("font");
exp.size=localStorage.getItem("size");
//Img height
exp.imgheight=localStorage.getItem("img-height");
//Main
exp.mainuse=localStorage.getItem("mainuse");
//CW text
exp.cw=localStorage.getItem("cw-text");
//vis
exp.vis=localStorage.getItem("vis");
//keysc
exp.ksc=[
localStorage.getItem("oks-1"),
localStorage.getItem("oks-2"),
localStorage.getItem("oks-3")
];
//climu
var cli = localStorage.getItem("client_mute");
var climu = JSON.parse(cli);
exp.clientMute=climu;
//wordmu
var wdm = localStorage.getItem("word_mute");
var wordmu = JSON.parse(wdm);
exp.wordMute=wordmu;
//spotify
exp.spotifyArtwork=localStorage.getItem("artwork")
var content=localStorage.getItem("np-temp");
if(content || content=="" || content=="null"){
exp.spotifyTemplete=content;
}else{
exp.spotifyTemplete=null;
}
//tags
var tagarr = localStorage.getItem("tag");
var favtag = JSON.parse(tagarr);
exp.favoriteTags=favtag;
console.log(exp);
ipc.send('export', [savedFiles,JSON.stringify(exp)]);
alert("Done.")
//cards
//lang
});
}
function importSettings(){
if(!confirm(lang.lang_setting_importwarn)){
return false;
}
var electron = require("electron");
var remote=electron.remote;
var dialog=remote.dialog;
var ipc = electron.ipcRenderer;
dialog.showOpenDialog(null, {
title: 'Import',
properties: ['openFile'],
filters: [
{name: 'TheDesk Config', extensions: ['thedeskconfig']},
]
}, (fileNames) => {
console.log(fileNames);
if(!fileNames){
return false;
}
ipc.send('import', fileNames[0]);
ipc.on('config', function (event, arg) {
var obj = JSON.parse(arg);
if(obj){
localStorage.clear();
localStorage.setItem("multi",JSON.stringify(obj.accts));
for(var key=0;key<obj.accts.length;key++){
var acct=obj.accts[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("column",JSON.stringify(obj.columns));
localStorage.setItem("theme",obj.theme);
if(obj.width){
console.log(obj.width)
localStorage.setItem("width",obj.width);
}
if(obj.font){
localStorage.setItem("font",obj.font);
}
if(obj.size){
localStorage.setItem("size",obj.size);
}
themes(obj.theme);
if(obj.imgheight){
localStorage.setItem("img-height",obj.imgheight);
}
localStorage.setItem("mainuse",obj.mainuse);
if(obj.cw){
localStorage.setItem("cwtext",obj.cw);
}
localStorage.setItem("vis",obj.vis);
if(obj.ksc[0]){
localStorage.setItem("oks-1",obj.ksc[0]);
}
if(obj.ksc[1]){
localStorage.setItem("oks-2",obj.ksc[1]);
}
if(obj.ksc[2]){
localStorage.setItem("oks-3",obj.ksc[2]);
}
if(obj.clientMute){
localStorage.setItem("client_mute",JSON.stringify(obj.clientMute));
}
if(obj.wordMute){
localStorage.setItem("word_mute",JSON.stringify(obj.wordMute));
}
if(obj.favoriteTags){
localStorage.setItem("tag",JSON.stringify(obj.favoriteTags));
}
localStorage.setItem("np-temp",obj.spotifyTemplete);
for(var i=0;i<obj.columns.length;i++){
localStorage.setItem("card_" + i,"true");
localStorage.removeItem("catch_" + i);
}
location.href="language.html";
}else{
alert("Error.")
}
})
//cards
//lang
});
}
function savefolder(){
var electron = require("electron");
var remote=electron.remote;
var dialog=remote.dialog;
dialog.showOpenDialog(null, {
title: 'Save folder',
properties: ['openDirectory'],
}, (fileNames) => {
localStorage.setItem("savefolder",fileNames[0]);
});
}
function font(){
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.send('fonts', []);
ipc.on('font-list', function (event, arg) {
$("#fonts").removeClass("hide");
for( var i=0; i<arg.length; i++) {
var font=arg[i];
$("#fonts").append('<div class="font pointer" style="font-family:'+font.family+'" onclick="insertFont(\''+font.family+'\')">'+font.family+"</div>")
}
});
}
function insertFont(name){
$("#font").val(name);
}
$(".color-picker").each(function(i, elem) {
pickerDefine(i,"fff");
});
function pickerDefine(i,color){
var pickr = new Pickr({
el: '#color-picker'+i,
default: color,
showAlways: true,
appendToBody: true,
closeWithKey: 'Escape',
comparison: false,
components: {
preview: true, // Left side color comparison
opacity: false, // Opacity slider
hue: true, // Hue slider
interaction: {
rgba: false, // rgba option (red green blue and alpha)
input: true, // input / output element
}
},
strings: {
save: 'Save', // Default for save button
clear: 'Clear' // Default for clear button
}
});
pickr.on('change', (...args) => {
var rgb='rgb('+args[0].toRGBA()[0]+','+args[0].toRGBA()[1]+','+args[0].toRGBA()[2]+')';
$("#color-picker"+i+"_value").val(rgb)
});
}
function customComp(){
var nameC=$("#custom_name").val();
if(!nameC){return false;}
var descC=$("#custom_desc").val();
var primaryC=$("#color-picker0_value").val();
if(!primaryC){primaryC="rgb(255,255,255)"}
var secondaryC=$("#color-picker1_value").val();
if(!secondaryC){secondaryC="rgb(255,255,255)"}
var textC=$("#color-picker2_value").val();
if(!textC){textC="rgb(255,255,255)"}
var accentC=$("#color-picker3_value").val();
if(!accentC){accentC="rgb(255,255,255)"}
var multi = localStorage.getItem("multi");
var my=JSON.parse(multi)[0].name;
var id=$("#custom-edit-sel").val();
if(id=="add_new"){
id=makeCID();
}
var json={
"name": nameC,
"author": my,
"desc": descC,
"base": $("[name=direction]:checked").val(),
"vars": {
"primary": primaryC,
"secondary": secondaryC,
"text": textC
},
"props": {
"TheDeskAccent": accentC
},
"id": id
}
$("#custom_json").val(JSON.stringify(json));
themes();
$("#custom_name").val("");
$("#custom_desc").val("");
$("#dark").prop("checked", true);
$("#custom_json").val("");
$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
$("#color-picker0_value").val("");
$("#color-picker1_value").val("");
$("#color-picker2_value").val("");
$("#color-picker3_value").val("");
pickerDefine(0,"fff");
pickerDefine(1,"fff");
pickerDefine(2,"fff");
pickerDefine(3,"fff");
ipc.send('theme-json-create', JSON.stringify(json));
}
function deleteIt(){
var id=$("#custom-sel-sel").val();
$("#custom_name").val("");
$("#custom_desc").val("");
$("#dark").prop("checked", true);
$("#custom_json").val("");
$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
$("#color-picker0_value").val("");
$("#color-picker1_value").val("");
$("#color-picker2_value").val("");
$("#color-picker3_value").val("");
pickerDefine(0,"fff");
pickerDefine(1,"fff");
pickerDefine(2,"fff");
pickerDefine(3,"fff");
ipc.on('theme-json-delete-complete', function (event, args) {
ctLoad()
});
ipc.send('theme-json-delete', id);
}
function ctLoad(){
ipc.send('theme-json-list', "");
ipc.on('theme-json-list-response', function (event, args) {
console.log(args);
var templete="";
Object.keys(args).forEach(function(key) {
var theme = args[key];
var themeid=theme.id
templete = templete+'<option value="'+themeid+'">' + theme.name +'</option>';
});
if(args[0]){
localStorage.setItem("customtheme-id",args[0].id)
}
$("#custom-sel-sel").html(templete);
templete='<option value="add_new">'+$("#edit-selector").attr("data-add")+'</option>'+templete;
$("#custom-edit-sel").html(templete);
$('select').material_select('update');
});
}
function customSel(){
var id=$("#custom-sel-sel").val();
localStorage.setItem("customtheme-id",id)
}
function custom(){
var id=$("#custom-edit-sel").val();
if(id=="add_new"){
$("#custom_name").val("");
$("#custom_desc").val("");
$("#dark").prop("checked", true);
$("#custom_json").val("");
$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
$("#color-picker0_value").val("");
$("#color-picker1_value").val("");
$("#color-picker2_value").val("");
$("#color-picker3_value").val("");
pickerDefine(0,"fff");
pickerDefine(1,"fff");
pickerDefine(2,"fff");
pickerDefine(3,"fff");
$("#delTheme").addClass("disabled")
}else{
$("#delTheme").removeClass("disabled")
ipc.send('theme-json-request', id);
ipc.on('theme-json-response', function (event, args) {
console.log(args);
$("#custom_name").val(args.name);
$("#custom_desc").val(args.desc);
$("#"+args.base).prop("checked", true);
$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
pickerDefine(0,rgbToHex(args.vars.primary))
$("#color-picker0_value").val(args.vars.primary);
$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
pickerDefine(1,rgbToHex(args.vars.secondary))
$("#color-picker1_value").val(args.vars.secondary);
$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
$("#color-picker2_value").val(args.vars.text);
pickerDefine(2,rgbToHex(args.vars.text))
if(args.props){
if(args.props.TheDeskAccent){
var accent=args.props.TheDeskAccent;
}else{
var accent=args.vars.secondary;
}
}else{
var accent=args.vars.secondary;
}
$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
pickerDefine(3,rgbToHex(accent))
$("#custom_json").val(JSON.stringify(args));
});
}
}
function customImp(){
var json=$("#custom_import").val();
if(JSON5.parse(json)){
ipc.send('theme-json-create', json);
}else{
alert("Error")
}
}
function hardwareAcceleration(){
var had = $("[name=ha]:checked").val();
localStorage.setItem("ha", had);
console.log("ha");
ipc.send('ha', had);
}
ipc.on('theme-json-create-complete', function (event, args) {
$("#custom_import").val("");
ctLoad()
});
//最初に読む
load();
climute();
wordmute();
wordemp();
checkSpotify();
voiceSettingLoad();
oksload();
npprovider();
ctLoad()

View File

@@ -1,5 +1,6 @@
//ソートデータ読み込み //ソートデータ読み込み
function sortload() { function sortLoad () {
$("#sort").html("");
var col = localStorage.getItem("column"); var col = localStorage.getItem("column");
if (col) { if (col) {
var obj = JSON.parse(col); var obj = JSON.parse(col);
@@ -103,8 +104,8 @@ function sort() {
var json = JSON.stringify(newobj); var json = JSON.stringify(newobj);
localStorage.setItem("column", json); localStorage.setItem("column", json);
$("#sort").html(""); $("#sort").html("");
Materialize.toast("Sorted", 3000); M.toast({ html: "Sorted", displayLength: 3000 })
sortload(); sortLoad();
parseColumn(); parseColumn();
sortMenu() sortMenu()
} }
@@ -115,5 +116,5 @@ function sortMenu() {
$(".menu-content").addClass("hide"); $(".menu-content").addClass("hide");
$("#sort-box").removeClass("hide"); $("#sort-box").removeClass("hide");
$("#sort").html(""); $("#sort").html("");
sortload(); sortLoad();
} }

View File

@@ -1,21 +1,13 @@
function spotifyConnect() { function spotifyConnect() {
var auth = "https://accounts.spotify.com/authorize?client_id=0f18e54abe0b4aedb4591e353d3aff69&redirect_uri=https://thedesk.top/spotify-connect&response_type=code&scope=user-read-currently-playing"; var auth = "https://accounts.spotify.com/authorize?client_id=0f18e54abe0b4aedb4591e353d3aff69&redirect_uri=https://thedesk.top/spotify-connect&response_type=code&scope=user-read-currently-playing";
const { var platform = localStorage.getItem("platform");
shell
} = require('electron');
var electron = require("electron");
var remote = electron.remote;
var platform = remote.process.platform;
if (platform == "win32") { if (platform == "win32") {
shell.openExternal(auth); postMessage(["openUrl", auth], "*")
var ipc = electron.ipcRenderer; postMessage(["sendSinmpleIpc", "quit"], "*")
ipc.send('quit', 'go');
} else { } else {
auth = auth + "&state=code"; auth = auth + "&state=code";
$("#spotify-code-show").removeClass("hide"); $("#spotify-code-show").removeClass("hide");
shell.openExternal(auth); postMessage(["openUrl", auth], "*")
} }
@@ -57,10 +49,10 @@ function spotifyFlagSave() {
var awk = $("[name=awk]:checked").val(); var awk = $("[name=awk]:checked").val();
if (awk == "yes") { if (awk == "yes") {
localStorage.setItem("artwork", "yes"); localStorage.setItem("artwork", "yes");
Materialize.toast(lang.lang_spotify_img, 3000); M.toast({ html: lang.lang_spotify_img, displayLength: 3000 })
} else { } else {
localStorage.removeItem("artwork"); localStorage.removeItem("artwork");
Materialize.toast(lang.lang_spotify_imgno, 3000); M.toast({ html: lang.lang_spotify_imgno, displayLength: 3000 })
} }
} }
function nowplaying(mode) { function nowplaying(mode) {
@@ -85,11 +77,9 @@ function nowplaying(mode) {
} }
var item = json.item; var item = json.item;
var img = item.album.images[0].url; var img = item.album.images[0].url;
var electron = require("electron");
var ipc = electron.ipcRenderer;
var flag = localStorage.getItem("artwork"); var flag = localStorage.getItem("artwork");
if (flag) { if (flag) {
ipc.send('bmp-image', [img, 0]); postMessage(["bmpImage", [img, 0]], "*")
} }
var content = localStorage.getItem("np-temp"); var content = localStorage.getItem("np-temp");
if (!content || content == "" || content == "null") { if (!content || content == "" || content == "null") {
@@ -118,17 +108,16 @@ function nowplaying(mode) {
$("#textarea").val(content); $("#textarea").val(content);
}); });
} else { } else {
alert(lang.lang_spotify_acct); Swal.fire({
type: 'info',
title: lang.lang_spotify_acct
})
} }
} else if (mode == "itunes") { } else if (mode == "itunes") {
var electron = require("electron"); postMessage(["itunes", ""], "*")
var ipc = electron.ipcRenderer;
if (ipc.listenerCount('itunes-np') > 0) {
return false;
} }
}
ipc.send('itunes', ""); function npCore(arg) {
ipc.once('itunes-np', function (event, arg) {
if (arg.cmd) { if (arg.cmd) {
console.error(arg); console.error(arg);
return; return;
@@ -139,8 +128,7 @@ function nowplaying(mode) {
var content = "#NowPlaying {song} / {album} / {artist}\n{url}"; var content = "#NowPlaying {song} / {album} / {artist}\n{url}";
} }
var flag = localStorage.getItem("artwork"); var flag = localStorage.getItem("artwork");
var remote = electron.remote; var platform = localStorage.getItem("platform");
var platform = remote.process.platform;
if (platform == "win32") { if (platform == "win32") {
if (flag && arg.path) { if (flag && arg.path) {
media(arg.path, "image/png", "new"); media(arg.path, "image/png", "new");
@@ -171,33 +159,11 @@ function nowplaying(mode) {
var regExp = new RegExp("{genre}", "g"); var regExp = new RegExp("{genre}", "g");
content = content.replace(regExp, arg.genre); content = content.replace(regExp, arg.genre);
$("#textarea").val(content); $("#textarea").val(content);
})
}
} }
function spotifySave() { function spotifySave() {
var temp = $("#np-temp").val(); var temp = $("#np-temp").val();
localStorage.setItem("np-temp", temp); localStorage.setItem("np-temp", temp);
Materialize.toast(lang.lang_spotify_np, 3000); M.toast({ html: lang.lang_spotify_np, displayLength: 3000 })
}
function npprovider() {
var provd = $("[name=npp]:checked").val();
if (!provd) {
if (localStorage.getItem("np_provider")) {
$("[value=" + localStorage.getItem("np_provider") + "]").prop("checked", true);
} else {
$("[value=AIMP]").prop("checked", true);
localStorage.setItem("np_provider", "AIMP");
}
} else {
if (provd != localStorage.getItem("np_provider")) {
Materialize.toast(lang.lang_setting_npprovide.replace("{{set}}", provd), 3000);
}
localStorage.setItem("np_provider", provd);
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.send('itunes', ["set", provd]);
}
} }
if (location.search) { if (location.search) {
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/); var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/);
@@ -212,10 +178,3 @@ if (location.search) {
} }
} }
$("#npbtn").click(function () {
nowplaying('spotify');
});
$("#npbtn").bind('contextmenu', function () {
nowplaying('itunes');
return false;
});

View File

@@ -7,22 +7,26 @@ function themes(theme) {
localStorage.setItem("theme", "black"); localStorage.setItem("theme", "black");
} }
} }
$("html").removeClass("indigotheme"); var el = document.getElementsByTagName("html")[0]
$("html").removeClass("greentheme");
$("html").removeClass("browntheme"); el.classList.remove('indigotheme');
$("html").removeClass("blacktheme"); el.classList.remove('greentheme');
$("html").removeClass("customtheme"); el.classList.remove('browntheme');
$("html").addClass(theme + "theme"); el.classList.remove('blacktheme');
el.classList.remove('bluetheme');
el.classList.remove('customtheme');
el.classList.add(theme + "theme");
var font = localStorage.getItem("font"); var font = localStorage.getItem("font");
if (font) { if (font) {
$("html").css("font-family", font); el.style.fontFamily = font;
} else { } else {
$("html").css("font-family", ""); el.style.fontFamily = "";
} }
if (theme == "custom") { if (theme == "custom") {
if (localStorage.getItem("customtheme-id")) { if (localStorage.getItem("customtheme-id")) {
ipc.send('theme-css-request', localStorage.getItem("customtheme-id")); postMessage(["themeCSSRequest", localStorage.getItem("customtheme-id")], "*")
} }
} }
el.style.backgroundColor = "var(--bg)";
} }
themes(); themes();

View File

@@ -20,9 +20,7 @@ function bottomReverse() {
} }
} }
function tips(mode) { function tips(mode) {
var electron = require("electron"); postMessage(["sendSinmpleIpc", "endmem"], "*")
var ipc = electron.ipcRenderer;
ipc.send('endmem', "");
clearInterval(clockint); clearInterval(clockint);
clearInterval(spotStart); clearInterval(spotStart);
if (mode == "ver") { if (mode == "ver") {
@@ -50,15 +48,10 @@ function tips(mode) {
} }
//メモリ //メモリ
function startmem() { function startmem() {
var electron = require("electron"); postMessage(["sendSinmpleIpc", "startmem"], "*")
var ipc = electron.ipcRenderer; }
ipc.send('startmem', ""); function renderMem(use, cpu, total){
ipc.on('memory', function (event, arg) {
var use = arg[0];
var cpu = arg[1];
var total = arg[2]
$("#tips-text").html(escapeHTML(cpu) + "<br>Memory:" + Math.floor(use / 1024 / 1024 / 102.4) / 10 + "/" + Math.floor(total / 1024 / 1024 / 102.4) / 10 + "GB(" + Math.floor(use / total * 100) + "%)") $("#tips-text").html(escapeHTML(cpu) + "<br>Memory:" + Math.floor(use / 1024 / 1024 / 102.4) / 10 + "/" + Math.floor(total / 1024 / 1024 / 102.4) / 10 + "GB(" + Math.floor(use / total * 100) + "%)")
})
} }
//トレンドタグ //トレンドタグ
function trendTagonTip() { function trendTagonTip() {
@@ -140,7 +133,10 @@ function spotifytips() {
spotint = setInterval(spotStart, 1000); spotint = setInterval(spotStart, 1000);
}); });
} else { } else {
alert(lang.lang_spotify_acct); Swal.fire({
type: 'info',
title: lang.lang_spotify_acct
})
} }
} }
function spotStart() { function spotStart() {

View File

@@ -622,12 +622,17 @@ function showMat() {
var templete = ""; var templete = "";
Object.keys(json).forEach(function (key) { Object.keys(json).forEach(function (key) {
var user = json[key]; var user = json[key];
if (user.avatar) {
var avatar = user.avatar
} else {
var avatar = "../../img/loading.svg"
}
templete = templete + templete = templete +
'<div class="" style="padding-top:5px;">' + '<div class="" style="padding-top:5px;">' +
'<div style="padding:0; margin:0; width:400px; max-width:100%; display:flex; align-items:flex-end;">' + '<div style="padding:0; margin:0; width:400px; max-width:100%; display:flex; align-items:flex-end;">' +
'<div style="flex-basis:40px;"><a onclick="udgEx(\'' + user.user + '\',' + '<div style="flex-basis:40px;"><a onclick="udgEx(\'' + user.user + '\',' +
acct_id + ');" user="' + user.user + '" class="udg">' + acct_id + ');" user="' + user.user + '" class="udg">' +
'<img src="' + user.avatar + '" width="40" class="prof-img" user="' + user.user + '"></a></div>' + '<img src="' + avatar + '" width="40" class="prof-img" user="' + user.user + '"></a></div>' +
'<div style="flex-grow:3; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"><big>' + '<div style="flex-grow:3; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"><big>' +
escapeHTML(user.screen_name) + '</big></div>' + escapeHTML(user.screen_name) + '</big></div>' +
'<div class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"> @' + '<div class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"> @' +

View File

@@ -40,9 +40,7 @@ function udgEx(user, acct_id) {
var id = json.accounts[0].id; var id = json.accounts[0].id;
udg(id, acct_id); udg(id, acct_id);
} else { } else {
var url = "https://" + user.split('@')[1] + "/@" + user.split('@')[0]; postMessage(["openUrl", url], "*")
const { shell } = require('electron');
shell.openExternal(url);
} }
}); });
return true; return true;
@@ -81,9 +79,10 @@ function udg(user, acct_id) {
} }
//moved設定時 //moved設定時
if (json.moved) { if (json.moved) {
Materialize.toast( M.toast({
lang.lang_showontl_movetxt + '<button class="btn-flat toast-action" onclick="udg(\'' + html: lang.lang_showontl_movetxt + '<button class="btn-flat toast-action" onclick="udg(\'' +
json.moved.id + '\',\'' + acct_id + '\')">' + lang.lang_showontl_movebtn + '</button>', 4000) json.moved.id + '\',\'' + acct_id + '\')">' + lang.lang_showontl_movebtn + '</button>', displayLength: 4000
})
} }
$('#his-data').modal('open'); $('#his-data').modal('open');
$('#his-data').attr("user-id", user); $('#his-data').attr("user-id", user);
@@ -167,7 +166,7 @@ function udg(user, acct_id) {
} }
$("#his-des").attr("data-acct", acct_id); $("#his-des").attr("data-acct", acct_id);
$('#his-data').css('background-size', 'cover'); $('#his-data').css('background-size', 'cover');
$("#his-data .tab-content").css("height", $("#his-float-timeline").height() - 70 + "px") $("#his-float-timeline").css("height", $("#his-data-show").height() + "px")
localStorage.setItem("history", user); localStorage.setItem("history", user);
//自分の時 //自分の時
if (json.acct == localStorage.getItem("user_" + acct_id)) { if (json.acct == localStorage.getItem("user_" + acct_id)) {
@@ -196,6 +195,9 @@ function udg(user, acct_id) {
$("#his-emp-btn").hide(); $("#his-emp-btn").hide();
$(".only-my-data").show(); $(".only-my-data").show();
$(".only-his-data").hide(); $(".only-his-data").hide();
if (localStorage.getItem("main") == acct_id) {
$("#his-main-acct").hide();
}
} else { } else {
relations(user, acct_id); relations(user, acct_id);
$(".only-my-data").hide(); $(".only-my-data").hide();
@@ -296,6 +298,9 @@ function misskeyUdg(user, acct_id) {
$("#his-emp-btn").hide(); $("#his-emp-btn").hide();
$(".only-my-data").show(); $(".only-my-data").show();
$(".only-his-data").hide(); $(".only-his-data").hide();
if (localStorage.getItem("main") == acct_id) {
$("#his-main-acct").hide();
}
} else { } else {
if (json.isFollowing) { if (json.isFollowing) {
//自分がフォローしている //自分がフォローしている
@@ -354,7 +359,6 @@ function relations(user, acct_id) {
console.error(error); console.error(error);
}).then(function (json) { }).then(function (json) {
var json = json[0]; var json = json[0];
console.log(json);
if (json.following) { if (json.following) {
//自分がフォローしている //自分がフォローしている
$("#his-data").addClass("following"); $("#his-data").addClass("following");
@@ -401,17 +405,23 @@ function relations(user, acct_id) {
} }
//Blocked //Blocked
if (json.blocked_by) { if (json.blocked_by) {
$("#his-float-timeline").hide(); $("#my-data-nav .btn").addClass("disabled")
$("#his-float-blocked").show(); $(".his-var-content").hide();
$("#his-float-blocked").show()
$("#his-follow-btn").hide() $("#his-follow-btn").hide()
} }
}); });
} }
function profbrws() { function profbrws() {
const { shell } = require('electron');
var url = $("#his-openin").attr("data-href") var url = $("#his-openin").attr("data-href")
shell.openExternal(url); postMessage(["openUrl", url], "*")
}
function setMain() {
var acct_id = $("#his-data").attr("use-acct")
localStorage.setItem("main", acct_id);
multiSelector(true)
M.toast({ html: lang.lang_manager_mainAcct, displayLength: 3000 })
} }
//オールリセット //オールリセット
function hisclose() { function hisclose() {
@@ -421,8 +431,9 @@ function hisclose() {
localStorage.removeItem("history"); localStorage.removeItem("history");
} }
function reset() { function reset() {
$(".tab-content:eq(0)").show(); $(".his-var-content:eq(0)").show();
$(".tab-content:gt(0)").hide(); $(".his-var-content:gt(0)").hide();
$("#my-data-nav .btn").removeClass("disabled")
$(".active-back").removeClass("active-back"); $(".active-back").removeClass("active-back");
$(".column-first").addClass("active-back"); $(".column-first").addClass("active-back");
$("#his-name").text("Loading"); $("#his-name").text("Loading");
@@ -468,12 +479,16 @@ function reset() {
$("#his-openin").attr("data-href", ""); $("#his-openin").attr("data-href", "");
$("#his-float-timeline").show(); $("#his-float-timeline").show();
$("#his-float-blocked").hide(); $("#his-float-blocked").hide();
$("#his-main-acct").show();
$("#his-proof-prof").html("") $("#his-proof-prof").html("")
} }
$('#my-data-nav .custom-tab').on('click', function () { $('#my-data-nav .anc-link').on('click', function () {
var target = $(this).find("a").attr("go"); var target = $(this).attr("go");
$("#my-data-nav .custom-tab").removeClass("active-back"); if (target) {
$("#my-data-nav .anc-link").removeClass("active-back");
$(this).addClass("active-back"); $(this).addClass("active-back");
$(target).show(); $(target).show();
$(".tab-content:not(" + target + ")").hide(); $(".his-var-content:not(" + target + ")").hide();
}
}); });

View File

@@ -1,4 +1,4 @@
var dirname = __dirname;
var dir = 'file://' + __dirname; var dir = 'file://' + __dirname;
var base = dir + '/view/'; var base = dir + '/view/';
// Electronのモジュール // Electronのモジュール
@@ -18,6 +18,27 @@ const app = electron.app;
const BrowserWindow = electron.BrowserWindow; const BrowserWindow = electron.BrowserWindow;
// メインウィンドウはGCされないようにグローバル宣言 // メインウィンドウはGCされないようにグローバル宣言
let mainWindow; let mainWindow;
if (process.argv.indexOf("--dev") === -1) {
var packaged = true;
} else {
var packaged = false;
console.log(
"||\\\\\\ \n"+
"|||| \\\\\\\\ \n"+
"|||| \\\\\\\\ \n"+
"|||| Am I a \\\\\\\\ \n"+
"|||| cat? ^ ^ \\\\\\\\\\ _____ _ ____ _ \n"+
"|||| (.-.) \\\\\\\\\\ |_ _| |__ ___| _ \\ ___ ___| | __\n"+
"|||| ___> ) ||||| | | | '_ \\ / _ \\ | | |/ _ \\/ __| |/ /\n"+
"|||| < _ _) ////// | | | | | | __/ |_| | __/\__ \\ < \n"+
"|||| |_||_| ///// |_| |_| |_|\\___|____/ \\___||___/_|\\_\\ \n"+
"|||| ///// \n"+
"|||| /////\n"+
"|||| /////\n"+
"||||//////"
)
console.log("Welcome!")
}
var info_path = join(app.getPath("userData"), "window-size.json"); var info_path = join(app.getPath("userData"), "window-size.json");
var max_info_path = join(app.getPath("userData"), "max-window-size.json"); var max_info_path = join(app.getPath("userData"), "max-window-size.json");
var lang_path = join(app.getPath("userData"), "language"); var lang_path = join(app.getPath("userData"), "language");
@@ -25,9 +46,9 @@ var ha_path = join(app.getPath("userData"), "hardwareAcceleration");
try { try {
fs.readFileSync(ha_path, 'utf8'); fs.readFileSync(ha_path, 'utf8');
app.disableHardwareAcceleration() app.disableHardwareAcceleration()
console.log("disabled: HA"); if(!packaged) console.log("disabled: Hardware Acceleration");
} catch{ } catch{
console.log("enabled: HA"); if(!packaged) console.log("enabled: Hardware Acceleration");
} }
var window_size; var window_size;
try { try {
@@ -74,13 +95,18 @@ app.on('activate', function () {
function createWindow() { function createWindow() {
if (isFile(lang_path)) { if (isFile(lang_path)) {
console.log("exist");
var lang = fs.readFileSync(lang_path, 'utf8'); var lang = fs.readFileSync(lang_path, 'utf8');
} else { } else {
var langs = app.getLocale(); var langs = app.getLocale();
console.log(langs); console.log(langs);
if (~langs.indexOf("ja")) { if (~langs.indexOf("ja")) {
lang = "ja"; lang = "ja";
} else if (~langs.indexOf("de")) {
lang = "de";
} else if (~langs.indexOf("cs")) {
lang = "cs";
} else if (~langs.indexOf("bg")) {
lang = "bg";
} else { } else {
lang = "en"; lang = "en";
} }
@@ -88,19 +114,49 @@ function createWindow() {
fs.writeFileSync(lang_path, lang); fs.writeFileSync(lang_path, lang);
}); });
} }
console.log(app.getLocale()); if(!packaged) console.log("your lang:" + app.getLocale());
console.log("launch:" + lang); if(!packaged) console.log("launch:" + lang);
// メイン画面の表示。ウィンドウの幅、高さを指定できる // メイン画面の表示。ウィンドウの幅、高さを指定できる
var platform = process.platform; var platform = process.platform;
var bit = process.arch; var bit = process.arch;
if (platform == "linux") { if (platform == "linux") {
var arg = { webPreferences: { webviewTag: true, nodeIntegration: true }, width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, icon: __dirname + '/desk.png' } var arg = {
webPreferences: {
webviewTag: true,
nodeIntegration: false,
contextIsolation: true,
preload: join(__dirname, "js", "platform", "preload.js")
},
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, icon: __dirname + '/desk.png', show: false
}
} else if (platform == "win32") { } else if (platform == "win32") {
var arg = {webPreferences: { webviewTag: true, nodeIntegration: true }, width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true } var arg = {
webPreferences: {
webviewTag: true,
nodeIntegration: false,
contextIsolation: true,
preload: join(__dirname, "js", "platform", "preload.js")
},
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true, show: false
}
} else if (platform == "darwin") { } else if (platform == "darwin") {
var arg = { webPreferences: { webviewTag: true, nodeIntegration: true }, width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true } var arg = {
webPreferences: {
webviewTag: true,
nodeIntegration: false,
contextIsolation: true,
preload: join(__dirname, "js", "platform", "preload.js")
},
width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true, show: false
}
} }
mainWindow = new BrowserWindow(arg); mainWindow = new BrowserWindow(arg);
mainWindow.once('page-title-updated', () => {
mainWindow.show()
if (window_size.max) {
mainWindow.maximize();
}
})
electron.session.defaultSession.clearCache(() => { }) electron.session.defaultSession.clearCache(() => { })
if (process.argv) { if (process.argv) {
if (process.argv[1]) { if (process.argv[1]) {
@@ -122,9 +178,6 @@ function createWindow() {
if (!window_size.x && !window_size.y) { if (!window_size.x && !window_size.y) {
mainWindow.center(); mainWindow.center();
} }
if (window_size.max) {
mainWindow.maximize();
}
// ウィンドウが閉じられたらアプリも終了 // ウィンドウが閉じられたらアプリも終了
mainWindow.on('closed', function () { mainWindow.on('closed', function () {
electron.ipcMain.removeAllListeners(); electron.ipcMain.removeAllListeners();
@@ -149,19 +202,17 @@ function createWindow() {
var platform = process.platform; var platform = process.platform;
var bit = process.arch; var bit = process.arch;
if (platform == "darwin") { Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, packaged, dir)));
Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, false, dir)));
}
//CSS //CSS
css.css(mainWindow); css.css(mainWindow);
//アップデータとダウンロード //アップデータとダウンロード
dl.dl(mainWindow, lang_path, base); dl.dl(mainWindow, lang_path, base, dirname);
//画像選択と画像処理 //画像選択と画像処理
img.img(mainWindow, dir); img.img(mainWindow, dir);
//NowPlaying //NowPlaying
np.TheDeskNowPlaying(mainWindow); np.TheDeskNowPlaying(mainWindow);
//その他system //その他system
systemFunc.system(mainWindow, dir, lang); systemFunc.system(mainWindow, dir, lang, dirname);
} }
// Electronの初期化完了後に実行 // Electronの初期化完了後に実行
app.on('ready', createWindow); app.on('ready', createWindow);

View File

@@ -10,7 +10,7 @@ function css(mainWindow) {
ipc.on('custom-css-create', function (e, arg) { ipc.on('custom-css-create', function (e, arg) {
fs.writeFileSync(customcss, arg); fs.writeFileSync(customcss, arg);
mainWindow.webContents.send('custom-css-create-complete', ""); e.sender.webContents.send('custom-css-create-complete', "");
}) })
ipc.on('custom-css-request', function (e, arg) { ipc.on('custom-css-request', function (e, arg) {
try { try {
@@ -18,29 +18,29 @@ function css(mainWindow) {
} catch (e) { } catch (e) {
var css = ""; var css = "";
} }
mainWindow.webContents.send('custom-css-response', css); e.sender.webContents.send('custom-css-response', css);
}) })
ipc.on('theme-json-create', function (e, arg) { ipc.on('theme-json-create', function (e, arg) {
var themecss = join(app.getPath("userData"), JSON5.parse(arg)["id"] + var themecss = join(app.getPath("userData"), JSON5.parse(arg)["id"] +
".thedesktheme"); ".thedesktheme");
fs.writeFileSync(themecss, JSON.stringify(JSON5.parse(arg))); fs.writeFileSync(themecss, JSON.stringify(JSON5.parse(arg)));
if (JSON5.parse(arg)["id"]) { if (JSON5.parse(arg)["id"]) {
mainWindow.webContents.send('theme-json-create-complete', ""); e.sender.webContents.send('theme-json-create-complete', "");
} else { } else {
mainWindow.webContents.send('theme-json-create-complete', "error"); e.sender.webContents.send('theme-json-create-complete', "error");
} }
}) })
ipc.on('theme-json-delete', function (e, arg) { ipc.on('theme-json-delete', function (e, arg) {
var themecss = join(app.getPath("userData"), arg + ".thedesktheme"); var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
console.log(themecss); console.log(themecss);
fs.unlink(themecss, function (err) { fs.unlink(themecss, function (err) {
mainWindow.webContents.send('theme-json-delete-complete', ""); e.sender.webContents.send('theme-json-delete-complete', "");
}); });
}) })
ipc.on('theme-json-request', function (e, arg) { ipc.on('theme-json-request', function (e, arg) {
var themecss = join(app.getPath("userData"), arg + ".thedesktheme"); var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
var json = JSON.parse(fs.readFileSync(themecss, 'utf8')); var json = JSON.parse(fs.readFileSync(themecss, 'utf8'));
mainWindow.webContents.send('theme-json-response', json); e.sender.webContents.send('theme-json-response', json);
}) })
ipc.on('theme-css-request', function (e, arg) { ipc.on('theme-css-request', function (e, arg) {
var themecss = join(app.getPath("userData"), arg + ".thedesktheme"); var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
@@ -53,9 +53,15 @@ function css(mainWindow) {
if (json.base == "light") { if (json.base == "light") {
var drag = "rgba(255, 255, 255, 0.8)"; var drag = "rgba(255, 255, 255, 0.8)";
var beforehover = "#757575"; var beforehover = "#757575";
var selected = "#3f3f3f"
var selectedWithShare = "#b2babd"
var gray = "#757575"
} else { } else {
var drag = "rgba(0, 0, 0, 0.8)"; var drag = "rgba(0, 0, 0, 0.8)";
var beforehover = "#9e9e9e"; var beforehover = "#9e9e9e";
var selected = "#c0c0c0"
var selectedWithShare = "#003a30"
var gray = "#cccccc"
} }
if (json.props) { if (json.props) {
if (json.props.TheDeskAccent) { if (json.props.TheDeskAccent) {
@@ -75,8 +81,10 @@ function css(mainWindow) {
secondary + secondary +
";--active:" + primary + ";--postbox:" + primary + ";--modalfooter:" + ";--active:" + primary + ";--postbox:" + primary + ";--modalfooter:" +
primary + primary +
";}.blacktheme #imagemodal{background: url(\"../img/pixel.svg\");}"; ";--accentbtn:" + primary + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare + "}"+
mainWindow.webContents.send('theme-css-response', css); "--gray:" + gray + ";"+
".customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
e.sender.webContents.send('theme-css-response', css);
} catch (e) { } catch (e) {
var css = ""; var css = "";
} }
@@ -98,7 +106,7 @@ function css(mainWindow) {
id: json.id id: json.id
}) })
} }
mainWindow.webContents.send('theme-json-list-response', themes); e.sender.webContents.send('theme-json-list-response', themes);
}); });
}) })
} }

View File

@@ -1,4 +1,4 @@
function dl(mainWindow, lang_path, base) { function dl(mainWindow, lang_path, base, dirname) {
const electron = require("electron"); const electron = require("electron");
const shell = electron.shell; const shell = electron.shell;
const fs = require("fs"); const fs = require("fs");
@@ -16,15 +16,18 @@ function dl(mainWindow, lang_path, base) {
if (platform != "others") { if (platform != "others") {
updatewin = new BrowserWindow({ updatewin = new BrowserWindow({
webPreferences: { webPreferences: {
nodeIntegration:true webviewTag: false,
nodeIntegration: false,
contextIsolation: true,
preload: join(dirname,"js", "platform", "preload.js")
}, },
width: 600, width: 600,
height: 400, height: 400,
"transparent": false, // ウィンドウの背景を透過 "transparent": false, // ウィンドウの背景を透過
"frame": false, // 枠の無いウィンドウ "frame": false, // 枠の無いウィンドウ
"resizable": false, "resizable": false
"modal": true
}); });
//updatewin.openDevTools()
var lang = fs.readFileSync(lang_path, 'utf8'); var lang = fs.readFileSync(lang_path, 'utf8');
updatewin.loadURL(base + lang + '/update.html'); updatewin.loadURL(base + lang + '/update.html');
@@ -35,7 +38,25 @@ function dl(mainWindow, lang_path, base) {
}) })
//アプデDL //アプデDL
ipc.on('download-btn', (e, args) => { ipc.on('download-btn', (e, args) => {
function dl(url, file, dir, e) {
e.sender.webContents.send('mess', "ダウンロードを開始します。");
const opts = {
directory: dir,
openFolderWhenDone: true,
onProgress: function (event) {
e.sender.webContents.send('prog', event);
},
saveAs: false
};
download(updatewin,
url, opts)
.then(dl => {
e.sender.webContents.send('mess', "ダウンロードが完了しました。");
app.quit();
})
.catch(console.error);
}
var platform = process.platform; var platform = process.platform;
var bit = process.arch; var bit = process.arch;
dialog.showSaveDialog(null, { dialog.showSaveDialog(null, {
@@ -55,7 +76,7 @@ function dl(mainWindow, lang_path, base) {
if (isExistFile(savedFiles)) { if (isExistFile(savedFiles)) {
fs.unlinkSync(savedFiles); fs.unlinkSync(savedFiles);
} }
dl(args[0], args[1], m[1]); dl(args[0], args[1], m[1], e);
}); });
}); });
@@ -68,27 +89,8 @@ function dl(mainWindow, lang_path, base) {
} }
} }
function dl(url, file, dir) {
updatewin.webContents.send('mess', "ダウンロードを開始します。"); ipc.on('general-dl', (event, args) => {
const opts = {
directory: dir,
openFolderWhenDone: true,
onProgress: function (e) {
updatewin.webContents.send('prog', e);
},
saveAs: false
};
download(updatewin,
url, opts)
.then(dl => {
updatewin.webContents.send('mess', "ダウンロードが完了しました。");
app.quit();
})
.catch(console.error);
}
ipc.on('general-dl', (e, args) => {
var name = ""; var name = "";
var platform = process.platform; var platform = process.platform;
@@ -107,14 +109,14 @@ function dl(mainWindow, lang_path, base) {
filename: name, filename: name,
openFolderWhenDone: false, openFolderWhenDone: false,
onProgress: function (e) { onProgress: function (e) {
mainWindow.webContents.send('general-dl-prog', e); event.sender.webContents.send('general-dl-prog', e);
}, },
saveAs: false saveAs: false
}; };
download(BrowserWindow.getFocusedWindow(), download(BrowserWindow.getFocusedWindow(),
args[0], opts) args[0], opts)
.then(dl => { .then(dl => {
mainWindow.webContents.send('general-dl-message', dir); event.sender.webContents.send('general-dl-message', dir);
}) })
.catch(console.error); .catch(console.error);
}); });

View File

@@ -24,48 +24,17 @@ function img(mainWindow, dir) {
for (var i = 0; i < fileNames.length; i++) { for (var i = 0; i < fileNames.length; i++) {
var path = fileNames[i]; var path = fileNames[i];
var bin = fs.readFileSync(path, 'base64'); var bin = fs.readFileSync(path, 'base64');
mainWindow.webContents.send('bmp-img-comp', [bin, 'new']); e.sender.webContents.send('bmp-img-comp', [bin, 'new']);
} }
}); });
}); });
ipc.on('adobe', (e, arg) => {
if (!arg) {
const options = {
type: 'info',
title: 'Adobeフォトエディタ',
message: "「許可」または「永続的に許可」をクリックするとTheDeskとAdobeで情報を共有します。\n次のウィンドウを開いている時以外は一切提供しません。",
buttons: ['拒否', '許可', '永続的に許可']
}
dialog.showMessageBox(options, function (index) {
if (index === 2) {
mainWindow.webContents.send('adobeagree', "true");
}
if (index > 0) {
adobeWindow();
}
})
} else {
adobeWindow();
}
});
function adobeWindow() {
var window = new BrowserWindow({
webPreferences: {
nodeIntegration:true
},
width: 1000,
height: 750
});
window.loadURL(dir + '/adobe.html');
}
ipc.on('bmp-image', (e, args) => { ipc.on('bmp-image', (e, args) => {
var m = args[0].match(/(.+)\\(.+)\.(.+)$/); var m = args[0].match(/(.+)\\(.+)\.(.+)$/);
Jimp.read(args[0], function (err, lenna) { Jimp.read(args[0], function (err, lenna) {
if (err) throw err; if (err) throw err;
lenna.getBase64(Jimp.MIME_PNG, function (err, src) { lenna.getBase64(Jimp.MIME_PNG, function (err, src) {
mainWindow.webContents.send('bmp-img-comp', [src, args[1]]); e.sender.webContents.send('bmp-img-comp', [src, args[1]]);
}); });
}); });

View File

@@ -1,5 +1,8 @@
// Create the Application's main menu // Create the Application's main menu
function templete(lang, mainWindow, packaged, dir) { function templete(lang, mainWindow, packaged, dir) {
if(lang !="ja" && lang != "en"){
lang = "en"
}
const electron = require("electron"); const electron = require("electron");
const app = electron.app; const app = electron.app;
const BrowserWindow = electron.BrowserWindow; const BrowserWindow = electron.BrowserWindow;
@@ -65,6 +68,28 @@ function templete(lang, mainWindow, packaged, dir) {
"en": "Close" "en": "Close"
} }
} }
if(packaged){
var ifDev = [
{
label: dict.reload[lang],
accelerator: 'CmdOrCtrl+R',
click: function () { mainWindow.reload(); }
}
]
}else{
var ifDev = [
{
label: 'Toggle Developer Tools',
accelerator: 'Alt+Command+I',
click: function () { if (!packaged) { mainWindow.toggleDevTools(); } }
},
{
label: dict.reload[lang],
accelerator: 'CmdOrCtrl+R',
click: function () { mainWindow.reload(); }
}
]
}
const menu = [{ const menu = [{
label: dict.application[lang], label: dict.application[lang],
submenu: [ submenu: [
@@ -73,7 +98,10 @@ function templete(lang, mainWindow, packaged, dir) {
var ver = app.getVersion() var ver = app.getVersion()
var window = new BrowserWindow({ var window = new BrowserWindow({
webPreferences: { webPreferences: {
nodeIntegration:true webviewTag: false,
nodeIntegration: false,
contextIsolation: true,
preload: "../js/platform/preload.js"
}, },
width: 300, height: 460, width: 300, height: 460,
"transparent": false, // ウィンドウの背景を透過 "transparent": false, // ウィンドウの背景を透過
@@ -100,18 +128,7 @@ function templete(lang, mainWindow, packaged, dir) {
] ]
}, { }, {
label: dict.view[lang], label: dict.view[lang],
submenu: [ submenu: ifDev
{
label: 'Toggle Developer Tools',
accelerator: 'Alt+Command+I',
click: function () { if (!packaged) { mainWindow.toggleDevTools(); } }
},
{
label: dict.reload[lang],
accelerator: 'CmdOrCtrl+R',
click: function () { mainWindow.webContents.send('reload', " "); }
}
]
}, },
{ {
label: dict.window[lang], label: dict.window[lang],
@@ -132,33 +149,5 @@ function templete(lang, mainWindow, packaged, dir) {
]; ];
return menu; return menu;
} }
function delsel(lang) {
const dict = {
"delete": {
"ja": "カラム削除",
"en": "Delete this column"
},
"mess": {
"ja": "カラムを削除しますか?(すべてのカラムのリンク解析がOFFになります。)",
"en": "Delete this column(URL analyzes of all windows will be disabled.)"
},
"yes": {
"ja": "はい",
"en": "Yes"
},
"no": {
"ja": "いいえ",
"en": "No"
}
}
const options = {
type: 'info',
title: dict.delete[lang],
message: dict.mess[lang],
buttons: [dict.no[lang], dict.yes[lang]]
}
return options;
}
exports.template = templete; exports.template = templete;
exports.delsel = delsel;

View File

@@ -8,19 +8,7 @@ function np(mainWindow) {
//Verified on Windows //Verified on Windows
console.log("Access"); console.log("Access");
if (args[0] == "set") { if (args[0] == "set") {
var { NowPlaying, PlayerName } = require("nowplaying-node");
var nppath = join(app.getPath("userData"), "nowplaying");
var npProvider;
try {
npProvider = args[1];
} catch (e) {
npProvider = "AIMP";
}
var myAIMP = new NowPlaying({
fetchCover: true,
player: PlayerName[npProvider],
});
fs.writeFileSync(nppath, npProvider);
} else { } else {
var platform = process.platform; var platform = process.platform;
var bit = process.arch; var bit = process.arch;
@@ -28,41 +16,14 @@ function np(mainWindow) {
try { try {
const nowplaying = require("itunes-nowplaying-mac"); const nowplaying = require("itunes-nowplaying-mac");
const value = await nowplaying.getRawData(); const value = await nowplaying.getRawData();
mainWindow.webContents.send('itunes-np', value); e.sender.webContents.send('itunes-np', value);
} catch (error) { } catch (error) {
// エラーを返す // エラーを返す
console.error(error); console.error(error);
mainWindow.webContents.send('itunes-np', error); e.sender.webContents.send('itunes-np', error);
} }
} else { } else {
var { NowPlaying, PlayerName } = require("nowplaying-node");
var nppath = join(app.getPath("userData"), "nowplaying");
var npProvider;
try {
npProvider = fs.readFileSync(nppath, 'utf8');
} catch (e) {
npProvider = "AIMP";
}
var myAIMP = new NowPlaying({
fetchCover: true,
player: PlayerName[npProvider],
});
myAIMP.update();
var path = myAIMP.getCoverPath();
if (path) {
var bin = fs.readFileSync(path, 'base64');
} else {
var bin = false;
}
var value = {
win: true,
name: myAIMP.getTitle(),
artist: myAIMP.getArtist(),
album: myAIMP.getAlbum(),
path: bin
}
mainWindow.webContents.send('itunes-np', value);
} }
} }

View File

@@ -1,4 +1,4 @@
function system(mainWindow, dir, lang) { function system(mainWindow, dir, lang, dirname) {
const electron = require("electron"); const electron = require("electron");
const app = electron.app; const app = electron.app;
const join = require('path').join; const join = require('path').join;
@@ -40,13 +40,68 @@ function system(mainWindow, dir, lang) {
}); });
} }
}); });
//プラットフォーム
ipc.on('getPlatform', function (e, arg) {
e.sender.webContents.send('platform', [process.platform, process.arch, process.version, process.versions.chrome, process.versions.electron]);
})
//言語 //言語
ipc.on('lang', function (e, arg) { ipc.on('lang', function (e, arg) {
console.log("set:" + arg); console.log("set:" + arg);
fs.writeFileSync(lang_path, arg); fs.writeFileSync(lang_path, arg);
mainWindow.webContents.send('langres', ""); e.sender.webContents.send('langres', arg);
}) })
//エクスポートのダイアログ
ipc.on('exportSettings', function (e, args) {
dialog.showSaveDialog(null, {
title: 'Export',
properties: ['openFile', 'createDirectory'],
defaultPath: "export.thedeskconfigv2"
}, (savedFiles) => {
if (!savedFiles) {
return false;
}
e.sender.webContents.send('exportSettingsFile', savedFiles);
})
})
//インポートのダイアログ
ipc.on('importSettings', function (e, args) {
dialog.showOpenDialog(null, {
title: 'Import',
properties: ['openFile'],
filters: [
{ name: 'TheDesk Config', extensions: ['thedeskconfig', 'thedeskconfigv2'] },
]
}, (fileNames) => {
if (!fileNames) {
return false;
}
e.sender.webContents.send('config', fs.readFileSync(arg, 'utf8'));
})
})
//保存フォルダのダイアログ
ipc.on('savefolder', function (e, args) {
dialog.showOpenDialog(null, {
title: 'Save folder',
properties: ['openDirectory'],
}, (fileNames) => {
e.sender.webContents.send('savefolder', fileNames[0]);
});
})
//カスタムサウンドのダイアログ
ipc.on('customSound', function (e, arg) {
dialog.showOpenDialog(null, {
title: 'Custom sound',
properties: ['openFile'],
filters: [
{ name: 'Audio', extensions: ['mp3', 'aac', 'wav', 'flac', 'm4a'] },
{ name: 'All', extensions: ['*'] },
]
}, (fileNames) => {
e.sender.webContents.send('customSoundRender', [arg, fileNames[0]]);
});
})
//ハードウェアアクセラレーションの無効化 //ハードウェアアクセラレーションの無効化
ipc.on('ha', function (e, arg) { ipc.on('ha', function (e, arg) {
@@ -60,20 +115,17 @@ function system(mainWindow, dir, lang) {
}) })
ipc.on('quit', (e, args) => { ipc.on('quit', (e, args) => {
app.quit(); app.quit();
}); });
ipc.on('about', (e, args) => { ipc.on('about', (e, args) => {
about(); about();
}); });
function about() { function about() {
var ver = app.getVersion() var ver = app.getVersion()
var window = new BrowserWindow({ var window = new BrowserWindow({
webPreferences: { webPreferences: {
nodeIntegration:true webviewTag: false,
nodeIntegration: false
}, },
width: 300, width: 300,
height: 480, height: 480,
@@ -84,14 +136,6 @@ function system(mainWindow, dir, lang) {
window.loadURL(dir + '/about.html?ver=' + ver); window.loadURL(dir + '/about.html?ver=' + ver);
return "true" return "true"
} }
ipc.on('column-del', (e, args) => {
console.log(lang);
var options = language.delsel(lang)
dialog.showMessageBox(options, function (index) {
mainWindow.webContents.send('column-del-reply', index);
})
});
ipc.on('nano', function (e, x, y) { ipc.on('nano', function (e, x, y) {
var nano_info_path = join(app.getPath("userData"), var nano_info_path = join(app.getPath("userData"),
@@ -104,7 +148,10 @@ function system(mainWindow, dir, lang) {
} }
var nanowindow = new BrowserWindow({ var nanowindow = new BrowserWindow({
webPreferences: { webPreferences: {
nodeIntegration:true webviewTag: false,
nodeIntegration: false,
contextIsolation: true,
preload: join(dirname,"js", "platform", "preload.js")
}, },
width: 350, width: 350,
height: 200, height: 200,
@@ -121,29 +168,27 @@ function system(mainWindow, dir, lang) {
}); });
return true; return true;
}) })
var cbTimer1; var cbTimer1;
ipc.on('startmem', (e, arg) => { ipc.on('startmem', (e, arg) => {
event = e.sender
cbTimer1 = setInterval(mems, 1000); cbTimer1 = setInterval(mems, 1000);
}); });
function mems() {
var mem = os.totalmem() - os.freemem();
if (mainWindow) {
event.webContents.send('memory', [mem, os.cpus()[0].model, os.totalmem()]);
}
}
ipc.on('endmem', (e, arg) => { ipc.on('endmem', (e, arg) => {
if (cbTimer1) { if (cbTimer1) {
clearInterval(cbTimer1); clearInterval(cbTimer1);
} }
}); });
function mems() {
var mem = os.totalmem() - os.freemem();
if (mainWindow) {
mainWindow.webContents.send('memory', [mem, os.cpus()[0].model, os.totalmem()]);
}
}
ipc.on('export', (e, args) => { ipc.on('export', (e, args) => {
fs.writeFileSync(args[0], args[1]); fs.writeFileSync(args[0], args[1]);
}); });
ipc.on('import', (e, arg) => {
mainWindow.webContents.send('config', fs.readFileSync(arg, 'utf8'));
});
//フォント //フォント
function object_array_sort(data, key, order, fn) { function object_array_sort(data, key, order, fn) {
//デフォは降順(DESC) //デフォは降順(DESC)
@@ -180,7 +225,7 @@ function system(mainWindow, dir, lang) {
const fm = require('font-manager'); const fm = require('font-manager');
var fonts = fm.getAvailableFontsSync(); var fonts = fm.getAvailableFontsSync();
object_array_sort(fonts, 'family', 'asc', function (fonts_sorted) { object_array_sort(fonts, 'family', 'asc', function (fonts_sorted) {
mainWindow.webContents.send('font-list', fonts_sorted); e.sender.webContents.send('font-list', fonts_sorted);
}); });
}); });
} }

View File

@@ -99,10 +99,8 @@
</head> </head>
<body> <body>
<script type="text/javascript" src="./node_modules/jquery/dist/jquery.js"></script>
<script> <script>
//jQuery読む
window.jQuery = window.$ = require('./js/common/jquery.js');
var Hammer = require('./js/common/hammer.min.js');
$.strip_tags = function (str, allowed) { $.strip_tags = function (str, allowed) {
if (!str) { if (!str) {
return ""; return "";

3718
app/package-lock.json generated

File diff suppressed because it is too large Load Diff

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