Compare commits
37 Commits
v18.9.2
...
v18.10.1-b
Author | SHA1 | Date | |
---|---|---|---|
|
2c3dbba052 | ||
|
907eecd030 | ||
|
d217fb33a9 | ||
|
8cea32d01b | ||
|
c8d2da0c07 | ||
|
a458f51b9a | ||
|
bd8ac2935b | ||
|
dd59cc1468 | ||
|
fd365c52cc | ||
|
ad7e77a067 | ||
|
6b9135a205 | ||
|
fdca5b1c60 | ||
|
f891b30f9f | ||
|
8fbd8070f2 | ||
|
657dec1c10 | ||
|
0d93dcdc45 | ||
|
5a50c0e1e6 | ||
|
ab8da89fbc | ||
|
c9edf47643 | ||
|
84328bf693 | ||
|
6fdbf0b48e | ||
|
8b1d5b3cb4 | ||
|
bf69d23379 | ||
|
a4e3031796 | ||
|
286e7956f2 | ||
|
e04b64a326 | ||
|
c86a99df06 | ||
|
3b69c4e7c1 | ||
|
bc5be9449d | ||
|
b968e59db1 | ||
|
fa06c4a729 | ||
|
81b99515cd | ||
|
5e6c713f9d | ||
|
376425cc98 | ||
|
38cff550e1 | ||
|
64781c1cca | ||
|
e82e85b5ea |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -12,7 +12,6 @@ enq.md
|
||||
app/.tkn
|
||||
app/node_modules
|
||||
app/js/login/tkn.js
|
||||
app/package-lock.json
|
||||
app/view/en
|
||||
app/view/ja
|
||||
app/view/de
|
||||
|
10
.travis.yml
10
.travis.yml
@@ -3,15 +3,19 @@ os:
|
||||
- linux
|
||||
- osx
|
||||
language: node_js
|
||||
env:
|
||||
- YARN_GPG=no
|
||||
node_js:
|
||||
- '10.15.2'
|
||||
cache:
|
||||
yarn: true
|
||||
script: node -v
|
||||
before_deploy:
|
||||
- npm install electron-builder -g
|
||||
- yarn global add electron-builder
|
||||
- cd app
|
||||
- VERSION=$(cat package.json | grep version | head -1 | awk -F= "{ print $2 }" | sed 's/[version:,\",]//g' | tr -d '[[:space:]]')
|
||||
- npm install
|
||||
- npm run construct
|
||||
- yarn install --no-lockfile --prod
|
||||
- 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
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../build;else :;fi
|
||||
|
39
README.md
39
README.md
@@ -41,6 +41,7 @@ The default sounds of notifications is provided [Creative Commons BY](https://cr
|
||||
|
||||
* 日本語(Japanese)
|
||||
* English
|
||||
* de, cs, bg(from Crowdin)
|
||||
|
||||
### Translation
|
||||
|
||||
@@ -79,6 +80,10 @@ Fellow coder
|
||||
|
||||
## Build
|
||||
|
||||
You have to use either **npm** or **yarn**. Whichever you use, it works well.
|
||||
|
||||
### npm
|
||||
|
||||
```sh
|
||||
git clone https://github.com/cutls/TheDesk
|
||||
cd TheDesk/app
|
||||
@@ -87,8 +92,25 @@ npm install --only=dev
|
||||
npm run construct
|
||||
```
|
||||
|
||||
### yarn
|
||||
|
||||
```sh
|
||||
git clone https://github.com/cutls/TheDesk
|
||||
cd TheDesk/app
|
||||
# Linux or macOS
|
||||
yarn install --no-lockfile
|
||||
# Windows
|
||||
yarn install
|
||||
|
||||
yarn construct
|
||||
```
|
||||
|
||||
run `npm run dev` or `yarn dev` to launch developer version with console(click `view`)
|
||||
|
||||
### electron-builder(Recommended)
|
||||
Use npm scripts.
|
||||
Use scripts(they can work well with npm, **yarn**).
|
||||
|
||||
#### npm
|
||||
|
||||
```sh
|
||||
# Build for current platform
|
||||
@@ -102,6 +124,21 @@ npm run build:win
|
||||
npm run build:all
|
||||
```
|
||||
|
||||
#### yarn
|
||||
|
||||
```sh
|
||||
# Build for current platform
|
||||
yarn build
|
||||
|
||||
# Select build target
|
||||
## Windows
|
||||
yarn build:win
|
||||
|
||||
## Windows and Linux (The macOS target should run on macOS. So, this option hasn't include the build for macOS)
|
||||
yarn build:all
|
||||
```
|
||||
|
||||
|
||||
Config is all on package.json
|
||||
|
||||
### electron-packager
|
||||
|
38
README_ja.md
38
README_ja.md
@@ -40,6 +40,7 @@ Download:[TheDesk](https://thedesk.top) [
|
||||
* ドイツ語, チェコ語, ブルガリア語(from Crowdin)
|
||||
|
||||
### 翻訳
|
||||
|
||||
@@ -72,12 +73,15 @@ Linuxビルダー
|
||||
|
||||
* [ぽぷんじゃ](https://popon.pptdn.jp/@popn_ja)
|
||||
|
||||
iTunes NowPlayingにアルバムアートワークを付けてくれた人
|
||||
コーダー
|
||||
|
||||
* [kPherox](https://pl.kpherox.dev/kPherox)
|
||||
|
||||
## ビルド
|
||||
|
||||
npmでもyarnでも好きな方を選んでください。
|
||||
|
||||
### npm
|
||||
|
||||
```sh
|
||||
git clone https://github.com/cutls/TheDesk
|
||||
@@ -87,8 +91,24 @@ npm install --only=dev
|
||||
npm run construct
|
||||
```
|
||||
|
||||
### yarn
|
||||
|
||||
```sh
|
||||
git clone https://github.com/cutls/TheDesk
|
||||
cd TheDesk/app
|
||||
# Linux or macOS
|
||||
yarn install --no-lockfile
|
||||
# Windows
|
||||
yarn install
|
||||
|
||||
yarn construct
|
||||
```
|
||||
|
||||
### electron-builder(推奨)
|
||||
npm scriptsを利用します
|
||||
|
||||
scriptsを利用します
|
||||
|
||||
#### npm
|
||||
|
||||
```sh
|
||||
# 実行している環境向けにビルド
|
||||
@@ -102,6 +122,20 @@ npm run build:win
|
||||
npm run build:all
|
||||
```
|
||||
|
||||
#### yarn
|
||||
|
||||
```sh
|
||||
# 実行している環境向けにビルド
|
||||
yarn build
|
||||
|
||||
# ターゲットを指定してビルド
|
||||
## Windows
|
||||
yarn build:win
|
||||
|
||||
## macOS向けのビルドにはmacOSで実行する必要があるためこのコマンドではビルドされません
|
||||
yarn build:all
|
||||
```
|
||||
|
||||
ビルド設定はすべてpackage.jsonに記載しています。
|
||||
|
||||
### electron-packager(非推奨)
|
||||
|
@@ -220,6 +220,17 @@ blockquote:before,
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
#start {
|
||||
display: none;
|
||||
position: fixed;
|
||||
width: 100vw;
|
||||
height: calc(100vh - 40px);
|
||||
background-color: var(--bg);
|
||||
color: var(--color);
|
||||
z-index: 99999;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
#drag {
|
||||
display: none;
|
||||
position: fixed;
|
||||
|
@@ -24,6 +24,10 @@
|
||||
z-index: 500;
|
||||
box-shadow: 10px 0 10px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
#demobottom {
|
||||
width: 500px;
|
||||
display: flex;
|
||||
}
|
||||
#bottom.reverse {
|
||||
padding-left: 0;
|
||||
padding-right: 40px;
|
||||
@@ -41,20 +45,20 @@
|
||||
#bottom .trendtag {
|
||||
height: 40px;
|
||||
}
|
||||
#bottom #group {
|
||||
#bottom #group, #demogroup {
|
||||
margin-right: 40px;
|
||||
}
|
||||
#bottom .leftside {
|
||||
display: flex;
|
||||
}
|
||||
#tips{
|
||||
#tips {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
#bottom #tips img {
|
||||
vertical-align: -3px;
|
||||
}
|
||||
#bottom a {
|
||||
#bottom a, #demogroup a {
|
||||
color: var(--color);
|
||||
}
|
||||
#bottom i {
|
||||
@@ -66,7 +70,7 @@
|
||||
.exc-chb {
|
||||
padding-left: 24px !important;
|
||||
}
|
||||
#bottom .btnsgroup {
|
||||
.btnsgroup {
|
||||
border: 1px solid;
|
||||
padding-top: 1px;
|
||||
padding-left: 5px;
|
||||
@@ -280,7 +284,7 @@ iframe,
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.acct-note p{
|
||||
.acct-note p {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
@@ -290,7 +294,7 @@ iframe,
|
||||
}
|
||||
.area-toot.acct-note p:first-child:after {
|
||||
content: "...";
|
||||
color: var(--gray)
|
||||
color: var(--gray);
|
||||
}
|
||||
|
||||
.area-actions {
|
||||
@@ -316,11 +320,13 @@ iframe,
|
||||
margin: 2px;
|
||||
grid-area: side;
|
||||
}
|
||||
|
||||
.quote-inline {
|
||||
display: none;
|
||||
}
|
||||
.quote-renote {
|
||||
display: grid;
|
||||
grid-template-columns: 43px 2fr 1fr;
|
||||
grid-template-areas: "ricon ruser" "ricon rtext";
|
||||
grid-template-columns: 43px 2fr 25px;
|
||||
grid-template-areas: "ricon ruser rdet" "ricon rtext rdet";
|
||||
border: 1px solid;
|
||||
margin-top: 3px;
|
||||
padding: 1px;
|
||||
@@ -328,9 +334,13 @@ iframe,
|
||||
}
|
||||
.renote-icon {
|
||||
grid-area: ricon;
|
||||
padding: 5px;
|
||||
}
|
||||
.renote-details {
|
||||
grid-area: rdet;
|
||||
}
|
||||
.renote-icon img {
|
||||
width: 43px;
|
||||
width: 100%;
|
||||
}
|
||||
.renote-user {
|
||||
grid-area: ruser;
|
||||
@@ -436,7 +446,7 @@ p:not(:last-child) {
|
||||
z-index: 500;
|
||||
padding: 5px;
|
||||
display: grid;
|
||||
grid-template-columns: 40px 48px 1fr 24px;
|
||||
grid-template-columns: 40px 1fr 1fr 24px;
|
||||
grid-template-rows: 30px 30px;
|
||||
grid-template-areas: "notice notice_name notice_name a2" "notice a1 sta a3" "notf-box notf-box notf-box notf-box";
|
||||
}
|
||||
@@ -461,7 +471,6 @@ p:not(:last-child) {
|
||||
}
|
||||
|
||||
.area-a1 {
|
||||
text-align: center;
|
||||
grid-area: a1;
|
||||
}
|
||||
.area-sta {
|
||||
@@ -643,6 +652,7 @@ audio {
|
||||
.vis-data {
|
||||
font-size: 1rem !important;
|
||||
margin: 5px;
|
||||
user-select: none;
|
||||
}
|
||||
@keyframes jump {
|
||||
0% {
|
||||
@@ -688,11 +698,29 @@ audio {
|
||||
}
|
||||
}
|
||||
.box-anime {
|
||||
animation-duration: 1s;
|
||||
animation-name: fadeInLeft;
|
||||
/*animation-duration: 1s;
|
||||
animation-name: fadeInLeft;*/
|
||||
}
|
||||
|
||||
.cvo-anime {
|
||||
animation-duration: 0.1s;
|
||||
animation-name: fadeInDown;
|
||||
}
|
||||
.urbadge {
|
||||
line-height: normal;
|
||||
height: 2rem;
|
||||
font-size: 1rem;
|
||||
background-color: #009688;
|
||||
}
|
||||
.box .ui-resizable-s{
|
||||
display: none !important;
|
||||
}
|
||||
.boxIn .ui-resizable-e{
|
||||
display: none !important;
|
||||
}
|
||||
.boxIn .ui-resizable-s{
|
||||
display: block !important;
|
||||
}
|
||||
.box .ui-resizable-se{
|
||||
display: none !important;
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
//バージョンチェッカー
|
||||
function verck(ver) {
|
||||
localStorage.setItem("ver", ver);
|
||||
console.log("%c Welcome😊", "color: red;font-size:200%;")
|
||||
var date = new Date();
|
||||
var show = false
|
||||
@@ -15,11 +16,12 @@ function verck(ver) {
|
||||
}
|
||||
}
|
||||
//ちょっと削除とリンク解析の都合上アレ(e)
|
||||
localStorage.setItem("ver", ver);
|
||||
show = true
|
||||
console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
|
||||
$(document).ready(function () {
|
||||
if (localStorage.getItem("winstore")) {
|
||||
$('#releasenote').modal('open');
|
||||
}
|
||||
verp = ver.replace('(', '');
|
||||
verp = verp.replace('.', '-');
|
||||
verp = verp.replace('.', '-');
|
||||
@@ -59,7 +61,7 @@ function verck(ver) {
|
||||
var platform = localStorage.getItem("platform");
|
||||
console.log("Your platform:" + platform)
|
||||
if (!localStorage.getItem("winstore")) {
|
||||
storeDialog(platform, ver)
|
||||
$("#start").css('display', 'flex');
|
||||
}
|
||||
if (localStorage.getItem("winstore") == "brewcask" || localStorage.getItem("winstore") == "snapcraft" || localStorage.getItem("winstore") == "winstore") {
|
||||
var winstore = true;
|
||||
@@ -310,3 +312,9 @@ function storeDialog(platform, ver) {
|
||||
});
|
||||
})
|
||||
}
|
||||
function closeStart() {
|
||||
$("#start").css('display', 'none');
|
||||
var platform = localStorage.getItem("platform");
|
||||
var ver = localStorage.getItem("ver");
|
||||
storeDialog(platform, ver)
|
||||
}
|
@@ -121,6 +121,7 @@ var lang={
|
||||
"lang_layout_nodata": "[No data]<br>F5/⌘+R to reload",
|
||||
"lang_layout_dm": "Direct Message",
|
||||
"lang_layout_webviewmode": "Prefer WebView",
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_excluded": "Excluded type of notification",
|
||||
"lang_layout_excludingbt": "Показване в BT режим (ИЗКЛ./Изключване BT/ Само в BT)",
|
||||
"lang_layout_leftFold": "Стъпка наляво",
|
||||
|
@@ -127,6 +127,7 @@ var lang={
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
"lang_layout_deleteColumnDesc": "Delete this column",
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
|
@@ -127,6 +127,7 @@ var lang={
|
||||
"lang_layout_leftUnfold": "Rechts Anheften",
|
||||
"lang_layout_deleteColumn": "Diese Spalte löschen",
|
||||
"lang_layout_deleteColumnDesc": "Diese Spalte löschen",
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_sort_gothis": "Gehe zu dieser Spalte",
|
||||
"lang_sort_remthis": "Diese Spalte löschen",
|
||||
"lang_spotify_img": "Albumcover anhängen",
|
||||
|
@@ -153,6 +153,7 @@ var lang = {
|
||||
"lang_layout_leftUnfold": "Dock on the right",
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
"lang_layout_deleteColumnDesc": "Delete this column",
|
||||
"lang_layout_unread": "Unread",
|
||||
//ui/sort.js
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
|
@@ -153,6 +153,7 @@ var lang = {
|
||||
"lang_layout_leftUnfold": "右へ出す",
|
||||
"lang_layout_deleteColumn": "カラム削除",
|
||||
"lang_layout_deleteColumnDesc": "カラムを削除しますか?",
|
||||
"lang_layout_unread": "未読",
|
||||
//ui/sort.js
|
||||
"lang_sort_gothis": "このカラムへ",
|
||||
"lang_sort_remthis": "このカラムを削除",
|
||||
|
@@ -9,16 +9,11 @@ var idata = {
|
||||
"kirishima.cloud_public": "パブリックタイムライン",
|
||||
"minohdon.jp": "instance",
|
||||
"minohdon.jp_name": "箕面どん",
|
||||
"minohdon.jp_letters": "500",
|
||||
"minohdon.jp_bbcode": "disabled",
|
||||
"minohdon.jp_markdown": "disabled",
|
||||
"minohdon.jp_glitch": "disabled",
|
||||
"fedibird.com":"instance",
|
||||
"fedibird.com_name":"Fedibird",
|
||||
"fedibird.com_quote":"enabled",
|
||||
"mastodos.com": "instance",
|
||||
"mastodos.com_name": "マストどす",
|
||||
"mastodos.com_letters": "500",
|
||||
"mastodos.com_bbcode": "disabled",
|
||||
"mastodos.com_markdown": "disabled",
|
||||
"mastodos.com_glitch": "disabled",
|
||||
"dev.kirishima.cloud": "hidden",
|
||||
"dev.kirishima.cloud_name": "アスタルテ(Dev)",
|
||||
"dev.kirishima.cloud_letters": "6229",
|
||||
@@ -27,15 +22,8 @@ var idata = {
|
||||
"dev.kirishima.cloud_glitch": "enabled",
|
||||
"mstdn.y-zu.org": "instance",
|
||||
"mstdn.y-zu.org_name": "Yづドン(Y-zuDon)",
|
||||
"mstdn.y-zu.org_letters": "500",
|
||||
"mstdn.y-zu.org_bbcode": "disabled",
|
||||
"mstdn.y-zu.org_markdown": "enabled",
|
||||
"mstdn.y-zu.org_glitch": "disabled",
|
||||
"imastodon.net": "instance",
|
||||
"imastodon.net_name": "im@stodon",
|
||||
"imastodon.net_letters": "500",
|
||||
"imastodon.net_bbcode": "disabled",
|
||||
"imastodon.net_markdown": "disabled",
|
||||
"imastodon.net_home": "オフィス",
|
||||
"imastodon.net_local": "楽屋",
|
||||
"imastodon.net_notification": "ホワイトボード",
|
||||
@@ -44,12 +32,6 @@ var idata = {
|
||||
"imastodon.net_fav": "の頭にティンときたようです",
|
||||
"imastodon.net_bt": ":「わかるわ」",
|
||||
"imastodon.net_follow": "名刺をいただきました",
|
||||
"imastodon.net_glitch": "disabled",
|
||||
"mstdn.osaka": "instance",
|
||||
"mstdn.osaka_name": "大阪丼",
|
||||
"mstdn.osaka_letters": "500",
|
||||
"mstdn.osaka_bbcode": "disabled",
|
||||
"mstdn.osaka_markdown": "disabled",
|
||||
"mstdn.osaka_home": "ウチ",
|
||||
"mstdn.osaka_local": "近所",
|
||||
"mstdn.osaka_notification": "あめちゃん",
|
||||
@@ -58,12 +40,9 @@ var idata = {
|
||||
"mstdn.osaka_fav": "がええやん言いました",
|
||||
"mstdn.osaka_bt": "がしばいた",
|
||||
"mstdn.osaka_follow": "ツルまれました",
|
||||
"mstdn.osaka_glitch": "disabled",
|
||||
"mstdn.kemono-friends.info": "instance",
|
||||
"mstdn.kemono-friends.info_name": "ますとどんちほー",
|
||||
"mstdn.kemono-friends.info_letters": "1024",
|
||||
"mstdn.kemono-friends.info_bbcode": "disabled",
|
||||
"mstdn.kemono-friends.info_markdown": "disabled",
|
||||
"mstdn.kemono-friends.info_home": "なわばり",
|
||||
"mstdn.kemono-friends.info_local": "ますとどんちほー",
|
||||
"mstdn.kemono-friends.info_notification": "ねえねえ!",
|
||||
@@ -71,19 +50,13 @@ var idata = {
|
||||
"mstdn.kemono-friends.info_post": "がおー!",
|
||||
"mstdn.kemono-friends.info_fav": ":「すごーい」",
|
||||
"mstdn.kemono-friends.info_bt": ":「たーのしー」",
|
||||
"mstdn.kemono-friends.info_glitch": "disabled",
|
||||
"itabashi.0j0.jp": "instance",
|
||||
"itabashi.0j0.jp_name": "板橋丼",
|
||||
"itabashi.0j0.jp_letters": "1024",
|
||||
"itabashi.0j0.jp_bbcode": "disabled",
|
||||
"itabashi.0j0.jp_markdown": "disabled",
|
||||
"itabashi.0j0.jp_glitch": "disabled",
|
||||
"itabashi.0j0.jp_quote":"enabled",
|
||||
"dtp-mstdn.jp": "instance",
|
||||
"dtp-mstdn.jp_name": "DTP鯖",
|
||||
"dtp-mstdn.jp_letters": "500",
|
||||
"dtp-mstdn.jp_bbcode": "disabled",
|
||||
"dtp-mstdn.jp_markdown": "disabled",
|
||||
"dtp-mstdn.jp_glitch": "disabled",
|
||||
"dtp-mstdn.jp_name": "dtp-mstdn.jp",
|
||||
"dtp-mstdn.jp_quote":"enabled",
|
||||
"misskey.io": "misskey",
|
||||
"misskey.io_name": "misskey.io",
|
||||
"misskey.io_letters": "1000",
|
||||
@@ -93,7 +66,7 @@ var idata = {
|
||||
"misskey.io_post": "Post",
|
||||
"misskey.io_fav": " reacted your post.",
|
||||
"misskey.io_bt": " reposted your post.",
|
||||
"misskey.dev": "misskey.dev",
|
||||
"misskey.dev": "misskey",
|
||||
"misskey.dev_name": "misskey.dev",
|
||||
"misskey.dev_letters": "1024",
|
||||
"misskey.dev_bbcode": "disabled",
|
||||
@@ -105,10 +78,11 @@ var idata = {
|
||||
"precure.ml": "instance",
|
||||
"precure.ml_name": "キュアスタ!",
|
||||
"precure.ml_letters": "1024",
|
||||
"precure.ml_bbcode": "disabled",
|
||||
"precure.ml_markdown": "disabled",
|
||||
"precure.ml_post": "キュア!",
|
||||
"precure.ml_glitch": "disabled"
|
||||
"odakyu.app_quote":"enabled",
|
||||
"nitiasa.com_quote":"enabled",
|
||||
"biwakodon.com_quote":"enabled",
|
||||
"comm.cx_quote":"enabled"
|
||||
};
|
||||
|
||||
localStorage.setItem("instance", JSON.stringify(idata));
|
||||
|
@@ -3,6 +3,7 @@
|
||||
//アスタルテ判定初期化
|
||||
|
||||
localStorage.removeItem("kirishima")
|
||||
localStorage.removeItem("quoters")
|
||||
localStorage.removeItem("imas")
|
||||
localStorage.removeItem("image");
|
||||
localStorage.removeItem("stable")
|
||||
@@ -314,7 +315,6 @@ function ckdb(acct_id) {
|
||||
localStorage.removeItem("followlocale_" + acct_id);
|
||||
if (domain == "kirishima.cloud") {
|
||||
localStorage.setItem("kirishima", "true");
|
||||
$("#ranking-btn").show();
|
||||
} else if (domain == "imastodon.net") {
|
||||
localStorage.setItem("imas", "true");
|
||||
$(".imasonly").show();
|
||||
@@ -322,8 +322,13 @@ function ckdb(acct_id) {
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var bbcode = domain + "_bbcode";
|
||||
var letters = domain + "_letters";
|
||||
var quoteMarker = domain + "_quote";
|
||||
if (localStorage.getItem("instance")) {
|
||||
var json = JSON.parse(localStorage.getItem("instance"));
|
||||
if (json[quoteMarker] == "enabled") {
|
||||
localStorage.setItem("quoters", "true");
|
||||
localStorage.setItem("quote_" + acct_id, "true");
|
||||
}
|
||||
if (json[bbcode]) {
|
||||
if (json[bbcode] == "enabled") {
|
||||
localStorage.setItem("bb_" + acct_id, "true");
|
||||
@@ -515,13 +520,11 @@ function ticker() {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
}).then(function (response) {
|
||||
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (json.error) {
|
||||
return;
|
||||
}
|
||||
if (json) {
|
||||
localStorage.setItem("ticker", JSON.stringify(json));
|
||||
}
|
||||
|
@@ -286,10 +286,6 @@ function support() {
|
||||
templete = '<a onclick="login(\'' + key +
|
||||
'\')" class="collection-item pointer transparent">' + idata[key + "_name"] + '(' + key + ')</a>';
|
||||
$("#support").append(templete);
|
||||
} else if (instance == "misskey") {
|
||||
templete = '<a onclick="misskeyLogin(\'' + key +
|
||||
'\')" class="collection-item pointer transparent">' + idata[key + "_name"] + '(' + key + ')</a>';
|
||||
$("#support").append(templete);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@@ -108,12 +108,16 @@ function opendev() {
|
||||
});
|
||||
*/
|
||||
}
|
||||
var soundFile
|
||||
function playSound() {
|
||||
window.AudioContext = window.AudioContext || window.webkitAudioContext;
|
||||
if(soundFile){
|
||||
soundFile.stop()
|
||||
}
|
||||
context = new AudioContext();
|
||||
context.createBufferSource().start(0);
|
||||
context.decodeAudioData(request.response, function (buf) {
|
||||
console.log("Playing:" + source)
|
||||
//console.log("Playing:" , source)
|
||||
source.buffer = buf;
|
||||
source.loop = false;
|
||||
});
|
||||
@@ -121,8 +125,20 @@ function playSound() {
|
||||
volumeControl = context.createGain();
|
||||
source.connect(volumeControl);
|
||||
volumeControl.connect(context.destination);
|
||||
volumeControl.gain.value = 0.8
|
||||
var cvol = localStorage.getItem("customVol")
|
||||
if (cvol) {
|
||||
vol = cvol
|
||||
}else{
|
||||
vol = 0.8
|
||||
}
|
||||
volumeControl.gain.value = vol
|
||||
source.start(0);
|
||||
soundFile = source;
|
||||
|
||||
function newFunction() {
|
||||
var source;
|
||||
return source;
|
||||
}
|
||||
}
|
||||
function nano() {
|
||||
postMessage(["nano", null], "*")
|
||||
|
@@ -79,6 +79,10 @@ function post(mode, postvis) {
|
||||
if (media) {
|
||||
toot.media_ids = media.split(",");
|
||||
}
|
||||
var quote = $("#quote").val();
|
||||
if (quote) {
|
||||
toot.quote_id = quote;
|
||||
}
|
||||
if ($("#nsfw").hasClass("nsfw-avail")) {
|
||||
var nsfw = "true";
|
||||
toot.sensitive = nsfw;
|
||||
@@ -243,6 +247,7 @@ function clear() {
|
||||
}
|
||||
$("#textarea").attr("placeholder", lang.lang_toot);
|
||||
$("#reply").val("");
|
||||
$("#quote").val("");
|
||||
$("#media").val("");
|
||||
var cwt = localStorage.getItem("cw-text");
|
||||
if (cwt) {
|
||||
|
@@ -295,6 +295,7 @@ function redraft(id, acct_id) {
|
||||
show();
|
||||
del(id, acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').formSelect();
|
||||
var medias = $("[toot-id=" + id + "]").attr("data-medias");
|
||||
var vismode = $("[toot-id=" + id + "] .vis-data").attr("data-vis");
|
||||
vis(vismode);
|
||||
@@ -473,7 +474,7 @@ function staEx(mode) {
|
||||
var acct_id = $("#status-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/search?resolve=true&q=" + url
|
||||
var start = "https://" + domain + "/api/v2/search?resolve=true&q=" + url
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
|
@@ -57,6 +57,21 @@ function qt(id, acct_id, at, url) {
|
||||
html = html.replace(/<\/p>/, "\n");
|
||||
html = $.strip_tags(html);
|
||||
$("#textarea").val("\n" + "@" + at + " " + html + "\n" + url);
|
||||
} else if (qt == "apiQuote") {
|
||||
clear();
|
||||
localStorage.setItem("nohide", true);
|
||||
show();
|
||||
$("#quote").val(id);
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').formSelect();
|
||||
$("#textarea").attr("placeholder", lang.lang_usetxtbox_reply);
|
||||
$("#textarea").focus();
|
||||
var profimg = localStorage.getItem("prof_" + acct_id);
|
||||
if (!profimg) {
|
||||
profimg = "../../img/missing.svg";
|
||||
}
|
||||
$("#acct-sel-prof").attr("src", profimg);
|
||||
}
|
||||
$("#post-acct-sel").val(acct_id);
|
||||
$('select').formSelect();
|
||||
|
@@ -6,17 +6,21 @@ function additional(acct_id, tlid) {
|
||||
|
||||
$("#timeline-container .mention").addClass("parsed");
|
||||
|
||||
$("#timeline-container .hashtag").each(function (i, elem) {
|
||||
$("#timeline-container .hashtag, #timeline-container [rel=tag]").each(function (i, elem) {
|
||||
var tags = $(this).attr("href").match(
|
||||
/https?:\/\/([-a-zA-Z0-9@.]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/
|
||||
);
|
||||
$(this).attr("href", "#");
|
||||
if (tags) {
|
||||
if (tags[2]) {
|
||||
$(this).attr("onclick", 'tagShow(\'' + tags[2] + '\')');
|
||||
if(tags){
|
||||
var tagThis = tags[2]
|
||||
}else{
|
||||
var tagThis = $(this).attr("data-tag")
|
||||
}
|
||||
|
||||
if(tagThis){
|
||||
$(this).attr("onclick", 'tagShow(\'' + tagThis + '\')');
|
||||
$(this).attr("href", "#");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//トゥートサムネ
|
||||
|
@@ -66,7 +66,7 @@ function notfColumn(acct_id, tlid, sys) {
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
var nativeNotfOpt=['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
|
||||
var nativeNotfOpt = ['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
|
||||
@@ -98,6 +98,16 @@ function notfColumn(acct_id, tlid, sys) {
|
||||
}
|
||||
$("#notf-box").addClass("fetched");
|
||||
todc();
|
||||
//Markers
|
||||
var markers = localStorage.getItem("markers");
|
||||
if (markers == "no") {
|
||||
markers = false;
|
||||
} else {
|
||||
markers = true
|
||||
}
|
||||
if (markers) {
|
||||
getMarker(tlid, "notf", acct_id)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!misskey) {
|
||||
@@ -171,7 +181,7 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
if (os == "darwin") {
|
||||
var n = new Notification('TheDesk:' + domain, options);
|
||||
} else {
|
||||
var nativeNotfOpt=['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
|
||||
var nativeNotfOpt = ['TheDesk:' + domain, ct + lang.lang_notf_new, localStorage.getItem("prof_" + acct_id)]
|
||||
postMessage(["nativeNotf", nativeNotfOpt], "*")
|
||||
}
|
||||
|
||||
@@ -234,6 +244,8 @@ function notfWS(misskey, acct_id, tlid, domain, at) {
|
||||
if (type == "notification") {
|
||||
var templete = "";
|
||||
localStorage.setItem("lastnotf_" + acct_id, obj.id);
|
||||
if (!$("#unread_" + tlid + " .material-icons").hasClass("teal-text")) {
|
||||
//markers show中はダメ
|
||||
if (obj.type != "follow") {
|
||||
templete = parse([obj], 'notf', acct_id, 'notf', popup);
|
||||
} else {
|
||||
@@ -244,6 +256,7 @@ function notfWS(misskey, acct_id, tlid, domain, at) {
|
||||
$("div[data-const=notf_" + acct_id + "]").prepend(templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
}
|
||||
} else if (type == "delete") {
|
||||
$("[toot-id=" + obj + "]").hide();
|
||||
$("[toot-id=" + obj + "]").remove();
|
||||
|
@@ -25,7 +25,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
if (qt == "nothing" || !qt) {
|
||||
var qtClass = "hide";
|
||||
} else {
|
||||
if (qt == "apiQuote") {
|
||||
if (localStorage.getItem("quote_" + acct_id)) {
|
||||
var qtClass = "";
|
||||
} else {
|
||||
var qtClass = "hide";
|
||||
}
|
||||
} else {
|
||||
var qtClass = "";
|
||||
}
|
||||
}
|
||||
var datetype = localStorage.getItem("datetype");
|
||||
var nsfwtype = localStorage.getItem("nsfw");
|
||||
@@ -183,6 +191,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var times = [];
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var toot = obj[key];
|
||||
|
||||
if (type == "dm") {
|
||||
var dmid = toot.id;
|
||||
toot = toot.last_status;
|
||||
@@ -331,7 +340,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
localStorage.setItem("notice-mem", noticetext);
|
||||
noticetext = "";
|
||||
}
|
||||
var if_notf = 'data-notfIndv="' + acct_id + "_" + toot.id + '"';
|
||||
var if_notf = 'data-notfIndv="' + acct_id + "_" + toot.id + '" data-notf="' + toot.id + '"';
|
||||
var toot = toot.status;
|
||||
var dis_name = escapeHTML(toot.account.display_name);
|
||||
if (toot.account.emojis) {
|
||||
@@ -417,6 +426,12 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (toot.content == "") {
|
||||
var content = " "
|
||||
} else {
|
||||
var content = toot.content
|
||||
}
|
||||
if (content) {
|
||||
var id = toot.id;
|
||||
if (mix == "home") {
|
||||
var home = ""
|
||||
@@ -458,26 +473,29 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
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 cw_btn">' + lang.lang_parse_cwshow + '</a><br>';
|
||||
} else {
|
||||
var ct1 = toot.content.split('</p>').length + toot.content.split('<br />').length - 2;
|
||||
var ct2 = toot.content.split('</p>').length + toot.content.split('<br>').length - 2;
|
||||
if (content) {
|
||||
var ct1 = content.split('</p>').length + content.split('<br />').length - 2;
|
||||
var ct2 = content.split('</p>').length + content.split('<br>').length - 2;
|
||||
} else {
|
||||
var ct1 = 100;
|
||||
var ct2 = 100;
|
||||
}
|
||||
if (ct1 > ct2) { var ct = ct1; } else { var ct = ct2; }
|
||||
if ((sent < ct && $.mb_strlen($.strip_tags(toot.content)) > 5) || ($.strip_tags(toot.content).length > ltr && $.mb_strlen($.strip_tags(toot.content)) > 5)) {
|
||||
var content = '<span class="gray">' + lang.lang_parse_fulltext + '</span><br>' + toot.content
|
||||
if ((sent < ct && $.mb_strlen($.strip_tags(content)) > 5) || ($.strip_tags(content).length > ltr && $.mb_strlen($.strip_tags(content)) > 5)) {
|
||||
var content = '<span class="gray">' + lang.lang_parse_fulltext + '</span><br>' + content
|
||||
var spoil = '<span class="cw-long-' + toot.id + '">' + $.mb_substr($.strip_tags(
|
||||
toot.content), 0, 100) +
|
||||
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 cw_btn">' + lang.lang_parse_more + '</a><br>';
|
||||
} else {
|
||||
var content = toot.content;
|
||||
var spoil = escapeHTML(toot.spoiler_text);
|
||||
var spoiler = "";
|
||||
var spoiler_show = "";
|
||||
@@ -578,7 +596,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
' toot-img pointer" style="max-width:100%;" loop="true"></a></span>';
|
||||
} else {
|
||||
if (media.type == "unknown") {
|
||||
viewer = viewer + '<a href="' + media.remote_url + '" title="' + media.remote_url + '">[' + lang.lang_parse_unknown + ']</a> '
|
||||
var mty = media.remote_url.match(/.+(\..+)$/)[1]
|
||||
viewer = viewer + '<a href="' + media.remote_url + '" title="' + media.remote_url + '">[' + lang.lang_parse_unknown + '( ' + mty + ' )]</a> '
|
||||
} else if (media.type == "audio") {
|
||||
viewer = viewer + '<audio src="' +
|
||||
url + '" class="pointer" style="width:100%;" controls></span>';
|
||||
@@ -605,8 +624,6 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var to_mention = [];
|
||||
Object.keys(toot.mentions).forEach(function (key3) {
|
||||
var mention = toot.mentions[key3];
|
||||
mentions = mentions + '<a onclick="udg(\'' + mention.id + '\',' +
|
||||
acct_id + ')" class="pointer">@' + mention.acct + '</a> ';
|
||||
//自分は除外
|
||||
//自インスタンスかどうかを確認し、IDの一致
|
||||
if (mention.acct == mention.username && mention.id == localStorage.getItem("user-id_" + acct_id)) {
|
||||
@@ -614,6 +631,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
} else {
|
||||
//そのトゥの人NG
|
||||
if (toot.account.acct != mention.acct) {
|
||||
mentions = mentions + '<a onclick="udg(\'' + mention.id + '\',' +
|
||||
acct_id + ')" class="pointer">@' + mention.acct + '</a> ';
|
||||
to_mention.push(mention.acct);
|
||||
}
|
||||
}
|
||||
@@ -635,9 +654,10 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
if (tagck) {
|
||||
Object.keys(toot.tags).forEach(function (key4) {
|
||||
var tag = toot.tags[key4];
|
||||
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 + '">#' + 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> ';
|
||||
'<a onclick="tagPin(\'' + tag.name + '\')" class="pointer" title="' + lang.lang_parse_tagpin.replace("{{tag}}", '#' + tag.name) + '">Pin</a>' + featured + '</span> ';
|
||||
});
|
||||
tags = '<div style="float:right">' + tags + '</div>';
|
||||
}
|
||||
@@ -826,7 +846,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
for (var i = 0; i < tickerdata.length; i++) {
|
||||
var value = tickerdata[i];
|
||||
if (value.domain == thisdomain) {
|
||||
var tickerdom = '<div style="background:linear-gradient(90deg, ' + value.bg + ', transparent 96%) !important; color:' + value.text + ';width:100%; height:0.9rem; font-size:0.8rem;"><img draggable="false" src="' + value.image + '" style="height:100%;" onerror="this.src=\'../../img/loading.svg\'"><span style="position:relative; top:-0.2rem;"> ' + escapeHTML(value.name) + '</span></div>';
|
||||
var tickerdom = '<div style="user-select:none;cursor:default;background:linear-gradient(90deg, ' + value.bg + ', transparent 96%) !important; color:' + value.text + ';width:100%; height:0.9rem; font-size:0.8rem;"><img draggable="false" src="' + value.image + '" style="height:100%;" onerror="this.src=\'../../img/loading.svg\'"><span style="position:relative; top:-0.2rem;"> ' + escapeHTML(value.name) + '</span></div>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -834,7 +854,14 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
}
|
||||
//Quote
|
||||
if (toot.quote) {
|
||||
poll = poll + '<div class="quote-renote"><div class="renote-icon"><img src="' + toot.quote.account.avatar + '"></div><div class="renote-user">' + escapeHTML(toot.quote.account.display_name) + '</div><div class="renote-text">' + toot.quote.content + '</div></div>'
|
||||
var quoteUser = toot.quote.account.display_name
|
||||
if (!quoteUser) {
|
||||
quoteUser = toot.quote.account.acct
|
||||
}
|
||||
poll = poll + '<div class="quote-renote"><div class="renote-icon"><a onclick="udg(\'' + toot.quote.account.id +
|
||||
'\',' + acct_id + ');" user="' + toot.quote.account.acct + '" class="udg"><img draggable="false" src="' + toot.quote.account.avatar + '"></a>' +
|
||||
'</div><div class="renote-user">' + escapeHTML(quoteUser) + '</div><div class="renote-text">' + toot.quote.content + '</div><div class="renote-details"><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></div></div>'
|
||||
}
|
||||
templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' +
|
||||
boostback + ' ' + fav_app + ' ' + rt_app + ' ' + pin_app +
|
||||
@@ -902,6 +929,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
',\'' + tlid + '\',\'normal\')" class="waves-effect waves-dark btn-flat details ' + dmHide + '" style="padding:0"><i class="text-darken-3 material-icons">more_vert</i></a></div>' +
|
||||
'</div></div>' +
|
||||
'</div></div>';
|
||||
}
|
||||
});
|
||||
if (mix == "mix") {
|
||||
return [templete, local, times]
|
||||
|
@@ -127,6 +127,8 @@ function voteMastodonrefresh(acct_id, id) {
|
||||
var choice = choices[keyc];
|
||||
if (!json.voted) {
|
||||
votesel = 'voteSelMastodon(\'' + acct_id + '\',\'' + json.id + '\',' + keyc + ',' + json.multiple + ')';
|
||||
}else {
|
||||
votesel =""
|
||||
}
|
||||
poll = poll + '<div class="pointer vote vote_' + acct_id + '_' + json.id + '_' + keyc + '" onclick="' + votesel + '">' + escapeHTML(choice.title) + '<span class="vote_' + acct_id + '_' + json.id + '_result ' + result_hide + '">(' + choice.votes_count + ')</span></div>';
|
||||
});
|
||||
|
@@ -98,11 +98,14 @@ function voiceSettingLoad() {
|
||||
var vol = localStorage.getItem("voice_vol");
|
||||
if (speed) {
|
||||
$("#voicespeed").val(speed * 10);
|
||||
$("#voicespeedVal").text(speed * 10);
|
||||
}
|
||||
if (pitch) {
|
||||
$("#voicepitch").val(pitch * 50);
|
||||
$("#voicepitchVal").text(pitch * 50);
|
||||
}
|
||||
if (vol) {
|
||||
$("#voicevol").val(vol * 100);
|
||||
$("#voicevolVal").text(vol * 100);
|
||||
}
|
||||
}
|
@@ -128,3 +128,26 @@ function autoToot(tag) {
|
||||
}
|
||||
favTag();
|
||||
}
|
||||
//タグをフィーチャー
|
||||
function tagFeature(name, acct_id){
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/featured_tags"
|
||||
fetch(start, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: name
|
||||
})
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
return false;
|
||||
}).then(function (json) {
|
||||
console.log(json)
|
||||
M.toast({ html: "Complete: " + escapeHTML(name), displayLength: 3000 })
|
||||
});
|
||||
}
|
219
app/js/tl/tl.js
219
app/js/tl/tl.js
@@ -2,6 +2,7 @@
|
||||
moreloading = false;
|
||||
function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
scrollevent();
|
||||
$("#unread_" + tlid + " .material-icons").removeClass("teal-text")
|
||||
localStorage.removeItem("morelock");
|
||||
localStorage.removeItem("pool");
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
@@ -149,6 +150,18 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
jQuery("time.timeago").timeago();
|
||||
todc();
|
||||
reload(type, '', acct_id, tlid, data, mute, delc, voice);
|
||||
if (type == "home" || type == "notf") {
|
||||
//Markers
|
||||
var markers = localStorage.getItem("markers");
|
||||
if (markers == "no") {
|
||||
markers = false;
|
||||
} else {
|
||||
markers = true
|
||||
}
|
||||
if (markers) {
|
||||
getMarker(tlid, type, acct_id)
|
||||
}
|
||||
}
|
||||
$(window).scrollTop(0);
|
||||
});
|
||||
}
|
||||
@@ -217,7 +230,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
websocket[wsid] = new WebSocket(start);
|
||||
websocket[wsid].onopen = function (mess) {
|
||||
console.table({ "tlid": tlid, "type": "Connect Streaming API" + type, "domain": domain, "message": [mess] })
|
||||
$("#notice_icon_" + tlid).removeClass("red-text");
|
||||
$("#notice_icon_" + tlid).removeClass("red-text")
|
||||
}
|
||||
websocket[wsid].onmessage = function (mess) {
|
||||
console.log([tlid + ":Receive Streaming API:", JSON.parse(mess.data)]);
|
||||
@@ -256,12 +269,14 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
$("#timeline_" + tlid + " [toot-id=" + JSON.parse(mess.data).payload + "]").addClass("emphasized");
|
||||
$("#timeline_" + tlid + " [toot-id=" + JSON.parse(mess.data).payload + "]").addClass("by_delcatch");
|
||||
} else {
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").hide();
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").remove();
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").hide()
|
||||
$("[toot-id=" + JSON.parse(mess.data).payload + "]").remove()
|
||||
}
|
||||
|
||||
} else if (typeA == "update" || typeA == "conversation") {
|
||||
localStorage.removeItem("delete");
|
||||
localStorage.removeItem("delete")
|
||||
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) {
|
||||
@@ -287,6 +302,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
}
|
||||
|
||||
todc();
|
||||
}
|
||||
} else if (typeA == "filters_changed") {
|
||||
filterUpdate(acct_id);
|
||||
}
|
||||
@@ -298,7 +314,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
console.error("Error closing");
|
||||
console.error(error);
|
||||
if (mode == "error") {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
$("#notice_icon_" + tlid).addClass("red-text")
|
||||
todo('WebSocket Error ' + error);
|
||||
} else {
|
||||
var errorct = localStorage.getItem("wserror_" + tlid) * 1 + 1;
|
||||
@@ -312,7 +328,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
websocket[wsid].onclose = function () {
|
||||
console.warn("Closing " + tlid);
|
||||
if (mode == "error") {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
$("#notice_icon_" + tlid).addClass("red-text")
|
||||
todo('WebSocket Closed');
|
||||
} else {
|
||||
var errorct = localStorage.getItem("wserror_" + tlid) * 1 + 1;
|
||||
@@ -824,8 +840,9 @@ function reconnector(tlid, type, acct_id, data, mode) {
|
||||
M.toast({ html: lang.lang_tl_reconnect, displayLength: 2000 })
|
||||
|
||||
}
|
||||
function columnReload(tlid, type){
|
||||
function columnReload(tlid, type) {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
$("#unread_" + tlid + " .material-icons").removeClass("teal-text")
|
||||
if (type == "mix" || type == "integrated" || type == "plus") {
|
||||
if (localStorage.getItem("voice_" + tlid)) {
|
||||
var voice = true;
|
||||
@@ -843,6 +860,7 @@ function columnReload(tlid, type){
|
||||
websocketLocal[wssl].close();
|
||||
parseColumn(tlid)
|
||||
} else if (type == "notf") {
|
||||
$("#notice_icon_" + tlid).removeClass("red-text");
|
||||
notfColumn(acct_id, tlid, "")
|
||||
} else {
|
||||
var wss = localStorage.getItem("wss_" + tlid);
|
||||
@@ -861,3 +879,190 @@ function columnReload(tlid, type){
|
||||
}
|
||||
}
|
||||
strAliveInt()
|
||||
//Markers
|
||||
function getMarker(tlid, type, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
if (type == "home") {
|
||||
var add = "home"
|
||||
} else if (type == "notf") {
|
||||
var add = "notifications"
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/markers?timeline=" + add
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
$("#unread_" + tlid).attr("title", lang.lang_layout_unread + ":" + lang.lang_nothing)
|
||||
$("#unread_" + tlid).attr("data-id", "")
|
||||
return false;
|
||||
}).then(function (json) {
|
||||
if (json) {
|
||||
if (json[add]) {
|
||||
json = json[add]
|
||||
$("#unread_" + tlid).attr("title", lang.lang_layout_unread + ":" + json.updated_at + ' v' + json.version)
|
||||
$("#unread_" + tlid).attr("data-id", json.last_read_id)
|
||||
} else {
|
||||
$("#unread_" + tlid).attr("title", lang.lang_layout_unread + ":" + lang.lang_nothing)
|
||||
$("#unread_" + tlid).attr("data-id", "")
|
||||
}
|
||||
} else {
|
||||
$("#unread_" + tlid).attr("title", lang.lang_layout_unread + ":" + lang.lang_nothing)
|
||||
$("#unread_" + tlid).attr("data-id", "")
|
||||
}
|
||||
});
|
||||
}
|
||||
function showUnread(tlid, type, acct_id) {
|
||||
if ($("#unread_" + tlid + " .material-icons").hasClass("teal-text")) {
|
||||
goTop(tlid)
|
||||
return
|
||||
}
|
||||
$("#unread_" + tlid + " .material-icons").addClass("teal-text")
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var id = $("#unread_" + tlid).attr("data-id")
|
||||
if (type == "home") {
|
||||
var add = "timelines/home?min_id=" + id
|
||||
} else if (type == "notf") {
|
||||
var add = "notifications?min_id=" + id
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/" + add
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (!json || !json.length) {
|
||||
columnReload(tlid, type)
|
||||
}
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
var templete = parse(json, type, acct_id, tlid, "", mute, type);
|
||||
var len = json.length - 1
|
||||
$("#timeline_" + tlid).html(templete);
|
||||
if ($("#timeline_" + tlid + " .cvo:eq(" + len + ")").length) {
|
||||
var to = $("#timeline_" + tlid + " .cvo:eq(" + len + ")").offset().top
|
||||
$("#timeline_box_" + tlid + "_box .tl-box").scrollTop(to)
|
||||
}
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
todc();
|
||||
});
|
||||
}
|
||||
var ueloadlock = false
|
||||
function ueload(tlid) {
|
||||
if (ueloadlock) {
|
||||
return false
|
||||
}
|
||||
ueloadlock = true
|
||||
var multi = localStorage.getItem("column")
|
||||
var obj = JSON.parse(multi)
|
||||
var acct_id = obj[tlid * 1].domain
|
||||
var type = obj[tlid * 1].type
|
||||
var domain = localStorage.getItem("domain_" + acct_id)
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at")
|
||||
var id = $("#timeline_" + tlid + " .cvo:eq(0)").attr("unique-id")
|
||||
if (type == "home") {
|
||||
var add = "timelines/home?min_id=" + id
|
||||
} else if (type == "notf") {
|
||||
var add = "notifications?min_id=" + id
|
||||
}
|
||||
var start = "https://" + domain + "/api/v1/" + add
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function (response) {
|
||||
return response.json();
|
||||
}).catch(function (error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (!json) {
|
||||
columnReload(tlid, type)
|
||||
}
|
||||
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
|
||||
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
|
||||
} else {
|
||||
var mute = [];
|
||||
}
|
||||
var templete = parse(json, '', acct_id, tlid, "", mute, type);
|
||||
var len = json.length - 1
|
||||
$("#timeline_" + tlid).prepend(templete);
|
||||
if ($("#timeline_" + tlid + " .cvo:eq(" + len + ")").length) {
|
||||
var to = $("#timeline_" + tlid + " .cvo:eq(" + len + ")").offset().top
|
||||
$("#timeline_box_" + tlid + "_box .tl-box").scrollTop(to)
|
||||
}
|
||||
additional(acct_id, tlid);
|
||||
jQuery("time.timeago").timeago();
|
||||
todc();
|
||||
ueloadlock = false
|
||||
});
|
||||
}
|
||||
function asRead() {
|
||||
//Markers
|
||||
var markers = localStorage.getItem("markers");
|
||||
if (markers == "no") {
|
||||
markers = false;
|
||||
} else {
|
||||
markers = true
|
||||
}
|
||||
if (markers) {
|
||||
var multi = localStorage.getItem("column")
|
||||
var obj = JSON.parse(multi)
|
||||
for (var i = 0; i < obj.length; i++) {
|
||||
var acct_id = obj[i].domain
|
||||
var type = obj[i].type
|
||||
if (type == "home" || type == "notf") {
|
||||
if (type == "home") {
|
||||
var id = $("#timeline_" + i + " .cvo:eq(0)").attr("unique-id")
|
||||
var poster = {
|
||||
home: {
|
||||
last_read_id: id
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var id = $("#timeline_" + i + " .cvo:eq(0)").attr("data-notf")
|
||||
var poster = {
|
||||
notifications: {
|
||||
last_read_id: id
|
||||
}
|
||||
}
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var httpreq = new XMLHttpRequest();
|
||||
var start = "https://" + domain + "/api/v1/markers"
|
||||
httpreq.open('POST', start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
|
||||
httpreq.responseType = "json";
|
||||
httpreq.send(JSON.stringify(poster));
|
||||
httpreq.onreadystatechange = function () {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
console.log(json)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cbTimer1 = setInterval(asRead, 60000);
|
@@ -95,6 +95,7 @@ function parseColumn(target, dontclose) {
|
||||
var tlidtar = null
|
||||
if ($("#timeline-container").length) {
|
||||
$("#timeline-container").html("");
|
||||
$(".box, .boxIn").resizable("destroy");
|
||||
}
|
||||
}
|
||||
var basekey = 0;
|
||||
@@ -155,6 +156,16 @@ function parseColumn(target, dontclose) {
|
||||
} else {
|
||||
localStorage.removeItem("hasNotfC_" + acct.domain);
|
||||
}
|
||||
var width = localStorage.getItem("width");
|
||||
if (width) {
|
||||
var css = " min-width:" + width + "px;"
|
||||
}
|
||||
if(acct.width){
|
||||
var css = " min-width:" + acct.width + "px;max-width:" + acct.width + "px;"
|
||||
}
|
||||
if(!css){
|
||||
var css = ""
|
||||
}
|
||||
if (acct.type == "webview") {
|
||||
if (localStorage.getItem("fixwidth")) {
|
||||
var fixwidth = localStorage.getItem("fixwidth");
|
||||
@@ -168,10 +179,7 @@ function parseColumn(target, dontclose) {
|
||||
if (!acct.left_fold) {
|
||||
basekey = key;
|
||||
}
|
||||
var width = localStorage.getItem("width");
|
||||
if (width) {
|
||||
var css = " min-width:" + width + "px;"
|
||||
}
|
||||
|
||||
var anime = localStorage.getItem("animation");
|
||||
if (anime == "yes" || !anime) {
|
||||
var animecss = "box-anime";
|
||||
@@ -180,16 +188,13 @@ function parseColumn(target, dontclose) {
|
||||
}
|
||||
unstreamingTL(acct.type, key, basekey, insert, icnsert, acct.left_fold, css, animecss, acct.data);
|
||||
} else {
|
||||
var width = localStorage.getItem("width");
|
||||
if (width) {
|
||||
var css = " min-width:" + width + "px;"
|
||||
}
|
||||
var anime = localStorage.getItem("animation");
|
||||
if (anime == "yes" || !anime) {
|
||||
var animecss = "box-anime";
|
||||
} else {
|
||||
var animecss = "";
|
||||
}
|
||||
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>'
|
||||
if (acct.type == "notf") {
|
||||
var exclude = lang.lang_excluded + ':<br><label><input type="checkbox" class="filled-in" id="exc-reply-' + key + '" ' + excludeCk(key, "mention") + ' /><span><i class="fas fa-share exc-icons"></i></span></label> ' +
|
||||
'<label><input type="checkbox" class="filled-in" id="exc-fav-' + key + '" ' + excludeCk(key, "favourite") + ' /><span><i class="fas fa-star exc-icons"></i></span></label> ' +
|
||||
@@ -201,12 +206,24 @@ function parseColumn(target, dontclose) {
|
||||
exclude = exclude + '<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter(' + key + ')">Clear all</button>'
|
||||
}
|
||||
exclude = exclude + "<br>";
|
||||
|
||||
} else if (acct.type == "home") {
|
||||
var exclude = '<a onclick="ebtToggle(' + key +
|
||||
')" class="setting nex"><i class="fas fa-retweet waves-effect nex" title="' + lang.lang_layout_excludingbt + '" style="font-size:24px"></i><span id="sta-bt-' +
|
||||
key + '">Off</span></a>' + lang.lang_layout_excludingbt + '<br>';
|
||||
|
||||
} else {
|
||||
var exclude = "";
|
||||
unread = ""
|
||||
}
|
||||
var markers = localStorage.getItem("markers");
|
||||
if (markers == "no") {
|
||||
markers = false;
|
||||
} else {
|
||||
markers = true
|
||||
}
|
||||
if (!markers) {
|
||||
unread = ""
|
||||
}
|
||||
if (!acct.left_fold) {
|
||||
basekey = key;
|
||||
@@ -229,13 +246,18 @@ function parseColumn(target, dontclose) {
|
||||
var isMisRed = "red-text"
|
||||
var if_misskey_hide = ""
|
||||
}
|
||||
if(acct.height){
|
||||
var addHeight = " min-height:" + acct.height + "px;max-height:" + acct.height + "px;"
|
||||
}else {
|
||||
var addHeight = ""
|
||||
}
|
||||
var html = '<div class="boxIn" id="timeline_box_' + key + '_box" tlid="' + key +
|
||||
'" data-acct="' + acct.domain + '"><div class="notice-box z-depth-2" id="menu_' + key + '" style="' + insert + ' ">' +
|
||||
'" 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 + ' style="font-size:40px; padding-top:25%;" onclick="checkStr(\'' + acct.type + '\', \'' + data + '\', \'' + acct.domain + '\', \'' + key + '\', \'' + delc + '\',\'' + voice + '\',null)" title="' + lang.lang_layout_gotop + '"></i></div>' +
|
||||
'<div class="area-notice_name"><span id="notice_' + key + '" class="tl-title"></span></div>' +
|
||||
'<div class="area-a1"><a onclick="notfToggle(' + acct.domain + ',' + key +
|
||||
')" class="setting nex ' + if_notf + '" title="' + unique_notf + '"' + icnsert + '><i class="material-icons waves-effect nex notf-icon_' +
|
||||
acct.domain + '">notifications</i></div><div class="area-sta"><span class="new badge teal notf-reply_' + acct.domain + ' hide" data-badge-caption="Reply">0</span><span class="new badge yellow black-text notf-fav_' + acct.domain + ' hide" data-badge-caption="Fav">0</span><span class="new badge blue notf-bt_' + acct.domain + ' hide" data-badge-caption="BT">0</span><span class="new badge orange notf-follow_' + acct.domain + ' hide" data-badge-caption="Follow">0</span></a></div>' +
|
||||
acct.domain + '">notifications</i></a>' + unread + '</div><div class="area-sta"><span class="new badge teal notf-reply_' + acct.domain + ' hide" data-badge-caption="Reply">0</span><span class="new badge yellow black-text notf-fav_' + acct.domain + ' hide" data-badge-caption="Fav">0</span><span class="new badge blue notf-bt_' + acct.domain + ' hide" data-badge-caption="BT">0</span><span class="new badge orange notf-follow_' + acct.domain + ' hide" data-badge-caption="Follow">0</span></div>' +
|
||||
'<div class="area-a2"><a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_delthis + '"' + icnsert + '>cancel</i></a></div>' +
|
||||
'<div class="area-a3"><a onclick="setToggle(' + key +
|
||||
@@ -250,7 +272,7 @@ function parseColumn(target, dontclose) {
|
||||
key + '">On</span></a>' + lang.lang_layout_linkana + '<br><a onclick="voiceToggle(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_tts + '">hearing</i><span id="sta-voice-' +
|
||||
key + ',\'' + acct.type + '\'">On</span></a>' + lang.lang_layout_tts + 'TL<br><a onclick="columnReload(' + key +
|
||||
')" class="setting nex ' + if_notf + ' ' + if_misskey_hide + '"><i class="material-icons waves-effect nex ' + if_notf + '" title="' + lang.lang_layout_reconnect + '">refresh</i></a><span class="' + if_notf + '">' + lang.lang_layout_reconnect + '</span><br>' + lang.lang_layout_headercolor + '<br><div id="picker_' + key + '" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key +
|
||||
',\'' + acct.type + '\')" class="setting nex ' + if_misskey_hide + '"><i class="material-icons waves-effect nex" title="' + lang.lang_layout_reconnect + '">refresh</i></a><span>' + lang.lang_layout_reconnect + '</span><br>' + lang.lang_layout_headercolor + '<br><div id="picker_' + key + '" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key +
|
||||
'" class="tl ' + acct.type + '-timeline " tlid="' + key + '" data-type="' + acct.type + '" data-acct="' + acct.domain + '" data-const="' + acct.type + '_' + acct.domain + '"><div id="landing_' + key + '" style="text-align:center">' + lang.lang_layout_nodata + '</div></div></div>'
|
||||
if (numtarget) {
|
||||
$('timeline_box_' + key + '_box').html(html)
|
||||
@@ -280,6 +302,7 @@ function parseColumn(target, dontclose) {
|
||||
mediaCheck(key);
|
||||
catchCheck(key);
|
||||
voiceCheck(key);
|
||||
var css = ""
|
||||
}
|
||||
}
|
||||
var box = localStorage.getItem("box");
|
||||
@@ -307,6 +330,40 @@ function parseColumn(target, dontclose) {
|
||||
}
|
||||
}
|
||||
}
|
||||
$(".box, .boxIn").resizable({
|
||||
minHeight: 50,
|
||||
minWidth: 50,
|
||||
grid: 50,
|
||||
resize: function (event, ui) {
|
||||
$(this).css("min-width", ui.size.width + "px")
|
||||
$(this).css("max-width", ui.size.width + "px")
|
||||
$(this).css("min-height", ui.size.height + "px")
|
||||
$(this).css("max-height", ui.size.height + "px")
|
||||
},
|
||||
stop: function (event, ui) {
|
||||
var col = localStorage.getItem("column");
|
||||
var o = JSON.parse(col);
|
||||
var width = ui.size.width
|
||||
var height = ui.size.height
|
||||
if ($(this).hasClass("boxIn")) {
|
||||
//縦幅。その縦幅を持つカラムのidは
|
||||
console.log("tate")
|
||||
var key = $(this).attr("tlid")
|
||||
var obj = o[key];
|
||||
obj.height = height;
|
||||
o[key] = obj;
|
||||
} else {
|
||||
//横幅。その縦幅を持つカラムのidは
|
||||
console.log("yoko")
|
||||
var key = $(this).find(".boxIn").attr("tlid")
|
||||
var obj = o[key];
|
||||
obj.width = width;
|
||||
o[key] = obj;
|
||||
}
|
||||
var json = JSON.stringify(o);
|
||||
localStorage.setItem("column", json);
|
||||
}
|
||||
});
|
||||
}
|
||||
function checkStr(type, data, acct_id, key, delc, voice) {
|
||||
if ($('#notice_icon_' + key).hasClass("red-text") && type != "notf" && type != "mix") {
|
||||
|
@@ -9,14 +9,18 @@ scrollevent();
|
||||
function scrollck() {
|
||||
$(".tl-box").each(function (i, elem) {
|
||||
var tlid = $(this).attr('tlid');
|
||||
//一番上ならためていた新しいトゥートを表示
|
||||
//一番上ならためていた新しいトゥートを表示ないしtealなら未読管理モード
|
||||
if ($(this).scrollTop() === 0) {
|
||||
if (!$("#unread_" + tlid + " .material-icons").hasClass("teal-text")) {
|
||||
var pool = localStorage.getItem("pool_" + tlid);
|
||||
if (pool) {
|
||||
$("#timeline_" + tlid).prepend(pool);
|
||||
jQuery("time.timeago").timeago();
|
||||
localStorage.removeItem("pool_" + tlid);
|
||||
}
|
||||
} else {
|
||||
ueload(tlid)
|
||||
}
|
||||
//自動リフレッシュ
|
||||
if ($("#timeline_" + tlid + " .cvo").length > 30) {
|
||||
for (var i = 30; i < $("#timeline_" + tlid + " .cvo").length; i++) {
|
||||
@@ -35,6 +39,15 @@ function scrollck() {
|
||||
}
|
||||
|
||||
function goTop(id) {
|
||||
if ($("#unread_" + id + " .material-icons").hasClass("teal-text")) {
|
||||
$("#unread_" + id + " .material-icons").removeClass("teal-text")
|
||||
var multi = localStorage.getItem("column")
|
||||
var obj = JSON.parse(multi)
|
||||
var acct_id = obj[id * 1].domain
|
||||
var type = obj[id * 1].type
|
||||
console.log(id, type)
|
||||
columnReload(id, type)
|
||||
}
|
||||
if ($("#timeline_box_" + id + "_box .tl-box").scrollTop() > 500) {
|
||||
$("#timeline_box_" + id + "_box .tl-box").scrollTop(500)
|
||||
}
|
||||
|
@@ -45,7 +45,7 @@ var tlView = new Vue({
|
||||
});
|
||||
var postView = new Vue({
|
||||
el: '#postView',
|
||||
data: { config: postConstruction, kirishima: localStorage.getItem('kirishima') },
|
||||
data: { config: postConstruction, kirishima: localStorage.getItem('kirishima'), quoters: localStorage.getItem('quoters') },
|
||||
methods: {
|
||||
complete: function (i, val) {
|
||||
var ls = postView.config[i];
|
||||
@@ -161,8 +161,37 @@ function load() {
|
||||
$("#c2-file").text(localStorage.getItem("custom2"));
|
||||
$("#c3-file").text(localStorage.getItem("custom3"));
|
||||
$("#c4-file").text(localStorage.getItem("custom4"));
|
||||
var cvol = localStorage.getItem("customVol")
|
||||
if (cvol) {
|
||||
$("#soundvol").val(cvol * 100);
|
||||
$("#soundVolVal").text(cvol * 100)
|
||||
}
|
||||
//$("#log").val(localStorage.getItem("errors"))
|
||||
}
|
||||
function customVol() {
|
||||
var cvol = $("#soundvol").val()
|
||||
$("#soundVolVal").text(cvol)
|
||||
localStorage.setItem("customVol", cvol / 100)
|
||||
var sound = localStorage.getItem("favSound");
|
||||
if (sound == "default") {
|
||||
var file = "../../source/notif.wav"
|
||||
}else{
|
||||
if (sound == "c1") {
|
||||
var file = localStorage.getItem("custom1");
|
||||
} else if (sound == "c2") {
|
||||
var file = localStorage.getItem("custom2");
|
||||
} else if (sound == "c3") {
|
||||
var file = localStorage.getItem("custom3");
|
||||
} else if (sound == "c4") {
|
||||
var file = localStorage.getItem("custom4");
|
||||
}
|
||||
}
|
||||
request = new XMLHttpRequest();
|
||||
request.open("GET", file, true);
|
||||
request.responseType = "arraybuffer";
|
||||
request.onload = playSound;
|
||||
request.send();
|
||||
}
|
||||
|
||||
function climute() {
|
||||
//クライアントミュート
|
||||
|
@@ -554,11 +554,15 @@ function showFrl(more, acct_id) {
|
||||
});
|
||||
}
|
||||
//Keybase
|
||||
function udAdd(start) {
|
||||
fetch(start, {
|
||||
function udAdd(acct_id, id, start) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var proof = "https://" + domain + "/api/v1/accounts/" + id + "/identity_proofs"
|
||||
fetch(proof, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Accept': 'application/json'
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
//body: JSON.stringify({})
|
||||
}).then(function (response) {
|
||||
@@ -567,17 +571,11 @@ function udAdd(start) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
var fields = json.attachment;
|
||||
var fields = json;
|
||||
for (var i = 0; i < fields.length; i++) {
|
||||
if (fields[i].type == "IdentityProof") {
|
||||
if (fields[i].signatureAlgorithm == "keybase") {
|
||||
var html = '<a href="https://keybase.io/' + fields[i].name + '" target="_blank" class="cbadge teal waves-effect" style="max-width:200px;" title="' + lang.lang_hisdata_key.replace("{{set}}", escapeHTML(fields[i].signatureAlgorithm)) + '"><i class="fas fa-key" aria-hidden="true"></i>' + escapeHTML(fields[i].signatureAlgorithm) + ':' + escapeHTML(fields[i].name) + '</a>';
|
||||
} else {
|
||||
var html = '<span class="cbadge teal" style="max-width:200px;" title="' + lang.lang_hisdata_key.replace("{{set}}", escapeHTML(fields[i].signatureAlgorithm)) + '"><i class="fas fa-key" aria-hidden="true"></i>' + escapeHTML(fields[i].signatureAlgorithm) + ':' + escapeHTML(fields[i].name) + '</span>';
|
||||
}
|
||||
var html = '<a href="' + fields[i].proof_url + '" target="_blank" class="cbadge teal waves-effect" style="max-width:200px;" title="' + lang.lang_hisdata_key.replace("{{set}}", escapeHTML(fields[i].provider)) + '"><i class="fas fa-key" aria-hidden="true"></i>' + escapeHTML(fields[i].provider) + ':' + escapeHTML(fields[i].provider_username) + '</a>';
|
||||
$("#his-proof-prof").append(html)
|
||||
}
|
||||
}
|
||||
});
|
||||
fetch("https://notestock.osa-p.net/api/v1/isstock.json?id=" + start.replace("@", "users/"), {
|
||||
method: 'GET',
|
||||
|
@@ -23,7 +23,7 @@ function udgEx(user, acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") { return false; }
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/search?resolve=true&q=" + user
|
||||
var start = "https://" + domain + "/api/v2/search?resolve=true&q=" + user
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
@@ -205,7 +205,7 @@ function udg(user, acct_id) {
|
||||
}
|
||||
todc();
|
||||
//外部データ取得(死かもしれないので)
|
||||
udAdd(json.url);
|
||||
udAdd(acct_id, user, json.url);
|
||||
});
|
||||
}
|
||||
function misskeyUdg(user, acct_id) {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "thedesk",
|
||||
"version": "18.9.2",
|
||||
"version": "18.10.0",
|
||||
"description": "TheDesk is a Mastodon client for PC.",
|
||||
"repository": "https://github.com/cutls/TheDesk",
|
||||
"main": "main.js",
|
||||
@@ -51,7 +51,7 @@
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.10.1",
|
||||
"electron-dl": "^1.14.0",
|
||||
"jimp": "^0.6.4",
|
||||
"jimp": "^0.8.2",
|
||||
"jquery": "^3.4.1",
|
||||
"jquery-ui-dist": "^1.12.1",
|
||||
"json5": "^2.1.0",
|
||||
@@ -68,6 +68,7 @@
|
||||
"devDependencies": {
|
||||
"electron": "^6.0.0",
|
||||
"electron-builder": "^21.1.5",
|
||||
"electron-rebuild": "^1.8.6",
|
||||
"readline-sync": "1.4.10"
|
||||
},
|
||||
"build": {
|
||||
|
@@ -28,9 +28,7 @@
|
||||
var ver = "@@versionLetter@@";
|
||||
var gitHash = "@@gitHash@@"
|
||||
//betaを入れるとバージョンチェックしない
|
||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
|
||||
//var ver="beta";
|
||||
//WinstoreではバージョンCK・言語・Misskeyトークンの機能が排除
|
||||
var acct_id = 0;
|
||||
var tlid = 0;
|
||||
</script>
|
||||
@@ -38,11 +36,46 @@
|
||||
<canvas id="canvas" style="top:-100px; position:fixed;width:32px;height:32px" width="32" height="32"></canvas>
|
||||
<div id="tl">
|
||||
<!--TL-->
|
||||
<!--スターター-->
|
||||
<div id="start">
|
||||
<div id="start-content"><h3 class="center">@@demoBottomBtns@@</h3>
|
||||
@@lookAtBottom@@
|
||||
<div id="demobottom">
|
||||
<button class="btn waves-effect"
|
||||
style="width: 300px;height: 2.5rem;line-height: 0;margin: 0; background-color: var(--accentbtn);">
|
||||
<i class="material-icons"
|
||||
style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>@@toot@@
|
||||
</button>
|
||||
<div class="leftside reverse" id="demogroup">
|
||||
<div class="btnsgroup" style="margin-left: 5px;">
|
||||
<a href="#" class="nex waves-effect">
|
||||
<i class="material-icons nex big-icon" title="@@acctMan@@(Ctrl+Shift+M)">account_circle</i>
|
||||
</a>
|
||||
<a href="#" class="nex waves-effect">
|
||||
<i class="material-icons nex" title="@@setting@@(Ctrl+Shift+S)">settings</i>
|
||||
</a>
|
||||
<a class="nex waves-effect">
|
||||
<i class="material-icons" title="@@nanoDes@@TheDesk Nano">remove_from_queue</i>
|
||||
</a>
|
||||
<aside class="nex waves-effect" id="list-tgl">
|
||||
<i class="material-icons" title="@@menu@@">apps</i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div><br>
|
||||
<i class="material-icons nex big-icon">account_circle</i>: @@acctMan@@<br> @@acctManDesc@@<hr>
|
||||
<i class="material-icons nex">settings</i>: @@setting@@<br> @@settingDesc@@<hr>
|
||||
<i class="material-icons nex">remove_from_queue</i>: TheDesk Nano @@nanoDes@@<br> @@nanoDescPlus@@<hr>
|
||||
<i class="material-icons nex">apps</i>: @@menu@@<br> @@menuDesc@@<br>
|
||||
<br>
|
||||
<button class="btn waves-effect" onclick="closeStart()" style="width: 300px;">@@close@@</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--ドラッグハンドラ-->
|
||||
<div id="drag">
|
||||
<div id="drag-content" data-trans="drag_here">@@draghere@@
|
||||
<div id="drag-content">@@draghere@@
|
||||
<br>
|
||||
<button class="btn waves-effect" onclick="closedrop()" data-trans="close">@@close@@</button>
|
||||
<button class="btn waves-effect" onclick="closedrop()">@@close@@</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -219,6 +252,7 @@
|
||||
</ul>
|
||||
<!--hidden area-->
|
||||
<input type="hidden" id="reply">
|
||||
<input type="hidden" id="quote">
|
||||
<input type="hidden" id="media">
|
||||
<!--END hidden area-->
|
||||
</div>
|
||||
@@ -675,30 +709,18 @@
|
||||
<a href="https://thedesk.top" target="_blank">HP</a><br>
|
||||
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
|
||||
<br>
|
||||
<div id="release-Usamin_18-9-2" class="release-do" style="display:none; ">
|
||||
<div id="release-Usamin_18-10-0" class="release-do" style="display:none; ">
|
||||
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
|
||||
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
|
||||
Pixiv Fanboxでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note Usamin (18.9.2)</h5>
|
||||
・トゥートボックスが閉じない、消えない不具合を修正。
|
||||
<h5>Release Note Usamin (18.9.1)</h5>
|
||||
・トゥートボックスのリサイズを横だけにした<br>
|
||||
・アンケートが上手く作成できない不具合を修正。
|
||||
<h5>Release Note Usamin (18.9.0)</h5>
|
||||
・設定エクスポートファイルが変更された<br>
|
||||
.thedeskconfigv2: 17.2.0~18.8.3<br>
|
||||
.thedeskconfig: 16.0.1~17.2.0<br>
|
||||
.json5: 本バージョン以降<br>
|
||||
<u>エクスポート可能な形式</u><br>
|
||||
.json5<br>
|
||||
<u>インポート可能な形式</u><br>
|
||||
.thedeskconfigv2, .thedeskconfig, .json5<br>
|
||||
・カスタムCSSを読み込める(自己責任): macOS: /Users/:user/Library/Application Support/TheDesk | Windows: C:\Users\:user\AppData\Roaming\thedesk<br>
|
||||
・(v3.0|m追従)プロフィールディレクトリ読み込み<br>
|
||||
・(v3.0|m追従)最終アクティブ時間をユーザー一覧表示時に一緒に表示<br>
|
||||
・自己紹介をユーザー一覧表示時に一緒に表示<br>
|
||||
・メニューとトゥートボックスがリサイズ可能になった<br>
|
||||
<h5>Release Note Usamin (18.10.0)</h5>
|
||||
・全てのカラムの縦、横幅を自由に変更できるように。<br>
|
||||
・一部トゥートがTLに表示されない不具合を修正。<br>
|
||||
・初回起動時にガイダンスを表示<br>
|
||||
・Featured tag(master|v3.0)<br>
|
||||
・未読マーカー(master|v3.0)<br>
|
||||
・引用のトゥート(設定で引用形式を「パラメーター」にすることで対応インスタンスで利用可)<br>
|
||||
</div>
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
@@ -1009,8 +1031,8 @@
|
||||
<i class="material-icons" title="@@nanoDes@@TheDesk Nano"
|
||||
data-trans-title="nano_desp">remove_from_queue</i>
|
||||
</a>
|
||||
<a onclick="menu()" class="nex waves-effect" id="list-tgl">
|
||||
<i class="material-icons" title="@@list@@">apps</i>
|
||||
<a onclick="menu()" class="nex waves-effect">
|
||||
<i class="material-icons" title="@@menu@@">apps</i>
|
||||
</a>
|
||||
<span id="fukidashi">@@hereAddColumns@@</span>
|
||||
</div>
|
||||
|
@@ -168,5 +168,11 @@
|
||||
"directory": "Directory",
|
||||
"active": "Recently active",
|
||||
"newcomer": "New arrivals",
|
||||
"local_only": "Local only"
|
||||
"local_only": "Local only",
|
||||
"demoBottomBtns": "Welcome guide",
|
||||
"lookAtBottom": "Look at the bottom of this window. Here is some tips about it.",
|
||||
"acctManDesc": "Add more accounts and logout them.",
|
||||
"settingDesc": "Many and many preferences here. You will couldn't check it all!",
|
||||
"nanoDescPlus": "Mini window client(experimental)",
|
||||
"listDesc": "All daily TheDesk and Mastodon tuning like <b>add and sort columns</b>, <b>list and filter check</b>."
|
||||
}
|
@@ -87,6 +87,8 @@
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"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",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
"replySound": "Звук (Отговор)",
|
||||
"favSound": "Звук(Фаворит)",
|
||||
"btSound": "Звук(Подсилване)",
|
||||
@@ -113,6 +115,7 @@
|
||||
"mention": "URL and acct(mention to the user)",
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -155,6 +158,7 @@
|
||||
"pitchwarn": "0-100(default:50)",
|
||||
"vol": "Volume",
|
||||
"volwarn": "0-100(default:100)",
|
||||
"volwarn80": "0-100(default:80)",
|
||||
"test": "Test",
|
||||
"sample": "TheDesk is an open-source Mastodon client for PC.",
|
||||
"playstop": "Play/Stop",
|
||||
|
@@ -168,5 +168,11 @@
|
||||
"directory": "Directory",
|
||||
"active": "Recently active",
|
||||
"newcomer": "New arrivals",
|
||||
"local_only": "Local only"
|
||||
"local_only": "Local only",
|
||||
"demoBottomBtns": "Welcome guide",
|
||||
"lookAtBottom": "Look at the bottom of this window. Here is some tips about it.",
|
||||
"acctManDesc": "Add more accounts and logout them.",
|
||||
"settingDesc": "Many and many preferences here. You will couldn't check it all!",
|
||||
"nanoDescPlus": "Mini window client(experimental)",
|
||||
"listDesc": "All daily TheDesk and Mastodon tuning like <b>add and sort columns</b>, <b>list and filter check</b>."
|
||||
}
|
@@ -87,6 +87,8 @@
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://cdn.weep.me/mastodon/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
"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.",
|
||||
"replySound": "Sound(Reply)",
|
||||
"favSound": "Sound(Fav)",
|
||||
"btSound": "Sound(Boost)",
|
||||
@@ -113,6 +115,7 @@
|
||||
"mention": "URL and acct(mention to the user)",
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -155,6 +158,7 @@
|
||||
"pitchwarn": "0-100(default:50)",
|
||||
"vol": "Volume",
|
||||
"volwarn": "0-100(default:100)",
|
||||
"volwarn80": "0-100(default:80)",
|
||||
"test": "Test",
|
||||
"sample": "TheDesk is an open-source Mastodon client for PC.",
|
||||
"playstop": "Play/Stop",
|
||||
|
@@ -168,5 +168,11 @@
|
||||
"directory": "Directory",
|
||||
"active": "Recently active",
|
||||
"newcomer": "New arrivals",
|
||||
"local_only": "Local only"
|
||||
"local_only": "Local only",
|
||||
"demoBottomBtns": "Welcome guide",
|
||||
"lookAtBottom": "Look at the bottom of this window. Here is some tips about it.",
|
||||
"acctManDesc": "Add more accounts and logout them.",
|
||||
"settingDesc": "Many and many preferences here. You will couldn't check it all!",
|
||||
"nanoDescPlus": "Mini window client(experimental)",
|
||||
"listDesc": "All daily TheDesk and Mastodon tuning like <b>add and sort columns</b>, <b>list and filter check</b>."
|
||||
}
|
@@ -87,6 +87,8 @@
|
||||
"ticker": "Aktiviere #InstanceTicker",
|
||||
"tickerwarn": "Zeigt bunte Sticker über den Server. <a href=\"https://wee.jp/\">Über #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
"animation": "Animation der Verläufe",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
"replySound": "Ton bei Antwort",
|
||||
"favSound": "Ton bei Favorit",
|
||||
"btSound": "Ton bei Verstärkung",
|
||||
@@ -113,6 +115,7 @@
|
||||
"mention": "URL und Name (Hinweis auf den Benutzer)",
|
||||
"full": "URL, Text und Name(Hinweis auf den Benutzer)",
|
||||
"notqt": "Deaktiviert (Taste in Verlauf ausgeblendet)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"main": "Standard-Konto für Aktionen",
|
||||
"mainwarn": "Das Hauptkonto kann in der Kontoverwaltung gestellt werden.",
|
||||
"lastacct": "Konto, das Sie kürzlich verwendet haben",
|
||||
@@ -155,6 +158,7 @@
|
||||
"pitchwarn": "0-100(Standard:50)",
|
||||
"vol": "Lautstärke",
|
||||
"volwarn": "0-100(Standard:100)",
|
||||
"volwarn80": "0-100(Standard:80)",
|
||||
"test": "Test",
|
||||
"sample": "TheDesk ist ein Open-Source Mastodon Client für PC.",
|
||||
"playstop": "Abspielen/Stoppen",
|
||||
|
@@ -8,7 +8,6 @@
|
||||
"nsfwDes":"Mark media as sensitive",
|
||||
"cwDes":"Hide text behind warning",
|
||||
"selfile":"Attach..",
|
||||
|
||||
"insertEmoji":"Emojis",
|
||||
"NPSpotify":"NowPlaying(Spotify)",
|
||||
"NPiTunes":"NowPlaying(macOS)",
|
||||
@@ -169,5 +168,11 @@
|
||||
"directory": "Directory",
|
||||
"active": "Recently active",
|
||||
"newcomer": "New arrivals",
|
||||
"local_only": "Local only"
|
||||
"local_only": "Local only",
|
||||
"demoBottomBtns": "Welcome guide",
|
||||
"lookAtBottom": "Look at the bottom of this window. Here is some tips about it.",
|
||||
"acctManDesc": "Add more accounts and logout them.",
|
||||
"settingDesc": "Many and many preferences here. You will couldn't check it all!",
|
||||
"nanoDescPlus": "Mini window client(experimental)",
|
||||
"listDesc": "All daily TheDesk and Mastodon tuning like <b>add and sort columns</b>, <b>list and filter check</b>."
|
||||
}
|
@@ -87,6 +87,8 @@
|
||||
"ticker": "Enable #InstanceTicker",
|
||||
"tickerwarn": "Show colorful stickers about the server. <a href=\"https://wee.jp/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
"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.",
|
||||
"replySound": "Sound(Reply)",
|
||||
"favSound": "Sound(Fav)",
|
||||
"btSound": "Sound(Boost)",
|
||||
@@ -113,6 +115,7 @@
|
||||
"mention": "URL and acct(mention to the user)",
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
@@ -155,6 +158,7 @@
|
||||
"pitchwarn": "0-100(default:50)",
|
||||
"vol": "Volume",
|
||||
"volwarn": "0-100(default:100)",
|
||||
"volwarn80": "0-100(default:80)",
|
||||
"test": "Test",
|
||||
"sample": "TheDesk is an open-source Mastodon client for PC.",
|
||||
"playstop": "Play/Stop",
|
||||
|
@@ -168,5 +168,12 @@
|
||||
"directory": "ディレクトリ",
|
||||
"active": "最新活動順",
|
||||
"newcomer": "新規順",
|
||||
"local_only": "ローカルのみ"
|
||||
"local_only": "ローカルのみ",
|
||||
"menu": "メニュー",
|
||||
"demoBottomBtns": "チュートリアル",
|
||||
"lookAtBottom": "画面下のアイコン群を見てください。簡単な説明をします。次のようなものがあると思います。",
|
||||
"acctManDesc": "アカウントに関する全てのことはここでできます。例えば複数アカウントの管理やログアウトなどです。各アカウントに独自のカラーを設定できます。",
|
||||
"settingDesc": "数えきれないほどの設定項目がここにあります。(フィルターの管理などMastodon本体の設定はここにはありません)",
|
||||
"nanoDescPlus": "小さなMastodonクライアントです。(実験的)",
|
||||
"menuDesc": "<u>カラム追加や並び変え</u>、<u>リストやフィルター</u>、<u>検索</u>などがコンパクトにまとまっています。全てはここから始まると言っても過言ではありません。"
|
||||
}
|
@@ -87,6 +87,8 @@
|
||||
"ticker": "#InstanceTickerを使う",
|
||||
"tickerwarn": "トゥートした人の所属サーバーをわかりやすく彩ります(自サーバー以外のトゥート向け)。<a href=\"https://https://wee.jp/\">#InstanceTickerについて</a> Copyright 2018 weepjp, kyori19.",
|
||||
"animation": "タイムラインのアニメーション",
|
||||
"markers": "ホームと通知の未読管理",
|
||||
"markerswarn": "Mastodon 3.0相当以上。WebUIと対応クライアントで共有されます。",
|
||||
"replySound": "リプライの通知音",
|
||||
"favSound": "お気に入り登録の通知音",
|
||||
"btSound": "ブーストの通知音",
|
||||
@@ -113,6 +115,7 @@
|
||||
"mention": "URLとアカウント名(相手に通知)",
|
||||
"full": "本文・URL・アカウント名",
|
||||
"notqt": "使わない(TL上にボタンも表示されません)",
|
||||
"apiQuote": "パラメーター(対応インスタンス)",
|
||||
"main": "投稿後や起動時のアカウント",
|
||||
"mainwarn": "メインアカウントはアカウント設定で指定できます。投稿以外のアカウント選択にも影響します。",
|
||||
"lastacct": "最後に使用したアカウント",
|
||||
@@ -155,6 +158,7 @@
|
||||
"pitchwarn": "0-100まで、デフォルトは50。(大きくなるほど高い)",
|
||||
"vol": "読み上げの音量",
|
||||
"volwarn": "0-100まで、デフォルトは100。",
|
||||
"volwarn80": "0-100まで、デフォルトは80。",
|
||||
"test": "テスト",
|
||||
"sample": "これはテスト音声です。TheDeskはオープンソースのPC向けマストドンクライアントです。マルチサーバーやマルチカラムに対応しています。",
|
||||
"playstop": "再生/停止",
|
||||
|
@@ -1,11 +1,10 @@
|
||||
const fs = require("fs")
|
||||
const readlineSync = require('readline-sync')
|
||||
let ver = "Usamin (18.9.2)"
|
||||
let ver = "Usamin (18.10.1)-beta"
|
||||
const execSync = require('child_process').execSync;
|
||||
let gitHash = execSync("git rev-parse HEAD").toString().trim()
|
||||
fs.writeFileSync("../../git", gitHash)
|
||||
if (process.argv.indexOf("--automatic") === -1) {
|
||||
let input = readlineSync.question('version string [empty: ' + ver + ' (default)]? ');
|
||||
let input = require('readline-sync').question('version string [empty: ' + ver + ' (default)]? ');
|
||||
if (input) {
|
||||
ver = input
|
||||
}
|
||||
|
@@ -247,6 +247,11 @@
|
||||
id="c3-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span
|
||||
id="c4-file"></span><br>
|
||||
<h5>@@vol@@</h5>
|
||||
@@volwarn80@@<br>
|
||||
<p class="range-field"><span id="soundVolVal">80</span><br>
|
||||
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
@@ -262,7 +267,7 @@
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
<template v-if="!check.kirishima || (check.kirishima && kirishima)">
|
||||
<template v-if="(!check.kirishima || (check.kirishima && kirishima) )&& (!check.quote || (check.quote && quoters))">
|
||||
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||
v-bind:value="check.value" />
|
||||
@@ -373,15 +378,18 @@
|
||||
<div class="collapsible-body">
|
||||
<h5>@@speed@@</h5>
|
||||
@@speedwarn@@<br>
|
||||
<p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||
<p class="range-field"><span id="voicespeedVal">10</span><br>
|
||||
<input type="range" id="voicespeed" min="1" max="100" value="10" onchange="document.getElementById('voicespeedVal').innerText=this.value"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>@@pitch@@</h5>
|
||||
@@pitchwarn@@<br>
|
||||
<p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||
<p class="range-field"><span id="voicepitchVal">50</span><br>
|
||||
<input type="range" id="voicepitch" min="0" max="100" value="50" onchange="document.getElementById('voicepitchVal').innerText=this.value"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>@@vol@@</h5>
|
||||
@@volwarn@@<br>
|
||||
<p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100"
|
||||
<p class="range-field"><span id="voicevolVal">100</span><br>
|
||||
<input type="range" id="voicevol" min="0" max="100" value="100" onchange="document.getElementById('voicevolVal').innerText=this.value"
|
||||
style="width:500px; max-width:100%" /></p>
|
||||
<h5>@@test@@</h5>
|
||||
<input type="text" style="width:350px" id="voicetxt" value="@@sample@@">
|
||||
@@ -447,7 +455,7 @@
|
||||
style="width:100%; max-width:500px;"><i class="fab fa-github left"></i>GitHub</a>
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
|
||||
style="width:100%; max-width:500px;"><img src="../../img/desk_full.svg" class="left" width="25"
|
||||
style="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
|
||||
<br>
|
||||
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/@@gitHash@@">@@gitHash@@</a><br>
|
||||
<br>
|
||||
@@ -460,8 +468,6 @@
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a href="https://thedesk.top/priv.html">Privacy
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
|
@@ -176,7 +176,7 @@ var tlConstruction = [
|
||||
text: "@@replyct_hidden@@",
|
||||
value: "hidden"
|
||||
}, {
|
||||
text: "@@replyct_hidden@@",
|
||||
text: "@@replyct_full@@",
|
||||
value: "all"
|
||||
}
|
||||
|
||||
@@ -307,6 +307,16 @@ var tlConstruction = [
|
||||
desc: "",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "markers",
|
||||
storage: "markers",
|
||||
checkbox: true,
|
||||
setValue: "yes",
|
||||
text: {
|
||||
head: "@@markers@@",
|
||||
desc: "@@markerswarn@@",
|
||||
checkbox: yesno
|
||||
}
|
||||
}, {
|
||||
id: "replySound",
|
||||
storage: "replySound",
|
||||
@@ -481,6 +491,10 @@ var postConstruction = [
|
||||
}, {
|
||||
text: "@@full@@",
|
||||
value: "full"
|
||||
}, {
|
||||
text: "@@apiQuote@@",
|
||||
value: "apiQuote",
|
||||
quote: true
|
||||
}, {
|
||||
text: "@@notqt@@",
|
||||
value: "nothing"
|
||||
|
3061
app/yarn.lock
Normal file
3061
app/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,54 +0,0 @@
|
||||
{
|
||||
"kirishima.cloud":"instance",
|
||||
"kirishima.cloud_name":"アスタルテ",
|
||||
"kirishima.cloud_letters":"6229",
|
||||
"kirishima.cloud_bbcode":"enabled",
|
||||
"kirishima.cloud_markdown":"disabled",
|
||||
"knzk.me":"instance",
|
||||
"knzk.me_name":"神崎丼",
|
||||
"knzk.me_letters":"5000",
|
||||
"knzk.me_bbcode":"disabled",
|
||||
"knzk.me_markdown":"disabled",
|
||||
"mastodos.com":"instance",
|
||||
"mastodos.com_name":"マストどす",
|
||||
"mastodos.com_letters":"500",
|
||||
"mastodos.com_bbcode":"disabled",
|
||||
"mastodos.com_markdown":"disabled",
|
||||
"dev.kirishima.cloud":"hidden",
|
||||
"dev.kirishima.cloud_name":"アスタルテ(Dev)",
|
||||
"dev.kirishima.cloud_letters":"6229",
|
||||
"dev.kirishima.cloud_bbcode":"enabled",
|
||||
"dev.kirishima.cloud_markdown":"disabled",
|
||||
"mstdn.y-zu.org":"instance",
|
||||
"mstdn.y-zu.org_name":"Yづドン!(502 BadGateway)",
|
||||
"mstdn.y-zu.org_letters":"500",
|
||||
"mstdn.y-zu.org_bbcode":"disabled",
|
||||
"mstdn.y-zu.org_markdown":"disabled",
|
||||
"imastodon.net":"instance",
|
||||
"imastodon.net_name":"im@stodon",
|
||||
"imastodon.net_letters":"500",
|
||||
"imastodon.net_bbcode":"disabled",
|
||||
"imastodon.net_markdown":"disabled",
|
||||
"imastodon.net_home":"オフィス",
|
||||
"imastodon.net_local":"楽屋",
|
||||
"imastodon.net_notification":"ホワイトボード",
|
||||
"imastodon.net_public":"ライブステージ",
|
||||
"mstdn.osaka":"instance",
|
||||
"mstdn.osaka_name":"大阪丼",
|
||||
"mstdn.osaka_letters":"500",
|
||||
"mstdn.osaka_bbcode":"disabled",
|
||||
"mstdn.osaka_markdown":"disabled",
|
||||
"mstdn.osaka_home":"ウチ",
|
||||
"mstdn.osaka_local":"近所",
|
||||
"mstdn.osaka_notification":"あめちゃん",
|
||||
"mstdn.osaka_public":"新世界",
|
||||
"mstdn.kemono-friends.info":"instance",
|
||||
"mstdn.kemono-friends.info_name":"ますとどんちほー",
|
||||
"mstdn.kemono-friends.info_letters":"1024",
|
||||
"mstdn.kemono-friends.info_bbcode":"disabled",
|
||||
"mstdn.kemono-friends.info_markdown":"disabled",
|
||||
"mstdn.kemono-friends.info_home":"なわばり",
|
||||
"mstdn.kemono-friends.info_local":"ますとどんちほー",
|
||||
"mstdn.kemono-friends.info_notification":"ねえねえ!",
|
||||
"mstdn.kemono-friends.info_public":"ジャパリパーク"
|
||||
}
|
Reference in New Issue
Block a user