diff --git a/.gitignore b/.gitignore index 37583d0a..01b7a6dd 100644 --- a/.gitignore +++ b/.gitignore @@ -5,8 +5,6 @@ TheDesk-* app/build build -make.js -make_js.js app/.DS_Store .DS_Store .vs/* diff --git a/README.md b/README.md index 5bd1b26f..28a716ff 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # TheDesk +TheDesk Minami (19)はVueで書き直します(rewrite-vueブランチ参照)。18までのバージョンはTheDesk Kawaii (20)以降で継続します。 + [![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) Mastodon/Misskey client for PC(Windows/Linux/macOS) @@ -27,6 +29,8 @@ 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/) + ## Terms of Use/利用規約 * [利用規約(Terms of Use(ja))](https://thedesk.top/tos.html) diff --git a/app/about.html b/app/about.html index 63f25012..610b87a1 100644 --- a/app/about.html +++ b/app/about.html @@ -76,7 +76,7 @@ a,button{
TheDesk
-
External version
+
Display version
Internal version
@@ -87,13 +87,17 @@ a,button{
Node.js
-
Copyright © TheDesk 2018 All rights reserved.
Web site
+
Copyright © Cutls P 2018 All rights reserved.
+ Thanks:toneji/popn_ja/kPherox and all users + ❤️ +
Web site
- \ No newline at end of file +$(document).on('click', 'a', e => { + var url = $(e.target).attr('href'); + shell.openExternal(url); + return false; +}); + \ No newline at end of file diff --git a/app/css/master.css b/app/css/master.css index 74e7b81c..e4ece881 100644 --- a/app/css/master.css +++ b/app/css/master.css @@ -30,6 +30,8 @@ option { } #mainView { padding: 10px; + overflow:scroll; + height: auto; } #message { display: none; diff --git a/app/css/tl.css b/app/css/tl.css index 42df4407..1abb86ec 100644 --- a/app/css/tl.css +++ b/app/css/tl.css @@ -138,7 +138,7 @@ iframe { .area-toot .emoji,.area-toot .emoji-img{ width: 20px; vertical-align: middle; - margin: -3px 0 0; + margin:-1px 0; } .faicon_FTL{ display:none; @@ -249,6 +249,29 @@ grid-area: toot; margin:2px; grid-area: side; } + +.quote-renote{ + display: grid; + grid-template-columns: 43px 2fr 1fr; + grid-template-areas: 'ricon ruser' 'ricon rtext'; + border: 1px solid; + margin-top: 3px; + padding: 1px; + border-radius: 3px; +} +.renote-icon{ + grid-area: ricon; +} +.renote-icon img{ + width:43px; +} +.renote-user{ + grid-area: ruser; +} +.renote-text{ + grid-area: rtext; +} + .btn-flat{ color:var(--color); } @@ -321,6 +344,7 @@ grid-area: toot; p { margin: 0; margin-bottom: 0px; + line-height:20px; } p:not(:last-child){ margin-bottom: 10px; diff --git a/app/js/common/version.js b/app/js/common/version.js index c25fc035..b45088be 100644 --- a/app/js/common/version.js +++ b/app/js/common/version.js @@ -190,7 +190,7 @@ function verck(ver) { } } if(show){ - Materialize.toast(obj.Text+toot+'(スライドして消去)', 86400); + Materialize.toast(escapeHTML(obj.Text)+toot+'(スライドして消去)', 86400); } } @@ -211,9 +211,6 @@ function infowebsocket(){ console.log(JSON.parse(mess.data)); var obj=JSON.parse(mess.data); if(obj.type!="counter"){ - if(obj.id*1<=localStorage.getItem("last-notice-id")){ - - }else{ localStorage.setItem("last-notice-id",obj.id) var show=true; if(obj.toot!=""){ @@ -242,9 +239,8 @@ function infowebsocket(){ } } if(show){ - Materialize.toast(obj.text+toot+'(スライドして消去)', 86400); + Materialize.toast(escapeHTML(obj.Text)+toot+'(スライドして消去)', 86400); } - } }else{ $("#persons").text(obj.text); } diff --git a/app/js/emoji/default-emoji.js b/app/js/emoji/default-emoji.js index 8c227803..3ec3019a 100644 --- a/app/js/emoji/default-emoji.js +++ b/app/js/emoji/default-emoji.js @@ -54,7 +54,13 @@ function defEmoji(target){ var emojiraw = newpack.filter(function(item, index){ if (item.short_name == target) return true; }); - emoji=twemoji.convert.fromCodePoint(emojiraw[0].unified); + var hex=emojiraw[0].unified.split("-"); + if(hex.length===2){ + emoji=twemoji.convert.fromCodePoint(hex[0])+twemoji.convert.fromCodePoint(hex[1]); + }else{ + emoji=twemoji.convert.fromCodePoint(hex[0]); + } + console.log(emoji) var now = $("#textarea").val(); var selin = localStorage.getItem("cursor"); var now = $("#textarea").val(); diff --git a/app/js/lang/lang.en.js b/app/js/lang/lang.en.js index bab2f536..2b4baef2 100644 --- a/app/js/lang/lang.en.js +++ b/app/js/lang/lang.en.js @@ -189,7 +189,7 @@ var lang={ "lang_parse_clientmute":"muted", "lang_parse_mute":" will be muted. You can remove on preferences.", "lang_parse_voted":"Voted", - "lang_parse_vote":"Voted", + "lang_parse_vote":"Vote", "lang_parse_unvoted":"Show the result without voting", "lang_parse_endedvote":"Expired", "lang_parse_thread":"Show thread", diff --git a/app/js/login/manager.js b/app/js/login/manager.js index 884b50eb..6c17a406 100644 --- a/app/js/login/manager.js +++ b/app/js/login/manager.js @@ -364,6 +364,28 @@ function misskeyLogin(url) { "reaction-write", "vote-read", "vote-write" + /* + "read:account", + "write:account", + "read:drive", + "write:drive", + "read:blocks", + "write:blocks", + "read:favorites", + "write:favorites", + "read:following", + "write:following", + "read:messaging", + "write:messaging", + "read:mutes", + "write:mutes", + "write:notes", + "read:notifications", + "write:notifications", + "read:reactions", + "write:reactions", + "write:votes" + */ ] })); httpreq.onreadystatechange = function() { @@ -520,7 +542,7 @@ function getdata(domain, at) { console.log(json); if (json.error) { console.error("Error:" + json.error); - Materialize.toast(lang.lang_fatalerroroccured+"Error:" + json.error, + Materialize.toast(lang.lang_fatalerroroccured+"Error:" + escapeHTML(json.error), 5000); return; } @@ -795,7 +817,7 @@ input.addEventListener("focus", function() { Object.keys(json.instances).forEach(function(key) { var url = json.instances[key]; urls = urls + ' ' + url.name + ' '; + '\')" class="pointer">' +escapeHTML(url.name) + ' '; }); $("#ins-suggest").html(urls); } diff --git a/app/js/platform/end.js b/app/js/platform/end.js index 4e9adaf2..7bb937c1 100644 --- a/app/js/platform/end.js +++ b/app/js/platform/end.js @@ -181,4 +181,21 @@ const { } = require('electron'); webviewDom.addEventListener('new-window', function(e) { shell.openExternal(e.url); -}); \ No newline at end of file +}); +function playSound() { + window.AudioContext = window.AudioContext || window.webkitAudioContext; + context = new AudioContext(); + context.createBufferSource().start(0); + context.decodeAudioData(request.response, function (buf) { + console.log(source) + source.buffer = buf; + source.loop = false; + }); + source = context.createBufferSource(); + volumeControl = context.createGain(); + source.connect(volumeControl); + volumeControl.connect(context.destination); + volumeControl.gain.value=0.8 + console.log(volumeControl) + source.start(0); +} \ No newline at end of file diff --git a/app/js/platform/first.js b/app/js/platform/first.js index a95edd06..4f1525d4 100644 --- a/app/js/platform/first.js +++ b/app/js/platform/first.js @@ -62,7 +62,7 @@ function formattime(date){ }else{ str=str+date.getMinutes() } - return str; + return escapeHTML(str); } function formattimeutc(date){ var str=date.getUTCFullYear()+"-"; @@ -87,7 +87,7 @@ function formattimeutc(date){ }else{ str=str+date.getUTCMinutes() } - return str; + return escapeHTML(str); } var electron = require("electron"); var ipc = electron.ipcRenderer; diff --git a/app/js/post/emoji.js b/app/js/post/emoji.js index 5f571c46..19038798 100644 --- a/app/js/post/emoji.js +++ b/app/js/post/emoji.js @@ -35,7 +35,7 @@ function emojiToggle(reaction) { //絵文字リスト挿入 function emojiGet(parse, started) { - $('#emoji-list').html('Loading...'); + $('#emoji-list').text('Loading...'); var acct_id = $("#post-acct-sel").val(); var domain = localStorage.getItem("domain_" + acct_id); if (localStorage.getItem("mode_" + domain) != "misskey") { @@ -52,7 +52,7 @@ function emojiGet(parse, started) { console.error(error); }).then(function (json) { if (parse == "true") { - $('#emoji-list').html('Parsing...'); + $('#emoji-list').text('Parsing...'); //絵文字をマストドン公式と同順にソート json.sort(function (a, b) { if (a.shortcode < b.shortcode) return -1; @@ -96,7 +96,7 @@ function emojiGet(parse, started) { }) }); if (parse == "true") { - $('#emoji-list').html('Parsing...'); + $('#emoji-list').text('Parsing...'); //絵文字をマストドン公式と同順にソート md.sort(function (a, b) { if (a.shortcode < b.shortcode) return -1; diff --git a/app/js/post/misskeystatus.js b/app/js/post/misskeystatus.js index 84366e83..ef78f07f 100644 --- a/app/js/post/misskeystatus.js +++ b/app/js/post/misskeystatus.js @@ -234,7 +234,7 @@ function voterefresh(acct_id,id){ }else{ var myvote=""; } - poll=poll+'
'+choice.text+'('+choice.votes+''+myvote+')
'; + poll=poll+'
'+escapeHTML(choice.text)+'('+choice.votes+''+myvote+')
'; }); $(".vote_"+json.id).html(poll) } diff --git a/app/js/post/post.js b/app/js/post/post.js index e6a47ee1..c1b1a34f 100644 --- a/app/js/post/post.js +++ b/app/js/post/post.js @@ -298,7 +298,7 @@ function clear() { $("#post-acct-sel").prop("disabled", false); $("#days_poll").val(0); $("#hours_poll").val(0); - $("#mins_poll").val(0); + $("#mins_poll").val(6); $(".mastodon-choice").map(function() { $(this).val(""); }); diff --git a/app/js/post/suggest.js b/app/js/post/suggest.js index fcd502e0..ba5a9188 100644 --- a/app/js/post/suggest.js +++ b/app/js/post/suggest.js @@ -169,7 +169,7 @@ function cgNPs(q){ var tags = ""; Object.keys(json).forEach(function(key4) { var tag = json[key4]; - tags = tags + '' + json[key4] + ' '; + tags = tags + '' + escapeHTML(json[key4]) + ' '; }); $("#suggest").html("Cinderella NowPlaying:" + tags); }else{ diff --git a/app/js/tl/card.js b/app/js/tl/card.js index b6c1395e..1b638c14 100644 --- a/app/js/tl/card.js +++ b/app/js/tl/card.js @@ -63,8 +63,8 @@ function additional(acct_id, tlid) { }).then(function(json) { if (json.title) { $("[toot-id=" + id + "] .additional").html( - "URL"+lang.lang_cards_check+":
Title:" + json.title + "
" + - json.description + "
"); + "URL"+lang.lang_cards_check+":
Title:" + escapeHTML(json.title) + "
" + + escapeHTML(json.description) + "
"); $("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed"); $("[toot-id=" + id + "]").addClass("parsed"); } @@ -148,8 +148,8 @@ function additionalIndv(tlid, acct_id, id) { }).then(function(json) { if (json.title) { $("[toot-id=" + id + "] .additional").html( - "URL"+lang.lang_cards_check+":
Title:" + json.title + "
" + - json.description + "
"); + "URL"+lang.lang_cards_check+":
Title:" + escapeHTML(json.title) + "
" + + escapeHTML(json.description) + "
"); $("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed"); $("[toot-id=" + id + "]").addClass("parsed"); } diff --git a/app/js/tl/datails.js b/app/js/tl/datails.js index 56fc189a..8c305119 100644 --- a/app/js/tl/datails.js +++ b/app/js/tl/datails.js @@ -91,6 +91,9 @@ function details(id, acct_id, tlid, mode) { } beforeToot(id, acct_id, dom); userToot(id, acct_id, uid); + afterToot(id, acct_id, dom); + afterUserToot(id, acct_id, uid); + afterFTLToot(id, acct_id, dom); faved(id, acct_id); rted(id, acct_id); if($("#toot-this div").hasClass("cvo")){ @@ -99,7 +102,7 @@ function details(id, acct_id, tlid, mode) { $("#toot-this").addClass("cvo"); } if(!$("#activator").hasClass("active")){ - $('#det-col').collapsible('open', 1); + $('#det-col').collapsible('open', 4); } }); @@ -332,6 +335,81 @@ function userToot(id, acct_id, user) { } } +//後のLTL +function afterToot(id, acct_id, domain) { + //var domain = localStorage.getItem("domain_" + acct_id); + var at = localStorage.getItem("acct_"+ acct_id + "_at"); + var start = "https://" + domain + + "/api/v1/timelines/public?local=true&min_id=" + id; + fetch(start, { + method: 'GET', + headers: { + 'content-type': 'application/json', + }, + }).then(function(response) { + return response.json(); + }).catch(function(error) { + todo(error); + console.error(error); + }).then(function(json) { + var templete = parse(json, 'noauth', acct_id); + if(templete!=""){ + $("#ltl-after .no-data").hide(); + } + $("#ltl-after").html(templete); + jQuery("time.timeago").timeago(); + }); +} +//後のUTL +function afterUserToot(id, acct_id, user) { + var domain = localStorage.getItem("domain_" + acct_id); + var at = localStorage.getItem("acct_"+ acct_id + "_at"); + var start = "https://" + domain + "/api/v1/accounts/" + user + "/statuses?min_id=" + id; + fetch(start, { + method: 'GET', + headers: { + 'content-type': 'application/json', + 'Authorization': 'Bearer ' + at + }, + }).then(function(response) { + return response.json(); + }).catch(function(error) { + todo(error); + console.error(error); + }).then(function(json) { + var templete = parse(json, '', acct_id); + if(templete!=""){ + $("#user-after .no-data").hide(); + } + $("#user-after").html(templete); + jQuery("time.timeago").timeago(); + }); +} +//後のFTL +function afterFTLToot(id, acct_id, domain) { + //var domain = localStorage.getItem("domain_" + acct_id); + var at = localStorage.getItem("acct_"+ acct_id + "_at"); + var start = "https://" + domain + + "/api/v1/timelines/public?min_id=" + id; + fetch(start, { + method: 'GET', + headers: { + 'content-type': 'application/json', + }, + }).then(function(response) { + return response.json(); + }).catch(function(error) { + todo(error); + console.error(error); + }).then(function(json) { + var templete = parse(json, 'noauth', acct_id); + if(templete!=""){ + $("#ftl-after .no-data").hide(); + } + $("#ftl-after").html(templete); + jQuery("time.timeago").timeago(); + }); +} //ふぁぼ一覧 function faved(id, acct_id) { diff --git a/app/js/tl/dm.js b/app/js/tl/dm.js index c434c1ef..657b0d3a 100644 --- a/app/js/tl/dm.js +++ b/app/js/tl/dm.js @@ -251,7 +251,7 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) { var via = ''; viashow="hide"; } else { - var via = toot.application.name; + var via = escapeHTML(toot.application.name); //強調チェック Object.keys(emp).forEach(function(key6) { var cli = emp[key6]; @@ -432,7 +432,7 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) { if(word){ var word=word.tag; var regExp = new RegExp( word, "g" ) ; - content=content.replace(regExp,''+word+""); + content=content.replace(regExp,''+escapeHTML(word)+""); } }); } @@ -483,7 +483,7 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) { for( var i=0; i '+value.name+''; + var tickerdom='
'+escapeHTML(value.name)+'
'; break; } } diff --git a/app/js/tl/list.js b/app/js/tl/list.js index 73be7ce7..109dee45 100644 --- a/app/js/tl/list.js +++ b/app/js/tl/list.js @@ -30,7 +30,7 @@ function list(){ var lists = ""; Object.keys(json).forEach(function(key) { var list = json[key]; - lists = lists + list.title+':'+lang.lang_list_show+'
'; }); $("#lists").html(lists); @@ -57,7 +57,7 @@ function list(){ var lists = ""; Object.keys(json).forEach(function(key) { var list = json[key]; - lists = lists + list.title+':'+lang.lang_list_show+'/'+lang.lang_list_users+'
'; }); @@ -193,7 +193,7 @@ function hisList(user,acct_id){ Object.keys(json).forEach(function(key) { var list = json[key]; lists = lists + ''+list.title+'
'; + '\')" class="pointer">'+escapeHTML(list.title)+'
'; }); $("#his-lists-b").html(lists); }else{ @@ -217,7 +217,7 @@ function hisList(user,acct_id){ var lists = ""; Object.keys(json).forEach(function(key) { var list = json[key]; - lists = lists + list.title+':'+lang.lang_list_show+'/'+lang.lang_list_add+lang.lang_list_add_misskey+'
'; }); diff --git a/app/js/tl/misskeyparse.js b/app/js/tl/misskeyparse.js index 8164ab1a..2d6caeba 100644 --- a/app/js/tl/misskeyparse.js +++ b/app/js/tl/misskeyparse.js @@ -286,7 +286,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) { } var if_notf='data-notfIndv="'+acct_id+"_"+toot.id+'"'; var toot = toot.note; - var dis_name=escapeHTMLtemp(toot.user.name); + var dis_name=escapeHTML(toot.user.name); }else{ var if_notf=""; if (toot.renote) { @@ -296,8 +296,10 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) { ")
"; var boostback = "shared"; var uniqueid=toot.id; - var toot = toot.renote; - var dis_name=escapeHTMLtemp(toot.user.name); + if(!toot.text){ + var toot = toot.renote; + } + var dis_name=escapeHTML(toot.user.name); var uniqueid=toot.id; var actemojick=false } else { @@ -340,7 +342,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) { if(toot.viaMobile){ var via = 'Mobile'; }else{ - var via = 'Unknown'; + var via = ''; } } else { var via = toot.app.name; @@ -360,7 +362,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) { }); } if ((toot.cw || toot.cw=="") && cw) { - var content = toot.text; + var content = escapeHTML(toot.text); var spoil = escapeHTMLtemp(toot.cw); var spoiler = "cw cw_hide_" + toot.id; var api_spoil = "gray"; @@ -616,7 +618,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) { for( var i=0; i '+value.name+''; + var tickerdom='
'+escapeHTML(value.name)+'
'; break; } } @@ -632,13 +634,15 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) { }else{ var myvote=""; } - poll=poll+'
'+choice.text+'('+choice.votes+''+myvote+')
'; + poll=poll+'
'+escapeHTML(choice.text)+'('+choice.votes+''+myvote+')
'; }); poll='
'+poll+'
'; } - /* - - */ + //引用Renote + if(toot.renote){ + poll=poll+'
'+escapeHTML(toot.renote.user.name)+'
'+escapeHTML(toot.renote.text)+'
' + } if(localStorage.getItem("emojiReaction_" + acct_id)=="disabled"){ var freeReact="hide"; }else{ @@ -667,7 +671,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) { var emoji = obj[i]; if (":"+emoji.shortcode+":"==keye) { if (emoji) { - addReact=addReact+ ''+thisReact+ ''; } @@ -837,7 +841,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) { acct_id + ')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_redraft+'">redo'+trans+ 'via ' + - via + + escapeHTML(via) + ''+ '
' + '
' + diff --git a/app/js/tl/mix.js b/app/js/tl/mix.js index 06e23787..7b2ea0e0 100644 --- a/app/js/tl/mix.js +++ b/app/js/tl/mix.js @@ -94,12 +94,14 @@ 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("Connect Streaming API(Integrated:Home)"); + console.log(tlid + ":Connect Streaming API(Integrated:Home)"); + console.log(mess); $("#notice_icon_" + tlid).removeClass("red-text"); } websocketLocal[wslid].onopen = function(mess) { localStorage.setItem("wssL_" + tlid, wslid); - console.log("Connect Streaming API(Integrated:Local)"); + console.log(tlid + ":Connect Streaming API(Integrated:Local)"); + console.log(mess); $("#notice_icon_" + tlid).removeClass("red-text"); } websocketLocal[wslid].onmessage = function(mess) { @@ -195,39 +197,57 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) { } } websocketLocal[wslid].onerror = function(error) { - console.error('WebSocket Error ' + error); + console.error('WebSocketLocal Error') + console.error(error); if(mode=="error"){ $("#notice_icon_" + tlid).addClass("red-text"); todo('WebSocket Error ' + error); }else{ - reconnector(tlid,TLtype,acct_id,"","error"); + var errorct=localStorage.getItem("wserror_" + tlid)*1+1; + localStorage.setItem("wserror_" + tlid,errorct); + if(errorct<3){ + reconnector(tlid,TLtype,acct_id,"","error"); + } } }; websocketLocal[wslid].onclose = function() { - console.error('WebSocketLocal Closing by error:' + tlid); + console.log('WebSocketLocal Closing:' + tlid); if(mode=="error"){ $("#notice_icon_" + tlid).addClass("red-text"); todo('WebSocket Closed'); }else{ - reconnector(tlid,TLtype,acct_id,"","error"); + var errorct=localStorage.getItem("wserror_" + tlid)*1+1; + localStorage.setItem("wserror_" + tlid,errorct); + if(errorct<3){ + reconnector(tlid,TLtype,acct_id,"","error"); + } } }; websocketHome[wshid].onerror = function(error) { - console.error('WebSocket Error ' + error); + console.error('WebSocketHome Error') + console.error(error); if(mode=="error"){ $("#notice_icon_" + tlid).addClass("red-text"); todo('WebSocket Error ' + error); }else{ - reconnector(tlid,TLtype,acct_id,"","error"); + var errorct=localStorage.getItem("wserror_" + tlid)*1+1; + localStorage.setItem("wserror_" + tlid,errorct); + if(errorct<3){ + reconnector(tlid,TLtype,acct_id,"","error"); + } } }; websocketHome[wshid].onclose = function() { - console.error('WebSocketHome Closing by error:' + tlid); + console.log('WebSocketHome Closing:' + tlid); if(mode=="error"){ $("#notice_icon_" + tlid).addClass("red-text"); todo('WebSocket Closed'); }else{ - reconnector(tlid,TLtype,acct_id,"","error"); + var errorct=localStorage.getItem("wserror_" + tlid)*1+1; + localStorage.setItem("wserror_" + tlid,errorct); + if(errorct<3){ + reconnector(tlid,TLtype,acct_id,"","error"); + } } }; diff --git a/app/js/tl/notification.js b/app/js/tl/notification.js index f8b1d195..93d7b1da 100644 --- a/app/js/tl/notification.js +++ b/app/js/tl/notification.js @@ -112,73 +112,6 @@ function notfColumn(acct_id, tlid, sys){ 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); - $("i[data-notf=" + acct_id +"]").removeClass("red-text"); - - } - websocketNotf[acct_id].onmessage = function(mess) { - console.log("Receive Streaming API(Notf):"+acct_id); - var popup = localStorage.getItem("popup"); - if (!popup) { - popup = 0; - } - console.log(domain) - if(misskey){ - console.log("misskey") - console.log(JSON.parse(mess.data)); - if (JSON.parse(mess.data).type == "notification") { - var obj = JSON.parse(mess.data).body; - console.log(obj); - if(obj.type!="follow"){ - - templete = misskeyParse([obj], 'notf', acct_id, 'notf', popup); - }else{ - templete = misskeyUserparse([obj], 'notf', acct_id, 'notf', popup); - } - if(obj.type=="reaction"){ - console.log("refresh") - reactRefresh(acct_id,obj.note.id) - } - if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){ - $("div[data-notf=" + acct_id +"]").prepend(templete); - } - jQuery("time.timeago").timeago(); - }else if(JSON.parse(mess.data).type == "note-updated"){ - var obj = JSON.parse(mess.data).body.note; - reactRefreshCore(obj) - } - }else{ - var obj = JSON.parse(JSON.parse(mess.data).payload); - console.log(obj); - var type = JSON.parse(mess.data).event; - if (type == "notification") { - var templete=""; - localStorage.setItem("lastnotf_" + acct_id,obj.id); - if(obj.type!="follow"){ - templete = parse([obj], 'notf', acct_id, 'notf', popup); - }else{ - templete = userparse([obj], 'notf', acct_id, 'notf', popup); - } - if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){ - $(".tl[data-notf=" + acct_id +"]").prepend(templete); - } - $(".notf-timeline[data-acct=" + acct_id +"]").prepend(templete); - jQuery("time.timeago").timeago(); - } else if (type == "delete") { - $("[toot-id=" + obj + "]").hide(); - $("[toot-id=" + obj + "]").remove(); - } - } - } - websocketNotf[acct_id].onerror = function(error) { - console.error('WebSocket Error ' + error); - }; } function notfCommon(acct_id, tlid, sys) { todo("Notifications Loading..."); @@ -318,6 +251,7 @@ function notfCommon(acct_id, tlid, sys) { } if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){ $("div[data-notf=" + acct_id +"]").prepend(templete); + $("div[data-const=notf_"+acct_id+"]").prepend(templete); } jQuery("time.timeago").timeago(); }else if(JSON.parse(mess.data).type == "note-updated"){ @@ -338,6 +272,7 @@ function notfCommon(acct_id, tlid, sys) { } if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){ $("div[data-notf=" + acct_id +"]").prepend(templete); + $("div[data-const=notf_"+acct_id+"]").prepend(templete); } jQuery("time.timeago").timeago(); } else if (type == "delete") { diff --git a/app/js/tl/parse.js b/app/js/tl/parse.js index 54e73beb..a41406eb 100644 --- a/app/js/tl/parse.js +++ b/app/js/tl/parse.js @@ -251,16 +251,28 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) { $(".notf-reply_" + acct_id).text(replyct*1-(-1)); localStorage.setItem("notf-reply_" + acct_id,replyct*1-(-1)) $(".notf-reply_" + acct_id).removeClass("hide") + var sound=localStorage.getItem("replySound"); + if(sound=="default"){ + var file="../../source/notif3.wav" + } }else if (toot.type == "reblog") { var btct=localStorage.getItem("notf-bt_" + acct_id) $(".notf-bt_" + acct_id).text(btct*1-(-1)); localStorage.setItem("notf-bt_" + acct_id,btct*1-(-1)) $(".notf-bt_" + acct_id).removeClass("hide") + var sound=localStorage.getItem("btSound"); + if(sound=="default"){ + var file="../../source/notif2.wav" + } }else if (toot.type == "favourite") { var favct=localStorage.getItem("notf-fav_" + acct_id) $(".notf-fav_" + acct_id).text(favct*1-(-1)); localStorage.setItem("notf-fav_" + acct_id,favct*1-(-1)) $(".notf-fav_" + acct_id).removeClass("hide") + var sound=localStorage.getItem("favSound"); + if(sound=="default"){ + var file="../../source/notif.wav" + } } } @@ -268,6 +280,23 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) { if(popup>0){ Materialize.toast("["+domain+"]"+escapeHTML(toot.account.display_name)+what, popup * 1000); } + //通知音 + 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"); + } + if(file){ + request = new XMLHttpRequest(); + request.open("GET", file, true); + request.responseType = "arraybuffer"; + request.onload = playSound; + request.send(); + } if(native=="yes"){ var electron = require("electron"); var ipc = electron.ipcRenderer; @@ -395,7 +424,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) { var via = ''; viashow="hide"; } else { - var via = toot.application.name; + var via = escapeHTML(toot.application.name); //強調チェック Object.keys(emp).forEach(function(key6) { var cli = emp[key6]; @@ -452,6 +481,40 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) { var viewer = ""; var hasmedia = ""; var youtube = ""; + //Poll + var poll=""; + if(toot.poll){ + var choices=toot.poll.options; + if(toot.poll.voted){ + var myvote=lang.lang_parse_voted; + var result_hide=""; + }else{ + var myvote=''+lang.lang_parse_vote+'
'; + if(choices[0].votes_count===0 || choices[0].votes_count>0){ + myvote=myvote+''+lang.lang_parse_unvoted+""; + } + var result_hide="hide"; + } + if(toot.poll.expired){ + var ended=lang.lang_parse_endedvote; + }else{ + var ended=date(toot.poll.expires_at, datetype); + } + Object.keys(choices).forEach(function(keyc) { + var choice = choices[keyc]; + if(!toot.poll.voted && !toot.poll.expired){ + var votesel='voteSelMastodon(\''+acct_id+'\',\''+toot.poll.id+'\','+keyc+','+toot.poll.multiple+')'; + var voteclass="pointer waves-effect waves-light"; + }else{ + var votesel=""; + var voteclass=""; + } + poll=poll+'
'+escapeHTML(choice.title)+'('+choice.votes_count+')
'; + }); + poll='
'+poll+myvote+'' + + ended+ '
'; + } if(toot.emojis){ var emojick = toot.emojis[0]; }else{ @@ -467,6 +530,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) { var regExp = new RegExp(":" + shortcode + ":", "g"); content = content.replace(regExp, emoji_url); spoil = spoil.replace(regExp, emoji_url); + poll = poll.replace(regExp, emoji_url); }); } //ニコフレ絵文字 @@ -485,6 +549,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) { var regExp = new RegExp(":" + shortcode + ":", "g"); content = content.replace(regExp, emoji_url); spoil = spoil.replace(regExp, emoji_url); + poll = poll.replace(regExp, emoji_url); }); } //デフォ絵文字 @@ -501,6 +566,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) { if(notice){ notice=twemoji.parse(notice); } + if(poll){ + poll=twemoji.parse(poll); + } var mediack = toot.media_attachments[0]; //メディアがあれば var media_ids=""; @@ -698,45 +766,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) { for( var i=0; i '+value.name+'
'; + var tickerdom='
'+escapeHTML(value.name)+'
'; break; } } } } - //Poll - var poll=""; - if(toot.poll){ - var choices=toot.poll.options; - if(toot.poll.voted){ - var myvote=lang.lang_parse_voted; - var result_hide=""; - }else{ - myvote=''+lang.lang_parse_vote+'
'; - if(choices[0].votes_count===0 || choices[0].votes_count>0){ - myvote=myvote+''+lang.lang_parse_unvoted+""; - } - var result_hide="hide"; - } - if(toot.poll.expired){ - var ended=lang.lang_parse_endedvote; - }else{ - var ended=date(toot.poll.expires_at, datetype); - } - Object.keys(choices).forEach(function(keyc) { - var choice = choices[keyc]; - if(!toot.poll.voted && !toot.poll.expired){ - var votesel='voteSelMastodon(\''+acct_id+'\',\''+toot.poll.id+'\','+keyc+','+toot.poll.multiple+')'; - var voteclass="pointer waves-effect waves-light"; - }else{ - var votesel=""; - var voteclass=""; - } - poll=poll+'
'+escapeHTML(choice.title)+'('+choice.votes_count+')
'; - }); - poll='
'+poll+myvote+'' + - ended+ '
'; + //Quote + if(toot.quote){ + poll=poll+'
'+escapeHTML(toot.quote.account.display_name)+'
'+toot.quote.content+'
' } templete = templete + '
'+tickerdom+'' + spoil + "" + spoiler_show + - '' + content +poll+ - '' + + '' + content + + '' + poll + '' + viewer + '' + '
' + analyze + '' + @@ -791,7 +829,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) { '
' + '
' + + ')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_del+'">
' + '
' @@ -962,7 +1000,7 @@ function client(name) { if(!obj){ var obj=[]; obj.push(name); - Materialize.toast(name+lang.lang_status_emphas, 2000); + Materialize.toast(escapeHTML(name)+lang.lang_status_emphas, 2000); }else{ var can; Object.keys(obj).forEach(function(key) { @@ -972,12 +1010,12 @@ function client(name) { }else{ can=true; obj.splice(key, 1); - Materialize.toast(name+lang.lang_status_unemphas, 2000); + Materialize.toast(escapeHTML(name)+lang.lang_status_unemphas, 2000); } }); if(!can){ obj.push(name); - Materialize.toast(name+lang.lang_status_emphas, 2000); + Materialize.toast(escapeHTML(name)+lang.lang_status_emphas, 2000); }else{ } @@ -993,7 +1031,7 @@ function client(name) { obj.push(name); var json = JSON.stringify(obj); localStorage.setItem("client_mute", json); - Materialize.toast(name+lang.lang_parse_mute, 2000); + Materialize.toast(escapeHTML(name)+lang.lang_parse_mute, 2000); }else{ return; } diff --git a/app/js/tl/poll.js b/app/js/tl/poll.js index 394579d2..8803a10c 100644 --- a/app/js/tl/poll.js +++ b/app/js/tl/poll.js @@ -108,7 +108,7 @@ function voteMastodonrefresh(acct_id,id){ if(!json.voted){ votesel='voteSelMastodon(\''+acct_id+'\',\''+json.id+'\','+keyc+','+json.multiple+')'; } - poll=poll+'
'+choice.title+'('+choice.votes_count+')
'; + poll=poll+'
'+escapeHTML(choice.title)+'('+choice.votes_count+')
'; }); poll=poll+myvote+'' + diff --git a/app/js/tl/src.js b/app/js/tl/src.js index 7f6bcbb6..f788afe7 100644 --- a/app/js/tl/src.js +++ b/app/js/tl/src.js @@ -52,7 +52,7 @@ function src(mode) { var tag = json.hashtags[key4]; if(mode){ tags = tags + '#' + tag + '
'; + '\',\'add\')" class="pointer">#' + escapeHTML(tag) + '
'; }else{ tags=tags+graphDraw(tag); } @@ -186,13 +186,13 @@ function graphDraw(tag){ var zero=50-(his[0].uses/max*50); if(max===0){ tags = '

