Compare commits
141 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
5cee604d51 | ||
|
f12f9ed047 | ||
|
3ad4aca4a7 | ||
|
4fbe7218e6 | ||
|
46bc9474a0 | ||
|
40ac7b33a1 | ||
|
1db56bcfbb | ||
|
a10a4d02b4 | ||
|
6805ed32fb | ||
|
1f2740b01e | ||
|
74af696ad5 | ||
|
ec3c2369bc | ||
|
c0a6ecec4d | ||
|
7169f1147b | ||
|
8873af4597 | ||
|
859acad27c | ||
|
44943e0e14 | ||
|
640847416a | ||
|
35122db142 | ||
|
994ec964d6 | ||
|
5508862ba1 | ||
|
075a120856 | ||
|
f34e2e6bbf | ||
|
64296c69d3 | ||
|
f4d250eeb3 | ||
|
750c74ae69 | ||
|
525dd5ec52 | ||
|
89bb8d6496 | ||
|
a7399db3f1 | ||
|
790ab2065c | ||
|
fa20278727 | ||
|
f2a4900f18 | ||
|
fd3afb6354 | ||
|
4a4dc82c40 | ||
|
54db978b6f | ||
|
1a35eda46f | ||
|
7d9ab19eef | ||
|
bdfeae20f2 | ||
|
9931ecd577 | ||
|
99c2f0fc8d | ||
|
58d9228aec | ||
|
85738d72ae | ||
|
2fe60a3b69 | ||
|
06c944a35d | ||
|
0f75972616 | ||
|
f55b08cbf3 | ||
|
51814e49d7 | ||
|
36d8a00a49 | ||
|
1c8ca3b5f9 | ||
|
1cbd6992e3 | ||
|
1f3a27325b | ||
|
890ec772f9 | ||
|
b072012976 | ||
|
8982058a25 | ||
|
fb95e077e9 | ||
|
dc08f46909 | ||
|
3e6a47d5f7 | ||
|
aabcfb230f | ||
|
ee99a660c2 | ||
|
5063061a70 | ||
|
c3ce7bd516 | ||
|
95efd96c3e | ||
|
abf5274c06 | ||
|
db5d3182bc | ||
|
0527c978ce | ||
|
b36de5dc26 | ||
|
92b47e56f7 | ||
|
fc967f92f3 | ||
|
1882bbf0b6 | ||
|
a3fed1f6f0 | ||
|
eae0fd1768 | ||
|
a7a99fc3a2 | ||
|
fedd80477b | ||
|
844d145e09 | ||
|
a817c14925 | ||
|
70e145eceb | ||
|
438f11c11d | ||
|
edf75d1915 | ||
|
9de26d9998 | ||
|
ab5a786197 | ||
|
272b613e18 | ||
|
35c10e0c7d | ||
|
7795adf173 | ||
|
dca2e5fdab | ||
|
eb6dcdfa5d | ||
|
9f4f788519 | ||
|
1d7588e4e4 | ||
|
81c476c1bb | ||
|
ccc44ca769 | ||
|
82c5a853cb | ||
|
e11af25ba6 | ||
|
16b68bb190 | ||
|
051dbb3b1b | ||
|
bdf2b9be71 | ||
|
0b6a76d01a | ||
|
bd1e1f7ee8 | ||
|
e9c7ffe825 | ||
|
9e735bc7df | ||
|
eefc03c4f3 | ||
|
135caffaec | ||
|
c1f7abac58 | ||
|
a325c50f1f | ||
|
37daa5638b | ||
|
8118806f4e | ||
|
3f7aaa7e99 | ||
|
700de676d0 | ||
|
52a8ec8033 | ||
|
40a884b4f5 | ||
|
62df4e2fac | ||
|
69d60a7372 | ||
|
9623b79197 | ||
|
ec1481aed0 | ||
|
1e76867fd1 | ||
|
7ff01413e5 | ||
|
48b3ed3aca | ||
|
e75d52f985 | ||
|
3f95e755b5 | ||
|
9d0f4096f8 | ||
|
e402e0e7a7 | ||
|
38c77fb39e | ||
|
3020adbe9d | ||
|
4df390713c | ||
|
bec4444388 | ||
|
2d249f6f19 | ||
|
4d1053ce99 | ||
|
0522331977 | ||
|
eb9520397c | ||
|
f0c93b8fce | ||
|
b3e9c3d6ce | ||
|
99793f2e20 | ||
|
f43bd64be2 | ||
|
fa440e8d9b | ||
|
db4d457325 | ||
|
d87245899e | ||
|
ac6260ab24 | ||
|
91bc8c8bdd | ||
|
74d756d43b | ||
|
2281d0ca35 | ||
|
31cc929c68 | ||
|
80ce93785a | ||
|
1710ab0035 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -20,7 +20,9 @@ app/view/bg
|
||||
app/view/cs
|
||||
app/view/ps
|
||||
app/view/es-AR
|
||||
app/view/it-IT
|
||||
app/git
|
||||
*.code-workspace
|
||||
releasenote.md
|
||||
app/yarn-error.log
|
||||
app/js/platform/aiscript.js
|
||||
|
18
.travis.yml
18
.travis.yml
@@ -6,15 +6,30 @@ language: node_js
|
||||
env:
|
||||
- YARN_GPG=no
|
||||
node_js:
|
||||
- '10.15.2'
|
||||
- '12.17.0'
|
||||
cache:
|
||||
yarn: true
|
||||
script: node -v
|
||||
before_deploy:
|
||||
- yarn global add electron-builder
|
||||
- yarn global add browserify
|
||||
- cd app
|
||||
- VERSION=$(cat package.json | grep version | head -1 | awk -F= "{ print $2 }" | sed 's/[version:,\",]//g' | tr -d '[[:space:]]')
|
||||
- yarn install --no-lockfile --prod
|
||||
- yarn construct:store
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then electron-builder --mac -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then mv *.dmg TheDesk-$VERSION-store.dmg;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then cd ../app;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then electron-builder --linux snap:x64 -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then mv *.snap TheDesk-$VERSION-store.snap;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../app;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then yarn add electron-builder;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then electron-builder --win appx:x64 -p never ;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then mv *.appx TheDesk-$VERSION-store.appx;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../app;else :;fi
|
||||
- yarn construct
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ];then electron-builder --mac -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then electron-builder --linux --x64 -p never;else :;fi
|
||||
@@ -22,7 +37,6 @@ before_deploy:
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then ls;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then mv thedesk-*.zip thedesk.zip;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../app;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then yarn add electron-builder;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then electron-builder --win --ia32 -p never;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../build;else :;fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ];then ls;else :;fi
|
||||
|
@@ -11,7 +11,10 @@
|
||||
Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
||||
オープンソースSNSマストドン/MisskeyのPC向けクライアント[日本語はこちら](README_ja.md)
|
||||
|
||||
Download:[TheDesk](https://thedesk.top) [](https://status.cutls.com)
|
||||
Download:[TheDesk](https://thedesk.top) [](https://status.cutls.com)
|
||||
|
||||
On GitHub Releases, `-store.*` assets are made for some application store or manager(Snapcraft, Homebrew, Microsoft Store).
|
||||
They do not check the latest version(Which you can get the latest ver or not depends on the store)
|
||||
|
||||
<a href="https://www.patreon.com/cutls"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160"></a>
|
||||
<a href="https://liberapay.com/cutls/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a>
|
||||
@@ -147,7 +150,7 @@ macOS
|
||||
|
||||
### PWA support
|
||||
|
||||
TheDesk is a wed-based app, so you can run it on a browser. Of course, the main stream is as Electron. Some features won't work as well as Electron.
|
||||
TheDesk is a web-based app, so you can run it on a browser. Of course, the main stream is as Electron. Some features won't work as well as Electron.
|
||||
|
||||
You can run `npm run build:pwa` to build as PWA, including `manifest.json` and the ServiceWorker.
|
||||
|
||||
|
@@ -14,6 +14,8 @@ Download:[TheDesk](https://thedesk.top) [
|
||||
|
||||
`-store.*`とあるアセットはストアやパッケージマネージャ向けのもので、アップデートの確認をソフト本体で行いません。
|
||||
|
||||

|
||||
|
||||
## ライセンス
|
||||
|
5
app/.eslintignore
Normal file
5
app/.eslintignore
Normal file
@@ -0,0 +1,5 @@
|
||||
js/common/blurhash.js
|
||||
js/common/hammer.min.js
|
||||
js/common/sha256.js
|
||||
js/platform/punycode.js
|
||||
js/platform/tj-deck.js
|
14
app/.eslintrc.json
Normal file
14
app/.eslintrc.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"extends": "eslint:recommended",
|
||||
"env": {"browser": true},
|
||||
"rules": {
|
||||
"no-console": "off",
|
||||
"semi": ["error", "never"]
|
||||
},
|
||||
"globals": {
|
||||
"$": false,
|
||||
"ver": true,
|
||||
"pwa": true,
|
||||
"lang": true
|
||||
}
|
||||
}
|
11
app/aiscript.js
Normal file
11
app/aiscript.js
Normal file
@@ -0,0 +1,11 @@
|
||||
const { AiScript, parse, values, utils } = require('@syuilo/aiscript')
|
||||
global.sanitizeHtml = require('sanitize-html')
|
||||
global.asValue = values
|
||||
global.AiScript = AiScript
|
||||
global.asParse = parse
|
||||
global.asCommon = {
|
||||
'TheDesk:console': values.FN_NATIVE((z) => {
|
||||
console.log(z[0].value)
|
||||
})
|
||||
}
|
||||
global.asUtil = utils
|
@@ -21,6 +21,15 @@ html {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
#acct-list .btn-flat.white-text {
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
#acct-list .btn-flat.red-text {
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
|
||||
.lts {
|
||||
font-size: 150%;
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@ body {
|
||||
user-select: none;
|
||||
cursor: default;
|
||||
height: 100vh;
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
}
|
||||
html {
|
||||
font-size: 13px;
|
||||
@@ -14,14 +14,15 @@ html {
|
||||
.titlebar,
|
||||
.menubar-menu-container,
|
||||
.action-menu-item {
|
||||
background-color: var(--notfbox) !important;
|
||||
background-color: var(--subcolor) !important;
|
||||
filter: brightness(110%) !important;
|
||||
color: var(--color) !important;
|
||||
color: var(--text) !important;
|
||||
}
|
||||
.action-menu-item:hover {
|
||||
filter: brightness(80%) !important;
|
||||
}
|
||||
.btn, .btn-flat {
|
||||
.btn,
|
||||
.btn-flat {
|
||||
font-size: 1.1rem;
|
||||
margin: 0.4rem;
|
||||
text-transform: none;
|
||||
@@ -231,7 +232,8 @@ blockquote:before,
|
||||
width: 100vw;
|
||||
height: calc(100vh - 3rem);
|
||||
background-color: var(--bg);
|
||||
color: var(--color);
|
||||
filter: brightness(50%);
|
||||
color: var(--text);
|
||||
z-index: 99999;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
@@ -242,7 +244,7 @@ blockquote:before,
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color: var(--bg);
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
z-index: 99999;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
@@ -253,7 +255,7 @@ blockquote:before,
|
||||
#pip {
|
||||
z-index: 504;
|
||||
width: 418px;
|
||||
background-color: var(--subcolor);
|
||||
background-color: var(--thirdColor);
|
||||
position: absolute;
|
||||
}
|
||||
.pip-bottom {
|
||||
@@ -314,10 +316,10 @@ blockquote:before,
|
||||
}
|
||||
.collapsible-header,
|
||||
.tabs {
|
||||
background-color: var(--subcolor);
|
||||
background-color: var(--thirdColor);
|
||||
}
|
||||
.collapsible-header:focus {
|
||||
background-color: var(--subcolor) !important;
|
||||
background-color: var(--thirdColor) !important;
|
||||
}
|
||||
.modal-footer {
|
||||
background-color: var(--modalfooter) !important;
|
||||
@@ -331,16 +333,29 @@ blockquote:before,
|
||||
}
|
||||
.release-do {
|
||||
border: solid 2px;
|
||||
border-color: var(--color);
|
||||
border-color: var(--text);
|
||||
padding: 5px;
|
||||
}
|
||||
#pickers {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: column;
|
||||
}
|
||||
input[type='color'] {
|
||||
-webkit-appearance: none;
|
||||
border: none;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
input[type='color']::-webkit-color-swatch-wrapper {
|
||||
padding: 0;
|
||||
}
|
||||
input[type='color']::-webkit-color-swatch {
|
||||
border: none;
|
||||
}
|
||||
#menu {
|
||||
position: fixed;
|
||||
z-index: 9999;
|
||||
z-index: 999;
|
||||
background-color: var(--postbox);
|
||||
width: 540px;
|
||||
top: calc(50% - 150px);
|
||||
@@ -366,7 +381,7 @@ blockquote:before,
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
}
|
||||
#left-menu a:hover {
|
||||
background-color: var(--beforehover);
|
||||
@@ -377,6 +392,9 @@ blockquote:before,
|
||||
#left-menu a.active {
|
||||
background-color: var(--emphasized);
|
||||
}
|
||||
#left-menu a.active span {
|
||||
text-decoration: underline;
|
||||
}
|
||||
#right-menu {
|
||||
width: 100%;
|
||||
overflow-y: scroll;
|
||||
@@ -394,7 +412,7 @@ blockquote:before,
|
||||
width: 13rem;
|
||||
height: 3.1rem;
|
||||
cursor: pointer;
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
}
|
||||
#tltype .type span {
|
||||
width: calc(100% - 2.3rem);
|
||||
@@ -421,7 +439,7 @@ blockquote:before,
|
||||
text-align: center;
|
||||
width: calc(100% + 0.8rem);
|
||||
border-radius: 5px;
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
filter: brightness(80%);
|
||||
margin-left: -0.4rem;
|
||||
margin-right: -0.4rem;
|
||||
@@ -442,7 +460,7 @@ blockquote:before,
|
||||
position: fixed;
|
||||
bottom: -300px;
|
||||
width: 100vw;
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
z-index: 9999;
|
||||
padding: 0.8rem;
|
||||
display: grid;
|
||||
@@ -468,16 +486,16 @@ blockquote:before,
|
||||
}
|
||||
input,
|
||||
textarea {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
font-size: 1rem !important;
|
||||
font-family: inherit;
|
||||
}
|
||||
.swal2-popup {
|
||||
background-color: var(--notfbox) !important;
|
||||
background-color: var(--subcolor) !important;
|
||||
}
|
||||
.swal2-title,
|
||||
.swal2-content {
|
||||
color: var(--color) !important;
|
||||
color: var(--text) !important;
|
||||
}
|
||||
#src-contents svg {
|
||||
margin-right: 0.4rem;
|
||||
@@ -526,7 +544,7 @@ textarea {
|
||||
left: calc(50vw - 11.53rem);
|
||||
width: 23rem;
|
||||
max-width: 100%;
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
z-index: 501;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
@@ -550,9 +568,15 @@ textarea {
|
||||
/*スクロールバー*/
|
||||
::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
height: 10px;
|
||||
height: 12px;
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.thickScrollBar ::-webkit-scrollbar {
|
||||
height: 18px;
|
||||
}
|
||||
.thinScrollBar ::-webkit-scrollbar {
|
||||
height: 5px;
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
@@ -564,6 +588,15 @@ textarea {
|
||||
background: #607d8b;
|
||||
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
::-webkit-scrollbar-thumb::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
margin-left: -15px;
|
||||
border: 15px solid transparent;
|
||||
border-top: 15px solid #e0edff;
|
||||
}
|
||||
/* Web Fonts */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
@@ -606,3 +639,41 @@ textarea {
|
||||
.darwin .win {
|
||||
display: none;
|
||||
}
|
||||
.dropdown-content.header:hover {
|
||||
background-color: white;
|
||||
}
|
||||
button {
|
||||
font-family: inherit !important;
|
||||
}
|
||||
.via-dropdown {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#re-online {
|
||||
background-color: rgb(38, 92, 153);
|
||||
position: fixed;
|
||||
width: 100vw;
|
||||
height: 2rem;
|
||||
padding: 0.25rem;
|
||||
color: white;
|
||||
z-index: 1000;
|
||||
}
|
||||
#offline {
|
||||
background-color: rgb(153, 38, 38);
|
||||
position: fixed;
|
||||
width: 100vw;
|
||||
height: 2rem;
|
||||
padding: 0.25rem;
|
||||
color: white;
|
||||
z-index: 999;
|
||||
}
|
||||
.pluginNex {
|
||||
width: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
.pluginNex span {
|
||||
font-size: 2rem;
|
||||
position: relative;
|
||||
top: -4px;
|
||||
}
|
@@ -64,9 +64,10 @@ textarea {
|
||||
}
|
||||
#emoji {
|
||||
}
|
||||
#suggest {
|
||||
#suggest, #draft {
|
||||
max-height: 23rem;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#emoji-list {
|
||||
width: 100%;
|
||||
@@ -86,7 +87,7 @@ textarea {
|
||||
max-height: 7.7rem;
|
||||
}
|
||||
#default-emoji a {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
margin-right: 0.15rem;
|
||||
}
|
||||
.character-counter {
|
||||
@@ -126,8 +127,8 @@ textarea {
|
||||
}
|
||||
#posttgl,
|
||||
#toot-post-btn {
|
||||
background-color: var(--accentbtn);
|
||||
color: var(--color);
|
||||
background-color: var(--active);
|
||||
color: var(--text);
|
||||
}
|
||||
/*mini*/
|
||||
.mini-post .mize {
|
||||
|
@@ -5,7 +5,7 @@
|
||||
background-color: var(--modalfooter);
|
||||
margin: 0.4rem;
|
||||
border-radius: 0.4rem;
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
padding: 3px;
|
||||
display: grid;
|
||||
grid-template-columns: 3.3rem 1fr 4.6rem;
|
||||
|
@@ -1,192 +1,22 @@
|
||||
:root {
|
||||
--bg: white;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: black;
|
||||
--beforehover: #757575;
|
||||
--modal: white;
|
||||
--subcolor: #e0e0e0;
|
||||
--box: white;
|
||||
--sidebar: #eeeeee;
|
||||
--shared: #cfd8dc;
|
||||
--notfbox: white;
|
||||
--emphasized: #81c784;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #e6ee9c;
|
||||
--postbox: white;
|
||||
--modalfooter: #fafafa;
|
||||
--accentbtn: #009688;
|
||||
--selected: #c0c0c0;
|
||||
--selectedWithShare: #b2babd;
|
||||
--gray: #757575;
|
||||
}
|
||||
#imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
.blacktheme {
|
||||
--bg: #212121;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--text: white;
|
||||
--beforehover: #9e9e9e;
|
||||
--modal: black;
|
||||
--subcolor: #212121;
|
||||
--box: #424242;
|
||||
--sidebar: #424242;
|
||||
--shared: #004d40;
|
||||
--notfbox: #333333;
|
||||
--thirdColor: #212121;
|
||||
--bottom: #424242;
|
||||
--accent: #004d40;
|
||||
--subcolor: #333333;
|
||||
--emphasized: #4e342e;
|
||||
--his-data: rgba(0, 0, 0, 0.8);
|
||||
--active: #757575;
|
||||
--postbox: #424242;
|
||||
--modalfooter: #212121;
|
||||
--accentbtn: #3f51b5;
|
||||
--active: #3f51b5;
|
||||
--selected: #3f3f3f;
|
||||
--selectedWithShare: #003a30;
|
||||
--gray: #cccccc;
|
||||
}
|
||||
.blacktheme #imagemodal {
|
||||
#imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.indigotheme {
|
||||
--bg: #031833;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--beforehover: #9e9e9e;
|
||||
--modal: #0d1351;
|
||||
--subcolor: #0d1351;
|
||||
--shared: #004d40;
|
||||
--box: #0d1351;
|
||||
--sidebar: #0d1351;
|
||||
--notfbox: #0d47a1;
|
||||
--emphasized: #4e342e;
|
||||
--his-data: rgba(13, 19, 81, 0.8);
|
||||
--active: #757575;
|
||||
--postbox: #1a237e;
|
||||
--modalfooter: #031833;
|
||||
--accentbtn: #00acc1;
|
||||
--selected: #214f8a;
|
||||
--selectedWithShare: #003a30;
|
||||
--gray: #cccccc ;
|
||||
}
|
||||
.indigotheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.browntheme {
|
||||
--bg: #261411;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--beforehover: #9e9e9e;
|
||||
--modal: #261411;
|
||||
--subcolor: #4e342e;
|
||||
--shared: #004d40;
|
||||
--box: #4e342e;
|
||||
--sidebar: #4e342e;
|
||||
--notfbox: #4e342e;
|
||||
--emphasized: #0d47a1;
|
||||
--his-data: rgba(62, 39, 35, 0.8);
|
||||
--active: #757575;
|
||||
--postbox: #4e342e;
|
||||
--modalfooter: #261411;
|
||||
--accentbtn: #827717;
|
||||
--selected: #6d352b;
|
||||
--selectedWithShare: #003a30;
|
||||
--gray: #cccccc;
|
||||
}
|
||||
.browntheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.greentheme {
|
||||
--bg: #c8e6c9;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: black;
|
||||
--beforehover: #757575;
|
||||
--modal: #81c784;
|
||||
--subcolor: #a5d6a7;
|
||||
--box: #81c784;
|
||||
--sidebar: #c5e1a5;
|
||||
--shared: #ffcc80;
|
||||
--notfbox: #a5d6a7;
|
||||
--emphasized: #9e9d24;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #e6ee9c;
|
||||
--postbox: #a5d6a7;
|
||||
--modalfooter: #81c784;
|
||||
--accentbtn: #33691e;
|
||||
--selected: #78c17a;
|
||||
--selectedWithShare: #caa266;
|
||||
--gray: #757575;
|
||||
}
|
||||
.greentheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
.bluetheme {
|
||||
--bg: #c9e1ec;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: black;
|
||||
--beforehover: #757575;
|
||||
--modal: #b2ebf2;
|
||||
--subcolor: #90caf9;
|
||||
--box: #90caf9;
|
||||
--sidebar: #b6e6f5;
|
||||
--shared: #e0ffe4;
|
||||
--notfbox: #90caf9;
|
||||
--emphasized: #c5e1a5;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #b39ddb;
|
||||
--postbox: #dff1ff;
|
||||
--modalfooter: #2196f3;
|
||||
--accentbtn: #2f7bb7;
|
||||
--selected: #9dcade;
|
||||
--selectedWithShare: #c1dac4;
|
||||
--gray: #757575;
|
||||
}
|
||||
.bluetheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
||||
.polartheme {
|
||||
--bg: #2e3440;
|
||||
--drag: rgba(0, 0, 0, 0.8);
|
||||
--color: white;
|
||||
--beforehover: #8d94a0;
|
||||
--modal: #3b4252;
|
||||
--subcolor: #434c5e;
|
||||
--box: #4c566a;
|
||||
--sidebar: #3b4252;
|
||||
--shared: #2d3b58;
|
||||
--notfbox: #2a3857;
|
||||
--emphasized: #2f4b86;
|
||||
--his-data: rgba(0, 0, 0, 0.8);
|
||||
--active: #2a3857;
|
||||
--postbox: #434c5e;
|
||||
--modalfooter: #485166;
|
||||
--accentbtn: #2f4b86;
|
||||
--selected: #464f61;
|
||||
--selectedWithShare: #3e527e;
|
||||
--gray: #cccccc;
|
||||
}
|
||||
.polartheme #imagemodal {
|
||||
background: url("../img/pixel.svg");
|
||||
}
|
||||
.snowtheme {
|
||||
--bg: #eceff4;
|
||||
--drag: rgba(255, 255, 255, 0.8);
|
||||
--color: #36425a;
|
||||
--beforehover: #344058;
|
||||
--modal: #e5e9f0;
|
||||
--subcolor: #d8dee9;
|
||||
--box: #c0c8d6;
|
||||
--sidebar: #eeeeee;
|
||||
--shared: #c3d4e6;
|
||||
--notfbox: #d8dee9;
|
||||
--emphasized: #88c0d0;
|
||||
--his-data: rgba(255, 255, 255, 0.9);
|
||||
--active: #8fbcbb;
|
||||
--postbox: #d8dee9;
|
||||
--modalfooter: #b2bed4;
|
||||
--accentbtn: #81a1c1;
|
||||
--selected: #b4bdd0;
|
||||
--selectedWithShare: #a3afbb;
|
||||
--gray: #5c6c8c;
|
||||
}
|
||||
.snowtheme #imagemodal {
|
||||
background: url("../img/pixel.white.svg");
|
||||
}
|
102
app/css/tl.css
102
app/css/tl.css
@@ -18,7 +18,7 @@
|
||||
padding: 0.23rem;
|
||||
padding-right: 0;
|
||||
padding-left: 3rem;
|
||||
background-color: var(--sidebar);
|
||||
background-color: var(--bottom);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
@@ -62,7 +62,7 @@
|
||||
}
|
||||
#bottom a,
|
||||
#demogroup a {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
}
|
||||
#bottom i {
|
||||
font-size: 2.3rem;
|
||||
@@ -93,7 +93,7 @@
|
||||
display: grid;
|
||||
grid-template-columns: 3rem 2.3rem 2.5fr 1fr 4.6rem;
|
||||
grid-template-rows: 1.7rem 1.5rem;
|
||||
grid-template-areas: 'cover name name artist refresh' 'cover progress progress progress time';
|
||||
grid-template-areas: 'cover name name name refresh' 'cover progress progress progress time';
|
||||
}
|
||||
#spot-refresh {
|
||||
grid-area: refresh;
|
||||
@@ -108,18 +108,12 @@
|
||||
overflow: hidden;
|
||||
line-height: 1.92rem;
|
||||
}
|
||||
#spot-artist {
|
||||
grid-area: artist;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
line-height: 1.92rem;
|
||||
}
|
||||
#spot-img {
|
||||
width: 90%;
|
||||
}
|
||||
#spot-time {
|
||||
grid-area: time;
|
||||
line-height: 0.5rem;
|
||||
}
|
||||
.progress {
|
||||
grid-area: progress;
|
||||
@@ -157,7 +151,8 @@ iframe,
|
||||
}
|
||||
.box {
|
||||
overflow: hidden;
|
||||
min-width: 23rem;
|
||||
min-width: 300px;
|
||||
max-width: 600px;
|
||||
flex: 1;
|
||||
border-top: none;
|
||||
display: flex;
|
||||
@@ -217,10 +212,14 @@ iframe,
|
||||
.emoji,
|
||||
.emoji-img {
|
||||
width: 1.153rem;
|
||||
height: 1.153rem;
|
||||
object-fit: cover;
|
||||
}
|
||||
.area-toot .emoji,
|
||||
.area-toot .emoji-img {
|
||||
width: 1.538rem;
|
||||
height: 1.538rem;
|
||||
object-fit: cover;
|
||||
vertical-align: middle;
|
||||
margin: -1px 0;
|
||||
}
|
||||
@@ -430,7 +429,7 @@ iframe,
|
||||
}
|
||||
|
||||
.btn-flat {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
}
|
||||
.area-side i {
|
||||
margin-left: 0.75rem;
|
||||
@@ -449,44 +448,15 @@ iframe,
|
||||
color: var(--beforehover);
|
||||
}
|
||||
.actct:hover {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
transition: 0.5s;
|
||||
}
|
||||
#contextWrap {
|
||||
position: fixed;
|
||||
width: 199vw;
|
||||
height: 100vh;
|
||||
z-index: 100;
|
||||
.contextMenu.dropdown-content {
|
||||
padding-top: 5px;
|
||||
overflow-y: hidden;
|
||||
left: calc(100% - 200px) !important;
|
||||
width: 200px !important;
|
||||
}
|
||||
.contextMenu {
|
||||
position: fixed;
|
||||
background-color: var(--box);
|
||||
z-index: 9999;
|
||||
border-radius: 0.4rem;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
.contextMenu.bottom:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
right: 2rem;
|
||||
border: 1.2rem solid transparent;
|
||||
border-top: 1.2rem solid var(--box);
|
||||
}
|
||||
.contextMenu.top:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -2.3rem;
|
||||
right: 2rem;
|
||||
border: 1.5rem solid transparent;
|
||||
border-bottom: 1.5rem solid var(--box);
|
||||
}
|
||||
.contextMenu .btn-flat {
|
||||
text-transform: none !important;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.gray {
|
||||
color: var(--gray);
|
||||
}
|
||||
@@ -525,7 +495,7 @@ iframe,
|
||||
user-select: none;
|
||||
}
|
||||
.cbadge-hover {
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
background-color: transparent;
|
||||
}
|
||||
.cbadge-hover:hover {
|
||||
@@ -541,7 +511,7 @@ p:not(:last-child) {
|
||||
margin-bottom: 0.76rem;
|
||||
}
|
||||
.shared {
|
||||
background-color: var(--shared);
|
||||
background-color: var(--accent);
|
||||
}
|
||||
.emphasized {
|
||||
background-color: var(--emphasized);
|
||||
@@ -551,7 +521,7 @@ p:not(:last-child) {
|
||||
}
|
||||
.notice-box {
|
||||
top: 0;
|
||||
background-color: var(--notfbox);
|
||||
background-color: var(--subcolor);
|
||||
filter: brightness(110%);
|
||||
position: relative;
|
||||
margin-right: 0.7rem;
|
||||
@@ -620,7 +590,7 @@ p:not(:last-child) {
|
||||
.notf-box {
|
||||
position: fixed;
|
||||
right: 5.4rem;
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
border: thin solid gray;
|
||||
z-index: 501;
|
||||
width: 30rem;
|
||||
@@ -657,14 +627,30 @@ p:not(:last-child) {
|
||||
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12),
|
||||
0 5px 5px -3px rgba(0, 0, 0, 0.3), 0px -10px 10px 0px rgba(0, 0, 0, 0.3) inset;
|
||||
}
|
||||
.notf-indv-box label span {
|
||||
padding-left: 23px !important;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.notf-indv-box .setting {
|
||||
font-size: 1rem;
|
||||
width: calc(25% - 3px);
|
||||
text-align: left;
|
||||
padding: 5px;
|
||||
height: 70px;
|
||||
text-align: center;
|
||||
}
|
||||
.notf-exclude-btn:hover {
|
||||
background-color: inherit !important;
|
||||
border: 1px solid;
|
||||
}
|
||||
.type-b {
|
||||
display: none;
|
||||
}
|
||||
.modal-footer {
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
}
|
||||
.ballons {
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
right: 0px;
|
||||
@@ -722,11 +708,11 @@ p:not(:last-child) {
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
.votebtn:hover {
|
||||
background-color: var(--color);
|
||||
background-color: var(--text);
|
||||
}
|
||||
.leadPoll {
|
||||
position: absolute;
|
||||
background-color: var(--box);
|
||||
background-color: var(--subcolor);
|
||||
height: 1.5rem;
|
||||
border-radius: 0.23rem;
|
||||
}
|
||||
@@ -788,11 +774,11 @@ audio {
|
||||
.cw_btn {
|
||||
margin: 0.23rem;
|
||||
background-color: var(--emphasized);
|
||||
color: var(--color);
|
||||
color: var(--text);
|
||||
padding-left: 0.23rem;
|
||||
padding-right: 0.23rem;
|
||||
border-radius: 0.23rem;
|
||||
border: 1px solid var(--color);
|
||||
border: 1px solid var(--text);
|
||||
user-select: none;
|
||||
}
|
||||
.vis-data {
|
||||
@@ -882,7 +868,7 @@ audio {
|
||||
cursor: pointer;
|
||||
border: solid 1px;
|
||||
padding-left: 0.15rem;
|
||||
background-color: var(--notfbox);
|
||||
background-color: var(--subcolor);
|
||||
border-radius: 0.15rem;
|
||||
}
|
||||
.announReaction img {
|
||||
|
@@ -1,147 +1,162 @@
|
||||
/*アイコンをクリックした時とかにでてくるユーザーデータ*/
|
||||
#his-data {
|
||||
background-repeat: no-repeat;
|
||||
background-image: url("../img/loading.svg");
|
||||
overflow-y: hidden;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url('../img/loading.svg');
|
||||
overflow-y: hidden;
|
||||
}
|
||||
#his-data .btn .material-icons{
|
||||
float:left;
|
||||
#his-data .btn .material-icons {
|
||||
float: left;
|
||||
}
|
||||
#his-data-content {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
#his-name {
|
||||
font-size: 1.5rem;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
#his-prof {
|
||||
float: left;
|
||||
width: 7.7rem;
|
||||
margin-right: 0.4rem;
|
||||
width: 7.7rem;
|
||||
margin-right: 0.4rem;
|
||||
}
|
||||
.his-float {
|
||||
overflow-y: scroll;
|
||||
padding: 0.4rem;
|
||||
overflow-y: scroll;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
#his-float-data {
|
||||
height: 100%;
|
||||
height: 100%;
|
||||
overflow-y: hidden;
|
||||
|
||||
}
|
||||
#his-leftside {
|
||||
width: 38.4rem;
|
||||
width: 28.4rem;
|
||||
max-width: 30vw;
|
||||
}
|
||||
#his-float-timeline {
|
||||
max-width: 59.6rem;
|
||||
height: 100%;
|
||||
overflow-y: hidden;
|
||||
max-width: 47.5rem;
|
||||
min-width: calc(100% - 29.4rem);
|
||||
height: 100%;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
#his-basic-prof {
|
||||
min-height: 10rem;
|
||||
display: flex;
|
||||
min-height: 10rem;
|
||||
}
|
||||
#his-field {
|
||||
vertical-align: baseline;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
vertical-align: baseline;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
}
|
||||
#his-field tr {
|
||||
height: 1.5rem;
|
||||
height: 1.5rem;
|
||||
}
|
||||
.his-field-title {
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
background-color: #757575;
|
||||
text-align: center;
|
||||
padding: 0.4rem;
|
||||
margin-bottom: 1px;
|
||||
width: 30%;
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
background-color: #757575;
|
||||
text-align: center;
|
||||
padding: 0.4rem;
|
||||
margin-bottom: 1px;
|
||||
width: 30%;
|
||||
}
|
||||
.his-field-content {
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
padding-left: 0.4rem;
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
padding-left: 0.4rem;
|
||||
}
|
||||
.his-var-content a span.ellipsis:after {
|
||||
content: "...";
|
||||
content: '...';
|
||||
}
|
||||
.his-var-content a:not(.mention) span:last-of-type {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
#his-data a .rep_ct,
|
||||
#his-data a .rt_ct,
|
||||
#his-data a .fav_ct {
|
||||
display: inline !important;
|
||||
display: inline !important;
|
||||
}
|
||||
#his-data-show {
|
||||
margin: 1.5rem;
|
||||
margin-left: 3.8rem;
|
||||
margin-right: 3.8rem;
|
||||
background-color: var(--his-data);
|
||||
height: calc(100% - 1.5rem);
|
||||
margin-bottom: 0;
|
||||
padding: 0.4rem;
|
||||
margin: 1.5rem;
|
||||
margin-left: 3.8rem;
|
||||
margin-right: 3.8rem;
|
||||
background-color: var(--his-data);
|
||||
height: calc(100% - 1.5rem);
|
||||
margin-bottom: 0;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
#his-data-wrap {
|
||||
display: flex;
|
||||
display: flex;
|
||||
}
|
||||
.his-var-content {
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
height: calc(100% - 3.4rem);
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
height: calc(100% - 3.4rem);
|
||||
padding-bottom: 60px;
|
||||
}
|
||||
#my-data-nav .btn {
|
||||
width: 10.7rem;
|
||||
width: 10.6rem;
|
||||
}
|
||||
.active-back {
|
||||
background-color: var(--active);
|
||||
#my-data-nav .active-back {
|
||||
display: none;
|
||||
}
|
||||
#his-name .emojione,
|
||||
#his-name .emoji-img {
|
||||
width: 1.538rem;
|
||||
width: 1.538rem;
|
||||
}
|
||||
#his-plus-action .btn {
|
||||
padding-right: 0.4rem;
|
||||
padding-left: 0.4rem;
|
||||
padding-right: 0.4rem;
|
||||
padding-left: 0.4rem;
|
||||
}
|
||||
.tabs {
|
||||
display: flex;
|
||||
display: flex;
|
||||
}
|
||||
.tabs .tab a {
|
||||
padding: 0.6rem 0.9rem;
|
||||
padding: 0.6rem 0.9rem;
|
||||
}
|
||||
#his-des {
|
||||
max-height: 17.7rem;
|
||||
overflow-y: scroll;
|
||||
max-height: 17.7rem;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
#his-sign-action {
|
||||
border: 1px solid;
|
||||
border-radius: 0.4rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: 0.75rem;
|
||||
padding-right: 0.75rem;
|
||||
flex-wrap: wrap;
|
||||
border: 1px solid;
|
||||
border-radius: 0.4rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: 0.75rem;
|
||||
padding-right: 0.75rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
#his-sign-action .btn {
|
||||
flex-basis: 31.2%;
|
||||
flex-basis: calc(50% - 10.6px);
|
||||
}
|
||||
#his-sign-action .dropdown-trigger {
|
||||
flex-basis: 100%;
|
||||
}
|
||||
#his-des .mention {
|
||||
color: #039be5;
|
||||
cursor: pointer;
|
||||
color: #039be5;
|
||||
cursor: pointer;
|
||||
}
|
||||
#his-table{
|
||||
max-height: 11.538rem;
|
||||
overflow-y: scroll;
|
||||
#his-table {
|
||||
max-height: 11.538rem;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
#his-float-blocked {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 2rem;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 2rem;
|
||||
height: 100%;
|
||||
}
|
||||
#hisdropdown{
|
||||
background-color: var(--bg);
|
||||
#hisdropdown {
|
||||
background-color: var(--bg);
|
||||
}
|
||||
#hisdropdown li a {
|
||||
color: white;
|
||||
}
|
||||
#hisdropdown li:hover {
|
||||
background-color: var(--active);
|
||||
}
|
||||
#his-data-title {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
#hisdropdown li:hover{
|
||||
background-color: var(--active);
|
||||
}
|
69
app/img/2025.svg
Normal file
69
app/img/2025.svg
Normal file
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 600 600" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g id="輝き" transform="matrix(0.892356,0,0,0.892356,36.941,-15.9516)">
|
||||
<g transform="matrix(2.39479,0,0,2.21494,-178.97,-182.183)">
|
||||
<ellipse cx="123.217" cy="151.049" rx="36.923" ry="35.804" style="fill:rgb(84,82,81);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,8.39159,-32.1678)">
|
||||
<ellipse cx="120.479" cy="305.524" rx="112.5" ry="52" style="fill:rgb(84,82,81);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.952046,-0.305955,0.305955,0.952046,-139.881,8.62199)">
|
||||
<ellipse cx="134.479" cy="430.524" rx="46.5" ry="84" style="fill:rgb(84,82,81);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,2.39158,-65.1678)">
|
||||
<ellipse cx="130.479" cy="561.024" rx="72.5" ry="74.5" style="fill:rgb(84,82,81);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,8.39159,-32.1678)">
|
||||
<ellipse cx="156.979" cy="651.76" rx="68" ry="60.235" style="fill:rgb(84,82,81);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.954888,0.296965,-0.296965,0.954888,55.6063,-54.2336)">
|
||||
<ellipse cx="199.479" cy="158.995" rx="98.5" ry="51" style="fill:rgb(240,132,46);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.931851,0.362841,-0.362841,0.931851,63.1962,-89.0819)">
|
||||
<ellipse cx="344.979" cy="135.857" rx="74" ry="90.137" style="fill:rgb(240,132,46);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-56.6084,-45.1678)">
|
||||
<ellipse cx="493.479" cy="301.22" rx="126.5" ry="55.5" style="fill:rgb(240,132,46);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-14.6084,-70.1678)">
|
||||
<ellipse cx="531.479" cy="368.22" rx="58.5" ry="54.5" style="fill:rgb(240,132,46);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.973706,-0.227807,0.227807,0.973706,-124.722,44.48)">
|
||||
<ellipse cx="265.479" cy="614.97" rx="98.5" ry="37.5" style="fill:rgb(54,76,159);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.982834,-0.184492,0.184492,0.982834,-148.417,-31.379)">
|
||||
<ellipse cx="407.479" cy="676.47" rx="71.5" ry="96" style="fill:rgb(54,76,159);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-34.6084,-22.1678)">
|
||||
<ellipse cx="468.979" cy="511.47" rx="48" ry="31" style="fill:rgb(54,76,159);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.880625,0.473815,-0.473815,0.880625,260.236,-235.714)">
|
||||
<ellipse cx="533.979" cy="472.97" rx="46" ry="99.5" style="fill:rgb(54,76,159);"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,9.39159,-36.1678)">
|
||||
<circle cx="69.229" cy="310.72" r="24.25" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,8.39159,-48.1678)">
|
||||
<circle cx="98.229" cy="417.72" r="25.25" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(0.76,0,0,0.76,96.9465,101.545)">
|
||||
<circle cx="375.229" cy="646.72" r="56.25" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,8.39159,-32.1678)">
|
||||
<circle cx="427.729" cy="287.22" r="32.75" style="fill:white;"/>
|
||||
</g>
|
||||
<g id="cat" transform="matrix(0.0249784,0,0,0.0249784,346.146,563.341)">
|
||||
<path d="M1592.47,2584L2048.94,2584C2048.94,2519.11 2044.31,2506.24 1936.84,2506.24C1954.01,2454.74 2023.79,2330.13 2062.57,2330.13C2096.88,2330.13 2137.81,2332.02 2137.81,2410.3C2137.81,2499.17 2287.37,2642.46 2323.63,2584C2377.67,2496.88 2230.72,2523.45 2230.72,2313.35C2230.72,2025.92 2398.46,2066.84 2398.46,1905.36C2398.46,1824.57 2376.14,1813.66 2376.14,1755.9C2376.14,1679.56 2443.39,1683.99 2430.31,1620.7C2421.27,1576.98 2414.2,1541.92 2408.93,1489.05C2405.19,1451.54 2404,1411.55 2365.03,1413.16C2319.25,1415.05 2301.88,1495.63 2230.72,1501.41C2159.7,1507.18 2099.15,1440.95 2071.66,1450.41C2044.41,1459.79 2052.98,1533.73 2069.14,1586.24C2094.54,1668.78 2149.93,1776.1 2048.94,1792.26C1947.95,1808.42 1774.25,1824.58 1649.02,1990.2C1523.79,2155.82 1528.42,2350.19 1479.36,2410.31C1314.72,2612.08 1146,2529.23 1146,2697.11C1146,2772.27 1273.35,2826.38 1293.55,2802.14C1313.75,2777.9 1121.93,2705.68 1336.56,2620.36C1519.91,2547.46 1536.28,2532.58 1592.47,2584Z" style="fill:rgb(5,127,254);"/>
|
||||
</g>
|
||||
<g id="cat1" serif:id="cat" transform="matrix(-0.0249784,0,0,0.0249784,147.519,318.341)">
|
||||
<path d="M1592.47,2584L2048.94,2584C2048.94,2519.11 2044.31,2506.24 1936.84,2506.24C1954.01,2454.74 2023.79,2330.13 2062.57,2330.13C2096.88,2330.13 2137.81,2332.02 2137.81,2410.3C2137.81,2499.17 2287.37,2642.46 2323.63,2584C2377.67,2496.88 2230.72,2523.45 2230.72,2313.35C2230.72,2025.92 2398.46,2066.84 2398.46,1905.36C2398.46,1824.57 2376.14,1813.66 2376.14,1755.9C2376.14,1679.56 2443.39,1683.99 2430.31,1620.7C2421.27,1576.98 2414.2,1541.92 2408.93,1489.05C2405.19,1451.54 2404,1411.55 2365.03,1413.16C2319.25,1415.05 2301.88,1495.63 2230.72,1501.41C2159.7,1507.18 2099.15,1440.95 2071.66,1450.41C2044.41,1459.79 2052.98,1533.73 2069.14,1586.24C2094.54,1668.78 2149.93,1776.1 2048.94,1792.26C1947.95,1808.42 1774.25,1824.58 1649.02,1990.2C1523.79,2155.82 1528.42,2350.19 1479.36,2410.31C1314.72,2612.08 1146,2529.23 1146,2697.11C1146,2772.27 1273.35,2826.38 1293.55,2802.14C1313.75,2777.9 1121.93,2705.68 1336.56,2620.36C1519.91,2547.46 1536.28,2532.58 1592.47,2584Z" style="fill:rgb(5,127,254);"/>
|
||||
</g>
|
||||
<g id="cat2" serif:id="cat" transform="matrix(-0.0249784,0,0,0.0249784,120.519,222.341)">
|
||||
<path d="M1592.47,2584L2048.94,2584C2048.94,2519.11 2044.31,2506.24 1936.84,2506.24C1954.01,2454.74 2023.79,2330.13 2062.57,2330.13C2096.88,2330.13 2137.81,2332.02 2137.81,2410.3C2137.81,2499.17 2287.37,2642.46 2323.63,2584C2377.67,2496.88 2230.72,2523.45 2230.72,2313.35C2230.72,2025.92 2398.46,2066.84 2398.46,1905.36C2398.46,1824.57 2376.14,1813.66 2376.14,1755.9C2376.14,1679.56 2443.39,1683.99 2430.31,1620.7C2421.27,1576.98 2414.2,1541.92 2408.93,1489.05C2405.19,1451.54 2404,1411.55 2365.03,1413.16C2319.25,1415.05 2301.88,1495.63 2230.72,1501.41C2159.7,1507.18 2099.15,1440.95 2071.66,1450.41C2044.41,1459.79 2052.98,1533.73 2069.14,1586.24C2094.54,1668.78 2149.93,1776.1 2048.94,1792.26C1947.95,1808.42 1774.25,1824.58 1649.02,1990.2C1523.79,2155.82 1528.42,2350.19 1479.36,2410.31C1314.72,2612.08 1146,2529.23 1146,2697.11C1146,2772.27 1273.35,2826.38 1293.55,2802.14C1313.75,2777.9 1121.93,2705.68 1336.56,2620.36C1519.91,2547.46 1536.28,2532.58 1592.47,2584Z" style="fill:rgb(5,127,254);"/>
|
||||
</g>
|
||||
<g id="cat3" serif:id="cat" transform="matrix(0.0249784,0,0,0.0249784,390.146,196.341)">
|
||||
<path d="M1592.47,2584L2048.94,2584C2048.94,2519.11 2044.31,2506.24 1936.84,2506.24C1954.01,2454.74 2023.79,2330.13 2062.57,2330.13C2096.88,2330.13 2137.81,2332.02 2137.81,2410.3C2137.81,2499.17 2287.37,2642.46 2323.63,2584C2377.67,2496.88 2230.72,2523.45 2230.72,2313.35C2230.72,2025.92 2398.46,2066.84 2398.46,1905.36C2398.46,1824.57 2376.14,1813.66 2376.14,1755.9C2376.14,1679.56 2443.39,1683.99 2430.31,1620.7C2421.27,1576.98 2414.2,1541.92 2408.93,1489.05C2405.19,1451.54 2404,1411.55 2365.03,1413.16C2319.25,1415.05 2301.88,1495.63 2230.72,1501.41C2159.7,1507.18 2099.15,1440.95 2071.66,1450.41C2044.41,1459.79 2052.98,1533.73 2069.14,1586.24C2094.54,1668.78 2149.93,1776.1 2048.94,1792.26C1947.95,1808.42 1774.25,1824.58 1649.02,1990.2C1523.79,2155.82 1528.42,2350.19 1479.36,2410.31C1314.72,2612.08 1146,2529.23 1146,2697.11C1146,2772.27 1273.35,2826.38 1293.55,2802.14C1313.75,2777.9 1121.93,2705.68 1336.56,2620.36C1519.91,2547.46 1536.28,2532.58 1592.47,2584Z" style="fill:rgb(5,127,254);"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.8 KiB |
50
app/img/aiscript.svg
Normal file
50
app/img/aiscript.svg
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 687 72" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g id="アートボード1" transform="matrix(1,0,0,1,-168.896,-476)">
|
||||
<rect x="168.896" y="476" width="686.208" height="72" style="fill:none;"/>
|
||||
<clipPath id="_clip1">
|
||||
<rect x="168.896" y="476" width="686.208" height="72"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#_clip1)">
|
||||
<g transform="matrix(1,0,0,1,77.6363,162.413)">
|
||||
<g transform="matrix(96,0,0,96,88.3157,385.587)">
|
||||
<path d="M0.463,-0.571C0.452,-0.59 0.436,-0.602 0.415,-0.608C0.394,-0.613 0.374,-0.611 0.356,-0.6L0.08,-0.443C0.053,-0.428 0.04,-0.405 0.04,-0.374C0.04,-0.344 0.053,-0.321 0.08,-0.306L0.356,-0.148C0.368,-0.141 0.381,-0.138 0.395,-0.138C0.425,-0.138 0.448,-0.151 0.463,-0.178C0.474,-0.197 0.476,-0.217 0.47,-0.237C0.465,-0.259 0.453,-0.274 0.434,-0.285L0.278,-0.374L0.434,-0.464C0.453,-0.474 0.465,-0.49 0.47,-0.511C0.476,-0.532 0.474,-0.552 0.463,-0.571Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,137.468,385.587)">
|
||||
<path d="M0.197,-0.67C0.197,-0.691 0.189,-0.71 0.174,-0.725C0.159,-0.74 0.14,-0.748 0.118,-0.748C0.096,-0.748 0.078,-0.74 0.063,-0.725C0.047,-0.71 0.04,-0.691 0.04,-0.67C0.04,-0.648 0.047,-0.629 0.063,-0.614C0.078,-0.599 0.096,-0.591 0.118,-0.591C0.14,-0.591 0.159,-0.599 0.174,-0.614C0.189,-0.629 0.197,-0.648 0.197,-0.67ZM0.197,-0.079C0.197,-0.101 0.189,-0.119 0.174,-0.135C0.159,-0.15 0.14,-0.158 0.118,-0.158C0.096,-0.158 0.078,-0.15 0.063,-0.135C0.047,-0.119 0.04,-0.101 0.04,-0.079C0.04,-0.057 0.047,-0.038 0.063,-0.023C0.078,-0.008 0.096,0 0.118,0C0.14,0 0.159,-0.008 0.174,-0.023C0.189,-0.038 0.197,-0.057 0.197,-0.079Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,201.74,385.587)">
|
||||
<path d="M0.118,-0.75C0.097,-0.75 0.078,-0.742 0.063,-0.727C0.047,-0.712 0.04,-0.693 0.04,-0.671L0.04,-0.573C0.04,-0.551 0.047,-0.532 0.063,-0.517C0.078,-0.502 0.097,-0.494 0.118,-0.494C0.14,-0.494 0.159,-0.502 0.174,-0.517C0.189,-0.532 0.197,-0.551 0.197,-0.573L0.197,-0.671C0.197,-0.693 0.189,-0.712 0.174,-0.727C0.159,-0.742 0.14,-0.75 0.118,-0.75ZM0.355,-0.75C0.333,-0.75 0.314,-0.742 0.299,-0.727C0.284,-0.712 0.276,-0.693 0.276,-0.671L0.276,-0.573C0.276,-0.551 0.284,-0.532 0.299,-0.517C0.314,-0.502 0.333,-0.494 0.355,-0.494C0.377,-0.494 0.395,-0.502 0.41,-0.517C0.426,-0.532 0.434,-0.551 0.434,-0.573L0.434,-0.671C0.434,-0.693 0.426,-0.712 0.41,-0.727C0.395,-0.742 0.377,-0.75 0.355,-0.75Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,247.1,385.587)">
|
||||
<path d="M0.394,-0.494L0.488,-0.306L0.3,-0.306L0.394,-0.494ZM0.063,-0.009C0.082,0.001 0.102,0.002 0.123,-0.005C0.144,-0.011 0.159,-0.024 0.169,-0.044L0.221,-0.148L0.566,-0.148L0.619,-0.044C0.625,-0.03 0.635,-0.02 0.648,-0.012C0.661,-0.004 0.674,0 0.689,0C0.701,0 0.713,-0.003 0.724,-0.009C0.743,-0.018 0.756,-0.033 0.763,-0.054C0.771,-0.075 0.769,-0.095 0.759,-0.114L0.464,-0.705C0.457,-0.718 0.448,-0.729 0.435,-0.737C0.422,-0.745 0.408,-0.749 0.394,-0.749C0.379,-0.749 0.365,-0.745 0.352,-0.737C0.339,-0.729 0.33,-0.718 0.323,-0.705L0.028,-0.114C0.018,-0.095 0.017,-0.075 0.024,-0.054C0.03,-0.033 0.043,-0.018 0.063,-0.009Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,322.7,385.587)">
|
||||
<path d="M0.158,0C0.18,0 0.198,-0.008 0.214,-0.023C0.229,-0.038 0.236,-0.057 0.236,-0.079L0.236,-0.67C0.236,-0.691 0.229,-0.71 0.214,-0.725C0.198,-0.741 0.18,-0.749 0.158,-0.749C0.136,-0.749 0.117,-0.741 0.102,-0.725C0.087,-0.71 0.079,-0.691 0.079,-0.67L0.079,-0.079C0.079,-0.057 0.087,-0.038 0.102,-0.023C0.117,-0.008 0.136,0 0.158,0Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,352.988,385.587)">
|
||||
<path d="M0.118,-0.158C0.097,-0.158 0.078,-0.15 0.063,-0.135C0.047,-0.119 0.04,-0.101 0.04,-0.079C0.04,-0.057 0.047,-0.038 0.063,-0.023C0.078,-0.008 0.097,0 0.118,0L0.463,0C0.525,0 0.579,-0.022 0.623,-0.067C0.667,-0.111 0.69,-0.164 0.69,-0.227C0.69,-0.289 0.667,-0.342 0.623,-0.387C0.579,-0.431 0.525,-0.453 0.463,-0.453L0.266,-0.453C0.247,-0.453 0.231,-0.46 0.218,-0.473C0.204,-0.487 0.197,-0.503 0.197,-0.522C0.197,-0.541 0.204,-0.557 0.218,-0.571C0.231,-0.584 0.247,-0.591 0.266,-0.591L0.611,-0.591C0.632,-0.591 0.651,-0.599 0.667,-0.614C0.682,-0.629 0.69,-0.648 0.69,-0.67C0.69,-0.691 0.682,-0.71 0.667,-0.725C0.651,-0.741 0.632,-0.749 0.611,-0.749L0.266,-0.749C0.204,-0.749 0.15,-0.726 0.106,-0.682C0.062,-0.638 0.04,-0.584 0.04,-0.522C0.04,-0.459 0.062,-0.406 0.106,-0.362C0.15,-0.318 0.204,-0.296 0.266,-0.296L0.463,-0.296C0.482,-0.296 0.498,-0.289 0.511,-0.275C0.525,-0.262 0.532,-0.246 0.532,-0.227C0.532,-0.207 0.525,-0.191 0.511,-0.178C0.498,-0.164 0.482,-0.158 0.463,-0.158L0.118,-0.158Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,422.924,385.587)">
|
||||
<path d="M0.413,0C0.517,0 0.605,-0.037 0.678,-0.11C0.693,-0.125 0.701,-0.143 0.701,-0.166C0.701,-0.187 0.693,-0.206 0.678,-0.221C0.663,-0.236 0.644,-0.244 0.623,-0.244C0.601,-0.244 0.582,-0.236 0.567,-0.221C0.524,-0.179 0.473,-0.158 0.413,-0.158C0.354,-0.158 0.303,-0.179 0.261,-0.221C0.218,-0.263 0.197,-0.314 0.197,-0.374C0.197,-0.434 0.218,-0.485 0.261,-0.528C0.303,-0.57 0.354,-0.591 0.413,-0.591C0.473,-0.591 0.524,-0.57 0.567,-0.528C0.582,-0.512 0.601,-0.504 0.623,-0.504C0.644,-0.504 0.663,-0.512 0.678,-0.528C0.693,-0.543 0.701,-0.561 0.701,-0.583C0.701,-0.605 0.693,-0.623 0.678,-0.639C0.605,-0.712 0.517,-0.749 0.413,-0.749C0.31,-0.749 0.222,-0.712 0.149,-0.639C0.076,-0.566 0.04,-0.478 0.04,-0.374C0.04,-0.271 0.076,-0.183 0.149,-0.11C0.222,-0.037 0.31,0 0.413,0Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,492.86,385.587)">
|
||||
<path d="M0.572,-0.472C0.572,-0.44 0.56,-0.412 0.537,-0.389C0.514,-0.366 0.486,-0.355 0.453,-0.355L0.236,-0.355L0.236,-0.591L0.453,-0.591C0.486,-0.591 0.514,-0.579 0.537,-0.556C0.56,-0.533 0.572,-0.505 0.572,-0.472ZM0.421,-0.197L0.595,-0.023C0.61,-0.008 0.628,0 0.65,0C0.672,0 0.69,-0.008 0.706,-0.023C0.721,-0.038 0.729,-0.057 0.729,-0.079C0.729,-0.101 0.721,-0.119 0.706,-0.135L0.601,-0.24C0.64,-0.265 0.671,-0.298 0.694,-0.338C0.717,-0.38 0.729,-0.425 0.729,-0.472C0.729,-0.549 0.702,-0.614 0.648,-0.668C0.594,-0.722 0.529,-0.749 0.453,-0.749L0.158,-0.749C0.136,-0.749 0.117,-0.741 0.102,-0.725C0.087,-0.71 0.079,-0.691 0.079,-0.67L0.079,-0.079C0.079,-0.057 0.087,-0.038 0.102,-0.023C0.117,-0.008 0.136,0 0.158,0C0.18,0 0.198,-0.008 0.214,-0.023C0.229,-0.038 0.236,-0.057 0.236,-0.079L0.236,-0.197L0.421,-0.197Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,566.588,385.587)">
|
||||
<path d="M0.158,0C0.18,0 0.198,-0.008 0.214,-0.023C0.229,-0.038 0.236,-0.057 0.236,-0.079L0.236,-0.67C0.236,-0.691 0.229,-0.71 0.214,-0.725C0.198,-0.741 0.18,-0.749 0.158,-0.749C0.136,-0.749 0.117,-0.741 0.102,-0.725C0.087,-0.71 0.079,-0.691 0.079,-0.67L0.079,-0.079C0.079,-0.057 0.087,-0.038 0.102,-0.023C0.117,-0.008 0.136,0 0.158,0Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,596.876,385.587)">
|
||||
<path d="M0.572,-0.472C0.572,-0.44 0.56,-0.412 0.537,-0.389C0.514,-0.366 0.486,-0.355 0.453,-0.355L0.236,-0.355L0.236,-0.591L0.453,-0.591C0.486,-0.591 0.514,-0.579 0.537,-0.556C0.56,-0.533 0.572,-0.505 0.572,-0.472ZM0.158,0C0.18,0 0.198,-0.008 0.214,-0.023C0.229,-0.038 0.236,-0.057 0.236,-0.079L0.236,-0.197L0.453,-0.197C0.529,-0.197 0.594,-0.224 0.648,-0.278C0.702,-0.332 0.729,-0.397 0.729,-0.472C0.729,-0.549 0.702,-0.614 0.648,-0.668C0.594,-0.722 0.529,-0.749 0.453,-0.749L0.158,-0.749C0.136,-0.749 0.117,-0.741 0.102,-0.725C0.087,-0.71 0.079,-0.691 0.079,-0.67L0.079,-0.079C0.079,-0.057 0.087,-0.038 0.102,-0.023C0.117,-0.008 0.136,0 0.158,0Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,670.604,385.587)">
|
||||
<path d="M0.266,-0.591L0.266,-0.079C0.266,-0.057 0.273,-0.038 0.289,-0.023C0.304,-0.008 0.323,0 0.344,0C0.366,0 0.385,-0.008 0.4,-0.023C0.415,-0.038 0.423,-0.057 0.423,-0.079L0.423,-0.591L0.591,-0.591C0.612,-0.591 0.631,-0.599 0.647,-0.614C0.662,-0.629 0.67,-0.648 0.67,-0.67C0.67,-0.691 0.662,-0.71 0.647,-0.725C0.631,-0.741 0.612,-0.749 0.591,-0.749L0.099,-0.749C0.077,-0.749 0.058,-0.741 0.043,-0.725C0.027,-0.71 0.02,-0.691 0.02,-0.67C0.02,-0.648 0.027,-0.629 0.043,-0.614C0.058,-0.599 0.077,-0.591 0.099,-0.591L0.266,-0.591Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(96,0,0,96,736.748,385.587)">
|
||||
<path d="M0.118,-0.75C0.097,-0.75 0.078,-0.742 0.063,-0.727C0.047,-0.712 0.04,-0.693 0.04,-0.671L0.04,-0.573C0.04,-0.551 0.047,-0.532 0.063,-0.517C0.078,-0.502 0.097,-0.494 0.118,-0.494C0.14,-0.494 0.159,-0.502 0.174,-0.517C0.189,-0.532 0.197,-0.551 0.197,-0.573L0.197,-0.671C0.197,-0.693 0.189,-0.712 0.174,-0.727C0.159,-0.742 0.14,-0.75 0.118,-0.75ZM0.355,-0.75C0.333,-0.75 0.314,-0.742 0.299,-0.727C0.284,-0.712 0.276,-0.693 0.276,-0.671L0.276,-0.573C0.276,-0.551 0.284,-0.532 0.299,-0.517C0.314,-0.502 0.333,-0.494 0.355,-0.494C0.377,-0.494 0.395,-0.502 0.41,-0.517C0.426,-0.532 0.434,-0.551 0.434,-0.573L0.434,-0.671C0.434,-0.693 0.426,-0.712 0.41,-0.727C0.395,-0.742 0.377,-0.75 0.355,-0.75Z" style="fill:rgb(129,201,196);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 10 KiB |
@@ -227,7 +227,8 @@ $(function($) {
|
||||
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct')
|
||||
var ats_cm = $('.selectedToot .rep-btn').attr('data-men')
|
||||
var mode = $('.selectedToot .rep-btn').attr('data-visen')
|
||||
re(id, ats_cm, acct_id, mode)
|
||||
var cwTxt = $('#cw-text').val()
|
||||
re(id, ats_cm, acct_id, mode, cwTxt)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
@@ -10,7 +10,7 @@ $(document).ready(function () {
|
||||
belowOrigin: false, // Displays dropdown below the button
|
||||
alignment: 'left', // Displays dropdown with edge aligned to the left of button
|
||||
stopPropagation: false
|
||||
});
|
||||
})
|
||||
$('.dropdown-trigger').dropdown({
|
||||
inDuration: 300,
|
||||
outDuration: 225,
|
||||
@@ -21,9 +21,9 @@ $(document).ready(function () {
|
||||
alignment: 'left', // Displays dropdown with edge aligned to the left of button
|
||||
stopPropagation: false // Stops event propagation
|
||||
}
|
||||
);
|
||||
$('.collapsible').collapsible();
|
||||
)
|
||||
$('.collapsible').collapsible()
|
||||
$('#videomodal').modal({
|
||||
onCloseEnd: stopVideo
|
||||
});
|
||||
});
|
||||
})
|
||||
})
|
@@ -17,26 +17,26 @@
|
||||
(function (factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['jquery'], factory);
|
||||
define(['jquery'], factory)
|
||||
} else if (typeof module === 'object' && typeof module.exports === 'object') {
|
||||
factory(require('jquery'));
|
||||
factory(require('jquery'))
|
||||
} else {
|
||||
// Browser globals
|
||||
factory(jQuery);
|
||||
factory(jQuery)
|
||||
}
|
||||
}(function ($) {
|
||||
$.timeago = function (timestamp) {
|
||||
if (timestamp instanceof Date) {
|
||||
return inWords(timestamp);
|
||||
return inWords(timestamp)
|
||||
} else if (typeof timestamp === "string") {
|
||||
return inWords($.timeago.parse(timestamp));
|
||||
return inWords($.timeago.parse(timestamp))
|
||||
} else if (typeof timestamp === "number") {
|
||||
return inWords(new Date(timestamp));
|
||||
return inWords(new Date(timestamp))
|
||||
} else {
|
||||
return inWords($.timeago.datetime(timestamp));
|
||||
return inWords($.timeago.datetime(timestamp))
|
||||
}
|
||||
};
|
||||
var $t = $.timeago;
|
||||
}
|
||||
var $t = $.timeago
|
||||
$.extend($.timeago, {
|
||||
settings: {
|
||||
refreshMillis: 60000,
|
||||
@@ -69,33 +69,33 @@
|
||||
|
||||
inWords: function (distanceMillis) {
|
||||
if (!this.settings.allowPast && !this.settings.allowFuture) {
|
||||
throw 'timeago allowPast and allowFuture settings can not both be set to false.';
|
||||
throw 'timeago allowPast and allowFuture settings can not both be set to false.'
|
||||
}
|
||||
|
||||
var $l = this.settings.strings;
|
||||
var prefix = $l.prefixAgo;
|
||||
var suffix = $l.suffixAgo;
|
||||
var $l = this.settings.strings
|
||||
var prefix = $l.prefixAgo
|
||||
var suffix = $l.suffixAgo
|
||||
if (this.settings.allowFuture) {
|
||||
if (distanceMillis < 0) {
|
||||
prefix = $l.prefixFromNow;
|
||||
suffix = $l.suffixFromNow;
|
||||
prefix = $l.prefixFromNow
|
||||
suffix = $l.suffixFromNow
|
||||
}
|
||||
}
|
||||
|
||||
if (!this.settings.allowPast && distanceMillis >= 0) {
|
||||
return this.settings.strings.inPast;
|
||||
return this.settings.strings.inPast
|
||||
}
|
||||
|
||||
var seconds = Math.abs(distanceMillis) / 1000;
|
||||
var minutes = seconds / 60;
|
||||
var hours = minutes / 60;
|
||||
var days = hours / 24;
|
||||
var years = days / 365;
|
||||
var seconds = Math.abs(distanceMillis) / 1000
|
||||
var minutes = seconds / 60
|
||||
var hours = minutes / 60
|
||||
var days = hours / 24
|
||||
var years = days / 365
|
||||
|
||||
function substitute(stringOrFunction, number) {
|
||||
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;
|
||||
var value = ($l.numbers && $l.numbers[number]) || number;
|
||||
return string.replace(/%d/i, value);
|
||||
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction
|
||||
var value = ($l.numbers && $l.numbers[number]) || number
|
||||
return string.replace(/%d/i, value)
|
||||
}
|
||||
|
||||
var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
|
||||
@@ -108,124 +108,124 @@
|
||||
days < 45 && substitute($l.month, 1) ||
|
||||
days < 365 && substitute($l.months, Math.round(days / 30)) ||
|
||||
years < 1.5 && substitute($l.year, 1) ||
|
||||
substitute($l.years, Math.round(years));
|
||||
substitute($l.years, Math.round(years))
|
||||
|
||||
var separator = $l.wordSeparator || "";
|
||||
if ($l.wordSeparator === undefined) { separator = " "; }
|
||||
return $.trim([prefix, words, suffix].join(separator));
|
||||
var separator = $l.wordSeparator || ""
|
||||
if ($l.wordSeparator === undefined) { separator = " " }
|
||||
return $.trim([prefix, words, suffix].join(separator))
|
||||
},
|
||||
|
||||
parse: function (iso8601) {
|
||||
var s = $.trim(iso8601);
|
||||
s = s.replace(/\.\d+/, ""); // remove milliseconds
|
||||
s = s.replace(/-/, "/").replace(/-/, "/");
|
||||
s = s.replace(/T/, " ").replace(/Z/, " UTC");
|
||||
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/, " $1$2"); // -04:00 -> -0400
|
||||
s = s.replace(/([\+\-]\d\d)$/, " $100"); // +09 -> +0900
|
||||
return new Date(s);
|
||||
var s = $.trim(iso8601)
|
||||
s = s.replace(/\.\d+/, "") // remove milliseconds
|
||||
s = s.replace(/-/, "/").replace(/-/, "/")
|
||||
s = s.replace(/T/, " ").replace(/Z/, " UTC")
|
||||
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/, " $1$2") // -04:00 -> -0400
|
||||
s = s.replace(/([\+\-]\d\d)$/, " $100") // +09 -> +0900
|
||||
return new Date(s)
|
||||
},
|
||||
datetime: function (elem) {
|
||||
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title");
|
||||
return $t.parse(iso8601);
|
||||
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title")
|
||||
return $t.parse(iso8601)
|
||||
},
|
||||
isTime: function (elem) {
|
||||
// jQuery's `is()` doesn't play well with HTML5 in IE
|
||||
return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time");
|
||||
return $(elem).get(0).tagName.toLowerCase() === "time" // $(elem).is("time");
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
// functions that can be called via $(el).timeago('action')
|
||||
// init is default when no action is given
|
||||
// functions are called with context of a single element
|
||||
var functions = {
|
||||
init: function () {
|
||||
functions.dispose.call(this);
|
||||
var refresh_el = $.proxy(refresh, this);
|
||||
refresh_el();
|
||||
var $s = $t.settings;
|
||||
functions.dispose.call(this)
|
||||
var refresh_el = $.proxy(refresh, this)
|
||||
refresh_el()
|
||||
var $s = $t.settings
|
||||
if ($s.refreshMillis > 0) {
|
||||
this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);
|
||||
this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis)
|
||||
}
|
||||
},
|
||||
update: function (timestamp) {
|
||||
var date = (timestamp instanceof Date) ? timestamp : $t.parse(timestamp);
|
||||
$(this).data('timeago', { datetime: date });
|
||||
var date = (timestamp instanceof Date) ? timestamp : $t.parse(timestamp)
|
||||
$(this).data('timeago', { datetime: date })
|
||||
if ($t.settings.localeTitle) {
|
||||
$(this).attr("title", date.toLocaleString());
|
||||
$(this).attr("title", date.toLocaleString())
|
||||
}
|
||||
refresh.apply(this);
|
||||
refresh.apply(this)
|
||||
},
|
||||
updateFromDOM: function () {
|
||||
$(this).data('timeago', { datetime: $t.parse($t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title")) });
|
||||
refresh.apply(this);
|
||||
$(this).data('timeago', { datetime: $t.parse($t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title")) })
|
||||
refresh.apply(this)
|
||||
},
|
||||
dispose: function () {
|
||||
if (this._timeagoInterval) {
|
||||
window.clearInterval(this._timeagoInterval);
|
||||
this._timeagoInterval = null;
|
||||
window.clearInterval(this._timeagoInterval)
|
||||
this._timeagoInterval = null
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
$.fn.timeago = function (action, options) {
|
||||
var fn = action ? functions[action] : functions.init;
|
||||
var fn = action ? functions[action] : functions.init
|
||||
if (!fn) {
|
||||
throw new Error("Unknown function name '" + action + "' for timeago");
|
||||
throw new Error("Unknown function name '" + action + "' for timeago")
|
||||
}
|
||||
// each over objects here and call the requested function
|
||||
this.each(function () {
|
||||
fn.call(this, options);
|
||||
});
|
||||
return this;
|
||||
};
|
||||
fn.call(this, options)
|
||||
})
|
||||
return this
|
||||
}
|
||||
|
||||
function refresh() {
|
||||
var $s = $t.settings;
|
||||
var $s = $t.settings
|
||||
|
||||
//check if it's still visible
|
||||
if ($s.autoDispose && !$.contains(document.documentElement, this)) {
|
||||
//stop if it has been removed
|
||||
$(this).timeago("dispose");
|
||||
return this;
|
||||
$(this).timeago("dispose")
|
||||
return this
|
||||
}
|
||||
|
||||
var data = prepareData(this);
|
||||
var data = prepareData(this)
|
||||
|
||||
if (!isNaN(data.datetime)) {
|
||||
if ($s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
|
||||
$(this).text(inWords(data.datetime));
|
||||
$(this).text(inWords(data.datetime))
|
||||
} else {
|
||||
if ($(this).attr('title').length > 0) {
|
||||
$(this).text($(this).attr('title'));
|
||||
$(this).text($(this).attr('title'))
|
||||
}
|
||||
}
|
||||
}
|
||||
return this;
|
||||
return this
|
||||
}
|
||||
|
||||
function prepareData(element) {
|
||||
element = $(element);
|
||||
element = $(element)
|
||||
if (!element.data("timeago")) {
|
||||
element.data("timeago", { datetime: $t.datetime(element) });
|
||||
var text = $.trim(element.text());
|
||||
element.data("timeago", { datetime: $t.datetime(element) })
|
||||
var text = $.trim(element.text())
|
||||
if ($t.settings.localeTitle) {
|
||||
element.attr("title", element.data('timeago').datetime.toLocaleString());
|
||||
element.attr("title", element.data('timeago').datetime.toLocaleString())
|
||||
} else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) {
|
||||
element.attr("title", text);
|
||||
element.attr("title", text)
|
||||
}
|
||||
}
|
||||
return element.data("timeago");
|
||||
return element.data("timeago")
|
||||
}
|
||||
|
||||
function inWords(date) {
|
||||
return $t.inWords(distance(date));
|
||||
return $t.inWords(distance(date))
|
||||
}
|
||||
|
||||
function distance(date) {
|
||||
return (new Date().getTime() - date.getTime());
|
||||
return (new Date().getTime() - date.getTime())
|
||||
}
|
||||
|
||||
// fix for IE6 suckage
|
||||
document.createElement("abbr");
|
||||
document.createElement("time");
|
||||
}));
|
||||
document.createElement("abbr")
|
||||
document.createElement("time")
|
||||
}))
|
@@ -1,5 +1,6 @@
|
||||
//バージョンチェッカー
|
||||
function verck(ver, jp) {
|
||||
if (store) return false
|
||||
console.log('%c Welcome😊 ' + ver, 'color: red;font-size:200%;')
|
||||
$('body').addClass(localStorage.getItem('platform'))
|
||||
var date = new Date()
|
||||
@@ -72,9 +73,9 @@ function verck(ver, jp) {
|
||||
}
|
||||
var platform = localStorage.getItem('platform')
|
||||
console.log('Your platform:' + platform)
|
||||
if (!localStorage.getItem('winstore') && !pwa) {
|
||||
$('#start').css('display', 'flex')
|
||||
}
|
||||
//if (!localStorage.getItem('winstore') && !pwa) {
|
||||
// $('#start').css('display', 'flex')
|
||||
//}
|
||||
if (
|
||||
localStorage.getItem('winstore') == 'brewcask' ||
|
||||
localStorage.getItem('winstore') == 'snapcraft' ||
|
||||
@@ -327,82 +328,8 @@ function closeSupport() {
|
||||
}
|
||||
)
|
||||
}
|
||||
function storeDialog(platform, ver) {
|
||||
if($('body').hasClass('accessibility')) return false
|
||||
if (platform == 'win32') {
|
||||
var mes = lang.lang_version_platform
|
||||
} else if (platform == 'linux') {
|
||||
var mes = lang.lang_version_platform_linux
|
||||
} else if (platform == 'darwin') {
|
||||
var mes = lang.lang_version_platform_mac
|
||||
} else {
|
||||
var mes = false
|
||||
}
|
||||
if (mes) {
|
||||
Swal.fire({
|
||||
title: 'Select your platform',
|
||||
text: mes,
|
||||
type: 'info',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#3085d6',
|
||||
confirmButtonText: lang.lang_no,
|
||||
cancelButtonText: lang.lang_yesno
|
||||
}).then(result => {
|
||||
//逆にしてる
|
||||
if (!result.value) {
|
||||
localStorage.setItem('winstore', 'winstore')
|
||||
} else {
|
||||
localStorage.setItem('winstore', 'localinstall')
|
||||
}
|
||||
localStorage.setItem('ver', ver)
|
||||
showVer = true
|
||||
if(pwa) return false
|
||||
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
|
||||
$(document).ready(function() {
|
||||
$('#releasenote').modal('open')
|
||||
verp = ver.replace('(', '')
|
||||
verp = verp.replace('.', '-')
|
||||
verp = verp.replace('.', '-')
|
||||
verp = verp.replace('[', '-')
|
||||
verp = verp.replace(']', '')
|
||||
verp = verp.replace(')', '')
|
||||
verp = verp.replace(' ', '_')
|
||||
console.log('%c ' + verp, 'color: red;font-size:200%;')
|
||||
if (lang.language == 'ja') {
|
||||
$('#release-' + verp).show()
|
||||
} else {
|
||||
$('#release-en').show()
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
localStorage.setItem('ver', ver)
|
||||
showVer = true
|
||||
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
|
||||
$(document).ready(function() {
|
||||
if(pwa) return false
|
||||
$('#releasenote').modal('open')
|
||||
verp = ver.replace('(', '')
|
||||
verp = verp.replace('.', '-')
|
||||
verp = verp.replace('.', '-')
|
||||
verp = verp.replace('[', '-')
|
||||
verp = verp.replace(']', '')
|
||||
verp = verp.replace(')', '')
|
||||
verp = verp.replace(' ', '_')
|
||||
console.log('%c ' + verp, 'color: red;font-size:200%;')
|
||||
if (lang.language == 'ja') {
|
||||
$('#release-' + verp).show()
|
||||
} else {
|
||||
$('#release-en').show()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
function closeStart() {
|
||||
$('#start').css('display', 'none')
|
||||
var platform = localStorage.getItem('platform')
|
||||
var ver = localStorage.getItem('ver')
|
||||
storeDialog(platform, ver)
|
||||
}
|
||||
|
@@ -92,7 +92,7 @@ var activity=[
|
||||
{shortcode:"man-rowing-boat",css:"95.8333% 14.5833%"},
|
||||
{shortcode:"man-biking",css:"95.8333% 39.5833%"},
|
||||
{shortcode:"man-mountain-biking",css:"95.8333% 64.5833%"}
|
||||
];
|
||||
]
|
||||
var flag=[
|
||||
{shortcode:"checkered_flag",css:"16.6667% 58.3333%"},
|
||||
{shortcode:"crossed_flags",css:"14.5833% 60.4167%"},
|
||||
@@ -356,7 +356,7 @@ var flag=[
|
||||
{shortcode:"rainbow-flag",css:"83.3333% 100%"},
|
||||
{shortcode:"triangular_flag_on_post",css:"54.1667% 6.25%"},
|
||||
{shortcode:"waving_black_flag",css:"20.8333% 29.1667%"},
|
||||
{shortcode:"waving_white_flag",css:"20.8333% 27.0833%"}];
|
||||
{shortcode:"waving_white_flag",css:"20.8333% 27.0833%"}]
|
||||
var food=[
|
||||
{shortcode:"green_apple",css:"12.5% 25%"},
|
||||
{shortcode:"apple",css:"12.5% 22.9167%"},
|
||||
@@ -444,7 +444,7 @@ var food=[
|
||||
{shortcode:"spoon",css:"62.5% 14.5833%"},
|
||||
{shortcode:"fork_and_knife",css:"14.5833% 0%"},
|
||||
{shortcode:"knife_fork_plate",css:"14.5833% 18.75%"}
|
||||
];
|
||||
]
|
||||
var nature=[
|
||||
{shortcode:"dog",css:"22.9167% 62.5%"},
|
||||
{shortcode:"cat",css:"22.9167% 52.0833%"},
|
||||
@@ -605,7 +605,7 @@ var nature=[
|
||||
{shortcode:"droplet",css:"35.4167% 39.5833%"},
|
||||
{shortcode:"sweat_drops",css:"35.4167% 37.5%"},
|
||||
{shortcode:"umbrella_with_rain_drops",css:"0% 100%"}
|
||||
];
|
||||
]
|
||||
var object=[
|
||||
{shortcode:"watch",css:"0% 29.1667%"},
|
||||
{shortcode:"iphone",css:"39.5833% 0%"},
|
||||
@@ -780,7 +780,7 @@ var object=[
|
||||
{shortcode:"closed_lock_with_key",css:"39.5833% 62.5%"},
|
||||
{shortcode:"lock",css:"39.5833% 66.6667%"},
|
||||
{shortcode:"unlock",css:"39.5833% 68.75%"}
|
||||
];
|
||||
]
|
||||
var people=[
|
||||
{shortcode:"grinning",css:"45.8333% 68.75%"},
|
||||
{shortcode:"smiley",css:"45.8333% 75%"},
|
||||
@@ -1096,7 +1096,7 @@ var people=[
|
||||
{shortcode:"woman-raising-hand",css:"93.75% 29.1667%"},
|
||||
{shortcode:"woman-frowning",css:"93.75% 54.1667%"},
|
||||
{shortcode:"woman-pouting",css:"93.75% 79.1667%"}
|
||||
];
|
||||
]
|
||||
var place=[
|
||||
{shortcode:"car",css:"52.0833% 60.4167%"},
|
||||
{shortcode:"taxi",css:"52.0833% 56.25%"},
|
||||
@@ -1217,7 +1217,7 @@ var place=[
|
||||
{shortcode:"milky_way",css:"8.33333% 93.75%"},
|
||||
{shortcode:"bridge_at_night",css:"8.33333% 87.5%"},
|
||||
{shortcode:"foggy",css:"8.33333% 70.8333%"}
|
||||
];
|
||||
]
|
||||
var symbol=[
|
||||
{shortcode:"heart",css:"6.25% 62.5%"},
|
||||
{shortcode:"yellow_heart",css:"35.4167% 14.5833%"},
|
||||
@@ -1492,7 +1492,7 @@ var symbol=[
|
||||
{shortcode:"female_sign",css:"2.08333% 37.5%"},
|
||||
{shortcode:"male_sign",css:"2.08333% 39.5833%"},
|
||||
{shortcode:"staff_of_aesculapius",css:"2.08333% 87.5%"}
|
||||
];
|
||||
]
|
||||
var faicons=[
|
||||
"fa-500px",
|
||||
"fa-address-book",
|
||||
|
@@ -83,6 +83,6 @@ var idata = {
|
||||
"nitiasa.com_quote":"enabled",
|
||||
"biwakodon.com_quote":"enabled",
|
||||
"comm.cx_quote":"enabled"
|
||||
};
|
||||
}
|
||||
|
||||
localStorage.setItem("instance", JSON.stringify(idata));
|
||||
localStorage.setItem("instance", JSON.stringify(idata))
|
||||
|
@@ -47,8 +47,15 @@ function ck() {
|
||||
multiSelector(false)
|
||||
verck(ver, jp)
|
||||
$('.stw').show()
|
||||
if (localStorage.getItem('tips')) {
|
||||
tips(localStorage.getItem('tips'))
|
||||
let tipsName = localStorage.getItem('tips')
|
||||
const matchCID = /custom:([abcdef0-9]{8}-[abcdef0-9]{4}-4[abcdef0-9]{3}-[abcdef0-9]{4}-[abcdef0-9]{12})/
|
||||
if (tipsName) {
|
||||
if(tipsName.match(matchCID)) {
|
||||
const id = tipsName.match(matchCID)[1]
|
||||
tips('custom', id)
|
||||
} else {
|
||||
tips(tipsName)
|
||||
}
|
||||
}
|
||||
$('#something-wrong img').attr('src', '../../img/thinking.svg')
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
//ログアウトします
|
||||
function logout() {
|
||||
localStorage.removeItem("acct_" + acct_id + "_at");
|
||||
localStorage.removeItem("domain_" + acct_id);
|
||||
location.href = "index.html";
|
||||
todc();
|
||||
localStorage.removeItem("acct_" + acct_id + "_at")
|
||||
localStorage.removeItem("domain_" + acct_id)
|
||||
location.href = "index.html"
|
||||
todc()
|
||||
}
|
@@ -130,17 +130,11 @@ function playSound() {
|
||||
volumeControl.gain.value = vol
|
||||
source.start(0)
|
||||
soundFile = source
|
||||
|
||||
function newFunction() {
|
||||
var source
|
||||
return source
|
||||
}
|
||||
}
|
||||
function nano() {
|
||||
postMessage(['nano', null], '*')
|
||||
}
|
||||
onmessage = function(e) {
|
||||
console.log(e)
|
||||
if (e.data[0] == 'details') {
|
||||
details(e.data[1][0], e.data[1][1])
|
||||
} else if (e.data[0] == 'udg') {
|
||||
@@ -176,7 +170,7 @@ onmessage = function(e) {
|
||||
} else if (e.data[0] == 'npCore') {
|
||||
npCore(e.data[1])
|
||||
} else if (e.data[0] == 'renderMem') {
|
||||
renderMem(e.data[1][0], e.data[1][1], e.data[1][2])
|
||||
renderMem(e.data[1][0], e.data[1][1], e.data[1][2], e.data[1][3], e.data[1][4])
|
||||
} else if (e.data[0] == 'updateProg') {
|
||||
updateProg(e.data[1])
|
||||
} else if (e.data[0] == 'updateMess') {
|
||||
@@ -221,4 +215,18 @@ if(pwa) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('html').addClass(localStorage.getItem('scroll') ? localStorage.getItem('scroll') : '')
|
||||
const connection = function (event) {
|
||||
console.log(navigator.onLine, 'network state')
|
||||
if(!navigator.onLine) {
|
||||
$('#re-online').addClass('hide')
|
||||
$('#offline').removeClass('hide')
|
||||
} else if(!$('#offline').hasClass('hide')) {
|
||||
$('#offline').addClass('hide')
|
||||
$('#re-online').removeClass('hide')
|
||||
}
|
||||
}
|
||||
window.onoffline = connection
|
||||
window.ononline = connection
|
||||
|
@@ -1,11 +1,17 @@
|
||||
$.strip_tags = function(str, allowed) {
|
||||
window.onload = function () {
|
||||
console.log('loaded')
|
||||
initPostbox()
|
||||
connection()
|
||||
initPlugin(plugins)
|
||||
}
|
||||
$.strip_tags = function (str, allowed) {
|
||||
if (!str) {
|
||||
return ''
|
||||
}
|
||||
allowed = (((allowed || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('')
|
||||
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi,
|
||||
commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi
|
||||
return str.replace(commentsAndPhpTags, '').replace(tags, function($0, $1) {
|
||||
return str.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
|
||||
return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : ''
|
||||
})
|
||||
}
|
||||
@@ -88,17 +94,18 @@ function formattimeutc(date) {
|
||||
}
|
||||
postMessage(['sendSinmpleIpc', 'custom-css-request'], '*')
|
||||
function makeCID() {
|
||||
return (
|
||||
randomStr(8) +
|
||||
'-' +
|
||||
randomStr(4) +
|
||||
'-' +
|
||||
randomStr(4) +
|
||||
'-' +
|
||||
randomStr(4) +
|
||||
'-' +
|
||||
randomStr(12)
|
||||
)
|
||||
let chars = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("")
|
||||
for (let i = 0, len = chars.length; i < len; i++) {
|
||||
switch (chars[i]) {
|
||||
case "x":
|
||||
chars[i] = Math.floor(Math.random() * 16).toString(16)
|
||||
break
|
||||
case "y":
|
||||
chars[i] = (Math.floor(Math.random() * 4) + 8).toString(16)
|
||||
break
|
||||
}
|
||||
}
|
||||
return chars.join("")
|
||||
}
|
||||
function randomStr(l) {
|
||||
// 生成する文字列に含める文字セット
|
||||
@@ -147,15 +154,15 @@ function rgbToHex(color) {
|
||||
console.error(color + ':第1引数はRGB形式で入力')
|
||||
}
|
||||
/*マルチバイト用切り出し*/
|
||||
$.isSurrogatePear = function(upper, lower) {
|
||||
$.isSurrogatePear = function (upper, lower) {
|
||||
return 0xd800 <= upper && upper <= 0xdbff && 0xdc00 <= lower && lower <= 0xdfff
|
||||
}
|
||||
$.mb_strlen = function(str) {
|
||||
$.mb_strlen = function (str) {
|
||||
var splitter = new GraphemeSplitter()
|
||||
var arr = splitter.splitGraphemes(str)
|
||||
return arr.length
|
||||
}
|
||||
$.mb_substr = function(str, begin, end) {
|
||||
$.mb_substr = function (str, begin, end) {
|
||||
//配列にする
|
||||
var splitter = new GraphemeSplitter()
|
||||
var arr = splitter.splitGraphemes(str)
|
||||
@@ -175,7 +182,7 @@ function object_array_sort(data, key, order, fn) {
|
||||
num_a = 1
|
||||
num_b = -1
|
||||
}
|
||||
data = data.sort(function(a, b) {
|
||||
data = data.sort(function (a, b) {
|
||||
var x = a[key]
|
||||
var y = b[key]
|
||||
if (x > y) return num_a
|
||||
|
218
app/js/platform/plugin.js
Normal file
218
app/js/platform/plugin.js
Normal file
@@ -0,0 +1,218 @@
|
||||
|
||||
var plugins = getPlugin()
|
||||
function getPlugin() {
|
||||
const json = localStorage.getItem('plugins')
|
||||
let ret = {
|
||||
buttonOnPostbox: [],
|
||||
buttonOnToot: [],
|
||||
buttonOnBottom: [],
|
||||
init: [],
|
||||
tips: [],
|
||||
none: []
|
||||
}
|
||||
if (!json) return ret
|
||||
const plugins = JSON.parse(json)
|
||||
for (let plugin of plugins) {
|
||||
const meta = getMeta(plugin.content)
|
||||
if (!meta) continue
|
||||
const type = meta.event
|
||||
ret[type] ? ret[type].push(plugin) : ret[type] = [plugin]
|
||||
if (type === 'buttonOnToot') continue
|
||||
if (type === 'tips') {
|
||||
if (meta.interval) {
|
||||
const matchCID = /custom:([abcdef0-9]{8}-[abcdef0-9]{4}-4[abcdef0-9]{3}-[abcdef0-9]{4}-[abcdef0-9]{12})/
|
||||
setInterval(function () {
|
||||
const tipsName = localStorage.getItem('tips')
|
||||
if (tipsName.match(matchCID)) {
|
||||
const id = tipsName.match(matchCID)[1]
|
||||
if (id === plugin.id) if (location.href.split('/').pop() === 'index.html') execPlugin(id, 'tips', null)
|
||||
}
|
||||
|
||||
}, meta.interval)
|
||||
}
|
||||
continue
|
||||
}
|
||||
const shortcut = meta.shortcut
|
||||
$(window).keydown(function (e) {
|
||||
if (e.keyCode === shortcut && e.altKey) execPlugin(plugin.id, type)
|
||||
})
|
||||
}
|
||||
return ret
|
||||
}
|
||||
function initPlugin() {
|
||||
asCommon['TheDesk:dialog'] = asValue.FN_NATIVE((z) => {
|
||||
Swal.fire({
|
||||
title: z[0].value,
|
||||
icon: z[2] ? z[2].value : 'info',
|
||||
text: z[1] ? z[1].value : ''
|
||||
})
|
||||
})
|
||||
asCommon['TheDesk:confirm'] = asValue.FN_NATIVE(async (z) => {
|
||||
const alert = await Swal.fire({
|
||||
title: z[0].value,
|
||||
text: z[1].value,
|
||||
icon: z[2] ? z[2].value : 'info',
|
||||
showCancelButton: true
|
||||
})
|
||||
return asUtil.jsToVal(!!(alert.value && alert.value === true))
|
||||
})
|
||||
asCommon['TheDesk:css'] = asValue.FN_NATIVE((z) => {
|
||||
$(escapeHTML(z[0].value)).css(escapeHTML(z[1].value), escapeHTML(z[2].value))
|
||||
})
|
||||
asCommon['TheDesk:openLink'] = asValue.FN_NATIVE((z) => {
|
||||
postMessage(['openUrl', z[0].value], '*')
|
||||
})
|
||||
|
||||
const { buttonOnPostbox, init, buttonOnBottom, tips } = plugins
|
||||
for (let target of buttonOnPostbox) {
|
||||
const meta = getMeta(target.content)
|
||||
$('#dropdown2').append(`<li><a onclick="execPlugin('${target.id}','buttonOnPostbox', null);">${escapeHTML(meta.name)}</a></li>`)
|
||||
}
|
||||
for (let target of buttonOnBottom) {
|
||||
const meta = getMeta(target.content)
|
||||
$('#group .btnsgroup').append(`<a onclick="execPlugin('${target.id}','buttonOnBottom', null);" class="nex waves-effect pluginNex"><span title="${escapeHTML(meta.name)}">${escapeHTML(meta.name).substr(0, 1)}</span></a>`)
|
||||
}
|
||||
for (let target of tips) {
|
||||
const meta = getMeta(target.content)
|
||||
$('#tips-menu .btnsgroup').append(`<a onclick="tips('custom', '${target.id}')" class="nex waves-effect pluginNex"><span title="${escapeHTML(meta.name)}">${escapeHTML(meta.name).substr(0, 1)}</span></a>`)
|
||||
}
|
||||
for (let target of init) {
|
||||
const as = new AiScript(asCommon)
|
||||
const meta = getMeta(target.content)
|
||||
M.toast({ html: `${escapeHTML(meta.name)}を実行しました`, displayLength: 1000 })
|
||||
if (target) as.exec(asParse(target.content))
|
||||
}
|
||||
}
|
||||
function getMeta(plugin) {
|
||||
try {
|
||||
return AiScript.collectMetadata(asParse(plugin)).get(null)
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
return null
|
||||
}
|
||||
}
|
||||
async function execPlugin(id, source, args) {
|
||||
const coh = plugins[source]
|
||||
let exe = null
|
||||
for (let plugin of coh) {
|
||||
if (plugin.id == id) {
|
||||
exe = plugin.content
|
||||
break
|
||||
}
|
||||
}
|
||||
const common = _.cloneDeep(asCommon)
|
||||
if (source == 'buttonOnToot') {
|
||||
common.DATA = args
|
||||
const domain = localStorage.getItem(`domain_${args.acct_id}`)
|
||||
const at = localStorage.getItem(`acct_${args.acct_id}_at`)
|
||||
const start = `https://${domain}/api/v1/statuses/${args.id}`
|
||||
const promise = await fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
Authorization:
|
||||
`Bearer ${at}`
|
||||
}
|
||||
})
|
||||
let json = await promise.json()
|
||||
common.TOOT = asUtil.jsToVal(json)
|
||||
common['TheDesk:changeText'] = asValue.FN_NATIVE((z) => {
|
||||
const v = sanitizeHtml(z[0].value,
|
||||
{
|
||||
allowedTags: ['p', 'br', 'a', 'span'],
|
||||
allowedAttributes: {
|
||||
'a': ['href', 'class', 'rel', 'target'],
|
||||
'span': [],
|
||||
'p': [],
|
||||
'br': [],
|
||||
}
|
||||
}).replace(/href="javascript:/, 'href="').replace(/href='javascript:/, 'href="').replace(/href=javascript:/, 'href="')
|
||||
json.content = v
|
||||
if (getMeta(exe).dangerHtml) $(`[unique-id=${args.id}] .toot`).html(parse([json], null, null, null, null, null, null, true))
|
||||
})
|
||||
} else if (source == 'buttonOnPostbox') {
|
||||
const postDt = post(null, false, true)
|
||||
common.POST = asUtil.jsToVal(postDt)
|
||||
common.ACCT_ID = asUtil.jsToVal(postDt.TheDeskAcctId)
|
||||
common['TheDesk:postText'] = asValue.FN_NATIVE((z) => {
|
||||
$('#textarea').val(z[0].value)
|
||||
})
|
||||
common['TheDesk:postCW'] = asValue.FN_NATIVE((z) => {
|
||||
if (z[1]) $('#cw-text').val(z[1].value)
|
||||
cw(z[0] ? z[0].value : false)
|
||||
})
|
||||
common['TheDesk:postNSFW'] = asValue.FN_NATIVE((z) => {
|
||||
nsfw(z[0] ? z[0].value : false)
|
||||
})
|
||||
common['TheDesk:postVis'] = asValue.FN_NATIVE((z) => {
|
||||
vis(z[0].value)
|
||||
})
|
||||
common['TheDesk:postClearbox'] = asValue.FN_NATIVE(() => {
|
||||
clear()
|
||||
})
|
||||
common['TheDesk:postExec'] = asValue.FN_NATIVE(() => {
|
||||
if (getMeta(exe).apiPost) post()
|
||||
})
|
||||
} else if (source == 'tips') {
|
||||
common['TheDesk:refreshTipsView'] = asValue.FN_NATIVE((z) => {
|
||||
const v = sanitizeHtml(z[0].value,
|
||||
{
|
||||
allowedTags: ['p', 'br', 'a', 'span', 'img'],
|
||||
allowedAttributes: {
|
||||
'a': ['href', 'class', 'rel', 'target', 'style'],
|
||||
'span': ['style'],
|
||||
'p': ['style'],
|
||||
'br': [],
|
||||
'img': ['src', 'style']
|
||||
}
|
||||
}).replace(/href="javascript:/, 'href="').replace(/href='javascript:/, 'href="').replace(/href=javascript:/, 'href="')
|
||||
if (getMeta(exe).dangerHtml) $('#tips-text').html(v)
|
||||
})
|
||||
}
|
||||
common['TheDesk:console'] = asValue.FN_NATIVE((z) => {
|
||||
console.log(z[0].value)
|
||||
})
|
||||
common['TheDesk:api'] = asValue.FN_NATIVE(async (z) => {
|
||||
try {
|
||||
if (!getMeta(exe).apiGet && z[0].value == "GET") return asUtil.jsToVal(null)
|
||||
if (!getMeta(exe).apiPost && (z[0].value == "POST" || z[0].value == "DELETE" || z[0].value == "PUT")) return asUtil.jsToVal(null)
|
||||
const domain = localStorage.getItem(`domain_${z[3].value}`)
|
||||
const at = localStorage.getItem(`acct_${z[3].value}_at`)
|
||||
const start = `https://${domain}/api/${z[1].value}`
|
||||
const q = {
|
||||
method: z[0].value,
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
Authorization:
|
||||
`Bearer ${at}`
|
||||
}
|
||||
}
|
||||
if (z[2]) q.body = z[2].value
|
||||
const promise = await fetch(start, q)
|
||||
const json = await promise.json()
|
||||
return asUtil.jsToVal(json)
|
||||
} catch (e) {
|
||||
return asUtil.jsToVal(null)
|
||||
}
|
||||
|
||||
})
|
||||
common['TheDesk:getRequest'] = asValue.FN_NATIVE(async (z) => {
|
||||
try {
|
||||
if (!getMeta(exe).apiGet) return asUtil.jsToVal(null)
|
||||
const start = `https://${z[0].value}`
|
||||
const promise = await fetch(start)
|
||||
let json = null
|
||||
if (z[1].value) {
|
||||
json = await promise.json()
|
||||
} else {
|
||||
json = await promise.text()
|
||||
}
|
||||
return asUtil.jsToVal(json)
|
||||
} catch (e) {
|
||||
return asUtil.jsToVal(null)
|
||||
}
|
||||
|
||||
})
|
||||
const as = new AiScript(common)
|
||||
if (exe) as.exec(asParse(exe))
|
||||
}
|
@@ -2,25 +2,9 @@ var electron = require('electron')
|
||||
const shell = electron.shell
|
||||
var ipc = electron.ipcRenderer
|
||||
//title bar
|
||||
const customTitlebar = require('custom-electron-titlebar')
|
||||
window.addEventListener('DOMContentLoaded', () => {
|
||||
document.title = 'TheDesk'
|
||||
ipc.send('acsCheck', '')
|
||||
ipc.send('frameCheck', '')
|
||||
ipc.on('frame', function(event, args) {
|
||||
const file = location.href.substr(-10)
|
||||
if (
|
||||
file == 'index.html' ||
|
||||
file == '/acct.html' ||
|
||||
file == 'tting.html'
|
||||
) {
|
||||
new customTitlebar.Titlebar({
|
||||
backgroundColor: customTitlebar.Color.fromHex('#000'),
|
||||
titleHorizontalAlignment: 'right',
|
||||
icon: '../../img/desk.png'
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
onmessage = function(e) {
|
||||
@@ -207,6 +191,7 @@ ipc.on('theme-json-response', function(event, args) {
|
||||
postMessage(['customConnect', args], '*')
|
||||
})
|
||||
ipc.on('theme-json-create-complete', function(event, args) {
|
||||
if(args != '') alert(args)
|
||||
postMessage(['clearCustomImport', ''], '*')
|
||||
postMessage(['ctLoad', ''], '*')
|
||||
})
|
||||
@@ -219,7 +204,7 @@ ipc.on('memory', function(event, arg) {
|
||||
var use = arg[0]
|
||||
var cpu = arg[1]
|
||||
var total = arg[2]
|
||||
postMessage(['renderMem', [use, cpu, total]], '*')
|
||||
postMessage(['renderMem', [use, cpu, total, arg[3], arg[4]]], '*')
|
||||
})
|
||||
//log
|
||||
ipc.on('logData', function(event, args) {
|
||||
|
@@ -23,6 +23,7 @@ function emojiToggle(reaction) {
|
||||
}
|
||||
$('#post-box').css('width', width + 'px')
|
||||
$('#suggest').html('')
|
||||
$('#draft').html('')
|
||||
if (!localStorage.getItem('emojis_' + acct_id)) {
|
||||
var html = `<button class="btn waves-effect green" style="width:100%; padding:0; margin-top:0;" onclick="emojiGet('true');">${lang.lang_emoji_get}</button>`
|
||||
$('#emoji-list').html(html)
|
||||
@@ -31,10 +32,12 @@ function emojiToggle(reaction) {
|
||||
}
|
||||
} else {
|
||||
$('#poll').addClass('hide')
|
||||
$('#draft').addClass('hide')
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#emoji').addClass('hide')
|
||||
$('#suggest').html('')
|
||||
$('#draft').html('')
|
||||
$('#left-side').css('width', '100%')
|
||||
var width = localStorage.getItem('postbox-width')
|
||||
if (width) {
|
||||
@@ -336,6 +339,8 @@ function emojiInsert(code, del) {
|
||||
}
|
||||
sentence = before + word + after
|
||||
textarea.value = sentence
|
||||
textarea.focus()
|
||||
textarea.setSelectionRange(pos + word.length, pos + word.length)
|
||||
}
|
||||
//改行挿入
|
||||
function brInsert(code) {
|
||||
|
@@ -9,7 +9,16 @@ function sec() {
|
||||
}
|
||||
post(null, mode)
|
||||
}
|
||||
function post(mode, postvis) {
|
||||
function post(mode, postvis, dry) {
|
||||
if(!navigator.onLine && !dry) {
|
||||
draftToggle(true)
|
||||
addToDraft()
|
||||
M.toast({
|
||||
html: lang.lang_post_offline,
|
||||
displayLength: 3000
|
||||
})
|
||||
return false
|
||||
}
|
||||
if ($('#toot-post-btn').prop('disabled')) {
|
||||
return false
|
||||
}
|
||||
@@ -122,7 +131,7 @@ function post(mode, postvis) {
|
||||
console.log('This toot will be posted at:' + scheduled)
|
||||
schedule()
|
||||
toot.scheduled_at = scheduled
|
||||
if($('#sch-box').hasClass('expire')) {
|
||||
if ($('#sch-box').hasClass('expire')) {
|
||||
toot.scheduled_at = null
|
||||
toot.expires_at = scheduled
|
||||
}
|
||||
@@ -131,7 +140,7 @@ function post(mode, postvis) {
|
||||
}
|
||||
if (!$('#poll').hasClass('hide')) {
|
||||
var options = []
|
||||
$('.mastodon-choice').map(function() {
|
||||
$('.mastodon-choice').map(function () {
|
||||
var choice = $(this).val()
|
||||
if (choice != '') {
|
||||
options.push(choice)
|
||||
@@ -159,6 +168,13 @@ function post(mode, postvis) {
|
||||
}
|
||||
}
|
||||
console.table(toot)
|
||||
if (dry) {
|
||||
$('#ideKey').val('')
|
||||
$('.toot-btn-group').prop('disabled', false)
|
||||
todc()
|
||||
toot['TheDeskAcctId'] = acct_id
|
||||
return toot
|
||||
}
|
||||
var httpreq = new XMLHttpRequest()
|
||||
httpreq.open('POST', start, true)
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json')
|
||||
@@ -166,11 +182,11 @@ function post(mode, postvis) {
|
||||
httpreq.setRequestHeader('Idempotency-Key', ideKey)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send(JSON.stringify(toot))
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
if(media && this.status == 422) {
|
||||
if (media && this.status == 422) {
|
||||
$('#ideKey').val('')
|
||||
$('.toot-btn-group').prop('disabled', false)
|
||||
alertProcessUnfinished()
|
||||
@@ -201,7 +217,7 @@ function post(mode, postvis) {
|
||||
}
|
||||
function expPostMode() {
|
||||
$('#sch-box').toggleClass('expire')
|
||||
if($('#sch-box').hasClass('expire')) {
|
||||
if ($('#sch-box').hasClass('expire')) {
|
||||
Swal.fire({
|
||||
type: 'info',
|
||||
title: 'Expiring toot On'
|
||||
@@ -270,7 +286,7 @@ function misskeyPost() {
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json')
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send(JSON.stringify(toot))
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if (str.indexOf(localStorage.getItem('stable')) == -1) {
|
||||
localStorage.removeItem('stable')
|
||||
@@ -339,7 +355,7 @@ function clear() {
|
||||
$('#mins_poll').val(6)
|
||||
$('#poll').addClass('hide')
|
||||
$('#pollsta').text(lang.lang_no)
|
||||
$('.mastodon-choice').map(function() {
|
||||
$('.mastodon-choice').map(function () {
|
||||
$(this).val('')
|
||||
})
|
||||
localStorage.removeItem('image')
|
||||
|
@@ -1,14 +1,14 @@
|
||||
/*保護系*/
|
||||
//画像保護
|
||||
function nsfw() {
|
||||
if ($('#nsfw').hasClass('nsfw-avail')) {
|
||||
$('#nsfw').removeClass('yellow-text')
|
||||
$('#nsfw').html('visibility_off')
|
||||
$('#nsfw').removeClass('nsfw-avail')
|
||||
} else {
|
||||
function nsfw(force) {
|
||||
if (force || !$('#nsfw').hasClass('nsfw-avail')) {
|
||||
$('#nsfw').addClass('yellow-text')
|
||||
$('#nsfw').html('visibility')
|
||||
$('#nsfw').addClass('nsfw-avail')
|
||||
} else {
|
||||
$('#nsfw').removeClass('yellow-text')
|
||||
$('#nsfw').html('visibility_off')
|
||||
$('#nsfw').removeClass('nsfw-avail')
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,13 +79,8 @@ function loadVis() {
|
||||
loadVis()
|
||||
|
||||
//コンテントワーニング
|
||||
function cw() {
|
||||
if ($('#cw').hasClass('cw-avail')) {
|
||||
$('#cw-text').val()
|
||||
$('#cw-text').hide()
|
||||
$('#cw').removeClass('yellow-text')
|
||||
$('#cw').removeClass('cw-avail')
|
||||
} else {
|
||||
function cw(force) {
|
||||
if (force || !$('#cw').hasClass('cw-avail')) {
|
||||
$('#cw-text').show()
|
||||
$('#cw').addClass('yellow-text')
|
||||
$('#cw').addClass('cw-avail')
|
||||
@@ -93,6 +88,11 @@ function cw() {
|
||||
if (cwt) {
|
||||
$('#cw-text').val(cwt)
|
||||
}
|
||||
} else {
|
||||
$('#cw-text').val()
|
||||
$('#cw-text').hide()
|
||||
$('#cw').removeClass('yellow-text')
|
||||
$('#cw').removeClass('cw-avail')
|
||||
}
|
||||
}
|
||||
//TLでコンテントワーニングを表示トグル
|
||||
@@ -100,8 +100,8 @@ function cw_show(e) {
|
||||
$(e).parent().parent().find('.cw_hide').toggleClass('cw')
|
||||
$(e).parent().find('.cw_long').toggleClass('hide')
|
||||
}
|
||||
$(function() {
|
||||
$('#cw-text').on('change', function(event) {
|
||||
$(function () {
|
||||
$('#cw-text').on('change', function (event) {
|
||||
var acct_id = $('#post-acct-sel').val()
|
||||
var domain = localStorage.getItem('domain_' + acct_id)
|
||||
var cwlen = $('#cw-text').val().length
|
||||
@@ -126,3 +126,79 @@ function schedule() {
|
||||
$('#sch-box').addClass('sch-avail')
|
||||
}
|
||||
}
|
||||
|
||||
//下書き機能
|
||||
function draftToggle(force) {
|
||||
if ($('#draft').hasClass('hide') || force) {
|
||||
$('#draft').removeClass('hide')
|
||||
$('#right-side').show()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#left-side').css('width', 'calc(100% - 300px)')
|
||||
var width = localStorage.getItem('postbox-width')
|
||||
if (width) {
|
||||
width = width.replace('px', '') * 1 + 300
|
||||
} else {
|
||||
width = 600
|
||||
}
|
||||
$('#post-box').css('width', width + 'px')
|
||||
$('#suggest').html('')
|
||||
$('#draft').html('')
|
||||
draftDraw()
|
||||
} else {
|
||||
$('#poll').addClass('hide')
|
||||
$('#draft').addClass('hide')
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#emoji').addClass('hide')
|
||||
$('#suggest').html('')
|
||||
$('#draft').html('')
|
||||
$('#left-side').css('width', '100%')
|
||||
var width = localStorage.getItem('postbox-width')
|
||||
if (width) {
|
||||
width = width.replace('px', '') * 1
|
||||
} else {
|
||||
width = 300
|
||||
}
|
||||
$('#post-box').css('width', width + 'px')
|
||||
}
|
||||
}
|
||||
function draftDraw() {
|
||||
var draft = localStorage.getItem('draft')
|
||||
var html = `<button class="btn waves-effect green" style="width:100%; padding:0; margin-top:0;" onclick="addToDraft();">${lang.lang_secure_draft}</button>`
|
||||
if (draft) {
|
||||
var draftObj = JSON.parse(draft)
|
||||
for (let i = 0; i < draftObj.length; i++) {
|
||||
var toot = draftObj[i]
|
||||
html = html + `<div class="tootInDraft">
|
||||
<i class="waves-effect gray material-icons" onclick="useThisDraft(${i})" title="${lang.lang_secure_userThis}">reply</i>
|
||||
<i class="waves-effect gray material-icons" onclick="deleteThisDraft(${i})" title="${lang.lang_secure_deleteThis}">cancel</i>
|
||||
${escapeHTML(toot.status).replace(/\n/, '').substr(0, 10)}
|
||||
</div>`
|
||||
}
|
||||
}
|
||||
$('#draft').html(html)
|
||||
}
|
||||
function addToDraft() {
|
||||
var json = post(null, null, true)
|
||||
var draft = localStorage.getItem('draft')
|
||||
var draftObj = []
|
||||
if (draft) draftObj = JSON.parse(draft)
|
||||
draftObj.push(json)
|
||||
draft = JSON.stringify(draftObj)
|
||||
localStorage.setItem('draft', draft)
|
||||
draftDraw()
|
||||
}
|
||||
function useThisDraft(i) {
|
||||
var draft = localStorage.getItem('draft')
|
||||
var draftObj = JSON.parse(draft)
|
||||
draftToPost(draftObj[i], draftObj[i]['TheDeskAcctId'], 0)
|
||||
draftToggle()
|
||||
}
|
||||
function deleteThisDraft(i) {
|
||||
var draft = localStorage.getItem('draft')
|
||||
var draftObj = JSON.parse(draft)
|
||||
draftObj.splice(i, 1)
|
||||
draft = JSON.stringify(draftObj)
|
||||
localStorage.setItem('draft', draft)
|
||||
draftDraw()
|
||||
}
|
@@ -15,7 +15,7 @@ function fav(id, acct_id, remote) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -75,7 +75,7 @@ function rt(id, acct_id, remote, vis) {
|
||||
} else {
|
||||
httpreq.send()
|
||||
}
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -131,7 +131,7 @@ function bkm(id, acct_id, tlid) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -160,7 +160,7 @@ function bkm(id, acct_id, tlid) {
|
||||
|
||||
//フォロー
|
||||
async function follow(acct_id, resolve) {
|
||||
if($('#his-data').hasClass('locked')) {
|
||||
if ($('#his-data').hasClass('locked')) {
|
||||
locked = true
|
||||
} else {
|
||||
locked = false
|
||||
@@ -178,7 +178,7 @@ async function follow(acct_id, resolve) {
|
||||
var flag = 'follow'
|
||||
var flagm = 'create'
|
||||
}
|
||||
|
||||
|
||||
var id = $('#his-data').attr('user-id')
|
||||
if (resolve == 'selector') {
|
||||
var fullacct = $('#his-acct').attr('fullname')
|
||||
@@ -200,7 +200,7 @@ async function follow(acct_id, resolve) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send(JSON.stringify(ent))
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -212,7 +212,7 @@ async function follow(acct_id, resolve) {
|
||||
$('#his-follow-btn-text').text(lang.lang_status_follow)
|
||||
} else {
|
||||
$('#his-data').addClass('following')
|
||||
if(locked) {
|
||||
if (locked) {
|
||||
$('#his-follow-btn-text').text(lang.lang_status_requesting)
|
||||
} else {
|
||||
$('#his-follow-btn-text').text(lang.lang_status_unfollow)
|
||||
@@ -278,7 +278,7 @@ function block(acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if (this.status !== 200) {
|
||||
setLog(start, this.status, this.response)
|
||||
@@ -338,7 +338,7 @@ function muteDo(acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send(rq)
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if (this.status !== 200) {
|
||||
setLog(start, this.status, this.response)
|
||||
@@ -378,7 +378,7 @@ function del(id, acct_id) {
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
}
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if (this.status !== 200) {
|
||||
setLog(start, this.status, this.response)
|
||||
@@ -420,69 +420,72 @@ function redraft(id, acct_id) {
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
}
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
if (this.status !== 200) {
|
||||
setLog(start, this.status, this.response)
|
||||
}
|
||||
var json = httpreq.response
|
||||
$('#post-acct-sel').prop('disabled', true)
|
||||
$('#post-acct-sel').val(acct_id)
|
||||
$('select').formSelect()
|
||||
mdCheck()
|
||||
var medias = $('[toot-id=' + id + ']').attr('data-medias')
|
||||
var mediack = json.media_attachments[0]
|
||||
//メディアがあれば
|
||||
var media_ids = []
|
||||
if (mediack) {
|
||||
for (var i = 0; i <= 4; i++) {
|
||||
if (json.media_attachments[i]) {
|
||||
media_ids.push(json.media_attachments[i].id)
|
||||
$('#preview').append(
|
||||
'<img src="' +
|
||||
json.media_attachments[i].preview_url +
|
||||
'" style="width:50px; max-height:100px;">'
|
||||
)
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
var vismode = $('[toot-id=' + id + '] .vis-data').attr('data-vis')
|
||||
vis(vismode)
|
||||
var medias = media_ids.join(',');
|
||||
$('#media').val(medias)
|
||||
localStorage.setItem('nohide', true)
|
||||
show()
|
||||
if (json.text) {
|
||||
var html = json.text
|
||||
} else {
|
||||
var html = $('[toot-id=' + id + '] .toot').html()
|
||||
html = html.replace(/^<p>(.+)<\/p>$/, '$1')
|
||||
html = html.replace(/<br\s?\/?>/, '\n')
|
||||
html = html.replace(/<p>/, '\n')
|
||||
html = html.replace(/<\/p>/, '\n')
|
||||
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, '$1')
|
||||
html = $.strip_tags(html)
|
||||
}
|
||||
$('#textarea').val(html)
|
||||
if (json.spoiler_text) {
|
||||
cw()
|
||||
$('#cw-text').val(json.spoiler_text)
|
||||
}
|
||||
if (json.sensitive) {
|
||||
$('#nsfw').addClass('yellow-text')
|
||||
$('#nsfw').html('visibility')
|
||||
$('#nsfw').addClass('nsfw-avail')
|
||||
}
|
||||
if (json.in_reply_to_id) {
|
||||
$('#reply').val(json.in_reply_to_id)
|
||||
}
|
||||
draftToPost(json, acct_id, id)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
function draftToPost(json, acct_id, id) {
|
||||
$('#post-acct-sel').prop('disabled', true)
|
||||
$('#post-acct-sel').val(acct_id)
|
||||
$('select').formSelect()
|
||||
mdCheck()
|
||||
mediack = null
|
||||
if(json.media_attachments) mediack = json.media_attachments[0]
|
||||
//メディアがあれば
|
||||
var media_ids = []
|
||||
if (mediack) {
|
||||
for (var i = 0; i <= 4; i++) {
|
||||
if (json.media_attachments[i]) {
|
||||
media_ids.push(json.media_attachments[i].id)
|
||||
$('#preview').append(
|
||||
'<img src="' +
|
||||
json.media_attachments[i].preview_url +
|
||||
'" style="width:50px; max-height:100px;">'
|
||||
)
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
var vismode = json.visibility
|
||||
vis(vismode)
|
||||
var medias = media_ids.join(',')
|
||||
$('#media').val(medias)
|
||||
localStorage.setItem('nohide', true)
|
||||
show()
|
||||
if (json.text) {
|
||||
var html = json.text
|
||||
} else {
|
||||
var html = json.status
|
||||
html = html.replace(/^<p>(.+)<\/p>$/, '$1')
|
||||
html = html.replace(/<br\s?\/?>/, '\n')
|
||||
html = html.replace(/<p>/, '\n')
|
||||
html = html.replace(/<\/p>/, '\n')
|
||||
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, '$1')
|
||||
html = $.strip_tags(html)
|
||||
}
|
||||
$('#textarea').val(html)
|
||||
if (json.spoiler_text) {
|
||||
cw(true)
|
||||
$('#cw-text').val(json.spoiler_text)
|
||||
}
|
||||
if (json.sensitive) {
|
||||
$('#nsfw').addClass('yellow-text')
|
||||
$('#nsfw').html('visibility')
|
||||
$('#nsfw').addClass('nsfw-avail')
|
||||
}
|
||||
if (json.in_reply_to_id) {
|
||||
$('#reply').val(json.in_reply_to_id)
|
||||
}
|
||||
}
|
||||
//ピン留め
|
||||
function pin(id, acct_id) {
|
||||
if ($(`.cvo[unique-id=${id}]`).hasClass('pined')) {
|
||||
@@ -499,7 +502,7 @@ function pin(id, acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -530,7 +533,7 @@ function request(id, flag, acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -556,7 +559,7 @@ function domainblock(add, flag, acct_id) {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -583,7 +586,7 @@ function empUser() {
|
||||
M.toast({ html: id + lang.lang_status_emphas, displayLength: 4000 })
|
||||
} else {
|
||||
var can
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var usT = obj[key]
|
||||
if (usT != id && !can) {
|
||||
can = false
|
||||
@@ -615,7 +618,7 @@ function pinUser() {
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = 'json'
|
||||
httpreq.send()
|
||||
httpreq.onreadystatechange = function() {
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response
|
||||
if (this.status !== 200) {
|
||||
@@ -651,20 +654,20 @@ function staEx(mode) {
|
||||
Authorization: 'Bearer ' + at
|
||||
}
|
||||
})
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
response.text().then(function (text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
.then(function (json) {
|
||||
if (json.statuses) {
|
||||
if (json.statuses[0]) {
|
||||
var id = json.statuses[0].id
|
||||
@@ -680,35 +683,9 @@ function staEx(mode) {
|
||||
})
|
||||
return
|
||||
}
|
||||
function toggleAction(elem, height) {
|
||||
var cont = elem.parents('.cvo').find('.contextMenu')
|
||||
if (cont.hasClass('hide')) {
|
||||
$('#contextWrap').removeClass('hide')
|
||||
var left = elem.offset().left + 60
|
||||
var top = elem.offset().top - height
|
||||
if (top < 75) {
|
||||
top = elem.offset().top + 45
|
||||
cont.removeClass('bottom')
|
||||
cont.addClass('top')
|
||||
} else {
|
||||
cont.removeClass('top')
|
||||
cont.addClass('bottom')
|
||||
}
|
||||
if (elem.parents('.cvo').attr('id') == 'toot-this') {
|
||||
console.log($('#toot-this').offset().top, elem.offset().top)
|
||||
left = $('#toot-this').offset().left + elem.offset().left + 10
|
||||
top = $('#toot-this').offset().top - $('#toot-this').height() - height + 25
|
||||
}
|
||||
cont.css('top', top + 'px')
|
||||
cont.css('right', `calc(100vw - ${left}px)`)
|
||||
cont.removeClass('hide')
|
||||
elem
|
||||
.parents('.cvo')
|
||||
.find('.act-icon')
|
||||
.text('expand_less')
|
||||
} else {
|
||||
$('#contextWrap').addClass('hide')
|
||||
$('.contextMenu').addClass('hide')
|
||||
$('.act-icon').text('expand_more')
|
||||
}
|
||||
function toggleAction(elm) {
|
||||
console.log(elm)
|
||||
const instance = M.Dropdown.init(elm)
|
||||
console.log(instance.isOpen)
|
||||
instance.open()
|
||||
}
|
||||
|
@@ -18,7 +18,7 @@ input.addEventListener(
|
||||
var new_val = input.value
|
||||
if (new_val == '') {
|
||||
$('#suggest').html('')
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide')) {
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide') && $('#draft').hasClass('hide')) {
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#left-side').css('width', '100%')
|
||||
@@ -41,7 +41,7 @@ input.addEventListener(
|
||||
var q = acct[1]
|
||||
} else {
|
||||
$('#suggest').html('')
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide')) {
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide') && $('#draft').hasClass('hide')) {
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#left-side').css('width', '100%')
|
||||
@@ -138,6 +138,7 @@ input.addEventListener(
|
||||
$('#post-box').css('width', width + 'px')
|
||||
$('#poll').addClass('hide')
|
||||
$('#emoji').addClass('hide')
|
||||
$('#draft').addClass('hide')
|
||||
}
|
||||
} else if (json.accounts[0] && acct[1]) {
|
||||
var accts = ''
|
||||
@@ -165,8 +166,9 @@ input.addEventListener(
|
||||
$('#suggest').html(accts)
|
||||
$('#poll').addClass('hide')
|
||||
$('#emoji').addClass('hide')
|
||||
$('#draft').addClass('hide')
|
||||
} else {
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide')) {
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide') && $('#draft').hasClass('hide')) {
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#left-side').css('width', '100%')
|
||||
@@ -226,7 +228,7 @@ function tagInsert(code, del) {
|
||||
}
|
||||
sentence = before + word + after
|
||||
textarea.value = sentence
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide')) {
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide') && $('#draft').hasClass('hide')) {
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
$('#left-side').css('width', '50%')
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*リプライ*/
|
||||
function re(id, ats_cm, acct_id, mode) {
|
||||
function re(id, ats_cm, acct_id, mode, cwTxt) {
|
||||
clear()
|
||||
var ats = ats_cm.split(',')
|
||||
localStorage.setItem('nohide', true)
|
||||
@@ -25,13 +25,18 @@ function re(id, ats_cm, acct_id, mode) {
|
||||
}
|
||||
$('#acct-sel-prof').attr('src', profimg)
|
||||
vis(mode)
|
||||
if(localStorage.getItem('cw-continue') == 'yes') {
|
||||
cw(true)
|
||||
$('#cw-text').val(cwTxt)
|
||||
}
|
||||
}
|
||||
function reEx(id) {
|
||||
$('#tootmodal').modal('close')
|
||||
var at = $('#tootmodal').attr('data-user')
|
||||
var acct_id = $('#status-acct-sel').val()
|
||||
var mode = $('#tootmodal .vis-data').attr('data-vis')
|
||||
re(id, at, acct_id, mode)
|
||||
var cwTxt = $('#cw-text').val()
|
||||
re(id, at, acct_id, mode, cwTxt)
|
||||
}
|
||||
//引用
|
||||
function qt(id, acct_id, at, url) {
|
||||
|
@@ -334,7 +334,19 @@ function cardCheck(tlid) {
|
||||
}
|
||||
}
|
||||
|
||||
function mov(id, tlid, type) {
|
||||
function mov(id, tlid, type, rand, target) {
|
||||
const dropdownTrigger = `dropdown_${rand}`
|
||||
let elm = document.querySelector(`#timeline_${tlid} #${dropdownTrigger}`)
|
||||
if(tlid == 'notf') {
|
||||
const timeline = $(target).parents('.notf-indv-box').attr('id')
|
||||
elm = document.querySelector(`#${timeline} #${dropdownTrigger}`)
|
||||
console.log(`#${timeline} #${dropdownTrigger}`)
|
||||
}
|
||||
const instance = M.Dropdown.getInstance(elm)
|
||||
if(instance) {
|
||||
if(instance.isOpen) return false
|
||||
}
|
||||
|
||||
var click = false
|
||||
if (tlid == 'notf') {
|
||||
var tlide = '[data-notf=' + acct_id + ']'
|
||||
@@ -361,9 +373,9 @@ function mov(id, tlid, type) {
|
||||
}
|
||||
if (mouseover == 'hide') {
|
||||
if (click) {
|
||||
$(tlide + ' [toot-id=' + id + ']').toggleClass('hide-actions')
|
||||
$(tlide + ' [unique-id=' + id + ']').toggleClass('hide-actions')
|
||||
} else {
|
||||
$(tlide + ' [toot-id=' + id + ']').removeClass('hide-actions')
|
||||
$(tlide + ' [unique-id=' + id + ']').removeClass('hide-actions')
|
||||
}
|
||||
|
||||
//$(tlide + " [toot-id=" + id + "] .area-vis").toggleClass("hide")
|
||||
|
@@ -1,95 +1,98 @@
|
||||
//日付パーサー
|
||||
function date(str, datetype) {
|
||||
if (datetype == "relative") {
|
||||
return '<time class="timeago" datetime="' + str + '"></time>';
|
||||
function date(str, datetype, lastStatus) {
|
||||
if (lastStatus) {
|
||||
var date = new Date(str)
|
||||
return date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate()
|
||||
} else if (datetype == "relative") {
|
||||
return '<time class="timeago" datetime="' + str + '"></time>'
|
||||
} else {
|
||||
var date = new Date(str);
|
||||
var date = new Date(str)
|
||||
if (datetype == "unix") {
|
||||
var unixm = date.getTime();
|
||||
return Math.floor(unixm / 1000);
|
||||
var unixm = date.getTime()
|
||||
return Math.floor(unixm / 1000)
|
||||
}
|
||||
var now = new Date();
|
||||
var month = date.getMonth() + 1;
|
||||
var now = new Date()
|
||||
var month = date.getMonth() + 1
|
||||
if (date.getMinutes() < 10) {
|
||||
var min = "0" + date.getMinutes();
|
||||
var min = "0" + date.getMinutes()
|
||||
} else {
|
||||
var min = date.getMinutes();
|
||||
var min = date.getMinutes()
|
||||
}
|
||||
var sec = null;
|
||||
var sec = null
|
||||
if (date.getSeconds() < 10) {
|
||||
sec = "0" + date.getSeconds();
|
||||
sec = "0" + date.getSeconds()
|
||||
} else {
|
||||
sec = date.getSeconds();
|
||||
sec = date.getSeconds()
|
||||
}
|
||||
if (datetype == "full") {
|
||||
var ret = date.getFullYear() + "/" + month + "/" + date.getDate() + "/ " +
|
||||
date.getHours() + ":" + min + ":" + sec;
|
||||
date.getHours() + ":" + min + ":" + sec
|
||||
}
|
||||
if (date.getFullYear() == now.getFullYear()) {
|
||||
if (date.getMonth() == now.getMonth()) {
|
||||
if (date.getDate() == now.getDate()) {
|
||||
if (datetype == "medium") {
|
||||
var ret = '<time class="timeago" datetime="' + str + '"></time>';
|
||||
var ret = '<time class="timeago" datetime="' + str + '"></time>'
|
||||
} else {
|
||||
var ret = date.getHours() + ":" + min + ":" + sec;
|
||||
var ret = date.getHours() + ":" + min + ":" + sec
|
||||
}
|
||||
|
||||
} else {
|
||||
var ret = month + "/" + date.getDate() + " " + date.getHours() + ":" +
|
||||
min + ":" + sec;
|
||||
min + ":" + sec
|
||||
}
|
||||
} else {
|
||||
var ret = month + "/" + date.getDate() + " " + date.getHours() + ":" + min +
|
||||
":" + sec;
|
||||
":" + sec
|
||||
}
|
||||
} else {
|
||||
var ret = date.getFullYear() + "/" + month + "/" + date.getDate() + " " +
|
||||
date.getHours() + ":" + min + ":" + sec;
|
||||
date.getHours() + ":" + min + ":" + sec
|
||||
}
|
||||
if (datetype == "double") {
|
||||
return '<time class="timeago" datetime="' + str + '"></time>/' + ret;
|
||||
return '<time class="timeago" datetime="' + str + '"></time>/' + ret
|
||||
} else {
|
||||
return ret;
|
||||
return ret
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//特殊フォーマット(インスタンス情報で利用)
|
||||
function crat(str) {
|
||||
var date = new Date(str);
|
||||
var mnt = null;
|
||||
var date = new Date(str)
|
||||
var mnt = null
|
||||
if (date.getMonth() < 9) {
|
||||
mnt = "0" + (date.getMonth() + 1);
|
||||
mnt = "0" + (date.getMonth() + 1)
|
||||
} else {
|
||||
mnt = date.getMonth() + 1;
|
||||
mnt = date.getMonth() + 1
|
||||
}
|
||||
if (date.getDate() < 10) {
|
||||
var dat = "0" + date.getDate();
|
||||
var dat = "0" + date.getDate()
|
||||
} else {
|
||||
var dat = date.getDate();
|
||||
var dat = date.getDate()
|
||||
}
|
||||
if (date.getHours() < 10) {
|
||||
var hrs = "0" + date.getHours();
|
||||
var hrs = "0" + date.getHours()
|
||||
} else {
|
||||
var hrs = date.getHours();
|
||||
var hrs = date.getHours()
|
||||
}
|
||||
if (date.getMinutes() < 10) {
|
||||
var mns = "0" + date.getMinutes();
|
||||
var mns = "0" + date.getMinutes()
|
||||
} else {
|
||||
var mns = date.getMinutes();
|
||||
var mns = date.getMinutes()
|
||||
}
|
||||
if (date.getSeconds() < 10) {
|
||||
var sec = "0" + date.getSeconds();
|
||||
var sec = "0" + date.getSeconds()
|
||||
} else {
|
||||
var sec = date.getSeconds();
|
||||
var sec = date.getSeconds()
|
||||
}
|
||||
format_str = 'YYYY-MM-DD hh:mm:ss';
|
||||
format_str = format_str.replace(/YYYY/g, date.getFullYear());
|
||||
format_str = format_str.replace(/MM/g, mnt);
|
||||
format_str = format_str.replace(/DD/g, dat);
|
||||
format_str = format_str.replace(/hh/g, hrs);
|
||||
format_str = format_str.replace(/mm/g, mns);
|
||||
format_str = format_str.replace(/ss/g, sec);
|
||||
format_str = 'YYYY-MM-DD hh:mm:ss'
|
||||
format_str = format_str.replace(/YYYY/g, date.getFullYear())
|
||||
format_str = format_str.replace(/MM/g, mnt)
|
||||
format_str = format_str.replace(/DD/g, dat)
|
||||
format_str = format_str.replace(/hh/g, hrs)
|
||||
format_str = format_str.replace(/mm/g, mns)
|
||||
format_str = format_str.replace(/ss/g, sec)
|
||||
|
||||
return format_str;
|
||||
return format_str
|
||||
}
|
||||
|
@@ -1,49 +1,49 @@
|
||||
//ディレクトリ
|
||||
//ディレクトリトグル
|
||||
function dirMenu() {
|
||||
$("#dir-contents").html("");
|
||||
directory();
|
||||
$("#left-menu a").removeClass("active");
|
||||
$("#dirMenu").addClass("active");
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#dir-box").removeClass("hide");
|
||||
$("#dir-contents").html("")
|
||||
directory()
|
||||
$("#left-menu a").removeClass("active")
|
||||
$("#dirMenu").addClass("active")
|
||||
$(".menu-content").addClass("hide")
|
||||
$("#dir-box").removeClass("hide")
|
||||
}
|
||||
function dirselCk() {
|
||||
var acct = $("#dir-acct-sel").val();
|
||||
var acct = $("#dir-acct-sel").val()
|
||||
if (acct == "noauth") {
|
||||
$("#dirNoAuth").removeClass("hide");
|
||||
$("#dirNoAuth").removeClass("hide")
|
||||
} else {
|
||||
$("#dirNoAuth").addClass("hide");
|
||||
directory();
|
||||
$("#dirNoAuth").addClass("hide")
|
||||
directory()
|
||||
}
|
||||
}
|
||||
function directory(isMore) {
|
||||
var order = $("[name=sort]:checked").val();
|
||||
var order = $("[name=sort]:checked").val()
|
||||
if (!order) {
|
||||
order = "active";
|
||||
order = "active"
|
||||
}
|
||||
var local_only = $("#local_only:checked").val();
|
||||
var local_only = $("#local_only:checked").val()
|
||||
if (local_only) {
|
||||
local_only = "true";
|
||||
local_only = "true"
|
||||
} else {
|
||||
local_only = "false";
|
||||
local_only = "false"
|
||||
}
|
||||
var acct_id = $("#dir-acct-sel").val();
|
||||
var acct_id = $("#dir-acct-sel").val()
|
||||
if (acct_id == "noauth") {
|
||||
var domain = $("#dirNoAuth-url").val();
|
||||
var at = "";
|
||||
var domain = $("#dirNoAuth-url").val()
|
||||
var at = ""
|
||||
} else {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
}
|
||||
if (isMore) {
|
||||
var addOffset = $("#dir-contents .cvo").length;
|
||||
var addOffset = $("#dir-contents .cvo").length
|
||||
} else {
|
||||
var addOffset = 0;
|
||||
$("#dir-contents").html("");
|
||||
var addOffset = 0
|
||||
$("#dir-contents").html("")
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/directory?order=" + order + "&local=" + local_only + "&offset=" + addOffset;
|
||||
console.log(start);
|
||||
var start = "https://" + domain + "/api/v1/directory?order=" + order + "&local=" + local_only + "&offset=" + addOffset
|
||||
console.log(start)
|
||||
fetch(start, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
@@ -54,23 +54,23 @@ function directory(isMore) {
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
setLog(response.url, response.status, text);
|
||||
});
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json();
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
setLog(start, "JSON", error);
|
||||
console.error(error);
|
||||
setLog(start, "JSON", error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
if (json) {
|
||||
$("#moreDir").removeClass("disabled");
|
||||
var html = userparse(json, null, acct_id, "dir", null);
|
||||
$("#dir-contents").append(html);
|
||||
jQuery("time.timeago").timeago();
|
||||
$("#moreDir").removeClass("disabled")
|
||||
var html = userparse(json, null, acct_id, "dir", null)
|
||||
$("#dir-contents").append(html)
|
||||
jQuery("time.timeago").timeago()
|
||||
} else {
|
||||
$("#moreDir").addClass("disabled");
|
||||
$("#moreDir").addClass("disabled")
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
488
app/js/tl/dm.js
488
app/js/tl/dm.js
@@ -1,8 +1,8 @@
|
||||
//DM(Conv) TL
|
||||
function dm(acct_id, tlid, type, delc, voice) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/conversations";
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
var start = "https://" + domain + "/api/v1/conversations"
|
||||
fetch(start, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
@@ -13,38 +13,38 @@ function dm(acct_id, tlid, type, delc, voice) {
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
setLog(response.url, response.status, text);
|
||||
});
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json();
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
todo(error);
|
||||
setLog(start, "JSON", error);
|
||||
console.error(error);
|
||||
todo(error)
|
||||
setLog(start, "JSON", error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
var templete = '<div id="convList' + tlid + '">' + dmListParse(json, type, acct_id, tlid, "", mute) + "</div>";
|
||||
localStorage.setItem("lastobj_" + tlid, json[0].id);
|
||||
$("#timeline_" + tlid).html(templete);
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
todc();
|
||||
var templete = '<div id="convList' + tlid + '">' + dmListParse(json, type, acct_id, tlid, "", mute) + "</div>"
|
||||
localStorage.setItem("lastobj_" + tlid, json[0].id)
|
||||
$("#timeline_" + tlid).html(templete)
|
||||
additional(acct_id, tlid)
|
||||
jQuery("time.timeago").timeago()
|
||||
todc()
|
||||
//reload(type, '', acct_id, tlid, data, mute, delc,voice);
|
||||
$(window).scrollTop(0);
|
||||
});
|
||||
$(window).scrollTop(0)
|
||||
})
|
||||
}
|
||||
function dmmore(tlid) {
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
var acct_id = obj[tlid].domain;
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var multi = localStorage.getItem("column")
|
||||
var obj = JSON.parse(multi)
|
||||
var acct_id = obj[tlid].domain
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
var sid = $("#timeline_" + tlid + " .cvo")
|
||||
.last()
|
||||
.attr("unique-id");
|
||||
var start = "https://" + domain + "/api/v1/conversations?max_id=" + sid;
|
||||
var type = "dm";
|
||||
.attr("unique-id")
|
||||
var start = "https://" + domain + "/api/v1/conversations?max_id=" + sid
|
||||
var type = "dm"
|
||||
fetch(start, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
@@ -55,444 +55,444 @@ function dmmore(tlid) {
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
setLog(response.url, response.status, text);
|
||||
});
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json();
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
todo(error);
|
||||
setLog(start, "JSON", error);
|
||||
console.error(error);
|
||||
todo(error)
|
||||
setLog(start, "JSON", error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
var templete = '<div id="convList' + tlid + '">' + dmListParse(json, type, acct_id, tlid, "", mute) + "</div>";
|
||||
$("#timeline_" + tlid).append(templete);
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
moreloading = false;
|
||||
});
|
||||
var templete = '<div id="convList' + tlid + '">' + dmListParse(json, type, acct_id, tlid, "", mute) + "</div>"
|
||||
$("#timeline_" + tlid).append(templete)
|
||||
additional(acct_id, tlid)
|
||||
jQuery("time.timeago").timeago()
|
||||
moreloading = false
|
||||
})
|
||||
}
|
||||
//DMオブジェクトパーサー(トゥート)
|
||||
function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
var templete = "";
|
||||
var templete = ""
|
||||
if (obj[0]) {
|
||||
localStorage.setItem("lastunix_" + tlid, date(obj[0].created_at, "unix"));
|
||||
localStorage.setItem("lastunix_" + tlid, date(obj[0].created_at, "unix"))
|
||||
}
|
||||
|
||||
var actb = localStorage.getItem("action_btns");
|
||||
var actb = "re,rt,fav,qt,del,pin,red";
|
||||
var actb = localStorage.getItem("action_btns")
|
||||
var actb = "re,rt,fav,qt,del,pin,red"
|
||||
if (actb) {
|
||||
var actb = actb.split(",");
|
||||
var disp = {};
|
||||
var actb = actb.split(",")
|
||||
var disp = {}
|
||||
for (var k = 0; k < actb.length; k++) {
|
||||
if (k < 4) {
|
||||
var tp = "type-a";
|
||||
var tp = "type-a"
|
||||
} else {
|
||||
var tp = "type-b";
|
||||
var tp = "type-b"
|
||||
}
|
||||
disp[actb[k]] = tp;
|
||||
disp[actb[k]] = tp
|
||||
}
|
||||
}
|
||||
var datetype = localStorage.getItem("datetype");
|
||||
var nsfwtype = localStorage.getItem("nsfw");
|
||||
var sent = localStorage.getItem("sentence");
|
||||
var ltr = localStorage.getItem("letters");
|
||||
var gif = localStorage.getItem("gif");
|
||||
var imh = localStorage.getItem("img-height");
|
||||
var datetype = localStorage.getItem("datetype")
|
||||
var nsfwtype = localStorage.getItem("nsfw")
|
||||
var sent = localStorage.getItem("sentence")
|
||||
var ltr = localStorage.getItem("letters")
|
||||
var gif = localStorage.getItem("gif")
|
||||
var imh = localStorage.getItem("img-height")
|
||||
//独自ロケール
|
||||
var locale = localStorage.getItem("locale");
|
||||
var locale = localStorage.getItem("locale")
|
||||
if (locale == "yes") {
|
||||
var locale = false;
|
||||
var locale = false
|
||||
}
|
||||
//ネイティブ通知
|
||||
var native = localStorage.getItem("nativenotf");
|
||||
var native = localStorage.getItem("nativenotf")
|
||||
if (!native) {
|
||||
native = "yes";
|
||||
native = "yes"
|
||||
}
|
||||
//クライアント強調
|
||||
var emp = localStorage.getItem("client_emp");
|
||||
var emp = localStorage.getItem("client_emp")
|
||||
if (emp) {
|
||||
var emp = JSON.parse(emp);
|
||||
var emp = JSON.parse(emp)
|
||||
}
|
||||
//クライアントミュート
|
||||
var mute = localStorage.getItem("client_mute");
|
||||
var mute = localStorage.getItem("client_mute")
|
||||
if (mute) {
|
||||
var mute = JSON.parse(mute);
|
||||
var mute = JSON.parse(mute)
|
||||
}
|
||||
//ユーザー強調
|
||||
var useremp = localStorage.getItem("user_emp");
|
||||
var useremp = localStorage.getItem("user_emp")
|
||||
if (useremp) {
|
||||
var useremp = JSON.parse(useremp);
|
||||
var useremp = JSON.parse(useremp)
|
||||
}
|
||||
//ワード強調
|
||||
var wordemp = localStorage.getItem("word_emp");
|
||||
var wordemp = localStorage.getItem("word_emp")
|
||||
if (wordemp) {
|
||||
var wordemp = JSON.parse(wordemp);
|
||||
var wordemp = JSON.parse(wordemp)
|
||||
}
|
||||
//ワードミュート
|
||||
var wordmute = localStorage.getItem("word_mute");
|
||||
var wordmute = localStorage.getItem("word_mute")
|
||||
if (wordmute) {
|
||||
var wordmute = JSON.parse(wordmute);
|
||||
wordmute = wordmute.concat(mutefilter);
|
||||
var wordmute = JSON.parse(wordmute)
|
||||
wordmute = wordmute.concat(mutefilter)
|
||||
} else {
|
||||
wordmute = mutefilter;
|
||||
wordmute = mutefilter
|
||||
}
|
||||
//Ticker
|
||||
var tickerck = localStorage.getItem("ticker_ok");
|
||||
var tickerck = localStorage.getItem("ticker_ok")
|
||||
if (tickerck) {
|
||||
var ticker = true;
|
||||
var ticker = true
|
||||
} else {
|
||||
var ticker = false;
|
||||
var ticker = false
|
||||
}
|
||||
//Cards
|
||||
var card = localStorage.getItem("card_" + tlid);
|
||||
var card = localStorage.getItem("card_" + tlid)
|
||||
|
||||
if (!sent) {
|
||||
var sent = 500;
|
||||
var sent = 500
|
||||
}
|
||||
if (!ltr) {
|
||||
var ltr = 500;
|
||||
var ltr = 500
|
||||
}
|
||||
if (!nsfwtype || nsfwtype == "yes") {
|
||||
var nsfw = "ok";
|
||||
var nsfw = "ok"
|
||||
} else {
|
||||
var nsfw;
|
||||
var nsfw
|
||||
}
|
||||
var cwtype = localStorage.getItem("cw");
|
||||
var cwtype = localStorage.getItem("cw")
|
||||
if (!cwtype || cwtype == "yes") {
|
||||
var cw = "ok";
|
||||
var cw = "ok"
|
||||
} else {
|
||||
var cw;
|
||||
var cw
|
||||
}
|
||||
if (!datetype) {
|
||||
datetype = "absolute";
|
||||
datetype = "absolute"
|
||||
}
|
||||
if (!gif) {
|
||||
var gif = "yes";
|
||||
var gif = "yes"
|
||||
}
|
||||
if (!imh) {
|
||||
var imh = "200";
|
||||
var imh = "200"
|
||||
}
|
||||
if (!emp) {
|
||||
var emp = [];
|
||||
var emp = []
|
||||
}
|
||||
if (!mute) {
|
||||
var mute = [];
|
||||
var mute = []
|
||||
}
|
||||
if (!useremp) {
|
||||
var useremp = [];
|
||||
var useremp = []
|
||||
}
|
||||
if (!wordemp) {
|
||||
var wordemp = [];
|
||||
var wordemp = []
|
||||
}
|
||||
if (!wordmute) {
|
||||
var wordmute = [];
|
||||
var wordmute = []
|
||||
}
|
||||
//via通知
|
||||
var viashow = localStorage.getItem("viashow");
|
||||
var viashow = localStorage.getItem("viashow")
|
||||
if (!viashow) {
|
||||
viashow = "via-hide";
|
||||
viashow = "via-hide"
|
||||
}
|
||||
if (viashow == "hide") {
|
||||
viashow = "via-hide";
|
||||
viashow = "via-hide"
|
||||
}
|
||||
//認証なしTL
|
||||
if (mix == "noauth") {
|
||||
var noauth = "hide";
|
||||
var antinoauth = "";
|
||||
var noauth = "hide"
|
||||
var antinoauth = ""
|
||||
} else {
|
||||
var noauth = "";
|
||||
var antinoauth = "hide";
|
||||
var noauth = ""
|
||||
var antinoauth = "hide"
|
||||
}
|
||||
//マウスオーバーのみ
|
||||
var mouseover = localStorage.getItem("mouseover");
|
||||
var mouseover = localStorage.getItem("mouseover")
|
||||
if (!mouseover) {
|
||||
mouseover = "";
|
||||
mouseover = ""
|
||||
} else if (mouseover == "yes" || mouseover == "click") {
|
||||
mouseover = "hide";
|
||||
mouseover = "hide"
|
||||
} else if (mouseover == "no") {
|
||||
mouseover = "";
|
||||
mouseover = ""
|
||||
}
|
||||
var local = [];
|
||||
var times = [];
|
||||
var local = []
|
||||
var times = []
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var conv_id = obj[key].id;
|
||||
var toot = obj[key].last_status;
|
||||
var dis_name = escapeHTML(toot.account.display_name);
|
||||
var conv_id = obj[key].id
|
||||
var toot = obj[key].last_status
|
||||
var dis_name = escapeHTML(toot.account.display_name)
|
||||
if (toot.account.emojis) {
|
||||
var actemojick = toot.account.emojis[0];
|
||||
var actemojick = toot.account.emojis[0]
|
||||
} else {
|
||||
var actemojick = false;
|
||||
var actemojick = false
|
||||
}
|
||||
//絵文字があれば
|
||||
if (actemojick) {
|
||||
Object.keys(toot.account.emojis).forEach(function(key5) {
|
||||
var emoji = toot.account.emojis[key5];
|
||||
var shortcode = emoji.shortcode;
|
||||
var emoji_url = '<img src="' + emoji.url + '" class="emoji-img" data-emoji="' + shortcode + '" alt=" :' + shortcode + ': ">';
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g");
|
||||
dis_name = dis_name.replace(regExp, emoji_url);
|
||||
});
|
||||
var emoji = toot.account.emojis[key5]
|
||||
var shortcode = emoji.shortcode
|
||||
var emoji_url = '<img src="' + emoji.url + '" class="emoji-img" data-emoji="' + shortcode + '" alt=" :' + shortcode + ': ">'
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g")
|
||||
dis_name = dis_name.replace(regExp, emoji_url)
|
||||
})
|
||||
}
|
||||
var noticeavatar = "";
|
||||
var if_notf = "";
|
||||
var uniqueid = toot.id;
|
||||
var notice = "";
|
||||
var boostback = "";
|
||||
var noticeavatar = ""
|
||||
var if_notf = ""
|
||||
var uniqueid = toot.id
|
||||
var notice = ""
|
||||
var boostback = ""
|
||||
//ユーザー強調
|
||||
if (toot.account.username != toot.account.acct) {
|
||||
var fullname = toot.account.acct;
|
||||
var fullname = toot.account.acct
|
||||
} else {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var fullname = toot.account.acct + "@" + domain;
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
var fullname = toot.account.acct + "@" + domain
|
||||
}
|
||||
if (useremp) {
|
||||
Object.keys(useremp).forEach(function(key10) {
|
||||
var user = useremp[key10];
|
||||
var user = useremp[key10]
|
||||
if (user == fullname) {
|
||||
boostback = "emphasized";
|
||||
boostback = "emphasized"
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
var id = toot.id;
|
||||
var home = "";
|
||||
var id = toot.id
|
||||
var home = ""
|
||||
if (toot.account.locked) {
|
||||
var locked = ' <i class="fas fa-lock red-text"></i>';
|
||||
var locked = ' <i class="fas fa-lock red-text"></i>'
|
||||
} else {
|
||||
var locked = "";
|
||||
var locked = ""
|
||||
}
|
||||
if (!toot.application) {
|
||||
var via = "";
|
||||
viashow = "hide";
|
||||
var via = ""
|
||||
viashow = "hide"
|
||||
} else {
|
||||
var via = escapeHTML(toot.application.name);
|
||||
var via = escapeHTML(toot.application.name)
|
||||
//強調チェック
|
||||
Object.keys(emp).forEach(function(key6) {
|
||||
var cli = emp[key6];
|
||||
var cli = emp[key6]
|
||||
if (cli == via) {
|
||||
boostback = "emphasized";
|
||||
boostback = "emphasized"
|
||||
}
|
||||
});
|
||||
})
|
||||
//ミュートチェック
|
||||
Object.keys(mute).forEach(function(key7) {
|
||||
var cli = mute[key7];
|
||||
var cli = mute[key7]
|
||||
if (cli == via) {
|
||||
boostback = "hide";
|
||||
boostback = "hide"
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
if (mix == "pinned") {
|
||||
boostback = "emphasized";
|
||||
boostback = "emphasized"
|
||||
}
|
||||
if (toot.spoiler_text && cw) {
|
||||
var content = toot.content;
|
||||
var spoil = escapeHTML(toot.spoiler_text);
|
||||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var api_spoil = "gray";
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id + '\')" class="nex parsed">' + lang.lang_parse_cwshow + "</a><br>";
|
||||
var content = toot.content
|
||||
var spoil = escapeHTML(toot.spoiler_text)
|
||||
var spoiler = "cw cw_hide_" + toot.id
|
||||
var api_spoil = "gray"
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id + '\')" class="nex parsed">' + lang.lang_parse_cwshow + "</a><br>"
|
||||
} else {
|
||||
var ct1 = toot.content.split("</p>").length + toot.content.split("<br />").length - 2;
|
||||
var ct2 = toot.content.split("</p>").length + toot.content.split("<br>").length - 2;
|
||||
var ct1 = toot.content.split("</p>").length + toot.content.split("<br />").length - 2
|
||||
var ct2 = toot.content.split("</p>").length + toot.content.split("<br>").length - 2
|
||||
if (ct1 > ct2) {
|
||||
var ct = ct1;
|
||||
var ct = ct1
|
||||
} else {
|
||||
var ct = ct2;
|
||||
var ct = ct2
|
||||
}
|
||||
if ((sent < ct && $.mb_strlen($.strip_tags(toot.content)) > 5) || ($.strip_tags(toot.content).length > ltr && $.mb_strlen($.strip_tags(toot.content)) > 5)) {
|
||||
var content = '<span class="gray">' + lang.lang_parse_fulltext + "</span><br>" + toot.content;
|
||||
var spoil = '<span class="cw-long-' + toot.id + '">' + $.mb_substr($.strip_tags(toot.content), 0, 100) + '</span><span class="gray">' + lang.lang_parse_autofold + "</span>";
|
||||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id + '\')" class="nex parsed">' + lang.lang_parse_more + "</a><br>";
|
||||
var content = '<span class="gray">' + lang.lang_parse_fulltext + "</span><br>" + toot.content
|
||||
var spoil = '<span class="cw-long-' + toot.id + '">' + $.mb_substr($.strip_tags(toot.content), 0, 100) + '</span><span class="gray">' + lang.lang_parse_autofold + "</span>"
|
||||
var spoiler = "cw cw_hide_" + toot.id
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id + '\')" class="nex parsed">' + lang.lang_parse_more + "</a><br>"
|
||||
} else {
|
||||
var content = toot.content;
|
||||
var spoil = escapeHTML(toot.spoiler_text);
|
||||
var spoiler = "";
|
||||
var spoiler_show = "";
|
||||
var content = toot.content
|
||||
var spoil = escapeHTML(toot.spoiler_text)
|
||||
var spoiler = ""
|
||||
var spoiler_show = ""
|
||||
}
|
||||
}
|
||||
var urls = $.strip_tags(content)
|
||||
.replace(/\n/g, " ")
|
||||
.match(/https?:\/\/([-a-zA-Z0-9@.]+)\/?(?!.*((media|tags)|mentions)).*([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)?/);
|
||||
.match(/https?:\/\/([-a-zA-Z0-9@.]+)\/?(?!.*((media|tags)|mentions)).*([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)?/)
|
||||
if (urls) {
|
||||
var analyze = "<a onclick=\"additionalIndv('" + tlid + "'," + acct_id + ",'" + id + '\')" class="add-show pointer">' + lang.lang_parse_url + "</a><br>";
|
||||
var analyze = "<a onclick=\"additionalIndv('" + tlid + "'," + acct_id + ",'" + id + '\')" class="add-show pointer">' + lang.lang_parse_url + "</a><br>"
|
||||
} else {
|
||||
var analyze = "";
|
||||
var analyze = ""
|
||||
}
|
||||
var viewer = "";
|
||||
var hasmedia = "";
|
||||
var youtube = "";
|
||||
var viewer = ""
|
||||
var hasmedia = ""
|
||||
var youtube = ""
|
||||
if (toot.emojis) {
|
||||
var emojick = toot.emojis[0];
|
||||
var emojick = toot.emojis[0]
|
||||
} else {
|
||||
var emojick = false;
|
||||
var emojick = false
|
||||
}
|
||||
//絵文字があれば
|
||||
if (emojick) {
|
||||
Object.keys(toot.emojis).forEach(function(key5) {
|
||||
var emoji = toot.emojis[key5];
|
||||
var shortcode = emoji.shortcode;
|
||||
var emoji_url = '<img src="' + emoji.url + '" class="emoji-img" data-emoji="' + shortcode + '" alt=" :' + shortcode + ': ">';
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g");
|
||||
content = content.replace(regExp, emoji_url);
|
||||
spoil = spoil.replace(regExp, emoji_url);
|
||||
});
|
||||
var emoji = toot.emojis[key5]
|
||||
var shortcode = emoji.shortcode
|
||||
var emoji_url = '<img src="' + emoji.url + '" class="emoji-img" data-emoji="' + shortcode + '" alt=" :' + shortcode + ': ">'
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g")
|
||||
content = content.replace(regExp, emoji_url)
|
||||
spoil = spoil.replace(regExp, emoji_url)
|
||||
})
|
||||
}
|
||||
//ニコフレ絵文字
|
||||
if (toot.profile_emojis) {
|
||||
var nicoemojick = toot.profile_emojis[0];
|
||||
var nicoemojick = toot.profile_emojis[0]
|
||||
} else {
|
||||
var nicoemojick = false;
|
||||
var nicoemojick = false
|
||||
}
|
||||
//絵文字があれば
|
||||
if (nicoemojick) {
|
||||
Object.keys(toot.profile_emojis).forEach(function(keynico) {
|
||||
var emoji = toot.profile_emojis[keynico];
|
||||
var shortcode = emoji.shortcode;
|
||||
var emoji_url = '<img src="' + emoji.url + '" class="emoji-img" data-emoji="' + shortcode + '" alt=" :' + shortcode + ': ">';
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g");
|
||||
content = content.replace(regExp, emoji_url);
|
||||
spoil = spoil.replace(regExp, emoji_url);
|
||||
});
|
||||
var emoji = toot.profile_emojis[keynico]
|
||||
var shortcode = emoji.shortcode
|
||||
var emoji_url = '<img src="' + emoji.url + '" class="emoji-img" data-emoji="' + shortcode + '" alt=" :' + shortcode + ': ">'
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g")
|
||||
content = content.replace(regExp, emoji_url)
|
||||
spoil = spoil.replace(regExp, emoji_url)
|
||||
})
|
||||
}
|
||||
//デフォ絵文字
|
||||
content = twemoji.parse(content);
|
||||
content = twemoji.parse(content)
|
||||
if (dis_name) {
|
||||
dis_name = twemoji.parse(dis_name);
|
||||
dis_name = twemoji.parse(dis_name)
|
||||
}
|
||||
if (spoil) {
|
||||
spoil = twemoji.parse(spoil);
|
||||
spoil = twemoji.parse(spoil)
|
||||
}
|
||||
var mediack = toot.media_attachments[0];
|
||||
var mediack = toot.media_attachments[0]
|
||||
//メディアがあれば
|
||||
var media_ids = "";
|
||||
var media_ids = ""
|
||||
if (mediack) {
|
||||
hasmedia = "hasmedia";
|
||||
var cwdt = 100 / toot.media_attachments.length;
|
||||
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 media = toot.media_attachments[key2]
|
||||
var purl = media.preview_url
|
||||
media_ids = media_ids + media.id + ","
|
||||
var url = media.url
|
||||
if (toot.sensitive && nsfw) {
|
||||
var sense = "sensitive";
|
||||
var sense = "sensitive"
|
||||
} else {
|
||||
var sense = "";
|
||||
var sense = ""
|
||||
}
|
||||
viewer = viewer + "<a onclick=\"imgv('" + id + "','" + key2 + "','" + acct_id + '\')" id="' + id + "-image-" + key2 + '" data-url="' + url + '" data-type="' + media.type + '" class="img-parsed"><img src="' + purl + '" class="' + sense + ' toot-img pointer" style="width:' + cwdt + "%; height:" + imh + 'px;"></a></span>';
|
||||
});
|
||||
media_ids = media_ids.slice(0, -1);
|
||||
viewer = viewer + "<a onclick=\"imgv('" + id + "','" + key2 + "','" + acct_id + '\')" id="' + id + "-image-" + key2 + '" data-url="' + url + '" data-type="' + media.type + '" class="img-parsed"><img src="' + purl + '" class="' + sense + ' toot-img pointer" style="width:' + cwdt + "%; height:" + imh + 'px;"></a></span>'
|
||||
})
|
||||
media_ids = media_ids.slice(0, -1)
|
||||
} else {
|
||||
viewer = "";
|
||||
hasmedia = "nomedia";
|
||||
viewer = ""
|
||||
hasmedia = "nomedia"
|
||||
}
|
||||
var menck = toot.mentions[0];
|
||||
var mentions = "";
|
||||
var menck = toot.mentions[0]
|
||||
var mentions = ""
|
||||
//メンションであれば
|
||||
if (menck) {
|
||||
mentions = "";
|
||||
mentions = ""
|
||||
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> ";
|
||||
});
|
||||
mentions = '<div style="float:right">' + mentions + "</div>";
|
||||
var mention = toot.mentions[key3]
|
||||
mentions = mentions + "<a onclick=\"udg('" + mention.id + "'," + acct_id + ')" class="pointer">@' + mention.acct + "</a> "
|
||||
})
|
||||
mentions = '<div style="float:right">' + mentions + "</div>"
|
||||
}
|
||||
var tagck = toot.tags[0];
|
||||
var tags = "";
|
||||
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>";
|
||||
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 (gif == "yes") {
|
||||
var avatar = toot.account.avatar;
|
||||
var avatar = toot.account.avatar
|
||||
} else {
|
||||
var avatar = toot.account.avatar_static;
|
||||
var avatar = toot.account.avatar_static
|
||||
}
|
||||
//ワードミュート
|
||||
if (wordmute) {
|
||||
Object.keys(wordmute).forEach(function(key8) {
|
||||
var worde = wordmute[key8];
|
||||
var worde = wordmute[key8]
|
||||
if (worde) {
|
||||
if (worde.tag) {
|
||||
var word = worde.tag;
|
||||
var word = worde.tag
|
||||
} else {
|
||||
var word = worde;
|
||||
var word = worde
|
||||
}
|
||||
var regExp = new RegExp(word, "g");
|
||||
var regExp = new RegExp(word, "g")
|
||||
if ($.strip_tags(content).match(regExp)) {
|
||||
boostback = "hide by_filter";
|
||||
boostback = "hide by_filter"
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
//ワード強調
|
||||
if (wordemp) {
|
||||
Object.keys(wordemp).forEach(function(key9) {
|
||||
var word = wordemp[key9];
|
||||
var word = wordemp[key9]
|
||||
if (word) {
|
||||
var word = word.tag;
|
||||
var regExp = new RegExp(word, "g");
|
||||
content = content.replace(regExp, '<span class="emp">' + escapeHTML(word) + "</span>");
|
||||
var word = word.tag
|
||||
var regExp = new RegExp(word, "g")
|
||||
content = content.replace(regExp, '<span class="emp">' + escapeHTML(word) + "</span>")
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
//日本語じゃない
|
||||
if (toot.language != "ja") {
|
||||
var trans = '<div class="action pin"><a onclick="trans(\'' + toot.language + '\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_parse_trans + '"><i class="material-icons">g_translate</i></a></div>';
|
||||
var trans = '<div class="action pin"><a onclick="trans(\'' + toot.language + '\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="' + lang.lang_parse_trans + '"><i class="material-icons">g_translate</i></a></div>'
|
||||
} else {
|
||||
var trans = "";
|
||||
var trans = ""
|
||||
}
|
||||
if (toot.favourited) {
|
||||
var if_fav = " yellow-text";
|
||||
var fav_app = "faved";
|
||||
var if_fav = " yellow-text"
|
||||
var fav_app = "faved"
|
||||
} else {
|
||||
var if_fav = "";
|
||||
var fav_app = "";
|
||||
var if_fav = ""
|
||||
var fav_app = ""
|
||||
}
|
||||
//Cards
|
||||
if (!card && toot.card) {
|
||||
var cards = toot.card;
|
||||
var cards = toot.card
|
||||
if (cards.provider_name == "Twitter") {
|
||||
if (cards.image) {
|
||||
var twiImg = '<br><img src="' + cards.image + '">';
|
||||
var twiImg = '<br><img src="' + cards.image + '">'
|
||||
} else {
|
||||
var twiImg = "";
|
||||
var twiImg = ""
|
||||
}
|
||||
analyze = '<blockquote class="twitter-tweet"><b>' + escapeHTML(cards.author_name) + "</b><br>" + escapeHTML(cards.description) + twiImg + "</blockquote>";
|
||||
analyze = '<blockquote class="twitter-tweet"><b>' + escapeHTML(cards.author_name) + "</b><br>" + escapeHTML(cards.description) + twiImg + "</blockquote>"
|
||||
}
|
||||
if (cards.title) {
|
||||
analyze = '<span class="gray">URL' + lang.lang_cards_check + ":<br>Title:" + escapeHTML(cards.title) + "<br>" + escapeHTML(cards.description) + "</span>";
|
||||
analyze = '<span class="gray">URL' + lang.lang_cards_check + ":<br>Title:" + escapeHTML(cards.title) + "<br>" + escapeHTML(cards.description) + "</span>"
|
||||
}
|
||||
if (cards.html) {
|
||||
analyze = cards.html + '<i class="material-icons" onclick="pip(' + id + ')" title="' + lang.lang_cards_pip + '">picture_in_picture_alt</i>';
|
||||
analyze = cards.html + '<i class="material-icons" onclick="pip(' + id + ')" title="' + lang.lang_cards_pip + '">picture_in_picture_alt</i>'
|
||||
}
|
||||
}
|
||||
//Ticker
|
||||
var tickerdom = "";
|
||||
var tickerdom = ""
|
||||
if (ticker) {
|
||||
var tickerdata = localStorage.getItem("ticker");
|
||||
var tickerdata = localStorage.getItem("ticker")
|
||||
if (tickerdata) {
|
||||
var tickerdata = JSON.parse(tickerdata);
|
||||
var tickerdata = JSON.parse(tickerdata)
|
||||
|
||||
var thisdomain = toot.account.acct.split("@");
|
||||
var thisdomain = toot.account.acct.split("@")
|
||||
if (thisdomain.length > 1) {
|
||||
thisdomain = thisdomain[1];
|
||||
thisdomain = thisdomain[1]
|
||||
}
|
||||
for (var i = 0; i < tickerdata.length; i++) {
|
||||
var value = tickerdata[i];
|
||||
var value = tickerdata[i]
|
||||
if (value.domain == thisdomain) {
|
||||
var tickerdom = '<div style="background:linear-gradient(to left,transparent, ' + value.bg + " 96%) !important; color:" + value.text + ';width:100%; height:0.9rem; font-size:0.8rem;"><img src="' + value.image + '" style="height:100%;"><span style="position:relative; top:-0.2rem;"> ' + escapeHTML(value.name) + "</span></div>";
|
||||
break;
|
||||
var tickerdom = '<div style="background:linear-gradient(to left,transparent, ' + value.bg + " 96%) !important; color:" + value.text + ';width:100%; height:0.9rem; font-size:0.8rem;"><img src="' + value.image + '" style="height:100%;"><span style="position:relative; top:-0.2rem;"> ' + escapeHTML(value.name) + "</span></div>"
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' + boostback + " " + fav_app + " " + hasmedia + '" toot-id="' + id + '" unique-id="' + uniqueid + '" data-medias="' + media_ids + ' " unixtime="' + date(obj[key].created_at, "unix") + '" ' + if_notf + ' onclick="dmStatus()">' + '<div class="area-notice"><span class="gray sharesta">' + notice + home + "</span></div>" + '<div class="area-icon"><a onclick="udg(\'' + toot.account.id + "'," + acct_id + ');" user="' + toot.account.acct + '" class="udg">' + '<img src="' + avatar + '" width="40" class="prof-img" user="' + toot.account.acct + '"></a>' + noticeavatar + "</div>" + '<div class="area-display_name"><div class="flex-name"><span class="user">' + dis_name + '</span><span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis; cursor:text;"> @' + toot.account.acct + locked + "</span></div>" + '<div class="flex-time"><span class="cbadge cbadge-hover pointer waves-effect" onclick="tootUriCopy(\'' + toot.url + '\');" title="' + date(toot.created_at, "absolute") + "(" + lang.lang_parse_clickcopyurl + ')"><i class="far fa-clock-o"></i>' + date(toot.created_at, datetype) + "</span>" + "</div></div>" + '<div class="area-toot">' + tickerdom + '<span class="' + api_spoil + " cw_text_" + toot.id + '"><span class="cw_text">' + spoil + "</span>" + spoiler_show + '</span><span class="toot ' + spoiler + '">' + content + "</span>" + "" + viewer + "" + "<br><a onclick=\"details('" + toot.id + "'," + acct_id + ",'" + tlid + "','dm')\" class=\"pointer waves-effect\">" + lang.lang_parse_thread + "</a></div>" + '<div class="area-vis"></div>' + "</div></div>";
|
||||
});
|
||||
return templete;
|
||||
templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' + boostback + " " + fav_app + " " + hasmedia + '" toot-id="' + id + '" unique-id="' + uniqueid + '" data-medias="' + media_ids + ' " unixtime="' + date(obj[key].created_at, "unix") + '" ' + if_notf + ' onclick="dmStatus()">' + '<div class="area-notice"><span class="gray sharesta">' + notice + home + "</span></div>" + '<div class="area-icon"><a onclick="udg(\'' + toot.account.id + "'," + acct_id + ');" user="' + toot.account.acct + '" class="udg">' + '<img src="' + avatar + '" width="40" class="prof-img" user="' + toot.account.acct + '"></a>' + noticeavatar + "</div>" + '<div class="area-display_name"><div class="flex-name"><span class="user">' + dis_name + '</span><span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis; cursor:text;"> @' + toot.account.acct + locked + "</span></div>" + '<div class="flex-time"><span class="cbadge cbadge-hover pointer waves-effect" onclick="tootUriCopy(\'' + toot.url + '\');" title="' + date(toot.created_at, "absolute") + "(" + lang.lang_parse_clickcopyurl + ')"><i class="far fa-clock-o"></i>' + date(toot.created_at, datetype) + "</span>" + "</div></div>" + '<div class="area-toot">' + tickerdom + '<span class="' + api_spoil + " cw_text_" + toot.id + '"><span class="cw_text">' + spoil + "</span>" + spoiler_show + '</span><span class="toot ' + spoiler + '">' + content + "</span>" + "" + viewer + "" + "<br><a onclick=\"details('" + toot.id + "'," + acct_id + ",'" + tlid + "','dm')\" class=\"pointer waves-effect\">" + lang.lang_parse_thread + "</a></div>" + '<div class="area-vis"></div>' + "</div></div>"
|
||||
})
|
||||
return templete
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -19,7 +19,22 @@ async function mixtl(acct_id, tlid, type, delc, voice) {
|
||||
additional(acct_id, tlid)
|
||||
jQuery('time.timeago').timeago()
|
||||
todc()
|
||||
mixre(acct_id, tlid, 'mix', mute, voice, '')
|
||||
if(mastodonBaseWsStatus[domain] == 'cannotuse') {
|
||||
mixre(acct_id, tlid, 'mix', mute, voice, '')
|
||||
} else if (mastodonBaseWsStatus[domain] == 'undetected' || mastodonBaseWsStatus[domain] == 'connecting') {
|
||||
const mbws = setInterval(function () {
|
||||
if(mastodonBaseWsStatus[domain] == 'cannotuse') {
|
||||
mixre(acct_id, tlid, 'mix', mute, voice, '')
|
||||
clearInterval(mbws)
|
||||
} else if(mastodonBaseWsStatus[domain] == 'available') {
|
||||
mastodonBaseWs[domain].send(JSON.stringify({type: 'subscribe', stream: 'public:local'}))
|
||||
clearInterval(mbws)
|
||||
}
|
||||
}, 1000)
|
||||
} else if(mastodonBaseWsStatus[domain] == 'available') {
|
||||
mastodonBaseWs[domain].send(JSON.stringify({type: 'subscribe', stream: 'public:local'}))
|
||||
}
|
||||
|
||||
$(window).scrollTop(0)
|
||||
lastId = integrated[0].id
|
||||
beforeLastId = integrated[1].id
|
||||
|
@@ -116,7 +116,7 @@ function notfColumn(acct_id, tlid, sys) {
|
||||
var start = 'wss://' + domain + '/?i=' + at
|
||||
}
|
||||
}
|
||||
function notfCommon(acct_id, tlid, sys) {
|
||||
function notfCommon(acct_id, tlid, sys, stream) {
|
||||
todo('Notifications Loading...')
|
||||
var native = localStorage.getItem('nativenotf')
|
||||
var at = localStorage.getItem('acct_' + acct_id + '_at')
|
||||
@@ -147,6 +147,10 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if(stream == 'only') {
|
||||
notfWS(misskey, acct_id, tlid, domain, at)
|
||||
return false
|
||||
}
|
||||
fetch(start, i)
|
||||
.then(function(response) {
|
||||
console.log('header to get param:' + response.headers.get('link'))
|
||||
@@ -203,10 +207,11 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
}
|
||||
$('#notf-box').addClass('fetched')
|
||||
todc()
|
||||
notfWS(misskey, acct_id, tlid, domain, at)
|
||||
if(stream != 'no') notfWS(misskey, acct_id, tlid, domain, at)
|
||||
})
|
||||
}
|
||||
function notfWS(misskey, acct_id, tlid, domain, at) {
|
||||
if(mastodonBaseWsStatus[domain] == 'available') return false
|
||||
if (!misskey) {
|
||||
if (localStorage.getItem('streaming_' + acct_id)) {
|
||||
var wss = localStorage.getItem('streaming_' + acct_id)
|
||||
@@ -258,7 +263,7 @@ function notfWS(misskey, acct_id, tlid, domain, at) {
|
||||
}
|
||||
}
|
||||
websocketNotf[acct_id].onerror = function(error) {
|
||||
console.error('WebSocket Error ' + error)
|
||||
console.error('WebSocket Error ', error)
|
||||
errorct++
|
||||
console.log(errorct)
|
||||
if (errorct < 3) {
|
||||
@@ -266,7 +271,7 @@ function notfWS(misskey, acct_id, tlid, domain, at) {
|
||||
}
|
||||
}
|
||||
websocketNotf[acct_id].onclose = function(error) {
|
||||
console.error('WebSocket Close ' + error)
|
||||
console.error('WebSocket Close ', error)
|
||||
errorct++
|
||||
console.log(errorct)
|
||||
if (errorct < 3) {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
//オブジェクトパーサー(トゥート)
|
||||
function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
function parse(obj, mix, acct_id, tlid, popup, mutefilter, type, onlyContent) {
|
||||
var splitter = new GraphemeSplitter()
|
||||
var templete = ''
|
||||
if (obj[0]) {
|
||||
@@ -194,7 +194,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var local = []
|
||||
var times = []
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
let content
|
||||
for(let key in obj){
|
||||
var domain = localStorage.getItem('domain_' + acct_id)
|
||||
var toot = obj[key]
|
||||
if (type == 'dm') {
|
||||
@@ -224,7 +225,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
dis_name = dis_name.replace(regExp, emoji_url)
|
||||
@@ -241,7 +242,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
noticeavatar = toot.account.avatar_static
|
||||
}
|
||||
noticeavatar = `<a onclick="udg('${toot.account.id}','${acct_id}');" user="${toot.account.acct}" class="udg">
|
||||
<img draggable="false" src="${noticeavatar}" width="20" class="notf-icon prof-img" user="${toot.account.acct}" alt="">
|
||||
<img draggable="false" src="${noticeavatar}" width="20" class="notf-icon prof-img" user="${toot.account.acct}" alt="" loading="lazy">
|
||||
</a>`
|
||||
if (toot.type == 'mention') {
|
||||
var what = lang.lang_parse_mentioned
|
||||
@@ -271,8 +272,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var noticetext = `<span onclick="notfFilter('${toot.account.id}','${tlid}');" class=" pointer big-text ${notfFilHide}"><i class="fas fa-filter"
|
||||
title="${lang.lang_parse_notffilter}">
|
||||
</i><span class="voice">${lang.lang_parse_notffilter}</span></span>
|
||||
<span class="cbadge cbadge-hover" title="${date(toot.created_at, 'absolute')}(${
|
||||
lang.lang_parse_notftime
|
||||
<span class="cbadge cbadge-hover" title="${date(toot.created_at, 'absolute')}(${lang.lang_parse_notftime
|
||||
})" aria-hidden="true"><i class="far fa-clock"></i>
|
||||
${date(toot.created_at, datetype)}
|
||||
</span>
|
||||
@@ -379,7 +379,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
dis_name = dis_name.replace(regExp, emoji_url)
|
||||
@@ -395,7 +395,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
noticeavatar = `<a onclick="udg('${toot.account.id}','${acct_id}');" user="${toot.account.acct}" class="udg" aria-hidden="true">
|
||||
<img draggable="false" src="${noticeavatar}" width="20" class="notf-icon prof-img"
|
||||
user="${toot.account.acct}" onerror="this.src=\'../../img/loading.svg\'">
|
||||
user="${toot.account.acct}" onerror="this.src=\'../../img/loading.svg\'" loading="lazy">
|
||||
</a>`
|
||||
var rebtxt = lang.lang_parse_btedsimple
|
||||
var rticon = 'fa-retweet light-blue-text'
|
||||
@@ -436,7 +436,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
dis_name = dis_name.replace(regExp, emoji_url)
|
||||
@@ -464,9 +464,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
}
|
||||
if (toot.content == '') {
|
||||
var content = ' '
|
||||
content = ' '
|
||||
} else {
|
||||
var content = toot.content
|
||||
content = toot.content
|
||||
}
|
||||
if (content) {
|
||||
var id = toot.id
|
||||
@@ -537,7 +537,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
(sent < ct && $.mb_strlen($.strip_tags(content)) > 5) ||
|
||||
($.mb_strlen($.strip_tags(content)) > ltr && $.mb_strlen($.strip_tags(content)) > 5)
|
||||
) {
|
||||
var content = `<span class="gray">${lang.lang_parse_fulltext}</span><br>` + content
|
||||
content = `<span class="gray">${lang.lang_parse_fulltext}</span><br>` + content
|
||||
var spoil = `<span class="cw_long">${$.mb_substr(
|
||||
$.strip_tags(content),
|
||||
0,
|
||||
@@ -628,7 +628,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var mty = media.remote_url.match(/.+(\..+)$/)[1]
|
||||
viewer =
|
||||
viewer +
|
||||
`<a href="${media.remote_url}" title="${media.remote_url}">[${lang.lang_parse_unknown}(${mty})]</a> `
|
||||
`<a href="${media.url ? media.url : media.remote_url}" title="${media.remote_url} from ${media.url}">[${lang.lang_parse_unknown}(${mty})]</a> `
|
||||
} else if (media.type == 'audio') {
|
||||
viewer =
|
||||
viewer +
|
||||
@@ -652,7 +652,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
id="${id}-image-${key2}" data-url="${url}" data-original="${remote_url}" data-type="${media.type}"
|
||||
class="img-parsed img-link" style="width:calc(${cwdt}% - 1px); height:${imh};">
|
||||
<img draggable="false" src="${purl}" class="${sense} toot-img pointer"
|
||||
onerror="this.src=\'../../img/loading.svg\'" title="${escapeHTML(desc)}" alt="${escapeHTML(desc)}">
|
||||
onerror="this.src=\'../../img/loading.svg\'" title="${escapeHTML(desc)}" alt="${escapeHTML(desc)}" loading="lazy">
|
||||
${nsfwmes}
|
||||
</a>`
|
||||
}
|
||||
@@ -709,8 +709,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var featured = ` <a onclick="tagFeature('${tag.name}','${acct_id}')" class="pointer" title="add it to Featured tags">Feature</a> `
|
||||
tags =
|
||||
tags +
|
||||
`<span class="hide" data-tag="${tag.name}" data-regTag="${tag.name.toLowerCase()}">#${
|
||||
tag.name
|
||||
`<span class="hide" data-tag="${tag.name}" data-regTag="${tag.name.toLowerCase()}">#${tag.name
|
||||
}:
|
||||
<a onclick="tl('tag','${tag.name}','${acct_id}','add')" class="pointer"
|
||||
title="${lang.lang_parse_tagTL.replace(
|
||||
@@ -855,7 +854,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
content = content.replace(regExp, emoji_url)
|
||||
@@ -875,7 +874,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var emoji = toot.profile_emojis[keynico]
|
||||
var shortcode = emoji.shortcode
|
||||
var emoji_url = `<img draggable="false" src="${emoji.url}" class="emoji-img" data-emoji="${shortcode}" alt=" :${shortcode}: "
|
||||
title="${shortcode}" onclick="this.classList.toggle(\'bigemoji\');">`
|
||||
title="${shortcode}" onclick="this.classList.toggle(\'bigemoji\');" loading="lazy">`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
content = content.replace(regExp, emoji_url)
|
||||
spoil = spoil.replace(regExp, emoji_url)
|
||||
@@ -901,12 +900,10 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
//日本語じゃない
|
||||
if (toot.language != lang.language && toot.language) {
|
||||
var trans = `<div class="">
|
||||
<a onclick="trans('${toot.language}','${lang.language}', $(this))"
|
||||
class="waves-effect waves-dark btn-flat actct" style="padding:0">
|
||||
var trans = `<li onclick="trans('${toot.language}','${lang.language}', $(this))"
|
||||
style="padding:0">
|
||||
<i class="material-icons" aria-hidden="true">g_translate</i>${lang.lang_parse_trans}
|
||||
</a>
|
||||
</div>`
|
||||
</li>`
|
||||
} else {
|
||||
var trans = ''
|
||||
}
|
||||
@@ -934,20 +931,20 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var fontColor = value.fontColor
|
||||
if (!value.bgColor || !value.fontColor) {
|
||||
if (value.type == 'mastodon') {
|
||||
if(!value.bgColor) bgColor = tickerdataRaw.default.mastodon.bgColor
|
||||
if(!value.fontColor) fontColor = tickerdataRaw.default.mastodon.fontColor
|
||||
if (!value.bgColor) bgColor = tickerdataRaw.default.mastodon.bgColor
|
||||
if (!value.fontColor) fontColor = tickerdataRaw.default.mastodon.fontColor
|
||||
} else if (value.type == 'pleroma') {
|
||||
if(!value.bgColor) bgColor = tickerdataRaw.default.pleroma.bgColor
|
||||
if(!value.fontColor) fontColor = tickerdataRaw.default.pleroma.fontColor
|
||||
if (!value.bgColor) bgColor = tickerdataRaw.default.pleroma.bgColor
|
||||
if (!value.fontColor) fontColor = tickerdataRaw.default.pleroma.fontColor
|
||||
} else if (value.type == 'misskey') {
|
||||
if(!value.bgColor) bgColor = tickerdataRaw.default.misskey.bgColor
|
||||
if(!value.fontColor) fontColor = tickerdataRaw.default.misskey.fontColor
|
||||
if (!value.bgColor) bgColor = tickerdataRaw.default.misskey.bgColor
|
||||
if (!value.fontColor) fontColor = tickerdataRaw.default.misskey.fontColor
|
||||
} else if (value.type == 'misskeylegacy') {
|
||||
if(!value.bgColor) bgColor = tickerdataRaw.default.misskeylegacy.bgColor
|
||||
if(!value.fontColor) fontColor = tickerdataRaw.default.misskeylegacy.fontColor
|
||||
if (!value.bgColor) bgColor = tickerdataRaw.default.misskeylegacy.bgColor
|
||||
if (!value.fontColor) fontColor = tickerdataRaw.default.misskeylegacy.fontColor
|
||||
} else if (value.type == 'pixelfed') {
|
||||
if(!value.bgColor) bgColor = tickerdataRaw.default.pixelfed.bgColor
|
||||
if(!value.fontColor) fontColor = tickerdataRaw.default.pixelfed.fontColor
|
||||
if (!value.bgColor) bgColor = tickerdataRaw.default.pixelfed.bgColor
|
||||
if (!value.fontColor) fontColor = tickerdataRaw.default.pixelfed.fontColor
|
||||
}
|
||||
} else {
|
||||
var bgColor = value.bgColor
|
||||
@@ -959,12 +956,10 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
bgColorCSS = bgColorCSS + bg + ','
|
||||
}
|
||||
bgColorCSS = `linear-gradient(90deg, ${bgColorCSS} transparent)`
|
||||
var tickerdom = `<div aria-hidden="true" style="user-select:none;cursor:default;background:${bgColorCSS} !important; color:${
|
||||
fontColor
|
||||
var tickerdom = `<div aria-hidden="true" style="user-select:none;cursor:default;background:${bgColorCSS} !important; color:${fontColor
|
||||
};width:100%; height:0.9rem; font-size:0.8rem;" class="tickers">
|
||||
<img draggable="false" src="${
|
||||
value.favicon
|
||||
}" style="height:100%;" onerror="this.src=\'../../img/loading.svg\'">
|
||||
<img draggable="false" src="${value.favicon
|
||||
}" style="height:100%;" onerror="this.src=\'../../img/loading.svg\'" loading="lazy">
|
||||
<span style="position:relative; top:-0.2rem;">${escapeHTML(value.name)}</span>
|
||||
</div>`
|
||||
break
|
||||
@@ -983,10 +978,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
poll +
|
||||
`<div class="quote-renote">
|
||||
<div class="renote-icon">
|
||||
<a onclick="udg('${toot.quote.account.id}','${acct_id}');" user="${
|
||||
toot.quote.account.acct
|
||||
<a onclick="udg('${toot.quote.account.id}','${acct_id}');" user="${toot.quote.account.acct
|
||||
}" class="udg">
|
||||
<img draggable="false" src="${toot.quote.account.avatar}">
|
||||
<img draggable="false" src="${toot.quote.account.avatar}" loading="lazy">
|
||||
</a>
|
||||
</div>
|
||||
<div class="renote-user">
|
||||
@@ -996,8 +990,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
${toot.quote.content}
|
||||
</div>
|
||||
<div class="renote-details">
|
||||
<a onclick="details('${
|
||||
toot.quote.id
|
||||
<a onclick="details('${toot.quote.id
|
||||
}','${acct_id}','${tlid}','normal')" class="waves-effect waves-dark btn-flat details" style="padding:0">
|
||||
<i class="text-darken-3 material-icons">more_vert</i>
|
||||
</a>
|
||||
@@ -1024,6 +1017,16 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
if (trans != '') {
|
||||
menuct++
|
||||
}
|
||||
//このトゥート内のアクションを完了させるために、適当にIDを振る
|
||||
var rand = randomStr(8)
|
||||
//プラグイン機構
|
||||
var pluginBOT = plugins.buttonOnToot
|
||||
var pluginHtml = ''
|
||||
for (let target of pluginBOT) {
|
||||
const meta = getMeta(target.content)
|
||||
pluginHtml = pluginHtml + `<li><a onclick="execPlugin('${target.id}','buttonOnToot',{id: '${uniqueid}', acct_id: '${acct_id}'});">${escapeHTML(meta.name)}</a></li>`
|
||||
}
|
||||
|
||||
templete =
|
||||
templete +
|
||||
`<div
|
||||
@@ -1034,15 +1037,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
'unix'
|
||||
)}"
|
||||
${if_notf}
|
||||
onmouseover="mov('${toot.id}','${tlid}','mv')"
|
||||
onclick="mov('${toot.id}','${tlid}','cl')"
|
||||
onmouseover="mov('${uniqueid}','${tlid}','mv', '${rand}', this)"
|
||||
onclick="mov('${uniqueid}','${tlid}','cl', '${rand}', this)"
|
||||
onmouseout="resetmv('mv')"
|
||||
>
|
||||
<div class="area-notice grid"><span class="gray sharesta">${notice}${home}</span></div>
|
||||
<div class="area-icon grid">
|
||||
<a onclick="udg('${toot.account.id}','${acct_id}');" user="${toot.account.acct}" class="udg">
|
||||
<img draggable="false" src="${avatar}" width="40" class="prof-img"
|
||||
user="${toot.account.acct}" onerror="this.src='../../img/loading.svg'" alt="" />
|
||||
user="${toot.account.acct}" onerror="this.src='../../img/loading.svg'" alt="" loading="lazy" />
|
||||
</a>
|
||||
${noticeavatar}
|
||||
</div>
|
||||
@@ -1087,7 +1090,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
</a>
|
||||
</div>
|
||||
<div class="action ${disp['re']} ${noauth}">
|
||||
<a onclick="re('${toot.id}','${to_mention}','${acct_id}','${visen}')"
|
||||
<a onclick="re('${toot.id}','${to_mention}','${acct_id}','${visen}','${escapeHTML(toot.spoiler_text)}')"
|
||||
class="waves-effect waves-dark btn-flat actct rep-btn"
|
||||
data-men="${to_mention}" data-visen="${visen}" style="padding:0" title="${lang.lang_parse_replyto}">
|
||||
<i class="fas fa-share"></i>
|
||||
@@ -1096,8 +1099,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
</a>
|
||||
</div>
|
||||
<div class="action ${can_rt} ${disp['rt']} ${noauth}">
|
||||
<a onclick="rt('${
|
||||
toot.id
|
||||
<a onclick="rt('${toot.id
|
||||
}','${acct_id}','${tlid}')" class="waves-effect waves-dark btn-flat actct bt-btn"
|
||||
style="padding:0" title="${lang.lang_parse_bt}">
|
||||
<i class="fas fa-retweet ${if_rt} rt_${toot.id}"></i>
|
||||
@@ -1132,8 +1134,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
</div>
|
||||
<div class="area-side">
|
||||
<div class="action ${noauth}">
|
||||
<a onclick="toggleAction($(this), ${menuct * 39 + 6})"
|
||||
class="ctxMenu waves-effect waves-dark btn-flat" style="padding:0">
|
||||
<a onclick="toggleAction(this)" data-target="dropdown_${rand}"
|
||||
class="ctxMenu waves-effect waves-dark btn-flat" style="padding:0" id="trigger_${rand}">
|
||||
<i class="text-darken-3 material-icons act-icon" aria-hidden="true">expand_more</i>
|
||||
<span class="voice">Other actions</span>
|
||||
</a>
|
||||
@@ -1146,49 +1148,38 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
<span class="voice">${lang.lang_parse_detail}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contextMenu hide z-depth-4">
|
||||
<div class="${viashow}">
|
||||
via ${escapeHTML(via)}<br>
|
||||
<a onclick="client('${$.strip_tags(via)}')" class="pointer">${lang.lang_parse_clientop}</a>
|
||||
</div>
|
||||
<ul class="dropdown-content contextMenu" id="dropdown_${rand}">
|
||||
<li class="${viashow} via-dropdown" onclick="client('${$.strip_tags(via)}')" title="${lang.lang_parse_clientop}">
|
||||
via ${escapeHTML(via)}</a>
|
||||
</li>
|
||||
<div>
|
||||
<button onclick="bkm('${uniqueid}','${acct_id}','${tlid}')"
|
||||
class="waves-effect waves-dark btn-flat actct bkm-btn" style="padding:0">
|
||||
<i class="fas text-darken-3 fa-bookmark bkm_${toot.id} ${if_bkm}"></i>
|
||||
<span class="bkmStr_${uniqueid}">${bkmStr}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="${if_mine}">
|
||||
<button onclick="del('${uniqueid}','${acct_id}')" class="waves-effect waves-dark btn-flat actct"
|
||||
<li onclick="bkm('${uniqueid}','${acct_id}','${tlid}')"
|
||||
class="bkm-btn bkmStr_${uniqueid}" style="padding:0">
|
||||
<i class="fas text-darken-3 fa-bookmark bkm_${toot.id} ${if_bkm}"></i>${bkmStr}
|
||||
</li>
|
||||
<li class="${if_mine}" onclick="del('${uniqueid}','${acct_id}')"
|
||||
style="padding:0">
|
||||
<i class="fas fa-trash"></i>${lang.lang_parse_del}
|
||||
</button>
|
||||
</div>
|
||||
<div class="${if_mine}">
|
||||
<button onclick="pin('${uniqueid}','${acct_id}')" class="waves-effect waves-dark btn-flat actct" style="padding:0">
|
||||
<i class="fas fa-map-pin pin_${uniqueid} ${if_pin}"></i>
|
||||
<span class="pinStr_${uniqueid}">${pinStr}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="${if_mine}">
|
||||
<button onclick="redraft('${uniqueid}','${acct_id}')" class="waves-effect waves-dark btn-flat actct"
|
||||
</li>
|
||||
<li class="${if_mine}" onclick="pin('${uniqueid}','${acct_id}')" style="padding:0" class="pinStr_${uniqueid}">
|
||||
<i class="fas fa-map-pin pin_${uniqueid} ${if_pin}"></i>${pinStr}
|
||||
</li>
|
||||
<li class="${if_mine}" onclick="redraft('${uniqueid}','${acct_id}')"
|
||||
style="padding:0">
|
||||
<i class="material-icons" aria-hidden="true">redo</i>${lang.lang_parse_redraft}
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
${trans}
|
||||
<div>
|
||||
<button onclick="postMessage(['openUrl', '${toot.url}'], '*')"
|
||||
class="waves-effect waves-dark btn-flat actct" style="padding:0">
|
||||
<i class="fas text-darken-3 fa-globe"></i>
|
||||
${lang.lang_parse_link}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<li onclick="postMessage(['openUrl', '${toot.url}'], '*')"
|
||||
style="padding:0">
|
||||
<i class="fas text-darken-3 fa-globe"></i>${lang.lang_parse_link}
|
||||
</li>
|
||||
${pluginHtml}
|
||||
</ul>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
})
|
||||
}
|
||||
if (onlyContent) return content
|
||||
if (mix == 'mix') {
|
||||
return [templete, local, times]
|
||||
} else {
|
||||
@@ -1246,7 +1237,6 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
} else if (auth == 'request') {
|
||||
var ftxt = lang.lang_parse_request
|
||||
}
|
||||
console.log(auth, ftxt)
|
||||
if (popup > 0 || popup == -1 || notf) {
|
||||
var notftext = ftxt + '<br>'
|
||||
} else {
|
||||
@@ -1296,7 +1286,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
dis_name = dis_name.replace(regExp, emoji_url)
|
||||
@@ -1319,7 +1309,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
} else {
|
||||
var udg = `<a onclick="udg('${toot.id}','${acct_id}');" user="${toot.acct}" class="udg">`
|
||||
}
|
||||
var latest = date(toot.last_status_at, 'relative')
|
||||
var latest = date(toot.last_status_at, 'relative', true)
|
||||
if (toot.last_status_at) {
|
||||
var latesthtml = `<div class="cbadge" style="width:100px;">Last <span class="voice">toot</span>: ${latest}</div>`
|
||||
} else {
|
||||
@@ -1339,6 +1329,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
user="${toot.acct}"
|
||||
onerror="this.src='../../img/loading.svg'"
|
||||
alt=""
|
||||
loading="lazy"
|
||||
/>
|
||||
</a></div>
|
||||
<div class="area-display_name">
|
||||
@@ -1372,7 +1363,6 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
}
|
||||
//クライアントダイアログ
|
||||
function client(name) {
|
||||
$('#contextWrap').addClass('hide')
|
||||
if (name != 'Unknown') {
|
||||
//聞く
|
||||
Swal.fire({
|
||||
@@ -1530,7 +1520,7 @@ function pollParse(poll, acct_id, emojis) {
|
||||
}
|
||||
var emoji_url = `
|
||||
<img draggable="false" src="${emoSource}" class="emoji-img" data-emoji="${shortcode}"
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');">
|
||||
alt=" :${shortcode}: " title="${shortcode}" onclick="this.classList.toggle('bigemoji');" loading="lazy">
|
||||
`
|
||||
var regExp = new RegExp(':' + shortcode + ':', 'g')
|
||||
choiceText = choiceText.replace(regExp, emoji_url)
|
||||
@@ -1560,3 +1550,312 @@ function pollParse(poll, acct_id, emojis) {
|
||||
</div>`
|
||||
return pollHtml
|
||||
}
|
||||
|
||||
//MastodonBaseStreaming
|
||||
var mastodonBaseWs = {}
|
||||
var mastodonBaseWsStatus = {}
|
||||
function mastodonBaseStreaming(acct_id) {
|
||||
console.log('start to connect mastodonBaseStreaming of ' + acct_id)
|
||||
notfCommon(acct_id, 0, null, 'no')
|
||||
const domain = localStorage.getItem(`domain_${acct_id}`)
|
||||
if (mastodonBaseWsStatus[domain]) return
|
||||
mastodonBaseWsStatus[domain] = 'undetected'
|
||||
const at = localStorage.getItem(`acct_${acct_id}_at`)
|
||||
let wss = 'wss://' + domain
|
||||
if (localStorage.getItem('streaming_' + acct_id)) {
|
||||
wss = localStorage.getItem('streaming_' + acct_id)
|
||||
}
|
||||
const start = `${wss}/api/v1/streaming/?access_token=${at}`
|
||||
mastodonBaseWs[domain] = new WebSocket(start)
|
||||
mastodonBaseWs[domain].onopen = function () {
|
||||
mastodonBaseWsStatus[domain] = 'connecting'
|
||||
setTimeout(function () {
|
||||
mastodonBaseWsStatus[domain] = 'available'
|
||||
}, 3000)
|
||||
mastodonBaseWs[domain].send(JSON.stringify({ type: 'subscribe', stream: 'user' }))
|
||||
$('.notice_icon_acct_' + acct_id).removeClass('red-text')
|
||||
}
|
||||
mastodonBaseWs[domain].onmessage = function (mess) {
|
||||
const typeA = JSON.parse(mess.data).event
|
||||
if (typeA == 'delete') {
|
||||
$(`[unique-id=${JSON.parse(mess.data).payload}]`).hide()
|
||||
$(`[unique-id=${JSON.parse(mess.data).payload}]`).remove()
|
||||
} else if (typeA == 'update' || typeA == 'conversation') {
|
||||
//markers show中はダメ
|
||||
const tl = JSON.parse(mess.data).stream
|
||||
const obj = JSON.parse(JSON.parse(mess.data).payload)
|
||||
const tls = getTlMeta(tl[0], tl, acct_id, obj)
|
||||
insertTl(obj, tls)
|
||||
} else if (typeA == 'filters_changed') {
|
||||
filterUpdate(acct_id)
|
||||
} else if (~typeA.indexOf('announcement')) {
|
||||
announ(acct_id, tlid)
|
||||
} else if (typeA == 'notification') {
|
||||
const obj = JSON.parse(JSON.parse(mess.data).payload)
|
||||
let template = ''
|
||||
localStorage.setItem('lastnotf_' + acct_id, obj.id)
|
||||
let popup = localStorage.getItem('popup')
|
||||
if (!popup) {
|
||||
popup = 0
|
||||
}
|
||||
if (obj.type != 'follow' && obj.type != 'follow_request') {
|
||||
template = parse([obj], 'notf', acct_id, 'notf', popup)
|
||||
} else if (obj.type == 'follow_request') {
|
||||
template = userparse([obj.account], 'request', acct_id, 'notf', -1)
|
||||
} else {
|
||||
template = userparse([obj], obj.type, acct_id, 'notf', popup)
|
||||
}
|
||||
if (!$('div[data-notfIndv=' + acct_id + '_' + obj.id + ']').length) {
|
||||
$('div[data-notf=' + acct_id + ']').prepend(template)
|
||||
$('div[data-const=notf_' + acct_id + ']').prepend(template)
|
||||
}
|
||||
jQuery('time.timeago').timeago()
|
||||
} else {
|
||||
console.error('unknown type ' + typeA)
|
||||
}
|
||||
}
|
||||
mastodonBaseWs[domain].onerror = function (error) {
|
||||
notfCommon(acct_id, 0, null, 'only') //fallback
|
||||
console.error("Error closing " + domain)
|
||||
console.error(error)
|
||||
if (mastodonBaseWsStatus[domain] == 'available') {
|
||||
/*M.toast({
|
||||
html:
|
||||
`${lang.lang_parse_disconnected}<button class="btn-flat toast-action" onclick="location.reload()">${lang.lang_layout_reconnect}</button>`,
|
||||
completeCallback: function () {
|
||||
parseColumn()
|
||||
|
||||
},
|
||||
displayLength: 3000
|
||||
})*/
|
||||
parseColumn()
|
||||
}
|
||||
mastodonBaseWsStatus[domain] = 'cannotuse'
|
||||
setTimeout(function () {
|
||||
mastodonBaseWsStatus[domain] = 'cannotuse'
|
||||
}, 3000)
|
||||
mastodonBaseWs[domain] = false
|
||||
return false
|
||||
}
|
||||
mastodonBaseWs[domain].onclose = function () {
|
||||
notfCommon(acct_id, 0, null, 'only') //fallback
|
||||
console.warn("Closing " + domain)
|
||||
if (mastodonBaseWsStatus[domain] == 'available') {
|
||||
/*M.toast({
|
||||
html:
|
||||
`${lang.lang_parse_disconnected}<button class="btn-flat toast-action" onclick="location.reload()">${lang.lang_layout_reconnect}</button>`,
|
||||
completeCallback: function () {
|
||||
parseColumn()
|
||||
|
||||
},
|
||||
displayLength: 3000
|
||||
})*/
|
||||
parseColumn()
|
||||
}
|
||||
mastodonBaseWs[domain] = false
|
||||
mastodonBaseWsStatus[domain] = 'cannotuse'
|
||||
setTimeout(function () {
|
||||
mastodonBaseWsStatus[domain] = 'cannotuse'
|
||||
}, 3000)
|
||||
return false
|
||||
}
|
||||
}
|
||||
function insertTl(obj, tls) {
|
||||
for (const timeline of tls) {
|
||||
const { id, voice, type, acct_id } = timeline
|
||||
const mute = getFilterTypeByAcct(acct_id, type)
|
||||
if ($(`#unread_${id} .material-icons`).hasClass('teal-text')) continue
|
||||
if (!$(`#timeline_${id} [toot-id=${obj.id}]`).length) {
|
||||
if (voice) {
|
||||
say(obj.content)
|
||||
}
|
||||
const template = parse([obj], type, acct_id, id, '', mute, type)
|
||||
console.log($(`#timeline_box_${id}_box .tl-box`).scrollTop(), `timeline_box_${id}_box .tl-box`)
|
||||
if (
|
||||
$(`#timeline_box_${id}_box .tl-box`).scrollTop() === 0
|
||||
) {
|
||||
$(`#timeline_${id}`).prepend(template)
|
||||
} else {
|
||||
let pool = localStorage.getItem('pool_' + id)
|
||||
if (pool) {
|
||||
pool = template + pool
|
||||
} else {
|
||||
pool = template
|
||||
}
|
||||
localStorage.setItem('pool_' + id, pool)
|
||||
}
|
||||
scrollck()
|
||||
additional(acct_id, id)
|
||||
jQuery('time.timeago').timeago()
|
||||
}
|
||||
}
|
||||
}
|
||||
function getTlMeta(type, data, num, status) {
|
||||
const acct_id = num.toString()
|
||||
const columns = localStorage.getItem('column')
|
||||
const obj = JSON.parse(columns)
|
||||
let ret = []
|
||||
let i = -1
|
||||
switch (type) {
|
||||
case 'user':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'mix' || tl.type == 'home') {
|
||||
let voice = false
|
||||
if (localStorage.getItem('voice_' + i)) voice = true
|
||||
ret.push({
|
||||
id: i,
|
||||
voice: voice,
|
||||
type: tl.type,
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
}
|
||||
break
|
||||
case 'public:local':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'mix' || tl.type == 'local') {
|
||||
let voice = false
|
||||
if (localStorage.getItem('voice_' + i)) voice = true
|
||||
ret.push({
|
||||
id: i,
|
||||
voice: voice,
|
||||
type: tl.type,
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
}
|
||||
break
|
||||
case 'public:local:media':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'local-media') {
|
||||
let voice = false
|
||||
if (localStorage.getItem('voice_' + i)) voice = true
|
||||
ret.push({
|
||||
id: i,
|
||||
voice: voice,
|
||||
type: tl.type,
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'public':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'pub') {
|
||||
console.log(i, tl)
|
||||
let voice = false
|
||||
if (localStorage.getItem('voice_' + i)) voice = true
|
||||
ret.push({
|
||||
id: i,
|
||||
voice: voice,
|
||||
type: tl.type,
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'public:media':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'pub-media') {
|
||||
let voice = false
|
||||
if (localStorage.getItem('voice_' + i)) voice = true
|
||||
ret.push({
|
||||
id: i,
|
||||
voice: voice,
|
||||
type: tl.type,
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'list':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'list' && tl.data == data[1]) {
|
||||
let voice = false
|
||||
if (localStorage.getItem('voice_' + i)) voice = true
|
||||
ret.push({
|
||||
id: i,
|
||||
voice: voice,
|
||||
type: tl.type,
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'direct':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
if (tl.type == 'dm') {
|
||||
let voice = false
|
||||
if (localStorage.getItem('voice_' + i)) voice = true
|
||||
ret.push({
|
||||
id: i,
|
||||
voice: voice,
|
||||
type: tl.type,
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'hashtag':
|
||||
for (const tl of obj) {
|
||||
i++
|
||||
if (tl.domain != acct_id) continue
|
||||
const columnDataRaw = tl.data
|
||||
let columnData
|
||||
if (!columnDataRaw.name) {
|
||||
columnData = { name: columnDataRaw }
|
||||
} else {
|
||||
columnData = columnDataRaw
|
||||
}
|
||||
if (tl.type == 'tag') {
|
||||
let voice = false
|
||||
let can = false
|
||||
if (columnData.name == data[1]) can = true
|
||||
//any
|
||||
if (columnData.any.split(',').includes(data[1])) can = true
|
||||
//all
|
||||
const { tags } = status
|
||||
if (columnData.all) can = true
|
||||
for (const { name } of tags) {
|
||||
if (!columnData.all.split(',').includes(name)) {
|
||||
can = false
|
||||
break
|
||||
}
|
||||
}
|
||||
//none
|
||||
if (columnData.none) can = true
|
||||
for (const { name } of tags) {
|
||||
if (columnData.none.split(',').includes(name)) {
|
||||
can = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if (localStorage.getItem('voice_' + i)) voice = true
|
||||
ret.push({
|
||||
id: i,
|
||||
voice: voice,
|
||||
type: tl.type,
|
||||
acct_id: tl.domain
|
||||
})
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
console.error(`Cannot catch`);
|
||||
}
|
||||
return ret
|
||||
}
|
@@ -25,6 +25,7 @@ function pollToggle() {
|
||||
}
|
||||
$('#post-box').css('width', width + 'px')
|
||||
$('#emoji').addClass('hide')
|
||||
$('#draft').addClass('hide')
|
||||
$('#poll').addClass('hide')
|
||||
$('#pollsta').text(lang.lang_no)
|
||||
}
|
||||
|
@@ -219,9 +219,9 @@ function moreTs(tlid, q) {
|
||||
function graphDraw(tag, acct_id) {
|
||||
var tags = ''
|
||||
var his = tag.history
|
||||
return graphDrawCore(his, tag)
|
||||
return graphDrawCore(his, tag, acct_id)
|
||||
}
|
||||
function graphDrawCore(his, tag) {
|
||||
function graphDrawCore(his, tag, acct_id) {
|
||||
var max = Math.max.apply(null, [
|
||||
his[0].uses,
|
||||
his[1].uses,
|
||||
@@ -307,7 +307,7 @@ function trend() {
|
||||
Object.keys(json).forEach(function(keye) {
|
||||
var tag = json[keye]
|
||||
var his = tag.history
|
||||
tags = graphDrawCore(his, tag)
|
||||
tags = graphDrawCore(his, tag, acct_id)
|
||||
|
||||
$('#src-contents').append(tags)
|
||||
})
|
||||
|
514
app/js/tl/tl.js
514
app/js/tl/tl.js
@@ -44,10 +44,10 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
//Integratedなら飛ばす
|
||||
$('#notice_' + tlid).text(
|
||||
'Integrated TL(' +
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
)
|
||||
$('#notice_icon_' + tlid).text('merge_type')
|
||||
mixtl(acct_id, tlid, 'integrated', delc, voice)
|
||||
@@ -56,10 +56,10 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
//Local+なら飛ばす
|
||||
$('#notice_' + tlid).text(
|
||||
'Local+ TL(' +
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
)
|
||||
$('#notice_icon_' + tlid).text('people_outline')
|
||||
mixtl(acct_id, tlid, 'plus', delc, voice)
|
||||
@@ -69,11 +69,11 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
notf(acct_id, tlid, 'direct')
|
||||
$('#notice_' + tlid).text(
|
||||
cap(type, data, acct_id) +
|
||||
'(' +
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
'(' +
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
)
|
||||
$('#notice_icon_' + tlid).text('notifications')
|
||||
return
|
||||
@@ -82,11 +82,11 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
getBookmark(acct_id, tlid)
|
||||
$('#notice_' + tlid).text(
|
||||
cap(type, data, acct_id) +
|
||||
'(' +
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
'(' +
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
)
|
||||
$('#notice_icon_' + tlid).text('bookmark')
|
||||
return
|
||||
@@ -95,11 +95,11 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
getUtl(acct_id, tlid, data, false)
|
||||
$('#notice_' + tlid).text(
|
||||
cap(type, data, acct_id) +
|
||||
'(' +
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
'(' +
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
)
|
||||
$('#notice_icon_' + tlid).text('person')
|
||||
return
|
||||
@@ -117,11 +117,11 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
}
|
||||
$('#notice_' + tlid).text(
|
||||
cap(type, data, acct_id) +
|
||||
'(' +
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
'(' +
|
||||
localStorage.getItem('user_' + acct_id) +
|
||||
'@' +
|
||||
domain +
|
||||
')'
|
||||
)
|
||||
} else {
|
||||
var hdr = {
|
||||
@@ -206,7 +206,7 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
additional(acct_id, tlid)
|
||||
jQuery('time.timeago').timeago()
|
||||
todc()
|
||||
reload(type, '', acct_id, tlid, data, mute, delc, voice)
|
||||
reload(type, 'from timeline to reload', acct_id, tlid, data, mute, delc, voice)
|
||||
if (type == 'home' || type == 'notf') {
|
||||
//Markers
|
||||
var markers = localStorage.getItem('markers')
|
||||
@@ -247,194 +247,243 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
}
|
||||
}, 100)
|
||||
} else {
|
||||
var misskey = false
|
||||
if (localStorage.getItem('streaming_' + acct_id)) {
|
||||
var wss = localStorage.getItem('streaming_' + acct_id)
|
||||
} else {
|
||||
var wss = 'wss://' + domain
|
||||
}
|
||||
if (type == 'home') {
|
||||
var start = wss + '/api/v1/streaming/?stream=user&access_token=' + at
|
||||
} else if (type == 'pub') {
|
||||
var add = ''
|
||||
if(remoteOnlyCk(tlid)){
|
||||
add = '&remote=true'
|
||||
}
|
||||
var start = wss + '/api/v1/streaming/?stream=public&access_token=' + at + add
|
||||
} else if (type == 'pub-media') {
|
||||
var add = ''
|
||||
if(remoteOnlyCk(tlid)){
|
||||
add = '&remote=true'
|
||||
}var start =
|
||||
wss + '/api/v1/streaming/?stream=public:media&access_token=' + at + add
|
||||
} else if (type == 'local') {
|
||||
var start =
|
||||
wss + '/api/v1/streaming/?stream=public:local&access_token=' + at
|
||||
} else if (type == 'local-media') {
|
||||
var start =
|
||||
wss +
|
||||
'/api/v1/streaming/?stream=public:local:media&only_media=true&access_token=' +
|
||||
at
|
||||
} else if (type == 'tag') {
|
||||
if (type == 'tag') {
|
||||
var tag = localStorage.getItem('tag-range')
|
||||
if (tag == 'local') {
|
||||
data = data + '&local=true'
|
||||
var domain = localStorage.getItem('domain_' + acct_id)
|
||||
if (mastodonBaseWsStatus[domain] == 'cannotuse') {
|
||||
oldStreaming(type, cc, acct_id, tlid, data, mute, delc, voice, mode)
|
||||
} else if (mastodonBaseWsStatus[domain] == 'undetected' || mastodonBaseWsStatus[domain] == 'connecting') {
|
||||
const mbws = setInterval(function () {
|
||||
if (mastodonBaseWsStatus[domain] == 'cannotuse') {
|
||||
oldStreaming(type, cc, acct_id, tlid, data, mute, delc, voice, mode)
|
||||
clearInterval(mbws)
|
||||
} else if (mastodonBaseWsStatus[domain] == 'available') {
|
||||
$('#notice_icon_' + tlid).removeClass('red-text')
|
||||
stremaingSubscribe(type, acct_id, data)
|
||||
clearInterval(mbws)
|
||||
}
|
||||
}
|
||||
var start =
|
||||
wss +
|
||||
'/api/v1/streaming/?stream=hashtag&tag=' +
|
||||
data +
|
||||
'&access_token=' +
|
||||
at
|
||||
} else if (type == 'noauth') {
|
||||
var start = 'wss://' + acct_id + '/api/v1/streaming/?stream=public:local'
|
||||
} else if (type == 'list') {
|
||||
var start =
|
||||
wss +
|
||||
'/api/v1/streaming/?stream=list&list=' +
|
||||
data +
|
||||
'&access_token=' +
|
||||
at
|
||||
} else if (type == 'dm') {
|
||||
var start = wss + '/api/v1/streaming/?stream=direct&access_token=' + at
|
||||
}
|
||||
var wsid = websocket.length
|
||||
localStorage.setItem('wss_' + tlid, wsid)
|
||||
websocket[wsid] = new WebSocket(start)
|
||||
websocket[wsid].onopen = function (mess) {
|
||||
console.table({
|
||||
tlid: tlid,
|
||||
type: 'Connect Streaming API' + type,
|
||||
domain: domain,
|
||||
message: [mess],
|
||||
})
|
||||
errorct = 0
|
||||
}, 1000)
|
||||
} else if (mastodonBaseWsStatus[domain] == 'available') {
|
||||
$('#notice_icon_' + tlid).removeClass('red-text')
|
||||
}
|
||||
websocket[wsid].onmessage = function (mess) {
|
||||
console.log([tlid + ':Receive Streaming API:', JSON.parse(mess.data)])
|
||||
if (misskey) {
|
||||
if (JSON.parse(mess.data).type == 'note') {
|
||||
var obj = JSON.parse(mess.data).body
|
||||
if (voice) {
|
||||
say(obj.text)
|
||||
}
|
||||
websocketNotf[acct_id].send(
|
||||
JSON.stringify({
|
||||
type: 'capture',
|
||||
id: obj.id,
|
||||
})
|
||||
)
|
||||
var templete = misskeyParse([obj], type, acct_id, tlid, '', mute)
|
||||
var pool = localStorage.getItem('pool_' + tlid)
|
||||
if (pool) {
|
||||
pool = templete + pool
|
||||
} else {
|
||||
pool = templete
|
||||
}
|
||||
localStorage.setItem('pool_' + tlid, pool)
|
||||
scrollck()
|
||||
jQuery('time.timeago').timeago()
|
||||
}
|
||||
} else {
|
||||
var typeA = JSON.parse(mess.data).event
|
||||
if (typeA == 'delete') {
|
||||
var obj = JSON.parse(mess.data).payload
|
||||
if (delc == 'true') {
|
||||
$(
|
||||
'#timeline_' +
|
||||
tlid +
|
||||
' [unique-id=' +
|
||||
JSON.parse(mess.data).payload +
|
||||
']'
|
||||
).addClass('emphasized')
|
||||
$(
|
||||
'#timeline_' +
|
||||
tlid +
|
||||
' [unique-id=' +
|
||||
JSON.parse(mess.data).payload +
|
||||
']'
|
||||
).addClass('by_delcatch')
|
||||
} else {
|
||||
$('[unique-id=' + JSON.parse(mess.data).payload + ']').hide()
|
||||
$('[unique-id=' + JSON.parse(mess.data).payload + ']').remove()
|
||||
}
|
||||
} else if (typeA == 'update' || typeA == 'conversation') {
|
||||
if (
|
||||
!$('#unread_' + tlid + ' .material-icons').hasClass('teal-text')
|
||||
) {
|
||||
//markers show中はダメ
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload)
|
||||
if (
|
||||
$('#timeline_' + tlid + ' [toot-id=' + obj.id + ']').length < 1
|
||||
) {
|
||||
if (voice) {
|
||||
say(obj.content)
|
||||
}
|
||||
var templete = parse([obj], type, acct_id, tlid, '', mute, type)
|
||||
if (
|
||||
$('timeline_box_' + tlid + '_box .tl-box').scrollTop() === 0
|
||||
) {
|
||||
$('#timeline_' + tlid).prepend(templete)
|
||||
} else {
|
||||
var pool = localStorage.getItem('pool_' + tlid)
|
||||
if (pool) {
|
||||
pool = templete + pool
|
||||
} else {
|
||||
pool = templete
|
||||
}
|
||||
localStorage.setItem('pool_' + tlid, pool)
|
||||
}
|
||||
scrollck()
|
||||
additional(acct_id, tlid)
|
||||
jQuery('time.timeago').timeago()
|
||||
} else {
|
||||
todo('二重取得発生中')
|
||||
}
|
||||
|
||||
todc()
|
||||
}
|
||||
} else if (typeA == 'filters_changed') {
|
||||
filterUpdate(acct_id)
|
||||
} else if (~typeA.indexOf('announcement')) {
|
||||
announ(acct_id, tlid)
|
||||
}
|
||||
}
|
||||
}
|
||||
websocket[wsid].onerror = function (error) {
|
||||
console.error('Error closing')
|
||||
console.error(error)
|
||||
if (mode == 'error') {
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
todo('WebSocket Error ' + error)
|
||||
} else {
|
||||
errorct++
|
||||
console.log(errorct)
|
||||
if (errorct < 3) {
|
||||
reconnector(tlid, type, acct_id, data, 'error')
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
websocket[wsid].onclose = function () {
|
||||
console.warn('Closing ' + tlid)
|
||||
if (mode == 'error') {
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
todo('WebSocket Closed')
|
||||
} else {
|
||||
errorct++
|
||||
console.log(errorct)
|
||||
if (errorct < 3) {
|
||||
reconnector(tlid, type, acct_id, data, 'error')
|
||||
}
|
||||
}
|
||||
return false
|
||||
stremaingSubscribe(type, acct_id, data)
|
||||
}
|
||||
}
|
||||
}
|
||||
function stremaingSubscribe(type, acct_id, data, unsubscribe) {
|
||||
let command = 'subscribe'
|
||||
if (unsubscribe) command = 'unsubscribe'
|
||||
let stream
|
||||
const domain = localStorage.getItem('domain_' + acct_id)
|
||||
if(type == 'home') return false
|
||||
if (type === 'local' || type === 'mix') { stream = 'public:local' }
|
||||
else if (type === 'local-media') { stream = 'public:local:media' }
|
||||
else if (type === 'pub') { stream = 'public' }
|
||||
else if (type === 'pub-media') { stream = 'public:media' }
|
||||
else if (type === 'list') {
|
||||
mastodonBaseWs[domain].send(JSON.stringify({type: command, stream: 'list', list: data}))
|
||||
return true
|
||||
} else if (type === 'tag') {
|
||||
let arr = []
|
||||
let name = data
|
||||
if (data.name) name = data.name
|
||||
arr.push(name)
|
||||
if (data.any) arr = arr.concat(data.any.split(','))
|
||||
if (data.all) arr = arr.concat(data.all.split(','))
|
||||
for (const tag of arr) {
|
||||
mastodonBaseWs[domain].send(JSON.stringify({type: command, stream: 'hashtag', tag: tag}))
|
||||
}
|
||||
return true
|
||||
}
|
||||
mastodonBaseWs[domain].send(JSON.stringify({type: command, stream: stream}))
|
||||
}
|
||||
function oldStreaming(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
var misskey = false
|
||||
const domain = localStorage.getItem(`domain_${acct_id}`)
|
||||
var at = localStorage.getItem('acct_' + acct_id + '_at')
|
||||
if (localStorage.getItem('streaming_' + acct_id)) {
|
||||
var wss = localStorage.getItem('streaming_' + acct_id)
|
||||
} else {
|
||||
var wss = 'wss://' + domain
|
||||
}
|
||||
if (type == 'home') {
|
||||
var start = wss + '/api/v1/streaming/?stream=user&access_token=' + at
|
||||
} else if (type == 'pub') {
|
||||
var add = ''
|
||||
if (remoteOnlyCk(tlid)) {
|
||||
add = '&remote=true'
|
||||
}
|
||||
var start = wss + '/api/v1/streaming/?stream=public&access_token=' + at + add
|
||||
} else if (type == 'pub-media') {
|
||||
var add = ''
|
||||
if (remoteOnlyCk(tlid)) {
|
||||
add = '&remote=true'
|
||||
} var start =
|
||||
wss + '/api/v1/streaming/?stream=public:media&access_token=' + at + add
|
||||
} else if (type == 'local') {
|
||||
var start =
|
||||
wss + '/api/v1/streaming/?stream=public:local&access_token=' + at
|
||||
} else if (type == 'local-media') {
|
||||
var start =
|
||||
wss +
|
||||
'/api/v1/streaming/?stream=public:local:media&only_media=true&access_token=' +
|
||||
at
|
||||
} else if (type == 'tag') {
|
||||
var tag = localStorage.getItem('tag-range')
|
||||
if (tag == 'local') {
|
||||
data = data + '&local=true'
|
||||
}
|
||||
if (data.name) {
|
||||
data = data.name
|
||||
}
|
||||
var start =
|
||||
wss +
|
||||
'/api/v1/streaming/?stream=hashtag&tag=' +
|
||||
data +
|
||||
'&access_token=' +
|
||||
at + add
|
||||
} else if (type == 'noauth') {
|
||||
var start = 'wss://' + acct_id + '/api/v1/streaming/?stream=public:local'
|
||||
} else if (type == 'list') {
|
||||
var start =
|
||||
wss +
|
||||
'/api/v1/streaming/?stream=list&list=' +
|
||||
data +
|
||||
'&access_token=' +
|
||||
at
|
||||
} else if (type == 'dm') {
|
||||
var start = wss + '/api/v1/streaming/?stream=direct&access_token=' + at
|
||||
}
|
||||
var wsid = websocket.length
|
||||
localStorage.setItem('wss_' + tlid, wsid)
|
||||
websocket[wsid] = new WebSocket(start)
|
||||
websocket[wsid].onopen = function (mess) {
|
||||
console.table({
|
||||
tlid: tlid,
|
||||
type: 'Connect Streaming API' + type,
|
||||
domain: domain,
|
||||
message: [mess],
|
||||
})
|
||||
errorct = 0
|
||||
$('#notice_icon_' + tlid).removeClass('red-text')
|
||||
}
|
||||
websocket[wsid].onmessage = function (mess) {
|
||||
console.log([tlid + ':Receive Streaming API:', JSON.parse(mess.data)])
|
||||
if (misskey) {
|
||||
if (JSON.parse(mess.data).type == 'note') {
|
||||
var obj = JSON.parse(mess.data).body
|
||||
if (voice) {
|
||||
say(obj.text)
|
||||
}
|
||||
websocketNotf[acct_id].send(
|
||||
JSON.stringify({
|
||||
type: 'capture',
|
||||
id: obj.id,
|
||||
})
|
||||
)
|
||||
var templete = misskeyParse([obj], type, acct_id, tlid, '', mute)
|
||||
var pool = localStorage.getItem('pool_' + tlid)
|
||||
if (pool) {
|
||||
pool = templete + pool
|
||||
} else {
|
||||
pool = templete
|
||||
}
|
||||
localStorage.setItem('pool_' + tlid, pool)
|
||||
scrollck()
|
||||
jQuery('time.timeago').timeago()
|
||||
}
|
||||
} else {
|
||||
var typeA = JSON.parse(mess.data).event
|
||||
if (typeA == 'delete') {
|
||||
var obj = JSON.parse(mess.data).payload
|
||||
if (delc == 'true') {
|
||||
$(
|
||||
'#timeline_' +
|
||||
tlid +
|
||||
' [unique-id=' +
|
||||
JSON.parse(mess.data).payload +
|
||||
']'
|
||||
).addClass('emphasized')
|
||||
$(
|
||||
'#timeline_' +
|
||||
tlid +
|
||||
' [unique-id=' +
|
||||
JSON.parse(mess.data).payload +
|
||||
']'
|
||||
).addClass('by_delcatch')
|
||||
} else {
|
||||
$('[unique-id=' + JSON.parse(mess.data).payload + ']').hide()
|
||||
$('[unique-id=' + JSON.parse(mess.data).payload + ']').remove()
|
||||
}
|
||||
} else if (typeA == 'update' || typeA == 'conversation') {
|
||||
if (
|
||||
!$('#unread_' + tlid + ' .material-icons').hasClass('teal-text')
|
||||
) {
|
||||
//markers show中はダメ
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload)
|
||||
if (
|
||||
$('#timeline_' + tlid + ' [toot-id=' + obj.id + ']').length < 1
|
||||
) {
|
||||
if (voice) {
|
||||
say(obj.content)
|
||||
}
|
||||
var templete = parse([obj], type, acct_id, tlid, '', mute, type)
|
||||
if (
|
||||
$('timeline_box_' + tlid + '_box .tl-box').scrollTop() === 0
|
||||
) {
|
||||
$('#timeline_' + tlid).prepend(templete)
|
||||
} else {
|
||||
var pool = localStorage.getItem('pool_' + tlid)
|
||||
if (pool) {
|
||||
pool = templete + pool
|
||||
} else {
|
||||
pool = templete
|
||||
}
|
||||
localStorage.setItem('pool_' + tlid, pool)
|
||||
}
|
||||
scrollck()
|
||||
additional(acct_id, tlid)
|
||||
jQuery('time.timeago').timeago()
|
||||
} else {
|
||||
todo('二重取得発生中')
|
||||
}
|
||||
|
||||
todc()
|
||||
}
|
||||
} else if (typeA == 'filters_changed') {
|
||||
filterUpdate(acct_id)
|
||||
} else if (~typeA.indexOf('announcement')) {
|
||||
announ(acct_id, tlid)
|
||||
}
|
||||
}
|
||||
}
|
||||
websocket[wsid].onerror = function (error) {
|
||||
console.error('Error closing')
|
||||
console.error(error)
|
||||
if (mode == 'error') {
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
todo('WebSocket Error ' + error)
|
||||
} else {
|
||||
errorct++
|
||||
console.log(errorct)
|
||||
if (errorct < 3) {
|
||||
reconnector(tlid, type, acct_id, data, 'error')
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
websocket[wsid].onclose = function () {
|
||||
console.warn('Closing ' + tlid)
|
||||
if (mode == 'error') {
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
todo('WebSocket Closed')
|
||||
} else {
|
||||
errorct++
|
||||
console.log(errorct)
|
||||
if (errorct < 3) {
|
||||
reconnector(tlid, type, acct_id, data, 'error')
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
//一定のスクロールで発火
|
||||
function moreload(type, tlid) {
|
||||
var multi = localStorage.getItem('column')
|
||||
@@ -866,13 +915,13 @@ function com(type, data, tlid) {
|
||||
return 'public?local=true&only_media=true&'
|
||||
} else if (type == 'pub') {
|
||||
var add = ''
|
||||
if(remoteOnlyCk(tlid)){
|
||||
if (remoteOnlyCk(tlid)) {
|
||||
add = 'remote=true&'
|
||||
}
|
||||
return 'public?' + add
|
||||
} else if (type == 'pub-media') {
|
||||
var add = ''
|
||||
if(remoteOnlyCk(tlid)){
|
||||
if (remoteOnlyCk(tlid)) {
|
||||
add = 'remote=true&'
|
||||
}
|
||||
return 'public?only_media=true&' + add
|
||||
@@ -998,7 +1047,7 @@ function reconnector(tlid, type, acct_id, data, mode) {
|
||||
var voice = false
|
||||
}
|
||||
var mute = getFilterTypeByAcct(acct_id, type)
|
||||
reload(type, '', acct_id, tlid, data, mute, '', voice, mode)
|
||||
var domain = localStorage.getItem('domain_' + acct_id)
|
||||
}
|
||||
M.toast({ html: lang.lang_tl_reconnect, displayLength: 2000 })
|
||||
}
|
||||
@@ -1008,6 +1057,12 @@ function columnReload(tlid, type) {
|
||||
var multi = localStorage.getItem('column')
|
||||
var obj = JSON.parse(multi)
|
||||
var acct_id = obj[tlid].domain
|
||||
var domain = localStorage.getItem('domain_' + acct_id)
|
||||
if (mastodonBaseWsStatus[domain] == 'available') {
|
||||
stremaingSubscribe(type, acct_id, obj[tlid].data, true)
|
||||
parseColumn(tlid, true)
|
||||
return true
|
||||
}
|
||||
if (type == 'mix' || type == 'integrated' || type == 'plus') {
|
||||
if (localStorage.getItem('voice_' + tlid)) {
|
||||
var voice = true
|
||||
@@ -1027,15 +1082,10 @@ function columnReload(tlid, type) {
|
||||
$('#notice_icon_' + tlid).removeClass('red-text')
|
||||
getBookmark(acct_id, tlid, false)
|
||||
} else {
|
||||
|
||||
var wss = localStorage.getItem('wss_' + tlid)
|
||||
websocket[wss].close()
|
||||
if (localStorage.getItem('voice_' + tlid)) {
|
||||
var voice = true
|
||||
} else {
|
||||
var voice = false
|
||||
}
|
||||
var mute = getFilterTypeByAcct(acct_id, type)
|
||||
parseColumn(tlid)
|
||||
parseColumn(tlid, false)
|
||||
}
|
||||
}
|
||||
//Markers
|
||||
@@ -1078,10 +1128,10 @@ function getMarker(tlid, type, acct_id) {
|
||||
$('#unread_' + tlid).attr(
|
||||
'title',
|
||||
lang.lang_layout_unread +
|
||||
':' +
|
||||
json.updated_at +
|
||||
' v' +
|
||||
json.version
|
||||
':' +
|
||||
json.updated_at +
|
||||
' v' +
|
||||
json.version
|
||||
)
|
||||
$('#unread_' + tlid).attr('data-id', json.last_read_id)
|
||||
} else {
|
||||
@@ -1285,8 +1335,8 @@ function asReadEnd() {
|
||||
onBeforeOpen: () => {
|
||||
Swal.showLoading()
|
||||
},
|
||||
onClose: () => {},
|
||||
}).then((result) => {})
|
||||
onClose: () => { },
|
||||
}).then((result) => { })
|
||||
} else {
|
||||
postMessage(['asReadComp', ''], '*')
|
||||
}
|
||||
@@ -1349,8 +1399,8 @@ function getUtl(acct_id, tlid, data, more) {
|
||||
moreloading = true
|
||||
if (more) {
|
||||
var sid = $('#timeline_' + tlid + ' .cvo')
|
||||
.last()
|
||||
.attr('unique-id')
|
||||
.last()
|
||||
.attr('unique-id')
|
||||
var ad = '?max_id=' + sid
|
||||
} else {
|
||||
var ad = ''
|
||||
@@ -1414,11 +1464,13 @@ function announ(acct_id, tlid) {
|
||||
if (ct > 0) {
|
||||
$('.notf-announ_' + acct_id + '_ct').text(ct)
|
||||
}
|
||||
|
||||
localStorage.setItem('announ_' + acct_id, json[0].id)
|
||||
} else {
|
||||
$('.notf-announ_' + acct_id).addClass('hide')
|
||||
}
|
||||
var templete = announParse(json, acct_id, tlid)
|
||||
$('#announce_' + tlid).html(templete)
|
||||
$('.announce_' + acct_id).html(templete)
|
||||
jQuery('time.timeago').timeago()
|
||||
todc()
|
||||
}
|
||||
@@ -1426,7 +1478,7 @@ function announ(acct_id, tlid) {
|
||||
}
|
||||
//buildQuery
|
||||
function buildQuery(name, data) {
|
||||
if(!data || data == '') return ''
|
||||
if (!data || data == '') return ''
|
||||
var arr = data.split(',')
|
||||
var str = ''
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
|
@@ -120,7 +120,7 @@ function imageXhr(id, key, murl) {
|
||||
element.onload = function() {
|
||||
var width = element.naturalWidth
|
||||
if(width < 650) {
|
||||
width = 650;
|
||||
width = 650
|
||||
}
|
||||
var height = element.naturalHeight
|
||||
var windowH = $(window).height()
|
||||
@@ -182,7 +182,7 @@ function zoom(z) {
|
||||
$('#imagewrap img').css('height', hgt + 'px')
|
||||
}
|
||||
//スマホ対応ドラッグ移動システム
|
||||
;(function() {
|
||||
(function() {
|
||||
$.fn.dragScroll = function() {
|
||||
var target = this
|
||||
$(this)
|
||||
|
@@ -42,18 +42,16 @@ function parseColumn(target, dontclose) {
|
||||
var multi = localStorage.getItem('multi')
|
||||
if (multi) {
|
||||
var obj = JSON.parse(multi)
|
||||
|
||||
var templete
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var acct = obj[key]
|
||||
|
||||
localStorage.setItem('name_' + key, acct.name)
|
||||
localStorage.setItem('user_' + key, acct.user)
|
||||
localStorage.setItem('user-id_' + key, acct.id)
|
||||
localStorage.setItem('prof_' + key, acct.prof)
|
||||
localStorage.setItem('domain_' + key, acct.domain)
|
||||
localStorage.setItem('acct_' + key + '_at', acct.at)
|
||||
notf(key, 0)
|
||||
if(!target) mastodonBaseStreaming(key)
|
||||
ckdb(key)
|
||||
//フィルターデータ読もう
|
||||
getFilter(key)
|
||||
@@ -76,8 +74,12 @@ function parseColumn(target, dontclose) {
|
||||
var obj = [
|
||||
{
|
||||
domain: 0,
|
||||
type: 'local',
|
||||
type: 'home',
|
||||
},
|
||||
{
|
||||
domain: 0,
|
||||
type: 'local',
|
||||
}
|
||||
]
|
||||
var json = JSON.stringify(obj)
|
||||
localStorage.setItem('column', json)
|
||||
@@ -147,7 +149,6 @@ function parseColumn(target, dontclose) {
|
||||
icnsert = ' style="color: #' + ichex + '" '
|
||||
}
|
||||
}
|
||||
console.log(acct)
|
||||
if (acctlist[acct.domain]) {
|
||||
if (acctlist[acct.domain].background != 'def') {
|
||||
insert = insert + ' border-bottom:medium solid #' + acctlist[acct.domain].background + ';'
|
||||
@@ -158,15 +159,21 @@ function parseColumn(target, dontclose) {
|
||||
} else {
|
||||
localStorage.removeItem('hasNotfC_' + acct.domain)
|
||||
}
|
||||
var css = ''
|
||||
var width = localStorage.getItem('width')
|
||||
if (width) {
|
||||
var css = ' min-width:' + width + 'px;'
|
||||
css = ' min-width:' + width + 'px;'
|
||||
}
|
||||
var maxWidth = localStorage.getItem('max-width')
|
||||
if (maxWidth) {
|
||||
css = css +'max-width:' + maxWidth + 'px;'
|
||||
}
|
||||
var margin = localStorage.getItem('margin')
|
||||
if (margin) {
|
||||
css = css +'margin-right:' + margin + 'px;'
|
||||
}
|
||||
if (acct.width) {
|
||||
var css = ' min-width:' + acct.width + 'px;max-width:' + acct.width + 'px;'
|
||||
}
|
||||
if (!css) {
|
||||
var css = ''
|
||||
css = css + ' min-width:' + acct.width + 'px !important;max-width:' + acct.width + 'px !important;'
|
||||
}
|
||||
if (acct.type == 'webview') {
|
||||
if (localStorage.getItem('fixwidth')) {
|
||||
@@ -221,65 +228,63 @@ function parseColumn(target, dontclose) {
|
||||
var animecss = ''
|
||||
}
|
||||
var unread = `<a id="unread_${key}" onclick="showUnread('${key}','${acct.type}','${acct.domain}')"
|
||||
class="setting nex" title="${lang.lang_layout_unread}">
|
||||
<i class="material-icons waves-effect nex">more</i>
|
||||
</a>${lang.lang_layout_unread}<br>`
|
||||
class="setting nex waves-effect" title="${lang.lang_layout_unread}">
|
||||
<i class="material-icons waves-effect nex">more</i><br />${lang.lang_layout_unread}
|
||||
</a>`
|
||||
var notfDomain = acct.domain
|
||||
var notfKey = key
|
||||
var if_tag = ''
|
||||
var if_tag_btn = ''
|
||||
if (acct.type == 'notf') {
|
||||
var exclude =
|
||||
lang.lang_excluded +
|
||||
`:<br>
|
||||
`<div style="border: 1px solid; padding: 5px; margin-top: 5px; margin-bottom: 5px;">${lang.lang_layout_excluded}:<br>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="exc-reply-${key}" ${excludeCk(key, 'mention')} />
|
||||
<span>
|
||||
<i class="fas fa-share exc-icons"></i>
|
||||
${lang.lang_layout_mention}
|
||||
</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="exc-fav-${key}" ${excludeCk(key, 'favourite')} />
|
||||
<span>
|
||||
<i class="fas fa-star exc-icons"></i>
|
||||
${lang.lang_layout_fav}
|
||||
</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="exc-bt-${key}" ${excludeCk(key, 'reblog')} />
|
||||
<span>
|
||||
<i class="fas fa-retweet exc-icons"></i>
|
||||
${lang.lang_layout_bt}
|
||||
</span>
|
||||
</label>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="exc-follow-${key}" ${excludeCk(key, 'follow')} />
|
||||
<span>
|
||||
<i class="fas fa-users exc-icons"></i>
|
||||
${lang.lang_status_follow}
|
||||
</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" class="filled-in" id="exc-poll-${key}" ${excludeCk(key, 'poll')} />
|
||||
<span>
|
||||
<i class="fas fa-tasks exc-icons"></i>
|
||||
${lang.lang_layout_poll}
|
||||
</span>
|
||||
</label>
|
||||
<button class="btn waves-effect" style="width:60px; padding:0;" onclick="exclude('${key}')">Filter</button>`
|
||||
</label> <br />
|
||||
<button class="btn btn-flat waves-effect notf-exclude-btn waves-light" style="width:calc(50% - 11px); padding:0;" onclick="exclude('${key}')">Filter</button>`
|
||||
if (checkNotfFilter(key)) {
|
||||
exclude =
|
||||
exclude +
|
||||
`<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter('${key}')">
|
||||
`<button class="btn btn-flat red-text waves-effect notf-exclude-btn waves-light" style="width:calc(50% - 11px); padding:0;" onclick="resetNotfFilter('${key}')">
|
||||
Clear all
|
||||
</button>`
|
||||
}
|
||||
exclude = exclude + '<br>'
|
||||
exclude = exclude + '</div>'
|
||||
notfDomain = 'dummy'
|
||||
notfKey = 'dummy'
|
||||
} else if (acct.type == 'home') {
|
||||
var exclude = `<a onclick="ebtToggle('${key}')" class="setting nex">
|
||||
<i class="fas fa-retweet waves-effect nex" title="${lang.lang_layout_excludingbt}" style="font-size:24px"></i>
|
||||
<span id="sta-bt-${key}">Off</span>
|
||||
</a>
|
||||
var exclude = `<a onclick="ebtToggle('${key}')" class="setting nex waves-effect">
|
||||
<i class="fas fa-retweet nex" title="${lang.lang_layout_excludingbt}" style="font-size: 24px"></i>
|
||||
<span id="sta-bt-${key}">Off</span><br />
|
||||
${lang.lang_layout_excludingbt}
|
||||
<br>`
|
||||
</a>`
|
||||
} else if (acct.type == 'tag') {
|
||||
if (acct.data.name) {
|
||||
var name = acct.data.name
|
||||
@@ -328,15 +333,13 @@ function parseColumn(target, dontclose) {
|
||||
var basehtml = `<div style="${css}" class="box ${animecss}" id="timeline_box_${basekey}_parentBox"></div>`
|
||||
$('#timeline-container').append(basehtml)
|
||||
}
|
||||
var left_hold = `<a onclick="leftFoldSet('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftFold}">view_agenda</i>
|
||||
</a>
|
||||
${lang.lang_layout_leftFold}<br>`
|
||||
var left_hold = `<a onclick="leftFoldSet('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftFold}">view_agenda</i><br />
|
||||
${lang.lang_layout_leftFold}</a>`
|
||||
} else {
|
||||
var left_hold = `<a onclick="leftFoldRemove('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftUnfold}">view_column</i>
|
||||
</a>
|
||||
${lang.lang_layout_leftUnfold}<br>`
|
||||
var left_hold = `<a onclick="leftFoldRemove('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftUnfold}">view_column</i><br />
|
||||
${lang.lang_layout_leftUnfold}</a>`
|
||||
}
|
||||
if (key === 0) {
|
||||
left_hold = ''
|
||||
@@ -355,22 +358,21 @@ function parseColumn(target, dontclose) {
|
||||
var addHeight = ''
|
||||
}
|
||||
if (acct.type != 'pub' && acct.type != 'pub-media') {
|
||||
console.log(acct.type, key)
|
||||
var mediaFil = `<a onclick="mediaToggle('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_mediafil}">perm_media</i>
|
||||
<span id="sta-media-${key}">On</span>
|
||||
</a>${lang.lang_layout_mediafil}`
|
||||
var mediaFil = `<a onclick="mediaToggle('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_mediafil}">perm_media</i>
|
||||
<span id="sta-media-${key}">On</span><br />
|
||||
${lang.lang_layout_mediafil}</a>`
|
||||
} else {
|
||||
var mediaFil = `<a onclick="remoteOnly('${key}','${acct.type}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_remoteOnly}">perm_media</i>
|
||||
var mediaFil = `<a onclick="remoteOnly('${key}','${acct.type}')" class="setting nex waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_remoteOnly}">perm_media</i><br />
|
||||
<span id="sta-remote-${key}">Off</span>
|
||||
</a>${lang.lang_layout_remoteOnly}`
|
||||
${lang.lang_layout_remoteOnly}</a>`
|
||||
}
|
||||
var html = `
|
||||
<div class="boxIn" id="timeline_box_${key}_box" tlid="${key}" data-acct="${acct.domain}" style="${addHeight}">
|
||||
<div class="notice-box z-depth-2" id="menu_${key}" style="${insert}">
|
||||
<div class="area-notice">
|
||||
<i class="material-icons waves-effect ${isMisRed}" id="notice_icon_${key}" ${notf_attr}
|
||||
<i class="material-icons waves-effect ${isMisRed} notice_icon_acct_${acct.domain}" id="notice_icon_${key}" ${notf_attr}
|
||||
style="font-size:40px; padding-top:25%;"
|
||||
onclick="checkStr('${acct.type}','${data}','${acct.domain}', '${key}', '${delc}','${voice}',null)"
|
||||
title="${lang.lang_layout_gotop}" aria-hidden="true">
|
||||
@@ -413,33 +415,35 @@ function parseColumn(target, dontclose) {
|
||||
</div>
|
||||
</div>
|
||||
<div class="column-hide notf-indv-box z-depth-4" id="notf-box_${notfKey}">
|
||||
<div id="announce_${notfKey}" style="border: 1px solid"></div>
|
||||
<div class="announce_${acct.domain}" style="border: 1px solid"></div>
|
||||
<div id="notifications_${notfKey}" data-notf="${notfDomain}" data-type="notf" class="notf-timeline">
|
||||
</div>
|
||||
</div>
|
||||
<div class="column-hide notf-indv-box" id="util-box_${key}" style="padding:5px;">
|
||||
${exclude}
|
||||
${unread}
|
||||
${exclude}${left_hold}
|
||||
${mediaFil}<br>
|
||||
<a onclick="cardToggle('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_linkanades}">link</i>
|
||||
<span id="sta-card-${key}">On</span>
|
||||
</a>
|
||||
${left_hold}
|
||||
${mediaFil}
|
||||
<a onclick="cardToggle('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_linkanades}">link</i>
|
||||
<span id="sta-card-${key}">On</span><br />
|
||||
${lang.lang_layout_linkana}
|
||||
<br>
|
||||
<a onclick="voiceToggle('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_tts}">hearing</i>
|
||||
<span id="sta-voice-${key}">On</span>
|
||||
</a>
|
||||
<a onclick="voiceToggle('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_tts}">hearing</i>
|
||||
<span id="sta-voice-${key}">On</span><br />
|
||||
${lang.lang_layout_tts}
|
||||
TL<br>
|
||||
<a onclick="columnReload('${key}','${acct.type}')" class="setting nex ${if_misskey_hide}">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_reconnect}">refresh</i>
|
||||
</a>
|
||||
<span>
|
||||
TL</a>
|
||||
<a onclick="columnReload('${key}','${acct.type}')" class="setting nex ${if_misskey_hide} waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_reconnect}">refresh</i>
|
||||
<br />
|
||||
${lang.lang_layout_reconnect}
|
||||
</span>
|
||||
<br>
|
||||
</a>
|
||||
<a onclick="resetWidth('${key}')" class="setting nex waves-effect">
|
||||
<i class="material-icons nex" title="${lang.lang_layout_resetWidth}">refresh</i>
|
||||
<br />
|
||||
${lang.lang_layout_resetWidth}
|
||||
</a><br />
|
||||
${lang.lang_layout_headercolor}
|
||||
<br>
|
||||
<div id="picker_${key}" class="color-picker"></div>
|
||||
@@ -652,7 +656,7 @@ function removeColumn(tlid) {
|
||||
localStorage.setItem('column', json)
|
||||
sortLoad()
|
||||
$('#timeline_box_' + tlid + '_box').remove()
|
||||
if(!data.left_fold) {
|
||||
if (!data.left_fold) {
|
||||
$('#timeline_box_' + tlid + '_parentBox').remove()
|
||||
}
|
||||
}
|
||||
@@ -786,7 +790,8 @@ function webviewParse(url, key, insert, icnsert, css) {
|
||||
<i class="fab fa-twitter waves-effect" id="notice_icon_${key}" style="font-size:40px; padding-top:25%;"></i>
|
||||
</div>
|
||||
<div class="area-notice_name tl-title">WebView('${url}')</div>
|
||||
<div class="area-sta"></div>
|
||||
<div class="area-sta">
|
||||
</div>
|
||||
<div class="area-a2">
|
||||
<a onclick="removeColumn('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_delthis}" ${icnsert}>cancel</i>
|
||||
@@ -829,7 +834,7 @@ function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, anim
|
||||
${lang.lang_layout_leftUnfold}
|
||||
</span><br>`
|
||||
}
|
||||
if(type == 'utl') {
|
||||
if (type == 'utl') {
|
||||
var dataHtml = false
|
||||
} else {
|
||||
var dataHtml = data
|
||||
@@ -899,13 +904,13 @@ function bookmark(key, data) {
|
||||
tl('bookmark', '', data, key, 'false', voice, '')
|
||||
}
|
||||
function utl(key, acct_id, data) {
|
||||
if(!data) {
|
||||
if (!data) {
|
||||
var multi = localStorage.getItem('column')
|
||||
var obj = JSON.parse(multi)
|
||||
data = obj[key].data
|
||||
acct_id = obj[key].domain
|
||||
}
|
||||
|
||||
|
||||
console.log(key, data)
|
||||
if (localStorage.getItem('voice_' + key)) {
|
||||
var voice = true
|
||||
@@ -930,3 +935,11 @@ function leftFoldRemove(key) {
|
||||
localStorage.setItem('column', json)
|
||||
parseColumn()
|
||||
}
|
||||
function resetWidth(key) {
|
||||
var multi = localStorage.getItem('column')
|
||||
var obj = JSON.parse(multi)
|
||||
obj[key].width = null
|
||||
var json = JSON.stringify(obj)
|
||||
localStorage.setItem('column', json)
|
||||
$(`#timeline_box_${key}_parentBox`).attr('style', '')
|
||||
}
|
@@ -1,24 +1,24 @@
|
||||
function menu() {
|
||||
localStorage.setItem("menu-done", true);
|
||||
localStorage.setItem("menu-done", true)
|
||||
$("#fukidashi").addClass("hide")
|
||||
if (!$("#menu").hasClass("appear")) {
|
||||
$("#menu").addClass("appear")
|
||||
var left = localStorage.getItem("menu-left");
|
||||
var left = localStorage.getItem("menu-left")
|
||||
if (left > $('body').width() - $('#menu').width()) {
|
||||
left = $('body').width() - $('#menu').width();
|
||||
left = $('body').width() - $('#menu').width()
|
||||
} else if (left < 0) {
|
||||
left = 0;
|
||||
left = 0
|
||||
}
|
||||
var top = localStorage.getItem("menu-top");
|
||||
var top = localStorage.getItem("menu-top")
|
||||
if (top > $('body').height() - $('#menu').height()) {
|
||||
top = $('body').height() - $('#menu').height();
|
||||
top = $('body').height() - $('#menu').height()
|
||||
} else if (top < 0) {
|
||||
top = 0;
|
||||
top = 0
|
||||
}
|
||||
$('#menu').css("left", left + "px")
|
||||
$('#menu').css("top", top + "px")
|
||||
var height = localStorage.getItem("menu-height");
|
||||
var width = localStorage.getItem("menu-width");
|
||||
var height = localStorage.getItem("menu-height")
|
||||
var width = localStorage.getItem("menu-width")
|
||||
if(height){
|
||||
$('#menu').css("height", height + "px")
|
||||
}else{
|
||||
@@ -27,13 +27,13 @@ function menu() {
|
||||
if(width){
|
||||
$('#menu').css("width", width + "px")
|
||||
}
|
||||
$('#menu').fadeIn();
|
||||
$("#menu-bar").html("TheDesk " + localStorage.getItem("ver"));
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#add-box").removeClass("hide");
|
||||
$("#left-menu div").removeClass("active");
|
||||
$("#addColumnMenu").addClass("active");
|
||||
$("#addColumnMenu").click();
|
||||
$('#menu').fadeIn()
|
||||
$("#menu-bar").html("TheDesk " + localStorage.getItem("ver"))
|
||||
$(".menu-content").addClass("hide")
|
||||
$("#add-box").removeClass("hide")
|
||||
$("#left-menu div").removeClass("active")
|
||||
$("#addColumnMenu").addClass("active")
|
||||
$("#addColumnMenu").click()
|
||||
} else {
|
||||
$('#menu').fadeOut()
|
||||
$("#menu").removeClass("appear")
|
||||
@@ -44,35 +44,35 @@ $(function () {
|
||||
$("#menu").draggable({
|
||||
handle: "#menu-bar",
|
||||
stop: function () {
|
||||
var left = $('#menu').offset().left;
|
||||
var left = $('#menu').offset().left
|
||||
if (left > $('body').width() - $('#menu').width()) {
|
||||
left = $('body').width() - $('#menu').width();
|
||||
left = $('body').width() - $('#menu').width()
|
||||
} else if (left < 0) {
|
||||
left = 0;
|
||||
left = 0
|
||||
}
|
||||
var top = $('#menu').offset().top;
|
||||
var top = $('#menu').offset().top
|
||||
if (top > $('body').height() - $('#menu').height()) {
|
||||
top = $('body').height() - $('#menu').height();
|
||||
top = $('body').height() - $('#menu').height()
|
||||
} else if (top < 0) {
|
||||
top = 0;
|
||||
top = 0
|
||||
}
|
||||
localStorage.setItem("menu-left", left);
|
||||
localStorage.setItem("menu-top", top);
|
||||
localStorage.setItem("menu-left", left)
|
||||
localStorage.setItem("menu-top", top)
|
||||
}
|
||||
});
|
||||
})
|
||||
$("#menu").resizable({
|
||||
minHeight: 150,
|
||||
minWidth: 200,
|
||||
stop: function (event, ui) {
|
||||
localStorage.setItem("menu-height", ui.size.height);
|
||||
localStorage.setItem("menu-width", ui.size.width);
|
||||
localStorage.setItem("menu-height", ui.size.height)
|
||||
localStorage.setItem("menu-width", ui.size.width)
|
||||
}
|
||||
});
|
||||
});
|
||||
})
|
||||
})
|
||||
function help() {
|
||||
$("#left-menu a").removeClass("active");
|
||||
$("#helpMenu").addClass("active");
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#help-box").removeClass("hide");
|
||||
$("#left-menu a").removeClass("active")
|
||||
$("#helpMenu").addClass("active")
|
||||
$(".menu-content").addClass("hide")
|
||||
$("#help-box").removeClass("hide")
|
||||
postMessage(["sendSinmpleIpc", "getLogs"], "*")
|
||||
}
|
@@ -1,32 +1,32 @@
|
||||
function pip(id) {
|
||||
$("#pip-content").html($("[toot-id=" + id + "] .additional").html());
|
||||
$("#pip").removeClass("hide");
|
||||
$("#pip-content").html($("[toot-id=" + id + "] .additional").html())
|
||||
$("#pip").removeClass("hide")
|
||||
}
|
||||
function endPip() {
|
||||
$("#pip-content").html("");
|
||||
$("#pip").addClass("hide");
|
||||
$("#pip-content").html("")
|
||||
$("#pip").addClass("hide")
|
||||
}
|
||||
|
||||
function pipHoriz() {
|
||||
if ($("#pip").hasClass("pip-left")) {
|
||||
$("#pip").removeClass("pip-left");
|
||||
$(".pip-horiz").text("chevron_left");
|
||||
$("#pip").addClass("pip-right");
|
||||
$("#pip").removeClass("pip-left")
|
||||
$(".pip-horiz").text("chevron_left")
|
||||
$("#pip").addClass("pip-right")
|
||||
} else {
|
||||
$("#pip").addClass("pip-left");
|
||||
$("#pip").removeClass("pip-right");
|
||||
$(".pip-horiz").text("chevron_right");
|
||||
$("#pip").addClass("pip-left")
|
||||
$("#pip").removeClass("pip-right")
|
||||
$(".pip-horiz").text("chevron_right")
|
||||
}
|
||||
}
|
||||
|
||||
function pipVert() {
|
||||
if ($("#pip").hasClass("pip-top")) {
|
||||
$("#pip").removeClass("pip-top");
|
||||
$("#pip").addClass("pip-bottom");
|
||||
$(".pip-vert").text("expand_less");
|
||||
$("#pip").removeClass("pip-top")
|
||||
$("#pip").addClass("pip-bottom")
|
||||
$(".pip-vert").text("expand_less")
|
||||
} else {
|
||||
$("#pip").addClass("pip-top");
|
||||
$("#pip").removeClass("pip-bottom");
|
||||
$(".pip-vert").text("expand_more");
|
||||
$("#pip").addClass("pip-top")
|
||||
$("#pip").removeClass("pip-bottom")
|
||||
$(".pip-vert").text("expand_more")
|
||||
}
|
||||
}
|
@@ -101,7 +101,6 @@ if (location.search) {
|
||||
$('.mini-btn').text('expand_less')
|
||||
}
|
||||
}
|
||||
window.onload = initPostbox
|
||||
function initPostbox() {
|
||||
$('#posttgl').click(function (e) {
|
||||
if (!$('#post-box').hasClass('appear')) {
|
||||
@@ -126,11 +125,6 @@ function initPostbox() {
|
||||
localStorage.removeItem('nohide')
|
||||
srcBox('close')
|
||||
})
|
||||
$('#contextWrap').click(function (e) {
|
||||
$('#contextWrap').addClass('hide')
|
||||
$('.contextMenu').addClass('hide')
|
||||
$('.act-icon').text('expand_more')
|
||||
})
|
||||
$('#textarea,#cw-text').focusout(function (e) {
|
||||
localStorage.setItem('nohide', true)
|
||||
var countup = function () {
|
||||
|
@@ -1,38 +1,38 @@
|
||||
var r = document.getElementById("radio");
|
||||
var r = document.getElementById("radio")
|
||||
function Rtoggle() {
|
||||
if ($("#radio").hasClass("play")) {
|
||||
Rstop();
|
||||
Rstop()
|
||||
} else {
|
||||
$("#radio-view").toggleClass("hide");
|
||||
$("#radio-view").toggleClass("show");
|
||||
$("#radio-input").addClass("hide");
|
||||
$("#radio-view").toggleClass("hide")
|
||||
$("#radio-view").toggleClass("show")
|
||||
$("#radio-input").addClass("hide")
|
||||
}
|
||||
}
|
||||
function Rplay(url, name) {
|
||||
$("#radio").attr('src', url);
|
||||
r.load();
|
||||
r.play();
|
||||
$("#radio").addClass("play");
|
||||
$("#radio-btn").addClass("teal-text");
|
||||
$("#radio-sta").html("<br>Now Playing:" + name);
|
||||
$("#radio").attr('src', url)
|
||||
r.load()
|
||||
r.play()
|
||||
$("#radio").addClass("play")
|
||||
$("#radio-btn").addClass("teal-text")
|
||||
$("#radio-sta").html("<br>Now Playing:" + name)
|
||||
}
|
||||
function Rstop() {
|
||||
$("#radio").attr("src", "");
|
||||
r.pause();
|
||||
$("#radio").removeClass("play");
|
||||
$("#radio-btn").removeClass("teal-text");
|
||||
$("#radio-sta").html("");
|
||||
$("#radio").attr("src", "")
|
||||
r.pause()
|
||||
$("#radio").removeClass("play")
|
||||
$("#radio-btn").removeClass("teal-text")
|
||||
$("#radio-sta").html("")
|
||||
}
|
||||
function Ryourself() {
|
||||
$("#radio-input").removeClass("hide");
|
||||
$("#radio-view").addClass("hide");
|
||||
$("#radio-input").removeClass("hide")
|
||||
$("#radio-view").addClass("hide")
|
||||
}
|
||||
function Rselect() {
|
||||
$("#radio-input").addClass("hide");
|
||||
$("#radio-view").removeClass("hide");
|
||||
$("#radio-input").addClass("hide")
|
||||
$("#radio-view").removeClass("hide")
|
||||
}
|
||||
function Rinput() {
|
||||
var url = $("#radio-url").val();
|
||||
var url = $("#radio-url").val()
|
||||
Rplay(url, url)
|
||||
}
|
||||
/*
|
||||
|
@@ -80,22 +80,6 @@ var postView = new Vue({
|
||||
})
|
||||
//設定ボタン押した。
|
||||
function settings() {
|
||||
var cd = $('[name=theme]:checked').val()
|
||||
var ct = $('[data-ct=' + cd + ']').html()
|
||||
if (cd == 'custom' && !$('#custom-sel-sel').val()) {
|
||||
var theme = localStorage.getItem('theme')
|
||||
if (!theme) {
|
||||
var theme = 'white'
|
||||
}
|
||||
$('#' + theme).prop('checked', true)
|
||||
} else {
|
||||
if (cd != localStorage.getItem('theme')) {
|
||||
M.toast({ html: lang.lang_setting_theme.replace('{{set}}', ct), displayLength: 3000 })
|
||||
}
|
||||
//テーマはこの場で設定
|
||||
themes(cd)
|
||||
localStorage.setItem('theme', cd)
|
||||
}
|
||||
var fontd = $('#font').val()
|
||||
if (fontd) {
|
||||
if (fontd != localStorage.getItem('font')) {
|
||||
@@ -167,10 +151,10 @@ function load() {
|
||||
var font = ''
|
||||
}
|
||||
$('#font').val(font)
|
||||
$('#c1-file').text(localStorage.getItem('custom1'))
|
||||
$('#c2-file').text(localStorage.getItem('custom2'))
|
||||
$('#c3-file').text(localStorage.getItem('custom3'))
|
||||
$('#c4-file').text(localStorage.getItem('custom4'))
|
||||
$('#c1-file').text(localStorage.getItem('custom1') != 'null' ? localStorage.getItem('custom1') : '')
|
||||
$('#c2-file').text(localStorage.getItem('custom2') != 'null' ? localStorage.getItem('custom2') : '')
|
||||
$('#c3-file').text(localStorage.getItem('custom3') != 'null' ? localStorage.getItem('custom3') : '')
|
||||
$('#c4-file').text(localStorage.getItem('custom4') != 'null' ? localStorage.getItem('custom4') : '')
|
||||
var cvol = localStorage.getItem('customVol')
|
||||
if (cvol) {
|
||||
$('#soundvol').val(cvol * 100)
|
||||
@@ -508,35 +492,39 @@ function fontList(arg) {
|
||||
function insertFont(name) {
|
||||
$('#font').val(name)
|
||||
}
|
||||
$('.color-picker').each(function (i, elem) {
|
||||
pickerDefine(i, 'fff')
|
||||
})
|
||||
function pickerDefine(i, color) {
|
||||
var pickr = new Pickr({
|
||||
el: '#color-picker' + i,
|
||||
default: color,
|
||||
showAlways: true,
|
||||
appendToBody: true,
|
||||
closeWithKey: 'Escape',
|
||||
comparison: false,
|
||||
components: {
|
||||
preview: true, // Left side color comparison
|
||||
opacity: false, // Opacity slider
|
||||
hue: true, // Hue slider
|
||||
interaction: {
|
||||
rgba: false, // rgba option (red green blue and alpha)
|
||||
input: true, // input / output element
|
||||
},
|
||||
},
|
||||
strings: {
|
||||
save: 'Save', // Default for save button
|
||||
clear: 'Clear', // Default for clear button
|
||||
},
|
||||
})
|
||||
pickr.on('change', (...args) => {
|
||||
var rgb = 'rgb(' + args[0].toRGBA()[0] + ',' + args[0].toRGBA()[1] + ',' + args[0].toRGBA()[2] + ')'
|
||||
$('#color-picker' + i + '_value').val(rgb)
|
||||
})
|
||||
function copyColor(from, to) {
|
||||
let props = [
|
||||
'background', 'subcolor', 'text', 'accent',
|
||||
'modal', 'modalFooter', 'third', 'forth',
|
||||
'bottom', 'emphasized', 'postbox', 'active',
|
||||
'selected', 'selectedWithShared'
|
||||
]
|
||||
let i = 0
|
||||
let color
|
||||
for (tag of props) {
|
||||
if (tag == from) {
|
||||
let used = $(`#use-color_${i}`).prop('checked')
|
||||
if (!used) {
|
||||
Swal.fire({
|
||||
type: 'error',
|
||||
title: 'Not checked',
|
||||
})
|
||||
break
|
||||
}
|
||||
color = $(`#color-picker${i}_value`).val()
|
||||
break
|
||||
}
|
||||
i++
|
||||
}
|
||||
if (!color) return false
|
||||
for (tag of props) {
|
||||
if (tag == to) {
|
||||
$(`#color-picker${i}_value`).val(color)
|
||||
$(`#use-color_${i}`).prop('checked', true)
|
||||
break
|
||||
}
|
||||
i++
|
||||
}
|
||||
}
|
||||
function customComp() {
|
||||
var nameC = $('#custom_name').val()
|
||||
@@ -544,59 +532,32 @@ function customComp() {
|
||||
return false
|
||||
}
|
||||
var descC = $('#custom_desc').val()
|
||||
var primaryC = $('#color-picker0_value').val()
|
||||
if (!primaryC) {
|
||||
primaryC = 'rgb(255,255,255)'
|
||||
}
|
||||
var secondaryC = $('#color-picker1_value').val()
|
||||
if (!secondaryC) {
|
||||
secondaryC = 'rgb(255,255,255)'
|
||||
}
|
||||
var textC = $('#color-picker2_value').val()
|
||||
if (!textC) {
|
||||
textC = 'rgb(255,255,255)'
|
||||
}
|
||||
var bgC = $('#color-picker0_value').val()
|
||||
var subcolorC = $('#color-picker2_value').val()
|
||||
var textC = $('#color-picker1_value').val()
|
||||
var accentC = $('#color-picker3_value').val()
|
||||
var multi = localStorage.getItem('multi')
|
||||
if ($('#pickers').hasClass('advanceTheme')) {
|
||||
var accentC = $('#color-picker3_value').val()
|
||||
if (!accentC) {
|
||||
accentC = null
|
||||
let advanced = [
|
||||
'modal', 'modalFooter', 'third', 'forth',
|
||||
'bottom', 'emphasized', 'postbox', 'active',
|
||||
'selected', 'selectedWithShared'
|
||||
]
|
||||
var advanceTheme = {}
|
||||
let i = 4
|
||||
for (tag of advanced) {
|
||||
let used = $(`#use-color_${i}`).prop('checked')
|
||||
if (used) {
|
||||
advanceTheme[tag] = $(`#color-picker${i}_value`).val()
|
||||
}
|
||||
var activeC = $('#color-picker4_value').val()
|
||||
if (!activeC) {
|
||||
activeC = null
|
||||
}
|
||||
var modalC = $('#color-picker5_value').val()
|
||||
if (!modalC) {
|
||||
modalC = null
|
||||
}
|
||||
var bottomC = $('#color-picker6_value').val()
|
||||
if (!bottomC) {
|
||||
bottomC = null
|
||||
}
|
||||
var postboxC = $('#color-picker7_value').val()
|
||||
if (!postboxC) {
|
||||
postboxC = null
|
||||
}
|
||||
var subcolorC = $('#color-picker8_value').val()
|
||||
if (!subcolorC) {
|
||||
subcolorC = null
|
||||
}
|
||||
var advanceTheme = {
|
||||
TheDeskAccent: accentC,
|
||||
TheDeskActive: activeC,
|
||||
TheDeskModal: modalC,
|
||||
TheDeskBottom: bottomC,
|
||||
TheDeskPostbox: postboxC,
|
||||
TheDeskSubcolor: subcolorC,
|
||||
}
|
||||
} else {
|
||||
var advanceTheme = {}
|
||||
i++
|
||||
}
|
||||
|
||||
var my = JSON.parse(multi)[0].name
|
||||
var id = $('#custom-edit-sel').val()
|
||||
if (id == 'add_new') {
|
||||
const defaults = [
|
||||
'black', 'blue', 'brown', 'green', 'indigo', 'polar', 'snow', 'white'
|
||||
]
|
||||
if (id == 'add_new' || defaults.includes(id)) {
|
||||
id = makeCID()
|
||||
}
|
||||
localStorage.setItem('customtheme-id', id)
|
||||
@@ -605,26 +566,48 @@ function customComp() {
|
||||
author: my,
|
||||
desc: descC,
|
||||
base: $('[name=direction]:checked').val(),
|
||||
vars: {
|
||||
primary: primaryC,
|
||||
secondary: secondaryC,
|
||||
primary: {
|
||||
background: bgC,
|
||||
subcolor: subcolorC,
|
||||
text: textC,
|
||||
accent: accentC
|
||||
},
|
||||
props: advanceTheme,
|
||||
advanced: advanceTheme,
|
||||
id: id,
|
||||
version: '2'
|
||||
}
|
||||
$('#custom_json').val(JSON.stringify(json))
|
||||
themes('custom')
|
||||
$('#custom').prop('checked', true)
|
||||
$('#custom_name').val('')
|
||||
$('#custom_desc').val('')
|
||||
$('#dark').prop('checked', true)
|
||||
$('#custom_json').val('')
|
||||
for (var i = 0; i <= 8; i++) {
|
||||
$('#color-picker' + i + '-wrap').html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
$('#color-picker' + i + '_value').val('')
|
||||
pickerDefine(i, 'fff')
|
||||
}
|
||||
let timerInterval
|
||||
Swal.fire({
|
||||
title: 'Saving...',
|
||||
html: '',
|
||||
timer: 1000,
|
||||
timerProgressBar: true,
|
||||
onBeforeOpen: () => {
|
||||
Swal.showLoading()
|
||||
},
|
||||
onClose: () => {
|
||||
clearInterval(timerInterval)
|
||||
}
|
||||
}).then((result) => {
|
||||
themes()
|
||||
ctLoad()
|
||||
Swal.fire({
|
||||
title: 'Refreshing...',
|
||||
html: '',
|
||||
timer: 1000,
|
||||
timerProgressBar: true,
|
||||
onBeforeOpen: () => {
|
||||
Swal.showLoading()
|
||||
},
|
||||
onClose: () => {
|
||||
clearInterval(timerInterval)
|
||||
}
|
||||
}).then((result) => {
|
||||
$('#custom-edit-sel').val(id)
|
||||
$('select').formSelect()
|
||||
})
|
||||
})
|
||||
postMessage(['themeJsonCreate', JSON.stringify(json)], '*')
|
||||
}
|
||||
function deleteIt() {
|
||||
@@ -633,34 +616,34 @@ function deleteIt() {
|
||||
$('#custom_desc').val('')
|
||||
$('#dark').prop('checked', true)
|
||||
$('#custom_json').val('')
|
||||
for (var i = 0; i <= 8; i++) {
|
||||
$('#color-picker' + i + '-wrap').html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
for (var i = 0; i <= 13; i++) {
|
||||
if (i >= 4) $(`#use-color_${i}`).prop('checked', false)
|
||||
$('#color-picker' + i + '_value').val('')
|
||||
pickerDefine(i, 'fff')
|
||||
}
|
||||
postMessage(['themeJsonDelete', id], '*')
|
||||
postMessage(['themeJsonDelete', id + '.thedesktheme'], '*')
|
||||
}
|
||||
function ctLoad() {
|
||||
postMessage(['sendSinmpleIpc', 'theme-json-list'], '*')
|
||||
}
|
||||
function ctLoadCore(args) {
|
||||
var templete = ''
|
||||
var template = ''
|
||||
var editTemplate = ''
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var theme = args[key]
|
||||
var themeid = theme.id
|
||||
templete = templete + '<option value="' + themeid + '">' + theme.name + '</option>'
|
||||
template = template + `<option value="${themeid}">${theme.name}${theme.compatible ? `(${lang.lang_setting_compat})` : ''}</option>`
|
||||
if (!theme.compatible) editTemplate = editTemplate + `<option value="${themeid}">${theme.name}</option>`
|
||||
})
|
||||
if (args[0]) {
|
||||
localStorage.setItem('customtheme-id', args[0].id)
|
||||
}
|
||||
$('#custom-sel-sel').html(templete)
|
||||
templete = '<option value="add_new">' + $('#edit-selector').attr('data-add') + '</option>' + templete
|
||||
$('#custom-edit-sel').html(templete)
|
||||
$('#custom-sel-sel').html(template)
|
||||
editTemplate = '<option value="add_new">' + $('#edit-selector').attr('data-add') + '</option>' + editTemplate
|
||||
$('#custom-edit-sel').html(editTemplate)
|
||||
$('#custom-sel-sel').val(localStorage.getItem('customtheme-id'))
|
||||
$('select').formSelect()
|
||||
}
|
||||
function customSel() {
|
||||
var id = $('#custom-sel-sel').val()
|
||||
localStorage.setItem('customtheme-id', id)
|
||||
themes(id)
|
||||
}
|
||||
function custom() {
|
||||
var id = $('#custom-edit-sel').val()
|
||||
@@ -669,58 +652,47 @@ function custom() {
|
||||
$('#custom_desc').val('')
|
||||
$('#dark').prop('checked', true)
|
||||
$('#custom_json').val('')
|
||||
for (var i = 0; i <= 8; i++) {
|
||||
$('#color-picker' + i + '-wrap').html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
for (var i = 0; i <= 13; i++) {
|
||||
if (i >= 4) $(`#use-color_${i}`).prop('checked', false)
|
||||
$('#color-picker' + i + '_value').val('')
|
||||
pickerDefine(i, 'fff')
|
||||
}
|
||||
$('#delTheme').addClass('disabled')
|
||||
} else {
|
||||
$('#delTheme').removeClass('disabled')
|
||||
postMessage(['themeJsonRequest', id], '*')
|
||||
postMessage(['themeJsonRequest', id + '.thedesktheme'], '*')
|
||||
}
|
||||
}
|
||||
function customConnect(raw) {
|
||||
var args = raw[0]
|
||||
$('#custom_name').val(args.name)
|
||||
$('#custom_desc').val(args.desc)
|
||||
$('#custom_name').val(`${args.name} ${args.default ? 'Customed' : ''}`)
|
||||
$('#custom_desc').val(args.default ? 'TheDesk default theme with some changes by user' : args.desc)
|
||||
$('#' + args.base).prop('checked', true)
|
||||
//Primary
|
||||
$('#color-picker0-wrap').html('<div class="color-picker" id="color-picker0"></div>')
|
||||
pickerDefine(0, rgbToHex(args.vars.primary))
|
||||
$('#color-picker0_value').val(args.vars.primary)
|
||||
//Secondary
|
||||
$('#color-picker1-wrap').html('<div class="color-picker" id="color-picker1"></div>')
|
||||
pickerDefine(1, rgbToHex(args.vars.secondary))
|
||||
$('#color-picker1_value').val(args.vars.secondary)
|
||||
//Background
|
||||
$('#color-picker0_value').val(args.primary.background)
|
||||
//Text
|
||||
$('#color-picker2-wrap').html('<div class="color-picker" id="color-picker2"></div>')
|
||||
$('#color-picker2_value').val(args.vars.text)
|
||||
pickerDefine(2, rgbToHex(args.vars.text))
|
||||
//TheDesk Only
|
||||
advancedConncet(args, 'TheDeskAccent', 'secondary', 3)
|
||||
advancedConncet(args, 'TheDeskActive', 'primary', 4)
|
||||
advancedConncet(args, 'TheDeskModal', 'secondary', 5)
|
||||
advancedConncet(args, 'TheDeskBottom', 'primary', 6)
|
||||
advancedConncet(args, 'TheDeskPostbox', 'primary', 7)
|
||||
advancedConncet(args, 'TheDeskSubcolor', 'primary', 8)
|
||||
$('#custom_json').val(raw[1])
|
||||
}
|
||||
function advancedConncet(args, tar, sub, i) {
|
||||
if (args.props) {
|
||||
if (args.props[tar]) {
|
||||
var color = args.props[tar]
|
||||
$('#pickers').addClass('advanceTheme')
|
||||
$('.advanced').removeClass('hide')
|
||||
} else {
|
||||
var color = args.vars[sub]
|
||||
$('#color-picker1_value').val(args.primary.text)
|
||||
//Subcolor
|
||||
$('#color-picker2_value').val(args.primary.subcolor)
|
||||
//Accent
|
||||
$('#color-picker3_value').val(args.primary.accent)
|
||||
let advanced = [
|
||||
'modal', 'modalFooter', 'third', 'forth',
|
||||
'bottom', 'emphasized', 'postbox', 'active',
|
||||
'selected', 'selectedWithShared'
|
||||
]
|
||||
let i = 4
|
||||
for (tag of advanced) {
|
||||
if (args.advanced[tag]) {
|
||||
$(`#color-picker${i}_value`).val(args.advanced[tag])
|
||||
|
||||
}
|
||||
} else {
|
||||
var color = args.vars[sub]
|
||||
$(`#use-color_${i}`).prop('checked', true)
|
||||
i++
|
||||
}
|
||||
$('#custom_json').val(raw[1])
|
||||
if (args.default) {
|
||||
$('#delTheme').addClass('disabled')
|
||||
}
|
||||
$('#color-picker' + i + '-wrap').html('<div class="color-picker" id="color-picker' + i + '"></div>')
|
||||
$('#color-picker' + i + '_value').val(color)
|
||||
pickerDefine(i, rgbToHex(color))
|
||||
}
|
||||
function customImp() {
|
||||
var json = $('#custom_import').val()
|
||||
@@ -754,7 +726,108 @@ function customSound(key) {
|
||||
}
|
||||
function customSoundSave(key, file) {
|
||||
localStorage.setItem('custom' + key, file)
|
||||
$('#c1-file').text(file)
|
||||
$(`#c${key}-file`).text(file)
|
||||
}
|
||||
function pluginLoad() {
|
||||
$('#plugin-edit-sel').val('add_new')
|
||||
$(".plugin_delete").addClass('disabled')
|
||||
var template = ''
|
||||
var pgns = localStorage.getItem('plugins')
|
||||
var args = JSON.parse(pgns ? pgns : '[]')
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var theme = args[key]
|
||||
var themeid = theme.id
|
||||
template = template + `<option value="${themeid}">${getMeta(theme.content).name}</option>`
|
||||
})
|
||||
template = '<option value="add_new">' + $('#plugin-selector').attr('data-add') + '</option>' + template
|
||||
$('#plugin-edit-sel').html(template)
|
||||
$('select').formSelect()
|
||||
}
|
||||
function pluginEdit() {
|
||||
var id = $('#plugin-edit-sel').val()
|
||||
$('#plugin').attr('data-id', id)
|
||||
if (id == 'add_new') {
|
||||
$('#plugin').val('')
|
||||
$(".plugin_delete").addClass('disabled')
|
||||
} else {
|
||||
$(".plugin_delete").removeClass('disabled')
|
||||
var pgns = localStorage.getItem('plugins')
|
||||
var args = JSON.parse(pgns ? pgns : '[]')
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var plugin = args[key]
|
||||
var targetId = plugin.id
|
||||
if (targetId == id) $('#plugin').val(plugin.content)
|
||||
})
|
||||
}
|
||||
}
|
||||
function completePlugin(comp) {
|
||||
var pgns = localStorage.getItem('plugins')
|
||||
var args = JSON.parse(pgns ? pgns : '[]')
|
||||
var id = $('#plugin').attr('data-id')
|
||||
|
||||
var inputPlugin = $('#plugin').val()
|
||||
var meta = getMeta(inputPlugin)
|
||||
if (!meta) {
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'error',
|
||||
})
|
||||
return false
|
||||
}
|
||||
if (!meta.name || !meta.version || !meta.event || !meta.author) {
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'error',
|
||||
})
|
||||
return false
|
||||
}
|
||||
if (id == 'add_new') {
|
||||
id = makeCID()
|
||||
args.push({
|
||||
id: id,
|
||||
content: inputPlugin
|
||||
})
|
||||
} else {
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var plugin = args[key]
|
||||
var targetId = plugin.id
|
||||
if (targetId == id) args[key].content = inputPlugin
|
||||
})
|
||||
}
|
||||
var ss = args
|
||||
localStorage.setItem('plugins', JSON.stringify(ss))
|
||||
if(comp) return false
|
||||
$('#plugin').attr('data-id', 'add_new')
|
||||
$('#plugin').val('')
|
||||
pluginLoad()
|
||||
}
|
||||
async function deletePlugin() {
|
||||
const alert = await Swal.fire({
|
||||
title: 'delete',
|
||||
icon: 'warning',
|
||||
showCancelButton: true
|
||||
})
|
||||
if (!alert) return false
|
||||
$('#plugin').val('')
|
||||
var pgns = localStorage.getItem('plugins')
|
||||
var args = JSON.parse(pgns ? pgns : '[]')
|
||||
var id = $('#plugin').attr('data-id')
|
||||
$('#plugin').attr('data-id', 'add_new')
|
||||
var ss = []
|
||||
Object.keys(args).forEach(function (key) {
|
||||
var plugin = args[key]
|
||||
var targetId = plugin.id
|
||||
if (targetId != id) ss.push(plugin)
|
||||
})
|
||||
localStorage.setItem('plugins', JSON.stringify(ss))
|
||||
pluginLoad()
|
||||
}
|
||||
function execEditPlugin() {
|
||||
completePlugin(true)
|
||||
var id = $('#plugin').attr('data-id')
|
||||
var inputPlugin = $('#plugin').val()
|
||||
var meta = getMeta(inputPlugin)
|
||||
execPlugin(id, meta.event, { acct_id: 0, id: null })
|
||||
}
|
||||
window.onload = function () {
|
||||
//最初に読む
|
||||
@@ -766,6 +839,7 @@ window.onload = function () {
|
||||
voiceSettingLoad()
|
||||
oksload()
|
||||
ctLoad()
|
||||
pluginLoad()
|
||||
$('body').addClass(localStorage.getItem('platform'))
|
||||
}
|
||||
//設定画面で未読マーカーは要らない
|
||||
@@ -832,3 +906,5 @@ function lastFmSet() {
|
||||
}
|
||||
M.toast({ html: 'Complete: last.fm', displayLength: 3000 })
|
||||
}
|
||||
|
||||
function stopVideo() { return false }
|
@@ -1,44 +1,44 @@
|
||||
//ソートデータ読み込み
|
||||
function sortLoad () {
|
||||
$("#sort").html("");
|
||||
var col = localStorage.getItem("column");
|
||||
$("#sort").html("")
|
||||
var col = localStorage.getItem("column")
|
||||
if (col) {
|
||||
var obj = JSON.parse(col);
|
||||
var obj = JSON.parse(col)
|
||||
}
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var acct = obj[key];
|
||||
var flag = "false";
|
||||
var acct = obj[key]
|
||||
var flag = "false"
|
||||
if (localStorage.getItem("card_" + key) == "true") {
|
||||
flag = "true"
|
||||
}
|
||||
var insert = "";
|
||||
var insert = ""
|
||||
|
||||
if (acct.background) {
|
||||
if (acct.text == "def") {
|
||||
|
||||
} else {
|
||||
if (acct.text == "black") {
|
||||
var txhex = "000000";
|
||||
var txhex = "000000"
|
||||
} else if (acct.text == "white") {
|
||||
var txhex = "ffffff";
|
||||
var txhex = "ffffff"
|
||||
}
|
||||
insert = ' style="background-color:#' + acct.background + '; color: #' + txhex + '" ';
|
||||
insert = ' style="background-color:#' + acct.background + '; color: #' + txhex + '" '
|
||||
}
|
||||
}
|
||||
var user = localStorage.getItem("user_" + acct.domain);
|
||||
var domain = localStorage.getItem("domain_" + acct.domain);
|
||||
var user = localStorage.getItem("user_" + acct.domain)
|
||||
var domain = localStorage.getItem("domain_" + acct.domain)
|
||||
if (!user || !domain) {
|
||||
var acctdata = "";
|
||||
var acctdata = ""
|
||||
} else {
|
||||
var acctdata = user + "@" + domain;
|
||||
var acctdata = user + "@" + domain
|
||||
}
|
||||
|
||||
var html = '<li class="drag-content" data-id="' + key + '" data-flag="' + flag + '"' + insert + '><div class="sorticon"><i class="material-icons">' + icon(acct.type) + '</i></div><div class="sorttitle">' + cap(acct.type, acct.data, acct.domain) + '</div><div class="sortaction"><a onclick="goColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_sort_gothis + '">forward</i></a> <a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a></div><div class="sortacct">' + acctdata + '</div></li>';
|
||||
$("#sort").append(html);
|
||||
});
|
||||
drag();
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a></div><div class="sortacct">' + acctdata + '</div></li>'
|
||||
$("#sort").append(html)
|
||||
})
|
||||
drag()
|
||||
}
|
||||
|
||||
//TLのタイトル
|
||||
@@ -62,59 +62,59 @@ function Scap(type, data) {
|
||||
} else if (type == "tootsearch") {
|
||||
return "tootsearch(" + data + ")"
|
||||
} else {
|
||||
console.error("unknown timeline type: " + type);
|
||||
console.error("unknown timeline type: " + type)
|
||||
}
|
||||
}
|
||||
|
||||
//jquery-ui依存
|
||||
function drag() {
|
||||
$('#sort').sortable();
|
||||
$('#sort').disableSelection();
|
||||
$('#sort').sortable()
|
||||
$('#sort').disableSelection()
|
||||
}
|
||||
|
||||
//ソート指定
|
||||
function sort() {
|
||||
var arr = [];
|
||||
var flags = [];
|
||||
var arr = []
|
||||
var flags = []
|
||||
$(".drag-content").each(function (i, elem) {
|
||||
var id = $(this).attr("data-id");
|
||||
var flag = $(this).attr("data-flag");
|
||||
var id = $(this).attr("data-id")
|
||||
var flag = $(this).attr("data-flag")
|
||||
arr.push(id)
|
||||
flags.push(flag);
|
||||
});
|
||||
var col = localStorage.getItem("column");
|
||||
var obj = JSON.parse(col);
|
||||
var newobj = [];
|
||||
flags.push(flag)
|
||||
})
|
||||
var col = localStorage.getItem("column")
|
||||
var obj = JSON.parse(col)
|
||||
var newobj = []
|
||||
for (i = 0; i < arr.length; i++) {
|
||||
var data = obj[arr[i]];
|
||||
var data = obj[arr[i]]
|
||||
var add = {
|
||||
domain: data.domain,
|
||||
type: data.type,
|
||||
data: data.data,
|
||||
background: data.background,
|
||||
text: data.text
|
||||
};
|
||||
newobj.push(add);
|
||||
}
|
||||
newobj.push(add)
|
||||
if (flags[i] == "true") {
|
||||
localStorage.setItem("card_" + i, "true");
|
||||
localStorage.setItem("card_" + i, "true")
|
||||
} else {
|
||||
localStorage.removeItem("card_" + i);
|
||||
localStorage.removeItem("card_" + i)
|
||||
}
|
||||
}
|
||||
var json = JSON.stringify(newobj);
|
||||
localStorage.setItem("column", json);
|
||||
$("#sort").html("");
|
||||
var json = JSON.stringify(newobj)
|
||||
localStorage.setItem("column", json)
|
||||
$("#sort").html("")
|
||||
M.toast({ html: "Sorted", displayLength: 3000 })
|
||||
sortLoad();
|
||||
parseColumn();
|
||||
sortLoad()
|
||||
parseColumn()
|
||||
sortMenu()
|
||||
}
|
||||
//ソートボタントグル
|
||||
function sortMenu() {
|
||||
$("#left-menu a").removeClass("active");
|
||||
$("#sortMenu").addClass("active");
|
||||
$(".menu-content").addClass("hide");
|
||||
$("#sort-box").removeClass("hide");
|
||||
$("#sort").html("");
|
||||
sortLoad();
|
||||
$("#left-menu a").removeClass("active")
|
||||
$("#sortMenu").addClass("active")
|
||||
$(".menu-content").addClass("hide")
|
||||
$("#sort-box").removeClass("hide")
|
||||
$("#sort").html("")
|
||||
sortLoad()
|
||||
}
|
@@ -32,7 +32,7 @@ function spotifyDisconnect() {
|
||||
console.error(error)
|
||||
})
|
||||
.then(function (json) {
|
||||
if(!json.success) alert('error')
|
||||
if (!json.success) alert('error')
|
||||
localStorage.removeItem('spotify-token')
|
||||
checkSpotify()
|
||||
})
|
||||
@@ -188,9 +188,8 @@ function nowplaying(mode) {
|
||||
var item = json.recenttracks.track[0]
|
||||
if (!item['@attr']) return false
|
||||
var img = item.image[3]['#text']
|
||||
var isImg = item.streamable * 1
|
||||
var flag = localStorage.getItem('artwork')
|
||||
if (flag && isImg && img) {
|
||||
if (flag && img != 'https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png' && img) {
|
||||
postMessage(['bmpImage', [img, 0]], '*')
|
||||
}
|
||||
var content = localStorage.getItem('np-temp')
|
||||
|
@@ -1,35 +1,20 @@
|
||||
//テーマ適用
|
||||
function themes(theme) {
|
||||
if (!theme) {
|
||||
var theme = localStorage.getItem('theme')
|
||||
var theme = localStorage.getItem('customtheme-id')
|
||||
if (!theme) {
|
||||
var theme = 'black'
|
||||
localStorage.setItem('theme', 'black')
|
||||
localStorage.setItem('customtheme-id', 'black')
|
||||
theme = 'black'
|
||||
}
|
||||
}
|
||||
postMessage(['themeCSSRequest', theme + '.thedesktheme'], '*')
|
||||
var el = document.getElementsByTagName('html')[0]
|
||||
|
||||
el.classList.remove('indigotheme')
|
||||
el.classList.remove('greentheme')
|
||||
el.classList.remove('browntheme')
|
||||
el.classList.remove('blacktheme')
|
||||
el.classList.remove('bluetheme')
|
||||
el.classList.remove('polartheme')
|
||||
el.classList.remove('snowtheme')
|
||||
el.classList.remove('customtheme')
|
||||
el.classList.add(theme + 'theme')
|
||||
el.style.backgroundColor = 'var(--bg)'
|
||||
var font = localStorage.getItem('font')
|
||||
if (font) {
|
||||
font = font.replace(/"(.+)"/, '$1')
|
||||
el.style.fontFamily = '"' + font + '"'
|
||||
if(font) {
|
||||
el.style.fontFamily = font
|
||||
} else {
|
||||
el.style.fontFamily = ''
|
||||
}
|
||||
if (theme == 'custom') {
|
||||
if (localStorage.getItem('customtheme-id')) {
|
||||
postMessage(['themeCSSRequest', localStorage.getItem('customtheme-id')], '*')
|
||||
}
|
||||
}
|
||||
el.style.backgroundColor = 'var(--bg)'
|
||||
}
|
||||
themes()
|
||||
|
@@ -19,7 +19,7 @@ function bottomReverse() {
|
||||
localStorage.setItem('reverse', 'true')
|
||||
}
|
||||
}
|
||||
function tips(mode) {
|
||||
function tips(mode, custom) {
|
||||
postMessage(['sendSinmpleIpc', 'endmem'], '*')
|
||||
clearInterval(clockint)
|
||||
clearInterval(spotStart)
|
||||
@@ -57,22 +57,31 @@ function tips(mode) {
|
||||
tipsToggle()
|
||||
localStorage.setItem('tips', 'itunes')
|
||||
itunestips()
|
||||
} else if (mode == 'custom') {
|
||||
tipsToggle()
|
||||
localStorage.setItem('tips', `custom:${custom}`)
|
||||
execPlugin(custom, 'tips', null)
|
||||
}
|
||||
}
|
||||
//メモリ
|
||||
function startmem() {
|
||||
postMessage(['sendSinmpleIpc', 'startmem'], '*')
|
||||
}
|
||||
function renderMem(use, cpu, total) {
|
||||
function renderMem(use, cpu, total, core, uptime) {
|
||||
let day = Math.floor(uptime / 60 / 60 / 24)
|
||||
let hour = Math.floor(uptime / 60 /60 % 24)
|
||||
if(hour < 10) hour = '0' + hour
|
||||
let min = Math.floor(uptime / 60 % 60)
|
||||
if(min < 10) min = '0' + min
|
||||
let sec = Math.floor(uptime % 60)
|
||||
if(sec < 10) sec = '0' + sec
|
||||
let time = `${day ? day + ' days ' : ''}${hour ? hour + ':' : ''}${min}:${sec}`
|
||||
//Intel
|
||||
cpu = cpu.replace('Intel(R)', '').replace('(TM)', '').replace(' CPU', '')
|
||||
//AMD
|
||||
cpu = cpu.replace('AMD ', '').replace(/\s[0-9]{1,3}-Core\sProcessor/, '')
|
||||
$('#tips-text').html(
|
||||
escapeHTML(cpu) +
|
||||
'<br>Memory:' +
|
||||
Math.floor(use / 1024 / 1024 / 102.4) / 10 +
|
||||
'/' +
|
||||
Math.floor(total / 1024 / 1024 / 102.4) / 10 +
|
||||
'GB(' +
|
||||
Math.floor((use / total) * 100) +
|
||||
'%)'
|
||||
`${escapeHTML(cpu)} x ${core}<br />RAM: ${Math.floor(use / 1024 / 1024 / 102.4) / 10}/${Math.floor(total / 1024 / 1024 / 102.4) / 10}GB(${Math.floor((use / total) * 100)}%) UP:${time}`
|
||||
)
|
||||
}
|
||||
//トレンドタグ
|
||||
@@ -196,12 +205,10 @@ function spotifytips() {
|
||||
<i class="material-icons pointer" onclick="nowplaying('spotify');show()" style="font-size:20px">send</i>
|
||||
</div>
|
||||
<div id="spot-cover">
|
||||
<img src="${img}" id="spot-img">
|
||||
<img src="${img}" id="spot-img" draggable="false">
|
||||
</div>
|
||||
<div id="spot-name">
|
||||
${escapeHTML(item.name)}
|
||||
</div>
|
||||
<div id="spot-artist">
|
||||
<span class="gray sml" id="spot-art">${artisttxt}</span>
|
||||
</div>
|
||||
<div id="spot-time">
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,65 +1,65 @@
|
||||
//プロフ編集
|
||||
//文字系
|
||||
function profedit() {
|
||||
var acct_id = $('#his-data').attr("use-acct");
|
||||
todo("Updating...");
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/accounts/update_credentials";
|
||||
var name = $("#his-name-val").val();
|
||||
var des = $("#his-des-val").val();
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('PATCH', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
var acct_id = $('#his-data').attr("use-acct")
|
||||
todo("Updating...")
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
var start = "https://" + domain + "/api/v1/accounts/update_credentials"
|
||||
var name = $("#his-name-val").val()
|
||||
var des = $("#his-des-val").val()
|
||||
var httpreq = new XMLHttpRequest()
|
||||
httpreq.open('PATCH', start, true)
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json')
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = "json"
|
||||
httpreq.send(JSON.stringify({
|
||||
display_name: name,
|
||||
note: des,
|
||||
}));
|
||||
}))
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
$('#his-data').modal('close');
|
||||
todc();
|
||||
$('#his-data').modal('close')
|
||||
todc()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//画像系
|
||||
function imgChange(imgfile, target) {
|
||||
var acct_id = $('#his-data').attr("use-acct");
|
||||
var acct_id = $('#his-data').attr("use-acct")
|
||||
todo("アップロードしています")
|
||||
if (!imgfile.files.length) {
|
||||
console.warn("No Image to upload");
|
||||
return;
|
||||
console.warn("No Image to upload")
|
||||
return
|
||||
}
|
||||
var file = imgfile.files[0];
|
||||
var fr = new FileReader();
|
||||
var file = imgfile.files[0]
|
||||
var fr = new FileReader()
|
||||
fr.onload = function (evt) {
|
||||
var b64 = this.result;
|
||||
var blob = toBlob(b64, 'image/png');
|
||||
var fd = new FormData();
|
||||
fd.append(target, blob);
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/accounts/update_credentials";
|
||||
var httpreq = new XMLHttpRequest();
|
||||
httpreq.open('PATCH', start, true);
|
||||
httpreq.upload.addEventListener("progress", progshow, false);
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(fd);
|
||||
var b64 = this.result
|
||||
var blob = toBlob(b64, 'image/png')
|
||||
var fd = new FormData()
|
||||
fd.append(target, blob)
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
var start = "https://" + domain + "/api/v1/accounts/update_credentials"
|
||||
var httpreq = new XMLHttpRequest()
|
||||
httpreq.open('PATCH', start, true)
|
||||
httpreq.upload.addEventListener("progress", progshow, false)
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
|
||||
httpreq.responseType = "json"
|
||||
httpreq.send(fd)
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
if(this.status!==200){ setLog(start, this.status, this.response); }
|
||||
$('#his-data').modal('close');
|
||||
todc();
|
||||
localStorage.removeItem("image");
|
||||
var json = httpreq.response
|
||||
if(this.status!==200){ setLog(start, this.status, this.response) }
|
||||
$('#his-data').modal('close')
|
||||
todc()
|
||||
localStorage.removeItem("image")
|
||||
}
|
||||
}
|
||||
}
|
||||
$("#prof-change").html($("#prof-change").html());
|
||||
$("#header-change").html($("#header-change").html());
|
||||
fr.readAsDataURL(file);
|
||||
$("#prof-change").html($("#prof-change").html())
|
||||
$("#header-change").html($("#header-change").html())
|
||||
fr.readAsDataURL(file)
|
||||
}
|
||||
|
@@ -1,31 +1,31 @@
|
||||
//ユーザーデータ表示
|
||||
localStorage.removeItem("history");
|
||||
localStorage.removeItem("history")
|
||||
//コード受信
|
||||
if (location.search) {
|
||||
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/);
|
||||
var mode = m[1];
|
||||
var codex = m[2];
|
||||
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/)
|
||||
var mode = m[1]
|
||||
var codex = m[2]
|
||||
if (mode == "user") {
|
||||
udgEx(codex, "main");
|
||||
udgEx(codex, "main")
|
||||
}
|
||||
}
|
||||
function udgEx(user, acct_id) {
|
||||
if (user == "selector") {
|
||||
user = $("#his-acct").attr("fullname");
|
||||
user = $("#his-acct").attr("fullname")
|
||||
}
|
||||
if (acct_id == "selector") {
|
||||
acct_id = $("#user-acct-sel").val();
|
||||
acct_id = $("#user-acct-sel").val()
|
||||
}
|
||||
if (acct_id == "main") {
|
||||
acct_id = localStorage.getItem("main");
|
||||
acct_id = localStorage.getItem("main")
|
||||
}
|
||||
console.log("Get user data of " + user);
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
console.log("Get user data of " + user)
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v2/search?resolve=true&q=" + encodeURIComponent(user);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
var start = "https://" + domain + "/api/v2/search?resolve=true&q=" + encodeURIComponent(user)
|
||||
fetch(start, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
@@ -36,39 +36,39 @@ function udgEx(user, acct_id) {
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
setLog(response.url, response.status, text);
|
||||
});
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json();
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
todo(error);
|
||||
setLog(start, "JSON", error);
|
||||
console.error(error);
|
||||
todo(error)
|
||||
setLog(start, "JSON", error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
if (json.accounts[0]) {
|
||||
var id = json.accounts[0].id;
|
||||
udg(id, acct_id);
|
||||
var id = json.accounts[0].id
|
||||
udg(id, acct_id)
|
||||
} else {
|
||||
postMessage(["openUrl", user], "*");
|
||||
postMessage(["openUrl", user], "*")
|
||||
}
|
||||
});
|
||||
return true;
|
||||
})
|
||||
return true
|
||||
}
|
||||
function udg(user, acct_id) {
|
||||
reset();
|
||||
reset()
|
||||
if (!user) {
|
||||
user = localStorage.getItem("user-id_" + acct_id);
|
||||
user = localStorage.getItem("user-id_" + acct_id)
|
||||
}
|
||||
todo("User Data Loading...");
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
todo("User Data Loading...")
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
misskeyUdg(user, acct_id);
|
||||
return;
|
||||
misskeyUdg(user, acct_id)
|
||||
return
|
||||
}
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + user;
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + user
|
||||
fetch(start, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
@@ -79,188 +79,188 @@ function udg(user, acct_id) {
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
setLog(response.url, response.status, text);
|
||||
});
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json();
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
todo(error);
|
||||
setLog(start, "JSON", error);
|
||||
console.error(error);
|
||||
todo(error)
|
||||
setLog(start, "JSON", error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
//一つ前のユーザーデータ
|
||||
if (!localStorage.getItem("history")) {
|
||||
$("#his-history-btn").prop("disabled", true);
|
||||
$("#his-history-btn").prop("disabled", true)
|
||||
} else {
|
||||
$("#his-history-btn").prop("disabled", false);
|
||||
$("#his-data").attr("history", localStorage.getItem("history"));
|
||||
$("#his-history-btn").prop("disabled", false)
|
||||
$("#his-data").attr("history", localStorage.getItem("history"))
|
||||
}
|
||||
//moved設定時
|
||||
if (json.moved) {
|
||||
M.toast({
|
||||
html: lang.lang_showontl_movetxt + '<button class="btn-flat toast-action" onclick="udg(\'' + json.moved.id + "','" + acct_id + "')\">" + lang.lang_showontl_movebtn + "</button>",
|
||||
displayLength: 4000
|
||||
});
|
||||
})
|
||||
}
|
||||
$("#his-data").modal("open");
|
||||
$("#his-data").attr("user-id", user);
|
||||
$("#his-data").attr("use-acct", acct_id);
|
||||
$("#his-data").modal("open")
|
||||
$("#his-data").attr("user-id", user)
|
||||
$("#his-data").attr("use-acct", acct_id)
|
||||
if (json.username != json.acct) {
|
||||
//Remote
|
||||
$("#his-data").attr("remote", "true");
|
||||
var fullname = json.acct;
|
||||
$("#his-data").attr("remote", "true")
|
||||
var fullname = json.acct
|
||||
} else {
|
||||
$("#his-data").attr("remote", "false");
|
||||
var fullname = json.acct + "@" + domain;
|
||||
$("#his-data").attr("remote", "false")
|
||||
var fullname = json.acct + "@" + domain
|
||||
}
|
||||
utlShow(json.id, "", acct_id);
|
||||
flw(json.id, "", acct_id);
|
||||
fer(json.id, "", acct_id);
|
||||
var dis_name = escapeHTML(json.display_name);
|
||||
dis_name = twemoji.parse(dis_name);
|
||||
utlShow(json.id, "", acct_id)
|
||||
flw(json.id, "", acct_id)
|
||||
fer(json.id, "", acct_id)
|
||||
var dis_name = escapeHTML(json.display_name)
|
||||
dis_name = twemoji.parse(dis_name)
|
||||
|
||||
var note = json.note;
|
||||
var note = json.note
|
||||
if (json.emojis) {
|
||||
var actemojick = json.emojis[0];
|
||||
var actemojick = json.emojis[0]
|
||||
} else {
|
||||
var actemojick = false;
|
||||
var actemojick = false
|
||||
}
|
||||
//絵文字があれば
|
||||
if (actemojick) {
|
||||
Object.keys(json.emojis).forEach(function(key5) {
|
||||
var emoji = json.emojis[key5];
|
||||
var shortcode = emoji.shortcode;
|
||||
var emoji_url = '<img src="' + emoji.url + '" class="emoji-img" data-emoji="' + shortcode + '" draggable="false">';
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g");
|
||||
dis_name = dis_name.replace(regExp, emoji_url);
|
||||
note = note.replace(regExp, emoji_url);
|
||||
});
|
||||
var emoji = json.emojis[key5]
|
||||
var shortcode = emoji.shortcode
|
||||
var emoji_url = '<img src="' + emoji.url + '" class="emoji-img" data-emoji="' + shortcode + '" draggable="false">'
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g")
|
||||
dis_name = dis_name.replace(regExp, emoji_url)
|
||||
note = note.replace(regExp, emoji_url)
|
||||
})
|
||||
}
|
||||
//noteの解析
|
||||
//var tags = '<a onclick="tl(\'tag\',\'$1\',' + acct_id +',\'add\')" class="pointer parsed">#$1</a>';
|
||||
//var mens = '<a onclick="udgEx(\'$1\',' + acct_id +')" class="pointer parsed">@$1</a>';
|
||||
//note=note.replace(/#(\S+)/gi, tags)
|
||||
//note=note.replace(/\s@([a-zA-Z_0-9@.-]+)/gi, mens)
|
||||
$("#his-name").html(dis_name);
|
||||
$("#his-acct").text(json.acct);
|
||||
$("#his-acct").attr("fullname", fullname);
|
||||
$("#his-prof").attr("src", json.avatar);
|
||||
$("#his-data").css("background-image", "url(" + json.header + ")");
|
||||
$("#his-sta").text(json.statuses_count);
|
||||
$("#his-follow").text(json.following_count);
|
||||
var flerc = json.followers_count;
|
||||
$("#his-name").html(dis_name)
|
||||
$("#his-acct").text(json.acct)
|
||||
$("#his-acct").attr("fullname", fullname)
|
||||
$("#his-prof").attr("src", json.avatar)
|
||||
$("#his-data").css("background-image", "url(" + json.header + ")")
|
||||
$("#his-sta").text(json.statuses_count)
|
||||
$("#his-follow").text(json.following_count)
|
||||
var flerc = json.followers_count
|
||||
if (flerc < 0) {
|
||||
flerc = "-";
|
||||
flerc = "-"
|
||||
}
|
||||
$("#his-follower").text(flerc);
|
||||
$("#his-since").text(crat(json.created_at));
|
||||
$("#his-openin").attr("data-href", json.url);
|
||||
$("#his-follower").text(flerc)
|
||||
$("#his-since").text(crat(json.created_at))
|
||||
$("#his-openin").attr("data-href", json.url)
|
||||
if (json.fields) {
|
||||
var table = "";
|
||||
var table = ""
|
||||
if (json.fields.length > 0) {
|
||||
$("#his-des").css("max-height", "250px");
|
||||
table = '<table id="his-field">';
|
||||
$("#his-des").css("max-height", "250px")
|
||||
table = '<table id="his-field">'
|
||||
for (var i = 0; i < json.fields.length; i++) {
|
||||
var fname = json.fields[i].name;
|
||||
var fval = json.fields[i].value;
|
||||
var fname = json.fields[i].name
|
||||
var fval = json.fields[i].value
|
||||
if (json.fields[i].verified_at) {
|
||||
var when = lang.lang_showontl_verified + ":" + crat(json.fields[i].verified_at);
|
||||
var color = "rgba(121,189,154,.25);";
|
||||
var when = lang.lang_showontl_verified + ":" + crat(json.fields[i].verified_at)
|
||||
var color = "rgba(121,189,154,.25);"
|
||||
} else {
|
||||
var when = "";
|
||||
var color = "inherit";
|
||||
var when = ""
|
||||
var color = "inherit"
|
||||
}
|
||||
table = table + '<tr><td class="his-field-title">' + escapeHTML(fname) + '</td><td class="his-field-content" title="' + when + '" style="background-color:' + color + '">' + fval + "</td></tr>";
|
||||
table = table + '<tr><td class="his-field-title">' + escapeHTML(fname) + '</td><td class="his-field-content" title="' + when + '" style="background-color:' + color + '">' + fval + "</td></tr>"
|
||||
}
|
||||
table = table + "</table>";
|
||||
$("#his-des").html(twemoji.parse(note));
|
||||
table = table + "</table>"
|
||||
$("#his-des").html(twemoji.parse(note))
|
||||
} else {
|
||||
$("#his-des").css("max-height", "400px");
|
||||
$("#his-des").css("max-height", "400px")
|
||||
}
|
||||
$("#his-table").html(twemoji.parse(table));
|
||||
$("#his-table").html(twemoji.parse(table))
|
||||
} else {
|
||||
$("#his-des").css("max-height", "400px");
|
||||
$("#his-des").css("max-height", "400px")
|
||||
}
|
||||
$("#his-des").html(twemoji.parse(note));
|
||||
$("#his-des").html(twemoji.parse(note))
|
||||
if (json.bot) {
|
||||
$("#his-bot").html(lang.lang_showontl_botacct);
|
||||
$("#his-bot").html(lang.lang_showontl_botacct)
|
||||
}
|
||||
$("#his-des").attr("data-acct", acct_id);
|
||||
$("#his-data").css("background-size", "cover");
|
||||
$("#his-float-timeline").css("height", $("#his-data-show").height() + "px");
|
||||
localStorage.setItem("history", user);
|
||||
$("#his-des").attr("data-acct", acct_id)
|
||||
$("#his-data").css("background-size", "cover")
|
||||
$("#his-float-timeline").css("height", $("#his-data-show").height() + "px")
|
||||
localStorage.setItem("history", user)
|
||||
//自分の時
|
||||
if (json.acct == localStorage.getItem("user_" + acct_id)) {
|
||||
showFav("", acct_id);
|
||||
showBlo("", acct_id);
|
||||
showMut("", acct_id);
|
||||
showDom("", acct_id);
|
||||
showReq("", acct_id);
|
||||
showFrl("", acct_id);
|
||||
$("#his-name-val").val(json.display_name);
|
||||
showFav("", acct_id)
|
||||
showBlo("", acct_id)
|
||||
showMut("", acct_id)
|
||||
showDom("", acct_id)
|
||||
showReq("", acct_id)
|
||||
showFrl("", acct_id)
|
||||
$("#his-name-val").val(json.display_name)
|
||||
if (json.fields.length > 0) {
|
||||
if (json.fields[0]) {
|
||||
$("#his-f1-name").val(json.fields[0].name);
|
||||
$("#his-f1-val").val($.strip_tags(json.fields[0].value));
|
||||
$("#his-f1-name").val(json.fields[0].name)
|
||||
$("#his-f1-val").val($.strip_tags(json.fields[0].value))
|
||||
}
|
||||
if (json.fields[1]) {
|
||||
$("#his-f2-name").val(json.fields[1].name);
|
||||
$("#his-f2-val").val($.strip_tags(json.fields[1].value));
|
||||
$("#his-f2-name").val(json.fields[1].name)
|
||||
$("#his-f2-val").val($.strip_tags(json.fields[1].value))
|
||||
}
|
||||
if (json.fields[2]) {
|
||||
$("#his-f3-name").val(json.fields[2].name);
|
||||
$("#his-f3-val").val($.strip_tags(json.fields[2].value));
|
||||
$("#his-f3-name").val(json.fields[2].name)
|
||||
$("#his-f3-val").val($.strip_tags(json.fields[2].value))
|
||||
}
|
||||
if (json.fields[3]) {
|
||||
$("#his-f4-name").val(json.fields[3].name);
|
||||
$("#his-f4-val").val($.strip_tags(json.fields[3].value));
|
||||
$("#his-f4-name").val(json.fields[3].name)
|
||||
$("#his-f4-val").val($.strip_tags(json.fields[3].value))
|
||||
}
|
||||
}
|
||||
var des = json.note;
|
||||
des = des.replace(/<br \/>/g, "\n");
|
||||
des = $.strip_tags(des);
|
||||
$("#his-des-val").val(des);
|
||||
$("#his-follow-btn").hide();
|
||||
$("#his-block-btn").hide();
|
||||
$("#his-mute-btn").hide();
|
||||
$("#his-notf-btn").hide();
|
||||
$("#his-domain-btn").hide();
|
||||
$("#his-emp-btn").hide();
|
||||
$(".only-my-data").show();
|
||||
$(".only-his-data").hide();
|
||||
var des = json.note
|
||||
des = des.replace(/<br \/>/g, "\n")
|
||||
des = $.strip_tags(des)
|
||||
$("#his-des-val").val(des)
|
||||
$("#his-follow-btn").hide()
|
||||
$("#his-block-btn").hide()
|
||||
$("#his-mute-btn").hide()
|
||||
$("#his-notf-btn").hide()
|
||||
$("#his-domain-btn").hide()
|
||||
$("#his-emp-btn").hide()
|
||||
$(".only-my-data").show()
|
||||
$(".only-his-data").hide()
|
||||
if (localStorage.getItem("main") == acct_id) {
|
||||
$("#his-main-acct").hide();
|
||||
$("#his-main-acct").hide()
|
||||
}
|
||||
} else {
|
||||
relations(user, acct_id);
|
||||
$(".only-my-data").hide();
|
||||
$(".only-his-data").show();
|
||||
relations(user, acct_id)
|
||||
$(".only-my-data").hide()
|
||||
$(".only-his-data").show()
|
||||
}
|
||||
todc();
|
||||
todc()
|
||||
if(json.locked) {
|
||||
$('#his-data').addClass('locked')
|
||||
} else {
|
||||
$('#his-data').removeClass('locked')
|
||||
}
|
||||
//外部データ取得(死かもしれないので)
|
||||
udAdd(acct_id, user, json.url);
|
||||
});
|
||||
udAdd(acct_id, user, json.url)
|
||||
})
|
||||
}
|
||||
function misskeyUdg(user, acct_id) {
|
||||
reset();
|
||||
reset()
|
||||
if (!user) {
|
||||
user = localStorage.getItem("user-id_" + acct_id);
|
||||
user = localStorage.getItem("user-id_" + acct_id)
|
||||
}
|
||||
todo("User Data Loading...");
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
todo("User Data Loading...")
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
udg(user, acct_id);
|
||||
return;
|
||||
udg(user, acct_id)
|
||||
return
|
||||
}
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/users/show";
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
var start = "https://" + domain + "/api/users/show"
|
||||
fetch(start, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
@@ -274,127 +274,127 @@ function misskeyUdg(user, acct_id) {
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
setLog(response.url, response.status, text);
|
||||
});
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json();
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
todo(error);
|
||||
setLog(start, "JSON", error);
|
||||
console.error(error);
|
||||
todo(error)
|
||||
setLog(start, "JSON", error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
//一つ前のユーザーデータ
|
||||
if (!localStorage.getItem("history")) {
|
||||
$("#his-history-btn").prop("disabled", true);
|
||||
$("#his-history-btn").prop("disabled", true)
|
||||
} else {
|
||||
$("#his-history-btn").prop("disabled", false);
|
||||
$("#his-data").attr("history", localStorage.getItem("history"));
|
||||
$("#his-history-btn").prop("disabled", false)
|
||||
$("#his-data").attr("history", localStorage.getItem("history"))
|
||||
}
|
||||
$("#his-data").modal("open");
|
||||
$("#his-data").attr("user-id", user);
|
||||
$("#his-data").attr("use-acct", acct_id);
|
||||
$("#his-data").modal("open")
|
||||
$("#his-data").attr("user-id", user)
|
||||
$("#his-data").attr("use-acct", acct_id)
|
||||
if (json.host) {
|
||||
//Remote
|
||||
$("#his-data").attr("remote", "false");
|
||||
var fullname = json.username + "@" + json.host;
|
||||
$("#his-data").attr("remote", "false")
|
||||
var fullname = json.username + "@" + json.host
|
||||
} else {
|
||||
$("#his-data").attr("remote", "false");
|
||||
var fullname = json.acct + "@" + domain;
|
||||
$("#his-data").attr("remote", "false")
|
||||
var fullname = json.acct + "@" + domain
|
||||
}
|
||||
utlShow(json.id, "", acct_id);
|
||||
flw(json.id, "", acct_id);
|
||||
fer(json.id, "", acct_id);
|
||||
utlShow(json.id, "", acct_id)
|
||||
flw(json.id, "", acct_id)
|
||||
fer(json.id, "", acct_id)
|
||||
if (json.name) {
|
||||
var dis_name = escapeHTML(json.name);
|
||||
dis_name = twemoji.parse(dis_name);
|
||||
var dis_name = escapeHTML(json.name)
|
||||
dis_name = twemoji.parse(dis_name)
|
||||
} else {
|
||||
var dis_name = json.name;
|
||||
var dis_name = json.name
|
||||
}
|
||||
$("#his-name").html(dis_name);
|
||||
$("#his-acct").text(json.username);
|
||||
$("#his-acct").attr("fullname", fullname);
|
||||
$("#his-prof").attr("src", json.avatarUrl);
|
||||
$("#his-data").css("background-image", "url(" + json.bannerUrl + ")");
|
||||
$("#his-sta").text(json.notesCount);
|
||||
$("#his-follow").text(json.followingCount);
|
||||
$("#his-follower").text(json.followersCount);
|
||||
$("#his-since").text(crat(json.createdAt));
|
||||
var note = escapeHTML(json.description);
|
||||
$("#his-des").html(twemoji.parse(note));
|
||||
$("#his-name").html(dis_name)
|
||||
$("#his-acct").text(json.username)
|
||||
$("#his-acct").attr("fullname", fullname)
|
||||
$("#his-prof").attr("src", json.avatarUrl)
|
||||
$("#his-data").css("background-image", "url(" + json.bannerUrl + ")")
|
||||
$("#his-sta").text(json.notesCount)
|
||||
$("#his-follow").text(json.followingCount)
|
||||
$("#his-follower").text(json.followersCount)
|
||||
$("#his-since").text(crat(json.createdAt))
|
||||
var note = escapeHTML(json.description)
|
||||
$("#his-des").html(twemoji.parse(note))
|
||||
if (json.isCat) {
|
||||
$("#his-bot").html("Cat" + twemoji.parse("😺"));
|
||||
$("#his-bot").html("Cat" + twemoji.parse("😺"))
|
||||
}
|
||||
$("#his-data").css("background-size", "cover");
|
||||
localStorage.setItem("history", user);
|
||||
$("#his-data").css("background-size", "cover")
|
||||
localStorage.setItem("history", user)
|
||||
//自分の時
|
||||
if (json.username == localStorage.getItem("user_" + acct_id) && !json.host) {
|
||||
//showFav('', acct_id);
|
||||
//showMut('', acct_id);
|
||||
//showReq('', acct_id);
|
||||
showFrl("", acct_id);
|
||||
$("#his-name-val").val(json.name);
|
||||
var des = json.note;
|
||||
des = nl2br(des);
|
||||
des = $.strip_tags(des);
|
||||
$("#his-des-val").val(des);
|
||||
$("#his-follow-btn").hide();
|
||||
$("#his-block-btn").hide();
|
||||
$("#his-mute-btn").hide();
|
||||
$("#his-notf-btn").hide();
|
||||
$("#his-domain-btn").hide();
|
||||
$("#his-emp-btn").hide();
|
||||
$(".only-my-data").show();
|
||||
$(".only-his-data").hide();
|
||||
showFrl("", acct_id)
|
||||
$("#his-name-val").val(json.name)
|
||||
var des = json.note
|
||||
des = nl2br(des)
|
||||
des = $.strip_tags(des)
|
||||
$("#his-des-val").val(des)
|
||||
$("#his-follow-btn").hide()
|
||||
$("#his-block-btn").hide()
|
||||
$("#his-mute-btn").hide()
|
||||
$("#his-notf-btn").hide()
|
||||
$("#his-domain-btn").hide()
|
||||
$("#his-emp-btn").hide()
|
||||
$(".only-my-data").show()
|
||||
$(".only-his-data").hide()
|
||||
if (localStorage.getItem("main") == acct_id) {
|
||||
$("#his-main-acct").hide();
|
||||
$("#his-main-acct").hide()
|
||||
}
|
||||
} else {
|
||||
if (json.isFollowing) {
|
||||
//自分がフォローしている
|
||||
$("#his-data").addClass("following");
|
||||
$("#his-follow-btn-text").text(lang.lang_status_unfollow);
|
||||
hisList(user, acct_id);
|
||||
$("#his-data").addClass("following")
|
||||
$("#his-follow-btn-text").text(lang.lang_status_unfollow)
|
||||
hisList(user, acct_id)
|
||||
} else {
|
||||
$("#his-follow-btn-text").text(lang.lang_status_follow);
|
||||
$("#his-follow-btn-text").text(lang.lang_status_follow)
|
||||
}
|
||||
if (json.isFollowed) {
|
||||
//フォローされてる
|
||||
$("#his-relation").text(lang.lang_showontl_followed);
|
||||
$("#his-relation").text(lang.lang_showontl_followed)
|
||||
}
|
||||
$("#his-block-btn").hide();
|
||||
$("#his-block-btn").hide()
|
||||
if (json.isMuted) {
|
||||
$("#his-data").addClass("muting");
|
||||
$("#his-mute-btn-text").text(lang.lang_status_unmute);
|
||||
$("#his-data").addClass("muting")
|
||||
$("#his-mute-btn-text").text(lang.lang_status_unmute)
|
||||
} else {
|
||||
$("#his-mute-btn-text").text(lang.lang_status_mute);
|
||||
$("#his-mute-btn-text").text(lang.lang_status_mute)
|
||||
}
|
||||
$(".only-my-data").hide();
|
||||
$(".only-his-data").show();
|
||||
$(".only-my-data").hide()
|
||||
$(".only-his-data").show()
|
||||
}
|
||||
todc();
|
||||
});
|
||||
todc()
|
||||
})
|
||||
}
|
||||
//一つ前のユーザーデータ表示
|
||||
function historyShow() {
|
||||
var acct_id = $("#his-data").attr("use-acct");
|
||||
var user = $("#his-data").attr("history");
|
||||
udg(user, acct_id, "true");
|
||||
var acct_id = $("#his-data").attr("use-acct")
|
||||
var user = $("#his-data").attr("history")
|
||||
udg(user, acct_id, "true")
|
||||
}
|
||||
//選択アカウントのプロフ
|
||||
function profShow() {
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var user = localStorage.getItem("user-id_" + acct_id);
|
||||
udg(user, acct_id);
|
||||
hide();
|
||||
var acct_id = $("#post-acct-sel").val()
|
||||
var user = localStorage.getItem("user-id_" + acct_id)
|
||||
udg(user, acct_id)
|
||||
hide()
|
||||
}
|
||||
|
||||
//FF関係取得
|
||||
function relations(user, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/accounts/relationships?id=" + user;
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
var start = "https://" + domain + "/api/v1/accounts/relationships?id=" + user
|
||||
fetch(start, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
@@ -405,18 +405,18 @@ function relations(user, acct_id) {
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
setLog(response.url, response.status, text);
|
||||
});
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json();
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
todo(error);
|
||||
setLog(start, "JSON", error);
|
||||
console.error(error);
|
||||
todo(error)
|
||||
setLog(start, "JSON", error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
var json = json[0];
|
||||
var json = json[0]
|
||||
if(json.requested) {
|
||||
//フォロリク中
|
||||
$('#his-data').addClass('following')
|
||||
@@ -425,138 +425,140 @@ function relations(user, acct_id) {
|
||||
if (json.following) {
|
||||
//自分がフォローしている
|
||||
$("#his-data").addClass("following")
|
||||
$("#his-follow-btn-text").text(lang.lang_status_unfollow);
|
||||
hisList(user, acct_id);
|
||||
$("#his-follow-btn-text").text(lang.lang_status_unfollow)
|
||||
hisList(user, acct_id)
|
||||
} else {
|
||||
$("#his-follow-btn-text").text(lang.lang_status_follow);
|
||||
$("#his-follow-btn-text").text(lang.lang_status_follow)
|
||||
}
|
||||
if (json.followed_by) {
|
||||
//フォローされてる
|
||||
$("#his-relation").text(lang.lang_showontl_followed);
|
||||
$("#his-relation").text(lang.lang_showontl_followed)
|
||||
}
|
||||
if (json.blocking) {
|
||||
$("#his-data").addClass("blocking");
|
||||
$("#his-block-btn-text").text(lang.lang_status_unblock);
|
||||
$("#his-data").addClass("blocking")
|
||||
$("#his-block-btn-text").text(lang.lang_status_unblock)
|
||||
} else {
|
||||
$("#his-block-btn-text").text(lang.lang_status_block);
|
||||
$("#his-block-btn-text").text(lang.lang_status_block)
|
||||
}
|
||||
if (json.muting) {
|
||||
$("#his-data").addClass("muting");
|
||||
$("#his-mute-btn-text").text(lang.lang_status_unmute);
|
||||
$("#his-data").addClass("muting")
|
||||
$("#his-mute-btn-text").text(lang.lang_status_unmute)
|
||||
} else {
|
||||
$("#his-mute-btn-text").text(lang.lang_status_mute);
|
||||
$("#his-mute-btn-text").text(lang.lang_status_mute)
|
||||
}
|
||||
if (json.muting_notifications) {
|
||||
$("#his-data").addClass("mutingNotf");
|
||||
$("#his-notf-btn-text").text(lang.lang_showontl_notf + lang.lang_status_unmute);
|
||||
$("#his-data").addClass("mutingNotf")
|
||||
$("#his-notf-btn-text").text(lang.lang_showontl_notf + lang.lang_status_unmute)
|
||||
} else {
|
||||
$("#his-notf-btn-text").text(lang.lang_showontl_notf + lang.lang_status_mute);
|
||||
$("#his-notf-btn-text").text(lang.lang_showontl_notf + lang.lang_status_mute)
|
||||
}
|
||||
if (json.domain_blocking) {
|
||||
$("#his-data").addClass("blockingDom");
|
||||
$("#his-domain-btn-text").text(lang.lang_showontl_domain + lang.lang_status_unblock);
|
||||
$("#his-data").addClass("blockingDom")
|
||||
$("#his-domain-btn-text").text(lang.lang_showontl_domain + lang.lang_status_unblock)
|
||||
} else {
|
||||
$("#his-domain-btn-text").text(lang.lang_showontl_domain + lang.lang_status_block);
|
||||
$("#his-domain-btn-text").text(lang.lang_showontl_domain + lang.lang_status_block)
|
||||
}
|
||||
//Endorsed
|
||||
if (json.endorsed) {
|
||||
$("#his-end-btn").addClass("endorsed");
|
||||
$("#his-end-btn-text").text(lang.lang_status_unendorse);
|
||||
$("#his-end-btn").addClass("endorsed")
|
||||
$("#his-end-btn-text").text(lang.lang_status_unendorse)
|
||||
} else {
|
||||
$("#his-end-btn").removeClass("endorsed");
|
||||
$("#his-end-btn-text").text(lang.lang_status_endorse);
|
||||
$("#his-end-btn").removeClass("endorsed")
|
||||
$("#his-end-btn-text").text(lang.lang_status_endorse)
|
||||
}
|
||||
//Blocked
|
||||
if (json.blocked_by) {
|
||||
$("#my-data-nav .btn").addClass("disabled");
|
||||
$(".his-var-content").hide();
|
||||
$("#his-float-blocked").show();
|
||||
$("#his-follow-btn").hide();
|
||||
$("#my-data-nav .btn").addClass("disabled")
|
||||
$(".his-var-content").hide()
|
||||
$("#his-float-blocked").show()
|
||||
$("#his-follow-btn").hide()
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
function profbrws() {
|
||||
var url = $("#his-openin").attr("data-href");
|
||||
postMessage(["openUrl", url], "*");
|
||||
var url = $("#his-openin").attr("data-href")
|
||||
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 });
|
||||
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() {
|
||||
$("#his-data").modal("close");
|
||||
reset();
|
||||
$("#his-data").attr("history", "");
|
||||
localStorage.removeItem("history");
|
||||
$("#his-data").modal("close")
|
||||
reset()
|
||||
$("#his-data").attr("history", "")
|
||||
localStorage.removeItem("history")
|
||||
}
|
||||
function reset() {
|
||||
$(".his-var-content:eq(0)").show();
|
||||
$(".his-var-content:gt(0)").hide();
|
||||
$("#my-data-nav .btn").removeClass("disabled");
|
||||
$(".active-back").removeClass("active-back");
|
||||
$(".column-first").addClass("active-back");
|
||||
$("#his-name").text("Loading");
|
||||
$("#his-acct").text("");
|
||||
$("#his-prof").attr("src", "../../img/loading.svg");
|
||||
$("#his-data").css("background-image", "url(../../img/loading.svg)");
|
||||
$("#his-sta").text("");
|
||||
$("#his-follow").text("");
|
||||
$("#his-follower").text("");
|
||||
$("#his-des").html("");
|
||||
$("#his-data").css("background-size", "cover");
|
||||
$("#his-since").text("");
|
||||
$("#his-data").removeClass("following");
|
||||
$("#his-data").removeClass("muting");
|
||||
$("#his-data").removeClass("blocking");
|
||||
$("#his-data").removeClass("mutingNotf");
|
||||
$("#his-data").removeClass("blockingDom");
|
||||
$("#his-end-btn").removeClass("endorsed");
|
||||
$("#his-des").css("max-height", "250px");
|
||||
$("#his-bot").html("");
|
||||
$("#his-follow-btn").show();
|
||||
$("#his-block-btn").show();
|
||||
$("#his-mute-btn").show();
|
||||
$("#his-notf-btn").show();
|
||||
$("#his-domain-btn").show();
|
||||
$("#his-emp-btn").show();
|
||||
$("#his-follow-btn-text").text(lang.lang_status_follow);
|
||||
$("#his-mute-btn-text").text(lang.lang_status_mute);
|
||||
$("#his-block-btn-text").text(lang.lang_status_block);
|
||||
$("#his-notf-btn").text(lang.lang_showontl_notf + lang.lang_status_mute);
|
||||
$("#his-domain-btn").text(lang.lang_showontl_domain + lang.lang_status_block);
|
||||
$("#his-relation").text("");
|
||||
$(".cont-series").html("");
|
||||
$("#domainblock").val("");
|
||||
$("#his-lists-a").html(lang.lang_showontl_listwarn);
|
||||
$("#his-lists-b").html("");
|
||||
$("#his-name-val").val("");
|
||||
$("#his-des-val").val("");
|
||||
$("#his-f1-name").val("");
|
||||
$("#his-f1-val").val("");
|
||||
$("#his-f2-name").val("");
|
||||
$("#his-f2-val").val("");
|
||||
$("#his-f3-name").val("");
|
||||
$("#his-f3-val").val("");
|
||||
$("#his-f4-name").val("");
|
||||
$("#his-f4-val").val("");
|
||||
$("#his-endorse").html("");
|
||||
$("#his-openin").attr("data-href", "");
|
||||
$("#his-float-timeline").show();
|
||||
$("#his-float-blocked").hide();
|
||||
$("#his-main-acct").show();
|
||||
$("#his-proof-prof").html("");
|
||||
$(".his-var-content:eq(0)").show()
|
||||
$(".his-var-content:gt(0)").hide()
|
||||
$("#my-data-nav .btn").removeClass("disabled")
|
||||
$(".active-back").removeClass("active-back")
|
||||
$(".column-first").addClass("active-back")
|
||||
$("#his-name").text("Loading")
|
||||
$("#his-acct").text("")
|
||||
$("#his-prof").attr("src", "../../img/loading.svg")
|
||||
$("#his-data").css("background-image", "url(../../img/loading.svg)")
|
||||
$("#his-sta").text("")
|
||||
$("#his-follow").text("")
|
||||
$("#his-follower").text("")
|
||||
$("#his-des").html("")
|
||||
$("#his-data").css("background-size", "cover")
|
||||
$("#his-since").text("")
|
||||
$("#his-data").removeClass("following")
|
||||
$("#his-data").removeClass("muting")
|
||||
$("#his-data").removeClass("blocking")
|
||||
$("#his-data").removeClass("mutingNotf")
|
||||
$("#his-data").removeClass("blockingDom")
|
||||
$("#his-end-btn").removeClass("endorsed")
|
||||
$("#his-des").css("max-height", "250px")
|
||||
$("#his-bot").html("")
|
||||
$("#his-follow-btn").show()
|
||||
$("#his-block-btn").show()
|
||||
$("#his-mute-btn").show()
|
||||
$("#his-notf-btn").show()
|
||||
$("#his-domain-btn").show()
|
||||
$("#his-emp-btn").show()
|
||||
$("#his-follow-btn-text").text(lang.lang_status_follow)
|
||||
$("#his-mute-btn-text").text(lang.lang_status_mute)
|
||||
$("#his-block-btn-text").text(lang.lang_status_block)
|
||||
$("#his-notf-btn").text(lang.lang_showontl_notf + lang.lang_status_mute)
|
||||
$("#his-domain-btn").text(lang.lang_showontl_domain + lang.lang_status_block)
|
||||
$("#his-relation").text("")
|
||||
$(".cont-series").html("")
|
||||
$("#domainblock").val("")
|
||||
$("#his-lists-a").html(lang.lang_showontl_listwarn)
|
||||
$("#his-lists-b").html("")
|
||||
$("#his-name-val").val("")
|
||||
$("#his-des-val").val("")
|
||||
$("#his-f1-name").val("")
|
||||
$("#his-f1-val").val("")
|
||||
$("#his-f2-name").val("")
|
||||
$("#his-f2-val").val("")
|
||||
$("#his-f3-name").val("")
|
||||
$("#his-f3-val").val("")
|
||||
$("#his-f4-name").val("")
|
||||
$("#his-f4-val").val("")
|
||||
$("#his-endorse").html("")
|
||||
$("#his-openin").attr("data-href", "")
|
||||
$("#his-float-timeline").show()
|
||||
$("#his-float-blocked").hide()
|
||||
$("#his-main-acct").show()
|
||||
$("#his-proof-prof").html("")
|
||||
$('#his-data').removeClass('locked')
|
||||
$('#his-data').removeClass('requesting')
|
||||
}
|
||||
$("#my-data-nav .anc-link").on("click", function() {
|
||||
var target = $(this).attr("go");
|
||||
var target = $(this).attr("go")
|
||||
if (target) {
|
||||
$("#my-data-nav .anc-link").removeClass("active-back");
|
||||
$(this).addClass("active-back");
|
||||
$(target).show();
|
||||
$(".his-var-content:not(" + target + ")").hide();
|
||||
const title = $(this).html()
|
||||
$('#his-data-title').html(title)
|
||||
$("#my-data-nav .anc-link").removeClass("active-back")
|
||||
$(this).addClass("active-back")
|
||||
$(target).show()
|
||||
$(".his-var-content:not(" + target + ")").hide()
|
||||
}
|
||||
});
|
||||
})
|
||||
|
22
app/main.js
22
app/main.js
@@ -124,7 +124,6 @@ function createWindow() {
|
||||
var max_info_path = join(app.getPath('userData'), 'max-window-size.json')
|
||||
var ha_path = join(app.getPath('userData'), 'hardwareAcceleration')
|
||||
var ua_path = join(app.getPath('userData'), 'useragent')
|
||||
var frame_path = join(app.getPath('userData'), 'frame')
|
||||
try {
|
||||
fs.readFileSync(ha_path, 'utf8')
|
||||
app.disableHardwareAcceleration()
|
||||
@@ -152,19 +151,6 @@ function createWindow() {
|
||||
y: 'string',
|
||||
} // デフォルトバリュー
|
||||
}
|
||||
|
||||
try {
|
||||
var frameRaw = fs.readFileSync(frame_path, 'utf8')
|
||||
if (frameRaw == 'false') {
|
||||
var frame = false
|
||||
var frameTitle = 'hidden'
|
||||
} else {
|
||||
var frame = true
|
||||
var frameTitle = 'default'
|
||||
}
|
||||
} catch {
|
||||
var frame = true
|
||||
}
|
||||
// メイン画面の表示。ウィンドウの幅、高さを指定できる
|
||||
var platform = process.platform
|
||||
var bit = process.arch
|
||||
@@ -173,6 +159,7 @@ function createWindow() {
|
||||
webviewTag: true,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
spellcheck: false,
|
||||
preload: join(__dirname, 'js', 'platform', 'preload.js'),
|
||||
},
|
||||
width: window_size.width,
|
||||
@@ -180,7 +167,6 @@ function createWindow() {
|
||||
x: window_size.x,
|
||||
y: window_size.y,
|
||||
show: false,
|
||||
frame: frame,
|
||||
}
|
||||
if (platform == 'linux') {
|
||||
arg.resizable = true
|
||||
@@ -189,7 +175,6 @@ function createWindow() {
|
||||
arg.simpleFullscreen = true
|
||||
} else if (platform == 'darwin') {
|
||||
arg.simpleFullscreen = true
|
||||
arg.titleBarStyle = frameTitle
|
||||
}
|
||||
mainWindow = new BrowserWindow(arg)
|
||||
mainWindow.once('page-title-updated', () => {
|
||||
@@ -293,10 +278,7 @@ function createWindow() {
|
||||
|
||||
var platform = process.platform
|
||||
var bit = process.arch
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, packaged, dir, dirname, frame)))
|
||||
if (!frame) {
|
||||
mainWindow.setMenu(null)
|
||||
}
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, packaged, dir, dirname)))
|
||||
//CSS
|
||||
css.css(mainWindow)
|
||||
//アップデータとダウンロード
|
||||
|
299
app/main/css.js
299
app/main/css.js
@@ -31,119 +31,246 @@ function css(mainWindow) {
|
||||
}
|
||||
})
|
||||
ipc.on('theme-json-delete', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
console.log(themecss);
|
||||
fs.unlink(themecss, function (err) {
|
||||
e.sender.webContents.send('theme-json-delete-complete', "");
|
||||
});
|
||||
try{
|
||||
var themecss = join(app.getPath("userData"), arg);
|
||||
console.log(themecss);
|
||||
fs.unlink(themecss, function (err) {
|
||||
e.sender.webContents.send('theme-json-delete-complete', "");
|
||||
});
|
||||
} catch {
|
||||
e.sender.webContents.send('theme-json-delete-complete', 'cannot delete');
|
||||
}
|
||||
|
||||
})
|
||||
ipc.on('theme-json-request', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
var raw = fs.readFileSync(themecss, 'utf8')
|
||||
var json = JSON5.parse(raw);
|
||||
try {
|
||||
var themecss = join(app.getAppPath(), '/source/themes', arg)
|
||||
var raw = fs.readFileSync(themecss, 'utf8')
|
||||
var json = JSON5.parse(raw)
|
||||
} catch {
|
||||
var themecss = join(app.getPath("userData"), arg)
|
||||
var raw = fs.readFileSync(themecss, 'utf8')
|
||||
var json = JSON5.parse(raw)
|
||||
}
|
||||
e.sender.webContents.send('theme-json-response', [json, raw]);
|
||||
})
|
||||
ipc.on('theme-css-request', function (e, arg) {
|
||||
var themecss = join(app.getPath("userData"), arg + ".thedesktheme");
|
||||
try {
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
var themecss = join(app.getAppPath(), '/source/themes', arg)
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'))
|
||||
} catch {
|
||||
var themecss = join(app.getPath("userData"), arg)
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'))
|
||||
}
|
||||
|
||||
var primary = json.vars.primary;
|
||||
var secondary = json.vars.secondary;
|
||||
var text = json.vars.text;
|
||||
if (json.base == "light") {
|
||||
var drag = "rgba(255, 255, 255, 0.8)";
|
||||
var beforehover = "#757575";
|
||||
var selected = "#3f3f3f"
|
||||
var selectedWithShare = "#b2babd"
|
||||
var gray = "#757575"
|
||||
} else {
|
||||
var drag = "rgba(0, 0, 0, 0.8)";
|
||||
var beforehover = "#9e9e9e";
|
||||
var selected = "#c0c0c0"
|
||||
var selectedWithShare = "#003a30"
|
||||
var gray = "#cccccc"
|
||||
}
|
||||
if (json.props) {
|
||||
if (json.props.TheDeskAccent) {
|
||||
var emphasized = json.props.TheDeskAccent
|
||||
try {
|
||||
var css
|
||||
if (json.version) {
|
||||
var bg = json.primary.background
|
||||
var subcolor = json.primary.subcolor
|
||||
var text = json.primary.text
|
||||
var accent = json.primary.accent
|
||||
if (json.base == "light") {
|
||||
var drag = "rgba(255, 255, 255, 0.8)";
|
||||
var beforehover = "#757575";
|
||||
var selected = "#3f3f3f"
|
||||
var selectedWithShare = "#b2babd"
|
||||
var gray = "#757575"
|
||||
var hisData = 'rgba(255, 255, 255, 0.9)'
|
||||
} else {
|
||||
var emphasized = secondary
|
||||
var drag = "rgba(0, 0, 0, 0.8)";
|
||||
var beforehover = "#9e9e9e";
|
||||
var selected = "#c0c0c0"
|
||||
var selectedWithShare = "#003a30"
|
||||
var gray = "#cccccc"
|
||||
var hisData = 'rgba(0, 0, 0, 0.8)'
|
||||
}
|
||||
if (json.props.TheDeskActive) {
|
||||
var active = json.props.TheDeskActive
|
||||
if (!json.advanced) {
|
||||
json.advanced = {}
|
||||
}
|
||||
if (json.advanced.modal) {
|
||||
var modal = json.advanced.modal
|
||||
} else {
|
||||
var active = primary
|
||||
var modal = bg
|
||||
}
|
||||
if (json.props.TheDeskModal) {
|
||||
var modal = json.props.TheDeskModal
|
||||
if (json.advanced.modalFooter) {
|
||||
var modalFooter = json.advanced.modalFooter
|
||||
} else {
|
||||
var modal = secondary
|
||||
var modalFooter = bg
|
||||
if (modal != bg) modalFooter = modal
|
||||
}
|
||||
if (json.props.TheDeskBottom) {
|
||||
var bottom = json.props.TheDeskBottom
|
||||
if (json.advanced.thirdColor) {
|
||||
var thirdColor = json.advanced.thirdColor
|
||||
} else {
|
||||
var bottom = primary
|
||||
var thirdColor = subcolor
|
||||
}
|
||||
if (json.props.TheDeskPostbox) {
|
||||
var postbox = json.props.TheDeskPostbox
|
||||
if (json.advanced.forthColor) {
|
||||
var forthColor = json.advanced.forthColor
|
||||
} else {
|
||||
var postbox = primary
|
||||
var forthColor = subcolor
|
||||
if (thirdColor != subcolor) forthColor = thirdColor
|
||||
}
|
||||
if (json.props.TheDeskSubcolor) {
|
||||
var subcolor = json.props.TheDeskSubcolor
|
||||
if (json.advanced.bottom) {
|
||||
var bottom = json.advanced.bottom
|
||||
} else {
|
||||
var subcolor = primary
|
||||
var bottom = subcolor
|
||||
}
|
||||
if (json.advanced.emphasized) {
|
||||
var emphasized = json.advanced.emphasized
|
||||
} else {
|
||||
var emphasized = accent
|
||||
}
|
||||
if (json.advanced.postbox) {
|
||||
var postbox = json.advanced.postbox
|
||||
} else {
|
||||
var postbox = subcolor
|
||||
}
|
||||
if (json.advanced.active) {
|
||||
var active = json.advanced.active
|
||||
} else {
|
||||
var active = accent
|
||||
}
|
||||
if (json.advanced.selected) {
|
||||
var selected = json.advanced.selected
|
||||
}
|
||||
if (json.advanced.selectedWithShare) {
|
||||
var selectedWithShare = json.advanced.selectedWithShare
|
||||
}
|
||||
} else {
|
||||
var emphasized = primary
|
||||
var acs = secondary
|
||||
var active = primary
|
||||
var modal = secondary
|
||||
var bottom = primary
|
||||
var postbox = primary
|
||||
var subcolor = primary
|
||||
}
|
||||
|
||||
var css = ".customtheme {--bg:" + secondary + ";--drag:" + drag + ";" +
|
||||
"--color:" + text + ";--beforehover:" + beforehover + ";--modal:" +
|
||||
modal + ";--subcolor:" + subcolor + ";--box:" + subcolor +
|
||||
";--sidebar:" + bottom + ";--shared:" + emphasized + ";" +
|
||||
"--notfbox:" + secondary + ";--emphasized:" + active + ";--his-data:" +
|
||||
secondary +
|
||||
";--active:" + active + ";--postbox:" + postbox + ";--modalfooter:" +
|
||||
primary +
|
||||
";--accentbtn:" + subcolor + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare + "}"+
|
||||
"--gray:" + gray + ";"+
|
||||
".customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
var css = ":root {--bg:" + bg + ";--drag:" + drag + ";" +
|
||||
"--text:" + text + ";--beforehover:" + beforehover + ";--modal:" +
|
||||
modal + ";--thirdColor:" + thirdColor + ";--subcolor:" + forthColor +
|
||||
";--bottom:" + bottom + ";--accent:" + accent + ";" + ";--emphasized:" + emphasized + ";--his-data:" +
|
||||
hisData +
|
||||
";--active:" + active + ";--postbox:" + postbox + ";--modalfooter:" +
|
||||
modalFooter + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare +
|
||||
";--gray:" + gray + ";}" +
|
||||
".customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
} else {
|
||||
var css = compatibleTheme(json)
|
||||
}
|
||||
e.sender.webContents.send('theme-css-response', css);
|
||||
} catch (e) {
|
||||
var css = "";
|
||||
}
|
||||
|
||||
})
|
||||
ipc.on('theme-json-list', function (e, arg) {
|
||||
fs.readdir(app.getPath("userData"), function (err, files) {
|
||||
if (err || !files) throw err;
|
||||
var fileList = files.filter(function (file) {
|
||||
if(file.match(/\.thedesktheme$/)){
|
||||
var tfile = join(app.getPath("userData"), file)
|
||||
return fs.statSync(tfile).isFile() && /.*\.thedesktheme$/.test(tfile)
|
||||
}else{
|
||||
return null
|
||||
}
|
||||
})
|
||||
var themes = [];
|
||||
for (var i = 0; i < fileList.length; i++) {
|
||||
var themecss = join(app.getPath("userData"), fileList[i]);
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
themes.push({
|
||||
name: json.name,
|
||||
id: json.id
|
||||
})
|
||||
function compatibleTheme(json) {
|
||||
var primary = json.vars.primary;
|
||||
var secondary = json.vars.secondary;
|
||||
var text = json.vars.text;
|
||||
if (json.base == "light") {
|
||||
var drag = "rgba(255, 255, 255, 0.8)";
|
||||
var beforehover = "#757575";
|
||||
var selected = "#3f3f3f"
|
||||
var selectedWithShare = "#b2babd"
|
||||
var gray = "#757575"
|
||||
} else {
|
||||
var drag = "rgba(0, 0, 0, 0.8)";
|
||||
var beforehover = "#9e9e9e";
|
||||
var selected = "#c0c0c0"
|
||||
var selectedWithShare = "#003a30"
|
||||
var gray = "#cccccc"
|
||||
}
|
||||
if (json.advanced) {
|
||||
if (json.advanced.TheDeskAccent) {
|
||||
var emphasized = json.advanced.TheDeskAccent
|
||||
} else {
|
||||
var emphasized = secondary
|
||||
}
|
||||
e.sender.webContents.send('theme-json-list-response', themes);
|
||||
});
|
||||
if (json.advanced.TheDeskActive) {
|
||||
var active = json.advanced.TheDeskActive
|
||||
} else {
|
||||
var active = primary
|
||||
}
|
||||
if (json.advanced.TheDeskModal) {
|
||||
var modal = json.advanced.TheDeskModal
|
||||
} else {
|
||||
var modal = secondary
|
||||
}
|
||||
if (json.advanced.TheDeskBottom) {
|
||||
var bottom = json.advanced.TheDeskBottom
|
||||
} else {
|
||||
var bottom = primary
|
||||
}
|
||||
if (json.advanced.TheDeskPostbox) {
|
||||
var postbox = json.advanced.TheDeskPostbox
|
||||
} else {
|
||||
var postbox = primary
|
||||
}
|
||||
if (json.advanced.TheDeskSubcolor) {
|
||||
var subcolor = json.advanced.TheDeskSubcolor
|
||||
} else {
|
||||
var subcolor = primary
|
||||
}
|
||||
} else {
|
||||
var emphasized = primary
|
||||
var acs = secondary
|
||||
var active = primary
|
||||
var modal = secondary
|
||||
var bottom = primary
|
||||
var postbox = primary
|
||||
var subcolor = primary
|
||||
}
|
||||
|
||||
var css = ".customtheme {--bg:" + secondary + ";--drag:" + drag + ";" +
|
||||
"--text:" + text + ";--beforehover:" + beforehover + ";--modal:" +
|
||||
modal + ";--thirdColor:" + subcolor + ";--subcolor:" + subcolor +
|
||||
";--bottom:" + bottom + ";--accent:" + emphasized + ";" +
|
||||
"--subcolor:" + secondary + ";--emphasized:" + active + ";--his-data:" +
|
||||
secondary +
|
||||
";--active:" + active + ";--postbox:" + postbox + ";--modalfooter:" +
|
||||
primary +
|
||||
";--active:" + subcolor + ";--selected:" + selected + ";--selectedWithShare:" + selectedWithShare + "}" +
|
||||
"--gray:" + gray + ";" +
|
||||
".customtheme #imagemodal{background: url(\"../img/pixel.svg\");}";
|
||||
return css
|
||||
}
|
||||
ipc.on('theme-json-list', function (e, arg) {
|
||||
var files1 = fs.readdirSync(join(app.getAppPath(), '/source/themes'))
|
||||
var file1List = files1.filter(function (file) {
|
||||
if (file.match(/\.thedesktheme$/)) {
|
||||
var tfile = join(app.getAppPath(), '/source/themes', file)
|
||||
return fs.statSync(tfile).isFile() && /.*\.thedesktheme$/.test(tfile)
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
})
|
||||
var themes = [];
|
||||
for (var i = 0; i < file1List.length; i++) {
|
||||
var themecss = join(app.getAppPath(), '/source/themes', file1List[i]);
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
let compat = true
|
||||
if (json.version) compat = false
|
||||
themes.push({
|
||||
name: json.name,
|
||||
id: json.id,
|
||||
compatible: compat,
|
||||
default: true
|
||||
})
|
||||
}
|
||||
var files2 = fs.readdirSync(app.getPath("userData"))
|
||||
var file2List = files2.filter(function (file) {
|
||||
if (file.match(/\.thedesktheme$/)) {
|
||||
var tfile = join(app.getPath("userData"), file)
|
||||
return fs.statSync(tfile).isFile() && /.*\.thedesktheme$/.test(tfile)
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
})
|
||||
for (var i = 0; i < file2List.length; i++) {
|
||||
var themecss = join(app.getPath("userData"), file2List[i]);
|
||||
var json = JSON5.parse(fs.readFileSync(themecss, 'utf8'));
|
||||
let compat = true
|
||||
if (json.version) compat = false
|
||||
themes.push({
|
||||
name: json.name,
|
||||
id: json.id,
|
||||
compatible: compat,
|
||||
default: false
|
||||
})
|
||||
}
|
||||
e.sender.webContents.send('theme-json-list-response', themes);
|
||||
})
|
||||
}
|
||||
exports.css = css;
|
||||
|
@@ -28,6 +28,7 @@ function dl(mainWindow, lang_path, base, dirname) {
|
||||
show: false
|
||||
})
|
||||
var lang = fs.readFileSync(lang_path, 'utf8')
|
||||
//updatewin.toggleDevTools()
|
||||
updatewin.loadURL(base + lang + '/update.html')
|
||||
updatewin.webContents.once('dom-ready', () => {
|
||||
updatewin.show()
|
||||
|
@@ -1,5 +1,5 @@
|
||||
// Create the Application's main menu
|
||||
function templete(lang, mainWindow, packaged, dir, dirname, frame) {
|
||||
function templete(lang, mainWindow, packaged, dir, dirname) {
|
||||
//フレーム
|
||||
if(lang !="ja" && lang != "en"){
|
||||
lang = "en"
|
||||
@@ -9,11 +9,6 @@ function templete(lang, mainWindow, packaged, dir, dirname, frame) {
|
||||
const app = electron.app;
|
||||
const BrowserWindow = electron.BrowserWindow;
|
||||
const join = require('path').join;
|
||||
ipc.on("frameCheck", function(e, arg) {
|
||||
if(!frame) {
|
||||
e.sender.webContents.send("frame", "");
|
||||
}
|
||||
});
|
||||
const dict = {
|
||||
"application": {
|
||||
"ja": "アプリケーション",
|
||||
|
@@ -188,8 +188,8 @@ function system(mainWindow, dir, lang, dirname) {
|
||||
})
|
||||
function mems() {
|
||||
var mem = os.totalmem() - os.freemem()
|
||||
if (mainWindow) {
|
||||
event.webContents.send('memory', [mem, os.cpus()[0].model, os.totalmem()])
|
||||
if (mainWindow && event.webContents) {
|
||||
event.webContents.send('memory', [mem, os.cpus()[0].model, os.totalmem(), os.cpus().length, os.uptime()])
|
||||
}
|
||||
}
|
||||
ipc.on('endmem', (e, arg) => {
|
||||
|
@@ -1,5 +1,4 @@
|
||||
[
|
||||
"TheDeskは自称ステイホームの必須アイテム",
|
||||
"あと数秒でPCのファンが全力で回り始める",
|
||||
"カラムの数だけ夢があるがネットワークは逼迫する",
|
||||
"朝起きたらストリーミングが止まっていた…",
|
||||
@@ -50,5 +49,11 @@
|
||||
"N押すとトゥートのボックスが出て、すぐ打ち込める。",
|
||||
"Xを押すとトゥートのボックスは出るけど、打ち込めない。その代わりもう一度押すと消せる。",
|
||||
"トゥートした後ボックスを閉じるとかそのままにしておくとかは、設定で変えられます。",
|
||||
"OpenStickerへの登録データ募集中"
|
||||
]
|
||||
"OpenStickerへの登録データ募集中",
|
||||
"Microsoft Store版のアップデートは向こうに止められてます",
|
||||
"いのちの輝き版ロゴ",
|
||||
"いのちの輝き版ロゴ",
|
||||
"いのちの輝き版ロゴ",
|
||||
"いのちの輝き版ロゴ",
|
||||
"いのちの輝き版ロゴ"
|
||||
]
|
@@ -6,6 +6,7 @@
|
||||
<link href="./css/tl.css" type="text/css" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
|
||||
<link href="./node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||
<script type="text/javascript" src="./node_modules/grapheme-splitter/index.js"></script>
|
||||
<title>TheDesk Nano</title>
|
||||
<style>
|
||||
html {
|
||||
@@ -15,7 +16,7 @@
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
font-family: sans-serif;
|
||||
color: var(--color) !important;
|
||||
color: var(--text) !important;
|
||||
}
|
||||
|
||||
body {
|
||||
@@ -44,7 +45,7 @@
|
||||
|
||||
textarea {
|
||||
-webkit-app-region: no-drag;
|
||||
color: var(--color) !important;
|
||||
color: var(--text) !important;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
@@ -82,12 +83,16 @@
|
||||
.cvo {
|
||||
grid-template-rows: auto 1rem 1fr auto 2rem;
|
||||
}
|
||||
.voice {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript" src="./node_modules/jquery/dist/jquery.js"></script>
|
||||
<script>
|
||||
var pwa = false
|
||||
$.strip_tags = function(str, allowed) {
|
||||
if (!str) {
|
||||
return "";
|
||||
@@ -141,7 +146,7 @@
|
||||
}
|
||||
</script>
|
||||
<script src="https://twemoji.maxcdn.com/2/twemoji.min.js?2.7"></script>
|
||||
<script type="text/javascript" src="view/en/main.js"></script>
|
||||
<script type="text/javascript" src="./js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="./js/post/status.js"></script>
|
||||
<script type="text/javascript" src="./js/post/post.js"></script>
|
||||
<script type="text/javascript" src="./js/post/use-txtbox.js"></script>
|
||||
|
@@ -75,7 +75,7 @@
|
||||
</head>
|
||||
|
||||
<body class="center" style="overflow: hidden;">
|
||||
<img src="./img/desk-animation.svg" style="max-width: 62%;" />
|
||||
<img src="./img/desk-animation.svg" id="leader" style="max-width: 62%;" />
|
||||
<h1>TheDesk</h1>
|
||||
<span id="ver"></span><br />
|
||||
<span class="loading"></span><br />
|
||||
@@ -84,11 +84,12 @@
|
||||
<script>
|
||||
if (location.search) {
|
||||
var m = location.search.match(/\?ver=([0-9.]+)&codename=([a-zA-Z]+)&maxim=(.+)/)
|
||||
var maxim = decodeURI(m[3])
|
||||
if(maxim == 'いのちの輝き版ロゴ') document.getElementById('leader').setAttribute('src', './img/2025.svg')
|
||||
var ver = m[1]
|
||||
var code = m[2]
|
||||
var maxim = m[3]
|
||||
document.getElementById('ver').innerText = `${ver}(${code})`
|
||||
document.getElementById('maxim').innerText = `${decodeURI(maxim)}`
|
||||
document.getElementById('maxim').innerText = maxim
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
|
@@ -1,21 +1,28 @@
|
||||
{
|
||||
"name": "thedesk",
|
||||
"version": "21.0.5",
|
||||
"codename": "Mayu",
|
||||
"version": "22.0.1",
|
||||
"codename": "Koume",
|
||||
"description": "TheDesk is a Mastodon client for PC.",
|
||||
"repository": "https://github.com/cutls/TheDesk",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"construct": "cd view/make && node make --automatic && cd ../../",
|
||||
"construct": "cd view/make && node make --automatic && cd ../../ && browserify aiscript.js -o js/platform/aiscript.js",
|
||||
"construct:store": "cd view/make && node make --automatic --store && cd ../../ && browserify aiscript.js -o js/platform/aiscript.js",
|
||||
"dev": "npx electron ./ --dev",
|
||||
"dist": "build --linux snap",
|
||||
"watchview": "node view/make/make.js --automatic --watch",
|
||||
"build:js": "node build.js",
|
||||
"build": "node view/make/make.js --automatic && npx electron-builder",
|
||||
"build:all": "npx electron-builder --win --linux",
|
||||
"build:win": "npx electron-builder --win",
|
||||
"build:pwa": "node view/make/make.js --automatic --pwa"
|
||||
"build:pwa": "node view/make/make.js --automatic --pwa",
|
||||
"build:win:web": "node view/make/make.js --automatic && npx electron-builder --win",
|
||||
"build:win:msstore": "node view/make/make.js --automatic --store && npx electron-builder --win appx",
|
||||
"build:linux:web": "node view/make/make.js --automatic && npx electron-builder --linux",
|
||||
"build:linux:snapstore": "node view/make/make.js --automatic --store && npx electron-builder --linux",
|
||||
"build:mac:web": "node view/make/make.js --automatic && npx electron-builder --mac",
|
||||
"build:mac:homebrew": "node view/make/make.js --automatic --store && npx electron-builder --mac",
|
||||
"lint:fix": "eslint js --fix",
|
||||
"lint": "eslint js"
|
||||
},
|
||||
"keywords": [
|
||||
"mastodon",
|
||||
@@ -33,7 +40,8 @@
|
||||
"url": "https://cutls.dev",
|
||||
"email": "p@cutls.com"
|
||||
},
|
||||
"contributor": [{
|
||||
"contributor": [
|
||||
{
|
||||
"name": "とねぢ",
|
||||
"url": "https://minohdon.jp/@toneji",
|
||||
"email": "solfa.tono@gmail.com"
|
||||
@@ -51,28 +59,31 @@
|
||||
],
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.14.0",
|
||||
"custom-electron-titlebar": "^3.2.3",
|
||||
"electron-dl": "^3.0.1",
|
||||
"jimp": "^0.14.0",
|
||||
"@fortawesome/fontawesome-free": "^5.15.1",
|
||||
"@syuilo/aiscript": "^0.11.1",
|
||||
"electron-dl": "^3.0.2",
|
||||
"jimp": "^0.16.1",
|
||||
"jquery": "^3.5.1",
|
||||
"jquery-ui-dist": "^1.12.1",
|
||||
"json5": "^2.1.3",
|
||||
"lodash": "^4.17.19",
|
||||
"lodash": "^4.17.20",
|
||||
"materialize-css": "git://github.com/cutls/materialize#v1-dev",
|
||||
"sanitize-html": "^2.3.0",
|
||||
"sumchecker": "^3.0.1",
|
||||
"sweetalert2": "^9.17.0",
|
||||
"sweetalert2": "^10.10.0",
|
||||
"system-font-families": "^0.4.1",
|
||||
"vue": "^2.6.11"
|
||||
"vue": "^2.6.12"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"itunes-nowplaying-mac": "0.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"chokidar": "^3.4.1",
|
||||
"electron": "^9.1.1",
|
||||
"electron-builder": "^22.7.0",
|
||||
"electron-rebuild": "^1.11.0",
|
||||
"browserify": "^17.0.0",
|
||||
"chokidar": "^3.4.3",
|
||||
"electron": "^10.1.5",
|
||||
"electron-builder": "^22.9.1",
|
||||
"electron-rebuild": "^2.3.2",
|
||||
"eslint": "^7.13.0",
|
||||
"readline-sync": "1.4.10"
|
||||
},
|
||||
"build": {
|
||||
@@ -88,8 +99,8 @@
|
||||
"icon": "build/thedesk.ico",
|
||||
"target": [
|
||||
"nsis",
|
||||
"portable",
|
||||
"appx"
|
||||
"appx",
|
||||
"portable"
|
||||
]
|
||||
},
|
||||
"appx": {
|
||||
@@ -111,6 +122,7 @@
|
||||
"icon": "build/icons",
|
||||
"target": [
|
||||
"zip",
|
||||
"appImage",
|
||||
"snap",
|
||||
"deb"
|
||||
],
|
||||
@@ -127,4 +139,4 @@
|
||||
},
|
||||
"electronVersion": "9.0.5"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
BIN
app/source/bubble.wav
Normal file
BIN
app/source/bubble.wav
Normal file
Binary file not shown.
27
app/source/themes/black.thedesktheme
Normal file
27
app/source/themes/black.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Black',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'dark',
|
||||
primary: {
|
||||
background: '#212121',
|
||||
subcolor: '#424242',
|
||||
text: '#fff',
|
||||
accent: '#004d40',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#000',
|
||||
modalFooter: '#212121',
|
||||
third: '#212121',
|
||||
forth: '#333333',
|
||||
bottom: '#424242',
|
||||
emphasized: '#4e342e',
|
||||
postbox: '#424242',
|
||||
active: '#3f51b5',
|
||||
selected: '#3f3f3f',
|
||||
selectedWithShared: '#003a30',
|
||||
},
|
||||
id: 'black',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/blue.thedesktheme
Normal file
27
app/source/themes/blue.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Blue',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'light',
|
||||
primary: {
|
||||
background: '#c9e1ec',
|
||||
subcolor: '#dff1ff',
|
||||
text: '#000',
|
||||
accent: '#e0ffe4',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#b2ebf2',
|
||||
modalFooter: '#2196f3',
|
||||
third: '#90caf9',
|
||||
forth: '#90caf9',
|
||||
bottom: '#b6e6f5',
|
||||
emphasized: '#c5e1a5',
|
||||
postbox: '#dff1ff',
|
||||
active: '#2f7bb7',
|
||||
selected: '#9dcade',
|
||||
selectedWithShared: '#c1dac4',
|
||||
},
|
||||
id: 'blue',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/brown.thedesktheme
Normal file
27
app/source/themes/brown.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Brown',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'dark',
|
||||
primary: {
|
||||
background: '#261411',
|
||||
subcolor: '#4e342e',
|
||||
text: '#fff',
|
||||
accent: '#004d40',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#261411',
|
||||
modalFooter: '#261411',
|
||||
third: '#4e342e',
|
||||
forth: '#4e342e',
|
||||
bottom: '#4e342e',
|
||||
emphasized: '#0d47a1',
|
||||
postbox: '#4e342e',
|
||||
active: '#827717',
|
||||
selected: '#6d352b',
|
||||
selectedWithShared: '#003a30',
|
||||
},
|
||||
id: 'brown',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/green.thedesktheme
Normal file
27
app/source/themes/green.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Green',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'light',
|
||||
primary: {
|
||||
background: '#c8e6c9',
|
||||
subcolor: '#a5d6a7',
|
||||
text: '#000',
|
||||
accent: '#ffcc80',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#81c784',
|
||||
modalFooter: '#81c784',
|
||||
third: '#a5d6a7',
|
||||
forth: '#81c784',
|
||||
bottom: '#c5e1a5',
|
||||
emphasized: '#9e9d24',
|
||||
postbox: '#a5d6a7',
|
||||
active: '#33691e',
|
||||
selected: '#78c17a',
|
||||
selectedWithShared: '#caa266',
|
||||
},
|
||||
id: 'green',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/indigo.thedesktheme
Normal file
27
app/source/themes/indigo.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Indigo',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'dark',
|
||||
primary: {
|
||||
background: '#031833',
|
||||
subcolor: '#1a237e',
|
||||
text: '#fff',
|
||||
accent: '#004d40',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#0d1351',
|
||||
modalFooter: '#031833',
|
||||
third: '#0d1351',
|
||||
forth: '#0d47a1',
|
||||
bottom: '#0d1351',
|
||||
emphasized: '#4e342e',
|
||||
postbox: '#1a237e',
|
||||
active: '#00acc1',
|
||||
selected: '#214f8a',
|
||||
selectedWithShared: '#003a30',
|
||||
},
|
||||
id: 'indigo',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/polar.thedesktheme
Normal file
27
app/source/themes/polar.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Polar Night',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'dark',
|
||||
primary: {
|
||||
background: '#2e3440',
|
||||
subcolor: '#434c5e',
|
||||
text: '#ffffff',
|
||||
accent: '#2d3b58',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#3b4252',
|
||||
modalFooter: '#485166',
|
||||
third: '#434c5e',
|
||||
forth: '#4c566a',
|
||||
bottom: '#3b4252',
|
||||
emphasized: '#2f4b86',
|
||||
postbox: '#434c5e',
|
||||
active: '#2f4b86',
|
||||
selected: '#464f61',
|
||||
selectedWithShared: '#3e527e',
|
||||
},
|
||||
id: 'polar',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/snow.thedesktheme
Normal file
27
app/source/themes/snow.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'Snow Storm',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'light',
|
||||
primary: {
|
||||
background: '#eceff4',
|
||||
subcolor: '#d8dee9',
|
||||
text: '#36425a',
|
||||
accent: '#c3d4e6',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#e5e9f0',
|
||||
modalFooter: '#b2bed4',
|
||||
third: '#d8dee9',
|
||||
forth: '#4c566a',
|
||||
bottom: '#eeeeee',
|
||||
emphasized: '#88c0d0',
|
||||
postbox: '#d8dee9',
|
||||
active: '#81a1c1',
|
||||
selected: '#b4bdd0',
|
||||
selectedWithShared: '#a3afbb',
|
||||
},
|
||||
id: 'snow',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
27
app/source/themes/white.thedesktheme
Normal file
27
app/source/themes/white.thedesktheme
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
name: 'White',
|
||||
author: 'TheDesk',
|
||||
desc: 'TheDesk Default Theme',
|
||||
base: 'light',
|
||||
primary: {
|
||||
background: '#fff',
|
||||
subcolor: '#fff',
|
||||
text: '#000',
|
||||
accent: '#cfd8dc',
|
||||
},
|
||||
advanced: {
|
||||
modal: '#fff',
|
||||
modalFooter: '#fafafa',
|
||||
third: '#e0e0e0',
|
||||
forth: '#fff',
|
||||
bottom: '#eeeeee',
|
||||
emphasized: '#81c784',
|
||||
postbox: '#fff',
|
||||
active: '#009688',
|
||||
selected: '#c0c0c0',
|
||||
selectedWithShared: '#b2babd',
|
||||
},
|
||||
id: 'white',
|
||||
version: '2',
|
||||
default: true
|
||||
}
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"latest":[],
|
||||
"3.2.0": [],
|
||||
"3.1.5": [],
|
||||
"3.1.4": [
|
||||
"リモート限定の連合タイムライン"
|
||||
],
|
||||
|
@@ -3,12 +3,12 @@
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link
|
||||
href="../../@@node_base@@/materialize-css/dist/css/materialize.css"
|
||||
type="text/css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet" />
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||
@@ -26,7 +26,7 @@
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
@@comment-end@@
|
||||
@@pwa@@
|
||||
@@pwa@@ @@store@@
|
||||
</head>
|
||||
|
||||
<body id="mainView" class="@@pwaClass@@">
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Drag here to upload",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Close",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Poll",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
@@ -130,7 +133,7 @@
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).",
|
||||
"add": "Add",
|
||||
"search": "Search",
|
||||
"sortSet": "Sort",
|
||||
|
@@ -71,6 +71,7 @@
|
||||
"lang_post_btn3": "Continue to post",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "It will take a miunte to favourite a remote toot.",
|
||||
"lang_status_btWarn": "It will take a miunte to boost a remote toot.",
|
||||
"lang_status_follow": "Follow",
|
||||
@@ -87,6 +88,9 @@
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Delete this",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
@@ -131,13 +135,17 @@
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_reconnect": "Reload",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
@@ -222,6 +230,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
@@ -236,6 +245,7 @@
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Notification test",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimum width of TweetDeck browser",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Font",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -43,19 +44,26 @@
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
@@ -101,8 +109,8 @@
|
||||
"or": "or",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://github.com/MiyonMiyon/InstanceTicker_List\">About #InstanceTicker</a> (c)2018-2020 MiyonMiyon. Released under the MIT License.",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show the instance name and favicon of tooters <a href=\"https://opensticker.0px.io\">About OpenSticker</a>",
|
||||
"animation": "Animation of timelines",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
@@ -150,6 +158,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Drag here to upload",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Close",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Poll",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
@@ -130,7 +133,7 @@
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).",
|
||||
"add": "Add",
|
||||
"search": "Search",
|
||||
"sortSet": "Sort",
|
||||
|
@@ -71,6 +71,7 @@
|
||||
"lang_post_btn3": "Continue to post",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "It will take a miunte to favourite a remote toot.",
|
||||
"lang_status_btWarn": "It will take a miunte to boost a remote toot.",
|
||||
"lang_status_follow": "Follow",
|
||||
@@ -87,6 +88,9 @@
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Delete this",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
@@ -131,13 +135,17 @@
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_reconnect": "Reload",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
@@ -222,6 +230,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
@@ -236,6 +245,7 @@
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Notification test",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimum width of TweetDeck browser",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Font",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -43,19 +44,26 @@
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
@@ -101,8 +109,8 @@
|
||||
"or": "or",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://github.com/MiyonMiyon/InstanceTicker_List\">About #InstanceTicker</a> (c)2018-2020 MiyonMiyon. Released under the MIT License.",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show the instance name and favicon of tooters <a href=\"https://opensticker.0px.io\">About OpenSticker</a>",
|
||||
"animation": "Animation of timelines",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
@@ -150,6 +158,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Плъзнете тук за да качите",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Затвори",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Емоти с инструменти",
|
||||
"symbolEmoji": "Емоти със символи",
|
||||
"flagsEmoji": "Емоти с флагове",
|
||||
"draft": "Draft",
|
||||
"poll": "Анкета",
|
||||
"pollDdisabled": "Анкети: Деактивирани",
|
||||
"pollProvider": "Доставчик на Анкета",
|
||||
|
@@ -71,6 +71,7 @@
|
||||
"lang_post_btn3": "Продължете към публикуването",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "Ще отнеме минута раздумката отдалечено да стане любима.",
|
||||
"lang_status_btWarn": "Ще отнеме минута раздумката отдалечено да бъде подсилена.",
|
||||
"lang_status_follow": "Следване",
|
||||
@@ -87,6 +88,9 @@
|
||||
"lang_status_endorse": "Функция в профила",
|
||||
"lang_status_followers": "Последователи",
|
||||
"lang_status_active": "Последно състояние",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Изтрийте тази раздумка",
|
||||
"lang_suggest_nodata": "Моля, вземете списък с емотикони за да покажете състояние.",
|
||||
"lang_usetxtbox_reply": "Режим на отговор. Ctrl+Shift+C за изчистване.",
|
||||
"lang_cards_check": " проверка",
|
||||
@@ -136,7 +140,11 @@
|
||||
"lang_layout_nodata": "[Няма данни]<br>F5/⌘+R за презареждане",
|
||||
"lang_layout_dm": "Директни съобщения",
|
||||
"lang_layout_webviewmode": "Предпочитания за WebView",
|
||||
"lang_excluded": "Изключване на вид уведомление",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Показване в BT режим (ИЗКЛ./Изключване BT/ Само в BT)",
|
||||
"lang_layout_leftFold": "Стъпка наляво",
|
||||
"lang_layout_leftUnfold": "Док отдясно",
|
||||
@@ -222,6 +230,7 @@
|
||||
"lang_parse_html": "Показване на вграденият HTML код",
|
||||
"lang_parse_notffilter": "Показване на известията от този потребител",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Повторно публикуване",
|
||||
"lang_misskeyparse_renoteqt": "Повторна бележка",
|
||||
"lang_misskeyparse_reaction": "Реакция",
|
||||
@@ -236,6 +245,7 @@
|
||||
"lang_misskeyparse_reacted": " реагирали на следващата ви публикация.",
|
||||
"lang_setting_time": "Времеви формат:{{set}}",
|
||||
"lang_setting_theme": "Тема:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Вътрешно уведомяване",
|
||||
"nnwarn": "Това не работи в Windows Portable вер.",
|
||||
"nntest": "Тест за уведомяване",
|
||||
"minwidth": "Минимална ширина на колоните",
|
||||
"minwidthwarn": "Лентата за превъртане ще се покаже, когато размерът на прозореца е по-голям от размера на колони.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Минимална ширина на браузъра TweetDeck",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "над",
|
||||
"font": "Шрифт",
|
||||
"fontwarn": "Изберете любимия си шрифт с „Избор“ (само за Windows / macOS)",
|
||||
@@ -45,17 +46,24 @@
|
||||
"themeSel": "Изберете тема",
|
||||
"customtheme": "Редактирайте и добавете персонализирани теми",
|
||||
"customthemeDirection": "Цветова схема",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Цвят на фона",
|
||||
"secondarycolor": "Компоненти на фона",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Цвят на текста",
|
||||
"accent": "Фон на подсилването",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Добавяне на нов",
|
||||
"name": "Име",
|
||||
"desc": "Относно тази тема",
|
||||
@@ -101,7 +109,7 @@
|
||||
"or": "или",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://cdn.weep.me/mastodon/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
"animation": "Анимация на времевата линия",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
@@ -150,6 +158,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "Можете да вмъкнете всякакви букви и емотикони само с 3 клавиша",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Drag here to upload",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Close",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Poll",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
@@ -130,7 +133,7 @@
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).",
|
||||
"add": "Add",
|
||||
"search": "Search",
|
||||
"sortSet": "Sort",
|
||||
|
@@ -71,6 +71,7 @@
|
||||
"lang_post_btn3": "Continue to post",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "It will take a miunte to favourite a remote toot.",
|
||||
"lang_status_btWarn": "It will take a miunte to boost a remote toot.",
|
||||
"lang_status_follow": "Follow",
|
||||
@@ -87,6 +88,9 @@
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Delete this",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
@@ -131,13 +135,17 @@
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_reconnect": "Reload",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
@@ -222,6 +230,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
@@ -236,6 +245,7 @@
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Notification test",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimum width of TweetDeck browser",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Font",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -43,19 +44,26 @@
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
@@ -101,8 +109,8 @@
|
||||
"or": "or",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://github.com/MiyonMiyon/InstanceTicker_List\">About #InstanceTicker</a> (c)2018-2020 MiyonMiyon. Released under the MIT License.",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show the instance name and favicon of tooters <a href=\"https://opensticker.0px.io\">About OpenSticker</a>",
|
||||
"animation": "Animation of timelines",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
@@ -150,6 +158,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Přetáhněte sem pro nahrání",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Zavřít",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Anketa",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
|
@@ -71,6 +71,7 @@
|
||||
"lang_post_btn3": "Pokračovat k přispívání",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "Oblíbení vzdáleného tootu bude chvíli trvat.",
|
||||
"lang_status_btWarn": "Boostnutí vzdáleného tootu bude chvíli trvat.",
|
||||
"lang_status_follow": "Sledovat",
|
||||
@@ -87,6 +88,9 @@
|
||||
"lang_status_endorse": "Představit na profilu",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Smazat tento toot",
|
||||
"lang_suggest_nodata": "Pro zobrazení návrhu prosím získejte seznam emoji.",
|
||||
"lang_usetxtbox_reply": "Režim odpovězení. Pro vymazání stiskněte Ctrl+Shift+C.",
|
||||
"lang_cards_check": " kontrolovat",
|
||||
@@ -136,7 +140,11 @@
|
||||
"lang_layout_nodata": "[Žádná data]<br>Obnovte stránku klávesami F5/⌘+R",
|
||||
"lang_layout_dm": "Přímá zpráva",
|
||||
"lang_layout_webviewmode": "Preferovat WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
@@ -222,6 +230,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Znovusdílení",
|
||||
"lang_misskeyparse_renoteqt": "Renotování",
|
||||
"lang_misskeyparse_reaction": "Reakce",
|
||||
@@ -236,6 +245,7 @@
|
||||
"lang_misskeyparse_reacted": " reagoval/a na váš následující příspěvek.",
|
||||
"lang_setting_time": "Časový formát: {{set}}",
|
||||
"lang_setting_theme": "Motiv: {{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Citlivý obsah: {{set}}",
|
||||
"lang_setting_cw": "Varování: {{set}}",
|
||||
"lang_setting_cwtext": "Výchozí text varování: {{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Odskoušet oznámení",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimální šířka TweetDeck prohlížeče",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Písmo",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -45,17 +46,24 @@
|
||||
"themeSel": "Vybrat motiv",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
@@ -150,6 +158,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Drag here to upload",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Close",
|
||||
"webSrc": "Search on Web",
|
||||
"tsSrc": "Search on tootsearch",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis of tools",
|
||||
"symbolEmoji": "Emojis of symbols",
|
||||
"flagsEmoji": "Emojis of flags",
|
||||
"draft": "Draft",
|
||||
"poll": "Poll",
|
||||
"pollDdisabled": "Polls: Disabled",
|
||||
"pollProvider": "Provider of Poll",
|
||||
@@ -130,7 +133,7 @@
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).",
|
||||
"add": "Add",
|
||||
"search": "Search",
|
||||
"sortSet": "Sort",
|
||||
|
@@ -71,6 +71,7 @@
|
||||
"lang_post_btn3": "Continue to post",
|
||||
"lang_post_unfinishedMedia": "The server has not finished processing your media. Retry.",
|
||||
"lang_post_retry": "Retry",
|
||||
"lang_post_offline": "Add to the drafts because of offline",
|
||||
"lang_status_favWarn": "It will take a miunte to favourite a remote toot.",
|
||||
"lang_status_btWarn": "It will take a miunte to boost a remote toot.",
|
||||
"lang_status_follow": "Follow",
|
||||
@@ -87,6 +88,9 @@
|
||||
"lang_status_endorse": "Feature on profile",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_secure_draft": "Add to draft",
|
||||
"lang_secure_useThis": "Use this",
|
||||
"lang_secure_deleteThis": "Delete this",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
@@ -131,13 +135,17 @@
|
||||
"lang_layout_linkana": "Auto Link Analyzer",
|
||||
"lang_layout_linkanades": "Auto link analyzer",
|
||||
"lang_layout_tts": "Text to speech ",
|
||||
"lang_layout_reconnect": "Reload this column",
|
||||
"lang_layout_reconnect": "Reload",
|
||||
"lang_layout_headercolor": "Header color of this column",
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excluded": "Excluded type of notification",
|
||||
"lang_layout_mention": "Mentions",
|
||||
"lang_layout_fav": "Favourites",
|
||||
"lang_layout_bt": "Boosts",
|
||||
"lang_layout_poll": "Polls",
|
||||
"lang_layout_excludingbt": "Show BT mode",
|
||||
"lang_layout_leftFold": "Stack to the left",
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
@@ -222,6 +230,7 @@
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_parse_hidden": "Unvisible quoted toot",
|
||||
"lang_parse_disconnected": "Streaming has been disconnected(retry after 3s)",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
"lang_misskeyparse_reaction": "Reaction",
|
||||
@@ -236,6 +245,7 @@
|
||||
"lang_misskeyparse_reacted": " reacted your following post.",
|
||||
"lang_setting_time": "Time format:{{set}}",
|
||||
"lang_setting_theme": "Theme:{{set}}",
|
||||
"lang_setting_compat": "Compatible",
|
||||
"lang_setting_nsfw": "Sensitive media:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
|
@@ -24,10 +24,11 @@
|
||||
"nativenotf": "Native notification",
|
||||
"nnwarn": "This does not work on Windows Portable ver.",
|
||||
"nntest": "Notification test",
|
||||
"minwidth": "Minimum width of columns",
|
||||
"minwidthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"width": "Width of columns",
|
||||
"widthwarn": "Scroll bar will be shown when your window size is more than ammounts of columns.",
|
||||
"fixwidth": "Minimum width of TweetDeck browser",
|
||||
"fixwidthwarn": "",
|
||||
"margin": "Margin between timelines",
|
||||
"above": "above",
|
||||
"font": "Font",
|
||||
"fontwarn": "Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
@@ -43,19 +44,26 @@
|
||||
"srcUrl": "Search engine",
|
||||
"srcUrlWarn": "{q} will be replaced to query.",
|
||||
"themeSel": "Select theme",
|
||||
"customtheme": "Edit and add custom themes",
|
||||
"customtheme": "Edit and add themes",
|
||||
"customthemeDirection": "Color scheme",
|
||||
"advanced": "Advanced options(6 additional colors)",
|
||||
"advancedWarn": "Advanced options will be <i>null</i> if you set nothing, while basic 3 options will be white(<i>fff</i>). They(adv. options) will be reset if you saved with advanced panel closed.",
|
||||
"active": "Background of Show or CW buttons, selected options...",
|
||||
"modal": "Background of modals",
|
||||
"bottom": "Background of bottom bar",
|
||||
"postbox": "Background of post box and menu",
|
||||
"subcolor": "Subcolor, has harmony with secondary color",
|
||||
"primary": "Background color",
|
||||
"secondarycolor": "Background of components",
|
||||
"advanced": "Advanced options",
|
||||
"advancedWarn": "",
|
||||
"use": "Use this",
|
||||
"copyFrom": "Copy from",
|
||||
"bg": "Background color",
|
||||
"subcolor": "Distinguishable from background",
|
||||
"text": "Text color",
|
||||
"accent": "Background of boosts",
|
||||
"modal": "Background of modal window",
|
||||
"modalFooter": "Background of modal window's footer",
|
||||
"thirdColor": "Backgroud of tag buttons, etc(near to Background)",
|
||||
"forthColor": "Title bar(same scheme to Background)",
|
||||
"bottom": "Background of menu-bar at bottom of window",
|
||||
"emphasized": "Emphasized toot's background",
|
||||
"postbox": "Background of post-box and menu",
|
||||
"active": "Background of 'active' elements",
|
||||
"selected": "Background of selected with arrow keys",
|
||||
"selectedWithShare": "Background of selected with arrow keys(boosted toots)",
|
||||
"add_new": "Add new",
|
||||
"name": "Name",
|
||||
"desc": "About this theme",
|
||||
@@ -101,8 +109,8 @@
|
||||
"or": "or",
|
||||
"imgheight": "Height of images",
|
||||
"imgheightwarn": "Option:Set \"full\" to uncrop.",
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://github.com/MiyonMiyon/InstanceTicker_List\">About #InstanceTicker</a> (c)2018-2020 MiyonMiyon. Released under the MIT License.",
|
||||
"ticker": "Enable OpenSticker",
|
||||
"tickerwarn": "Show the instance name and favicon of tooters <a href=\"https://opensticker.0px.io\">About OpenSticker</a>",
|
||||
"animation": "Animation of timelines",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
@@ -150,6 +158,9 @@
|
||||
"keysc": "Keyboard shortcut Preferences",
|
||||
"iks": "Easy inserter",
|
||||
"okswarn": "You can insert any letters and emojis with only 3 keys",
|
||||
"plugin": "Plugins",
|
||||
"howToWritePlugin": "Japanese docs of AiScript TheDesk plugins",
|
||||
"pluginList": "Plugin list",
|
||||
"muteemp": "Mute & Emphasis Preferences",
|
||||
"climute": "Client Mute",
|
||||
"cliemp": "Client Emphasis",
|
||||
|
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"list": "Accountliste",
|
||||
"list": "Konten",
|
||||
"back": "Zurück",
|
||||
"add": "Konto hinzufügen",
|
||||
"addAcct": "Fill the instance domain (like mastodon.social)",
|
||||
"addAcct": "Geben Sie die Instanz-Domain ein (wie mastodon.social)",
|
||||
"codesetupwarn": "Check if TheDesk is not working on Windows, you want to login Pleroma servers, you cannot login when it checked.",
|
||||
"codesetup": "Code-Setup",
|
||||
"mainacct": "Hauptkonto",
|
||||
@@ -21,5 +21,5 @@
|
||||
"misskeylogin": "Lies die <a href=\"https://thedesk.top/how-to-misskey-login.html\">Doku (japanisch)</a> um dich bei Misskey einzuloggen.",
|
||||
"nodata": "Keine Daten",
|
||||
"accessTokenSetup": "Benutze Zugangs-Token zum Anmelden (Klicke nach Ausfüllen nicht den Code, sondern den Access-Token im Kästchen: Erweitert)",
|
||||
"haveExported": "Having the exported file of TheDesk, click here to jump setting page"
|
||||
"haveExported": "Haben Sie eine exportierte Datei von TheDesk, klicken Sie hier für die Einstellungen"
|
||||
}
|
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"draghere": "Zum Hochladen hier her ziehen",
|
||||
"nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet",
|
||||
"reOnline": "Now we are in the Internet, you should reload...",
|
||||
"close": "Schließen",
|
||||
"webSrc": "Suche im Internet",
|
||||
"tsSrc": "Bei Tootsearch suchen",
|
||||
@@ -20,8 +22,8 @@
|
||||
"yes": "Ja",
|
||||
"temp": "Dateien anhängen",
|
||||
"nothing": "Keine",
|
||||
"stamp": "Stamp",
|
||||
"stampWarn": "Your acct(aa@bb.cc) is printed on the right-bottom of the uploaded image",
|
||||
"stamp": "Stempel",
|
||||
"stampWarn": "Ihr acct(aa@bb.cc) wird rechts unten des hochgeladenen Bildes gedruckt",
|
||||
"vis": "Status Privatsphäre anpassen",
|
||||
"cwtext": "Warntext",
|
||||
"selectVis": "Status Privatsphäre anpassen",
|
||||
@@ -45,6 +47,7 @@
|
||||
"thingsEmoji": "Emojis vom Werkzeugen",
|
||||
"symbolEmoji": "Emojis von Symbolen",
|
||||
"flagsEmoji": "Emojis der Flaggen",
|
||||
"draft": "Draft",
|
||||
"poll": "Umfrage",
|
||||
"pollDdisabled": "Umfragen: Deaktiviert",
|
||||
"pollProvider": "Anbieter von Umfragen",
|
||||
@@ -75,7 +78,7 @@
|
||||
"toots": "Tröts",
|
||||
"follow": "Folgen",
|
||||
"follower": "Abonnenten",
|
||||
"utlColumn": "Show as a column",
|
||||
"utlColumn": "Als Spalte anzeigen",
|
||||
"timeline": "Verlauf",
|
||||
"operateOtherAcct": "Cross-Account",
|
||||
"list": "Liste",
|
||||
@@ -139,7 +142,7 @@
|
||||
"filterWord": "Filterwörter",
|
||||
"degree": "Kontexte filtern",
|
||||
"conver": "Gespräche",
|
||||
"prof": "Profiles",
|
||||
"prof": "Profile",
|
||||
"option": "Einstellungen",
|
||||
"matchWord": "Ganze Wörter",
|
||||
"warnMatchWord": "Schön für lateinische Sprachen",
|
||||
@@ -184,5 +187,5 @@
|
||||
"acctManDesc": "Fügen Sie weitere Konten hinzu und loggen Sie sie aus.",
|
||||
"settingDesc": "Hier sind sehr, sehr viele Einstellungen. Du könntest gar nicht alles ausprobieren!",
|
||||
"nanoDescPlus": "Mini-Fenster-Klient (experimentell)",
|
||||
"menuDesc": "All daily TheDesk and Mastodon tuning like <b>add and sort columns</b>, <b>list and filter check</b>."
|
||||
"menuDesc": "Alle täglichen TheDesk und Mastodon-Einstellungen wie <b>hinzufügen und sortieren von Spalten</b>, <b>Liste und Filter prüfen</b>."
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user