Merge pull request #80 from cutls/WIP-(before-CI)

Wip (before ci)
This commit is contained in:
Cutls 2019-05-26 20:44:18 +09:00 committed by GitHub
commit d4a246ea59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
111 changed files with 21569 additions and 17877 deletions

View File

@ -1,24 +1,16 @@
language: objective-c
cache:
directories:
- node_modules
env:
- NODE_VERSION="10.15.2"
before_install:
- git clone https://github.com/creationix/nvm.git /tmp/.nvm
- source /tmp/.nvm/nvm.sh
- nvm install $NODE_VERSION
- nvm use --delete-prefix $NODE_VERSION
- node --version
os:
- osx
- linux
- windows
language: node_js
node_js:
- '10.15.2'
script: node -v
before_deploy:
- npm install electron-builder -g
- cd app
- npm install
- electron-builder --mac --x64 -p never
- mv ../build/TheDesk*.dmg ../TheDesk.dmg
- mv ../build/TheDesk*.zip ../TheDesk-darwin-x64.zip
- cd ../
- npm build
deploy:
provider: releases
# GitHub にリリースするための API KEY を暗号化した値
@ -26,11 +18,11 @@ deploy:
secure: jndR02p5KRTtcJk18b3YsXL2cC+yzEf1AOqXdpWciF8f3lO5oY01jlxd17xdHIcK7VywSsLVZpLToSdqAoIEhJ5OxEQ/FmA3FlmbwwD6ou13gLa4VGIvsBHveCmKGjVu0Z++atIy76tZYU1SOWFWv4B0ZhnVz2ca2VZynvLgw3YNsPJH7rHO966GXgRkGYJAJ4UvLg3sj/iztVh2FSfbUj5IGO1e/JHJO63wAo1MSQtRjkutVgl/djnBLC6vbL4YHkM3Ynpkx/YQEcxwrmeY0Ra8D5yYDq4MNIDMmZahWC+k4u2eA2Cj2ifBFNxbZvTN75vLwRBp6DsTNHsiqkXrSPDBdNeet31RbwTQ6LtsK8jqmL4S/59dmLcj7uCU2WxyBLPbJdbdZWlqW2ZQvfQY8QVAYy7S3MiHQWQN0oP5wqXk89jcgR42ig/zsqFNPpXHM4mExR7l/gDLPg0j9c3XEF6sWtk3FmJN1i4+B+9kn09b6UKlV7EFPKp8XcFNrz4ZcE9/I8lKwsqLVG2jAXIk7Z9LwDRcAmK5eG348X5zwFtOY6raKIvRw2cn92bPnEI+55v8A4WANS2647GFTgxHj30D0d/sOZmJ5BS34zpdWTgE0AlKg7sOqkncjqoW5J5zCh5Ow7b3KXvEvlAts44mAag8tZTectxMP4iguXvTnv4=
# Releases ページにアップロードするファイル
file:
- TheDesk.dmg
- TheDesk-darwin-x64.zip
- build/TheDesk*.*
skip_cleanup: true
on:
repo: cutls/TheDesk
tags: true
branches:
only:
- master

View File