'+ - ''+his[0].uses+'toots #' + tag.name + ' '+his[0].accounts+lang.lang_src_people; + ''+his[0].uses+'toots #' + escapeHTML(tag.name) + ' '+his[0].accounts+lang.lang_src_people; }else{ tags = '

'+ ''+ - ''+his[0].uses+'toots #' + tag.name + ' '+his[0].accounts+lang.lang_src_people; + ''+his[0].uses+'toots #' + escapeHTML(tag.name) + ' '+his[0].accounts+lang.lang_src_people; } return tags; diff --git a/app/js/tl/tag.js b/app/js/tl/tag.js index dbe046fc..0c7eda77 100644 --- a/app/js/tl/tag.js +++ b/app/js/tl/tag.js @@ -65,6 +65,7 @@ function favTag(){ var ptt=lang.lang_tags_unrealtime; var nowon="("+lang.lang_tags_realtime+")"; } + tag=escapeHTML(tag); tags = tags + '#' + tag + ''+nowon+' TL Toot '+ ''+ptt+' '+lang.lang_del+' '; }); @@ -96,6 +97,7 @@ function trendTag(){ var tags=""; json=json.score; Object.keys(json).forEach(function(tag) { + tag=escapeHTML(tag); tags = tags + '#' + tag + ' TL Toot '; }); $("#taglist").append('
アイマストドントレンドタグrefresh:' + tags+'
'); @@ -115,6 +117,7 @@ function tagTL(a,b,c,d){ tl(a,b,acct_id,d); } function autoToot(tag){ + tag=escapeHTML(tag) var nowPT=localStorage.getItem("stable") if(nowPT==tag){ localStorage.removeItem("stable"); diff --git a/app/js/tl/tl.js b/app/js/tl/tl.js index d6451b6d..2d597738 100644 --- a/app/js/tl/tl.js +++ b/app/js/tl/tl.js @@ -337,8 +337,8 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) { return false; }; websocket[wsid].onclose = function() { - console.error("Closing"); - console.error(tlid); + console.log("Closing"); + console.log(tlid); if(mode=="error"){ $("#notice_icon_" + tlid).addClass("red-text"); todo('WebSocket Closed'); @@ -660,7 +660,7 @@ function cap(type, data, acct_id) { var response="Federated TL(Media)"; } } else if (type == "tag") { - var response= "#" + data + var response= "#" + escapeHTML(data) } else if (type == "list") { var ltitle=localStorage.getItem("list_"+data+"_"+acct_id); var response= "List(" + ltitle + ")" @@ -685,7 +685,7 @@ function cap(type, data, acct_id) { }else if (type == "webview") { var response="Twitter" }else if (type == "tootsearch") { - var response="tootsearch(" + data + ")"; + var response="tootsearch(" + escapeHTML(data) + ")"; } return response; } @@ -788,7 +788,7 @@ function strAliveInt(){ } function reconnector(tlid,type,acct_id,data,mode){ console.log("Reconnector:"+mode) - if(type=="mix" || type=="plus"){ + if(type=="mix" || type=="integrated" || type=="plus"){ if(localStorage.getItem("voice_" + tlid)){ var voice=true; }else{ @@ -801,10 +801,11 @@ function reconnector(tlid,type,acct_id,data,mode){ } var wssh=localStorage.getItem("wssH_" + tlid); websocketHome[wssh].close(); - var wssh=localStorage.getItem("wssL_" + tlid); + var wssl=localStorage.getItem("wssL_" + tlid); websocketLocal[wssl].close(); mixre(acct_id, tlid, type, mute,"",voice,mode); }else if(type=="notf"){ + notfColumn(acct_id, tlid, "") }else{ var wss=localStorage.getItem("wss_" + tlid); websocket[wss].close(); diff --git a/app/js/ui/layout.js b/app/js/ui/layout.js index 59a0a1b0..3716e92c 100644 --- a/app/js/ui/layout.js +++ b/app/js/ui/layout.js @@ -28,6 +28,9 @@ function parseColumn() { $(".toot-reset").css("font-size", size + "px"); $(".cont-series").css("font-size", size + "px"); } + if(localStorage.getItem("menu-done")){ + $("#fukidashi").addClass("hide") + } tlCloser(); var multi = localStorage.getItem("multi"); if (multi) { @@ -198,8 +201,8 @@ function parseColumn() { key + '">On
'+lang.lang_layout_linkana +'
hearingOn'+lang.lang_layout_tts +'TL
low_priority'+lang.lang_layout_reconnect+'
'+lang.lang_layout_headercolor +'
'+lang.lang_layout_nodata +'
' + ',\''+acct.type+'\',\''+acct.domain+'\',\''+escapeHTML(acct.data)+'\')" class="setting nex '+if_notf+'">low_priority'+lang.lang_layout_reconnect+'
'+lang.lang_layout_headercolor +'
'+lang.lang_layout_nodata +'
' $('#timeline_box_' + basekey + '_parentBox').append(html); localStorage.removeItem("pool_" + key); if (acct.data) { diff --git a/app/js/ui/menu.js b/app/js/ui/menu.js index 429fba4e..0c46ae93 100644 --- a/app/js/ui/menu.js +++ b/app/js/ui/menu.js @@ -1,4 +1,6 @@ function menu(){ + localStorage.setItem("menu-done",true); + $("#fukidashi").addClass("hide") if(!$("#menu").hasClass("appear")){ $("#menu").addClass("appear") var left=localStorage.getItem("menu-left"); diff --git a/app/js/ui/settings.js b/app/js/ui/settings.js index baaf4589..62bc14fa 100644 --- a/app/js/ui/settings.js +++ b/app/js/ui/settings.js @@ -123,6 +123,10 @@ function load() { var font = ""; } $("#font").val(font); + $("#c1-file").text(localStorage.getItem("custom1")) + $("#c2-file").text(localStorage.getItem("custom2")); + $("#c3-file").text(localStorage.getItem("custom3")); + $("#c4-file").text(localStorage.getItem("custom4")); } function climute(){ @@ -636,6 +640,22 @@ ipc.on('theme-json-create-complete', function (event, args) { $("#custom_import").val(""); ctLoad() }); +function customSound(key){ + var electron = require("electron"); + var remote=electron.remote; + var dialog=remote.dialog; + dialog.showOpenDialog(null, { + title: 'Custom sound', + properties: ['openFile'], + filters: [ + {name: 'Audio', extensions: ['mp3','aac','wav','flac','m4a']}, + {name: 'All', extensions: ['*']}, + ] + }, (fileNames) => { + localStorage.setItem("custom"+key,fileNames[0]); + $("#c1-file").text(fileNames[0]) + }); +} window.onload = function() { //最初に読む load(); diff --git a/app/js/ui/sort.js b/app/js/ui/sort.js index 8286d16b..0d350657 100644 --- a/app/js/ui/sort.js +++ b/app/js/ui/sort.js @@ -32,7 +32,7 @@ function sortload(){ var acctdata=user+"@"+domain; } - var html='
  • '+icon(acct.type)+'
    '+cap(acct.type, acct.data,acct.domain)+'
  • '; $("#sort").append(html); @@ -103,7 +103,7 @@ function sort(){ var json = JSON.stringify(newobj); localStorage.setItem("column", json); $("#sort").html(""); - Materialize.toast("並べ替え完了。", 3000); + Materialize.toast("Sorted", 3000); sortload(); parseColumn(); sortMenu() diff --git a/app/js/ui/tips.js b/app/js/ui/tips.js index a1d735be..e7871c7e 100644 --- a/app/js/ui/tips.js +++ b/app/js/ui/tips.js @@ -57,7 +57,7 @@ function startmem(){ var use=arg[0]; var cpu=arg[1]; var total=arg[2] - $("#tips-text").html(cpu+"
    Memory:"+Math.floor(use/1024/1024/102.4)/10+"/"+Math.floor(total/1024/1024/102.4)/10+"GB("+Math.floor(use/total*100)+"%)") + $("#tips-text").html(escapeHTML(cpu)+"
    Memory:"+Math.floor(use/1024/1024/102.4)/10+"/"+Math.floor(total/1024/1024/102.4)/10+"GB("+Math.floor(use/total*100)+"%)") }) } //トレンドタグ @@ -83,7 +83,7 @@ function trendTagonTip(){ var tags=""; json=json.score; Object.keys(json).forEach(function(tag) { - tags = tags + '#' + tag + ' TL Toot
    '; + tags = tags + '#' + escapeHTML(tag) + ' TL Toot
    '; }); $("#tips-text").html('
    トレンドタグrefresh:
    ' + tags+'
    '); trendTagonTipInterval() diff --git a/app/js/userdata/his-data.js b/app/js/userdata/his-data.js index 851b20cd..b83a6c60 100644 --- a/app/js/userdata/his-data.js +++ b/app/js/userdata/his-data.js @@ -571,15 +571,30 @@ function udAdd(start) { for(var i=0;i'+fields[i].signatureAlgorithm+':'+fields[i].name+''; + var html=''+escapeHTML(fields[i].signatureAlgorithm)+':'+escapeHTML(fields[i].name)+''; }else{ - var html=''+fields[i].signatureAlgorithm+':'+fields[i].name+''; + var html=''+escapeHTML(fields[i].signatureAlgorithm)+':'+escapeHTML(fields[i].name)+''; } $("#his-proof-prof").append(html) } } }); - + fetch("https://notestock.osa-p.net/api/v1/isstock.json?id="+start.replace("@","users/"), { + method: 'GET', + headers: { + 'Accept': 'application/json' + }, + }).then(function(response) { + return response.json(); + }).catch(function(error) { + todo(error); + console.error(error); + }).then(function(json) { + if(json.user.public_view){ + var html='Notestock'; + $("#his-proof-prof").append(html) + } + }); } diff --git a/app/js/userdata/showOnTL.js b/app/js/userdata/showOnTL.js index b201b38b..f639d41e 100644 --- a/app/js/userdata/showOnTL.js +++ b/app/js/userdata/showOnTL.js @@ -157,8 +157,7 @@ function udg(user, acct_id) { var when=""; var color="inherit" } - fval=twemoji.parse(fval); - note=note+''+fname+''+fval+''; + note=note+''+twemoji.parse(escapeHTML(fname))+''+twemoji.parse(fval)+''; } note=note+'' $("#his-des").html(twemoji.parse(note)); @@ -185,10 +184,10 @@ function udg(user, acct_id) { showFrl('', acct_id); $("#his-name-val").val(json.display_name); if(json.fields.length>0){ - $("#his-f1-name").val(json.fields[0].name); $("#his-f1-val").val($.strip_tags(json.fields[0].value)); - $("#his-f2-name").val(json.fields[1].name); $("#his-f2-val").val($.strip_tags(json.fields[1].value)); - $("#his-f3-name").val(json.fields[2].name); $("#his-f3-val").val($.strip_tags(json.fields[2].value)); - $("#his-f4-name").val(json.fields[3].name); $("#his-f4-val").val($.strip_tags(json.fields[3].value)); + if(json.fields[0]){$("#his-f1-name").val(json.fields[0].name); $("#his-f1-val").val($.strip_tags(json.fields[0].value));} + if(json.fields[1]){$("#his-f2-name").val(json.fields[1].name); $("#his-f2-val").val($.strip_tags(json.fields[1].value));} + if(json.fields[2]){$("#his-f3-name").val(json.fields[2].name); $("#his-f3-val").val($.strip_tags(json.fields[2].value));} + if(json.fields[3]){$("#his-f4-name").val(json.fields[3].name); $("#his-f4-val").val($.strip_tags(json.fields[3].value));} } var des = json.note; des = des.replace(/
    /g, "\n") @@ -279,7 +278,7 @@ function misskeyUdg(user, acct_id) { $("#his-follow").text(json.followingCount); $("#his-follower").text(json.followersCount); $("#his-since").text(crat(json.createdAt)); - var note=json.description; + var note=escapeHTML(json.description); $("#his-des").html(twemoji.parse(note)); if(json.isCat){ $("#his-bot").html("Cat"+twemoji.parse("😺")); diff --git a/app/package-lock.json b/app/package-lock.json index 422ce7d4..71619dbd 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,6 +1,6 @@ { "name": "thedesk", - "version": "18.2.1", + "version": "18.3.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -18,8 +18,7 @@ "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "ajv": { "version": "6.10.0", @@ -158,14 +157,12 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -248,7 +245,7 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "optional": true, + "dev": true, "requires": { "inherits": "~2.0.0" } @@ -475,6 +472,12 @@ "supports-color": "^5.3.0" } }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "optional": true + }, "chromium-pickle-js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", @@ -493,6 +496,21 @@ "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", "dev": true }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-spinners": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.1.0.tgz", + "integrity": "sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA==", + "dev": true + }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", @@ -537,6 +555,12 @@ } } }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -557,6 +581,12 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "dev": true + }, "combined-stream": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", @@ -605,8 +635,7 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "core-util-is": { "version": "1.0.2", @@ -676,6 +705,15 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -684,8 +722,13 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true }, "dmg-builder": { "version": "6.6.0", @@ -914,6 +957,165 @@ } } }, + "electron-rebuild": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.4.tgz", + "integrity": "sha512-QBUZg1due+R0bww5rNd4gEcsKczyhxyLrxSFZlKihwHRxaiHrGut532JAUe0fRz+VIU4WNSfNKyZ/ZwSGjaDhA==", + "dev": true, + "requires": { + "colors": "^1.3.3", + "debug": "^4.1.1", + "detect-libc": "^1.0.3", + "fs-extra": "^7.0.1", + "node-abi": "^2.7.0", + "node-gyp": "^3.8.0", + "ora": "^3.0.0", + "spawn-rx": "^3.0.0", + "yargs": "^12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -1118,17 +1320,25 @@ "fs-extra": "^7.0.1" } }, + "fs-minipass": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "optional": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "optional": true, + "dev": true, "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -1140,7 +1350,6 @@ "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -1182,7 +1391,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1262,8 +1470,7 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "hosted-git-info": { "version": "2.7.1", @@ -1315,7 +1522,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "optional": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -1620,6 +1826,21 @@ "path-exists": "^3.0.0" } }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -1767,6 +1988,36 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, + "minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" + } + } + }, + "minizlib": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -1797,19 +2048,27 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node-abi": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.8.0.tgz", + "integrity": "sha512-1/aa2clS0pue0HjckL62CsbhWWU35HARvBDXcJtYKbYR7LnIutmpxmXbuDMV9kEviD2lP/wACOgWmmwljghHyQ==", + "dev": true, + "requires": { + "semver": "^5.4.1" + } + }, "node-addon-api": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.2.tgz", - "integrity": "sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.3.tgz", + "integrity": "sha512-FXWH6mqjWgU8ewuahp4spec8LkroFZK2NicOv6bNwZC3kcwZUI8LeZdG80UzTSLLhK4T7MsgNwlYDVRlDdfTDg==", "optional": true }, "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==", "optional": true, "requires": { - "fstream": "^1.0.0", "glob": "^7.0.3", "graceful-fs": "^4.1.2", "mkdirp": "^0.5.0", @@ -1819,138 +2078,15 @@ "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", - "tar": "^2.0.0", + "tar": "^4.4.8", "which": "1" }, "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "optional": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "optional": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "optional": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "optional": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "optional": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "optional": true - }, - "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", - "optional": true - }, - "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", - "optional": true, - "requires": { - "mime-db": "~1.38.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "optional": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "optional": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "optional": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, "semver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "optional": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "optional": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "optional": true } } }, @@ -1969,7 +2105,6 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "optional": true, "requires": { "abbrev": "1" } @@ -1988,13 +2123,12 @@ }, "nowplaying-node": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/nowplaying-node/-/nowplaying-node-0.1.3.tgz", - "integrity": "sha512-nEvuw93xmgZS7X1XqUaLJXhd4iB54xjTOnYuEEoPMBHHs3QWGECNKvnD0uDBCe269sUK8Z5InX5rPjzf3vRVrw==", + "resolved": "git+https://github.com/cutls/nowplaying-node.git#1641fc3c7fad8cd1f10f15a2517ada67a8de802c", "optional": true, "requires": { "@types/node": "^10.1.2", "node-addon-api": "^1.2.0", - "node-gyp": "^3.6.2" + "node-gyp": ">=4.0.0" } }, "npm-run-path": { @@ -2010,7 +2144,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -2070,11 +2203,58 @@ "wrappy": "1" } }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + } + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "3.1.0", @@ -2129,14 +2309,12 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "optional": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -2258,8 +2436,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "optional": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -2601,13 +2778,31 @@ "path-parse": "^1.0.6" } }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "optional": true, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, "requires": { - "glob": "^7.0.5" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + }, + "rxjs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz", + "integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -2719,6 +2914,17 @@ "source-map": "^0.6.0" } }, + "spawn-rx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz", + "integrity": "sha512-dw4Ryg/KMNfkKa5ezAR5aZe9wNwPdKlnHEXtHOjVnyEDSPQyOpIPPRtcIiu7127SmtHhaCjw21yC43HliW0iIg==", + "dev": true, + "requires": { + "debug": "^2.5.1", + "lodash.assign": "^4.2.0", + "rxjs": "^6.3.1" + } + }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", @@ -2872,14 +3078,32 @@ } }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "optional": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "optional": true + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "optional": true + } } }, "temp-file": { @@ -2993,6 +3217,12 @@ "utf8-byte-length": "^1.0.1" } }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -3150,6 +3380,15 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.9.tgz", "integrity": "sha512-t1+tvH8hybPM86oNne3ZozCD02zj/VoZIiojOBPJLjwBn7hxYU5e1gBObFpq8ts1NEn1VhPf/hVXBDAJ3X5ljg==" }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -3168,7 +3407,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -3217,7 +3455,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { diff --git a/app/package.json b/app/package.json index 55cbaef9..ad278db0 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "thedesk", - "version": "18.2.3", + "version": "18.3.2", "description": "TheDesk is a Mastodon client for PC.", "repository": "https://github.com/cutls/TheDesk", "main": "main.js", @@ -35,7 +35,7 @@ }, { "name": "kPherox", - "url": "https://www.kr-kp.com/", + "url": "https://pawoo.net/@kPherox", "email": "admin@mail.kr-kp.com" } ], @@ -49,7 +49,7 @@ "vue": "^2.6.9" }, "optionalDependencies": { - "nowplaying-node": "^0.1.3", + "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" }, @@ -94,7 +94,10 @@ "category": "Network" }, "mac": { - "target": ["dmg","zip"] + "target": [ + "dmg", + "zip" + ] }, "electronDownload": { "version": "4.1.4" diff --git a/app/source/notif.wav b/app/source/notif.wav new file mode 100644 index 00000000..78700e70 Binary files /dev/null and b/app/source/notif.wav differ diff --git a/app/source/notif2.wav b/app/source/notif2.wav new file mode 100644 index 00000000..e150f1c8 Binary files /dev/null and b/app/source/notif2.wav differ diff --git a/app/source/notif3.wav b/app/source/notif3.wav new file mode 100644 index 00000000..4d250ffe Binary files /dev/null and b/app/source/notif3.wav differ diff --git a/app/view/en/acct.html b/app/view/en/acct.html index efdbe7df..c3a3c1ff 100644 --- a/app/view/en/acct.html +++ b/app/view/en/acct.html @@ -1,5 +1,5 @@ - + Account Manager - TheDesk @@ -40,7 +40,7 @@ body,html{overflow-y: scroll;} - + @@ -48,23 +48,23 @@ body,html{overflow-y: scroll;}
    - Back
    -
    List of accounts
    + 戻る
    +
    アカウント一覧
    -
    Add an account

    +
    アカウントを追加

    - Uncheck it to skip pasiting code.(login to Mastodon on Windows or macOS) (Recommended: pcheck)
    + チェックを外すとコード貼り付けをスキップできます。(MastodonにWindowsやmacOSからログインする場合)失敗する場合はチェックを入れてください。
    -
    +
    -
    +

    @@ -73,21 +73,21 @@ body,html{overflow-y: scroll;}
    -
    Main an account
    -
    Select an account +
    メインアカウント
    +
    アカウントを選択
    @@ -98,12 +98,12 @@ Administered by:



    -Domain:
    -Federated servers:
    -Toots:
    -Users:Users
    -Connection:%
    -Mastodon version:@
    +ドメイン名:
    +接続サーバー数:
    +トゥート数:
    +ユーザー数:ユーザー数
    +コネクション:%
    +Mastodonバージョン:@
    diff --git a/app/view/en/index.html b/app/view/en/index.html index 19746733..967f0baa 100644 --- a/app/view/en/index.html +++ b/app/view/en/index.html @@ -1,10 +1,12 @@ - + + TheDesk - + @@ -21,602 +23,664 @@ --> - - - - - - - - - - - - -
    - - -
    -
    Drag here to upload -
    - -
    -
    -
    -
    -
    Post newReaction
    - -
    -
    - -
    - - - -
    -
    - -
    - - cancel - - -
    -
    -
    -format_bold -format_italic -format_underlined -strikethrough_s -format_quote -short_text -code -format_list_bulleted -format_list_numbered - - -autorenew -flare -swap_vert -swap_horiz - -Markdownエディタを隠す - -
    -format_size -px -color_lens - -
    -link -  - -
    -image -  - -
    -
    -
    -
    -
    - -Edit - -
    -
    - - -
    - -Preview - - -Markdownエディタを表示 - -
    -
    - visibility_off - public - CW - photo_library - tag_faces - more_vert - clear -
    -
    -
    -
    -Reply: -No/Attaching files: -None/Adjust status privacy: -public - -
    - -
    Post at
    2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)
    - -
    -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    -
    - -
    - - Refresh emojis list -
    -
    -
    -
    -
    - - / - - + + + + + + + + + + + + +
    + + +
    +
    ここにドラッグして添付(ドラッグと同時にアップロードされます) +
    +
    -
    - -
    - -
    - - - - - -
    - -
    - day(s) - hour(s) - minute(s) +
    +
    投稿Reaction
    + +
    +
    + +
    + + + +
    +
    + +
    + + cancel + + +
    +
    +
    + format_bold + format_italic + format_underlined + strikethrough_s + format_quote + short_text + code + format_list_bulleted + format_list_numbered + + + autorenew + flare + swap_vert + swap_horiz + + Markdownエディタを隠す + +
    + format_size + px + color_lens + +
    + link +   + +
    + image +   + +
    +
    +
    +
    +
    + + Edit + +
    +
    + + + +
    + + Preview + + + Markdownエディタを表示 + +
    +
    + visibility_off + public + CW + photo_library + tag_faces + more_vert + clear +
    +
    +
    +
    + 返信モード: + いいえ/添付ファイル: + なし/公開範囲: + public + +
    + +
    時間指定投稿
    2.7.0~ 5分以内には投稿できません。サーバーの時計が正確とは限りません。
    + +
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    + +
    + サーバーによって実装が異なります。 + 絵文字更新 +
    +
    +
    +
    +
    + + / + + +
    + +
    + +
    + +
    + + + + + +
    + +
    + 日 + 時間 + 分 +
    +
    -
    -
    - - +