Compare commits

...

38 Commits

Author SHA1 Message Date
Cutls
c9cf89adeb TheDesk Usain (18.10.1) 2019-09-22 20:36:11 +09:00
Cutls
c5c996cb7a Merge branch 'master' of https://github.com/cutls/TheDesk 2019-09-22 19:56:13 +09:00
Cutls
f2ec258e7a Change: markers API trigger 2019-09-22 19:55:59 +09:00
Cutls
8c29f21970 Travis (comp) 2019-09-22 19:55:22 +09:00
Cutls
609e84a8ae Merge pull request #118 from cutls/dependabot/npm_and_yarn/app/jimp-0.8.3
Bump jimp from 0.8.2 to 0.8.3 in /app
2019-09-20 22:53:55 +09:00
Cutls
7ca778f81b Merge pull request #119 from cutls/dependabot/npm_and_yarn/app/sweetalert2-8.17.6
Bump sweetalert2 from 8.17.4 to 8.17.6 in /app
2019-09-20 22:53:36 +09:00
Cutls
93b194af3b Merge pull request #120 from cutls/dependabot/npm_and_yarn/app/fortawesome/fontawesome-free-5.11.1
Bump @fortawesome/fontawesome-free from 5.11.0 to 5.11.1 in /app
2019-09-20 22:53:25 +09:00
Cutls
b3e1f32ffe Merge pull request #117 from cutls/dependabot/npm_and_yarn/app/electron-6.0.10
Bump electron from 6.0.9 to 6.0.10 in /app
2019-09-20 22:52:14 +09:00
dependabot-preview[bot]
d78b3bffeb Bump @fortawesome/fontawesome-free from 5.11.0 to 5.11.1 in /app
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 5.11.0 to 5.11.1.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/5.11.0...5.11.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-19 20:26:51 +00:00
dependabot-preview[bot]
bff5038a64 Bump sweetalert2 from 8.17.4 to 8.17.6 in /app
Bumps [sweetalert2](https://github.com/sweetalert2/sweetalert2) from 8.17.4 to 8.17.6.
- [Release notes](https://github.com/sweetalert2/sweetalert2/releases)
- [Changelog](https://github.com/sweetalert2/sweetalert2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sweetalert2/sweetalert2/compare/v8.17.4...v8.17.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-19 20:26:23 +00:00
dependabot-preview[bot]
0c7fcfbcc5 Bump jimp from 0.8.2 to 0.8.3 in /app
Bumps [jimp](https://github.com/oliver-moran/jimp) from 0.8.2 to 0.8.3.
- [Release notes](https://github.com/oliver-moran/jimp/releases)
- [Changelog](https://github.com/oliver-moran/jimp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oliver-moran/jimp/compare/v0.8.2...v0.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-19 20:25:54 +00:00
dependabot-preview[bot]
9d6fc15959 Bump electron from 6.0.9 to 6.0.10 in /app
Bumps [electron](https://github.com/electron/electron) from 6.0.9 to 6.0.10.
- [Release notes](https://github.com/electron/electron/releases)
- [Commits](https://github.com/electron/electron/compare/v6.0.9...v6.0.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-19 20:25:35 +00:00
Cutls
5bad5e1031 Merge pull request #116 from cutls/dependabot/npm_and_yarn/app/fortawesome/fontawesome-free-5.11.0
Bump @fortawesome/fontawesome-free from 5.10.2 to 5.11.0 in /app
2019-09-19 20:07:26 +09:00
Cutls
f8d6ec3a8f Merge pull request #114 from cutls/dependabot/npm_and_yarn/app/sweetalert2-8.17.4
Bump sweetalert2 from 8.17.3 to 8.17.4 in /app
2019-09-19 20:07:14 +09:00
dependabot-preview[bot]
9a3dc81630 Bump @fortawesome/fontawesome-free from 5.10.2 to 5.11.0 in /app
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 5.10.2 to 5.11.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/5.10.2...5.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-18 20:30:43 +00:00
Cutls
3d9b97ccb5 WIP: Travis WIndows 1 2019-09-18 23:39:55 +09:00
Cutls
2c3dbba052 to Travis CI error for Windows 2019-09-18 23:32:31 +09:00
Cutls
907eecd030 fix 2019-09-18 23:25:22 +09:00
dependabot-preview[bot]
75026bf42d Bump sweetalert2 from 8.17.3 to 8.17.4 in /app
Bumps [sweetalert2](https://github.com/sweetalert2/sweetalert2) from 8.17.3 to 8.17.4.
- [Release notes](https://github.com/sweetalert2/sweetalert2/releases)
- [Changelog](https://github.com/sweetalert2/sweetalert2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sweetalert2/sweetalert2/compare/v8.17.3...v8.17.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-18 14:25:11 +00:00
Cutls
d217fb33a9 Like Typo 2019-09-18 23:24:34 +09:00
Cutls
8cea32d01b For developers 2019-09-18 23:23:40 +09:00
Cutls
c8d2da0c07 For Linux, macOS 2019-09-18 23:11:39 +09:00
Cutls
a458f51b9a travis 2019-09-17 01:43:01 +09:00
Cutls
bd8ac2935b to Travis 2019-09-17 01:37:18 +09:00
Cutls
dd59cc1468 Introduce yarn 2019-09-17 01:20:52 +09:00
Cutls
fd365c52cc Merge branch 'master' of https://github.com/cutls/TheDesk 2019-09-17 00:59:39 +09:00
Cutls
ad7e77a067 Add: notif-sound volume 2019-09-17 00:59:25 +09:00
Cutls
6b9135a205 remove v1 serach API 2019-09-17 00:24:16 +09:00
Cutls
fdca5b1c60 When complete vote, not refresh status 2019-09-17 00:24:00 +09:00
Cutls
f891b30f9f When unknown media, show after last"." 2019-09-17 00:23:41 +09:00
Cutls
8fbd8070f2 For Pleroma tags 2019-09-17 00:22:55 +09:00
Cutls
657dec1c10 When redraft, diabled acct-sel 2019-09-17 00:22:40 +09:00
Cutls
0d93dcdc45 Merge pull request #113 from cutls/dependabot/npm_and_yarn/app/jimp-tw-0.8.2
Update jimp requirement from ^0.7.0 to ^0.8.2 in /app
2019-09-14 12:13:26 +09:00
dependabot-preview[bot]
5a50c0e1e6 Update jimp requirement from ^0.7.0 to ^0.8.2 in /app
Updates the requirements on [jimp](https://github.com/oliver-moran/jimp) to permit the latest version.
- [Release notes](https://github.com/oliver-moran/jimp/releases)
- [Changelog](https://github.com/oliver-moran/jimp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/oliver-moran/jimp/compare/v0.7.0...v0.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-13 20:26:10 +00:00
Cutls
ab8da89fbc Package and make.js 2019-09-14 02:24:06 +09:00
Cutls
c9edf47643 TheDesk Usamin (18.10.0) 2019-09-14 02:23:24 +09:00
Cutls
84328bf693 Fix: if toot content is blank 2019-09-14 02:18:33 +09:00
Cutls
6fdbf0b48e Add: resizable column 2019-09-14 02:10:02 +09:00
35 changed files with 3476 additions and 124 deletions

1
.gitignore vendored
View File

@@ -12,7 +12,6 @@ enq.md
app/.tkn
app/node_modules
app/js/login/tkn.js
app/package-lock.json
app/view/en
app/view/ja
app/view/de

View File

@@ -3,21 +3,26 @@ os:
- linux
- osx
language: node_js
env:
- YARN_GPG=no
node_js:
- '10.15.2'
cache:
yarn: true
script: node -v
before_deploy:
- npm install electron-builder -g
- yarn global add electron-builder
- cd app
- VERSION=$(cat package.json | grep version | head -1 | awk -F= "{ print $2 }" | sed 's/[version:,\",]//g' | tr -d '[[:space:]]')
- npm install
- npm run construct
- yarn install --no-lockfile --prod
- yarn construct
- if [ "$TRAVIS_OS_NAME" = "osx" ];then electron-builder --mac -p never;else :;fi
- if [ "$TRAVIS_OS_NAME" = "linux" ];then electron-builder --linux --x64 -p never;else :;fi
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../build;else :;fi
- if [ "$TRAVIS_OS_NAME" = "linux" ];then ls;else :;fi
- if [ "$TRAVIS_OS_NAME" = "linux" ];then mv thedesk-*.zip thedesk.zip;else :;fi
- if [ "$TRAVIS_OS_NAME" = "linux" ];then cd ../app;else :;fi
- if [ "$TRAVIS_OS_NAME" = "windows" ];then yarn add electron-builder;else :;fi
- if [ "$TRAVIS_OS_NAME" = "windows" ];then electron-builder --win --ia32 -p never;else :;fi
- if [ "$TRAVIS_OS_NAME" = "windows" ];then cd ../build;else :;fi
- if [ "$TRAVIS_OS_NAME" = "windows" ];then ls;else :;fi

View File

@@ -80,6 +80,10 @@ Fellow coder
## Build
You have to use either **npm** or **yarn**. Whichever you use, it works well.
### npm
```sh
git clone https://github.com/cutls/TheDesk
cd TheDesk/app
@@ -88,8 +92,25 @@ npm install --only=dev
npm run construct
```
### yarn
```sh
git clone https://github.com/cutls/TheDesk
cd TheDesk/app
# Linux or macOS
yarn install --no-lockfile
# Windows
yarn install
yarn construct
```
run `npm run dev` or `yarn dev` to launch developer version with console(click `view`)
### electron-builder(Recommended)
Use npm scripts.
Use scripts(they can work well with npm, **yarn**).
#### npm
```sh
# Build for current platform
@@ -103,6 +124,21 @@ npm run build:win
npm run build:all
```
#### yarn
```sh
# Build for current platform
yarn build
# Select build target
## Windows
yarn build:win
## Windows and Linux (The macOS target should run on macOS. So, this option hasn't include the build for macOS)
yarn build:all
```
Config is all on package.json
### electron-packager

View File

@@ -79,6 +79,9 @@ Linuxビルダー
## ビルド
npmでもyarnでも好きな方を選んでください。
### npm
```sh
git clone https://github.com/cutls/TheDesk
@@ -88,8 +91,24 @@ npm install --only=dev
npm run construct
```
### yarn
```sh
git clone https://github.com/cutls/TheDesk
cd TheDesk/app
# Linux or macOS
yarn install --no-lockfile
# Windows
yarn install
yarn construct
```
### electron-builder(推奨)
npm scriptsを利用します
scriptsを利用します
#### npm
```sh
# 実行している環境向けにビルド
@@ -103,6 +122,20 @@ npm run build:win
npm run build:all
```
#### yarn
```sh
# 実行している環境向けにビルド
yarn build
# ターゲットを指定してビルド
## Windows
yarn build:win
## macOS向けのビルドにはmacOSで実行する必要があるためこのコマンドではビルドされません
yarn build:all
```
ビルド設定はすべてpackage.jsonに記載しています。
### electron-packager(非推奨)

View File

@@ -698,8 +698,8 @@ audio {
}
}
.box-anime {
animation-duration: 1s;
animation-name: fadeInLeft;
/*animation-duration: 1s;
animation-name: fadeInLeft;*/
}
.cvo-anime {
@@ -712,3 +712,15 @@ audio {
font-size: 1rem;
background-color: #009688;
}
.box .ui-resizable-s{
display: none !important;
}
.boxIn .ui-resizable-e{
display: none !important;
}
.boxIn .ui-resizable-s{
display: block !important;
}
.box .ui-resizable-se{
display: none !important;
}

View File

@@ -107,6 +107,8 @@ var lang={
"lang_tags_tagwarn": "Автоматично попълване на {{tag}}, ако раздумката няма {{tag}}",
"lang_tl_media": "Media",
"lang_tl_reconnect": "Reconnect to streaming API",
"lang_tl_postmarkers_title": "Process...",
"lang_tl_postmarkers": "POST markers data. Please wait",
"lang_img_DLDone": "Downloaded:",
"lang_layout_gotop": "Go top of this column. When icon is red, this column cannot connect straming API. Please reload.",
"lang_layout_thisacct": "{{notf}} of this account",

View File

@@ -107,6 +107,8 @@ var lang={
"lang_tags_tagwarn": "Auto complete {{tag}}, if toot without {{tag}}",
"lang_tl_media": "Média",
"lang_tl_reconnect": "Reconnect to streaming API",
"lang_tl_postmarkers_title": "Process...",
"lang_tl_postmarkers": "POST markers data. Please wait",
"lang_img_DLDone": "Downloaded:",
"lang_layout_gotop": "Go top of this column. When icon is red, this column cannot connect straming API. Please reload.",
"lang_layout_thisacct": "{{notf}} tohoto účtu",

View File

@@ -107,6 +107,8 @@ var lang={
"lang_tags_tagwarn": "Automatisch {{tag}} anfügen, wenn Tröt ohne {{tag}} ist",
"lang_tl_media": "Medien",
"lang_tl_reconnect": "Mit Streaming API erneut verbinden",
"lang_tl_postmarkers_title": "Process...",
"lang_tl_postmarkers": "POST markers data. Please wait",
"lang_img_DLDone": "Heruntergeladen:",
"lang_layout_gotop": "Gehen Sie zum Anfang dieser Spalte. Wenn das Symbol rot ist, kann diese Spalte keine Verbindung zur Streaming-API herstellen. Bitte neu laden.",
"lang_layout_thisacct": "{{notf}} dieses Kontos",

View File

@@ -131,6 +131,8 @@ var lang = {
//tl/tl.js
"lang_tl_media": "Media",
"lang_tl_reconnect": "Reconnect to streaming API",
"lang_tl_postmarkers_title": "Process...",
"lang_tl_postmarkers": "POST markers data. Please wait",
//ui/img.js
"lang_img_DLDone": "Downloaded:",
//ui/layout.js

View File

@@ -131,6 +131,8 @@ var lang = {
//tl/tl.js
"lang_tl_media": "メディア",
"lang_tl_reconnect": "Streamingに再接続しました",
"lang_tl_postmarkers_title": "処理中",
"lang_tl_postmarkers": "未読マーカーを送信しています。3秒以内に閉じられます。",
//ui/img.js
"lang_img_DLDone": "ダウンロード先:",
//ui/layout.js

View File

@@ -525,7 +525,6 @@ function ticker() {
}).catch(function (error) {
console.error(error);
}).then(function (json) {
console.log(json)
if (json) {
localStorage.setItem("ticker", JSON.stringify(json));
}

View File

@@ -108,12 +108,16 @@ function opendev() {
});
*/
}
var soundFile
function playSound() {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
if(soundFile){
soundFile.stop()
}
context = new AudioContext();
context.createBufferSource().start(0);
context.decodeAudioData(request.response, function (buf) {
console.log("Playing:" + source)
//console.log("Playing:" , source)
source.buffer = buf;
source.loop = false;
});
@@ -121,8 +125,20 @@ function playSound() {
volumeControl = context.createGain();
source.connect(volumeControl);
volumeControl.connect(context.destination);
volumeControl.gain.value = 0.8
var cvol = localStorage.getItem("customVol")
if (cvol) {
vol = cvol
}else{
vol = 0.8
}
volumeControl.gain.value = vol
source.start(0);
soundFile = source;
function newFunction() {
var source;
return source;
}
}
function nano() {
postMessage(["nano", null], "*")
@@ -167,6 +183,10 @@ onmessage = function (e) {
updateMess(e.data[1]);
} else if (e.data[0] == "renderAbout") {
renderAbout(e.data[1]);
} else if (e.data[0] == "asRead") {
asRead()
} else if (e.data[0] == "asReadEnd") {
asReadEnd()
} else if (e.data[0] == "alert") {
Swal.fire({
type: 'info',

View File

@@ -57,6 +57,8 @@ onmessage = function (e) {
ipc.send('download-btn', e.data[1]);
} else if (e.data[0] == "nano") {
ipc.send('nano', null);
} else if (e.data[0] == "asReadComp") {
ipc.send('sendMarkersComplete', null);
}
}
//version.js
@@ -164,6 +166,12 @@ ipc.on('prog', function (event, arg) {
ipc.on('mess', function (event, arg) {
postMessage(["updateMess", arg], "*")
})
ipc.on('asRead', function (event, arg) {
postMessage(["asRead", ""], "*")
})
ipc.on('asReadEnd', function (event, arg) {
postMessage(["asReadEnd", ""], "*")
})
var webviewDom = document.getElementById('webview');
if (webviewDom) {
webviewDom.addEventListener('new-window', function (e) {

View File

@@ -295,6 +295,7 @@ function redraft(id, acct_id) {
show();
del(id, acct_id);
$("#post-acct-sel").prop("disabled", true);
$('select').formSelect();
var medias = $("[toot-id=" + id + "]").attr("data-medias");
var vismode = $("[toot-id=" + id + "] .vis-data").attr("data-vis");
vis(vismode);
@@ -473,7 +474,7 @@ function staEx(mode) {
var acct_id = $("#status-acct-sel").val();
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/search?resolve=true&q=" + url
var start = "https://" + domain + "/api/v2/search?resolve=true&q=" + url
fetch(start, {
method: 'GET',
headers: {

View File

@@ -6,17 +6,21 @@ function additional(acct_id, tlid) {
$("#timeline-container .mention").addClass("parsed");
$("#timeline-container .hashtag").each(function (i, elem) {
$("#timeline-container .hashtag, #timeline-container [rel=tag]").each(function (i, elem) {
var tags = $(this).attr("href").match(
/https?:\/\/([-a-zA-Z0-9@.]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/
);
$(this).attr("href", "#");
if (tags) {
if (tags[2]) {
$(this).attr("onclick", 'tagShow(\'' + tags[2] + '\')');
}
if(tags){
var tagThis = tags[2]
}else{
var tagThis = $(this).attr("data-tag")
}
if(tagThis){
$(this).attr("onclick", 'tagShow(\'' + tagThis + '\')');
$(this).attr("href", "#");
}
});
//トゥートサムネ

View File

@@ -100,10 +100,10 @@ function notfColumn(acct_id, tlid, sys) {
todc();
//Markers
var markers = localStorage.getItem("markers");
if (markers == "no") {
markers = false;
if (markers == "yes") {
markers = true;
} else {
markers = true
markers = false
}
if (markers) {
getMarker(tlid, "notf", acct_id)

View File

@@ -426,7 +426,12 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
}
}
}
if (toot.content) {
if (toot.content == "") {
var content = " "
} else {
var content = toot.content
}
if (content) {
var id = toot.id;
if (mix == "home") {
var home = ""
@@ -468,31 +473,29 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
boostback = "emphasized";
}
if (toot.spoiler_text && cw) {
var content = toot.content;
var spoil = escapeHTML(toot.spoiler_text);
var spoiler = "cw cw_hide_" + toot.id;
var api_spoil = "gray";
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
'\')" class="nex parsed cw_btn">' + lang.lang_parse_cwshow + '</a><br>';
} else {
if (toot.content) {
var ct1 = toot.content.split('</p>').length + toot.content.split('<br />').length - 2;
var ct2 = toot.content.split('</p>').length + toot.content.split('<br>').length - 2;
if (content) {
var ct1 = content.split('</p>').length + content.split('<br />').length - 2;
var ct2 = content.split('</p>').length + content.split('<br>').length - 2;
} else {
var ct1 = 100;
var ct2 = 100;
}
if (ct1 > ct2) { var ct = ct1; } else { var ct = ct2; }
if ((sent < ct && $.mb_strlen($.strip_tags(toot.content)) > 5) || ($.strip_tags(toot.content).length > ltr && $.mb_strlen($.strip_tags(toot.content)) > 5)) {
var content = '<span class="gray">' + lang.lang_parse_fulltext + '</span><br>' + toot.content
if ((sent < ct && $.mb_strlen($.strip_tags(content)) > 5) || ($.strip_tags(content).length > ltr && $.mb_strlen($.strip_tags(content)) > 5)) {
var content = '<span class="gray">' + lang.lang_parse_fulltext + '</span><br>' + content
var spoil = '<span class="cw-long-' + toot.id + '">' + $.mb_substr($.strip_tags(
toot.content), 0, 100) +
content), 0, 100) +
'</span><span class="gray">' + lang.lang_parse_autofold + '</span>';
var spoiler = "cw cw_hide_" + toot.id;
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
'\')" class="nex parsed cw_btn">' + lang.lang_parse_more + '</a><br>';
} else {
var content = toot.content;
var spoil = escapeHTML(toot.spoiler_text);
var spoiler = "";
var spoiler_show = "";
@@ -593,7 +596,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
' toot-img pointer" style="max-width:100%;" loop="true"></a></span>';
} else {
if (media.type == "unknown") {
viewer = viewer + '<a href="' + media.remote_url + '" title="' + media.remote_url + '">[' + lang.lang_parse_unknown + ']</a> '
var mty = media.remote_url.match(/.+(\..+)$/)[1]
viewer = viewer + '<a href="' + media.remote_url + '" title="' + media.remote_url + '">[' + lang.lang_parse_unknown + '( ' + mty + ' )]</a> '
} else if (media.type == "audio") {
viewer = viewer + '<audio src="' +
url + '" class="pointer" style="width:100%;" controls></span>';
@@ -620,8 +624,6 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var to_mention = [];
Object.keys(toot.mentions).forEach(function (key3) {
var mention = toot.mentions[key3];
mentions = mentions + '<a onclick="udg(\'' + mention.id + '\',' +
acct_id + ')" class="pointer">@' + mention.acct + '</a> ';
//自分は除外
//自インスタンスかどうかを確認し、IDの一致
if (mention.acct == mention.username && mention.id == localStorage.getItem("user-id_" + acct_id)) {
@@ -629,6 +631,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
} else {
//そのトゥの人NG
if (toot.account.acct != mention.acct) {
mentions = mentions + '<a onclick="udg(\'' + mention.id + '\',' +
acct_id + ')" class="pointer">@' + mention.acct + '</a> ';
to_mention.push(mention.acct);
}
}
@@ -650,7 +654,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
if (tagck) {
Object.keys(toot.tags).forEach(function (key4) {
var tag = toot.tags[key4];
var featured = ' <a onclick="tagFeature(\'' + tag.name + '\',' + acct_id +')" class="pointer" title="add it to Featured tags">Feature</a> '
var featured = ' <a onclick="tagFeature(\'' + tag.name + '\',' + acct_id + ')" class="pointer" title="add it to Featured tags">Feature</a> '
tags = tags + '<span class="hide" data-tag="' + tag.name + '">#' + tag.name + ':<a onclick="tl(\'tag\',\'' + tag.name + '\',' + acct_id +
',\'add\')" class="pointer" title="' + lang.lang_parse_tagTL.replace("{{tag}}", '#' + tag.name) + '">TL</a> <a onclick="brInsert(\'#' + tag.name + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}", '#' + tag.name) + '">Toot</a> ' +
'<a onclick="tagPin(\'' + tag.name + '\')" class="pointer" title="' + lang.lang_parse_tagpin.replace("{{tag}}", '#' + tag.name) + '">Pin</a>' + featured + '</span> ';

View File

@@ -127,6 +127,8 @@ function voteMastodonrefresh(acct_id, id) {
var choice = choices[keyc];
if (!json.voted) {
votesel = 'voteSelMastodon(\'' + acct_id + '\',\'' + json.id + '\',' + keyc + ',' + json.multiple + ')';
}else {
votesel =""
}
poll = poll + '<div class="pointer vote vote_' + acct_id + '_' + json.id + '_' + keyc + '" onclick="' + votesel + '">' + escapeHTML(choice.title) + '<span class="vote_' + acct_id + '_' + json.id + '_result ' + result_hide + '">(' + choice.votes_count + ')</span></div>';
});

View File

@@ -98,11 +98,14 @@ function voiceSettingLoad() {
var vol = localStorage.getItem("voice_vol");
if (speed) {
$("#voicespeed").val(speed * 10);
$("#voicespeedVal").text(speed * 10);
}
if (pitch) {
$("#voicepitch").val(pitch * 50);
$("#voicepitchVal").text(pitch * 50);
}
if (vol) {
$("#voicevol").val(vol * 100);
$("#voicevolVal").text(vol * 100);
}
}

View File

@@ -153,10 +153,10 @@ function tl(type, data, acct_id, tlid, delc, voice, mode) {
if (type == "home" || type == "notf") {
//Markers
var markers = localStorage.getItem("markers");
if (markers == "no") {
markers = false;
if (markers == "yes") {
markers = true;
} else {
markers = true
markers = false
}
if (markers) {
getMarker(tlid, type, acct_id)
@@ -999,24 +999,24 @@ function ueload(tlid) {
columnReload(tlid, type)
}
if (localStorage.getItem("filter_" + acct_id) != "undefined") {
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type);
var mute = getFilterType(JSON.parse(localStorage.getItem("filter_" + acct_id)), type)
} else {
var mute = [];
var mute = []
}
var templete = parse(json, '', acct_id, tlid, "", mute, type);
var templete = parse(json, '', acct_id, tlid, "", mute, type)
var len = json.length - 1
$("#timeline_" + tlid).prepend(templete);
$("#timeline_" + tlid).prepend(templete)
if ($("#timeline_" + tlid + " .cvo:eq(" + len + ")").length) {
var to = $("#timeline_" + tlid + " .cvo:eq(" + len + ")").offset().top
$("#timeline_box_" + tlid + "_box .tl-box").scrollTop(to)
}
additional(acct_id, tlid);
jQuery("time.timeago").timeago();
todc();
additional(acct_id, tlid)
jQuery("time.timeago").timeago()
todc()
ueloadlock = false
});
}
function asRead() {
function asRead(callback) {
//Markers
var markers = localStorage.getItem("markers");
if (markers == "no") {
@@ -1027,7 +1027,9 @@ function asRead() {
if (markers) {
var multi = localStorage.getItem("column")
var obj = JSON.parse(multi)
for (var i = 0; i < obj.length; i++) {
var obl = obj.length
ct = 0
for (var i = 0; i < obl; i++) {
var acct_id = obj[i].domain
var type = obj[i].type
if (type == "home" || type == "notf") {
@@ -1046,23 +1048,53 @@ function asRead() {
}
}
}
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_" + acct_id + "_at");
var httpreq = new XMLHttpRequest();
var domain = localStorage.getItem("domain_" + acct_id)
var at = localStorage.getItem("acct_" + acct_id + "_at")
var httpreq = new XMLHttpRequest()
var start = "https://" + domain + "/api/v1/markers"
httpreq.open('POST', start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
httpreq.responseType = "json";
httpreq.send(JSON.stringify(poster));
httpreq.open('POST', start, true)
httpreq.setRequestHeader('Content-Type', 'application/json')
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
httpreq.responseType = "json"
httpreq.send(JSON.stringify(poster))
httpreq.onreadystatechange = function () {
if (httpreq.readyState === 4) {
var json = httpreq.response;
var json = httpreq.response
console.log(json)
ct++
if (ct == obl && callback) {
postMessage(["asReadComp", ""], "*")
}
}
}
}
}
}
}
cbTimer1 = setInterval(asRead, 60000);
function asReadEnd() {
//Markers
var markers = localStorage.getItem("markers");
if (markers == "no") {
markers = false;
} else {
markers = true
}
if (markers) {
asRead(true)
Swal.fire({
title: lang.lang_tl_postmarkers_title,
html: lang.lang_tl_postmarkers,
timer: 3000,
onBeforeOpen: () => {
Swal.showLoading()
},
onClose: () => {
}
}).then((result) => {
})
} else {
postMessage(["asReadComp", ""], "*")
}
}

View File

@@ -95,6 +95,7 @@ function parseColumn(target, dontclose) {
var tlidtar = null
if ($("#timeline-container").length) {
$("#timeline-container").html("");
$(".box, .boxIn").resizable("destroy");
}
}
var basekey = 0;
@@ -155,6 +156,16 @@ function parseColumn(target, dontclose) {
} else {
localStorage.removeItem("hasNotfC_" + acct.domain);
}
var width = localStorage.getItem("width");
if (width) {
var css = " min-width:" + width + "px;"
}
if(acct.width){
var css = " min-width:" + acct.width + "px;max-width:" + acct.width + "px;"
}
if(!css){
var css = ""
}
if (acct.type == "webview") {
if (localStorage.getItem("fixwidth")) {
var fixwidth = localStorage.getItem("fixwidth");
@@ -168,10 +179,7 @@ function parseColumn(target, dontclose) {
if (!acct.left_fold) {
basekey = key;
}
var width = localStorage.getItem("width");
if (width) {
var css = " min-width:" + width + "px;"
}
var anime = localStorage.getItem("animation");
if (anime == "yes" || !anime) {
var animecss = "box-anime";
@@ -180,10 +188,6 @@ function parseColumn(target, dontclose) {
}
unstreamingTL(acct.type, key, basekey, insert, icnsert, acct.left_fold, css, animecss, acct.data);
} else {
var width = localStorage.getItem("width");
if (width) {
var css = " min-width:" + width + "px;"
}
var anime = localStorage.getItem("animation");
if (anime == "yes" || !anime) {
var animecss = "box-anime";
@@ -213,10 +217,10 @@ function parseColumn(target, dontclose) {
unread = ""
}
var markers = localStorage.getItem("markers");
if (markers == "no") {
markers = false;
if (markers == "yes") {
markers = true;
} else {
markers = true
markers = false
}
if (!markers) {
unread = ""
@@ -242,8 +246,13 @@ function parseColumn(target, dontclose) {
var isMisRed = "red-text"
var if_misskey_hide = ""
}
if(acct.height){
var addHeight = " min-height:" + acct.height + "px;max-height:" + acct.height + "px;"
}else {
var addHeight = ""
}
var html = '<div class="boxIn" id="timeline_box_' + key + '_box" tlid="' + key +
'" data-acct="' + acct.domain + '"><div class="notice-box z-depth-2" id="menu_' + key + '" style="' + insert + ' ">' +
'" data-acct="' + acct.domain + '" style="' + addHeight + '"><div class="notice-box z-depth-2" id="menu_' + key + '" style="' + insert + ' ">' +
'<div class="area-notice"><i class="material-icons waves-effect ' + isMisRed + '" id="notice_icon_' + key + '"' + notf_attr + ' style="font-size:40px; padding-top:25%;" onclick="checkStr(\'' + acct.type + '\', \'' + data + '\', \'' + acct.domain + '\', \'' + key + '\', \'' + delc + '\',\'' + voice + '\',null)" title="' + lang.lang_layout_gotop + '"></i></div>' +
'<div class="area-notice_name"><span id="notice_' + key + '" class="tl-title"></span></div>' +
'<div class="area-a1"><a onclick="notfToggle(' + acct.domain + ',' + key +
@@ -293,6 +302,7 @@ function parseColumn(target, dontclose) {
mediaCheck(key);
catchCheck(key);
voiceCheck(key);
var css = ""
}
}
var box = localStorage.getItem("box");
@@ -320,6 +330,40 @@ function parseColumn(target, dontclose) {
}
}
}
$(".box, .boxIn").resizable({
minHeight: 50,
minWidth: 50,
grid: 50,
resize: function (event, ui) {
$(this).css("min-width", ui.size.width + "px")
$(this).css("max-width", ui.size.width + "px")
$(this).css("min-height", ui.size.height + "px")
$(this).css("max-height", ui.size.height + "px")
},
stop: function (event, ui) {
var col = localStorage.getItem("column");
var o = JSON.parse(col);
var width = ui.size.width
var height = ui.size.height
if ($(this).hasClass("boxIn")) {
//縦幅。その縦幅を持つカラムのidは
console.log("tate")
var key = $(this).attr("tlid")
var obj = o[key];
obj.height = height;
o[key] = obj;
} else {
//横幅。その縦幅を持つカラムのidは
console.log("yoko")
var key = $(this).find(".boxIn").attr("tlid")
var obj = o[key];
obj.width = width;
o[key] = obj;
}
var json = JSON.stringify(o);
localStorage.setItem("column", json);
}
});
}
function checkStr(type, data, acct_id, key, delc, voice) {
if ($('#notice_icon_' + key).hasClass("red-text") && type != "notf" && type != "mix") {

View File

@@ -161,8 +161,37 @@ function load() {
$("#c2-file").text(localStorage.getItem("custom2"));
$("#c3-file").text(localStorage.getItem("custom3"));
$("#c4-file").text(localStorage.getItem("custom4"));
var cvol = localStorage.getItem("customVol")
if (cvol) {
$("#soundvol").val(cvol * 100);
$("#soundVolVal").text(cvol * 100)
}
//$("#log").val(localStorage.getItem("errors"))
}
function customVol() {
var cvol = $("#soundvol").val()
$("#soundVolVal").text(cvol)
localStorage.setItem("customVol", cvol / 100)
var sound = localStorage.getItem("favSound");
if (sound == "default") {
var file = "../../source/notif.wav"
}else{
if (sound == "c1") {
var file = localStorage.getItem("custom1");
} else if (sound == "c2") {
var file = localStorage.getItem("custom2");
} else if (sound == "c3") {
var file = localStorage.getItem("custom3");
} else if (sound == "c4") {
var file = localStorage.getItem("custom4");
}
}
request = new XMLHttpRequest();
request.open("GET", file, true);
request.responseType = "arraybuffer";
request.onload = playSound;
request.send();
}
function climute() {
//クライアントミュート

View File

@@ -23,7 +23,7 @@ function udgEx(user, acct_id) {
var domain = localStorage.getItem("domain_" + acct_id);
if (localStorage.getItem("mode_" + domain) == "misskey") { return false; }
var at = localStorage.getItem("acct_" + acct_id + "_at");
var start = "https://" + domain + "/api/v1/search?resolve=true&q=" + user
var start = "https://" + domain + "/api/v2/search?resolve=true&q=" + user
fetch(start, {
method: 'GET',
headers: {

View File

@@ -12,6 +12,7 @@ const np = require('./main/np.js');
const systemFunc = require('./main/system.js');
const Menu = electron.Menu
const join = require('path').join;
// アプリケーションをコントロールするモジュール
const app = electron.app;
// ウィンドウを作成するモジュール
@@ -29,8 +30,8 @@ if (!gotTheLock) {
// 多重起動を試みた場合、既に存在するウィンドウにフォーカスを移す
// Someone tried to run a second instance, we should focus our window.
if (mainWindow) {
if (mainWindow.isMinimized()) mainWindow.restore()
mainWindow.focus()
if (mainWindow.isMinimized()) mainWindow.restore()
mainWindow.focus()
}
})
}
@@ -40,18 +41,18 @@ if (process.argv.indexOf("--dev") === -1) {
} else {
var packaged = false;
console.log(
"||\\\\\\ \n"+
"|||| \\\\\\\\ \n"+
"|||| \\\\\\\\ \n"+
"|||| Am I a \\\\\\\\ \n"+
"|||| cat? ^ ^ \\\\\\\\\\ _____ _ ____ _ \n"+
"|||| (.-.) \\\\\\\\\\ |_ _| |__ ___| _ \\ ___ ___| | __\n"+
"|||| ___> ) ||||| | | | '_ \\ / _ \\ | | |/ _ \\/ __| |/ /\n"+
"|||| < _ _) ////// | | | | | | __/ |_| | __/\__ \\ < \n"+
"|||| |_||_| ///// |_| |_| |_|\\___|____/ \\___||___/_|\\_\\ \n"+
"|||| ///// \n"+
"|||| /////\n"+
"|||| /////\n"+
"||\\\\\\ \n" +
"|||| \\\\\\\\ \n" +
"|||| \\\\\\\\ \n" +
"|||| Am I a \\\\\\\\ \n" +
"|||| cat? ^ ^ \\\\\\\\\\ _____ _ ____ _ \n" +
"|||| (.-.) \\\\\\\\\\ |_ _| |__ ___| _ \\ ___ ___| | __\n" +
"|||| ___> ) ||||| | | | '_ \\ / _ \\ | | |/ _ \\/ __| |/ /\n" +
"|||| < _ _) ////// | | | | | | __/ |_| | __/\__ \\ < \n" +
"|||| |_||_| ///// |_| |_| |_|\\___|____/ \\___||___/_|\\_\\ \n" +
"|||| ///// \n" +
"|||| /////\n" +
"|||| /////\n" +
"||||//////"
)
console.log("Welcome!")
@@ -63,9 +64,9 @@ var ha_path = join(app.getPath("userData"), "hardwareAcceleration");
try {
fs.readFileSync(ha_path, 'utf8');
app.disableHardwareAcceleration()
if(!packaged) console.log("disabled: Hardware Acceleration");
if (!packaged) console.log("disabled: Hardware Acceleration");
} catch{
if(!packaged) console.log("enabled: Hardware Acceleration");
if (!packaged) console.log("enabled: Hardware Acceleration");
}
var window_size;
try {
@@ -131,8 +132,8 @@ function createWindow() {
fs.writeFileSync(lang_path, lang);
});
}
if(!packaged) console.log("your lang:" + app.getLocale());
if(!packaged) console.log("launch:" + lang);
if (!packaged) console.log("your lang:" + app.getLocale());
if (!packaged) console.log("launch:" + lang);
// メイン画面の表示。ウィンドウの幅、高さを指定できる
var platform = process.platform;
var bit = process.arch;
@@ -173,7 +174,7 @@ function createWindow() {
if (window_size.max) {
mainWindow.maximize();
}
})
})
electron.session.defaultSession.clearCache(() => { })
if (process.argv) {
if (process.argv[1]) {
@@ -200,7 +201,27 @@ function createWindow() {
electron.ipcMain.removeAllListeners();
mainWindow = null;
});
mainWindow.on('close', function () {
closeArg = false
mainWindow.on('close', function (e, arg) {
if(!closeArg){
e.preventDefault()
}
const promise = new Promise(function (resolve) {
mainWindow.webContents.send('asReadEnd', "")
setTimeout(function () { resolve() }, 3000)
})
promise.then((function (response) {
writePos(mainWindow)
closeArg = true
mainWindow.close()
})
);
});
electron.ipcMain.on('sendMarkersComplete', function (e, arg) {
closeArg = true
mainWindow.close()
})
function writePos(mainWindow){
if (
max_window_size.width == mainWindow.getBounds().width &&
max_window_size.height == mainWindow.getBounds().height &&
@@ -211,11 +232,14 @@ function createWindow() {
} else {
var size = { width: mainWindow.getBounds().width, height: mainWindow.getBounds().height, x: mainWindow.getBounds().x, y: mainWindow.getBounds().y }
}
fs.writeFileSync(info_path, JSON.stringify(size));
});
fs.writeFileSync(info_path, JSON.stringify(size))
}
mainWindow.on('maximize', function () {
fs.writeFileSync(max_info_path, JSON.stringify(mainWindow.getBounds()));
});
mainWindow.on('minimize', function () {
mainWindow.webContents.send('asRead', "")
})
var platform = process.platform;
var bit = process.arch;
@@ -230,6 +254,29 @@ function createWindow() {
np.TheDeskNowPlaying(mainWindow);
//その他system
systemFunc.system(mainWindow, dir, lang, dirname);
setInterval(function () { mouseTrack(mainWindow) }, 1000);
}
var x = 0
var y = 0
var unchanged = 0
var locked = false
function mouseTrack(mainWindow) {
let mousePos = electron.screen.getCursorScreenPoint()
let xNow = mousePos.x
let yNow = mousePos.x
if (x != xNow || y != yNow) {
unchanged = 0
locked = false
} else {
unchanged++
if (unchanged > 60 && !locked) {
unchanged = 0
locked = true
mainWindow.webContents.send('asRead', "")
}
}
x = xNow
y = yNow
}
// Electronの初期化完了後に実行
app.on('ready', createWindow);

View File

@@ -1,6 +1,6 @@
{
"name": "thedesk",
"version": "18.9.2",
"version": "18.10.1",
"description": "TheDesk is a Mastodon client for PC.",
"repository": "https://github.com/cutls/TheDesk",
"main": "main.js",
@@ -49,25 +49,26 @@
],
"license": "GPL-3.0",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.10.1",
"@fortawesome/fontawesome-free": "^5.11.1",
"electron-dl": "^1.14.0",
"jimp": "^0.7.0",
"jimp": "^0.8.3",
"jquery": "^3.4.1",
"jquery-ui-dist": "^1.12.1",
"json5": "^2.1.0",
"materialize-css": "^1.0.0",
"node-notifier": "^5.4.0",
"sumchecker": "^3.0.0",
"sweetalert2": "^8.13.0",
"sweetalert2": "^8.17.6",
"vue": "^2.6.10"
},
"optionalDependencies": {
"itunes-nowplaying-mac": "kPherox/itunes-nowplaying-mac#get-artworks-base64",
"font-manager": "^0.3.0"
"font-manager": "^0.3.0",
"itunes-nowplaying-mac": "kPherox/itunes-nowplaying-mac#get-artworks-base64"
},
"devDependencies": {
"electron": "^6.0.0",
"electron": "^6.0.10",
"electron-builder": "^21.1.5",
"electron-rebuild": "^1.8.6",
"readline-sync": "1.4.10"
},
"build": {

View File

@@ -709,30 +709,19 @@
<a href="https://thedesk.top" target="_blank">HP</a><br>
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
<br>
<div id="release-Usamin_18-9-2" class="release-do" style="display:none; ">
<div id="release-Usamin_18-10-0" class="release-do" style="display:none; ">
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
Pixiv Fanboxでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
<h5>Release Note Usamin (18.9.2)</h5>
トゥートボックスが閉じない、消えない不具合を修正。
<h5>Release Note Usamin (18.9.1)</h5>
トゥートボックスのリサイズを横だけにした<br>
アンケートが上手く作成できない不具合を修正。
<h5>Release Note Usamin (18.9.0)</h5>
設定エクスポートファイルが変更された<br>
 .thedeskconfigv2: 17.2.0~18.8.3<br>
 .thedeskconfig: 16.0.1~17.2.0<br>
 .json5: 本バージョン以降<br>
 <u>エクスポート可能な形式</u><br>
 .json5<br>
 <u>インポート可能な形式</u><br>
 .thedeskconfigv2, .thedeskconfig, .json5<br>
・カスタムCSSを読み込める(自己責任): macOS: /Users/:user/Library/Application Support/TheDesk | Windows: C:\Users\:user\AppData\Roaming\thedesk<br>
・(v3.0|m追従)プロフィールディレクトリ読み込み<br>
・(v3.0|m追従)最終アクティブ時間をユーザー一覧表示時に一緒に表示<br>
・自己紹介をユーザー一覧表示時に一緒に表示<br>
・メニューとトゥートボックスがリサイズ可能になった<br>
<h5>Release Note Usamin (18.10.1)</h5>
Markers(3.0.0 rc1)の送信タイミングを変更。デフォルトでオフに。<br>
・通知音の音量が調節できる<br>
v1検索API全廃に対応<br>
投票ボタン押した後に情報が更新されない(投票済みにならない)不具合を修正<br>
・Unknownなメディアの拡張子を表示<br>
Pleromaでタグメニューが出ずにTL追加になる不具合を修正<br>
・削除して再編集でアカウントが切り替えできてしまう不具合を修正<br>
</div>
<div id="release-en" style="display:none">
<h5>Let's make it native!</h5>

View File

@@ -158,6 +158,7 @@
"pitchwarn": "0-100(default:50)",
"vol": "Volume",
"volwarn": "0-100(default:100)",
"volwarn80": "0-100(default:80)",
"test": "Test",
"sample": "TheDesk is an open-source Mastodon client for PC.",
"playstop": "Play/Stop",

View File

@@ -158,6 +158,7 @@
"pitchwarn": "0-100(default:50)",
"vol": "Volume",
"volwarn": "0-100(default:100)",
"volwarn80": "0-100(default:80)",
"test": "Test",
"sample": "TheDesk is an open-source Mastodon client for PC.",
"playstop": "Play/Stop",

View File

@@ -158,6 +158,7 @@
"pitchwarn": "0-100(Standard:50)",
"vol": "Lautstärke",
"volwarn": "0-100(Standard:100)",
"volwarn80": "0-100(Standard:80)",
"test": "Test",
"sample": "TheDesk ist ein Open-Source Mastodon Client für PC.",
"playstop": "Abspielen/Stoppen",

View File

@@ -158,6 +158,7 @@
"pitchwarn": "0-100(default:50)",
"vol": "Volume",
"volwarn": "0-100(default:100)",
"volwarn80": "0-100(default:80)",
"test": "Test",
"sample": "TheDesk is an open-source Mastodon client for PC.",
"playstop": "Play/Stop",

View File

@@ -158,6 +158,7 @@
"pitchwarn": "0-100まで、デフォルトは50。(大きくなるほど高い)",
"vol": "読み上げの音量",
"volwarn": "0-100まで、デフォルトは100。",
"volwarn80": "0-100まで、デフォルトは80。",
"test": "テスト",
"sample": "これはテスト音声です。TheDeskはオープンソースのPC向けマストドンクライアントです。マルチサーバーやマルチカラムに対応しています。",
"playstop": "再生/停止",

View File

@@ -1,5 +1,5 @@
const fs = require("fs")
let ver = "Usamin (18.9.2)"
let ver = "Usamin (18.10.1)"
const execSync = require('child_process').execSync;
let gitHash = execSync("git rev-parse HEAD").toString().trim()
fs.writeFileSync("../../git", gitHash)

View File

@@ -247,6 +247,11 @@
id="c3-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span
id="c4-file"></span><br>
<h5>@@vol@@</h5>
@@volwarn80@@<br>
<p class="range-field"><span id="soundVolVal">80</span><br>
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
style="width:500px; max-width:100%" /></p>
</div>
</li>
<li>
@@ -373,15 +378,18 @@
<div class="collapsible-body">
<h5>@@speed@@</h5>
@@speedwarn@@<br>
<p class="range-field"><input type="range" id="voicespeed" min="1" max="100" value="10"
<p class="range-field"><span id="voicespeedVal">10</span><br>
<input type="range" id="voicespeed" min="1" max="100" value="10" onchange="document.getElementById('voicespeedVal').innerText=this.value"
style="width:500px; max-width:100%" /></p>
<h5>@@pitch@@</h5>
@@pitchwarn@@<br>
<p class="range-field"><input type="range" id="voicepitch" min="0" max="100" value="50"
<p class="range-field"><span id="voicepitchVal">50</span><br>
<input type="range" id="voicepitch" min="0" max="100" value="50" onchange="document.getElementById('voicepitchVal').innerText=this.value"
style="width:500px; max-width:100%" /></p>
<h5>@@vol@@</h5>
@@volwarn@@<br>
<p class="range-field"><input type="range" id="voicevol" min="0" max="100" value="100"
<p class="range-field"><span id="voicevolVal">100</span><br>
<input type="range" id="voicevol" min="0" max="100" value="100" onchange="document.getElementById('voicevolVal').innerText=this.value"
style="width:500px; max-width:100%" /></p>
<h5>@@test@@</h5>
<input type="text" style="width:350px" id="voicetxt" value="@@sample@@">

View File

@@ -311,7 +311,7 @@ var tlConstruction = [
id: "markers",
storage: "markers",
checkbox: true,
setValue: "yes",
setValue: "no",
text: {
head: "@@markers@@",
desc: "@@markerswarn@@",

3061
app/yarn.lock Normal file

File diff suppressed because it is too large Load Diff