@ -1,27 +1,30 @@
# TheDesk
<img src="https://thedesk.top/img/top.png" width="300" align="left">
<img src="https://thedesk.top/img/desk.png" width="150" align="right">
TheDesk Minami (19)はVueで書き直します(rewrite-vueブランチ参照)。18までのバージョンはTheDesk Kawaii (20)以降で継続します。
# TheDesk
[![Build Status](https://travis-ci.org/cutls/TheDesk.svg?branch=master)](https://travis-ci.org/cutls/TheDesk)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/thedesk/localized.svg)](https://translate.thedesk.top/project/thedesk)
[![Version](https://flat.badgen.net/github/release/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases)
[![Download](https://flat.badgen.net/github/assets-dl/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases)
![Contributors](https://flat.badgen.net/github/contributors/cutls/TheDesk)
Mastodon/Misskey client for PC(Windows/Linux/macOS)
オープンソースSNSマストドン/MisskeyのWindows/Linuxクライアント
Download:[TheDesk](https://thedesk.top)
オープンソースSNSマストドン/MisskeyのPC向けクライアント[日本語はこちら](README_ja.md)
Contact me(bug report...):GitHub Issues, mention to [Cutls@kirishima.cloud](https://kirishima.cloud/@Cutls) or toot with #Desk
Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge/?site=thedesk.top)](https://status.cutls.com)
バグレポートなど:GitHub Issuesや[Cutls@kirishima.cloud](https://kirishima.cloud/@Cutls)へのリプ,または#Deskでトゥートして下さい.
<a href="https://www.patreon.com/cutls"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160"></a>
![Screenshots1](https://thedesk.top/img/scr1.png)
### Contribute/コントリビュート
## Contribute
Please make a pull request to ***WIP(before CI)*** brunch
***WIP(before CI)*** ブランチにプルリクエストをお願いします。
Please make a pull request to ***WIP(before CI)*** brunch.
## License/ライセンス
## License
[GNU General Public License v3.0](https://github.com/cutls/TheDesk/blob/master/LICENSE)
The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/)/アイコンは[クリエイティブ・コモンズ 表示-非営利-継承](https://creativecommons.org/licenses/by-nc-sa/4.0/)で提供されています。
The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/)
[Press Kit](https://dl.thedesk.top/press/TheDesk+PressKit.zip)
* [PNG](https://dl.thedesk.top/press/TheDesk.png)
@ -29,27 +32,25 @@ The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.o
* [ico](https://dl.thedesk.top/press/TheDesk.ico)
* [icns](https://dl.thedesk.top/press/TheDesk.icns)
The default sound of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/)
The default sounds of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/)
## Terms of Use/利用規約
## Terms of Use
* [利用規約(Terms of Use(ja))](https://thedesk.top/tos.html)
* [プライバシーポリシー(Privacy Policy(ja))](https://thedesk.top/priv.html)
## Language/言語
## Language
* 日本語(Japanese)
* English(英語)
* English
### Translation/翻訳
### Translation
Crowdin project is available! Visit: https://translate.thedesk.top
Crowdinから翻訳に参加してみませんか: https://translate.thedesk.top
## Requirement
## Requirement/環境
* Electron 3.0.10(install yourself)
* Electron 4.2 or above(install yourself)
* electron-dl(in package.json)
* Jimp(in package.json)
* font-manager(in package.json)
@ -60,24 +61,21 @@ Crowdinから翻訳に参加してみませんか: https://translate.thedesk.
* sumchecker(in package.json)
* Ability to read unformated files!(install yourself)
## Contributors/主なコントリビューター
## Contributors
macOSビルダー
Build for macOS
* [とねぢ](https://minohdon.jp/@toneji)
* [toneji](https://minohdon.jp/@toneji)
Linuxビルダー
Build for Linux
* [ぽぷんじゃ](https://popon.pptdn.jp/@popn_ja)
* [popn_ja](https://popon.pptdn.jp/@popn_ja)
iTunes NowPlayingにアルバムアートワークを付けてくれた人
Fellow coder
* [kPherox](https://www.kr-kp.com/)
## Build/ビルド
Misskey(misskey.xyz) application token is not in cutls/TheDesk
Misskey(misskey.xyz)のトークンは含まれておりません。
## Build
```sh
git clone https://github.com/cutls/TheDesk
@ -86,29 +84,24 @@ npm install
npm install --only=dev
```
### electron-builder(推奨)
### electron-builder(Recommended)
Use npm scripts.
npm scriptsを利用します
```sh
# Build for current platform
# 実行している環境向けにビルド
npm run build
# Select build target
# ターゲットを指定してビルド
## Windows
npm run build:win
## Windows and Linux (The macOS target should run on macOS. So, this option hasn't include the build for macOS)
## macOS向けのビルドにはmacOSで実行する必要があるためこのコマンドではビルドされません
npm run build:all
```
Config is all on package.json
ビルド設定はすべてpackage.jsonに記載しています。
### electron-packager(非推奨)
### electron-packager
`npm install --save-dev electron-rebuild`
Linux/macOS
@ -117,11 +110,8 @@ Windows
`.\node_modules\.bin\electron-rebuild.cmd`
To install Python 2.x and Visual C++ for Windows, before running `npm install --save-dev electron-rebuild`
WindowsでPython 2.xやVisualC++を一発でインストールできるツールもあります(`npm install --save-dev electron-rebuild`の前に)
`npm install --global windows-build-tools`
日本語話者向けですが、macOSビルドにはXCodeが要るとの情報があります。([とねぢ](https://minohdon.jp/@toneji)氏談)
Windows
`electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --win32metadata.CompanyName="TheDesk&Cutls.com" --win32metadata.FileDescription="TheDesk" --win32metadata.OriginalFilename="TheDesk" --win32metadata.InternalName="TheDesk" --win32metadata.ProductName="TheDesk" --platform=win32 --arch=all --electron-version=4.0.5 --icon=.\app\thedesk.ico --overwrite`
Linux
@ -134,9 +124,3 @@ macOS
Did you find a bug with Pleroma accounts?
Pleroma **does not** follow Mastodon API rules completely although Pleroma developers say so.
Please write issues to improve TheDesk affinity with Pleroma.
Pleromaは、Mastodon APIとの互換性を謳っていますが、実際には様々な差異があり、TheDeskで不具合が発生することがあります。
Issuesに書いてある問題についてはなるべく対処しますので、ぜひお知らせください。
## See also/詳しく
[TheDesk - マストドン日本語ウィキ](https://ja.mstdn.wiki/TheDesk)

132
README_ja.md Normal file
View File

@ -0,0 +1,132 @@
<img src="https://thedesk.top/img/top.png" width="300" align="left">
<img src="https://thedesk.top/img/desk.png" width="150" align="right">
# TheDesk
[![Build Status](https://travis-ci.org/cutls/TheDesk.svg?branch=master)](https://travis-ci.org/cutls/TheDesk)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/thedesk/localized.svg)](https://translate.thedesk.top/project/thedesk)
[![Version](https://flat.badgen.net/github/release/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases)
[![Download](https://flat.badgen.net/github/assets-dl/cutls/TheDesk)](https://github.com/cutls/TheDesk/releases)
![Contributors](https://flat.badgen.net/github/contributors/cutls/TheDesk)
Mastodon/Misskey client for PC(Windows/Linux/macOS)
オープンソースSNSマストドン/MisskeyのPC向けクライアント
Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge/?site=thedesk.top)](https://status.cutls.com)
[Pixiv FANBOX](https://www.pixiv.net/fanbox/creator/28105985)
![Screenshots1](https://thedesk.top/img/scr1.png)
## コントリビュート
***WIP(before CI)*** ブランチにプルリクエストをお願いします。
## ライセンス
[GNU General Public License v3.0](https://github.com/cutls/TheDesk/blob/master/LICENSE)
アイコンは[クリエイティブ・コモンズ 表示-非営利-継承](https://creativecommons.org/licenses/by-nc-sa/4.0/)で提供されています。
[プレスキット](https://dl.thedesk.top/press/TheDesk+PressKit.zip)
* [PNG](https://dl.thedesk.top/press/TheDesk.png)
* [Monotone SVG](https://dl.thedesk.top/press/TheDesk.svg)
* [ico](https://dl.thedesk.top/press/TheDesk.ico)
* [icns](https://dl.thedesk.top/press/TheDesk.icns)
標準の通知音は [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/) で提供されています。
## 利用規約
* [利用規約](https://thedesk.top/tos.html)
* [プライバシーポリシー](https://thedesk.top/priv.html)
## 言語
* 日本語
* English(英語)
### 翻訳
Crowdinから翻訳に参加してみませんか: https://translate.thedesk.top
## 環境
* Electron 4.2以上(自分で入れて)
* electron-dl(in package.json)
* Jimp(in package.json)
* font-manager(in package.json)
* Python 2.x(自分で入れて)
* VisualC++(Windows)(自分で入れて)
* itunes-nowplaying-mac(macOS向け)(in package.json)
* node-notifier(in package.json)
* sumchecker(in package.json)
* Ability to read unformated files!(自分で入れて)
## 主なコントリビューター
macOSビルダー
* [とねぢ](https://minohdon.jp/@toneji)
Linuxビルダー
* [ぽぷんじゃ](https://popon.pptdn.jp/@popn_ja)
iTunes NowPlayingにアルバムアートワークを付けてくれた人
* [kPherox](https://www.kr-kp.com/)
## ビルド
```sh
git clone https://github.com/cutls/TheDesk
cd TheDesk/app
npm install
npm install --only=dev
```
### electron-builder(推奨)
npm scriptsを利用します
```sh
# 実行している環境向けにビルド
npm run build
# ターゲットを指定してビルド
## Windows
npm run build:win
## macOS向けのビルドにはmacOSで実行する必要があるためこのコマンドではビルドされません
npm run build:all
```
ビルド設定はすべてpackage.jsonに記載しています。
### electron-packager(非推奨)
`npm install --save-dev electron-rebuild`
Linux/macOS
`./node_modules/.bin/electron-rebuild`
Windows
`.\node_modules\.bin\electron-rebuild.cmd`
WindowsでPython 2.xやVisualC++を一発でインストールできるツールもあります(`npm install --save-dev electron-rebuild`の前に)
`npm install --global windows-build-tools`
日本語話者向けですが、macOSビルドにはXCodeが要るとの情報があります。([とねぢ](https://minohdon.jp/@toneji)氏談)
Windows
`electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --win32metadata.CompanyName="TheDesk&Cutls.com" --win32metadata.FileDescription="TheDesk" --win32metadata.OriginalFilename="TheDesk" --win32metadata.InternalName="TheDesk" --win32metadata.ProductName="TheDesk" --platform=win32 --arch=all --electron-version=4.0.5 --icon=.\app\thedesk.ico --overwrite`
Linux
`electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --platform=linux --arch=x64,ia32 --electron-version=4.0.5 --overwrite`
macOS
`electron-packager ./app TheDesk --executable-name="TheDesk" --app-copyright="Copyright (c) TheDesk 2018 Cutls.com 2015 All Right Reserved" --platform=darwin --arch=all --electron-version=4.0.5 --icon=./app/icon.icns --overwrite`
## Pleromaのサポート
Pleromaは、Mastodon APIとの互換性を謳っていますが、実際には様々な差異があり、TheDeskで不具合が発生することがあります。
Issuesに書いてある問題についてはなるべく対処しますので、ぜひお知らせください。
## 詳しく
[TheDesk - マストドン日本語ウィキ](https://ja.mstdn.wiki/TheDesk)

View File

@ -1,5 +1,6 @@
<!doctype html>
<html lang="ja">
<head>
<title>TheDesk</title>
<meta content="width=device-width,initial-scale=1.0" name="viewport">
@ -15,9 +16,12 @@ body{
-webkit-app-region: drag;
cursor: move;
}
a,button{
a,
button {
-webkit-app-region: no-drag;
}
.container {
width: 100%;
display: grid;
@ -69,6 +73,7 @@ a,button{
}
</style>
</head>
<body class="center " style="overflow:hidden">
<script type="text/javascript" src="./js/common/jquery.js"></script>
<script type="text/javascript" src="./js/platform/first-not-view.js"></script>
@ -89,21 +94,23 @@ a,button{
</div>
<div class="cp">Copyright &copy; TheDesk 2018<br>
Main developer(author): <a href="https://cutls.com/@Cutls" target="_blank">Cutls P</a><br>
Thanks:<a href="https://minohdon.jp/@toneji" target="_blank">toneji</a>/<a href="https://popon.pptdn.jp/@popn_ja" target="_blank">popn_ja</a>/<a href="https://pawoo.net/@kPherox" target="_blank">kPherox</a> and all users
<img draggable="false" style="width:0.8rem;top: 1px;margin-left: 1px;position: relative;" alt="❤️" title=":heart:" src="https://twemoji.maxcdn.com/2/72x72/2764.png">
Thanks:<a href="https://minohdon.jp/@toneji" target="_blank">toneji</a>/<a
href="https://popon.pptdn.jp/@popn_ja" target="_blank">popn_ja</a>/<a href="https://pawoo.net/@kPherox"
target="_blank">kPherox</a> and all users
<img draggable="false" style="width:0.8rem;top: 1px;margin-left: 1px;position: relative;" alt="❤️"
title=":heart:" src="https://twemoji.maxcdn.com/2/72x72/2764.png">
<br><a href="https://thedesk.top" target="_blank">Web site</a></div>
<button onclick="window.close()" class="btn waves-effect indigo" style="width:calc(100% - 10px);"><i class="material-icons left">close</i>Close</button>
<button onclick="window.close()" class="btn waves-effect indigo" style="width:calc(100% - 10px);"><i
class="material-icons left">close</i>Close</button>
<script type="text/javascript" src="./js/ui/theme.js"></script>
<script>
$("#now").text(localStorage.getItem("ver"));
var electron = require("electron");
var remote = electron.remote;
const shell = electron.shell;
//JSON.parse(fs.readFileSync(info_path, 'utf8'));
console.log(process.versions);
$("#node").text(process.version);
$("#chrome").text(process.versions.chrome);
$("#electron").text(process.versions.electron);
$("#node").text(remote.process.version);
$("#chrome").text(remote.process.versions.chrome);
$("#electron").text(remote.process.versions.electron);
if (location.search) {
var m = location.search.match(/\?ver=([a-zA-Z-0-9.]+)/);
var ver = m[1];

View File

@ -1,5 +1,6 @@
<!doctype html>
<html lang="ja">
<head>
<title>Adobe Photo Editor - TheDesk</title>
<meta content="width=device-width,initial-scale=1.0" name="viewport">
@ -17,32 +18,38 @@
padding: 24px 0;
text-align: center;
}
#cb-drag p {
font-weight: bold;
text-align: center;
}
#cb-file {
cursor: pointer;
}
#cb-display {
margin-bottom: 0;
}
#cb-display p {
margin-top: 8px;
margin-bottom: 0;
line-height: 1.4;
}
.cb-div {
padding: 16px;
margin-bottom: 8px;
}
.cb-image {
cursor: pointer;
}
</style>
<meta charset="utf-8">
</head>
<body id="mainView">
<script type="text/javascript" src="./js/common/jquery.js"></script>
<script type="text/javascript" src="./js/platform/first-not-view.js"></script>
@ -190,7 +197,6 @@ function launchEditor(id, src) {
}
function editPhoto() {
//console.log(this);
var id = this.getAttribute("id");
var src = this.getAttribute("src");
launchEditor(id, src);
@ -257,4 +263,5 @@ photoEditor.init();
<script type="text/javascript" src="./js/ui/theme.js"></script>
<script type="text/javascript" src="./js/platform/end.js"></script>
</body>
</html>

105
app/build.js Normal file
View File

@ -0,0 +1,105 @@
const builder = require("electron-builder");
const fs = require('fs');
const os = process.platform;
const Platform = builder.Platform
const Arch = builder.Arch
const targets = new Map();
const archToType = new Map();
const pref = {
productName: "TheDesk",
appId: "top.thedesk",
asarUnpack: [
"node_modules/itunes-nowplaying-mac"
],
directories: {
output: "../build/"
},
win: {
icon: "build/thedesk.ico",
target: [
"nsis",
"portable",
"appx"
]
},
appx: {
identityName: "53491Cutls.TheDesk",
applicationId: "Cutls.TheDesk",
publisherDisplayName: "Cutls",
publisher: "CN=629757F5-A5EE-474F-9562-B304A89A9FD1",
languages: [
"JA-JP",
"EN-US"
]
},
nsis: {
oneClick: false,
allowToChangeInstallationDirectory: true
},
linux: {
icon: "build/icons",
target: [
"zip",
"snap"
],
category: "Network"
},
mac: {
target: [
"dmg",
"zip"
]
},
electronDownload: {
version: "5.0.1"
},
electronVersion: "5.0.1"
}
const json = JSON.parse(fs.readFileSync("package.json", 'utf8'));
const version = json.version;
if (os == "win32") {
archToType.set(Arch.ia32, []);
targets.set(Platform.WINDOWS, archToType);
} else if (os == "linux") {
archToType.set(Arch.x64, []);
archToType.set(Arch.ia32, []);
targets.set(Platform.LINUX, archToType);
} else if (os == "darwin") {
archToType.set(Arch.x64, []);
targets.set(Platform.MAC, archToType);
} else {
return false
}
builder.build({
targets: targets,
config: pref
})
.then(() => {
if (os == "win32") {
fs.renameSync('../build/TheDesk ' + version + '.exe', '../build/TheDesk-ia32.exe');
fs.renameSync('../build/TheDesk Setup ' + version + '.exe', '../build/TheDesk-setup-ia32.exe');
retry()
}
})
.catch((error) => {
// handle error
})
function retry(){
const targetsAlt = new Map();
const archToTypeAlt = new Map();
targetsAlt.set(Platform.WINDOWS, archToTypeAlt);
archToTypeAlt.set(Arch.x64, []);
builder.build({
targets: targetsAlt,
config: pref
})
.then(() => {
fs.renameSync('../build/TheDesk Setup ' + version + '.exe', '../build/TheDesk-setup.exe');
fs.renameSync('../build/TheDesk ' + version + '.exe', '../build/TheDesk.exe');
})
.catch((error) => {
// handle error
})
}

View File

@ -1,2 +1,4 @@
/*このソフトについてを押した時に読み込まれます*/
body{font-family:Open Sans;}
body {
font-family: Open Sans;
}

View File

@ -5,9 +5,15 @@
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');
src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
font-family: "FontAwesome";
src: url("../fonts/fontawesome-webfont.eot?v=4.7.0");
src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0")
format("embedded-opentype"),
url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),
url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),
url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),
url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular")
format("svg");
font-weight: normal;
font-style: normal;
}
@ -60,9 +66,9 @@
left: -1.85714286em;
}
.fa-border {
padding: .2em .25em .15em;
padding: 0.2em 0.25em 0.15em;
border: solid 0.08em #eeeeee;
border-radius: .1em;
border-radius: 0.1em;
}
.fa-pull-left {
float: left;
@ -71,10 +77,10 @@
float: right;
}
.fa.fa-pull-left {
margin-right: .3em;
margin-right: 0.3em;
}
.fa.fa-pull-right {
margin-left: .3em;
margin-left: 0.3em;
}
/* Deprecated as of 4.4.0 */
.pull-right {
@ -84,10 +90,10 @@
float: left;
}
.fa.pull-left {
margin-right: .3em;
margin-right: 0.3em;
}
.fa.pull-right {
margin-left: .3em;
margin-left: 0.3em;
}
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;

View File

@ -1,5 +1,6 @@
/*共通CSS*/
html,body{
html,
body {
/*transform: translate3d(0,0,0);*/
overflow: hidden;
user-select: none;
@ -42,14 +43,16 @@ option {
color: white;
z-index: 9999;
}
#imagemodal, #videomodal {
#imagemodal,
#videomodal {
display: none;
max-width: 100vw;
max-height: 100vh;
position: fixed;
z-index: 9;
}
#videomodal, #tootmodal {
#videomodal,
#tootmodal {
background-color: var(--modal);
}
#imagemodal .modal-content {
@ -72,7 +75,9 @@ option {
min-width: 0 !important;
margin-left: 5px !important;
}
.bbcode-pulse-loadings, .bbcode-pulse-loading, .fa-pulse {
.bbcode-pulse-loadings,
.bbcode-pulse-loading,
.fa-pulse {
display: inline-block;
animation-duration: 3s;
animation-fill-mode: both;
@ -80,10 +85,13 @@ option {
animation-name: pulse;
}
@keyframes pulse {
from, 50%, to {
from,
50%,
to {
opacity: 1;
}
25%, 75% {
25%,
75% {
opacity: 0;
}
}
@ -119,7 +127,8 @@ option {
animation-iteration-count: infinite;
animation-name: shake;
}
code:before, .pre:before {
code:before,
.pre:before {
content: "Code";
font-size: 1.8rem;
line-height: 1em;
@ -129,7 +138,8 @@ code:before, .pre:before {
right: 0;
top: 0;
}
code, pre {
code,
pre {
color: white;
display: block;
border-left: 5px solid;
@ -145,10 +155,12 @@ code, pre {
border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px;
}
blockquote, .quote p {
blockquote,
.quote p {
margin: 0;
}
blockquote, .quote {
blockquote,
.quote {
color: black;
background-color: #ddd;
padding: 1em 1em 1em;
@ -157,7 +169,8 @@ blockquote, .quote {
border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px;
}
blockquote:before, .quote:before {
blockquote:before,
.quote:before {
content: "Quote";
font-size: 1.8rem;
line-height: 1em;
@ -222,7 +235,7 @@ blockquote:before, .quote:before {
font-size: 2rem;
}
.radio {
font-family:'Baloo Bhai'
font-family: "Baloo Bhai";
}
#pip {
z-index: 504;
@ -252,7 +265,7 @@ blockquote:before, .quote:before {
background-color: var(--modal);
}
#releasenote li {
list-style-type: disc
list-style-type: disc;
}
@media only screen and (min-width: 993px) {
#toast-container {
@ -286,7 +299,8 @@ blockquote:before, .quote:before {
opacity: 0;
}
}
.collapsible-header,.tabs{
.collapsible-header,
.tabs {
background-color: var(--subcolor);
}
.modal-footer {
@ -353,7 +367,6 @@ blockquote:before, .quote:before {
#tltype {
display: flex;
flex-wrap: wrap;
}
#tltype .type {
display: flex;
@ -377,7 +390,6 @@ blockquote:before, .quote:before {
position: relative;
color: var(--beforehover);
left: -15px;
}
.drag-bar {
cursor: move;
@ -392,7 +404,13 @@ blockquote:before, .quote:before {
padding: 4px;
}
#something-wrong {
width:100%; height:100%; position:absolute; display:flex; justify-content: center; align-items:center
flex-direction: column;
width: 100%;
height: 100%;
position: absolute;
display: flex;
justify-content: center;
align-items: center;
}
/*スクロールバー*/

1490
app/css/materialize.css vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -20,7 +20,6 @@
position: absolute;
right: 2px;
top: 4px;
}
.more-show {
display: none;
@ -44,7 +43,9 @@
#sch-box input {
width: auto;
}
.picker__close, .picker__today, .picker__clear {
.picker__close,
.picker__today,
.picker__clear {
color: #26a69a !important;
}
.cw {
@ -54,7 +55,6 @@
filter: blur(50px);
}
#emoji {
}
#suggest {
max-height: 300px;
@ -93,10 +93,14 @@
display: flex;
}
#toot-post-btn {
width:calc(100% - 10px); padding:0; margin-top:10px;
width: calc(100% - 10px);
padding: 0;
margin-top: 10px;
}
#toot-sec-btn {
width:30px; padding:0; margin-top:10px;
width: 30px;
padding: 0;
margin-top: 10px;
}
#left-side {
float: left;
@ -109,7 +113,6 @@
padding: 5px;
}
#poll {
}
.poll-provider {
position: absolute;

View File

@ -1,4 +1,3 @@
.drag-content {
text-overflow: ellipsis;
cursor: move;
@ -10,7 +9,7 @@
padding: 3px;
display: grid;
grid-template-columns: 43px 1fr 60px;
grid-template-areas: 'sorticon sorttitle sorttitle' 'sorticon sortacct sortaction';
grid-template-areas: "sorticon sorttitle sorttitle" "sorticon sortacct sortaction";
}
.sorticon {
grid-area: sorticon;

View File

@ -1,14 +1,13 @@
/*TL CSS(ただしBBCode pulse:master.css/spin:font-awesome*/
#main {
display:flex;
width: 100vw;
height: calc(100vh - 40px);
}
#timeline-container {
overflow-x: scroll;
overflow-y: hidden;
display: flex;
height: calc(100vh - 40px);
flex-grow:4;
height: 100%;
}
#bottom {
position: absolute;
@ -87,8 +86,13 @@
font-size: 15px;
}
@media screen and (max-width: 890px) {
.btnsgroup .grouptitle{ display: none; }
#tips,#tips-menu{ display: none; }
.btnsgroup .grouptitle {
display: none;
}
#tips,
#tips-menu {
display: none;
}
}
iframe {
max-width: 100%;
@ -120,22 +124,54 @@ iframe {
.bbcode_FTL {
display: none;
}
.marquee {
width: 100%;
padding: .5em 0;
overflow: hidden;
margin-bottom: 0;
position: relative;
}
.marquee .bbcode-marq-lateral {
margin: 0;
padding-left: 100%;
display: inline-block;
white-space: nowrap;
animation-name: marquee;
animation-timing-function: linear;
animation-duration: 10s;
animation-iteration-count: infinite;
}
@keyframes marquee {
0% {
-webkit-transform: translate(0);
transform: translate(0);
}
99%, 100% {
-webkit-transform: translate(-100%);
transform: translate(-100%);
}
}
.boxIn {
display: flex;
flex-direction: column;
height: 100%;
border: thin solid gray;
overflow: hidden;
}
.box .pin,#his-data .pin{
.box .pin,
#his-data .pin {
display: none;
}
.user {
cursor: text;
font-size: 1.1rem;
}
.emoji,.emoji-img{
.emoji,
.emoji-img {
width: 15px;
}
.area-toot .emoji,.area-toot .emoji-img{
.area-toot .emoji,
.area-toot .emoji-img {
width: 20px;
vertical-align: middle;
margin: -1px 0;
@ -145,9 +181,10 @@ iframe {
}
.tl-box {
position: relative;
height:calc(100% - 40px);
flex: 1;
overflow-y: scroll;
overflow-x:hidden }
overflow-x: hidden;
}
.additional {
overflow-x: scroll;
width: 100%;
@ -170,9 +207,14 @@ iframe {
width: 100%;
display: grid;
grid-template-columns: 43px 2fr 1fr;
grid-template-areas: 'notice notice notice' 'icon display_name display_name' 'icon toot toot' 'vis additional additional' 'actions actions side';
grid-template-areas: "notice notice notice" "icon display_name display_name" "icon toot toot" "vis additional additional" "actions actions side";
}
.cvo h1,.cvo h2,.cvo h3,.cvo h4,.cvo h5,.cvo h6{
.cvo h1,
.cvo h2,
.cvo h3,
.cvo h4,
.cvo h5,
.cvo h6 {
margin: 0;
}
@ -199,7 +241,7 @@ text-overflow: ellipsis;
display: flex;
justify-content: space-between;
width: 100%;
flex-wrap:nowrap
flex-wrap: nowrap;
}
.flex-name {
max-width: calc(100% - 60px);
@ -253,7 +295,7 @@ grid-area: toot;
.quote-renote {
display: grid;
grid-template-columns: 43px 2fr 1fr;
grid-template-areas: 'ricon ruser' 'ricon rtext';
grid-template-areas: "ricon ruser" "ricon rtext";
border: 1px solid;
margin-top: 3px;
padding: 1px;
@ -370,7 +412,7 @@ p:not(:last-child){
display: grid;
grid-template-columns: 40px 48px 1fr 24px;
grid-template-rows: 30px 30px;
grid-template-areas: 'notice notice_name notice_name a2' 'notice a1 sta a3' 'notf-box notf-box notf-box notf-box';
grid-template-areas: "notice notice_name notice_name a2" "notice a1 sta a3" "notf-box notf-box notf-box notf-box";
}
.emp {
font-weight: bold;
@ -456,7 +498,9 @@ p:not(:last-child){
border: thin solid gray;
border-bottom: 2px solid white;
grid-area: notf-box;
box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3), 0px -10px 10px 0px rgba(0,0,0,0.3) inset;
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14),
0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3),
0px -10px 10px 0px rgba(0, 0, 0, 0.3) inset;
}
#src-contents {
min-height: 100px;
@ -493,19 +537,19 @@ p:not(:last-child){
}
.fa-2x > .emoji-img {
width: 36px !important;
height: 36px!important
height: 36px !important;
}
.fa-3x > .emoji-img {
width: 54px !important;
height: 54px!important
height: 54px !important;
}
.fa-4x > .emoji-img {
width: 72px !important;
height: 72px!important
height: 72px !important;
}
.fa-5x > .emoji-img {
width: 90px !important;
height: 90px!important
height: 90px !important;
}
#lists-user {
overflow-y: scroll;
@ -529,7 +573,8 @@ p:not(:last-child){
background-color: var(--color);
}
.jump {
display: inline-block; animation: jump 0.75s linear infinite;
display: inline-block;
animation: jump 0.75s linear infinite;
}
.img-link {
position: relative;
@ -601,4 +646,3 @@ p:not(:last-child){
animation-duration: 0.1s;
animation-name: fadeInDown;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
/*アイコンをクリックした時とかにでてくるユーザーデータ*/
#his-data {
background-repeat: no-repeat;
background-image: url('../../loading.svg');
background-image: url("../../loading.svg");
overflow-y: hidden;
}
#his-name {
@ -42,13 +42,18 @@
height: 1.5rem;
}
.his-field-title {
height:1.5rem; padding:0; background-color:#757575; text-align:center;
height: 1.5rem;
padding: 0;
background-color: #757575;
text-align: center;
padding: 5px;
margin-bottom: 1px;
width: 30%;
}
.his-field-content {
height:1.5rem; padding:0; padding-left:5px;
height: 1.5rem;
padding: 0;
padding-left: 5px;
}
#his-data a span.ellipsis:after {
content: "...";
@ -67,7 +72,7 @@
.tab-content {
overflow-y: scroll;
overflow-x: hidden;
height: calc(100% - 240px)
height: calc(100% - 240px);
}
.my-data-width {
width: 10%;
@ -75,11 +80,12 @@
.active-back {
background-color: var(--active);
}
#his-name .emojione,#his-name .emoji-img{
#his-name .emojione,
#his-name .emoji-img {
width: 20px;
}
#his-plus-action .btn {
width:170px
width: 170px;
}
.custom-tabs {
display: flex;
@ -92,7 +98,9 @@
cursor: pointer;
}
#his-float-blocked {
display:flex; justify-content: center; align-items:center;
display: flex;
justify-content: center;
align-items: center;
font-size: 2rem;
width: 90%;
height: 100%;

View File

@ -0,0 +1,4 @@
directories:
output: dist
buildResources: build
electronVersion: 1.4.13

BIN
app/img/thinkingdesk.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -246,7 +246,8 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
r.dequeue(a, t);
}));
});
}, r.fn = r.prototype = { init: function (e) {
}, r.fn = r.prototype = {
init: function (e) {
if (e.nodeType) return this[0] = e, this; throw new Error("Not a DOM node.");
}, offset: function () {
var t = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : { top: 0, left: 0 }; return { top: t.top + (e.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0), left: t.left + (e.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0) };
@ -259,7 +260,8 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
e = e.apply(t),
a = this.offset(),
n = /^(?:body|html)$/i.test(e.nodeName) ? { top: 0, left: 0 } : r(e).offset(); return a.top -= parseFloat(t.style.marginTop) || 0, a.left -= parseFloat(t.style.marginLeft) || 0, e.style && (n.top += parseFloat(e.style.borderTopWidth) || 0, n.left += parseFloat(e.style.borderLeftWidth) || 0), { top: a.top - n.top, left: a.left - n.left };
} };var a = {};r.expando = "velocity" + new Date().getTime(), r.uuid = 0;for (var n = {}, o = n.hasOwnProperty, i = n.toString, s = "Boolean Number String Function Array Date RegExp Object Error".split(" "), l = 0; l < s.length; l++) {
}
}; var a = {}; r.expando = "velocity" + new Date().getTime(), r.uuid = 0; for (var n = {}, o = n.hasOwnProperty, i = n.toString, s = "Boolean Number String Function Array Date RegExp Object Error".split(" "), l = 0; l < s.length; l++) {
n["[object " + s[l] + "]"] = s[l].toLowerCase();
} r.fn.init.prototype = r.fn, e.Velocity = { Utilities: r };
}
@ -404,7 +406,8 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
}, r);
};
}(),
m = { isString: function (e) {
m = {
isString: function (e) {
return "string" == typeof e;
}, isArray: Array.isArray || function (e) {
return "[object Array]" === Object.prototype.toString.call(e);
@ -422,12 +425,15 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
for (var t in e) {
return !1;
} return !0;
} },
}
},
y = !1; if (e.fn && e.fn.jquery ? (f = e, y = !0) : f = t.Velocity.Utilities, 8 >= d && !y) throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity."); if (7 >= d) return void (jQuery.fn.velocity = jQuery.fn.animate); var h = 400,
v = "swing",
b = { State: { isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), isAndroid: /Android/i.test(navigator.userAgent), isGingerbread: /Android 2\.3\.[3-7]/i.test(navigator.userAgent), isChrome: t.chrome, isFirefox: /Firefox/i.test(navigator.userAgent), prefixElement: r.createElement("div"), prefixMatches: {}, scrollAnchor: null, scrollPropertyLeft: null, scrollPropertyTop: null, isTicking: !1, calls: [] }, CSS: {}, Utilities: f, Redirects: {}, Easings: {}, Promise: t.Promise, defaults: { queue: "", duration: h, easing: v, begin: a, complete: a, progress: a, display: a, visibility: a, loop: !1, delay: !1, mobileHA: !0, _cacheValues: !0 }, init: function (e) {
b = {
State: { isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), isAndroid: /Android/i.test(navigator.userAgent), isGingerbread: /Android 2\.3\.[3-7]/i.test(navigator.userAgent), isChrome: t.chrome, isFirefox: /Firefox/i.test(navigator.userAgent), prefixElement: r.createElement("div"), prefixMatches: {}, scrollAnchor: null, scrollPropertyLeft: null, scrollPropertyTop: null, isTicking: !1, calls: [] }, CSS: {}, Utilities: f, Redirects: {}, Easings: {}, Promise: t.Promise, defaults: { queue: "", duration: h, easing: v, begin: a, complete: a, progress: a, display: a, visibility: a, loop: !1, delay: !1, mobileHA: !0, _cacheValues: !0 }, init: function (e) {
f.data(e, "velocity", { isSVG: m.isSVG(e), isAnimating: !1, computedStyle: null, tweensContainer: null, rootPropertyValueCache: {}, transformCache: {} });
}, hook: null, mock: !1, version: { major: 1, minor: 2, patch: 2 }, debug: !1 };t.pageYOffset !== a ? (b.State.scrollAnchor = t, b.State.scrollPropertyLeft = "pageXOffset", b.State.scrollPropertyTop = "pageYOffset") : (b.State.scrollAnchor = r.documentElement || r.body.parentNode || r.body, b.State.scrollPropertyLeft = "scrollLeft", b.State.scrollPropertyTop = "scrollTop");var x = function () {
}, hook: null, mock: !1, version: { major: 1, minor: 2, patch: 2 }, debug: !1
}; t.pageYOffset !== a ? (b.State.scrollAnchor = t, b.State.scrollPropertyLeft = "pageXOffset", b.State.scrollPropertyTop = "pageYOffset") : (b.State.scrollAnchor = r.documentElement || r.body.parentNode || r.body, b.State.scrollPropertyLeft = "scrollLeft", b.State.scrollPropertyTop = "scrollTop"); var x = function () {
function e(e) {
return -e.tension * e.x - e.friction * e.v;
} function t(t, r, a) {
@ -451,15 +457,19 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
return u[e * (u.length - 1) | 0];
} : c;
};
}();b.Easings = { linear: function (e) {
}(); b.Easings = {
linear: function (e) {
return e;
}, swing: function (e) {
return .5 - Math.cos(e * Math.PI) / 2;
}, spring: function (e) {
return 1 - Math.cos(4.5 * e * Math.PI) * Math.exp(6 * -e);
} }, f.each([["ease", [.25, .1, .25, 1]], ["ease-in", [.42, 0, 1, 1]], ["ease-out", [0, 0, .58, 1]], ["ease-in-out", [.42, 0, .58, 1]], ["easeInSine", [.47, 0, .745, .715]], ["easeOutSine", [.39, .575, .565, 1]], ["easeInOutSine", [.445, .05, .55, .95]], ["easeInQuad", [.55, .085, .68, .53]], ["easeOutQuad", [.25, .46, .45, .94]], ["easeInOutQuad", [.455, .03, .515, .955]], ["easeInCubic", [.55, .055, .675, .19]], ["easeOutCubic", [.215, .61, .355, 1]], ["easeInOutCubic", [.645, .045, .355, 1]], ["easeInQuart", [.895, .03, .685, .22]], ["easeOutQuart", [.165, .84, .44, 1]], ["easeInOutQuart", [.77, 0, .175, 1]], ["easeInQuint", [.755, .05, .855, .06]], ["easeOutQuint", [.23, 1, .32, 1]], ["easeInOutQuint", [.86, 0, .07, 1]], ["easeInExpo", [.95, .05, .795, .035]], ["easeOutExpo", [.19, 1, .22, 1]], ["easeInOutExpo", [1, 0, 0, 1]], ["easeInCirc", [.6, .04, .98, .335]], ["easeOutCirc", [.075, .82, .165, 1]], ["easeInOutCirc", [.785, .135, .15, .86]]], function (e, t) {
}
}, f.each([["ease", [.25, .1, .25, 1]], ["ease-in", [.42, 0, 1, 1]], ["ease-out", [0, 0, .58, 1]], ["ease-in-out", [.42, 0, .58, 1]], ["easeInSine", [.47, 0, .745, .715]], ["easeOutSine", [.39, .575, .565, 1]], ["easeInOutSine", [.445, .05, .55, .95]], ["easeInQuad", [.55, .085, .68, .53]], ["easeOutQuad", [.25, .46, .45, .94]], ["easeInOutQuad", [.455, .03, .515, .955]], ["easeInCubic", [.55, .055, .675, .19]], ["easeOutCubic", [.215, .61, .355, 1]], ["easeInOutCubic", [.645, .045, .355, 1]], ["easeInQuart", [.895, .03, .685, .22]], ["easeOutQuart", [.165, .84, .44, 1]], ["easeInOutQuart", [.77, 0, .175, 1]], ["easeInQuint", [.755, .05, .855, .06]], ["easeOutQuint", [.23, 1, .32, 1]], ["easeInOutQuint", [.86, 0, .07, 1]], ["easeInExpo", [.95, .05, .795, .035]], ["easeOutExpo", [.19, 1, .22, 1]], ["easeInOutExpo", [1, 0, 0, 1]], ["easeInCirc", [.6, .04, .98, .335]], ["easeOutCirc", [.075, .82, .165, 1]], ["easeInOutCirc", [.785, .135, .15, .86]]], function (e, t) {
b.Easings[t[0]] = l.apply(null, t[1]);
});var S = b.CSS = { RegEx: { isHex: /^#([A-f\d]{3}){1,2}$/i, valueUnwrap: /^[A-z]+\((.*)\)$/i, wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/, valueSplit: /([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi }, Lists: { colors: ["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"], transformsBase: ["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"], transforms3D: ["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"] }, Hooks: { templates: { textShadow: ["Color X Y Blur", "black 0px 0px 0px"], boxShadow: ["Color X Y Blur Spread", "black 0px 0px 0px 0px"], clip: ["Top Right Bottom Left", "0px 0px 0px 0px"], backgroundPosition: ["X Y", "0% 0%"], transformOrigin: ["X Y Z", "50% 50% 0px"], perspectiveOrigin: ["X Y", "50% 50%"] }, registered: {}, register: function () {
}); var S = b.CSS = {
RegEx: { isHex: /^#([A-f\d]{3}){1,2}$/i, valueUnwrap: /^[A-z]+\((.*)\)$/i, wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/, valueSplit: /([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi }, Lists: { colors: ["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"], transformsBase: ["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"], transforms3D: ["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"] }, Hooks: {
templates: { textShadow: ["Color X Y Blur", "black 0px 0px 0px"], boxShadow: ["Color X Y Blur Spread", "black 0px 0px 0px 0px"], clip: ["Top Right Bottom Left", "0px 0px 0px 0px"], backgroundPosition: ["X Y", "0% 0%"], transformOrigin: ["X Y Z", "50% 50% 0px"], perspectiveOrigin: ["X Y", "50% 50%"] }, registered: {}, register: function () {
for (var e = 0; e < S.Lists.colors.length; e++) {
var t = "color" === S.Lists.colors[e] ? "0 0 0 1" : "255 255 255 1"; S.Hooks.templates[S.Lists.colors[e]] = ["Red Green Blue Alpha", t];
} var r, a, n; if (d) for (r in S.Hooks.templates) {
@ -486,54 +496,74 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
i = a[0],
s = a[1]; return r = S.Hooks.cleanRootPropertyValue(i, r), n = r.toString().match(S.RegEx.valueSplit), n[s] = t, o = n.join(" ");
} return r;
} }, Normalizations: { registered: { clip: function (e, t, r) {
switch (e) {case "name":
}
}, Normalizations: {
registered: {
clip: function (e, t, r) {
switch (e) {
case "name":
return "clip"; case "extract":
var a; return S.RegEx.wrappedValueAlreadyExtracted.test(r) ? a = r : (a = r.toString().match(S.RegEx.valueUnwrap), a = a ? a[1].replace(/,(\s+)?/g, " ") : r), a; case "inject":
return "rect(" + r + ")";}
return "rect(" + r + ")";
}
}, blur: function (e, t, r) {
switch (e) {case "name":
switch (e) {
case "name":
return b.State.isFirefox ? "filter" : "-webkit-filter"; case "extract":
var a = parseFloat(r); if (!a && 0 !== a) {
var n = r.toString().match(/blur\(([0-9]+[A-z]+)\)/i); a = n ? n[1] : 0;
} return a; case "inject":
return parseFloat(r) ? "blur(" + r + ")" : "none";}
return parseFloat(r) ? "blur(" + r + ")" : "none";
}
}, opacity: function (e, t, r) {
if (8 >= d) switch (e) {case "name":
if (8 >= d) switch (e) {
case "name":
return "filter"; case "extract":
var a = r.toString().match(/alpha\(opacity=(.*)\)/i); return r = a ? a[1] / 100 : 1; case "inject":
return t.style.zoom = 1, parseFloat(r) >= 1 ? "" : "alpha(opacity=" + parseInt(100 * parseFloat(r), 10) + ")";} else switch (e) {case "name":
return t.style.zoom = 1, parseFloat(r) >= 1 ? "" : "alpha(opacity=" + parseInt(100 * parseFloat(r), 10) + ")";
} else switch (e) {
case "name":
return "opacity"; case "extract":
return r; case "inject":
return r;}
} }, register: function () {
return r;
}
}
}, register: function () {
9 >= d || b.State.isGingerbread || (S.Lists.transformsBase = S.Lists.transformsBase.concat(S.Lists.transforms3D)); for (var e = 0; e < S.Lists.transformsBase.length; e++) {
!function () {
var t = S.Lists.transformsBase[e]; S.Normalizations.registered[t] = function (e, r, n) {
switch (e) {case "name":
switch (e) {
case "name":
return "transform"; case "extract":
return i(r) === a || i(r).transformCache[t] === a ? /^scale/i.test(t) ? 1 : 0 : i(r).transformCache[t].replace(/[()]/g, ""); case "inject":
var o = !1;switch (t.substr(0, t.length - 1)) {case "translate":
var o = !1; switch (t.substr(0, t.length - 1)) {
case "translate":
o = !/(%|px|em|rem|vw|vh|\d)$/i.test(n); break; case "scal": case "scale":
b.State.isAndroid && i(r).transformCache[t] === a && 1 > n && (n = 1), o = !/(\d)$/i.test(n); break; case "skew":
o = !/(deg|\d)$/i.test(n); break; case "rotate":
o = !/(deg|\d)$/i.test(n);}return o || (i(r).transformCache[t] = "(" + n + ")"), i(r).transformCache[t];}
o = !/(deg|\d)$/i.test(n);
}return o || (i(r).transformCache[t] = "(" + n + ")"), i(r).transformCache[t];
}
};
}();
} for (var e = 0; e < S.Lists.colors.length; e++) {
!function () {
var t = S.Lists.colors[e]; S.Normalizations.registered[t] = function (e, r, n) {
switch (e) {case "name":
switch (e) {
case "name":
return t; case "extract":
var o; if (S.RegEx.wrappedValueAlreadyExtracted.test(n)) o = n; else {
var i,
s = { black: "rgb(0, 0, 0)", blue: "rgb(0, 0, 255)", gray: "rgb(128, 128, 128)", green: "rgb(0, 128, 0)", red: "rgb(255, 0, 0)", white: "rgb(255, 255, 255)" }; /^[A-z]+$/i.test(n) ? i = s[n] !== a ? s[n] : s.black : S.RegEx.isHex.test(n) ? i = "rgb(" + S.Values.hexToRgb(n).join(" ") + ")" : /^rgba?\(/i.test(n) || (i = s.black), o = (i || n).toString().match(S.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g, " ");
} return 8 >= d || 3 !== o.split(" ").length || (o += " 1"), o; case "inject":
return 8 >= d ? 4 === n.split(" ").length && (n = n.split(/\s+/).slice(0, 3).join(" ")) : 3 === n.split(" ").length && (n += " 1"), (8 >= d ? "rgb" : "rgba") + "(" + n.replace(/\s+/g, ",").replace(/\.(\d)+(?=,)/g, "") + ")";}
return 8 >= d ? 4 === n.split(" ").length && (n = n.split(/\s+/).slice(0, 3).join(" ")) : 3 === n.split(" ").length && (n += " 1"), (8 >= d ? "rgb" : "rgba") + "(" + n.replace(/\s+/g, ",").replace(/\.(\d)+(?=,)/g, "") + ")";
}
};
}();
}
} }, Names: { camelCase: function (e) {
}
}, Names: {
camelCase: function (e) {
return e.replace(/-(\w)/g, function (e, t) {
return t.toUpperCase();
});
@ -545,7 +575,9 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
return e.toUpperCase();
}), m.isString(b.State.prefixElement.style[n])) return b.State.prefixMatches[e] = n, [n, !0];
} return [e, !1];
} }, Values: { hexToRgb: function (e) {
}
}, Values: {
hexToRgb: function (e) {
var t,
r = /^#?([a-f\d])([a-f\d])([a-f\d])$/i,
a = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i; return e = e.replace(r, function (e, t, r, a) {
@ -563,7 +595,8 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
e.classList ? e.classList.add(t) : e.className += (e.className.length ? " " : "") + t;
}, removeClass: function (e, t) {
e.classList ? e.classList.remove(t) : e.className = e.className.toString().replace(new RegExp("(^|\\s)" + t.split(" ").join("|") + "(\\s|$)", "gi"), " ");
} }, getPropertyValue: function (e, r, n, o) {
}
}, getPropertyValue: function (e, r, n, o) {
function s(e, r) {
function n() {
u && S.setPropertyValue(e, "display", "none");
@ -613,7 +646,8 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
return n = i(e).transformCache[t], "transformPerspective" === t ? (o = n, !0) : (9 === d && "rotateZ" === t && (t = "rotate"), void (r += t + n + " "));
}), o && (r = "perspective" + o + " " + r);
} S.setPropertyValue(e, "transform", r);
} };S.Hooks.register(), S.Normalizations.register(), b.hook = function (e, t, r) {
}
}; S.Hooks.register(), S.Normalizations.register(), b.hook = function (e, t, r) {
var n = a; return e = o(e), f.each(e, function (e, o) {
if (i(o) === a && b.init(o), r === a) n === a && (n = b.CSS.getPropertyValue(o, t)); else {
var s = b.CSS.setPropertyValue(o, t, r); "transform" === s[0] && b.CSS.flushTransformCache(o), n = s;
@ -685,18 +719,24 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
D = !1; if (W = d(z, M), M = W[0], Y = W[1], W = d(z, q), q = W[0].replace(/^([+-\/*])=/, function (e, t) {
return D = t, "";
}), G = W[1], M = parseFloat(M) || 0, q = parseFloat(q) || 0, "%" === G && (/^(fontSize|lineHeight)$/.test(z) ? (q /= 100, G = "em") : /^scale/.test(z) ? (q /= 100, G = "") : /(Red|Green|Blue)$/i.test(z) && (q = q / 100 * 255, G = "")), /[\/*]/.test(D)) G = Y; else if (Y !== G && 0 !== M) if (0 === q) G = Y; else {
n = n || h();var Q = /margin|padding|left|right|width|text|word|letter/i.test(z) || /X$/.test(z) || "x" === z ? "x" : "y";switch (Y) {case "%":
n = n || h(); var Q = /margin|padding|left|right|width|text|word|letter/i.test(z) || /X$/.test(z) || "x" === z ? "x" : "y"; switch (Y) {
case "%":
M *= "x" === Q ? n.percentToPxWidth : n.percentToPxHeight; break; case "px":
break; default:
M *= n[Y + "ToPx"];}switch (G) {case "%":
M *= n[Y + "ToPx"];
}switch (G) {
case "%":
M *= 1 / ("x" === Q ? n.percentToPxWidth : n.percentToPxHeight); break; case "px":
break; default:
M *= 1 / n[G + "ToPx"];}
}switch (D) {case "+":
M *= 1 / n[G + "ToPx"];
}
} switch (D) {
case "+":
q = M + q; break; case "-":
q = M - q; break; case "*":
q = M * q; break; case "/":
q = M / q;}l[z] = { rootPropertyValue: B, startValue: M, currentValue: M, endValue: q, unitType: G, easing: $ }, b.debug && console.log("tweensContainer (" + z + "): " + JSON.stringify(l[z]), o);
q = M / q;
}l[z] = { rootPropertyValue: B, startValue: M, currentValue: M, endValue: q, unitType: G, easing: $ }, b.debug && console.log("tweensContainer (" + z + "): " + JSON.stringify(l[z]), o);
} else b.debug && console.log("Skipping [" + I + "] due to a lack of browser support.");
} l.element = o;
} l.element && (S.Values.addClass(o, "velocity-animating"), R.push(l), "" === s.queue && (i(o).tweensContainer = l, i(o).opts = s), i(o).isAnimating = !0, V === w - 1 ? (b.State.calls.push([R, g, s, null, k.resolver]), b.State.isTicking === !1 && (b.State.isTicking = !0, c())) : V++);
@ -705,11 +745,13 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
s = f.extend({}, b.defaults, v),
l = {}; switch (i(o) === a && b.init(o), parseFloat(s.delay) && s.queue !== !1 && f.queue(o, s.queue, function (e) {
b.velocityQueueEntryFlag = !0, i(o).delayTimer = { setTimeout: setTimeout(e, parseFloat(s.delay)), next: e };
}), s.duration.toString().toLowerCase()) {case "fast":
}), s.duration.toString().toLowerCase()) {
case "fast":
s.duration = 200; break; case "normal":
s.duration = h; break; case "slow":
s.duration = 600; break; default:
s.duration = parseFloat(s.duration) || 1;}b.mock !== !1 && (b.mock === !0 ? s.duration = s.delay = 1 : (s.duration *= parseFloat(b.mock) || 1, s.delay *= parseFloat(b.mock) || 1)), s.easing = u(s.easing, s.duration), s.begin && !m.isFunction(s.begin) && (s.begin = null), s.progress && !m.isFunction(s.progress) && (s.progress = null), s.complete && !m.isFunction(s.complete) && (s.complete = null), s.display !== a && null !== s.display && (s.display = s.display.toString().toLowerCase(), "auto" === s.display && (s.display = b.CSS.Values.getDisplayType(o))), s.visibility !== a && null !== s.visibility && (s.visibility = s.visibility.toString().toLowerCase()), s.mobileHA = s.mobileHA && b.State.isMobile && !b.State.isGingerbread, s.queue === !1 ? s.delay ? setTimeout(e, s.delay) : e() : f.queue(o, s.queue, function (t, r) {
s.duration = parseFloat(s.duration) || 1;
}b.mock !== !1 && (b.mock === !0 ? s.duration = s.delay = 1 : (s.duration *= parseFloat(b.mock) || 1, s.delay *= parseFloat(b.mock) || 1)), s.easing = u(s.easing, s.duration), s.begin && !m.isFunction(s.begin) && (s.begin = null), s.progress && !m.isFunction(s.progress) && (s.progress = null), s.complete && !m.isFunction(s.complete) && (s.complete = null), s.display !== a && null !== s.display && (s.display = s.display.toString().toLowerCase(), "auto" === s.display && (s.display = b.CSS.Values.getDisplayType(o))), s.visibility !== a && null !== s.visibility && (s.visibility = s.visibility.toString().toLowerCase()), s.mobileHA = s.mobileHA && b.State.isMobile && !b.State.isGingerbread, s.queue === !1 ? s.delay ? setTimeout(e, s.delay) : e() : f.queue(o, s.queue, function (t, r) {
return r === !0 ? (k.promise && k.resolver(g), !0) : (b.velocityQueueEntryFlag = !0, void e(t));
}), "" !== s.queue && "fx" !== s.queue || "inprogress" === f.queue(o)[0] || f.dequeue(o);
} var s,
@ -726,7 +768,8 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
}
} var k = { promise: null, resolver: null, rejecter: null }; s && b.Promise && (k.promise = new b.Promise(function (e, t) {
k.resolver = e, k.rejecter = t;
}));var A;switch (y) {case "scroll":
})); var A; switch (y) {
case "scroll":
A = "scroll"; break; case "reverse":
A = "reverse"; break; case "finish": case "stop":
f.each(g, function (e, t) {
@ -752,7 +795,8 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
parseFloat(j.stagger) ? j.delay = H + parseFloat(j.stagger) * e : m.isFunction(j.stagger) && (j.delay = H + j.stagger.call(t, e, w)), j.drag && (j.duration = parseFloat(E) || (/^(callout|transition)/.test(y) ? 1e3 : h), j.duration = Math.max(j.duration * (j.backwards ? 1 - e / w : (e + 1) / w), .75 * j.duration, 200)), b.Redirects[y].call(t, t, j || {}, e, w, g, k.promise ? k : a);
}), e();
} var N = "Velocity: First argument (" + y + ") was not a property map, a known action, or a registered redirect. Aborting."; return k.promise ? k.rejecter(new Error(N)) : console.log(N), e();
}A = "start";}var L = { lastParent: null, lastPosition: null, lastFontSize: null, lastPercentToPxWidth: null, lastPercentToPxHeight: null, lastEmToPx: null, remToPx: null, vwToPx: null, vhToPx: null },
} A = "start";
}var L = { lastParent: null, lastPosition: null, lastFontSize: null, lastPercentToPxWidth: null, lastPercentToPxHeight: null, lastEmToPx: null, remToPx: null, vwToPx: null, vhToPx: null },
R = []; f.each(g, function (e, t) {
m.isNode(t) && n.call(t);
}); var z,
@ -1009,18 +1053,23 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
Y = V | W,
Z = X | Y,
$ = ["x", "y"],
_ = ["clientX", "clientY"];ab.prototype = { handler: function () {}, init: function () {
_ = ["clientX", "clientY"]; ab.prototype = {
handler: function () { }, init: function () {
this.evEl && t(this.element, this.evEl, this.domHandler), this.evTarget && t(this.target, this.evTarget, this.domHandler), this.evWin && t(E(this.element), this.evWin, this.domHandler);
}, destroy: function () {
this.evEl && u(this.element, this.evEl, this.domHandler), this.evTarget && u(this.target, this.evTarget, this.domHandler), this.evWin && u(E(this.element), this.evWin, this.domHandler);
} };var ob = { mousedown: O, mousemove: P, mouseup: Q },
}
}; var ob = { mousedown: O, mousemove: P, mouseup: Q },
pb = "mousedown",
qb = "mousemove mouseup";p(rb, ab, { handler: function (a) {
qb = "mousemove mouseup"; p(rb, ab, {
handler: function (a) {
var b = ob[a.type]; b & O && 0 === a.button && (this.pressed = !0), b & P && 1 !== a.which && (b = Q), this.pressed && this.allow && (b & Q && (this.pressed = !1), this.callback(this.manager, b, { pointers: [a], changedPointers: [a], pointerType: L, srcEvent: a }));
} });var sb = { pointerdown: O, pointermove: P, pointerup: Q, pointercancel: R, pointerout: R },
}
}); var sb = { pointerdown: O, pointermove: P, pointerup: Q, pointercancel: R, pointerout: R },
tb = { 2: J, 3: K, 4: L, 5: M },
ub = "pointerdown",
vb = "pointermove pointerup pointercancel";a.MSPointerEvent && (ub = "MSPointerDown", vb = "MSPointerMove MSPointerUp MSPointerCancel"), p(wb, ab, { handler: function (a) {
vb = "pointermove pointerup pointercancel"; a.MSPointerEvent && (ub = "MSPointerDown", vb = "MSPointerMove MSPointerUp MSPointerCancel"), p(wb, ab, {
handler: function (a) {
var b = this.store,
c = !1,
d = a.type.toLowerCase().replace("ms", ""),
@ -1028,29 +1077,37 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
f = tb[a.pointerType] || a.pointerType,
g = f == J,
h = y(b, a.pointerId, "pointerId"); e & O && (0 === a.button || g) ? 0 > h && (b.push(a), h = b.length - 1) : e & (Q | R) && (c = !0), 0 > h || (b[h] = a, this.callback(this.manager, e, { pointers: b, changedPointers: [a], pointerType: f, srcEvent: a }), c && b.splice(h, 1));
} });var xb = { touchstart: O, touchmove: P, touchend: Q, touchcancel: R },
}
}); var xb = { touchstart: O, touchmove: P, touchend: Q, touchcancel: R },
yb = "touchstart",
zb = "touchstart touchmove touchend touchcancel";p(Ab, ab, { handler: function (a) {
zb = "touchstart touchmove touchend touchcancel"; p(Ab, ab, {
handler: function (a) {
var b = xb[a.type]; if (b === O && (this.started = !0), this.started) {
var c = Bb.call(this, a, b); b & (Q | R) && 0 === c[0].length - c[1].length && (this.started = !1), this.callback(this.manager, b, { pointers: c[0], changedPointers: c[1], pointerType: J, srcEvent: a });
}
} });var Cb = { touchstart: O, touchmove: P, touchend: Q, touchcancel: R },
Db = "touchstart touchmove touchend touchcancel";p(Eb, ab, { handler: function (a) {
}
}); var Cb = { touchstart: O, touchmove: P, touchend: Q, touchcancel: R },
Db = "touchstart touchmove touchend touchcancel"; p(Eb, ab, {
handler: function (a) {
var b = Cb[a.type],
c = Fb.call(this, a, b); c && this.callback(this.manager, b, { pointers: c[0], changedPointers: c[1], pointerType: J, srcEvent: a });
} }), p(Gb, ab, { handler: function (a, b, c) {
}
}), p(Gb, ab, {
handler: function (a, b, c) {
var d = c.pointerType == J,
e = c.pointerType == L; if (d) this.mouse.allow = !1; else if (e && !this.mouse.allow) return; b & (Q | R) && (this.mouse.allow = !0), this.callback(a, b, c);
}, destroy: function () {
this.touch.destroy(), this.mouse.destroy();
} });var Hb = B(f.style, "touchAction"),
}
}); var Hb = B(f.style, "touchAction"),
Ib = Hb !== d,
Jb = "compute",
Kb = "auto",
Lb = "manipulation",
Mb = "none",
Nb = "pan-x",
Ob = "pan-y";Pb.prototype = { set: function (a) {
Ob = "pan-y"; Pb.prototype = {
set: function (a) {
a == Jb && (a = this.compute()), Ib && (this.manager.element.style[Hb] = a), this.actions = a.toLowerCase().trim();
}, update: function () {
this.set(this.manager.options.touchAction);
@ -1068,13 +1125,15 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
}
}, preventSrc: function (a) {
this.manager.session.prevented = !0, a.preventDefault();
} };var Rb = 1,
}
}; var Rb = 1,
Sb = 2,
Tb = 4,
Ub = 8,
Vb = Ub,
Wb = 16,
Xb = 32;Yb.prototype = { defaults: {}, set: function (a) {
Xb = 32; Yb.prototype = {
defaults: {}, set: function (a) {
return n(this.options, a), this.manager && this.manager.touchAction.update(), this;
}, recognizeWith: function (a) {
if (l(a, "recognizeWith", this)) return this; var b = this.simultaneous; return a = _b(a, this), b[a.id] || (b[a.id] = a, a.recognizeWith(this)), this;
@ -1101,14 +1160,18 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
} return !0;
}, recognize: function (a) {
var b = n({}, a); return r(this.options.enable, [this, b]) ? (this.state & (Vb | Wb | Xb) && (this.state = Rb), this.state = this.process(b), this.state & (Sb | Tb | Ub | Wb) && this.tryEmit(b), void 0) : (this.reset(), this.state = Xb, void 0);
}, process: function () {}, getTouchAction: function () {}, reset: function () {} }, p(ac, Yb, { defaults: { pointers: 1 }, attrTest: function (a) {
}, process: function () { }, getTouchAction: function () { }, reset: function () { }
}, p(ac, Yb, {
defaults: { pointers: 1 }, attrTest: function (a) {
var b = this.options.pointers; return 0 === b || a.pointers.length === b;
}, process: function (a) {
var b = this.state,
c = a.eventType,
d = b & (Sb | Tb),
e = this.attrTest(a); return d && (c & R || !e) ? b | Wb : d || e ? c & Q ? b | Ub : b & Sb ? b | Tb : Sb : Xb;
} }), p(bc, ac, { defaults: { event: "pan", threshold: 10, pointers: 1, direction: Z }, getTouchAction: function () {
}
}), p(bc, ac, {
defaults: { event: "pan", threshold: 10, pointers: 1, direction: Z }, getTouchAction: function () {
var a = this.options.direction,
b = []; return a & X && b.push(Ob), a & Y && b.push(Nb), b;
}, directionTest: function (a) {
@ -1122,7 +1185,9 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
return ac.prototype.attrTest.call(this, a) && (this.state & Sb || !(this.state & Sb) && this.directionTest(a));
}, emit: function (a) {
this.pX = a.deltaX, this.pY = a.deltaY; var b = $b(a.direction); b && this.manager.emit(this.options.event + b, a), this._super.emit.call(this, a);
} }), p(cc, ac, { defaults: { event: "pinch", threshold: 0, pointers: 2 }, getTouchAction: function () {
}
}), p(cc, ac, {
defaults: { event: "pinch", threshold: 0, pointers: 2 }, getTouchAction: function () {
return [Mb];
}, attrTest: function (a) {
return this._super.attrTest.call(this, a) && (Math.abs(a.scale - 1) > this.options.threshold || this.state & Sb);
@ -1130,7 +1195,9 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
if (this._super.emit.call(this, a), 1 !== a.scale) {
var b = a.scale < 1 ? "in" : "out"; this.manager.emit(this.options.event + b, a);
}
} }), p(dc, Yb, { defaults: { event: "press", pointers: 1, time: 500, threshold: 5 }, getTouchAction: function () {
}
}), p(dc, Yb, {
defaults: { event: "press", pointers: 1, time: 500, threshold: 5 }, getTouchAction: function () {
return [Kb];
}, process: function (a) {
var b = this.options,
@ -1143,18 +1210,24 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
clearTimeout(this._timer);
}, emit: function (a) {
this.state === Vb && (a && a.eventType & Q ? this.manager.emit(this.options.event + "up", a) : (this._input.timeStamp = j(), this.manager.emit(this.options.event, this._input)));
} }), p(ec, ac, { defaults: { event: "rotate", threshold: 0, pointers: 2 }, getTouchAction: function () {
}
}), p(ec, ac, {
defaults: { event: "rotate", threshold: 0, pointers: 2 }, getTouchAction: function () {
return [Mb];
}, attrTest: function (a) {
return this._super.attrTest.call(this, a) && (Math.abs(a.rotation) > this.options.threshold || this.state & Sb);
} }), p(fc, ac, { defaults: { event: "swipe", threshold: 10, velocity: .65, direction: X | Y, pointers: 1 }, getTouchAction: function () {
}
}), p(fc, ac, {
defaults: { event: "swipe", threshold: 10, velocity: .65, direction: X | Y, pointers: 1 }, getTouchAction: function () {
return bc.prototype.getTouchAction.call(this);
}, attrTest: function (a) {
var c,
b = this.options.direction; return b & (X | Y) ? c = a.velocity : b & X ? c = a.velocityX : b & Y && (c = a.velocityY), this._super.attrTest.call(this, a) && b & a.direction && a.distance > this.options.threshold && i(c) > this.options.velocity && a.eventType & Q;
}, emit: function (a) {
var b = $b(a.direction); b && this.manager.emit(this.options.event + b, a), this.manager.emit(this.options.event, a);
} }), p(gc, Yb, { defaults: { event: "tap", pointers: 1, taps: 1, interval: 300, time: 250, threshold: 2, posThreshold: 10 }, getTouchAction: function () {
}
}), p(gc, Yb, {
defaults: { event: "tap", pointers: 1, taps: 1, interval: 300, time: 250, threshold: 2, posThreshold: 10 }, getTouchAction: function () {
return [Lb];
}, process: function (a) {
var b = this.options,
@ -1174,8 +1247,10 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
clearTimeout(this._timer);
}, emit: function () {
this.state == Vb && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input));
} }), hc.VERSION = "2.0.4", hc.defaults = { domEvents: !1, touchAction: Jb, enable: !0, inputTarget: null, inputClass: null, preset: [[ec, { enable: !1 }], [cc, { enable: !1 }, ["rotate"]], [fc, { direction: X }], [bc, { direction: X }, ["swipe"]], [gc], [gc, { event: "doubletap", taps: 2 }, ["tap"]], [dc]], cssProps: { userSelect: "default", touchSelect: "none", touchCallout: "none", contentZooming: "none", userDrag: "none", tapHighlightColor: "rgba(0,0,0,0)" } };var ic = 1,
jc = 2;kc.prototype = { set: function (a) {
}
}), hc.VERSION = "2.0.4", hc.defaults = { domEvents: !1, touchAction: Jb, enable: !0, inputTarget: null, inputClass: null, preset: [[ec, { enable: !1 }], [cc, { enable: !1 }, ["rotate"]], [fc, { direction: X }], [bc, { direction: X }, ["swipe"]], [gc], [gc, { event: "doubletap", taps: 2 }, ["tap"]], [dc]], cssProps: { userSelect: "default", touchSelect: "none", touchCallout: "none", contentZooming: "none", userDrag: "none", tapHighlightColor: "rgba(0,0,0,0)" } }; var ic = 1,
jc = 2; kc.prototype = {
set: function (a) {
return n(this.options, a), a.touchAction && this.touchAction.update(), a.inputTarget && (this.input.destroy(), this.input.target = a.inputTarget, this.input.init()), this;
}, stop: function (a) {
this.session.stopped = a ? jc : ic;
@ -1213,7 +1288,8 @@ jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly
}
}, destroy: function () {
this.element && lc(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null;
} }, n(hc, { INPUT_START: O, INPUT_MOVE: P, INPUT_END: Q, INPUT_CANCEL: R, STATE_POSSIBLE: Rb, STATE_BEGAN: Sb, STATE_CHANGED: Tb, STATE_ENDED: Ub, STATE_RECOGNIZED: Vb, STATE_CANCELLED: Wb, STATE_FAILED: Xb, DIRECTION_NONE: S, DIRECTION_LEFT: T, DIRECTION_RIGHT: U, DIRECTION_UP: V, DIRECTION_DOWN: W, DIRECTION_HORIZONTAL: X, DIRECTION_VERTICAL: Y, DIRECTION_ALL: Z, Manager: kc, Input: ab, TouchAction: Pb, TouchInput: Eb, MouseInput: rb, PointerEventInput: wb, TouchMouseInput: Gb, SingleTouchInput: Ab, Recognizer: Yb, AttrRecognizer: ac, Tap: gc, Pan: bc, Swipe: fc, Pinch: cc, Rotate: ec, Press: dc, on: t, off: u, each: m, merge: o, extend: n, inherit: p, bindFn: q, prefixed: B }), typeof define == g && define.amd ? define(function () {
}
}, n(hc, { INPUT_START: O, INPUT_MOVE: P, INPUT_END: Q, INPUT_CANCEL: R, STATE_POSSIBLE: Rb, STATE_BEGAN: Sb, STATE_CHANGED: Tb, STATE_ENDED: Ub, STATE_RECOGNIZED: Vb, STATE_CANCELLED: Wb, STATE_FAILED: Xb, DIRECTION_NONE: S, DIRECTION_LEFT: T, DIRECTION_RIGHT: U, DIRECTION_UP: V, DIRECTION_DOWN: W, DIRECTION_HORIZONTAL: X, DIRECTION_VERTICAL: Y, DIRECTION_ALL: Z, Manager: kc, Input: ab, TouchAction: Pb, TouchInput: Eb, MouseInput: rb, PointerEventInput: wb, TouchMouseInput: Gb, SingleTouchInput: Ab, Recognizer: Yb, AttrRecognizer: ac, Tap: gc, Pan: bc, Swipe: fc, Pinch: cc, Rotate: ec, Press: dc, on: t, off: u, each: m, merge: o, extend: n, inherit: p, bindFn: q, prefixed: B }), typeof define == g && define.amd ? define(function () {
return hc;
}) : "undefined" != typeof module && module.exports ? module.exports = hc : a[c] = hc;
}(window, document, "Hammer");; (function (factory) {
@ -1451,13 +1527,17 @@ if (Vel) {
object.parent().removeClass('active');
}
if (object.parent().hasClass('active')) {
object.siblings('.collapsible-body').stop(true, false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
object.siblings('.collapsible-body').stop(true, false).slideDown({
duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
$(this).css('height', '');
} });
}
});
} else {
object.siblings('.collapsible-body').stop(true, false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
object.siblings('.collapsible-body').stop(true, false).slideUp({
duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
$(this).css('height', '');
} });
}
});
}
$panel_headers.not(object).removeClass('active').parent().removeClass('active');
@ -1486,13 +1566,17 @@ if (Vel) {
object.parent().removeClass('active');
}
if (object.parent().hasClass('active')) {
object.siblings('.collapsible-body').stop(true, false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
object.siblings('.collapsible-body').stop(true, false).slideDown({
duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
$(this).css('height', '');
} });
}
});
} else {
object.siblings('.collapsible-body').stop(true, false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
object.siblings('.collapsible-body').stop(true, false).slideUp({
duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
$(this).css('height', '');
} });
}
});
}
}
@ -2376,7 +2460,8 @@ if (Vel) {
// Animate image + set z-index
if (origin.hasClass('responsive-img')) {
origin.velocity({ 'max-width': newWidth, 'width': originalWidth }, { duration: 0, queue: false,
origin.velocity({ 'max-width': newWidth, 'width': originalWidth }, {
duration: 0, queue: false,
complete: function () {
origin.css({ left: 0, top: 0 }).velocity({
height: newHeight,
@ -2881,7 +2966,8 @@ if (Vel) {
// Mouse In
var started = false,
timeoutRef;
origin.on({ 'mouseenter.tooltip': function (e) {
origin.on({
'mouseenter.tooltip': function (e) {
var showTooltip = function () {
setAttributes();
started = true;
@ -2994,7 +3080,8 @@ if (Vel) {
setTimeout(function () {
if (started !== true) {
tooltipEl.velocity({
opacity: 0, translateY: 0, translateX: 0 }, { duration: 225, queue: false });
opacity: 0, translateY: 0, translateX: 0
}, { duration: 225, queue: false });
backdrop.velocity({ opacity: 0, scaleX: 1, scaleY: 1 }, {
duration: 225,
queue: false,
@ -3811,15 +3898,18 @@ if (Vel) {
width: ''
});
$('#sidenav-overlay').velocity({ opacity: 0 }, { duration: 200,
$('#sidenav-overlay').velocity({ opacity: 0 }, {
duration: 200,
queue: false, easing: 'easeOutQuad',
complete: function () {
$(this).remove();
} });
}
});
if (options.edge === 'left') {
// Reset phantom div
$dragTarget.css({ width: '', right: '', left: '0' });
menu.velocity({ 'translateX': '-100%' }, { duration: 200,
menu.velocity({ 'translateX': '-100%' }, {
duration: 200,
queue: false,
easing: 'easeOutCubic',
complete: function () {
@ -3834,7 +3924,8 @@ if (Vel) {
} else {
// Reset phantom div
$dragTarget.css({ width: '', right: '0', left: '' });
menu.velocity({ 'translateX': '100%' }, { duration: 200,
menu.velocity({ 'translateX': '100%' }, {
duration: 200,
queue: false,
easing: 'easeOutCubic',
complete: function () {
@ -3983,7 +4074,8 @@ if (Vel) {
});
// Slide menu closed
menu.velocity({ 'translateX': [-1 * options.menuWidth - 10, leftPos] }, { duration: 200, queue: false, easing: 'easeOutQuad' });
$overlay.velocity({ opacity: 0 }, { duration: 200, queue: false, easing: 'easeOutQuad',
$overlay.velocity({ opacity: 0 }, {
duration: 200, queue: false, easing: 'easeOutQuad',
complete: function () {
// Run 'onClose' when sidenav is closed via touch/swipe if applicable
if (typeof options.onClose === 'function') {
@ -3991,7 +4083,8 @@ if (Vel) {
}
$(this).remove();
} });
}
});
$dragTarget.css({ width: '10px', right: '', left: 0 });
}
} else {
@ -4013,7 +4106,8 @@ if (Vel) {
// Slide menu closed
menu.velocity({ 'translateX': [options.menuWidth + 10, rightPos] }, { duration: 200, queue: false, easing: 'easeOutQuad' });
$overlay.velocity({ opacity: 0 }, { duration: 200, queue: false, easing: 'easeOutQuad',
$overlay.velocity({ opacity: 0 }, {
duration: 200, queue: false, easing: 'easeOutQuad',
complete: function () {
// Run 'onClose' when sidenav is closed via touch/swipe if applicable
if (typeof options.onClose === 'function') {
@ -4021,7 +4115,8 @@ if (Vel) {
}
$(this).remove();
} });
}
});
$dragTarget.css({ width: '10px', right: 0, left: '' });
}
}
@ -4059,7 +4154,8 @@ if (Vel) {
menuOut = false;
panning = false;
removeMenu();
$overlay.velocity({ opacity: 0 }, { duration: 300, queue: false, easing: 'easeOutQuad',
$overlay.velocity({ opacity: 0 }, {
duration: 300, queue: false, easing: 'easeOutQuad',
complete: function () {
$(this).remove();
}
@ -4068,7 +4164,8 @@ if (Vel) {
// Append body
$('body').append($overlay);
$overlay.velocity({ opacity: 1 }, { duration: 300, queue: false, easing: 'easeOutQuad',
$overlay.velocity({ opacity: 1 }, {
duration: 300, queue: false, easing: 'easeOutQuad',
complete: function () {
menuOut = true;
panning = false;
@ -5198,10 +5295,12 @@ if (Vel) {
$caption = $active.find('.caption');
$active.removeClass('active');
$active.velocity({ opacity: 0 }, { duration: options.transition, queue: false, easing: 'easeOutQuad',
$active.velocity({ opacity: 0 }, {
duration: options.transition, queue: false, easing: 'easeOutQuad',
complete: function () {
$slides.not('.active').velocity({ opacity: 0, translateX: 0, translateY: 0 }, { duration: 0, queue: false });
} });
}
});
captionTransition($caption, options.transition);
// Update indicators
@ -5321,7 +5420,8 @@ if (Vel) {
$curr_slide = $slider.find('.active');
if (Math.abs(velocityX) > Math.abs(velocityY)) {
$curr_slide.velocity({ translateX: x
$curr_slide.velocity({
translateX: x
}, { duration: 50, queue: false, easing: 'easeOutQuad' });
}
@ -5341,7 +5441,8 @@ if (Vel) {
if (next_slide.length === 0) {
next_slide = $slides.first();
}
next_slide.velocity({ opacity: 1
next_slide.velocity({
opacity: 1
}, { duration: 300, queue: false, easing: 'easeOutQuad' });
}
if (swipeRight) {
@ -5349,7 +5450,8 @@ if (Vel) {
if (next_slide.length === 0) {
next_slide = $slides.last();
}
next_slide.velocity({ opacity: 1
next_slide.velocity({
opacity: 1
}, { duration: 300, queue: false, easing: 'easeOutQuad' });
}
}
@ -5362,20 +5464,25 @@ if (Vel) {
if (!swipeRight && !swipeLeft || $slides.length <= 1) {
// Return to original spot
$curr_slide.velocity({ translateX: 0
$curr_slide.velocity({
translateX: 0
}, { duration: 300, queue: false, easing: 'easeOutQuad' });
} else if (swipeLeft) {
moveToSlide(curr_index + 1);
$curr_slide.velocity({ translateX: -1 * $this.innerWidth() }, { duration: 300, queue: false, easing: 'easeOutQuad',
$curr_slide.velocity({ translateX: -1 * $this.innerWidth() }, {
duration: 300, queue: false, easing: 'easeOutQuad',
complete: function () {
$curr_slide.velocity({ opacity: 0, translateX: 0 }, { duration: 0, queue: false });
} });
}
});
} else if (swipeRight) {
moveToSlide(curr_index - 1);
$curr_slide.velocity({ translateX: $this.innerWidth() }, { duration: 300, queue: false, easing: 'easeOutQuad',
$curr_slide.velocity({ translateX: $this.innerWidth() }, {
duration: 300, queue: false, easing: 'easeOutQuad',
complete: function () {
$curr_slide.velocity({ opacity: 0, translateX: 0 }, { duration: 0, queue: false });
} });
}
});
}
swipeLeft = false;
swipeRight = false;
@ -6195,7 +6302,8 @@ if (Vel) {
var x = e.gesture.deltaX;
var velocityX = e.gesture.velocityX;
$this.velocity({ translateX: x
$this.velocity({
translateX: x
}, { duration: 50, queue: false, easing: 'easeOutQuad' });
// Swipe Left
@ -6225,18 +6333,23 @@ if (Vel) {
fullWidth = -1 * $this.innerWidth();
}
$this.velocity({ translateX: fullWidth
}, { duration: 100, queue: false, easing: 'easeOutQuad', complete: function () {
$this.velocity({
translateX: fullWidth
}, {
duration: 100, queue: false, easing: 'easeOutQuad', complete: function () {
$this.css('border', 'none');
$this.velocity({ height: 0, padding: 0
}, { duration: 200, queue: false, easing: 'easeOutQuad', complete: function () {
$this.velocity({
height: 0, padding: 0
}, {
duration: 200, queue: false, easing: 'easeOutQuad', complete: function () {
$this.remove();
}
});
}
});
} else {
$this.velocity({ translateX: 0
$this.velocity({
translateX: 0
}, { duration: 100, queue: false, easing: 'easeOutQuad' });
}
swipeLeft = false;

View File

@ -1,33 +1,96 @@
/*
A JavaScript implementation of the SHA family of hashes, as
defined in FIPS PUB 180-4 and FIPS PUB 202, as well as the corresponding
HMAC implementation as defined in FIPS PUB 198a
var sha256 = function sha256(ascii) {
function rightRotate(value, amount) {
return (value >>> amount) | (value << (32 - amount));
};
Copyright 2008-2018 Brian Turek, 1998-2009 Paul Johnston & Contributors
Distributed under the BSD License
See http://caligatio.github.com/jsSHA/ for more information
*/
'use strict';(function(I){function w(c,a,d){var l=0,b=[],g=0,f,n,k,e,h,q,y,p,m=!1,t=[],r=[],u,z=!1;d=d||{};f=d.encoding||"UTF8";u=d.numRounds||1;if(u!==parseInt(u,10)||1>u)throw Error("numRounds must a integer >= 1");if(0===c.lastIndexOf("SHA-",0))if(q=function(b,a){return A(b,a,c)},y=function(b,a,l,f){var g,e;if("SHA-224"===c||"SHA-256"===c)g=(a+65>>>9<<4)+15,e=16;else throw Error("Unexpected error in SHA-2 implementation");for(;b.length<=g;)b.push(0);b[a>>>5]|=128<<24-a%32;a=a+l;b[g]=a&4294967295;
b[g-1]=a/4294967296|0;l=b.length;for(a=0;a<l;a+=e)f=A(b.slice(a,a+e),f,c);if("SHA-224"===c)b=[f[0],f[1],f[2],f[3],f[4],f[5],f[6]];else if("SHA-256"===c)b=f;else throw Error("Unexpected error in SHA-2 implementation");return b},p=function(b){return b.slice()},"SHA-224"===c)h=512,e=224;else if("SHA-256"===c)h=512,e=256;else throw Error("Chosen SHA variant is not supported");else throw Error("Chosen SHA variant is not supported");k=B(a,f);n=x(c);this.setHMACKey=function(b,a,g){var e;if(!0===m)throw Error("HMAC key already set");
if(!0===z)throw Error("Cannot set HMAC key after calling update");f=(g||{}).encoding||"UTF8";a=B(a,f)(b);b=a.binLen;a=a.value;e=h>>>3;g=e/4-1;if(e<b/8){for(a=y(a,b,0,x(c));a.length<=g;)a.push(0);a[g]&=4294967040}else if(e>b/8){for(;a.length<=g;)a.push(0);a[g]&=4294967040}for(b=0;b<=g;b+=1)t[b]=a[b]^909522486,r[b]=a[b]^1549556828;n=q(t,n);l=h;m=!0};this.update=function(a){var c,f,e,d=0,p=h>>>5;c=k(a,b,g);a=c.binLen;f=c.value;c=a>>>5;for(e=0;e<c;e+=p)d+h<=a&&(n=q(f.slice(e,e+p),n),d+=h);l+=d;b=f.slice(d>>>
5);g=a%h;z=!0};this.getHash=function(a,f){var d,h,k,q;if(!0===m)throw Error("Cannot call getHash after setting HMAC key");k=C(f);switch(a){case "HEX":d=function(a){return D(a,e,k)};break;case "B64":d=function(a){return E(a,e,k)};break;case "BYTES":d=function(a){return F(a,e)};break;case "ARRAYBUFFER":try{h=new ArrayBuffer(0)}catch(v){throw Error("ARRAYBUFFER not supported by this environment");}d=function(a){return G(a,e)};break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER");
}q=y(b.slice(),g,l,p(n));for(h=1;h<u;h+=1)q=y(q,e,0,x(c));return d(q)};this.getHMAC=function(a,f){var d,k,t,u;if(!1===m)throw Error("Cannot call getHMAC without first setting HMAC key");t=C(f);switch(a){case "HEX":d=function(a){return D(a,e,t)};break;case "B64":d=function(a){return E(a,e,t)};break;case "BYTES":d=function(a){return F(a,e)};break;case "ARRAYBUFFER":try{d=new ArrayBuffer(0)}catch(v){throw Error("ARRAYBUFFER not supported by this environment");}d=function(a){return G(a,e)};break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER");
}k=y(b.slice(),g,l,p(n));u=q(r,x(c));u=y(k,e,h,u);return d(u)}}function m(){}function D(c,a,d){var l="";a/=8;var b,g;for(b=0;b<a;b+=1)g=c[b>>>2]>>>8*(3+b%4*-1),l+="0123456789abcdef".charAt(g>>>4&15)+"0123456789abcdef".charAt(g&15);return d.outputUpper?l.toUpperCase():l}function E(c,a,d){var l="",b=a/8,g,f,n;for(g=0;g<b;g+=3)for(f=g+1<b?c[g+1>>>2]:0,n=g+2<b?c[g+2>>>2]:0,n=(c[g>>>2]>>>8*(3+g%4*-1)&255)<<16|(f>>>8*(3+(g+1)%4*-1)&255)<<8|n>>>8*(3+(g+2)%4*-1)&255,f=0;4>f;f+=1)8*g+6*f<=a?l+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n>>>
6*(3-f)&63):l+=d.b64Pad;return l}function F(c,a){var d="",l=a/8,b,g;for(b=0;b<l;b+=1)g=c[b>>>2]>>>8*(3+b%4*-1)&255,d+=String.fromCharCode(g);return d}function G(c,a){var d=a/8,l,b=new ArrayBuffer(d),g;g=new Uint8Array(b);for(l=0;l<d;l+=1)g[l]=c[l>>>2]>>>8*(3+l%4*-1)&255;return b}function C(c){var a={outputUpper:!1,b64Pad:"=",shakeLen:-1};c=c||{};a.outputUpper=c.outputUpper||!1;!0===c.hasOwnProperty("b64Pad")&&(a.b64Pad=c.b64Pad);if("boolean"!==typeof a.outputUpper)throw Error("Invalid outputUpper formatting option");
if("string"!==typeof a.b64Pad)throw Error("Invalid b64Pad formatting option");return a}function B(c,a){var d;switch(a){case "UTF8":case "UTF16BE":case "UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE");}switch(c){case "HEX":d=function(a,b,c){var f=a.length,d,k,e,h,q;if(0!==f%2)throw Error("String of HEX type must be in byte increments");b=b||[0];c=c||0;q=c>>>3;for(d=0;d<f;d+=2){k=parseInt(a.substr(d,2),16);if(isNaN(k))throw Error("String of HEX type contains invalid characters");
h=(d>>>1)+q;for(e=h>>>2;b.length<=e;)b.push(0);b[e]|=k<<8*(3+h%4*-1)}return{value:b,binLen:4*f+c}};break;case "TEXT":d=function(c,b,d){var f,n,k=0,e,h,q,m,p,r;b=b||[0];d=d||0;q=d>>>3;if("UTF8"===a)for(r=3,e=0;e<c.length;e+=1)for(f=c.charCodeAt(e),n=[],128>f?n.push(f):2048>f?(n.push(192|f>>>6),n.push(128|f&63)):55296>f||57344<=f?n.push(224|f>>>12,128|f>>>6&63,128|f&63):(e+=1,f=65536+((f&1023)<<10|c.charCodeAt(e)&1023),n.push(240|f>>>18,128|f>>>12&63,128|f>>>6&63,128|f&63)),h=0;h<n.length;h+=1){p=k+
q;for(m=p>>>2;b.length<=m;)b.push(0);b[m]|=n[h]<<8*(r+p%4*-1);k+=1}else if("UTF16BE"===a||"UTF16LE"===a)for(r=2,n="UTF16LE"===a&&!0||"UTF16LE"!==a&&!1,e=0;e<c.length;e+=1){f=c.charCodeAt(e);!0===n&&(h=f&255,f=h<<8|f>>>8);p=k+q;for(m=p>>>2;b.length<=m;)b.push(0);b[m]|=f<<8*(r+p%4*-1);k+=2}return{value:b,binLen:8*k+d}};break;case "B64":d=function(a,b,c){var f=0,d,k,e,h,q,m,p;if(-1===a.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");k=a.indexOf("=");a=a.replace(/\=/g,
"");if(-1!==k&&k<a.length)throw Error("Invalid '=' found in base-64 string");b=b||[0];c=c||0;m=c>>>3;for(k=0;k<a.length;k+=4){q=a.substr(k,4);for(e=h=0;e<q.length;e+=1)d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(q[e]),h|=d<<18-6*e;for(e=0;e<q.length-1;e+=1){p=f+m;for(d=p>>>2;b.length<=d;)b.push(0);b[d]|=(h>>>16-8*e&255)<<8*(3+p%4*-1);f+=1}}return{value:b,binLen:8*f+c}};break;case "BYTES":d=function(a,b,c){var d,n,k,e,h;b=b||[0];c=c||0;k=c>>>3;for(n=0;n<a.length;n+=
1)d=a.charCodeAt(n),h=n+k,e=h>>>2,b.length<=e&&b.push(0),b[e]|=d<<8*(3+h%4*-1);return{value:b,binLen:8*a.length+c}};break;case "ARRAYBUFFER":try{d=new ArrayBuffer(0)}catch(l){throw Error("ARRAYBUFFER not supported by this environment");}d=function(a,b,c){var d,n,k,e,h;b=b||[0];c=c||0;n=c>>>3;h=new Uint8Array(a);for(d=0;d<a.byteLength;d+=1)e=d+n,k=e>>>2,b.length<=k&&b.push(0),b[k]|=h[d]<<8*(3+e%4*-1);return{value:b,binLen:8*a.byteLength+c}};break;default:throw Error("format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER");
}return d}function r(c,a){return c>>>a|c<<32-a}function J(c,a,d){return c&a^~c&d}function K(c,a,d){return c&a^c&d^a&d}function L(c){return r(c,2)^r(c,13)^r(c,22)}function M(c){return r(c,6)^r(c,11)^r(c,25)}function N(c){return r(c,7)^r(c,18)^c>>>3}function O(c){return r(c,17)^r(c,19)^c>>>10}function P(c,a){var d=(c&65535)+(a&65535);return((c>>>16)+(a>>>16)+(d>>>16)&65535)<<16|d&65535}function Q(c,a,d,l){var b=(c&65535)+(a&65535)+(d&65535)+(l&65535);return((c>>>16)+(a>>>16)+(d>>>16)+(l>>>16)+(b>>>
16)&65535)<<16|b&65535}function R(c,a,d,l,b){var g=(c&65535)+(a&65535)+(d&65535)+(l&65535)+(b&65535);return((c>>>16)+(a>>>16)+(d>>>16)+(l>>>16)+(b>>>16)+(g>>>16)&65535)<<16|g&65535}function x(c){var a=[],d;if(0===c.lastIndexOf("SHA-",0))switch(a=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],d=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],c){case "SHA-224":break;case "SHA-256":a=d;break;case "SHA-384":a=[new m,new m,
new m,new m,new m,new m,new m,new m];break;case "SHA-512":a=[new m,new m,new m,new m,new m,new m,new m,new m];break;default:throw Error("Unknown SHA variant");}else throw Error("No SHA variants supported");return a}function A(c,a,d){var l,b,g,f,n,k,e,h,m,r,p,w,t,x,u,z,A,B,C,D,E,F,v=[],G;if("SHA-224"===d||"SHA-256"===d)r=64,w=1,F=Number,t=P,x=Q,u=R,z=N,A=O,B=L,C=M,E=K,D=J,G=H;else throw Error("Unexpected error in SHA-2 implementation");d=a[0];l=a[1];b=a[2];g=a[3];f=a[4];n=a[5];k=a[6];e=a[7];for(p=
0;p<r;p+=1)16>p?(m=p*w,h=c.length<=m?0:c[m],m=c.length<=m+1?0:c[m+1],v[p]=new F(h,m)):v[p]=x(A(v[p-2]),v[p-7],z(v[p-15]),v[p-16]),h=u(e,C(f),D(f,n,k),G[p],v[p]),m=t(B(d),E(d,l,b)),e=k,k=n,n=f,f=t(g,h),g=b,b=l,l=d,d=t(h,m);a[0]=t(d,a[0]);a[1]=t(l,a[1]);a[2]=t(b,a[2]);a[3]=t(g,a[3]);a[4]=t(f,a[4]);a[5]=t(n,a[5]);a[6]=t(k,a[6]);a[7]=t(e,a[7]);return a}var H;H=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,
2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,
2756734187,3204031479,3329325298];"function"===typeof define&&define.amd?define(function(){return w}):"undefined"!==typeof exports?("undefined"!==typeof module&&module.exports&&(module.exports=w),exports=w):I.jsSHA=w})(this);
function sha256(token){
var shaObj = new jsSHA("SHA-256", "TEXT");
shaObj.update(token);
var hash = shaObj.getHash("HEX");
return hash;
var mathPow = Math.pow;
var maxWord = mathPow(2, 32);
var lengthProperty = 'length'
var i, j; // Used as a counter across the whole file
var result = ''
var words = [];
var asciiBitLength = ascii[lengthProperty] * 8;
//* caching results is optional - remove/add slash from front of this line to toggle
// Initial hash value: first 32 bits of the fractional parts of the square roots of the first 8 primes
// (we actually calculate the first 64, but extra values are just ignored)
var hash = sha256.h = sha256.h || [];
// Round constants: first 32 bits of the fractional parts of the cube roots of the first 64 primes
var k = sha256.k = sha256.k || [];
var primeCounter = k[lengthProperty];
/*/
var hash = [], k = [];
var primeCounter = 0;
//*/
var isComposite = {};
for (var candidate = 2; primeCounter < 64; candidate++) {
if (!isComposite[candidate]) {
for (i = 0; i < 313; i += candidate) {
isComposite[i] = candidate;
}
hash[primeCounter] = (mathPow(candidate, .5) * maxWord) | 0;
k[primeCounter++] = (mathPow(candidate, 1 / 3) * maxWord) | 0;
}
}
ascii += '\x80' // Append Ƈ' bit (plus zero padding)
while (ascii[lengthProperty] % 64 - 56) ascii += '\x00' // More zero padding
for (i = 0; i < ascii[lengthProperty]; i++) {
j = ascii.charCodeAt(i);
if (j >> 8) return; // ASCII check: only accept characters in range 0-255
words[i >> 2] |= j << ((3 - i) % 4) * 8;
}
words[words[lengthProperty]] = ((asciiBitLength / maxWord) | 0);
words[words[lengthProperty]] = (asciiBitLength)
// process each chunk
for (j = 0; j < words[lengthProperty];) {
var w = words.slice(j, j += 16); // The message is expanded into 64 words as part of the iteration
var oldHash = hash;
// This is now the undefinedworking hash", often labelled as variables a...g
// (we have to truncate as well, otherwise extra entries at the end accumulate
hash = hash.slice(0, 8);
for (i = 0; i < 64; i++) {
var i2 = i + j;
// Expand the message into 64 words
// Used below if
var w15 = w[i - 15], w2 = w[i - 2];
// Iterate
var a = hash[0], e = hash[4];
var temp1 = hash[7]
+ (rightRotate(e, 6) ^ rightRotate(e, 11) ^ rightRotate(e, 25)) // S1
+ ((e & hash[5]) ^ ((~e) & hash[6])) // ch
+ k[i]
// Expand the message schedule if needed
+ (w[i] = (i < 16) ? w[i] : (
w[i - 16]
+ (rightRotate(w15, 7) ^ rightRotate(w15, 18) ^ (w15 >>> 3)) // s0
+ w[i - 7]
+ (rightRotate(w2, 17) ^ rightRotate(w2, 19) ^ (w2 >>> 10)) // s1
) | 0
);
// This is only used once, so *could* be moved below, but it only saves 4 bytes and makes things unreadble
var temp2 = (rightRotate(a, 2) ^ rightRotate(a, 13) ^ rightRotate(a, 22)) // S0
+ ((a & hash[1]) ^ (a & hash[2]) ^ (hash[1] & hash[2])); // maj
hash = [(temp1 + temp2) | 0].concat(hash); // We don't bother trimming off the extra ones, they're harmless as long as we're truncating when we do the slice()
hash[4] = (hash[4] + temp1) | 0;
}
for (i = 0; i < 8; i++) {
hash[i] = (hash[i] + oldHash[i]) | 0;
}
}
for (i = 0; i < 8; i++) {
for (j = 3; j + 1; j--) {
var b = (hash[i] >> (j * 8)) & 255;
result += ((b < 16) ? 0 : '') + b.toString(16);
}
}
return result;
};

View File

@ -1,9 +1,9 @@
//バージョンチェッカー
function verck(ver) {
console.log("Welcome")
console.log("%c Welcome😊", "color: red;font-size:200%;")
if (localStorage.getItem("ver") != ver) {
localStorage.setItem("ver", ver);
console.log("Thank you for your update");
console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
$(document).ready(function () {
$('#releasenote').modal('open');
verp = ver.replace('(', '');
@ -13,7 +13,7 @@ function verck(ver) {
verp = verp.replace(']', '');
verp = verp.replace(')', '');
verp = verp.replace(' ', '_');
console.log(verp);
console.log("%c " + verp, "color: red;font-size:200%;");
if (lang.language == "ja") {
$("#release-" + verp).show();
} else {
@ -26,6 +26,7 @@ function verck(ver) {
var remote = electron.remote;
var dialog = remote.dialog;
var platform = remote.process.platform;
console.log("Your platform:"+remote.process.platform)
if (platform == "win32") {
const options = {
type: 'info',
@ -106,7 +107,7 @@ function verck(ver) {
todo(error);
console.error(error);
}).then(function (mess) {
console.log(mess);
console.table(mess);
if (mess) {
var electron = require("electron");
var remote = electron.remote;
@ -128,7 +129,7 @@ function verck(ver) {
var ipc = electron.ipcRenderer;
ipc.send('update', "true");
} else {
console.log(lang.lang_version_skipver);
console.warn(lang.lang_version_skipver);
todo(lang.lang_version_skipver);
}
} else {
@ -141,9 +142,7 @@ function verck(ver) {
if (!localStorage.getItem("last-notice-id")) {
localStorage.setItem("last-notice-id", 0)
}
console.log(localStorage.getItem("last-notice-id"))
var start = "https://thedesk.top/notice?since_id=" + localStorage.getItem("last-notice-id");
console.log(start);
fetch(start, {
method: 'GET'
}).then(function (response) {
@ -152,7 +151,6 @@ function verck(ver) {
todo(error);
console.error(error);
}).then(function (mess) {
console.log(mess.length);
if (mess.length < 1) {
return false;
} else {
@ -164,8 +162,8 @@ function verck(ver) {
break;
} else {
var show = true;
if(obj.Toot!=""){
var toot='<button class="btn-flat toast-action" onclick="detEx(\''+obj.Toot+'\',\'main\')">Show</button>';
if (obj.toot != "") {
var toot = '<button class="btn-flat toast-action" onclick="detEx(\'' + obj.toot + '\',\'main\')">Show</button>';
} else {
var toot = "";
}
@ -202,13 +200,11 @@ var infostreaming=false;
function infowebsocket() {
infows = new WebSocket("wss://thedesk.top/ws/");
infows.onopen = function (mess) {
console.log(tlid + ":Connect Streaming Info:");
console.log(mess);
console.log([tlid, ":Connect Streaming Info:", mess]);
infostreaming = true;
}
infows.onmessage = function (mess) {
console.log(":Receive Streaming:");
console.log(JSON.parse(mess.data));
console.log([tlid, ":Receive Streaming:", JSON.parse(mess.data)]);
var obj = JSON.parse(mess.data);
if (obj.type != "counter") {
localStorage.setItem("last-notice-id", obj.id)
@ -258,7 +254,22 @@ function infowebsocket(){
}
setInterval(function () {
if (!infostreaming) {
console.log("try to connect")
console.log("try to connect to base-streaming")
infowebsocket();
}
}, 10000);
function openRN() {
$('#releasenote').modal('open');
if (lang.language == "ja") {
verp = ver.replace('(', '');
verp = verp.replace('.', '-');
verp = verp.replace('.', '-');
verp = verp.replace('[', '-');
verp = verp.replace(']', '');
verp = verp.replace(')', '');
verp = verp.replace(' ', '_');
$("#release-" + verp).show();
} else {
$("#release-en").show();
}
}

View File

@ -42,7 +42,6 @@ function defaultEmoji(target){
});
$("#emoji-list").html(emojis);
$("#now-emoji").text(lang.lang_defaultemojis_text.replace("{{cat}}", defaultemojiname[target]));
console.log(target);
$(".emoji-control").addClass("hide");
}
function customEmoji() {
@ -60,7 +59,6 @@ function defEmoji(target){
} else {
emoji = twemoji.convert.fromCodePoint(hex[0]);
}
console.log(emoji)
var now = $("#textarea").val();
var selin = localStorage.getItem("cursor");
var now = $("#textarea").val();
@ -71,7 +69,6 @@ function defEmoji(target){
} else {
newt = emoji + now;
}
console.log(emoji);
$("#textarea").val(newt);
$("#textarea").focus();
var selin = $("#textarea").prop('selectionStart');
@ -82,7 +79,6 @@ function defEmoji(target){
}
function faicon() {
var json = faicons;
console.log(json);
var emojis = "";
Object.keys(json).forEach(function (key) {
var emoji = json[key];

View File

@ -193,6 +193,9 @@ var lang={
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "NSFW media",
"lang_parse_notffilter":"Show this user's notifications",
//misskey
"lang_misskeyparse_renote": "Repost",
"lang_misskeyparse_renoteqt": "Renote",

View File

@ -195,6 +195,9 @@ var lang={
"lang_parse_unvoted": "結果だけ見る",
"lang_parse_endedvote": "終了済み",
"lang_parse_thread": "会話を表示",
"lang_parse_unknown": "添付ファイル",
"lang_parse_nsfw": "閲覧注意",
"lang_parse_notffilter":"このユーザーの通知のみを表示",
//misskey
"lang_misskeyparse_renote": "再投稿",
"lang_misskeyparse_renoteqt": "引用",

View File

@ -40,6 +40,7 @@ if (obj[0].domain) {
ticker();
multiSelector();
verck(ver);
$("#something-wrong img").attr("src", "../../img/thinkingdesk.png")
}
}
}
@ -68,7 +69,6 @@ function login(url) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
var auth = "https://" + url + "/oauth/authorize?client_id=" + json[
"client_id"] + "&client_secret=" + json["client_secret"] +
"&response_type=code&redirect_uri=" + red + "&scope=read+write+follow";
@ -162,7 +162,6 @@ function getdata() {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (json.error) {
console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error,
@ -184,7 +183,6 @@ function getdata() {
vis: json["source"]["privacy"]
}];
var json = JSON.stringify(obj);
console.log(obj);
localStorage.setItem("multi", json);
localStorage.setItem("name_" + acct_id, json["display_name"]);
localStorage.setItem("user_" + acct_id, json["acct"]);
@ -212,7 +210,6 @@ function getdataAdv(domain, at) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (json.error) {
console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error,
@ -246,7 +243,6 @@ function getdataAdv(domain, at) {
localStorage.setItem("user_" + target, json["acct"]);
localStorage.setItem("user-id_" + target, json["id"]);
localStorage.setItem("prof_" + target, avatar);
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("multi", json);
location.href = "index.html";
@ -261,7 +257,6 @@ function refresh(target,loadskip) {
}
var start = "https://" + obj[target].domain +
"/api/v1/accounts/verify_credentials";
console.log(start);
fetch(start, {
method: 'GET',
headers: {
@ -274,7 +269,6 @@ function refresh(target,loadskip) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (json.error) {
console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error,
@ -298,8 +292,6 @@ function refresh(target,loadskip) {
localStorage.setItem("name_" + target, json["display_name"]);
localStorage.setItem("user_" + target, json["acct"]);
localStorage.setItem("user-id_" + target, json["id"]);
console.log("user-id_" + target+":"+json["id"])
console.log(localStorage.getItem("user-id_"+target));
localStorage.setItem("prof_" + target, avatar);
localStorage.setItem("follow_" + target, json["following_count"]);
obj[target] = ref;
@ -359,7 +351,6 @@ function ckdb(acct_id) {
localStorage.removeItem("bb_" + acct_id);
}
if (json[domain + "_home"]) {
console.log("unique name:"+json[domain + "_home"]);
localStorage.setItem("home_" + acct_id, json[domain + "_home"]);
}
if (json[domain + "_local"]) {
@ -396,8 +387,8 @@ function ckdb(acct_id) {
}).catch(function (error) {
console.error(error);
}).then(function (json) {
console.log(json);
if (json.error) {
console.error(json.error);
return;
}
if (json) {
@ -431,9 +422,13 @@ function multiSelector() {
var last = localStorage.getItem("main");
} else if (localStorage.getItem("last-use")) {
var last = localStorage.getItem("last-use");
}else{
var last=0;
if (last == "webview" || last == "noauth") {
last = "0";
}
} else {
var last = "0";
}
last = last + "";
var sel;
if (obj.length < 1) {
$("#src-acct-sel").html('<option value="tootsearch">Tootsearch</option>');
@ -442,7 +437,7 @@ function multiSelector() {
Object.keys(obj).forEach(function (key) {
var acct = obj[key];
var list = key * 1 + 1;
if (key == last) {
if (key+"" === last) {
sel = "selected";
var domain = acct.domain;
localStorage.setItem("domain_" + key, domain);
@ -461,12 +456,10 @@ function multiSelector() {
}
var profimg = acct.prof;
localStorage.setItem("prof_" + key, profimg);
console.log(profimg);
if (!profimg) {
profimg = "../../img/missing.svg";
}
$("#acct-sel-prof").attr("src", profimg);
console.log(domain);
if (domain) {
var cc = "(" + domain + ")";
} else {

View File

@ -32,7 +32,7 @@ function load() {
}
}
console.log(obj);
console.table(obj);
var templete;
Object.keys(obj).forEach(function (key) {
var acct = obj[key];
@ -99,7 +99,6 @@ function data(domain) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (!json.error) {
$("#ins-name").text(json.name);
$("#ins-upd").text(date(json.checked_at, 'full'));
@ -110,6 +109,8 @@ function data(domain) {
$("#ins-per").text(json.uptime * 100);
$("#ins-user").text(json.users);
$("#ins-ver").text(json.version);
} else {
console.error(json.error);
}
});
var start = "https://" + domain + "/api/v1/instance";
@ -124,7 +125,6 @@ function data(domain) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (!json.error) {
$("#ins-title").text(json.title);
$("#ins-desc").html(json.description);
@ -135,6 +135,8 @@ function data(domain) {
$("#ins-prof").attr('src', json.thumbnail);
$("#ins-admin").text(escapeHTML(json.contact_account.display_name) + "(" + json.contact_account.acct + ")");
$("#ins-admin").attr("href", "index.html?mode=user&code=" + json.contact_account.username + "@" + domain);
} else {
console.error(json.error);
}
});
}
@ -150,7 +152,6 @@ function multiDel(target) {
//公開範囲(差分のみ)
if (key >= target) {
var oldvis = localStorage.getItem("vis-memory-" + key);
console.log(oldvis);
if (oldvis) {
localStorage.setItem("vis-memory-" + nk, oldvis);
}
@ -175,7 +176,6 @@ function multiDel(target) {
});
//とりあえず消す
obj.splice(target, 1);
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("multi", json);
load();
@ -216,7 +216,6 @@ function multiDel2(target) {
Object.keys(obj).forEach(function (key) {
if (key >= target) {
var oldvis = localStorage.getItem("vis-memory-" + key);
console.log(oldvis);
if (oldvis) {
var nk = key - 1;
localStorage.setItem("vis-memory-" + nk, oldvis);
@ -287,7 +286,6 @@ function login(url) {
} else {
var red = 'thedesk://manager';
}
console.log(red);
localStorage.setItem("redirect", red);
var start = "https://" + url + "/api/v1/apps";
var httpreq = new XMLHttpRequest();
@ -303,7 +301,6 @@ function login(url) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
localStorage.setItem("msky", "false");
var auth = "https://" + url + "/oauth/authorize?client_id=" + json[
"client_id"] + "&client_secret=" + json["client_secret"] +
@ -389,7 +386,6 @@ function misskeyLogin(url) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
misskeyAuth(url, json.secret)
}
}
@ -411,7 +407,6 @@ function misskeyAuth(url, mkc){
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
const {
shell
} = require('electron');
@ -445,7 +440,6 @@ function code(code) {
}
var url = localStorage.getItem("domain_tmp");
localStorage.removeItem("domain_tmp");
console.log(localStorage.getItem("msky"));
if (localStorage.getItem("msky") == "true") {
var start = "https://" + url + "/api/auth/session/userkey";
var httpreq = new XMLHttpRequest();
@ -460,7 +454,6 @@ function code(code) {
if (httpreq.readyState === 4) {
var json = httpreq.response;
var i = sha256(json.accessToken + localStorage.getItem("mkc"));
console.log(json);
var avatar = json["user"]["avatarUrl"];
var priv = "public";
var add = {
@ -482,7 +475,6 @@ function code(code) {
localStorage.setItem("user_" + target, json["user"]["username"]);
localStorage.setItem("user-id_" + target, json["user"]["id"]);
localStorage.setItem("prof_" + target, avatar);
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("multi", json);
if ($("body").hasClass("first")) {
@ -511,7 +503,6 @@ function code(code) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
if (json["access_token"]) {
$("#auth").hide();
$("#add").show();
@ -537,7 +528,6 @@ function getdata(domain, at) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (json.error) {
console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + escapeHTML(json.error),
@ -572,7 +562,6 @@ function getdata(domain, at) {
localStorage.setItem("user_" + target, json["acct"]);
localStorage.setItem("user-id_" + target, json["id"]);
localStorage.setItem("prof_" + target, avatar);
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("multi", json);
if ($("body").hasClass("first")) {
@ -592,7 +581,6 @@ function refresh(target) {
}
var start = "https://" + obj[target].domain +
"/api/v1/accounts/verify_credentials";
console.log(start);
fetch(start, {
method: 'GET',
headers: {
@ -605,7 +593,6 @@ function refresh(target) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (json.error) {
console.error("Error:" + json.error);
Materialize.toast(lang.lang_fatalerroroccured + "Error:" + json.error,
@ -629,8 +616,6 @@ function refresh(target) {
localStorage.setItem("name_" + target, json["display_name"]);
localStorage.setItem("user_" + target, json["acct"]);
localStorage.setItem("user-id_" + target, json["id"]);
console.log("user-id_" + target+":"+json["id"])
console.log(localStorage.getItem("user-id_"+target));
localStorage.setItem("prof_" + target, avatar);
obj[target] = ref;
var json = JSON.stringify(obj);
@ -652,7 +637,6 @@ function misskeyRefresh(obj,target,url){
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
return;
var avatar = json["user"]["avatarURL"];
var priv = "public";
@ -673,7 +657,6 @@ function misskeyRefresh(obj,target,url){
localStorage.setItem("user_" + target, json["user"]["username"]);
localStorage.setItem("user-id_" + target, json["user"]["id"]);
localStorage.setItem("prof_" + target, avatar);
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("multi", json);
load();
@ -694,7 +677,6 @@ function multisel() {
var templete;
var last = localStorage.getItem("main");
var sel;
console.log(obj.length)
if (obj.length < 1) {
$("#src-acct-sel").html('<option value="tootsearch">Tootsearch</option>');
$("#add-acct-sel").html('<option value="noauth">' + lang.lang_login_noauth + '</option>');
@ -808,9 +790,7 @@ input.addEventListener("focus", function() {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (!json.error) {
var urls = "Suggest:";
Object.keys(json.instances).forEach(function (key) {
var url = json.instances[key];
@ -818,6 +798,8 @@ input.addEventListener("focus", function() {
'\')" class="pointer">' + escapeHTML(url.name) + '</a> ';
});
$("#ins-suggest").html(urls);
} else {
console.error(json.error);
}
});
}

View File

@ -21,7 +21,6 @@
ats = url.match(
/https:\/\/([-a-zA-Z0-9.]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#@]+)/
);
console.log(toot);
if (toot) {
if (toot[1]) {
var acct_id = $a.parent().attr("data-acct");
@ -42,7 +41,6 @@
tl('tag', decodeURI(tags[2]), acct_id, 'add')
}
} else if (ats) {
console.log(ats);
if (ats[2]) {
//Quesdon判定
if (!~ats[2].indexOf("@")) {
@ -81,39 +79,6 @@
});
//よく使うライブラリ
/*マルチバイト用切り出し*/
$.isSurrogatePear = function(upper, lower) {
return 0xD800 <= upper && upper <= 0xDBFF && 0xDC00 <= lower && lower <= 0xDFFF;
};
$.mb_strlen = function(str) {
var ret = 0;
for (var i = 0; i < str.length; i++, ret++) {
var upper = str.charCodeAt(i);
var lower = str.length > (i + 1) ? str.charCodeAt(i + 1) : 0;
if ($.isSurrogatePear(upper, lower)) {
i++;
}
}
return ret;
};
$.mb_substr = function(str, begin, end) {
var ret = '';
for (var i = 0, len = 0; i < str.length; i++, len++) {
var upper = str.charCodeAt(i);
var lower = str.length > (i + 1) ? str.charCodeAt(i + 1) : 0;
var s = '';
if ($.isSurrogatePear(upper, lower)) {
i++;
s = String.fromCharCode(upper, lower);
} else {
s = String.fromCharCode(upper);
}
if (begin <= len && len < end) {
ret += s;
}
}
return ret;
};
//コピー
function execCopy(string) {
@ -132,7 +97,7 @@ function nano(){
function progshow(e) {
if (e.lengthComputable) {
var percent = e.loaded / e.total;
console.log(percent * 100);
console.log("Progress: " + percent * 100);
$("#imgsel").hide();
if (percent < 1) {
$("#imgup").text(Math.floor(percent * 100) + "%");
@ -187,7 +152,7 @@ function playSound() {
context = new AudioContext();
context.createBufferSource().start(0);
context.decodeAudioData(request.response, function (buf) {
console.log(source)
console.log("Playing:" + source)
source.buffer = buf;
source.loop = false;
});
@ -196,6 +161,5 @@ function playSound() {
source.connect(volumeControl);
volumeControl.connect(context.destination);
volumeControl.gain.value = 0.8
console.log(volumeControl)
source.start(0);
}

View File

@ -123,15 +123,13 @@ function randomStr(l){
}
return r;
}
function rgbToHex(color)
{
function rgbToHex(color) {
// HEXに変換したものを代入する変数
var hex = '';
// 第1引数がHEXのとき変換処理は必要ないのでそのままreturn
// IE8の場合はjQueryのcss()関数でHEXを返すので除外
if (color.match(/^#[a-f\d]{3}$|^#[a-f\d]{6}$/i))
{
if (color.match(/^#[a-f\d]{3}$|^#[a-f\d]{6}$/i)) {
return color;
}
@ -139,8 +137,7 @@ function rgbToHex(color)
var regex = color.match(/^rgb\(([0-9.]+),\s*([0-9.]+),\s*([0-9.]+)\)$/);
// 正規表現でマッチしたとき
if (regex)
{
if (regex) {
var rgb =
[
// RGBからHEXへ変換
@ -149,12 +146,10 @@ function rgbToHex(color)
parseInt(regex[3]).toString(16)
];
for (var i = 0; i < rgb.length; ++i)
{
for (var i = 0; i < rgb.length; ++i) {
// rgb(1,1,1)のようなときHEXに変換すると1桁になる
// 1桁のときは前に0を足す
if (rgb[i].length == 1)
{
if (rgb[i].length == 1) {
rgb[i] = '0' + rgb[i];
}
hex += rgb[i];
@ -165,3 +160,37 @@ function rgbToHex(color)
console.error(color + ':第1引数はRGB形式で入力');
}
/*マルチバイト用切り出し*/
$.isSurrogatePear = function (upper, lower) {
return 0xD800 <= upper && upper <= 0xDBFF && 0xDC00 <= lower && lower <= 0xDFFF;
};
$.mb_strlen = function (str) {
var ret = 0;
for (var i = 0; i < str.length; i++ , ret++) {
var upper = str.charCodeAt(i);
var lower = str.length > (i + 1) ? str.charCodeAt(i + 1) : 0;
if ($.isSurrogatePear(upper, lower)) {
i++;
}
}
return ret;
};
$.mb_substr = function (str, begin, end) {
var ret = '';
for (var i = 0, len = 0; i < str.length; i++ , len++) {
var upper = str.charCodeAt(i);
var lower = str.length > (i + 1) ? str.charCodeAt(i + 1) : 0;
var s = '';
if ($.isSurrogatePear(upper, lower)) {
i++;
s = String.fromCharCode(upper, lower);
} else {
s = String.fromCharCode(upper);
}
if (begin <= len && len < end) {
ret += s;
}
}
return ret;
};
localStorage.removeItem("errors");

View File

@ -14,7 +14,6 @@ function tl(data) {
$("#notice_nano").text(cap(type, data) + " TL(" + localStorage.getItem(
"user_" + acct_id) + "@" + domain + ")");
var start = "https://" + domain + "/api/v1/timelines/" + com(type, data);
console.log(start);
fetch(start, {
method: 'GET',
headers: {
@ -46,17 +45,12 @@ var websocket=[];
var start = "wss://" + domain +
"/api/v1/streaming/?stream=hashtag&tag=" + data + "&access_token=" + at;
}
console.log(start);
var wsid = websocket.length;
websocket[wsid] = new WebSocket(start);
websocket[wsid].onopen = function (mess) {
console.log(tlid + ":Connect Streaming API:" + type);
console.log(mess);
$("#notice_icon_" + tlid).removeClass("red-text");
}
websocket[wsid].onmessage = function (mess) {
console.log(tlid + ":Receive Streaming API:");
console.log(websocket[wsid]);
var typeA = JSON.parse(mess.data).event;
if (typeA == "delete") {
var obj = JSON.parse(mess.data).payload;
@ -64,12 +58,11 @@ var websocket=[];
$("[toot-id=" + JSON.parse(mess.data).payload + "]").remove();
} else if (typeA == "update") {
var obj = JSON.parse(JSON.parse(mess.data).payload);
console.log(obj);
var templete = parse([obj], '', acct_id, tlid);
$("#timeline_nano").html(templete);
}
websocket[wsid].onclose = function (mess) {
console.log("Close Streaming API:" + type);
console.error("Close Streaming API:" + type);
}
}
websocket[wsid].onerror = function (error) {

View File

@ -179,7 +179,6 @@ function emojiInsert(code, del) {
} else {
var brank = " ";
}
console.log(selin);
var now = $("#textarea").val();
if (selin > 0) {
var before = now.substr(0, selin);

View File

@ -36,7 +36,7 @@ $("#drag").on('dragleave', function(e) {
//複数アップ
function pimg(files) {
console.log(files);
console.table(files);
for (i = 0; i < files.length; i++) {
var dot = files[i].path.match(/\.(.+)$/)[1];
if (dot == "bmp" || dot == "BMP") {
@ -95,7 +95,6 @@ function media(b64, type, no) {
localStorage.setItem("image", "busy");
todo("Image Upload...");
var media = toBlob(b64, type);
console.log(media);
var fd = new FormData();
fd.append('file', media);
var acct_id = $("#post-acct-sel").val();
@ -128,7 +127,6 @@ function media(b64, type, no) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
var img = localStorage.getItem("img");
if (json.type.indexOf("image") != -1) {
var html = '<img src="' + json[previewer] + '" class="preview-img pointer" data-media="' + json["id"] + '" onclick="deleteImage(\'' + json["id"] + '\')" title="' + lang.lang_postimg_delete + '">';
@ -182,14 +180,13 @@ function toBlob(base64, type) {
//画像を貼り付けたら…
var element = document.querySelector("#textarea");
element.addEventListener("paste", function (e) {
console.log(e)
if (!e.clipboardData || !e.clipboardData.items) {
return true;
}
// DataTransferItemList に画像が含まれいない場合は終了する
var imageItems = [...e.clipboardData.items].filter(i => i.type.startsWith('image'));
if (imageItems.length == 0) {
console.log("not image")
console.warn("it is not image")
return true;
}
@ -223,7 +220,6 @@ ipc.on('adobeagree', function (event, arg) {
localStorage.setItem("adobeagree", arg);
});
function deleteImage(key) {
console.log(key);
if (!confirm(lang.lang_postimg_delete)) {
return false;
}

View File

@ -17,7 +17,7 @@ function renote(id, acct_id, remote) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
console.log(["Success: renote", json]);
$("[toot-id=" + id + "]").addClass("rted");
$(".rt_" + id).toggleClass("teal-text");
}
@ -63,7 +63,7 @@ function reactiontoggle(id,acct_id,tlid){
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
console.log(["Success: reaction", json]);
if (json.reactions) {
var reactions = ["like", "love", "laugh", "hmm", "surprise", "congrats", "angry", "confused", "pudding", "rip"];
for (var i = 0; i < reactions.length; i++) {
@ -121,7 +121,6 @@ function reactRefresh(acct_id,id){
method: "POST",
body: JSON.stringify(req),
}
console.log(req)
fetch(start, i,
).then(function (response) {
return response.json();
@ -149,7 +148,6 @@ function reactRefreshCore(json){
Object.keys(json.reactions).forEach(function (keye) {
keyeClass = keye.replace(regExp, '');
if (json.reactions[keye]) {
console.log(json.reactions[keye])
$("#pub_" + id + " .re-" + keyeClass + "ct").text(json.reactions[keye])
$("#pub_" + id + " .re-" + keyeClass).removeClass("hide")
} else {

View File

@ -129,7 +129,7 @@ function post(mode,postvis) {
}
if ($("#sch-box").hasClass("sch-avail")) {
var scheduled = formattimeutc(new Date(Date.parse($("#sch-date").val())))
console.log(scheduled)
console.log("This toot will be posted at:" + scheduled)
schedule();
toot.scheduled_at = scheduled;
} else {
@ -164,7 +164,7 @@ function post(mode,postvis) {
hide_totals: htt
}
}
console.log(toot);
console.table(toot);
var httpreq = new XMLHttpRequest();
httpreq.open('POST', start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');
@ -245,7 +245,7 @@ function misskeyPost(){
localStorage.removeItem("stable")
}
var json = httpreq.response;
console.log(json);
console.log(["Success: toot", json]);
var box = localStorage.getItem("box");
if (box == "yes") {
hide();

View File

@ -49,7 +49,6 @@ function vis(set){
}
function loadVis() {
var vist = localStorage.getItem("vis");
console.log(vist);
if (!vist) {
vis("public");
} else {
@ -123,7 +122,6 @@ function schedule(){
$("#sch-box").show();
$("#sch-date").val(formattime(date));
console.log(formattime(date));
$("#sch-box").addClass("sch-avail");
}
}

View File

@ -68,7 +68,7 @@ function rt(id, acct_id, remote) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
console.log(["Success: boost", json]);
if (remote != "remote") {
$("[toot-id=" + id + "] .fav_ct").text(json.favourites_count);
if (!json.reblog) {
@ -128,7 +128,6 @@ function follow(acct_id,remote) {
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
var ent = {}
}
console.log(ent);
var httpreq = new XMLHttpRequest();
httpreq.open('POST', start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');
@ -138,7 +137,7 @@ function follow(acct_id,remote) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
console.log(["Success: folllow", json]);
if ($("#his-data").hasClass("following")) {
$("#his-data").removeClass("following");
$("#his-follow-btn").text(lang.lang_status_follow);
@ -266,7 +265,7 @@ function redraft(id, acct_id){
$("[toot-id=" + id + "] img.toot-img").each(function (i, elem) {
if (i < ct) {
var url = $(elem).attr("src");
console.log(url);
console.log("Play back image data:" + url);
$('#preview').append('<img src="' + url + '" style="width:50px; max-height:100px;">');
}
});
@ -307,7 +306,7 @@ function pin(id, acct_id) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
console.log(["Success: pinned", json]);
if ($("[toot-id=" + id + "]").hasClass("pined")) {
$("[toot-id=" + id + "]").removeClass("pined");
$(".pin_" + id).removeClass("blue-text");
@ -333,7 +332,7 @@ function request(id, flag, acct_id) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
console.log(["Success: request", "type:" + flag, json]);
showReq();
}
}
@ -356,7 +355,7 @@ function domainblock(add, flag, acct_id) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
console.log(["Success: domain block", json]);
showDom();
}
}
@ -371,7 +370,6 @@ function empUser(){
var usr = localStorage.getItem("user_emp");
var obj = JSON.parse(usr);
var id = $("#his-acct").attr("fullname");
console.log(id);
if (!obj) {
var obj = [];
obj.push(id);
@ -413,7 +411,6 @@ function pinUser(){
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
if ($("#his-end-btn").hasClass("endorsed")) {
$("#his-end-btn").removeClass("endorsed")
$("#his-end-btn").text(lang.lang_status_endorse)

View File

@ -68,7 +68,7 @@ input.addEventListener("focus", function() {
var at = localStorage.getItem("acct_" + acct_id + "_at");
suggest = "https://" + domain + "/api/v1/search?q=" + q
if (suggest != oldSuggest) {
console.log(suggest)
console.log("Try to get suggest at " + suggest)
fetch(suggest, {
method: 'GET',
headers: {
@ -152,7 +152,7 @@ function tagInsert(code, del) {
function cgNPs(q) {
suggest = "https://cg.toot.app/api/v1/search/light?q=" + q
if (suggest != oldSuggest) {
console.log(suggest)
console.log("Try to get suggest at " + suggest)
fetch(suggest, {
method: 'GET',
headers: {
@ -164,7 +164,6 @@ function cgNPs(q){
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (json[0]) {
var tags = "";
Object.keys(json).forEach(function (key4) {

View File

@ -80,8 +80,7 @@ function additional(acct_id, tlid) {
var dom = $(this);
var start = "./js/emoji/emoji-map.json";
var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.onreadystatechange = function()
{
xmlHttpRequest.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
if (this.response) {
var json = this.response;
@ -170,9 +169,7 @@ function additionalIndv(tlid, acct_id, id) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
//このリンク鳥やんけ、ってとき
console.log(json.provider_name);
if (json.provider_name == "Twitter") {
if (json.image) {
var twiImg = '<br><img src="' + json.image + '" style="max-width:100%" onclick="imgv(\'twi_' + id + '\', 0, \'twitter\');" id="twi_' + id + '-image-0" data-url="' + json.image + '" data-type="image">';
@ -243,7 +240,6 @@ function mov(id,tlid,type){
} else {
var tlide = "[tlid=" + tlid + "]";
}
console.log(tlid)
var mouseover = localStorage.getItem("mouseover");
if (!mouseover) {
mouseover = "";

View File

@ -40,7 +40,7 @@ function details(id, acct_id, tlid, mode) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
console.log(["Toot data:", json]);
if (!$("#timeline_" + tlid + " #pub_" + id).length) {
var html = parse([json], '', acct_id);
$("#toot-this").html(html);
@ -208,7 +208,6 @@ function context(id, acct_id) {
}).then(function (json) {
if (localStorage.getItem("mode_" + domain) == "misskey") {
json.reverse();
console.log(json);
var templete = misskeyParse(json, '', acct_id, "", "", []);
$("#toot-reply").html(templete);
$("#toot-reply .hide").html(lang.lang_details_filtered);
@ -482,7 +481,7 @@ function staCopy(id){
html = html.replace(/<br\s?\/?>/, "\n");
html = html.replace(/<p>/, "\n");
html = html.replace(/<\/p>/, "\n");
console.log(html);
console.log("Copy it:\n" + html);
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1");
html = $.strip_tags(html);
if (execCopy(html)) {
@ -505,7 +504,7 @@ function trans(tar,to){
}
$("#toot-this .additional").text("Loading...(Powered by Google Translate)");
var exec = 'https://script.google.com/macros/s/AKfycbxhwW5tjjop9Irg-y1zr_WsXlCKEzwWG6KuoOt_vVRDfEbRv0c/exec?format=json&text=' + encodeURIComponent(html) + '&source=' + tar + '&target=' + to
console.log(exec);
console.log("Try to translate from " + tar + " to " + to + " at " + exec);
fetch(exec, {
method: 'GET',
}).then(function (response) {

View File

@ -57,7 +57,6 @@ function dmmore(tlid){
}
//DMオブジェクトパーサー(トゥート)
function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
console.log(obj);
var templete = '';
if (obj[0]) {
localStorage.setItem("lastunix_" + tlid, date(obj[0].created_at, 'unix'));

View File

@ -114,7 +114,6 @@ function filter(){
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/filters"
console.log(start)
fetch(start, {
method: 'GET',
headers: {
@ -127,7 +126,6 @@ function filter(){
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (json) {
var filters = "";
Object.keys(json).forEach(function (key) {
@ -167,7 +165,6 @@ function makeNewFilter(){
if ($("#conv_filter:checked").val()) {
cont.push("thread");
}
console.log(cont);
if (!cont.length) {
$("#filtered-words").html('Error:' + lang.lang_filter_errordegree);
}
@ -235,7 +232,6 @@ function filterEdit(id,acct_id){
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/filters/" + id
console.log(start)
fetch(start, {
method: 'GET',
headers: {
@ -248,7 +244,6 @@ function filterEdit(id,acct_id){
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (json) {
var now = new Date();
now = now.getTime();
@ -297,7 +292,6 @@ function getFilter(acct_id){
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) != "misskey") {
var start = "https://" + domain + "/api/v1/filters"
console.log(start)
fetch(start, {
method: 'GET',
headers: {
@ -341,7 +335,6 @@ function filterUpdate(acct_id){
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/filters"
console.log(start)
fetch(start, {
method: 'GET',
headers: {
@ -393,45 +386,33 @@ function filterUpdateInternal(json,type){
*/
//通知フィルター
function exclude(key) {
var excludetxt="";
var excludetxt = localStorage.getItem("exclude-" + key);
if ($('#exc-reply-' + key + ':checked').val()) {
excludetxt = "?exclude_types[]=mention"
var reply=true
}else{
var reply=false;
}
if ($('#exc-fav-' + key + ':checked').val()) {
if(reply){
if (!excludetxt || excludetxt !="") {
excludetxt = excludetxt + "&exclude_types[]=favourite"
} else {
excludetxt = "?exclude_types[]=favourite"
}
var fav=true
}else{
var fav=false;
}
if ($('#exc-bt-' + key + ':checked').val()) {
if(reply || fav){
if (!excludetxt || excludetxt !="") {
excludetxt = excludetxt + "&exclude_types[]=reblog"
} else {
excludetxt = "?exclude_types[]=reblog"
}
var bt=true
}else{
var bt=false;
}
if ($('#exc-follow-' + key + ':checked').val()) {
if(reply || bt || fav){
if (!excludetxt || excludetxt !="") {
excludetxt = excludetxt + "&exclude_types[]=follow"
} else {
excludetxt = "?exclude_types[]=follow"
}
var follow=true;
}else{
var follow=false;
}
if ($('#exc-poll-' + key + ':checked').val()) {
if(reply || bt || fav || follow){
if (!excludetxt || excludetxt !="") {
excludetxt = excludetxt + "&exclude_types[]=poll"
} else {
excludetxt = "?exclude_types[]=poll"
@ -452,3 +433,25 @@ function excludeCk(key,target){
return "";
}
}
function checkNotfFilter(tlid){
var excludetxt = localStorage.getItem("exclude-" + tlid);
if(!excludetxt || excludetxt != ""){
return true;
}else{
return false;
}
}
function resetNotfFilter(tlid){
localStorage.setItem("exclude-" + tlid, "")
parseColumn();
}
function notfFilter(id,tlid){
var excludetxt = localStorage.getItem("exclude-" + tlid);
if (!excludetxt || excludetxt !="") {
excludetxt = excludetxt + "&account_id="+id
} else {
excludetxt = "?account_id="+id
}
localStorage.setItem("exclude-" + tlid, excludetxt)
parseColumn();
}

View File

@ -40,7 +40,6 @@ function list(){
});
} else {
var start = "https://" + domain + "/api/v1/lists"
console.log(start)
fetch(start, {
method: 'GET',
headers: {
@ -75,7 +74,6 @@ function makeNewList(){
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) != "misskey") {
var start = "https://" + domain + "/api/v1/lists"
console.log(start)
var httpreq = new XMLHttpRequest();
httpreq.open('POST', start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');
@ -93,7 +91,6 @@ function makeNewList(){
}
} else {
var start = "https://" + domain + "/api/users/lists/create"
console.log(start)
var httpreq = new XMLHttpRequest();
httpreq.open('POST', start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');
@ -119,7 +116,6 @@ function listUser(id,acct_id){
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/lists/" + id + "/accounts"
console.log(start)
fetch(start, {
method: 'GET',
headers: {
@ -149,7 +145,6 @@ function hisList(user,acct_id){
var at = localStorage.getItem("acct_" + acct_id + "_at");
if (localStorage.getItem("mode_" + domain) != "misskey") {
var start = "https://" + domain + "/api/v1/lists"
console.log(start)
fetch(start, {
method: 'GET',
headers: {
@ -175,7 +170,6 @@ function hisList(user,acct_id){
}
});
var start = "https://" + domain + "/api/v1/accounts/" + user + "/lists"
console.log(start)
fetch(start, {
method: 'GET',
headers: {
@ -245,7 +239,6 @@ function listAdd(id,user,acct_id){
account_ids: [user]
}
}
console.log(start)
var httpreq = new XMLHttpRequest();
httpreq.open('POST', start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');
@ -277,7 +270,6 @@ function listRemove(id,user,acct_id){
account_ids: [user]
}
}
console.log(start)
var httpreq = new XMLHttpRequest();
httpreq.open(method, start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');

View File

@ -857,7 +857,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
//オブジェクトパーサー(ユーザーデータ)
function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
console.log(obj)
console.log(["Parse them ", obj])
if (popup > 0 || popup == -1) {
} else {
@ -984,15 +984,14 @@ function connectMisskey(acct_id) {
localStorage.setItem("misskey_wss_" + acct_id, wsid);
misskeyws[wsid] = new WebSocket(start);
misskeyws[wsid].onopen = function (mess) {
console.log(tlid + ":Connect Streaming API:"+domain);
console.log(mess);
console.table({ "tlid": tlid, "type": "Connect Streaming API", "domain": domain, "message": [mess] })
misskeywsstate[wsid] = true
//$("#notice_icon_" + tlid).removeClass("red-text");
var send = '{"type":"connect","body":{"channel":"main","id":"notf:' + acct_id + '"}}'
misskeyws[wsid].send(send)
}
misskeyws[wsid].onmessage = function (mess) {
console.log(acct_id + ":Receive Streaming API:");
console.log([domain + ":Receive Streaming API:", data]);
var data = JSON.parse(mess.data)
var obj = data.body.body
@ -1010,7 +1009,7 @@ function connectMisskey(acct_id) {
templete = misskeyUserparse([obj.body], 'notf', acct_id, 'notf', popup);
}
if (JSON.parse(mess.data).body.type == "reaction") {
console.log("refresh")
console.log("reaction refresh")
reactRefresh(acct_id, obj.body.note.id)
}
if (!$("div[data-notfIndv=" + acct_id + "_" + obj.body.id + "]").length) {
@ -1048,7 +1047,6 @@ function connectMisskey(acct_id) {
jQuery("time.timeago").timeago();
} else if (data.type == "noteUpdated") {
if (data.body.type == "reacted") {
console.log(data.body.id)
reactRefresh(acct_id, data.body.id)
} else if (data.body.type == "deleted") {
$("#pub_" + data.body.id).hide();
@ -1058,15 +1056,14 @@ function connectMisskey(acct_id) {
}
}
misskeyws[wsid].onerror = function (error) {
console.error("Error closing");
console.error("Error closing " + tlid);
console.error(error);
misskeywsstate[wsid] = false
connectMisskey(acct_id)
return false;
};
misskeyws[wsid].onclose = function () {
console.log("Closing");
console.log(tlid);
console.warn("Closing " + tlid);
misskeywsstate[wsid] = false
connectMisskey(acct_id)
return false;

View File

@ -1,6 +1,5 @@
//Integrated TL
function mixtl(acct_id, tlid, type, delc, voice) {
console.log(delc);
localStorage.removeItem("morelock")
localStorage.setItem("now", type);
todo("Integrated TL Loading...(Local)");
@ -94,21 +93,18 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
websocketLocal[wslid] = new WebSocket(startLocal);
websocketHome[wshid].onopen = function (mess) {
localStorage.setItem("wssH_" + tlid, wshid);
console.log(tlid + ":Connect Streaming API(Integrated:Home)");
console.log(mess);
console.table({ "tlid": tlid, "type": "Connect Streaming API(Integrated:Home)", "domain": domain, "message": mess })
$("#notice_icon_" + tlid).removeClass("red-text");
}
websocketLocal[wslid].onopen = function (mess) {
localStorage.setItem("wssL_" + tlid, wslid);
console.log(tlid + ":Connect Streaming API(Integrated:Local)");
console.log(mess);
console.table({ "tlid": tlid, "type": "Connect Streaming API(Integrated:Local)", "domain": domain, "message": mess })
$("#notice_icon_" + tlid).removeClass("red-text");
}
websocketLocal[wslid].onmessage = function (mess) {
console.log("Receive Streaming API:(Integrated:Local)");
console.log(["Receive Streaming API:(Integrated:Local)", obj]);
var obj = JSON.parse(JSON.parse(mess.data).payload);
console.log(obj);
var type = JSON.parse(mess.data).event;
if (type == "delete") {
if (delc == "true") {
@ -145,10 +141,8 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
}
}
websocketHome[wshid].onmessage = function (mess) {
console.log("Receive Streaming API:(Integrated:Home)");
console.log(["Receive Streaming API:(Integrated:Home)", obj]);
var obj = JSON.parse(JSON.parse(mess.data).payload);
console.log(obj);
var type = JSON.parse(mess.data).event;
if (type == "delete") {
if (del > 10) {
@ -211,7 +205,7 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
}
};
websocketLocal[wslid].onclose = function () {
console.log('WebSocketLocal Closing:' + tlid);
console.warn('WebSocketLocal Closing:' + tlid);
if (mode == "error") {
$("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Closed');
@ -224,8 +218,7 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
}
};
websocketHome[wshid].onerror = function (error) {
console.error('WebSocketHome Error')
console.error(error);
console.error(['WebSocketHome Error', error])
if (mode == "error") {
$("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Error ' + error);
@ -238,7 +231,7 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
}
};
websocketHome[wshid].onclose = function () {
console.log('WebSocketHome Closing:' + tlid);
console.warn('WebSocketHome Closing:' + tlid);
if (mode == "error") {
$("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Closed');

View File

@ -79,15 +79,15 @@ function notfColumn(acct_id, tlid, sys){
}
if (obj.type != "follow") {
if (misskey) {
templete = templete+misskeyParse([obj], 'notf', acct_id, 'notf', -1, mute);
templete = templete + misskeyParse([obj], 'notf', acct_id, tlid, -1, mute);
} else {
templete = templete+parse([obj], 'notf', acct_id, 'notf', -1, mute);
templete = templete + parse([obj], 'notf', acct_id, tlid, -1, mute);
}
} else {
if (misskey) {
templete = templete+misskeyUserparse([obj], 'notf', acct_id, 'notf', -1, mute);
templete = templete + misskeyUserparse([obj], 'notf', acct_id, tlid, -1, mute);
} else {
templete = templete+userparse([obj.account], 'notf', acct_id, 'notf', -1);
templete = templete + userparse([obj.account], 'notf', acct_id, tlid, -1);
}
}
@ -147,7 +147,7 @@ function notfCommon(acct_id, tlid, sys) {
}
}
fetch(start, i).then(function (response) {
console.log(response.headers.get('link'));
console.log("header to get param:" + response.headers.get('link'));
return response.json();
}).catch(function (error) {
todo(error);
@ -218,25 +218,20 @@ function notfWS(misskey,acct_id,tlid,domain,at){
var start = wss + "/api/v1/streaming/?stream=user&access_token=" +
at;
console.log(start);
var wsid = websocketNotf.length;
websocketNotf[acct_id] = new WebSocket(start);
console.log(websocketNotf);
websocketNotf[acct_id].onopen = function (mess) {
console.log("Connect Streaming API(Notf):");
console.log(mess);
console.table({ "acct_id": acct_id, "type": "Connect Streaming API(Notf)", "domain": domain, "message": [mess] })
$("i[data-notf=" + acct_id + "]").removeClass("red-text");
}
websocketNotf[acct_id].onmessage = function (mess) {
console.log("Receive Streaming API(Notf):"+acct_id);
console.log(["Receive Streaming API(Notf):" + acct_id + "(" + domain + ")", JSON.parse(JSON.parse(mess.data).payload)]);
var popup = localStorage.getItem("popup");
if (!popup) {
popup = 0;
}
console.log(domain)
var obj = JSON.parse(JSON.parse(mess.data).payload);
console.log(obj);
var type = JSON.parse(mess.data).event;
if (type == "notification") {
var templete = "";
@ -264,8 +259,7 @@ function notfWS(misskey,acct_id,tlid,domain,at){
}
//一定のスクロールで発火
function notfmore(tlid) {
console.log(moreloading);
console.log("kicked");
console.log({ "status": "kicked", "status": moreloading });
var multi = localStorage.getItem("column");
var obj = JSON.parse(multi);
var acct_id = obj[tlid].domain;
@ -308,7 +302,7 @@ function notfmore(tlid) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
console.log(["More notifications on " + tlid, json]);
var max_id = httpreq.getResponseHeader("link").match(/[?&]{1}max_id=([0-9]+)/)[1];
if (json[0]) {
var templete = "";
@ -392,12 +386,10 @@ function notfCanceler(acct){
$(".notf-icon_" + acct).removeClass("red-text");
}
function allNotfRead() {
console.log(localStorage.getItem("notf-fav_2"));
var multi = localStorage.getItem("multi");
if (multi) {
var obj = JSON.parse(multi);
Object.keys(obj).forEach(function (key) {
console.log(key);
notfCanceler(key)
});
}

View File

@ -3,7 +3,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var templete = '';
if (obj[0]) {
if (tlid === 1) {
console.log("testalive:"+"lastunix_"+ tlid+":"+date(obj[0].created_at, 'unix'))
}
localStorage.setItem("lastunix_" + tlid, date(obj[0].created_at, 'unix'));
}
@ -235,7 +235,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var what = lang.lang_parse_polled;
var icon = "fa-tasks purple-text";
}
var noticetext = '<span class="cbadge cbadge-hover"title="' + date(toot.created_at,
var noticetext = '<i class="fas fa-filter pointer big-text" onclick="notfFilter(\'' + toot.account.id +
'\',\'' + tlid + '\');" title="' + lang.lang_parse_notffilter + '"></i><span class="cbadge cbadge-hover"title="' + date(toot.created_at,
'absolute') + '(' + lang.lang_parse_notftime + ')"><i class="far fa-clock"></i>' + date(toot.created_at,
datetype) +
'</span><i class="big-text fas ' + icon + '"></i><a onclick="udg(\'' + toot.account.id +
@ -585,7 +586,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var sense = "sensitive"
var blur = media.blurhash
if (blur) {
nsfwmes='<div class="nsfw-media">NSFW media</div>'
nsfwmes = '<div class="nsfw-media">' + lang.lang_parse_nsfw + '</div>'
purl = parseBlur(blur)
var sense = ""
}
@ -593,11 +594,25 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var sense = ""
var blur = null
}
if (media.pleroma) {
if (media.pleroma.mime_type.indexOf("video") !== -1) {
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',' +
acct_id + ')" id="' + id + '-image-' + key2 + '" data-url="' + url +
'" data-type="video" class="img-parsed"><video src="' +
purl + '" class="' + sense +
' toot-img pointer" style="max-width:100%;"></a></span>';
}
} else {
if (media.type == "unknown") {
viewer = viewer + '<a href="' + media.remote_url + '" title="' + media.remote_url + '">[' + lang.lang_parse_unknown + ']</a> '
} else {
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',\'' +
acct_id + '\')" id="' + id + '-image-' + key2 + '" data-url="' + url +
'" data-type="' + media.type + '" class="img-parsed img-link" style="width:calc(' + cwdt + '% - 1px); height:' + imh + ';"><img draggable="false" src="' +
purl + '" class="' + sense +
' toot-img pointer">' + nsfwmes + '</a>';
}
}
});
media_ids = media_ids.slice(0, -1);
@ -872,7 +887,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
var datetype = localStorage.getItem("datetype");
Object.keys(obj).forEach(function (key) {
var toot = obj[key];
console.log(toot)
console.log(["Parsing", toot])
if (!toot.username) {
var raw = toot;
toot = toot.account;
@ -885,7 +900,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
} else {
var locked = "";
}
if (auth) {
if (auth == "request") {
var authhtml = '<i class="material-icons gray pointer" onclick="request(\'' +
toot.id + '\',\'authorize\',' + acct_id + ')" title="Accept">person_add</i> <i class="material-icons gray pointer" onclick="request(\'' +
toot.id + '\',\'reject\',' + acct_id + ')" title="Reject">person_add_disabled</i>';

View File

@ -25,13 +25,12 @@ function pollCalc(){
var days = $("#days_poll").val();
var hrs = $("#hours_poll").val();
var mins = $("#mins_poll").val();
console.log(days*86400+hrs*3600+mins*60)
console.log("Poll calc:" + days * 86400 + hrs * 3600 + mins * 60)
return days * 86400 + hrs * 3600 + mins * 60;
}
//Vote
function voteSelMastodon(acct_id, id, to, mul) {
console.log('.vote_'+acct_id+'_'+id+'_'+to);
if ($('.vote_' + acct_id + '_' + id + '_' + to).hasClass("sel")) {
$('.vote_' + acct_id + '_' + id + '_' + to).css("background-color", "transparent")
$('.vote_' + acct_id + '_' + id + '_' + to).removeClass("sel");
@ -95,7 +94,7 @@ function voteMastodonrefresh(acct_id,id){
httpreqd.onreadystatechange = function () {
if (httpreqd.readyState == 4) {
var json = httpreqd.response;
console.log(json);
console.log(["Refresh vote", json]);
if (!json) {
return false;
}

View File

@ -33,7 +33,6 @@ $repeat = setInterval(function() {
var obj = JSON.parse(voice);
if (obj[0]) {
$synthes.text = obj[0];
console.log($synthes);
speechSynthesis.speak($synthes);
obj.splice(0, 1);
var json = JSON.stringify(obj);

View File

@ -31,7 +31,7 @@ function src(mode) {
} else {
var start = "https://" + domain + "/api/v1/search?q=" + q
}
console.log(start)
console.log("Try to search at " + start)
fetch(start, {
method: 'GET',
headers: {
@ -44,7 +44,7 @@ function src(mode) {
src("v1")
return false;
}).then(function (json) {
console.log(json);
console.log(["Search", json]);
//ハッシュタグ
if (json.hashtags[0]) {
var tags = "";
@ -83,14 +83,13 @@ function tsAdd(q){
var obj = JSON.parse(multi);
localStorage.setItem("card_" + obj.length, "true");
obj.push(add);
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("column", json);
parseColumn();
}
function tootsearch(tlid, q) {
var start = "https://tootsearch.chotto.moe/api/v1/search?from=0&sort=created_at%3Adesc&q=" + q
console.log(start)
console.log("Toot srrach at " + start)
$("#notice_" + tlid).text("tootsearch(" + q + ")");
$("#notice_icon_" + tlid).text("search");
fetch(start, {
@ -106,13 +105,10 @@ function tootsearch(tlid,q){
}).then(function (raw) {
var templete = "";
var json = raw.hits.hits;
console.log(json);
var max_id = raw["hits"].length;
for (var i = 0; i < json.length; i++) {
var toot = json[i]["_source"];
console.log(lastid)
if (lastid != toot.uri) {
console.log(toot);
if (toot && toot.account) {
templete = templete + parse([toot], "noauth", null, tlid, 0, [], "tootsearch")
}
@ -133,7 +129,6 @@ function moreTs(tlid,q){
var sid = $("#timeline_" + tlid + " .ts-marker").last().attr("data-maxid");
moreloading = true;
var start = "https://tootsearch.chotto.moe/api/v1/search?from=" + sid + "&sort=created_at%3Adesc&q=" + q
console.log(start)
$("#notice_" + tlid).text("tootsearch(" + q + ")");
$("#notice_icon_" + tlid).text("search");
fetch(start, {
@ -149,13 +144,10 @@ function moreTs(tlid,q){
}).then(function (raw) {
var templete = "";
var json = raw.hits.hits;
console.log(json);
var max_id = raw["hits"].length;
for (var i = 0; i < json.length; i++) {
var toot = json[i]["_source"];
console.log(lastid)
if (lastid != toot.uri) {
console.log(toot);
if (toot && toot.account) {
templete = templete + parse([toot], "noauth", null, tlid, 0, [], "tootsearch")
}
@ -175,7 +167,6 @@ function moreTs(tlid,q){
function graphDraw(tag) {
var tags = "";
var his = tag.history;
console.log(his);
var max = Math.max.apply(null, [his[0].uses, his[1].uses, his[2].uses, his[3].uses, his[4].uses, his[5].uses, his[6].uses]);
var six = 50 - (his[6].uses / max * 50);
var five = 50 - (his[5].uses / max * 50);

View File

@ -58,7 +58,7 @@ function favTag(){
Object.keys(obj).forEach(function (key) {
var tag = obj[key];
if (nowPT != tag) {
console.log(nowPT+"/"+tag);
console.log("stable tags:" + nowPT + "/" + tag);
var ptt = lang.lang_tags_realtime;
var nowon = "";
} else {
@ -80,7 +80,6 @@ function trendTag(){
var domain = "imastodon.net"
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/trend_tags"
console.log(start)
fetch(start, {
method: 'GET',
headers: {

View File

@ -7,7 +7,7 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
var domain = localStorage.getItem("domain_" + acct_id);
//タグとかの場合はカラム追加して描画
if (tlid == "add") {
console.log("add");
console.log("add new column");
var newtab = $(".box").length;
var add = {
domain: acct_id,
@ -18,7 +18,6 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
var obj = JSON.parse(multi);
localStorage.setItem("card_" + obj.length, "true");
obj.push(add);
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("column", json);
parseColumn();
@ -125,14 +124,14 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
};
}
console.log(start);
console.log(["Try to get timeline of " + tlid, start])
fetch(start, i).then(function (response) {
return response.json();
}).catch(function (error) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json)
console.log(["Result of getting timeline of " + tlid, json])
$("#landing_" + tlid).hide();
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
@ -213,18 +212,15 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
var start = wss +
"/api/v1/streaming/?stream=direct&access_token=" + at;
}
console.log(start);
var wsid = websocket.length;
localStorage.setItem("wss_" + tlid, wsid);
websocket[wsid] = new WebSocket(start);
websocket[wsid].onopen = function (mess) {
console.log(tlid + ":Connect Streaming API:" + type);
console.log(mess);
console.table({ "tlid": tlid, "type": "Connect Streaming API" + type, "domain": domain, "message": [mess] })
$("#notice_icon_" + tlid).removeClass("red-text");
}
websocket[wsid].onmessage = function (mess) {
console.log(tlid + ":Receive Streaming API:");
console.log(JSON.parse(mess.data));
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;
@ -267,7 +263,6 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
} else if (typeA == "update" || typeA == "conversation") {
localStorage.removeItem("delete");
var obj = JSON.parse(JSON.parse(mess.data).payload);
console.log(obj);
if ($("#timeline_" + tlid + " [toot-id=" + obj.id + "]").length < 1) {
if (voice) {
say(obj.content)
@ -315,8 +310,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
return false;
};
websocket[wsid].onclose = function () {
console.log("Closing");
console.log(tlid);
console.warn("Closing " + tlid);
if (mode == "error") {
$("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Closed');
@ -431,7 +425,6 @@ function moreload(type, tlid) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (misskey) {
var templete = misskeyParse(json, '', acct_id, tlid, "", mute);
} else {
@ -447,7 +440,7 @@ function moreload(type, tlid) {
}
//TL差分取得
function tlDiff(type, data, acct_id, tlid, delc, voice, mode) {
console.log("sabun")
console.log("Get diff of TL" + tlid)
var multi = localStorage.getItem("column");
var obj = JSON.parse(multi);
var acct_id = obj[tlid].domain;
@ -540,7 +533,7 @@ function tlDiff(type, data, acct_id, tlid, delc, voice, mode) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
console.log(["Result diff of TL" + tlid, json]);
if (misskey) {
var templete = misskeyParse(json, '', acct_id, tlid, "", mute);
} else {
@ -564,12 +557,12 @@ function tlCloser() {
Object.keys(websocket).forEach(function (tlid) {
if (websocketOld[tlid]) {
websocketOld[tlid].close();
console.log("Close Streaming API: Old" + tlid);
console.log("%c Close Streaming API: Old" + tlid, "color:blue");
}
if (websocket[0]) {
console.log(websocket[0]);
websocket[tlid].close();
console.log("Close Streaming API:" + tlid);
console.log("%c Close Streaming API:" + tlid, "color:blue");
}
});
@ -577,7 +570,7 @@ function tlCloser() {
Object.keys(websocketHome).forEach(function (tlid) {
if (websocketHome[tlid]) {
websocketHome[tlid].close();
console.log("Close Streaming API:MixHome" + tlid);
console.log("%c Close Streaming API:Integrated Home" + tlid, "color:blue");
}
});
@ -585,7 +578,7 @@ function tlCloser() {
Object.keys(websocketLocal).forEach(function (tlid) {
if (websocketLocal[tlid]) {
websocketLocal[tlid].close();
console.log("Close Streaming API:MixLocal" + tlid);
console.log("%c Close Streaming API:Integrated Local" + tlid, "color:blue");
}
});
@ -593,14 +586,14 @@ function tlCloser() {
Object.keys(websocketNotf).forEach(function (tlid) {
if (websocketNotf[tlid]) {
websocketNotf[tlid].close();
console.log("Close Streaming API:Notf" + tlid);
console.log("%c Close Streaming API:Notf" + tlid, "color:blue");
}
});
Object.keys(misskeyws).forEach(function (tlid) {
if (misskeyws[tlid]) {
misskeyws[tlid].close();
console.log("Close Streaming API:Misskey" + tlid);
console.log("%c Close Streaming API:Misskey" + tlid, "color:blue");
}
});
misskeyws = {}
@ -789,7 +782,7 @@ function strAliveInt() {
setTimeout(strAlive, 10000);
}
function reconnector(tlid, type, acct_id, data, mode) {
console.log("Reconnector:" + mode)
console.log("%c Reconnector:" + mode + "(timeline" + tlid + ")", "color:pink")
if (type == "mix" || type == "integrated" || type == "plus") {
if (localStorage.getItem("voice_" + tlid)) {
var voice = true;

View File

@ -59,7 +59,6 @@ function imgv(id, key, acct_id) {
$("#imagemodal").css("width", width + "px")
}
} else {
console.log("long")
$("#imagemodal img").css("width", "auto")
var widthS = windowH / height * width;
if (widthS < windowW) {
@ -149,7 +148,6 @@ function imgCont(type) {
$("#imagemodal").css("width", width + "px")
}
} else {
console.log("long")
$("#imagemodal img").css("width", "auto")
var widthS = windowH / height * width;
if (widthS < windowW) {
@ -167,7 +165,6 @@ function imgCont(type) {
} else {
$("#image-next").prop("disabled", false);
}
console.log("#" + id + "-image-" + (key * 1 - 1));
if ($("#" + id + "-image-" + (key * 1 - 1)).length === 0) {
$("#image-prev").prop("disabled", true);
} else {
@ -231,7 +228,6 @@ function zoom(z) {
$(this).on('touchmove', function (event) {
if ($(target).data('down') === true) {
// スクロール
console.log($(target).data('x'));
target.scrollLeft($(target).data('scrollLeft') + $(target).data('x') -
getX(event));
target.scrollTop($(target).data('scrollTop') + $(target).data('y') -
@ -284,7 +280,7 @@ function dlImg(){
}
ipc.send('general-dl', [url, save, false]);
ipc.on('general-dl-prog', function (event, arg) {
console.log(arg);
console.log("Progress: " + arg);
})
ipc.on('general-dl-message', function (event, arg) {
var argC = arg.replace(/\\/g, "\\\\") + "\\\\.";

View File

@ -21,7 +21,7 @@ $('.type').click(function() {
})
//最初、カラム変更時に発火
function parseColumn(dontclose) {
console.log("parse");
console.log("%c Parse column", "color:red;font-size:125%");
var size = localStorage.getItem("size");
if (size) {
$("#timeline-container").css("font-size", size + "px");
@ -60,7 +60,7 @@ function parseColumn(dontclose) {
});
}
var acctlist = obj;
console.log(obj);
console.table(obj);
/*var xed=localStorage.getItem("xed");
if(xed){
xpand();
@ -169,7 +169,11 @@ function parseColumn(dontclose) {
'<input type="checkbox" class="filled-in" id="exc-bt-' + key + '" ' + excludeCk(key, "reblog") + ' /><label for="exc-bt-' + key + '" class="exc-chb" ><i class="fas fa-retweet exc-icons"></i></label> ' +
'<input type="checkbox" class="filled-in" id="exc-follow-' + key + '" ' + excludeCk(key, "follow") + ' /><label for="exc-follow-' + key + '" class="exc-chb" ><i class="fas fa-users exc-icons"></i></label> ' +
'<input type="checkbox" class="filled-in" id="exc-poll-' + key + '" ' + excludeCk(key, "poll") + ' /><label for="exc-poll-' + key + '" class="exc-chb" ><i class="fas fa-tasks exc-icons"></i></label> ' +
'<button class="btn waves-effect" style="width:60px; padding:0;" onclick="exclude('+key+')">Filter</button><br>';
'<button class="btn waves-effect" style="width:60px; padding:0;" onclick="exclude(' + key + ')">Filter</button>';
if(checkNotfFilter(key)){
exclude=exclude+'<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter(' + key + ')">Clear all</button>'
}
exclude=exclude+"<br>";
} else if (acct.type == "home") {
var exclude = '<a onclick="ebtToggle(' + key +
')" class="setting nex"><i class="fas fa-retweet waves-effect nex" title="' + lang.lang_layout_excludingbt + '" style="font-size:24px"></i><span id="sta-bt-' +
@ -272,7 +276,6 @@ function parseColumn(dontclose) {
}
function checkStr(type, data, acct_id, key, delc, voice) {
if ($('#notice_icon_' + key).hasClass("red-text") && type != "notf" && type != "mix") {
console.log("sabun-get")
goTop(key);
tlDiff(type, data, acct_id, key, delc, voice, "");
} else {
@ -305,7 +308,9 @@ function secvis(set){
//カラム追加
function addColumn() {
var acct = $("#add-acct-sel").val();
if(acct != "webview" && acct != "noauth"){
localStorage.setItem("last-use", acct);
}
var type = $("#type-sel").val();
if (acct == "noauth") {
acct = $("#noauth-url").val();
@ -366,7 +371,6 @@ function removeColumn(tlid) {
var ipc = electron.ipcRenderer;
ipc.send('column-del', "");
ipc.on('column-del-reply', function (event, arg) {
console.log(arg);
if (arg === 1) {
localStorage.removeItem("card_" + tlid);
obj.splice(tlid, 1);

View File

@ -30,7 +30,8 @@ function menu(){
}
$(function () {
$( "#menu" ).draggable({handle: "#menu-bar",
$("#menu").draggable({
handle: "#menu-bar",
stop: function () {
var left = $('#menu').offset().left;
if (left > $('body').width() - $('#menu').width()) {

View File

@ -42,7 +42,8 @@ function show() {
}
$(function () {
$( "#post-box" ).draggable({handle: "#post-bar",
$("#post-box").draggable({
handle: "#post-bar",
stop: function () {
var left = $('#post-box').offset().left;
if (left > $('body').width() - $('#post-box').width()) {

View File

@ -28,7 +28,7 @@ function scrollck() {
var scrt = $(this).find(".tl").height() - $(window).height();
var scr = $(this).scrollTop();
if (scr > scrt) {
console.log("kicked");
console.log("kicked more loading:" + tlid);
moreload('', tlid);
}
});
@ -44,7 +44,6 @@ function goColumn(key){
$("#sort-box").addClass("hide");
$("#sort-box").removeClass("show");
if ($('[tlid=' + key + ']').length) {
console.log($('[tlid='+key+']').offset().left);
$("#timeline-container").animate({ scrollLeft: $("#timeline-container").scrollLeft() + $('[tlid=' + key + ']').offset().left });
}
}

View File

@ -127,6 +127,7 @@ function load() {
$("#c2-file").text(localStorage.getItem("custom2"));
$("#c3-file").text(localStorage.getItem("custom3"));
$("#c4-file").text(localStorage.getItem("custom4"));
//$("#log").val(localStorage.getItem("errors"))
}
function climute() {
@ -141,7 +142,6 @@ function climute(){
return;
}
var templete;
console.log(obj)
Object.keys(obj).forEach(function (key) {
var cli = obj[key];
var list = key * 1 + 1;
@ -233,7 +233,6 @@ function exportSettings(){
properties: ['openFile', 'createDirectory'],
defaultPath: "export.thedeskconfigv2"
}, (savedFiles) => {
console.log(savedFiles);
if (!savedFiles) {
return false;
}
@ -294,7 +293,6 @@ function exportSettings(){
var tagarr = localStorage.getItem("tag");
var favtag = JSON.parse(tagarr);
exp.favoriteTags = favtag;
console.log(exp);
ipc.send('export', [savedFiles, JSON.stringify(exp)]);
alert("Done.")
//cards
@ -316,7 +314,6 @@ function importSettings(){
{ name: 'TheDesk Config', extensions: ['thedeskconfig', 'thedeskconfigv2'] },
]
}, (fileNames) => {
console.log(fileNames);
if (!fileNames) {
return false;
}
@ -363,7 +360,6 @@ function importSettings(){
//Version 1
localStorage.setItem("theme", obj.theme);
if (obj.width) {
console.log(obj.width)
localStorage.setItem("width", obj.width);
}
if (obj.font) {
@ -552,7 +548,6 @@ function deleteIt(){
function ctLoad() {
ipc.send('theme-json-list', "");
ipc.on('theme-json-list-response', function (event, args) {
console.log(args);
var templete = "";
Object.keys(args).forEach(function (key) {
var theme = args[key];
@ -596,7 +591,6 @@ function custom(){
$("#delTheme").removeClass("disabled")
ipc.send('theme-json-request', id);
ipc.on('theme-json-response', function (event, args) {
console.log(args);
$("#custom_name").val(args.name);
$("#custom_desc").val(args.desc);
$("#" + args.base).prop("checked", true);
@ -633,7 +627,6 @@ function customImp(){
}
}
function hardwareAcceleration(had) {
console.log("ha");
ipc.send('ha', had);
}

View File

@ -61,7 +61,7 @@ function Scap(type, data) {
} else if (type == "tootsearch") {
return "tootsearch(" + data + ")"
} else {
console.log(type);
console.error("unknown timeline type: " + type);
}
}

View File

@ -79,7 +79,7 @@ function nowplaying(mode){
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
console.table(json);
if (json.length < 1) {
return false;
}
@ -133,7 +133,7 @@ function nowplaying(mode){
console.error(arg);
return;
}
console.log(arg);
console.table(arg);
var content = localStorage.getItem("np-temp");
if (!content || content == "" || content == "null") {
var content = "#NowPlaying {song} / {album} / {artist}\n{url}";

View File

@ -66,7 +66,6 @@ function trendTagonTip(){
var domain = "imastodon.net"
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/trend_tags"
console.log(start)
fetch(start, {
method: 'GET',
headers: {
@ -109,7 +108,6 @@ function spotifytips(){
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
var ms = json.progress_ms;
var last = 1000 - ms % 1000;
var item = json.item;
@ -200,4 +198,3 @@ function tipsToggle(){
if (localStorage.getItem("tips")) {
tips(localStorage.getItem("tips"));
}

View File

@ -440,7 +440,7 @@ function showReq(more, acct_id) {
}).then(function (json) {
if (localStorage.getItem("mode_" + domain) != "misskey") {
var templete = userparse(json, true,acct_id);
var templete = userparse(json, "request", acct_id);
} else {
var templete = misskeyUserparse(json, true, acct_id);
}
@ -538,9 +538,8 @@ function showFrl(more, acct_id) {
$("#his-follow-recom-contents").html(lang.lang_details_nodata + "(" + lang.lang_hisdata_frcreq + ")<br>");
console.error(error);
}).then(function (json) {
console.log(json);
if (!json[0]) {
console.log("No data");
console.warn("No suggestions(recommend) data");
templete = lang.lang_details_nodata + "(" + lang.lang_hisdata_frcwarn + ")<br>";
} else {
var templete = userparse(json, '', acct_id);
@ -608,7 +607,6 @@ function showMat() {
var acct_id = $("#his-data").attr("use-acct");
full = full.split("@");
var start = "https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-filtered-api.cgi?" + full[1] + "+" + full[0];
console.log(start);
fetch(start, {
method: 'GET',
headers: {
@ -621,7 +619,6 @@ function showMat() {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
var templete = "";
Object.keys(json).forEach(function (key) {
var user = json[key];

View File

@ -30,7 +30,7 @@ function imgChange(imgfile, target) {
var acct_id = $('#his-data').attr("use-acct");
todo("アップロードしています")
if (!imgfile.files.length) {
console.log("No Img");
console.warn("No Image to upload");
return;
}
var file = imgfile.files[0];
@ -52,7 +52,6 @@ function imgChange(imgfile, target) {
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
console.log(json);
$('#his-data').modal('close');
todc();
localStorage.removeItem("image");

View File

@ -19,7 +19,7 @@ function udgEx(user,acct_id){
if (acct_id == "main") {
acct_id = localStorage.getItem("main");
}
console.log(user);
console.log("Get user data of " + user);
var domain = localStorage.getItem("domain_" + acct_id);
if (localStorage.getItem("mode_" + domain) == "misskey") { return false; }
var at = localStorage.getItem("acct_" + acct_id + "_at");
@ -36,7 +36,6 @@ function udgEx(user,acct_id){
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
if (json.accounts) {
var id = json.accounts[0].id;
udg(id, acct_id);
@ -52,7 +51,6 @@ function udg(user, acct_id) {
reset();
if (!user) {
user = localStorage.getItem("user-id_" + acct_id);
console.log(user);
}
todo("User Data Loading...");
var domain = localStorage.getItem("domain_" + acct_id);
@ -62,7 +60,6 @@ function udg(user, acct_id) {
}
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/accounts/" + user;
console.log(start);
fetch(start, {
method: 'GET',
headers: {
@ -75,7 +72,6 @@ function udg(user, acct_id) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
//一つ前のユーザーデータ
if (!localStorage.getItem("history")) {
$("#his-history-btn").prop("disabled", true);
@ -128,7 +124,6 @@ function udg(user, acct_id) {
//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)
console.log(note)
//note=note.replace(/\s@([a-zA-Z_0-9@.-]+)/gi, mens)
$("#his-name").html(dis_name);
$("#his-acct").text(json.acct);
@ -215,7 +210,6 @@ function misskeyUdg(user, acct_id) {
reset();
if (!user) {
user = localStorage.getItem("user-id_" + acct_id);
console.log(user);
}
todo("User Data Loading...");
var domain = localStorage.getItem("domain_" + acct_id);
@ -225,7 +219,6 @@ function misskeyUdg(user, acct_id) {
}
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/users/show";
console.log(user);
fetch(start, {
method: 'POST',
headers: {
@ -241,7 +234,6 @@ function misskeyUdg(user, acct_id) {
todo(error);
console.error(error);
}).then(function (json) {
console.log(json);
//一つ前のユーザーデータ
if (!localStorage.getItem("history")) {
$("#his-history-btn").prop("disabled", true);
@ -340,7 +332,6 @@ function historyShow(){
function profShow() {
var acct_id = $("#post-acct-sel").val();
var user = localStorage.getItem("user-id_" + acct_id);
console.log("user-id_"+acct_id+":"+user);
udg(user, acct_id)
hide();
}

View File

@ -94,11 +94,11 @@ function createWindow() {
var platform = process.platform;
var bit = process.arch;
if (platform == "linux") {
var arg={width:window_size.width,height:window_size.height,x:window_size.x,y:window_size.y,icon: __dirname + '/desk.png'}
var arg = { webPreferences: { webviewTag: true, nodeIntegration: true }, width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, icon: __dirname + '/desk.png' }
} else if (platform == "win32") {
var arg={width:window_size.width,height:window_size.height,x:window_size.x,y:window_size.y,simpleFullscreen:true}
var arg = {webPreferences: { webviewTag: true, nodeIntegration: true }, width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true }
} else if (platform == "darwin") {
var arg={width:window_size.width,height:window_size.height,x:window_size.x,y:window_size.y,simpleFullscreen:true}
var arg = { webPreferences: { webviewTag: true, nodeIntegration: true }, width: window_size.width, height: window_size.height, x: window_size.x, y: window_size.y, simpleFullscreen: true }
}
mainWindow = new BrowserWindow(arg);
electron.session.defaultSession.clearCache(() => { })

View File

@ -15,6 +15,9 @@ function dl(mainWindow,lang_path,base) {
var bit = process.arch;
if (platform != "others") {
updatewin = new BrowserWindow({
webPreferences: {
nodeIntegration:true
},
width: 600,
height: 400,
"transparent": false, // ウィンドウの背景を透過
@ -76,7 +79,7 @@ function dl(mainWindow,lang_path,base) {
},
saveAs: false
};
download(BrowserWindow.getFocusedWindow(),
download(updatewin,
url, opts)
.then(dl => {
updatewin.webContents.send('mess', "ダウンロードが完了しました。");

View File

@ -51,6 +51,9 @@ function img(mainWindow,dir){
});
function adobeWindow() {
var window = new BrowserWindow({
webPreferences: {
nodeIntegration:true
},
width: 1000,
height: 750
});

View File

@ -68,18 +68,26 @@ function templete(lang,mainWindow,packaged,dir){
const menu = [{
label: dict.application[lang],
submenu: [
{ label: dict.about[lang], click: function() {
{
label: dict.about[lang], click: function () {
var ver = app.getVersion()
var window = new BrowserWindow({width: 300, height: 460,
var window = new BrowserWindow({
webPreferences: {
nodeIntegration:true
},
width: 300, height: 460,
"transparent": false, // ウィンドウの背景を透過
"frame": false, // 枠の無いウィンドウ
"resizable": false });
"resizable": false
});
window.loadURL(dir + '/about.html?ver=' + ver);
} },
}
},
{ type: "separator" },
{ label: dict.quit[lang], accelerator: "Command+Q", click: function () { app.quit(); } }
]}, {
]
}, {
label: dict.edit[lang],
submenu: [
{ label: dict.undo[lang], accelerator: "CmdOrCtrl+Z", selector: "undo:" },
@ -89,7 +97,8 @@ function templete(lang,mainWindow,packaged,dir){
{ label: dict.copy[lang], accelerator: "CmdOrCtrl+C", selector: "copy:" },
{ label: dict.paste[lang], accelerator: "CmdOrCtrl+V", selector: "paste:" },
{ label: dict.selall[lang], accelerator: "CmdOrCtrl+A", selector: "selectAll:" }
]},{
]
}, {
label: dict.view[lang],
submenu: [
{

View File

@ -72,6 +72,9 @@ function system(mainWindow, dir, lang) {
var ver = app.getVersion()
var window = new BrowserWindow({
webPreferences: {
nodeIntegration:true
},
width: 300,
height: 480,
"transparent": false, // ウィンドウの背景を透過
@ -100,6 +103,9 @@ function system(mainWindow, dir, lang) {
window_pos = [0, 0]; // デフォルトバリュー
}
var nanowindow = new BrowserWindow({
webPreferences: {
nodeIntegration:true
},
width: 350,
height: 200,
"transparent": false, // ウィンドウの背景を透過

View File

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link href="./css/themes.css" type="text/css" rel="stylesheet">
@ -15,38 +16,58 @@ html{
overflow: hidden;
font-family: sans-serif;
}
body {
background-color: rgba(0, 0, 0, 0.1);
font-size: 11px;
}
#timeline_nano {
overflow-y: scroll;
overflow-x: hidden;
-webkit-app-region: no-drag;
max-height: 100px;
}
.user{font-size:12px;}
.user {
font-size: 12px;
}
select {
-webkit-app-region: no-drag;
}
button {
-webkit-app-region: no-drag;
}
textarea {
-webkit-app-region: no-drag;
}
::-webkit-scrollbar {
width: 5px;
height: 10px;
background: rgba(0, 0, 0, 0.05);
}
::-webkit-scrollbar-track {
-webkit-border-radius: 5px;
border-radius: 5px;
}
.area-actions{display:none !important;}
.area-date_via{display:none !important;}
.area-side{display:none !important;}
.area-actions {
display: none !important;
}
.area-date_via {
display: none !important;
}
.area-side {
display: none !important;
}
/* Handle */
::-webkit-scrollbar-thumb {
-webkit-border-radius: 5px;
@ -54,22 +75,29 @@ textarea {
background: rgba(0, 0, 0, 0.8);
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
}
.blacktheme body {
color: white;
background-color: #212121;
}
.blacktheme button {
background-color: black;
color: white;
}
.blacktheme textarea, .blacktheme select{
.blacktheme textarea,
.blacktheme select {
color: white;
}
.blacktheme select,.blacktheme option{
.blacktheme select,
.blacktheme option {
background-color: black;
}
</style>
</head>
<body>
<script>
//jQuery読む

1675
app/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,20 @@
{
"name": "thedesk",
"version": "18.4.0",
"version": "18.5.0",
"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",
"dist": "build --linux snap",
"build": "electron-builder",
"build:all": "electron-builder --win --linux",
"build:win": "electron-builder --win"
"build": "node build.js"
},
"keywords": ["mastodon","client","electron","thedesk"],
"keywords": [
"mastodon",
"client",
"electron",
"thedesk"
],
"bugs": {
"url": "https://github.com/cutls/TheDesk/issues",
"email": "web-pro@cutls.com"
@ -41,70 +44,20 @@
],
"license": "GPL-3.0",
"dependencies": {
"electron-dl": "^1.11.0",
"jimp": "^0.2.28",
"electron-dl": "^1.14.0",
"jimp": "^0.6.4",
"json5": "^2.1.0",
"node-notifier": "^5.2.1",
"sumchecker": "^2.0.2",
"vue": "^2.6.9"
"node-notifier": "^5.4.0",
"sumchecker": "^3.0.0",
"vue": "^2.6.10"
},
"optionalDependencies": {
"nowplaying-node": "git+https://github.com/cutls/nowplaying-node",
"itunes-nowplaying-mac": "git+https://github.com/rinsuki/itunes-nowplaying-mac#pull/4/head",
"font-manager": "^0.3.0"
},
"build": {
"productName": "TheDesk",
"appId": "top.thedesk",
"asarUnpack": [
"node_modules/itunes-nowplaying-mac"
],
"directories": {
"output": "../build"
},
"win": {
"icon": "build/thedesk.ico",
"target": [
"nsis",
"portable",
"appx"
]
},
"appx": {
"identityName": "53491Cutls.TheDesk",
"applicationId": "Cutls.TheDesk",
"publisherDisplayName": "Cutls",
"publisher": "CN=629757F5-A5EE-474F-9562-B304A89A9FD1",
"languages": [
"JA-JP",
"EN-US"
]
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"artifactName": "TheDesk-setup.${ext}"
},
"linux": {
"icon": "build/icons",
"target": [
"zip"
],
"category": "Network"
},
"mac": {
"target": [
"dmg",
"zip"
]
},
"electronDownload": {
"version": "4.2.0"
},
"electronVersion": "4.2.0"
},
"devDependencies": {
"electron": "^4.2.0",
"electron-builder": "^20.39.0"
"electron": "^5.0.1",
"electron-builder": "^20.40.2"
}
}

View File

@ -1,5 +1,6 @@
<!doctype html>
<html lang="en">
<head>
<title>Account Manager - TheDesk</title>
<meta content="width=device-width,initial-scale=1.0" name="viewport">
@ -10,19 +11,54 @@
<link href='../../css/tl.css' rel='stylesheet' type='text/css'>
<link href='../../css/userdata.css' rel='stylesheet' type='text/css'>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
<style>.acct{display:flex; justify-content:space-around;}
.card{width:400px; background-color: #9e9e9e; margin:10px; }
body,html{overflow-y: scroll;}
#acct-list{display:flex; flex-wrap:wrap; color:white; align-items: flex-start}
.lts{font-size:150%}
.colorsel{ display:flex; }
.card .colorsel div:not(.exc){width:20px;height:20px;}
.card .colorsel div.exc{width:40px;height:20px;}
<style>
.acct {
display: flex;
justify-content: space-around;
}
.card {
width: 400px;
background-color: #9e9e9e;
margin: 10px;
}
body,
html {
overflow-y: scroll;
}
#acct-list {
display: flex;
flex-wrap: wrap;
color: white;
align-items: flex-start
}
.lts {
font-size: 150%
}
.colorsel {
display: flex;
}
.card .colorsel div:not(.exc) {
width: 20px;
height: 20px;
}
.card .colorsel div.exc {
width: 40px;
height: 20px;
}
.first {
display: flex;
justify-content: center;
align-items: center
}
.first .hide-first {
display: none;
}
@ -36,6 +72,7 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
-->
</head>
<body id="mainView">
<script type="text/javascript" src="../../js/common/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.js"></script>
@ -48,7 +85,8 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="../../js/common/time.js"></script>
<script type="text/javascript" src="../../js/common/modal.js"></script>
<div class="hide-first">
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">Back</a><br>
<a href="index.html" class="btn waves-effect orange nex"
style="width:100%; max-width:200px;">Back</a><br>
<h5>List of accounts</h5>
<div id="acct-list"></div>
<div class="divider"></div>
@ -71,7 +109,8 @@ body,html{overflow-y: scroll;}
<span style="font-family:Open Sans;">Supports</span>
<div id="support" class="collection transparent"></div>
</div>
</div></div>
</div>
</div>
<div id="auth" style="display:none">
Paste the code and close browser.<br>
<input type="text" id="code" placeholder="Code">

View File

@ -36,7 +36,7 @@
<script type="text/javascript" src="../../js/common/modal.js"></script>
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
<script>
var ver = "Usamin (18.4.0)";
var ver = "Usamin (18.5.0)";
//betaを入れるとバージョンチェックしない
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
//var ver="beta";
@ -98,10 +98,12 @@
title="箇条書きリスト">format_list_bulleted</i>
<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')"
title="番号付きリスト">format_list_numbered</i>
<i class="pointer setting fa fa-subscript waves-effect" onclick="markdown('__','yes','no','before')"
title="下付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-superscript waves-effect" onclick="markdown('_','yes','no','before')"
title="上付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-subscript waves-effect"
onclick="markdown('__','yes','no','before')" title="下付き文字 テキストボックス内を選択してから押すと囲みます。"
style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-superscript waves-effect"
onclick="markdown('_','yes','no','before')" title="上付き文字 テキストボックス内を選択してから押すと囲みます。"
style="font-size:1.5rem"></i>
<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')"
title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i>
<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')"
@ -121,14 +123,19 @@
title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i>
<input id="colorhex" style="width: calc(50% - 50px); margin: 0; height: 24px;" type="color">
<br>
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()" title="リンク挿入">link</i>
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクテキスト">&nbsp;
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクアドレス">
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()"
title="リンク挿入">link</i>
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="リンクテキスト">&nbsp;
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="リンクアドレス">
<br>
<i class="material-icons pointer setting waves-effect" onclick="markdownImage()"
title="インライン画像挿入">image</i>
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="代替テキスト">&nbsp;
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="画像アドレス">
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="代替テキスト">&nbsp;
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="画像アドレス">
</div>
</div>
<div class="input-field col s12" id="preview-field" style="margin-top: 0;">
@ -154,14 +161,15 @@
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
<i class="waves-effect gray material-icons" id="nsfw" title="Mark media as sensitive"
onclick="nsfw()">visibility_off</i>
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1'
id="vis-icon">public</i>
<i class="waves-effect gray material-icons purple-text dropdown-button"
data-activates='dropdown1' id="vis-icon">public</i>
<a class="waves-effect gray" id="cw" onclick="cw()" title="Hide text behind warning">CW</a>
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
onclick="fileselect()" title="Attach..">photo_library</i></span></span>
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
title="Emojis">tag_faces</i>
<i class="waves-effect gray material-icons dropdown-button" data-activates='dropdown2'>more_vert</i>
<i class="waves-effect gray material-icons dropdown-button"
data-activates='dropdown2'>more_vert</i>
<i class="material-icons nex gray waves-effect" title="Clear toot box(Ctrl+Shit+C)"
data-trans-title="post_box_clear" id="clear">clear</i>
</div>
@ -176,13 +184,15 @@
<br>
<input type="text" id="cw-text" placeholder="Warning text" class="mize" style="margin:0">
<div id="sch-box">Post at<br><span class="sml">2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)</span><br>
<input type="datetime-local" id="sch-date" placeholder="Scheduled toot" class="datepicker" style="margin:0">
<input type="datetime-local" id="sch-date" placeholder="Scheduled toot" class="datepicker"
style="margin:0">
</div>
</div>
</div>
<!-- 公開範囲 Dropdown Structure -->
<ul id='dropdown1' class='dropdown-content'>
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">Adjust status privacy</li>
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">Adjust status privacy
</li>
<li>
<a onclick="vis('public')">(Public)</a>
</li>
@ -228,8 +238,9 @@
<div id="toot-btn-field">
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
id="toot-post-btn">Toot</button>
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"><i
class="material-icons" id="toot-sec-icon" title="Secondary Toot">lock_open</i></button>
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()"
id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon"
title="Secondary Toot">lock_open</i></button>
</div>
</div>
<div id="right-side">
@ -398,12 +409,12 @@
class="fas fa-share"></i></button>
</div>
<div class="col s2">
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i
class="fas fa-retweet"></i></button>
<button class="dropdown-button btn waves-effect indigo" style="width:100%;"
onclick="staEx('rt')"><i class="fas fa-retweet"></i></button>
</div>
<div class="col s2">
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i
class="fas fa-star"></i></button>
<button class="dropdown-button btn waves-effect orange" style="width:100%;"
onclick="staEx('fav')"><i class="fas fa-star"></i></button>
</div>
</div>
<div id="toot-tools">
@ -449,8 +460,8 @@
<div id="his-plus-action">
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-emp-btn"
onclick="empUser()">Emphasize this user</a>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data" id="his-end-btn"
onclick="pinUser()">Feature on profile</a><br>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data"
id="his-end-btn" onclick="pinUser()">Feature on profile</a><br>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin"
onclick="profbrws()">Open in browser</a><br>
</div><br>
@ -471,10 +482,12 @@
<a go="#his-follow-list" title="Follow"><i class="material-icons">people</i></a>
</li>
<li class="custom-tab col my-data-width">
<a go="#his-follower-list" title="Follower"><i class="material-icons">people</i></a>
<a go="#his-follower-list" title="Follower"><i
class="material-icons">people</i></a>
</li>
<li class="custom-tab col my-data-width only-his-data">
<a go="#his-action" title="Cross-account"><i class="material-icons">account_box</i></a>
<a go="#his-action" title="Cross-account"><i
class="material-icons">account_box</i></a>
</li>
<li class="custom-tab col my-data-width only-his-data">
<a go="#his-list" title="List"><i class="material-icons">list</i></a>
@ -486,20 +499,23 @@
<a go="#his-blocking-list" title="Blocks"><i class="material-icons">block</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-blocking-list" title="Blocks"><i class="material-icons">voice_over_off</i></a>
<a go="#his-blocking-list" title="Blocks"><i
class="material-icons">voice_over_off</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-domain-list" title="Domain block"><i class="material-icons">language</i><i
class="material-icons">block</i></a>
<a go="#his-domain-list" title="Domain block"><i
class="material-icons">language</i><i class="material-icons">block</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-prof-list" title="Edit profile"><i class="material-icons">create</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-request-list" title="Follow requests"><i class="material-icons">how_to_reg</i></a>
<a go="#his-request-list" title="Follow requests"><i
class="material-icons">how_to_reg</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-follow-recom-list" title="Suggest"><i class="material-icons">recent_actors</i></a>
<a go="#his-follow-recom-list" title="Suggest"><i
class="material-icons">recent_actors</i></a>
</li>
</ul>
</div>
@ -524,9 +540,11 @@
<div id="his-action" class="tab-content">
Use other account to Follow((Unable to unfollow))<br>
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>
<a href="#!" class="waves-effect btn" onclick="follow('selector','true')">Follow</a><br>
or<br>
<a href="#!" class="waves-effect btn" onclick="udgEx('selector', 'selector')">Show profile</a><br>
<a href="#!" class="waves-effect btn"
onclick="udgEx('selector', 'selector')">Show profile</a><br>
</div>
<div id="his-list" class="tab-content">
<div id="his-lists-a">Follow to add this user to lists.</div>
@ -536,17 +554,20 @@
<div id="his-fav-list" class="tab-content">
<div id="his-fav-list-contents" class="cont-series">
</div>
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="showFav('more')">More</button>
<button class="btn waves-effect" style="width:100%; padding:0;"
onclick="showFav('more')">More</button>
</div>
<div id="his-blocking-list" class="tab-content">
<div id="his-blocking-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showBlo('more')">More</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showBlo('more')">More</button>
</div>
<div id="his-muting-list" class="tab-content">
<div id="his-muting-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showMut('more')">More</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showMut('more')">More</button>
</div>
<div id="his-domain-list" class="tab-content">
<div id="his-domain-list-contents" class="cont-series">
@ -567,7 +588,8 @@
<textarea placeholder="Note" id="his-des-val" class="materialize-textarea"></textarea>
<label for="his-des-val">Note</label>
</div>
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="profedit()">Save</button>
<button class="btn waves-effect" style="width:100%; padding:0;"
onclick="profedit()">Save</button>
<br>Change avataor:
<span id="prof-change">
<input type="file" onchange="imgChange(this,'avatar')">
@ -580,7 +602,8 @@
<div id="his-request-list" class="tab-content">
<div id="his-request-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showReq('more')">More</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showReq('more')">More</button>
</div>
<div id="his-follow-recom-list" class="tab-content">
<div id="his-follow-recom-contents" class="cont-series">
@ -652,19 +675,26 @@
<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-4-0" class="release-do" style="display:none; ">
<div id="release-Usamin_18-5-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.4.0)</h5>
・ソフトウェア(通知音などのアセットを含むTheDeskオリジナル制作物)のコピーライトをTheDeskに統一。Cutls PをMain Developer(author)に。<br>
・Misskey v11のストリーミングに対応(初期取得の投稿のリアクションは自動取得できません。)<br>
・その他Misskeyのさまざまな挙動を修正、追加しました。<br>
・NSFWメディアが複数あったときに「NSFW Media」の文字が邪魔で複数段になる不具合を修正。<br>
・フォローリクエストの許可/拒否ができるように。<br>
・起動時に通知のストリーミングにつながらない不具合を修正<br>
<h5>Release Note Usamin (18.5.0)</h5>
・macOSでのアップデータについて修正。<br>
・本来不要なところにフォロリク許可画面が出るようになっていたのを修正。<br>
・不明なメディアに対するリンクを表示します。<br>
・PleromaでのVideoの挙動について修正しました。<br>
・Patreonでの支援を開始しました。<br>
・アスタルテの新しいBBCodeに対応しました。<br>
・タイムライン下の方が切れてしまう不具合の修正。<br>
・通知をユーザーごとにフィルターする機能(最新のMastodonのみ)。<br>
・Electron 5.0.1になりました。<br>
<br>
<h5>ThinkingDeskラベル</h5>
<img src="../../img/thinkingdesk.png" style="width:100px;" draggable="false"><br>
手作りマットラベル。貼ってはがせる。300円なのでポイントの余りでどうぞ。<br>
<a href="https://item.mercari.com/jp/m822743330" target="_blank">メルカリ</a>へ。
</div>
<div id="release-en" style="display:none">
<h5>Let's make it native!</h5>
@ -677,12 +707,17 @@
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
Support on Pixiv FANBOX
</a>
<a class="btn-share btn waves-effect waves-light red darken-2"
href="https://www.patreon.com/cutls" target="_blank">
Support on Patreon
</a>
<a class="btn-share btn waves-effect waves-light blue"
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
Amazon Wish List
</a>
<br>
Give me Amazon Gift Card:<a href="mailto:web-pro@cutls.com" target="_blank">web-pro@cutls.com</a><br>
Give me Amazon Gift Card:<a href="mailto:web-pro@cutls.com"
target="_blank">web-pro@cutls.com</a><br>
Kyash<br>
<img src="../../img/kyash.png" width="100"><br>
</div>
@ -716,7 +751,8 @@
class="material-icons">view_headline</i><span>List</span></div>
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i
class="material-icons">filter_list</i><span>Filter</span></div>
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>Help</span></div>
<div class="waves-effect" onclick="help()"><i
class="material-icons">help_outline</i><span>Help</span></div>
<div class="waves-effect" onclick="location.href='index.html'"><i
class="material-icons">refresh</i><span>Reload TL</span></div>
</div>
@ -737,7 +773,8 @@
<div><i class="material-icons">people_outline</i></div><span>Local</span>
</div>
<div class="type waves-effect" data-type="local-media">
<div><i class="material-icons">people_outline</i><i class="material-icons sub-icon">perm_media</i>
<div><i class="material-icons">people_outline</i><i
class="material-icons sub-icon">perm_media</i>
</div><span>Local(Media)</span>
</div>
<div class="type waves-effect" data-type="home">
@ -747,7 +784,8 @@
<div><i class="material-icons">language</i></div><span>Federated</span>
</div>
<div class="type waves-effect" data-type="pub-media">
<div><i class="material-icons">language</i><i class="material-icons sub-icon">perm_media</i></div>
<div><i class="material-icons">language</i><i
class="material-icons sub-icon">perm_media</i></div>
<span>Federated(Media)</span>
</div>
<div class="type waves-effect" data-type="dm">
@ -757,7 +795,8 @@
<div><i class="material-icons">merge_type</i></div><span>Integrated(Local/Home)</span>
</div>
<div class="type waves-effect" data-type="plus">
<div><i class="material-icons">merge_type</i><i class="material-icons sub-icon">reply</i></div>
<div><i class="material-icons">merge_type</i><i
class="material-icons sub-icon">reply</i></div>
<span>LTL+Reply+BT</span>
</div>
<div class="type waves-effect" data-type="notf">
@ -787,8 +826,8 @@
<div class="input-field">
<input id="src" type="text" class="validate" style="width:60%">
<label for="src" data-trans="src">Search</label>
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;" onclick="src()"
data-trans-i="src">
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;"
onclick="src()" data-trans-i="src">
<i class="material-icons left" style="margin:0">search</i>Search
</button>
<br>
@ -815,7 +854,8 @@
<label>Account(Scroll to show all)</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()"
data-trans-i="lists">
List
</button>
</div>
@ -832,7 +872,8 @@
<label>Account(Scroll to show all)</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()"
data-trans-i="filters">
List
</button>
</div>
@ -877,12 +918,16 @@
</a>&nbsp;|&nbsp;
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">swap_horiz</i>Toot button layout reverse
</a>&nbsp;|&nbsp;
<a onclick="openRN()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">new_releases</i>Release Note
</a>
</div>
<div id="main">
<!--TLのTL-->
<div id="timeline-container">
<div id="something-wrong">
<img src="" style="width:150px;margin:5px;display:none;" draggable="false">
<div>Internal error: please clear all data(at setting page) <b>All data will be deleted.</b></div>
</div>
</div>
@ -907,7 +952,8 @@
<i class="material-icons nex" title="Preferences(Ctrl+Shift+S)">settings</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="The smallest Mastodon,TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
<i class="material-icons" title="The smallest Mastodon,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>

View File

@ -22,6 +22,7 @@
input {
max-height: 50px !important
}
.pcr-result {
height: 1rem !important;
}
@ -210,10 +211,14 @@
</template>
</div>
<h5>Custom sound</h5>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span 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>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
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>
</div>
</li>
<li>
@ -409,6 +414,8 @@
class="material-icons left">web</i>Website</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>Support(Pixiv FANBOX)</a>
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>Support(Patreon)</a>
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
class="material-icons left">list</i>Help/Docs(Constructing)</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"

View File

@ -1,5 +1,6 @@
<!doctype html>
<html lang="en">
<head>
<title>Update - TheDesk</title>
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
@ -14,6 +15,7 @@
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
-->
</head>
<body>
<style>
body {
@ -23,6 +25,7 @@ body{
padding: 10px;
text-align: right;
}
#start {
display: flex;
justify-content: center;
@ -31,17 +34,25 @@ body{
height: calc(100vh - 2.5rem);
text-align: center;
}
#checkbox {
text-align: left;
}
a,button,input,label,i{
a,
button,
input,
label,
i {
-webkit-app-region: no-drag;
}
#updskip {
display: flex;
justify-content: center;
align-items: center;
}
.skipbtn {
display: block;
float: left;
@ -55,10 +66,12 @@ a,button,input,label,i{
border: 1px solid;
overflow: hidden;
}
.skipbtn:hover {
background-color: #b3e5fc;
transition: all 0.3s ease-in-out;
}
#prog {
font-size: 200%;
}
@ -75,10 +88,14 @@ a,button,input,label,i{
<p>Get latest TheDesk</p>
<span id="now"></span><b id="ver"></b><br>
<span id="det"></span><br>
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">Installer ver.</button>
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">Portable ver.</button>
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">Start</button>
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">Start</button>
<button class="waves-effect btn windows hide" onclick="update('install')"
style="margin-left:15px;">Installer ver.</button>
<button class="waves-effect btn windows hide" onclick="update('portable')"
style="margin-left:15px;">Portable ver.</button>
<button class="waves-effect btn linux hide" onclick="update('linux')"
style="margin-left:15px;">Start</button>
<button class="waves-effect btn mac hide" onclick="update('mac')"
style="margin-left:15px;">Start</button>
<br>
Some problems?<br>Please download on <a href="https://thedesk.top">Oficial HP</a>.
</div>
@ -86,14 +103,21 @@ a,button,input,label,i{
<h4>You may lose a cool experience!</h4>
Skip this update<br>
<div id="updskip">
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>Until next TL loading</div></a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>Until next version</div></a>
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
<div>Until next TL loading</div>
</a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
<div>Until next version</div>
</a>
</div>
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">Continue updating</a>
</div>
<div id="dlnow" class="hide">
<h4>Downloading...</h4>
<h4 id="prog"></h4>
<div class="progress">
<div class="determinate" style="width: 0%"></div>
</div>
</div>
</div>
<script type="text/javascript" src="../../js/common/about.js"></script>
@ -113,6 +137,7 @@ function skipper(){
}
var electron = require("electron");
var ipc = electron.ipcRenderer;
//var shell = electron.shell;
verck();
function update(sel) {
$("#box").toggleClass("show");
@ -158,7 +183,8 @@ function update(sel){
}
} else if (sel == "mac") {
var url = json["mac"];
var file="TheDesk-darwin-x64.zip";
shell.openExternal(url);
return false;
}
ipc.send('download-btn', [url, file]);
});
@ -169,7 +195,7 @@ function update(sel){
}
ipc.on('prog', function (event, arg) {
console.log(arg);
$("body").css('background','linear-gradient(#fff 0%,#fff '+(1-arg)*100+'%, #d7ccc8 '+(1-arg)*100+'%, #d7ccc8 100%)');
$(".determinate").css("width",arg*100+"%");
$("#prog").text(Math.floor(arg * 100) + "%");
})
ipc.on('mess', function (event, arg) {

View File

@ -1,5 +1,6 @@
<!doctype html>
<html lang="ja">
<head>
<title>Account Manager - TheDesk</title>
<meta content="width=device-width,initial-scale=1.0" name="viewport">
@ -10,19 +11,54 @@
<link href='../../css/tl.css' rel='stylesheet' type='text/css'>
<link href='../../css/userdata.css' rel='stylesheet' type='text/css'>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
<style>.acct{display:flex; justify-content:space-around;}
.card{width:400px; background-color: #9e9e9e; margin:10px; }
body,html{overflow-y: scroll;}
#acct-list{display:flex; flex-wrap:wrap; color:white; align-items: flex-start}
.lts{font-size:150%}
.colorsel{ display:flex; }
.card .colorsel div:not(.exc){width:20px;height:20px;}
.card .colorsel div.exc{width:40px;height:20px;}
<style>
.acct {
display: flex;
justify-content: space-around;
}
.card {
width: 400px;
background-color: #9e9e9e;
margin: 10px;
}
body,
html {
overflow-y: scroll;
}
#acct-list {
display: flex;
flex-wrap: wrap;
color: white;
align-items: flex-start
}
.lts {
font-size: 150%
}
.colorsel {
display: flex;
}
.card .colorsel div:not(.exc) {
width: 20px;
height: 20px;
}
.card .colorsel div.exc {
width: 40px;
height: 20px;
}
.first {
display: flex;
justify-content: center;
align-items: center
}
.first .hide-first {
display: none;
}
@ -36,6 +72,7 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
-->
</head>
<body id="mainView">
<script type="text/javascript" src="../../js/common/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.js"></script>
@ -48,7 +85,8 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="../../js/common/time.js"></script>
<script type="text/javascript" src="../../js/common/modal.js"></script>
<div class="hide-first">
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">戻る</a><br>
<a href="index.html" class="btn waves-effect orange nex"
style="width:100%; max-width:200px;">戻る</a><br>
<h5>アカウント一覧</h5>
<div id="acct-list"></div>
<div class="divider"></div>
@ -71,7 +109,8 @@ body,html{overflow-y: scroll;}
<span style="font-family:Open Sans;">Supports</span>
<div id="support" class="collection transparent"></div>
</div>
</div></div>
</div>
</div>
<div id="auth" style="display:none">
指定されたコードを貼り付けてください。ログインウィンドウは閉じていただいて構いません。<br>
<input type="text" id="code" placeholder="コードを入力">

View File

@ -36,7 +36,7 @@
<script type="text/javascript" src="../../js/common/modal.js"></script>
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
<script>
var ver = "Usamin (18.4.0)";
var ver = "Usamin (18.5.0)";
//betaを入れるとバージョンチェックしない
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
//var ver="beta";
@ -98,10 +98,12 @@
title="箇条書きリスト">format_list_bulleted</i>
<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')"
title="番号付きリスト">format_list_numbered</i>
<i class="pointer setting fa fa-subscript waves-effect" onclick="markdown('__','yes','no','before')"
title="下付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-superscript waves-effect" onclick="markdown('_','yes','no','before')"
title="上付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-subscript waves-effect"
onclick="markdown('__','yes','no','before')" title="下付き文字 テキストボックス内を選択してから押すと囲みます。"
style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-superscript waves-effect"
onclick="markdown('_','yes','no','before')" title="上付き文字 テキストボックス内を選択してから押すと囲みます。"
style="font-size:1.5rem"></i>
<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')"
title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i>
<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')"
@ -121,14 +123,19 @@
title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i>
<input id="colorhex" style="width: calc(50% - 50px); margin: 0; height: 24px;" type="color">
<br>
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()" title="リンク挿入">link</i>
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクテキスト">&nbsp;
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクアドレス">
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()"
title="リンク挿入">link</i>
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="リンクテキスト">&nbsp;
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="リンクアドレス">
<br>
<i class="material-icons pointer setting waves-effect" onclick="markdownImage()"
title="インライン画像挿入">image</i>
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="代替テキスト">&nbsp;
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="画像アドレス">
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="代替テキスト">&nbsp;
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="画像アドレス">
</div>
</div>
<div class="input-field col s12" id="preview-field" style="margin-top: 0;">
@ -154,14 +161,15 @@
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
<i class="waves-effect gray material-icons" id="nsfw" title="画像に制限を付与"
onclick="nsfw()">visibility_off</i>
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1'
id="vis-icon">public</i>
<i class="waves-effect gray material-icons purple-text dropdown-button"
data-activates='dropdown1' id="vis-icon">public</i>
<a class="waves-effect gray" id="cw" onclick="cw()" title="コンテンツワーニング(トゥートを表示する前にメッセージで隠す)">CW</a>
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
onclick="fileselect()" title="ファイルを選択">photo_library</i></span></span>
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
title="絵文字を挿入">tag_faces</i>
<i class="waves-effect gray material-icons dropdown-button" data-activates='dropdown2'>more_vert</i>
<i class="waves-effect gray material-icons dropdown-button"
data-activates='dropdown2'>more_vert</i>
<i class="material-icons nex gray waves-effect" title="トゥートボックスのクリア(Ctrl+Shit+C)"
data-trans-title="post_box_clear" id="clear">clear</i>
</div>
@ -176,13 +184,15 @@
<br>
<input type="text" id="cw-text" placeholder="警告文" class="mize" style="margin:0">
<div id="sch-box">時間指定投稿<br><span class="sml">2.7.0~ 5分以内には投稿できません。サーバーの時計が正確とは限りません。</span><br>
<input type="datetime-local" id="sch-date" placeholder="時間指定投稿" class="datepicker" style="margin:0">
<input type="datetime-local" id="sch-date" placeholder="時間指定投稿" class="datepicker"
style="margin:0">
</div>
</div>
</div>
<!-- 公開範囲 Dropdown Structure -->
<ul id='dropdown1' class='dropdown-content'>
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">公開範囲指定</li>
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">公開範囲指定
</li>
<li>
<a onclick="vis('public')">公開(Public)</a>
</li>
@ -228,8 +238,9 @@
<div id="toot-btn-field">
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
id="toot-post-btn">トゥート</button>
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"><i
class="material-icons" id="toot-sec-icon" title="セカンダリートゥート">lock_open</i></button>
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()"
id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon"
title="セカンダリートゥート">lock_open</i></button>
</div>
</div>
<div id="right-side">
@ -398,12 +409,12 @@
class="fas fa-share"></i></button>
</div>
<div class="col s2">
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i
class="fas fa-retweet"></i></button>
<button class="dropdown-button btn waves-effect indigo" style="width:100%;"
onclick="staEx('rt')"><i class="fas fa-retweet"></i></button>
</div>
<div class="col s2">
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i
class="fas fa-star"></i></button>
<button class="dropdown-button btn waves-effect orange" style="width:100%;"
onclick="staEx('fav')"><i class="fas fa-star"></i></button>
</div>
</div>
<div id="toot-tools">
@ -449,8 +460,8 @@
<div id="his-plus-action">
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-emp-btn"
onclick="empUser()">ユーザー強調</a>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data" id="his-end-btn"
onclick="pinUser()">紹介する</a><br>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data"
id="his-end-btn" onclick="pinUser()">紹介する</a><br>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin"
onclick="profbrws()">ブラウザで開く</a><br>
</div><br>
@ -471,10 +482,12 @@
<a go="#his-follow-list" title="フォロー"><i class="material-icons">people</i></a>
</li>
<li class="custom-tab col my-data-width">
<a go="#his-follower-list" title="フォロワー"><i class="material-icons">people</i></a>
<a go="#his-follower-list" title="フォロワー"><i
class="material-icons">people</i></a>
</li>
<li class="custom-tab col my-data-width only-his-data">
<a go="#his-action" title="他のアカウントで操作"><i class="material-icons">account_box</i></a>
<a go="#his-action" title="他のアカウントで操作"><i
class="material-icons">account_box</i></a>
</li>
<li class="custom-tab col my-data-width only-his-data">
<a go="#his-list" title="リスト"><i class="material-icons">list</i></a>
@ -486,20 +499,23 @@
<a go="#his-blocking-list" title="ブロック"><i class="material-icons">block</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-blocking-list" title="ブロック"><i class="material-icons">voice_over_off</i></a>
<a go="#his-blocking-list" title="ブロック"><i
class="material-icons">voice_over_off</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-domain-list" title="ドメインブロック"><i class="material-icons">language</i><i
class="material-icons">block</i></a>
<a go="#his-domain-list" title="ドメインブロック"><i
class="material-icons">language</i><i class="material-icons">block</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-prof-list" title="プロフィール編集"><i class="material-icons">create</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-request-list" title="フォローリクエスト"><i class="material-icons">how_to_reg</i></a>
<a go="#his-request-list" title="フォローリクエスト"><i
class="material-icons">how_to_reg</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-follow-recom-list" title="おすすめ"><i class="material-icons">recent_actors</i></a>
<a go="#his-follow-recom-list" title="おすすめ"><i
class="material-icons">recent_actors</i></a>
</li>
</ul>
</div>
@ -523,10 +539,12 @@
</div>
<div id="his-action" class="tab-content">
他のアカウントを使用するフォロー((解除はできません。))<br>
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>
<a href="#!" class="waves-effect btn" onclick="follow('selector','true')">フォロー</a><br>
または<br>
<a href="#!" class="waves-effect btn" onclick="udgEx('selector', 'selector')">プロフィールを表示</a><br>
<a href="#!" class="waves-effect btn"
onclick="udgEx('selector', 'selector')">プロフィールを表示</a><br>
</div>
<div id="his-list" class="tab-content">
<div id="his-lists-a">リストに追加するためにはフォローが必要です。</div>
@ -536,17 +554,20 @@
<div id="his-fav-list" class="tab-content">
<div id="his-fav-list-contents" class="cont-series">
</div>
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="showFav('more')">もっと</button>
<button class="btn waves-effect" style="width:100%; padding:0;"
onclick="showFav('more')">もっと</button>
</div>
<div id="his-blocking-list" class="tab-content">
<div id="his-blocking-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showBlo('more')">もっと</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showBlo('more')">もっと</button>
</div>
<div id="his-muting-list" class="tab-content">
<div id="his-muting-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showMut('more')">もっと</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showMut('more')">もっと</button>
</div>
<div id="his-domain-list" class="tab-content">
<div id="his-domain-list-contents" class="cont-series">
@ -567,7 +588,8 @@
<textarea placeholder="自己紹介" id="his-des-val" class="materialize-textarea"></textarea>
<label for="his-des-val">自己紹介</label>
</div>
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="profedit()">変更</button>
<button class="btn waves-effect" style="width:100%; padding:0;"
onclick="profedit()">変更</button>
<br>アバターを変更:
<span id="prof-change">
<input type="file" onchange="imgChange(this,'avatar')">
@ -580,7 +602,8 @@
<div id="his-request-list" class="tab-content">
<div id="his-request-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showReq('more')">もっと</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showReq('more')">もっと</button>
</div>
<div id="his-follow-recom-list" class="tab-content">
<div id="his-follow-recom-contents" class="cont-series">
@ -652,19 +675,26 @@
<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-4-0" class="release-do" style="display:none; ">
<div id="release-Usamin_18-5-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.4.0)</h5>
・ソフトウェア(通知音などのアセットを含むTheDeskオリジナル制作物)のコピーライトをTheDeskに統一。Cutls PをMain Developer(author)に。<br>
・Misskey v11のストリーミングに対応(初期取得の投稿のリアクションは自動取得できません。)<br>
・その他Misskeyのさまざまな挙動を修正、追加しました。<br>
・NSFWメディアが複数あったときに「NSFW Media」の文字が邪魔で複数段になる不具合を修正。<br>
・フォローリクエストの許可/拒否ができるように。<br>
・起動時に通知のストリーミングにつながらない不具合を修正<br>
<h5>Release Note Usamin (18.5.0)</h5>
・macOSでのアップデータについて修正。<br>
・本来不要なところにフォロリク許可画面が出るようになっていたのを修正。<br>
・不明なメディアに対するリンクを表示します。<br>
・PleromaでのVideoの挙動について修正しました。<br>
・Patreonでの支援を開始しました。<br>
・アスタルテの新しいBBCodeに対応しました。<br>
・タイムライン下の方が切れてしまう不具合の修正。<br>
・通知をユーザーごとにフィルターする機能(最新のMastodonのみ)。<br>
・Electron 5.0.1になりました。<br>
<br>
<h5>ThinkingDeskラベル</h5>
<img src="../../img/thinkingdesk.png" style="width:100px;" draggable="false"><br>
手作りマットラベル。貼ってはがせる。300円なのでポイントの余りでどうぞ。<br>
<a href="https://item.mercari.com/jp/m822743330" target="_blank">メルカリ</a>へ。
</div>
<div id="release-en" style="display:none">
<h5>Let's make it native!</h5>
@ -677,12 +707,17 @@
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
Pixiv FANBOXで支援
</a>
<a class="btn-share btn waves-effect waves-light red darken-2"
href="https://www.patreon.com/cutls" target="_blank">
Patreonで支援
</a>
<a class="btn-share btn waves-effect waves-light blue"
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
Amazonほしいものリスト
</a>
<br>
<a href="mailto:web-pro@cutls.com" target="_blank">web-pro@cutls.com</a>にAmazonギフトカードを送る<br>
<a href="mailto:web-pro@cutls.com"
target="_blank">web-pro@cutls.com</a>にAmazonギフトカードを送る<br>
Kyash<br>
<img src="../../img/kyash.png" width="100"><br>
</div>
@ -716,7 +751,8 @@
class="material-icons">view_headline</i><span>リスト</span></div>
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i
class="material-icons">filter_list</i><span>フィルター</span></div>
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>ヘルプ</span></div>
<div class="waves-effect" onclick="help()"><i
class="material-icons">help_outline</i><span>ヘルプ</span></div>
<div class="waves-effect" onclick="location.href='index.html'"><i
class="material-icons">refresh</i><span>TL再読込</span></div>
</div>
@ -737,7 +773,8 @@
<div><i class="material-icons">people_outline</i></div><span>ローカル</span>
</div>
<div class="type waves-effect" data-type="local-media">
<div><i class="material-icons">people_outline</i><i class="material-icons sub-icon">perm_media</i>
<div><i class="material-icons">people_outline</i><i
class="material-icons sub-icon">perm_media</i>
</div><span>ローカル(メディア)</span>
</div>
<div class="type waves-effect" data-type="home">
@ -747,7 +784,8 @@
<div><i class="material-icons">language</i></div><span>連合</span>
</div>
<div class="type waves-effect" data-type="pub-media">
<div><i class="material-icons">language</i><i class="material-icons sub-icon">perm_media</i></div>
<div><i class="material-icons">language</i><i
class="material-icons sub-icon">perm_media</i></div>
<span>連合(メディア)</span>
</div>
<div class="type waves-effect" data-type="dm">
@ -757,7 +795,8 @@
<div><i class="material-icons">merge_type</i></div><span>統合(ローカルとホーム)</span>
</div>
<div class="type waves-effect" data-type="plus">
<div><i class="material-icons">merge_type</i><i class="material-icons sub-icon">reply</i></div>
<div><i class="material-icons">merge_type</i><i
class="material-icons sub-icon">reply</i></div>
<span>統合(LTL+BT+返信)</span>
</div>
<div class="type waves-effect" data-type="notf">
@ -787,8 +826,8 @@
<div class="input-field">
<input id="src" type="text" class="validate" style="width:60%">
<label for="src" data-trans="src">検索</label>
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;" onclick="src()"
data-trans-i="src">
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;"
onclick="src()" data-trans-i="src">
<i class="material-icons left" style="margin:0">search</i>検索
</button>
<br>
@ -815,7 +854,8 @@
<label>選択(スクロールで全選択肢表示)</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()"
data-trans-i="lists">
一覧
</button>
</div>
@ -832,7 +872,8 @@
<label>選択(スクロールで全選択肢表示)</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()"
data-trans-i="filters">
一覧
</button>
</div>
@ -877,12 +918,16 @@
</a>&nbsp;|&nbsp;
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">swap_horiz</i>トゥートボタンの左右入れ替え
</a>&nbsp;|&nbsp;
<a onclick="openRN()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">new_releases</i>Release Note
</a>
</div>
<div id="main">
<!--TLのTL-->
<div id="timeline-container">
<div id="something-wrong">
<img src="" style="width:150px;margin:5px;display:none;" draggable="false">
<div>内部エラーです。再読込して治らない場合は初期化(全データ削除)をしてください。(事前に設定をエクスポートしておくことをおすすめします。)</div>
</div>
</div>
@ -907,7 +952,8 @@
<i class="material-icons nex" title="設定(Ctrl+Shift+S)">settings</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="最小のマストドン。TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
<i class="material-icons" title="最小のマストドン。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="リスト">apps</i>

View File

@ -22,6 +22,7 @@
input {
max-height: 50px !important
}
.pcr-result {
height: 1rem !important;
}
@ -210,10 +211,14 @@
</template>
</div>
<h5>カスタム通知音</h5>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span 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>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
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>
</div>
</li>
<li>
@ -409,6 +414,8 @@
class="material-icons left">web</i>公式HP</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>支援(Pixiv FANBOX)</a>
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>支援(Patreon)</a>
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
class="material-icons left">list</i>ヘルプ/Docs(Constructing)</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"

View File

@ -1,5 +1,6 @@
<!doctype html>
<html lang="ja">
<head>
<title>Update - TheDesk</title>
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
@ -14,6 +15,7 @@
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
-->
</head>
<body>
<style>
body {
@ -23,6 +25,7 @@ body{
padding: 10px;
text-align: right;
}
#start {
display: flex;
justify-content: center;
@ -31,17 +34,25 @@ body{
height: calc(100vh - 2.5rem);
text-align: center;
}
#checkbox {
text-align: left;
}
a,button,input,label,i{
a,
button,
input,
label,
i {
-webkit-app-region: no-drag;
}
#updskip {
display: flex;
justify-content: center;
align-items: center;
}
.skipbtn {
display: block;
float: left;
@ -55,10 +66,12 @@ a,button,input,label,i{
border: 1px solid;
overflow: hidden;
}
.skipbtn:hover {
background-color: #b3e5fc;
transition: all 0.3s ease-in-out;
}
#prog {
font-size: 200%;
}
@ -75,10 +88,14 @@ a,button,input,label,i{
<p>アップデートがあります</p>
<span id="now"></span><b id="ver"></b><br>
<span id="det"></span><br>
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">インストーラー版(推奨)</button>
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">ポータブル版</button>
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">開始</button>
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">開始</button>
<button class="waves-effect btn windows hide" onclick="update('install')"
style="margin-left:15px;">インストーラー版(推奨)</button>
<button class="waves-effect btn windows hide" onclick="update('portable')"
style="margin-left:15px;">ポータブル版</button>
<button class="waves-effect btn linux hide" onclick="update('linux')"
style="margin-left:15px;">開始</button>
<button class="waves-effect btn mac hide" onclick="update('mac')"
style="margin-left:15px;">開始</button>
<br>
問題が発生しますか?<br><a href="https://thedesk.top">公式HP</a>からダウンロードをお試しください。
</div>
@ -86,14 +103,21 @@ a,button,input,label,i{
<h4>アップデートは必ず行ってください</h4>
アップデートをスキップする<br>
<div id="updskip">
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>次回TL表示時まで</div></a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>次のバージョンが出るまで</div></a>
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
<div>次回TL表示時まで</div>
</a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
<div>次のバージョンが出るまで</div>
</a>
</div>
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">アップデートを続行</a>
</div>
<div id="dlnow" class="hide">
<h4>ダウンロード中</h4>
<h4 id="prog"></h4>
<div class="progress">
<div class="determinate" style="width: 0%"></div>
</div>
</div>
</div>
<script type="text/javascript" src="../../js/common/about.js"></script>
@ -113,6 +137,7 @@ function skipper(){
}
var electron = require("electron");
var ipc = electron.ipcRenderer;
//var shell = electron.shell;
verck();
function update(sel) {
$("#box").toggleClass("show");
@ -158,7 +183,8 @@ function update(sel){
}
} else if (sel == "mac") {
var url = json["mac"];
var file="TheDesk-darwin-x64.zip";
shell.openExternal(url);
return false;
}
ipc.send('download-btn', [url, file]);
});
@ -169,7 +195,7 @@ function update(sel){
}
ipc.on('prog', function (event, arg) {
console.log(arg);
$("body").css('background','linear-gradient(#fff 0%,#fff '+(1-arg)*100+'%, #d7ccc8 '+(1-arg)*100+'%, #d7ccc8 100%)');
$(".determinate").css("width",arg*100+"%");
$("#prog").text(Math.floor(arg * 100) + "%");
})
ipc.on('mess', function (event, arg) {

View File

@ -1,5 +1,6 @@
<!doctype html>
<html lang="@@lang@@">
<head>
<title>Account Manager - TheDesk</title>
<meta content="width=device-width,initial-scale=1.0" name="viewport">
@ -10,19 +11,54 @@
<link href='../../css/tl.css' rel='stylesheet' type='text/css'>
<link href='../../css/userdata.css' rel='stylesheet' type='text/css'>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
<style>.acct{display:flex; justify-content:space-around;}
.card{width:400px; background-color: #9e9e9e; margin:10px; }
body,html{overflow-y: scroll;}
#acct-list{display:flex; flex-wrap:wrap; color:white; align-items: flex-start}
.lts{font-size:150%}
.colorsel{ display:flex; }
.card .colorsel div:not(.exc){width:20px;height:20px;}
.card .colorsel div.exc{width:40px;height:20px;}
<style>
.acct {
display: flex;
justify-content: space-around;
}
.card {
width: 400px;
background-color: #9e9e9e;
margin: 10px;
}
body,
html {
overflow-y: scroll;
}
#acct-list {
display: flex;
flex-wrap: wrap;
color: white;
align-items: flex-start
}
.lts {
font-size: 150%
}
.colorsel {
display: flex;
}
.card .colorsel div:not(.exc) {
width: 20px;
height: 20px;
}
.card .colorsel div.exc {
width: 40px;
height: 20px;
}
.first {
display: flex;
justify-content: center;
align-items: center
}
.first .hide-first {
display: none;
}
@ -36,6 +72,7 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
@@comment-end@@
</head>
<body id="mainView">
<script type="text/javascript" src="../../js/common/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.js"></script>
@ -48,7 +85,8 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="../../js/common/time.js"></script>
<script type="text/javascript" src="../../js/common/modal.js"></script>
<div class="hide-first">
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">@@back@@</a><br>
<a href="index.html" class="btn waves-effect orange nex"
style="width:100%; max-width:200px;">@@back@@</a><br>
<h5>@@list@@</h5>
<div id="acct-list"></div>
<div class="divider"></div>
@ -71,7 +109,8 @@ body,html{overflow-y: scroll;}
<span style="font-family:Open Sans;">Supports</span>
<div id="support" class="collection transparent"></div>
</div>
</div></div>
</div>
</div>
<div id="auth" style="display:none">
@@codepastewarn@@<br>
<input type="text" id="code" placeholder="@@codepaste@@">

View File

@ -98,10 +98,12 @@
title="箇条書きリスト">format_list_bulleted</i>
<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')"
title="番号付きリスト">format_list_numbered</i>
<i class="pointer setting fa fa-subscript waves-effect" onclick="markdown('__','yes','no','before')"
title="下付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-superscript waves-effect" onclick="markdown('_','yes','no','before')"
title="上付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-subscript waves-effect"
onclick="markdown('__','yes','no','before')" title="下付き文字 テキストボックス内を選択してから押すと囲みます。"
style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-superscript waves-effect"
onclick="markdown('_','yes','no','before')" title="上付き文字 テキストボックス内を選択してから押すと囲みます。"
style="font-size:1.5rem"></i>
<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')"
title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i>
<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')"
@ -121,14 +123,19 @@
title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i>
<input id="colorhex" style="width: calc(50% - 50px); margin: 0; height: 24px;" type="color">
<br>
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()" title="リンク挿入">link</i>
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクテキスト">&nbsp;
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクアドレス">
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()"
title="リンク挿入">link</i>
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="リンクテキスト">&nbsp;
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="リンクアドレス">
<br>
<i class="material-icons pointer setting waves-effect" onclick="markdownImage()"
title="インライン画像挿入">image</i>
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="代替テキスト">&nbsp;
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="画像アドレス">
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="代替テキスト">&nbsp;
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="画像アドレス">
</div>
</div>
<div class="input-field col s12" id="preview-field" style="margin-top: 0;">
@ -154,14 +161,15 @@
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
<i class="waves-effect gray material-icons" id="nsfw" title="@@nsfwDes@@"
onclick="nsfw()">visibility_off</i>
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1'
id="vis-icon">public</i>
<i class="waves-effect gray material-icons purple-text dropdown-button"
data-activates='dropdown1' id="vis-icon">public</i>
<a class="waves-effect gray" id="cw" onclick="cw()" title="@@cwDes@@">CW</a>
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
onclick="fileselect()" title="@@selfile@@">photo_library</i></span></span>
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
title="@@insertEmoji@@">tag_faces</i>
<i class="waves-effect gray material-icons dropdown-button" data-activates='dropdown2'>more_vert</i>
<i class="waves-effect gray material-icons dropdown-button"
data-activates='dropdown2'>more_vert</i>
<i class="material-icons nex gray waves-effect" title="@@clearToot@@(Ctrl+Shit+C)"
data-trans-title="post_box_clear" id="clear">clear</i>
</div>
@ -176,13 +184,15 @@
<br>
<input type="text" id="cw-text" placeholder="@@cwtext@@" class="mize" style="margin:0">
<div id="sch-box">@@postat@@<br><span class="sml">@@scheduleWarn@@</span><br>
<input type="datetime-local" id="sch-date" placeholder="@@schedule@@" class="datepicker" style="margin:0">
<input type="datetime-local" id="sch-date" placeholder="@@schedule@@" class="datepicker"
style="margin:0">
</div>
</div>
</div>
<!-- 公開範囲 Dropdown Structure -->
<ul id='dropdown1' class='dropdown-content'>
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">@@selectVis@@</li>
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">@@selectVis@@
</li>
<li>
<a onclick="vis('public')">@@publicJP@@(Public)</a>
</li>
@ -228,8 +238,9 @@
<div id="toot-btn-field">
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
id="toot-post-btn">@@toot@@</button>
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"><i
class="material-icons" id="toot-sec-icon" title="@@sectoot@@">lock_open</i></button>
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()"
id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon"
title="@@sectoot@@">lock_open</i></button>
</div>
</div>
<div id="right-side">
@ -398,12 +409,12 @@
class="fas fa-share"></i></button>
</div>
<div class="col s2">
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i
class="fas fa-retweet"></i></button>
<button class="dropdown-button btn waves-effect indigo" style="width:100%;"
onclick="staEx('rt')"><i class="fas fa-retweet"></i></button>
</div>
<div class="col s2">
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i
class="fas fa-star"></i></button>
<button class="dropdown-button btn waves-effect orange" style="width:100%;"
onclick="staEx('fav')"><i class="fas fa-star"></i></button>
</div>
</div>
<div id="toot-tools">
@ -449,8 +460,8 @@
<div id="his-plus-action">
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-emp-btn"
onclick="empUser()">@@empUser@@</a>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data" id="his-end-btn"
onclick="pinUser()">@@endorse@@</a><br>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data"
id="his-end-btn" onclick="pinUser()">@@endorse@@</a><br>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin"
onclick="profbrws()">@@openinbrowser@@</a><br>
</div><br>
@ -471,10 +482,12 @@
<a go="#his-follow-list" title="@@follow@@"><i class="material-icons">people</i></a>
</li>
<li class="custom-tab col my-data-width">
<a go="#his-follower-list" title="@@follower@@"><i class="material-icons">people</i></a>
<a go="#his-follower-list" title="@@follower@@"><i
class="material-icons">people</i></a>
</li>
<li class="custom-tab col my-data-width only-his-data">
<a go="#his-action" title="@@operateOtherAcct@@"><i class="material-icons">account_box</i></a>
<a go="#his-action" title="@@operateOtherAcct@@"><i
class="material-icons">account_box</i></a>
</li>
<li class="custom-tab col my-data-width only-his-data">
<a go="#his-list" title="@@list@@"><i class="material-icons">list</i></a>
@ -486,20 +499,23 @@
<a go="#his-blocking-list" title="@@blocks@@"><i class="material-icons">block</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-blocking-list" title="@@blocks@@"><i class="material-icons">voice_over_off</i></a>
<a go="#his-blocking-list" title="@@blocks@@"><i
class="material-icons">voice_over_off</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-domain-list" title="@@domainBlock@@"><i class="material-icons">language</i><i
class="material-icons">block</i></a>
<a go="#his-domain-list" title="@@domainBlock@@"><i
class="material-icons">language</i><i class="material-icons">block</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-prof-list" title="@@editProf@@"><i class="material-icons">create</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-request-list" title="@@followReq@@"><i class="material-icons">how_to_reg</i></a>
<a go="#his-request-list" title="@@followReq@@"><i
class="material-icons">how_to_reg</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-follow-recom-list" title="@@frc@@"><i class="material-icons">recent_actors</i></a>
<a go="#his-follow-recom-list" title="@@frc@@"><i
class="material-icons">recent_actors</i></a>
</li>
</ul>
</div>
@ -523,10 +539,12 @@
</div>
<div id="his-action" class="tab-content">
@@useOtherAcct1@@@@revoverJP@@@@follow@@(@@warnUseOtherAcct@@)<br>
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>@@revoverJPde@@
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>
@@revoverJPde@@
<a href="#!" class="waves-effect btn" onclick="follow('selector','true')">@@follow@@</a><br>
@@or@@<br>
<a href="#!" class="waves-effect btn" onclick="udgEx('selector', 'selector')">@@openProf@@</a><br>
<a href="#!" class="waves-effect btn"
onclick="udgEx('selector', 'selector')">@@openProf@@</a><br>
</div>
<div id="his-list" class="tab-content">
<div id="his-lists-a">@@warnListRegist@@</div>
@ -536,17 +554,20 @@
<div id="his-fav-list" class="tab-content">
<div id="his-fav-list-contents" class="cont-series">
</div>
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="showFav('more')">@@more@@</button>
<button class="btn waves-effect" style="width:100%; padding:0;"
onclick="showFav('more')">@@more@@</button>
</div>
<div id="his-blocking-list" class="tab-content">
<div id="his-blocking-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showBlo('more')">@@more@@</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showBlo('more')">@@more@@</button>
</div>
<div id="his-muting-list" class="tab-content">
<div id="his-muting-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showMut('more')">@@more@@</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showMut('more')">@@more@@</button>
</div>
<div id="his-domain-list" class="tab-content">
<div id="his-domain-list-contents" class="cont-series">
@ -567,7 +588,8 @@
<textarea placeholder="@@note@@" id="his-des-val" class="materialize-textarea"></textarea>
<label for="his-des-val">@@note@@</label>
</div>
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="profedit()">@@change@@</button>
<button class="btn waves-effect" style="width:100%; padding:0;"
onclick="profedit()">@@change@@</button>
<br>@@editProfImg@@:
<span id="prof-change">
<input type="file" onchange="imgChange(this,'avatar')">
@ -580,7 +602,8 @@
<div id="his-request-list" class="tab-content">
<div id="his-request-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showReq('more')">@@more@@</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showReq('more')">@@more@@</button>
</div>
<div id="his-follow-recom-list" class="tab-content">
<div id="his-follow-recom-contents" class="cont-series">
@ -652,19 +675,26 @@
<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-4-0" class="release-do" style="display:none; ">
<div id="release-Usamin_18-5-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.4.0)</h5>
・ソフトウェア(通知音などのアセットを含むTheDeskオリジナル制作物)のコピーライトをTheDeskに統一。Cutls PをMain Developer(author)に。<br>
・Misskey v11のストリーミングに対応(初期取得の投稿のリアクションは自動取得できません。)<br>
・その他Misskeyのさまざまな挙動を修正、追加しました。<br>
・NSFWメディアが複数あったときに「NSFW Media」の文字が邪魔で複数段になる不具合を修正。<br>
・フォローリクエストの許可/拒否ができるように。<br>
・起動時に通知のストリーミングにつながらない不具合を修正<br>
<h5>Release Note Usamin (18.5.0)</h5>
・アップデータについて修正。<br>
・本来不要なところにフォロリク許可画面が出るようになっていたのを修正。<br>
・不明なメディアに対するリンクを表示します。<br>
・PleromaでのVideoの挙動について修正しました。<br>
・Patreonでの支援を開始しました。<br>
・アスタルテの新しいBBCodeに対応しました。<br>
・タイムライン下の方が切れてしまう不具合の修正。<br>
・通知をユーザーごとにフィルターする機能(最新のMastodonのみ)。<br>
・Electron 5.0.1になりました。<br>
<br>
<h5>ThinkingDeskラベル</h5>
<img src="../../img/thinkingdesk.png" style="width:100px;" draggable="false"><br>
手作りマットラベル。貼ってはがせる。300円なのでポイントの余りでどうぞ。<br>
<a href="https://item.mercari.com/jp/m822743330" target="_blank">メルカリ</a>へ。
</div>
<div id="release-en" style="display:none">
<h5>Let's make it native!</h5>
@ -677,12 +707,17 @@
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
@@PixivSupport@@
</a>
<a class="btn-share btn waves-effect waves-light red darken-2"
href="https://www.patreon.com/cutls" target="_blank">
@@PatreonSupport@@
</a>
<a class="btn-share btn waves-effect waves-light blue"
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
@@AWLSupport@@
</a>
<br>
@@SendAmazonGift1@@<a href="mailto:web-pro@cutls.com" target="_blank">web-pro@cutls.com</a>@@SendAmazonGift2@@<br>
@@SendAmazonGift1@@<a href="mailto:web-pro@cutls.com"
target="_blank">web-pro@cutls.com</a>@@SendAmazonGift2@@<br>
Kyash<br>
<img src="../../img/kyash.png" width="100"><br>
</div>
@ -716,7 +751,8 @@
class="material-icons">view_headline</i><span>@@list@@</span></div>
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i
class="material-icons">filter_list</i><span>@@filter@@</span></div>
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>@@help@@</span></div>
<div class="waves-effect" onclick="help()"><i
class="material-icons">help_outline</i><span>@@help@@</span></div>
<div class="waves-effect" onclick="location.href='index.html'"><i
class="material-icons">refresh</i><span>@@f5@@</span></div>
</div>
@ -737,7 +773,8 @@
<div><i class="material-icons">people_outline</i></div><span>@@local@@</span>
</div>
<div class="type waves-effect" data-type="local-media">
<div><i class="material-icons">people_outline</i><i class="material-icons sub-icon">perm_media</i>
<div><i class="material-icons">people_outline</i><i
class="material-icons sub-icon">perm_media</i>
</div><span>@@localMedia@@</span>
</div>
<div class="type waves-effect" data-type="home">
@ -747,7 +784,8 @@
<div><i class="material-icons">language</i></div><span>@@fed@@</span>
</div>
<div class="type waves-effect" data-type="pub-media">
<div><i class="material-icons">language</i><i class="material-icons sub-icon">perm_media</i></div>
<div><i class="material-icons">language</i><i
class="material-icons sub-icon">perm_media</i></div>
<span>@@fedMedia@@</span>
</div>
<div class="type waves-effect" data-type="dm">
@ -757,7 +795,8 @@
<div><i class="material-icons">merge_type</i></div><span>@@integratedTLDes@@</span>
</div>
<div class="type waves-effect" data-type="plus">
<div><i class="material-icons">merge_type</i><i class="material-icons sub-icon">reply</i></div>
<div><i class="material-icons">merge_type</i><i
class="material-icons sub-icon">reply</i></div>
<span>@@localPlusDes@@</span>
</div>
<div class="type waves-effect" data-type="notf">
@ -787,8 +826,8 @@
<div class="input-field">
<input id="src" type="text" class="validate" style="width:60%">
<label for="src" data-trans="src">@@search@@</label>
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;" onclick="src()"
data-trans-i="src">
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;"
onclick="src()" data-trans-i="src">
<i class="material-icons left" style="margin:0">search</i>@@search@@
</button>
<br>
@ -815,7 +854,8 @@
<label>@@selectAcct@@</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()"
data-trans-i="lists">
@@listLocale@@
</button>
</div>
@ -832,7 +872,8 @@
<label>@@selectAcct@@</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()"
data-trans-i="filters">
@@listLocale@@
</button>
</div>
@ -877,12 +918,16 @@
</a>&nbsp;|&nbsp;
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">swap_horiz</i>@@reverse@@
</a>&nbsp;|&nbsp;
<a onclick="openRN()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">new_releases</i>Release Note
</a>
</div>
<div id="main">
<!--TLのTL-->
<div id="timeline-container">
<div id="something-wrong">
<img src="" style="width:150px;margin:5px;display:none;" draggable="false">
<div>@@helloTheDesk@@</div>
</div>
</div>
@ -907,7 +952,8 @@
<i class="material-icons nex" title="@@setting@@(Ctrl+Shift+S)">settings</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="@@nanoDes@@TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
<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>

View File

@ -108,7 +108,7 @@
"empUser":"Emphasize this user",
"supportme":"Support TheDesk!",
"TheDeskDes":"TheDesk has no ad, you need no charge to unlock premium features. We need your friendly support!",
"EntySupport":"Support on Enty",
"PatreonSupport":"Support on Patreon",
"PixivSupport":"Support on Pixiv FANBOX",
"AWLSupport":"Amazon Wish List",
"SendAmazonGift1":"Give me Amazon Gift Card:",

View File

@ -108,7 +108,7 @@
"empUser":"ユーザー強調",
"supportme":"ご支援ください。",
"TheDeskDes":"TheDeskは営利目的ではないため、有料機能や広告は一切ありません。<br>皆様のあたたかいご支援のもとで製作されています。",
"EntySupport":"Entyで支援",
"PatreonSupport":"Patreonで支援",
"PixivSupport":"Pixiv FANBOXで支援",
"AWLSupport":"Amazonほしいものリスト",
"SendAmazonGift1":"",

View File

@ -1,5 +1,5 @@
const fs = require("fs")
const ver="Usamin (18.4.0)"
const ver = "Usamin (18.5.0)"
const langs = ["ja", "en", "ps"]
const langsh = ["日本語", "English", "Crowdin translate system(beta)"]
const simples = ["acct", "index", "setting", "update", "setting"]

View File

@ -22,6 +22,7 @@
input {
max-height: 50px !important
}
.pcr-result {
height: 1rem !important;
}
@ -210,10 +211,14 @@
</template>
</div>
<h5>@@customSound@@</h5>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span 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>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
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>
</div>
</li>
<li>
@ -409,6 +414,8 @@
class="material-icons left">web</i>@@hp@@</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>@@support@@(Pixiv FANBOX)</a>
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>@@support@@(Patreon)</a>
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
class="material-icons left">list</i>@@help@@/Docs(Constructing)</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"

View File

@ -1,5 +1,6 @@
<!doctype html>
<html lang="@@lang@@">
<head>
<title>Update - TheDesk</title>
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
@ -14,6 +15,7 @@
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
@@comment-end@@
</head>
<body>
<style>
body {
@ -23,6 +25,7 @@ body{
padding: 10px;
text-align: right;
}
#start {
display: flex;
justify-content: center;
@ -31,17 +34,25 @@ body{
height: calc(100vh - 2.5rem);
text-align: center;
}
#checkbox {
text-align: left;
}
a,button,input,label,i{
a,
button,
input,
label,
i {
-webkit-app-region: no-drag;
}
#updskip {
display: flex;
justify-content: center;
align-items: center;
}
.skipbtn {
display: block;
float: left;
@ -55,10 +66,12 @@ a,button,input,label,i{
border: 1px solid;
overflow: hidden;
}
.skipbtn:hover {
background-color: #b3e5fc;
transition: all 0.3s ease-in-out;
}
#prog {
font-size: 200%;
}
@ -75,10 +88,14 @@ a,button,input,label,i{
<p>@@updatehere@@</p>
<span id="now"></span><b id="ver"></b><br>
<span id="det"></span><br>
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">@@installer@@</button>
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">@@portable@@</button>
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">@@download@@</button>
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">@@download@@</button>
<button class="waves-effect btn windows hide" onclick="update('install')"
style="margin-left:15px;">@@installer@@</button>
<button class="waves-effect btn windows hide" onclick="update('portable')"
style="margin-left:15px;">@@portable@@</button>
<button class="waves-effect btn linux hide" onclick="update('linux')"
style="margin-left:15px;">@@download@@</button>
<button class="waves-effect btn mac hide" onclick="update('mac')"
style="margin-left:15px;">@@download@@</button>
<br>
@@problem1@@<br>@@problem2@@
</div>
@ -86,14 +103,21 @@ a,button,input,label,i{
<h4>@@sureupd@@</h4>
@@skipupd@@<br>
<div id="updskip">
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>@@nexttl@@</div></a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>@@nextver@@</div></a>
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
<div>@@nexttl@@</div>
</a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
<div>@@nextver@@</div>
</a>
</div>
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">@@continue@@</a>
</div>
<div id="dlnow" class="hide">
<h4>@@dlnow@@</h4>
<h4 id="prog"></h4>
<div class="progress">
<div class="determinate" style="width: 0%"></div>
</div>
</div>
</div>
<script type="text/javascript" src="../../js/common/about.js"></script>
@ -113,6 +137,7 @@ function skipper(){
}
var electron = require("electron");
var ipc = electron.ipcRenderer;
//var shell = electron.shell;
verck();
function update(sel) {
$("#box").toggleClass("show");
@ -158,7 +183,8 @@ function update(sel){
}
} else if (sel == "mac") {
var url = json["mac"];
var file="TheDesk-darwin-x64.zip";
shell.openExternal(url);
return false;
}
ipc.send('download-btn', [url, file]);
});
@ -169,7 +195,7 @@ function update(sel){
}
ipc.on('prog', function (event, arg) {
console.log(arg);
$("body").css('background','linear-gradient(#fff 0%,#fff '+(1-arg)*100+'%, #d7ccc8 '+(1-arg)*100+'%, #d7ccc8 100%)');
$(".determinate").css("width",arg*100+"%");
$("#prog").text(Math.floor(arg * 100) + "%");
})
ipc.on('mess', function (event, arg) {

View File

@ -1,5 +1,6 @@
<!doctype html>
<html lang="ps">
<head>
<title>Account Manager - TheDesk</title>
<meta content="width=device-width,initial-scale=1.0" name="viewport">
@ -10,19 +11,54 @@
<link href='../../css/tl.css' rel='stylesheet' type='text/css'>
<link href='../../css/userdata.css' rel='stylesheet' type='text/css'>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
<style>.acct{display:flex; justify-content:space-around;}
.card{width:400px; background-color: #9e9e9e; margin:10px; }
body,html{overflow-y: scroll;}
#acct-list{display:flex; flex-wrap:wrap; color:white; align-items: flex-start}
.lts{font-size:150%}
.colorsel{ display:flex; }
.card .colorsel div:not(.exc){width:20px;height:20px;}
.card .colorsel div.exc{width:40px;height:20px;}
<style>
.acct {
display: flex;
justify-content: space-around;
}
.card {
width: 400px;
background-color: #9e9e9e;
margin: 10px;
}
body,
html {
overflow-y: scroll;
}
#acct-list {
display: flex;
flex-wrap: wrap;
color: white;
align-items: flex-start
}
.lts {
font-size: 150%
}
.colorsel {
display: flex;
}
.card .colorsel div:not(.exc) {
width: 20px;
height: 20px;
}
.card .colorsel div.exc {
width: 40px;
height: 20px;
}
.first {
display: flex;
justify-content: center;
align-items: center
}
.first .hide-first {
display: none;
}
@ -36,6 +72,7 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
</head>
<body id="mainView">
<script type="text/javascript" src="../../js/common/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.js"></script>
@ -48,7 +85,8 @@ body,html{overflow-y: scroll;}
<script type="text/javascript" src="../../js/common/time.js"></script>
<script type="text/javascript" src="../../js/common/modal.js"></script>
<div class="hide-first">
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">crwdns366:0crwdne366:0</a><br>
<a href="index.html" class="btn waves-effect orange nex"
style="width:100%; max-width:200px;">crwdns366:0crwdne366:0</a><br>
<h5>crwdns365:0crwdne365:0</h5>
<div id="acct-list"></div>
<div class="divider"></div>
@ -71,7 +109,8 @@ body,html{overflow-y: scroll;}
<span style="font-family:Open Sans;">Supports</span>
<div id="support" class="collection transparent"></div>
</div>
</div></div>
</div>
</div>
<div id="auth" style="display:none">
crwdns372:0crwdne372:0<br>
<input type="text" id="code" placeholder="crwdns373:0crwdne373:0">

View File

@ -36,7 +36,7 @@
<script type="text/javascript" src="../../js/common/modal.js"></script>
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
<script>
var ver = "Usamin (18.4.0)";
var ver = "Usamin (18.5.0)";
//betaを入れるとバージョンチェックしない
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
//var ver="beta";
@ -98,10 +98,12 @@
title="箇条書きリスト">format_list_bulleted</i>
<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')"
title="番号付きリスト">format_list_numbered</i>
<i class="pointer setting fa fa-subscript waves-effect" onclick="markdown('__','yes','no','before')"
title="下付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-superscript waves-effect" onclick="markdown('_','yes','no','before')"
title="上付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-subscript waves-effect"
onclick="markdown('__','yes','no','before')" title="下付き文字 テキストボックス内を選択してから押すと囲みます。"
style="font-size:1.5rem"></i>
<i class="pointer setting fa fa-superscript waves-effect"
onclick="markdown('_','yes','no','before')" title="上付き文字 テキストボックス内を選択してから押すと囲みます。"
style="font-size:1.5rem"></i>
<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')"
title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i>
<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')"
@ -121,14 +123,19 @@
title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i>
<input id="colorhex" style="width: calc(50% - 50px); margin: 0; height: 24px;" type="color">
<br>
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()" title="リンク挿入">link</i>
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクテキスト">&nbsp;
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクアドレス">
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()"
title="リンク挿入">link</i>
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="リンクテキスト">&nbsp;
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="リンクアドレス">
<br>
<i class="material-icons pointer setting waves-effect" onclick="markdownImage()"
title="インライン画像挿入">image</i>
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="代替テキスト">&nbsp;
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="画像アドレス">
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="代替テキスト">&nbsp;
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;"
placeholder="画像アドレス">
</div>
</div>
<div class="input-field col s12" id="preview-field" style="margin-top: 0;">
@ -154,14 +161,15 @@
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
<i class="waves-effect gray material-icons" id="nsfw" title="crwdns389:0crwdne389:0"
onclick="nsfw()">visibility_off</i>
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1'
id="vis-icon">public</i>
<i class="waves-effect gray material-icons purple-text dropdown-button"
data-activates='dropdown1' id="vis-icon">public</i>
<a class="waves-effect gray" id="cw" onclick="cw()" title="crwdns390:0crwdne390:0">CW</a>
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
onclick="fileselect()" title="crwdns391:0crwdne391:0">photo_library</i></span></span>
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
title="crwdns393:0crwdne393:0">tag_faces</i>
<i class="waves-effect gray material-icons dropdown-button" data-activates='dropdown2'>more_vert</i>
<i class="waves-effect gray material-icons dropdown-button"
data-activates='dropdown2'>more_vert</i>
<i class="material-icons nex gray waves-effect" title="crwdns395:0crwdne395:0(Ctrl+Shit+C)"
data-trans-title="post_box_clear" id="clear">clear</i>
</div>
@ -176,13 +184,15 @@
<br>
<input type="text" id="cw-text" placeholder="crwdns402:0crwdne402:0" class="mize" style="margin:0">
<div id="sch-box">crwdns1886:0crwdne1886:0<br><span class="sml">crwdns1888:0crwdne1888:0</span><br>
<input type="datetime-local" id="sch-date" placeholder="crwdns1884:0crwdne1884:0" class="datepicker" style="margin:0">
<input type="datetime-local" id="sch-date" placeholder="crwdns1884:0crwdne1884:0" class="datepicker"
style="margin:0">
</div>
</div>
</div>
<!-- 公開範囲 Dropdown Structure -->
<ul id='dropdown1' class='dropdown-content'>
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">crwdns403:0crwdne403:0</li>
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">crwdns403:0crwdne403:0
</li>
<li>
<a onclick="vis('public')">crwdns404:0crwdne404:0(Public)</a>
</li>
@ -228,8 +238,9 @@
<div id="toot-btn-field">
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
id="toot-post-btn">crwdns388:0crwdne388:0</button>
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"><i
class="material-icons" id="toot-sec-icon" title="crwdns1890:0crwdne1890:0">lock_open</i></button>
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()"
id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon"
title="crwdns1890:0crwdne1890:0">lock_open</i></button>
</div>
</div>
<div id="right-side">
@ -398,12 +409,12 @@
class="fas fa-share"></i></button>
</div>
<div class="col s2">
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i
class="fas fa-retweet"></i></button>
<button class="dropdown-button btn waves-effect indigo" style="width:100%;"
onclick="staEx('rt')"><i class="fas fa-retweet"></i></button>
</div>
<div class="col s2">
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i
class="fas fa-star"></i></button>
<button class="dropdown-button btn waves-effect orange" style="width:100%;"
onclick="staEx('fav')"><i class="fas fa-star"></i></button>
</div>
</div>
<div id="toot-tools">
@ -449,8 +460,8 @@
<div id="his-plus-action">
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-emp-btn"
onclick="empUser()">crwdns472:0crwdne472:0</a>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data" id="his-end-btn"
onclick="pinUser()">crwdns454:0crwdne454:0</a><br>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data"
id="his-end-btn" onclick="pinUser()">crwdns454:0crwdne454:0</a><br>
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin"
onclick="profbrws()">crwdns455:0crwdne455:0</a><br>
</div><br>
@ -471,10 +482,12 @@
<a go="#his-follow-list" title="crwdns440:0crwdne440:0"><i class="material-icons">people</i></a>
</li>
<li class="custom-tab col my-data-width">
<a go="#his-follower-list" title="crwdns441:0crwdne441:0"><i class="material-icons">people</i></a>
<a go="#his-follower-list" title="crwdns441:0crwdne441:0"><i
class="material-icons">people</i></a>
</li>
<li class="custom-tab col my-data-width only-his-data">
<a go="#his-action" title="crwdns443:0crwdne443:0"><i class="material-icons">account_box</i></a>
<a go="#his-action" title="crwdns443:0crwdne443:0"><i
class="material-icons">account_box</i></a>
</li>
<li class="custom-tab col my-data-width only-his-data">
<a go="#his-list" title="crwdns444:0crwdne444:0"><i class="material-icons">list</i></a>
@ -486,20 +499,23 @@
<a go="#his-blocking-list" title="crwdns446:0crwdne446:0"><i class="material-icons">block</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-blocking-list" title="crwdns446:0crwdne446:0"><i class="material-icons">voice_over_off</i></a>
<a go="#his-blocking-list" title="crwdns446:0crwdne446:0"><i
class="material-icons">voice_over_off</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-domain-list" title="crwdns450:0crwdne450:0"><i class="material-icons">language</i><i
class="material-icons">block</i></a>
<a go="#his-domain-list" title="crwdns450:0crwdne450:0"><i
class="material-icons">language</i><i class="material-icons">block</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-prof-list" title="crwdns451:0crwdne451:0"><i class="material-icons">create</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-request-list" title="crwdns452:0crwdne452:0"><i class="material-icons">how_to_reg</i></a>
<a go="#his-request-list" title="crwdns452:0crwdne452:0"><i
class="material-icons">how_to_reg</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-follow-recom-list" title="crwdns456:0crwdne456:0"><i class="material-icons">recent_actors</i></a>
<a go="#his-follow-recom-list" title="crwdns456:0crwdne456:0"><i
class="material-icons">recent_actors</i></a>
</li>
</ul>
</div>
@ -523,10 +539,12 @@
</div>
<div id="his-action" class="tab-content">
crwdns430:0crwdne430:0crwdns458:0crwdne458:0crwdns440:0crwdne440:0(crwdns459:0crwdne459:0)<br>
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>crwdns460:0crwdne460:0
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>
crwdns460:0crwdne460:0
<a href="#!" class="waves-effect btn" onclick="follow('selector','true')">crwdns440:0crwdne440:0</a><br>
crwdns461:0crwdne461:0<br>
<a href="#!" class="waves-effect btn" onclick="udgEx('selector', 'selector')">crwdns462:0crwdne462:0</a><br>
<a href="#!" class="waves-effect btn"
onclick="udgEx('selector', 'selector')">crwdns462:0crwdne462:0</a><br>
</div>
<div id="his-list" class="tab-content">
<div id="his-lists-a">crwdns463:0crwdne463:0</div>
@ -536,17 +554,20 @@
<div id="his-fav-list" class="tab-content">
<div id="his-fav-list-contents" class="cont-series">
</div>
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="showFav('more')">crwdns457:0crwdne457:0</button>
<button class="btn waves-effect" style="width:100%; padding:0;"
onclick="showFav('more')">crwdns457:0crwdne457:0</button>
</div>
<div id="his-blocking-list" class="tab-content">
<div id="his-blocking-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showBlo('more')">crwdns457:0crwdne457:0</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showBlo('more')">crwdns457:0crwdne457:0</button>
</div>
<div id="his-muting-list" class="tab-content">
<div id="his-muting-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showMut('more')">crwdns457:0crwdne457:0</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showMut('more')">crwdns457:0crwdne457:0</button>
</div>
<div id="his-domain-list" class="tab-content">
<div id="his-domain-list-contents" class="cont-series">
@ -567,7 +588,8 @@
<textarea placeholder="crwdns466:0crwdne466:0" id="his-des-val" class="materialize-textarea"></textarea>
<label for="his-des-val">crwdns466:0crwdne466:0</label>
</div>
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="profedit()">crwdns1892:0crwdne1892:0</button>
<button class="btn waves-effect" style="width:100%; padding:0;"
onclick="profedit()">crwdns1892:0crwdne1892:0</button>
<br>crwdns467:0crwdne467:0:
<span id="prof-change">
<input type="file" onchange="imgChange(this,'avatar')">
@ -580,7 +602,8 @@
<div id="his-request-list" class="tab-content">
<div id="his-request-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showReq('more')">crwdns457:0crwdne457:0</button>
<button class="btn waves-effect " style="width:100%; padding:0;"
onclick="showReq('more')">crwdns457:0crwdne457:0</button>
</div>
<div id="his-follow-recom-list" class="tab-content">
<div id="his-follow-recom-contents" class="cont-series">
@ -652,19 +675,26 @@
<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-4-0" class="release-do" style="display:none; ">
<div id="release-Usamin_18-5-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.4.0)</h5>
・ソフトウェア(通知音などのアセットを含むTheDeskオリジナル制作物)のコピーライトをTheDeskに統一。Cutls PをMain Developer(author)に。<br>
・Misskey v11のストリーミングに対応(初期取得の投稿のリアクションは自動取得できません。)<br>
・その他Misskeyのさまざまな挙動を修正、追加しました。<br>
・NSFWメディアが複数あったときに「NSFW Media」の文字が邪魔で複数段になる不具合を修正。<br>
・フォローリクエストの許可/拒否ができるように。<br>
・起動時に通知のストリーミングにつながらない不具合を修正<br>
<h5>Release Note Usamin (18.5.0)</h5>
・macOSでのアップデータについて修正。<br>
・本来不要なところにフォロリク許可画面が出るようになっていたのを修正。<br>
・不明なメディアに対するリンクを表示します。<br>
・PleromaでのVideoの挙動について修正しました。<br>
・Patreonでの支援を開始しました。<br>
・アスタルテの新しいBBCodeに対応しました。<br>
・タイムライン下の方が切れてしまう不具合の修正。<br>
・通知をユーザーごとにフィルターする機能(最新のMastodonのみ)。<br>
・Electron 5.0.1になりました。<br>
<br>
<h5>ThinkingDeskラベル</h5>
<img src="../../img/thinkingdesk.png" style="width:100px;" draggable="false"><br>
手作りマットラベル。貼ってはがせる。300円なのでポイントの余りでどうぞ。<br>
<a href="https://item.mercari.com/jp/m822743330" target="_blank">メルカリ</a>へ。
</div>
<div id="release-en" style="display:none">
<h5>Let's make it native!</h5>
@ -677,12 +707,17 @@
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
@@PixivSupport@@
</a>
<a class="btn-share btn waves-effect waves-light red darken-2"
href="https://www.patreon.com/cutls" target="_blank">
@@PatreonSupport@@
</a>
<a class="btn-share btn waves-effect waves-light blue"
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
crwdns476:0crwdne476:0
</a>
<br>
crwdns477:0crwdne477:0<a href="mailto:web-pro@cutls.com" target="_blank">web-pro@cutls.com</a>crwdns478:0crwdne478:0<br>
crwdns477:0crwdne477:0<a href="mailto:web-pro@cutls.com"
target="_blank">web-pro@cutls.com</a>crwdns478:0crwdne478:0<br>
Kyash<br>
<img src="../../img/kyash.png" width="100"><br>
</div>
@ -716,7 +751,8 @@
class="material-icons">view_headline</i><span>crwdns444:0crwdne444:0</span></div>
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i
class="material-icons">filter_list</i><span>crwdns515:0crwdne515:0</span></div>
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>crwdns1894:0crwdne1894:0</span></div>
<div class="waves-effect" onclick="help()"><i
class="material-icons">help_outline</i><span>crwdns1894:0crwdne1894:0</span></div>
<div class="waves-effect" onclick="location.href='index.html'"><i
class="material-icons">refresh</i><span>crwdns518:0crwdne518:0</span></div>
</div>
@ -737,7 +773,8 @@
<div><i class="material-icons">people_outline</i></div><span>crwdns480:0crwdne480:0</span>
</div>
<div class="type waves-effect" data-type="local-media">
<div><i class="material-icons">people_outline</i><i class="material-icons sub-icon">perm_media</i>
<div><i class="material-icons">people_outline</i><i
class="material-icons sub-icon">perm_media</i>
</div><span>crwdns481:0crwdne481:0</span>
</div>
<div class="type waves-effect" data-type="home">
@ -747,7 +784,8 @@
<div><i class="material-icons">language</i></div><span>crwdns483:0crwdne483:0</span>
</div>
<div class="type waves-effect" data-type="pub-media">
<div><i class="material-icons">language</i><i class="material-icons sub-icon">perm_media</i></div>
<div><i class="material-icons">language</i><i
class="material-icons sub-icon">perm_media</i></div>
<span>crwdns484:0crwdne484:0</span>
</div>
<div class="type waves-effect" data-type="dm">
@ -757,7 +795,8 @@
<div><i class="material-icons">merge_type</i></div><span>crwdns486:0crwdne486:0</span>
</div>
<div class="type waves-effect" data-type="plus">
<div><i class="material-icons">merge_type</i><i class="material-icons sub-icon">reply</i></div>
<div><i class="material-icons">merge_type</i><i
class="material-icons sub-icon">reply</i></div>
<span>crwdns487:0crwdne487:0</span>
</div>
<div class="type waves-effect" data-type="notf">
@ -787,8 +826,8 @@
<div class="input-field">
<input id="src" type="text" class="validate" style="width:60%">
<label for="src" data-trans="src">crwdns492:0crwdne492:0</label>
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;" onclick="src()"
data-trans-i="src">
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;"
onclick="src()" data-trans-i="src">
<i class="material-icons left" style="margin:0">search</i>crwdns492:0crwdne492:0
</button>
<br>
@ -815,7 +854,8 @@
<label>crwdns494:0crwdne494:0</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()"
data-trans-i="lists">
crwdns495:0crwdne495:0
</button>
</div>
@ -832,7 +872,8 @@
<label>crwdns494:0crwdne494:0</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()"
data-trans-i="filters">
crwdns495:0crwdne495:0
</button>
</div>
@ -877,12 +918,16 @@
</a>&nbsp;|&nbsp;
<a onclick="bottomReverse()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">swap_horiz</i>crwdns517:0crwdne517:0
</a>&nbsp;|&nbsp;
<a onclick="openRN()" class="nex waves-effect">
<i class="material-icons" style="font-size: 1rem;">new_releases</i>Release Note
</a>
</div>
<div id="main">
<!--TLのTL-->
<div id="timeline-container">
<div id="something-wrong">
<img src="" style="width:150px;margin:5px;display:none;" draggable="false">
<div>crwdns511:0crwdne511:0</div>
</div>
</div>
@ -907,7 +952,8 @@
<i class="material-icons nex" title="crwdns516:0crwdne516:0(Ctrl+Shift+S)">settings</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="crwdns519:0crwdne519:0TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
<i class="material-icons" title="crwdns519:0crwdne519:0TheDesk 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="crwdns444:0crwdne444:0">apps</i>

View File

@ -22,6 +22,7 @@
input {
max-height: 50px !important
}
.pcr-result {
height: 1rem !important;
}
@ -210,10 +211,14 @@
</template>
</div>
<h5>@@customSound@@</h5>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span 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>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
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>
</div>
</li>
<li>
@ -409,6 +414,8 @@
class="material-icons left">web</i>crwdns663:0crwdne663:0</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>crwdns664:0crwdne664:0(Pixiv FANBOX)</a>
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>crwdns664:0crwdne664:0(Patreon)</a>
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
class="material-icons left">list</i>crwdns665:0crwdne665:0/Docs(Constructing)</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"

View File

@ -1,5 +1,6 @@
<!doctype html>
<html lang="ps">
<head>
<title>Update - TheDesk</title>
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
@ -14,6 +15,7 @@
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
</head>
<body>
<style>
body {
@ -23,6 +25,7 @@ body{
padding: 10px;
text-align: right;
}
#start {
display: flex;
justify-content: center;
@ -31,17 +34,25 @@ body{
height: calc(100vh - 2.5rem);
text-align: center;
}
#checkbox {
text-align: left;
}
a,button,input,label,i{
a,
button,
input,
label,
i {
-webkit-app-region: no-drag;
}
#updskip {
display: flex;
justify-content: center;
align-items: center;
}
.skipbtn {
display: block;
float: left;
@ -55,10 +66,12 @@ a,button,input,label,i{
border: 1px solid;
overflow: hidden;
}
.skipbtn:hover {
background-color: #b3e5fc;
transition: all 0.3s ease-in-out;
}
#prog {
font-size: 200%;
}
@ -75,10 +88,14 @@ a,button,input,label,i{
<p>crwdns669:0crwdne669:0</p>
<span id="now"></span><b id="ver"></b><br>
<span id="det"></span><br>
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">crwdns2382:0crwdne2382:0</button>
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">crwdns1950:0crwdne1950:0</button>
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">crwdns670:0crwdne670:0</button>
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">crwdns670:0crwdne670:0</button>
<button class="waves-effect btn windows hide" onclick="update('install')"
style="margin-left:15px;">crwdns2382:0crwdne2382:0</button>
<button class="waves-effect btn windows hide" onclick="update('portable')"
style="margin-left:15px;">crwdns1950:0crwdne1950:0</button>
<button class="waves-effect btn linux hide" onclick="update('linux')"
style="margin-left:15px;">crwdns670:0crwdne670:0</button>
<button class="waves-effect btn mac hide" onclick="update('mac')"
style="margin-left:15px;">crwdns670:0crwdne670:0</button>
<br>
crwdns678:0crwdne678:0<br>crwdns679:0crwdne679:0
</div>
@ -86,14 +103,21 @@ a,button,input,label,i{
<h4>crwdns674:0crwdne674:0</h4>
crwdns675:0crwdne675:0<br>
<div id="updskip">
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>crwdns676:0crwdne676:0</div></a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>crwdns677:0crwdne677:0</div></a>
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
<div>crwdns676:0crwdne676:0</div>
</a>
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
<div>crwdns677:0crwdne677:0</div>
</a>
</div>
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">crwdns680:0crwdne680:0</a>
</div>
<div id="dlnow" class="hide">
<h4>crwdns681:0crwdne681:0</h4>
<h4 id="prog"></h4>
<div class="progress">
<div class="determinate" style="width: 0%"></div>
</div>
</div>
</div>
<script type="text/javascript" src="../../js/common/about.js"></script>
@ -113,6 +137,7 @@ function skipper(){
}
var electron = require("electron");
var ipc = electron.ipcRenderer;
//var shell = electron.shell;
verck();
function update(sel) {
$("#box").toggleClass("show");
@ -158,7 +183,8 @@ function update(sel){
}
} else if (sel == "mac") {
var url = json["mac"];
var file="TheDesk-darwin-x64.zip";
shell.openExternal(url);
return false;
}
ipc.send('download-btn', [url, file]);
});
@ -169,7 +195,7 @@ function update(sel){
}
ipc.on('prog', function (event, arg) {
console.log(arg);
$("body").css('background','linear-gradient(#fff 0%,#fff '+(1-arg)*100+'%, #d7ccc8 '+(1-arg)*100+'%, #d7ccc8 100%)');
$(".determinate").css("width",arg*100+"%");
$("#prog").text(Math.floor(arg * 100) + "%");
})
ipc.on('mess', function (event, arg) {