Compare commits
38 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
c9cf89adeb | ||
|
c5c996cb7a | ||
|
f2ec258e7a | ||
|
8c29f21970 | ||
|
609e84a8ae | ||
|
7ca778f81b | ||
|
93b194af3b | ||
|
b3e1f32ffe | ||
|
d78b3bffeb | ||
|
bff5038a64 | ||
|
0c7fcfbcc5 | ||
|
9d6fc15959 | ||
|
5bad5e1031 | ||
|
f8d6ec3a8f | ||
|
9a3dc81630 | ||
|
3d9b97ccb5 | ||
|
2c3dbba052 | ||
|
907eecd030 | ||
|
75026bf42d | ||
|
d217fb33a9 | ||
|
8cea32d01b | ||
|
c8d2da0c07 | ||
|
a458f51b9a | ||
|
bd8ac2935b | ||
|
dd59cc1468 | ||
|
fd365c52cc | ||
|
ad7e77a067 | ||
|
6b9135a205 | ||
|
fdca5b1c60 | ||
|
f891b30f9f | ||
|
8fbd8070f2 | ||
|
657dec1c10 | ||
|
0d93dcdc45 | ||
|
5a50c0e1e6 | ||
|
ab8da89fbc | ||
|
c9edf47643 | ||
|
84328bf693 | ||
|
6fdbf0b48e |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -12,7 +12,6 @@ enq.md
|
||||
app/.tkn
|
||||
app/node_modules
|
||||
app/js/login/tkn.js
|
||||
app/package-lock.json
|
||||
app/view/en
|
||||
app/view/ja
|
||||
app/view/de
|
||||
|
11
.travis.yml
11
.travis.yml
@@ -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
|
||||
|
38
README.md
38
README.md
@@ -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
|
||||
|
35
README_ja.md
35
README_ja.md
@@ -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(非推奨)
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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));
|
||||
}
|
||||
|
@@ -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',
|
||||
|
@@ -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) {
|
||||
|
@@ -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: {
|
||||
|
@@ -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", "#");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//トゥートサムネ
|
||||
|
@@ -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)
|
||||
|
@@ -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> ';
|
||||
|
@@ -127,6 +127,8 @@ function voteMastodonrefresh(acct_id, id) {
|
||||
var choice = choices[keyc];
|
||||
if (!json.voted) {
|
||||
votesel = 'voteSelMastodon(\'' + acct_id + '\',\'' + json.id + '\',' + keyc + ',' + json.multiple + ')';
|
||||
}else {
|
||||
votesel =""
|
||||
}
|
||||
poll = poll + '<div class="pointer vote vote_' + acct_id + '_' + json.id + '_' + keyc + '" onclick="' + votesel + '">' + escapeHTML(choice.title) + '<span class="vote_' + acct_id + '_' + json.id + '_result ' + result_hide + '">(' + choice.votes_count + ')</span></div>';
|
||||
});
|
||||
|
@@ -98,11 +98,14 @@ function voiceSettingLoad() {
|
||||
var vol = localStorage.getItem("voice_vol");
|
||||
if (speed) {
|
||||
$("#voicespeed").val(speed * 10);
|
||||
$("#voicespeedVal").text(speed * 10);
|
||||
}
|
||||
if (pitch) {
|
||||
$("#voicepitch").val(pitch * 50);
|
||||
$("#voicepitchVal").text(pitch * 50);
|
||||
}
|
||||
if (vol) {
|
||||
$("#voicevol").val(vol * 100);
|
||||
$("#voicevolVal").text(vol * 100);
|
||||
}
|
||||
}
|
@@ -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", ""], "*")
|
||||
}
|
||||
}
|
@@ -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") {
|
||||
|
@@ -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() {
|
||||
//クライアントミュート
|
||||
|
@@ -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: {
|
||||
|
91
app/main.js
91
app/main.js
@@ -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);
|
||||
|
@@ -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": {
|
||||
|
@@ -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>
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -158,6 +158,7 @@
|
||||
"pitchwarn": "0-100まで、デフォルトは50。(大きくなるほど高い)",
|
||||
"vol": "読み上げの音量",
|
||||
"volwarn": "0-100まで、デフォルトは100。",
|
||||
"volwarn80": "0-100まで、デフォルトは80。",
|
||||
"test": "テスト",
|
||||
"sample": "これはテスト音声です。TheDeskはオープンソースのPC向けマストドンクライアントです。マルチサーバーやマルチカラムに対応しています。",
|
||||
"playstop": "再生/停止",
|
||||
|
@@ -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)
|
||||
|
@@ -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@@">
|
||||
|
@@ -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
3061
app/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user