diff --git a/app/css/post.css b/app/css/post.css index 85e5515c..00595d2f 100644 --- a/app/css/post.css +++ b/app/css/post.css @@ -69,7 +69,15 @@ overflow-y:scroll; max-height:100px; } - +#toot-btn-field{ + display:flex; +} +#toot-post-btn{ + width:calc(100% - 10px); padding:0; margin-top:10px; +} +#toot-sec-btn{ + width:30px; padding:0; margin-top:10px; +} /*mini*/ diff --git a/app/css/tl.css b/app/css/tl.css index 4c15a3f3..25e3209b 100644 --- a/app/css/tl.css +++ b/app/css/tl.css @@ -425,4 +425,25 @@ p:not(:last-child){ margin-top: 3px; padding: 1px; border-radius: 3px; +} +.fa-2x>.emoji-img { + width: 36px!important; + height: 36px!important +} +.fa-3x>.emoji-img { + width: 54px!important; + height: 54px!important +} +.fa-4x>.emoji-img { + width: 72px!important; + height: 72px!important +} +.fa-5x>.emoji-img { + width: 90px!important; + height: 90px!important +} +#lists-user{ + overflow-y: scroll; + overflow-x: hidden; + max-height: 200px; } \ No newline at end of file diff --git a/app/css/userdata.css b/app/css/userdata.css index 919821ce..29eebe46 100644 --- a/app/css/userdata.css +++ b/app/css/userdata.css @@ -19,6 +19,7 @@ } #his-float-data{ width: 400px; + height: 100%; } #his-float-timeline{ width: calc(100% - 400px); diff --git a/app/js/common/keyshortcut.js b/app/js/common/keyshortcut.js index 38146aea..2198026d 100644 --- a/app/js/common/keyshortcut.js +++ b/app/js/common/keyshortcut.js @@ -12,6 +12,16 @@ $(function($) { }else{ var wv=true; } + //Ctrl+Shift+Enter:Lgen + if (event.metaKey || event.ctrlKey && wv) { + if (event.shiftKey) { + if (e.keyCode === 13) { + post('local'); + return false; + } + } + + } //Ctrl+Enter:投稿 if (event.metaKey || event.ctrlKey && wv) { if (e.keyCode === 13) { @@ -19,13 +29,7 @@ $(function($) { return false; } } - //Shift+Enter:Markdown - if (event.shiftKey) { - if (e.keyCode === 13) { - brInsert(" \n"); - return false; - } - } + //Shift+Space:Markdownゼロ幅スペース if (event.shiftKey) { if (e.keyCode === 32) { diff --git a/app/js/lang/setting.lang.js b/app/js/lang/setting.lang.js index 4a469f53..4dd4d902 100644 --- a/app/js/lang/setting.lang.js +++ b/app/js/lang/setting.lang.js @@ -118,6 +118,10 @@ var lang_setting_main={ "ja":"起動時・投稿時のアカウントを{{set}}に設定しました。", "en":"Default account:{{set}}" } +var lang_setting_sec={ + "ja":"セカンダリートゥートボタン:{{set}}", + "en":"Secondary toot button:{{set}}" +} var lang_setting_ksref={ "ja":"キーボードショートカットが更新されました。", "en":"Keyboard shortcuts are refreshed." diff --git a/app/js/login/login.js b/app/js/login/login.js index 7b1c5684..d32c6f1c 100644 --- a/app/js/login/login.js +++ b/app/js/login/login.js @@ -399,8 +399,12 @@ function ckdb(acct_id) { return; } if(json){ - localStorage.setItem("letters_" + acct_id, json["max_toot_chars"]); - //localStorage.setItem("statuses_" + acct_id, json["statuses"]); + if(json["max_toot_chars"]){ + localStorage.setItem("letters_" + acct_id, json["max_toot_chars"]); + } + if(json["urls"]["streaming_api"]){ + localStorage.setItem("streaming_" + acct_id, json["urls"]["streaming_api"]); + } } }); diff --git a/app/js/login/manager.js b/app/js/login/manager.js index 987ce69e..59a12b62 100644 --- a/app/js/login/manager.js +++ b/app/js/login/manager.js @@ -269,7 +269,8 @@ function support() { function login(url) { var multi = localStorage.getItem("multi"); var obj = JSON.parse(multi); - if($('#misskey:checked').val()=="on"){ + if($('#misskey:checked').val()=="on" || url=="misskey.xyz"){ + $("#misskey").prop("checked", true); misskeyLogin(url); return; } @@ -369,6 +370,7 @@ function misskeyLogin(url) { $("#auth").show(); $("#code").val(token); $("#add").hide(); + $("#misskey").prop("checked", false); localStorage.setItem("domain_tmp",url); shell.openExternal(json.url); var electron = require("electron"); diff --git a/app/js/post/post.js b/app/js/post/post.js index 32eae3cf..366c83a7 100644 --- a/app/js/post/post.js +++ b/app/js/post/post.js @@ -1,6 +1,15 @@ /*投稿系*/ //投稿 -function post(mode) { +function sec(){ + var mode=localStorage.getItem("sec"); + var acct_id = $("#post-acct-sel").val(); + var domain = localStorage.getItem("domain_" + acct_id); + if(~domain.indexOf("kirishima.cloud")>=0 && mode=="local"){ + mode="unlisted"; + } + post(null,mode); +} +function post(mode,postvis) { if($("#toot-post-btn").prop("disabled")){ return } @@ -85,7 +94,12 @@ function post(mode) { } else { var nsfw = "false"; } - var vis = $("#vis").text(); + if(postvis){ + var vis = postvis; + }else{ + var vis = $("#vis").text(); + } + if(vis!="inherit" && vis!="local"){ toot.visibility=vis; }else if(vis=="local"){ diff --git a/app/js/tl/mix.js b/app/js/tl/mix.js index 980d092d..9c48966d 100644 --- a/app/js/tl/mix.js +++ b/app/js/tl/mix.js @@ -80,10 +80,15 @@ function mixtl(acct_id, tlid, type,delc,voice) { function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) { var domain = localStorage.getItem("domain_" + acct_id); var at = localStorage.getItem("acct_"+ acct_id + "_at"); - var startHome = "wss://" + domain + + if(localStorage.getItem("streaming_" + acct_id)){ + var wss=localStorage.getItem("streaming_" + acct_id) + }else{ + var wss="wss://"+domain + } + var startHome = wss "/api/v1/streaming/?stream=user&access_token=" + at; - var startLocal = "wss://" + domain + + var startLocal = wss "/api/v1/streaming/?stream=public:local&access_token=" + at; var wshid = websocketHome.length; var wslid = websocketLocal.length; diff --git a/app/js/tl/notification.js b/app/js/tl/notification.js index cf479af9..016b91df 100644 --- a/app/js/tl/notification.js +++ b/app/js/tl/notification.js @@ -95,7 +95,12 @@ function notf(acct_id, tlid, sys) { todc(); }); if(!misskey){ - var start = "wss://" + domain + "/api/v1/streaming/?stream=user&access_token=" + + if(localStorage.getItem("streaming_" + acct_id)){ + var wss=localStorage.getItem("streaming_" + acct_id) + }else{ + var wss="wss://"+domain + } + var start = wss + "/api/v1/streaming/?stream=user&access_token=" + at; }else{ var start = "wss://" + domain + "/?i=" + diff --git a/app/js/tl/speech.js b/app/js/tl/speech.js index 2213dfb7..543f9494 100644 --- a/app/js/tl/speech.js +++ b/app/js/tl/speech.js @@ -12,8 +12,8 @@ $voise = null; $synthes.rate=localStorage.getItem("voice_speed"); $synthes.pitch=localStorage.getItem("voice_pitch"); $synthes.volume=localStorage.getItem("voice_vol"); -function say(msg){ - msg=voiceParse(msg); +function say(msgr){ + msg=voiceParse(msgr); var voice=localStorage.getItem("voicebank"); var obj = JSON.parse(voice); if(!obj){ @@ -43,10 +43,11 @@ $repeat = setInterval(function() { } }, 300); function voiceParse(msg){ + msg = $.strip_tags(msg); msg = msg.replace(/#/g, ""); msg = msg.replace(/'/g, ""); msg = msg.replace(/"/g, ""); - msg = msg.replace(/https?:\/\/[a-zA-Z0-9./-@_=?&]+/g, ""); + msg = msg.replace(/https?:\/\/[a-zA-Z0-9./-@_=?%&-]+/g, ""); return msg; } function voiceToggle(tlid) { diff --git a/app/js/tl/tl.js b/app/js/tl/tl.js index ff111f3d..3326c5c5 100644 --- a/app/js/tl/tl.js +++ b/app/js/tl/tl.js @@ -179,20 +179,25 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) { } }else{ var misskey=false; + if(localStorage.getItem("streaming_" + acct_id)){ + var wss=localStorage.getItem("streaming_" + acct_id) + }else{ + var wss="wss://"+domain + } if (type == "home") { - var start = "wss://" + domain + + var start = wss + "/api/v1/streaming/?stream=user&access_token=" + at; } else if (type == "pub") { - var start = "wss://" + domain + + var start = wss + "/api/v1/streaming/?stream=public&access_token=" + at; } else if (type == "pub-media") { - var start = "wss://" + domain + + var start = wss + "/api/v1/streaming/?stream=public:media&access_token=" + at; } else if (type == "local") { - var start = "wss://" + domain + + var start = wss + "/api/v1/streaming/?stream=public:local&access_token=" + at; } else if (type == "local-media") { - var start = "wss://" + domain + + var start = wss + "/api/v1/streaming/?stream=public:local:media&only_media=true&access_token=" + at; } else if (type == "tag") { if(type=="tag"){ @@ -201,16 +206,16 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) { data=data+"&local=true"; } } - var start = "wss://" + domain + + var start = wss + "/api/v1/streaming/?stream=hashtag&tag=" + data +"&access_token=" + at; } else if (type == "noauth") { - var start = "wss://" + acct_id + + var start = wss + "/api/v1/streaming/?stream=public:local"; } else if (type=="list"){ - var start = "wss://" + domain + + var start = wss + "/api/v1/streaming/?stream=list&list=" + data +"&access_token=" + at; } else if (type=="dm"){ - var start = "wss://" + domain + + var start = wss + "/api/v1/streaming/?stream=direct&access_token=" + at; } } diff --git a/app/js/ui/layout.js b/app/js/ui/layout.js index 91ace987..d26be06f 100644 --- a/app/js/ui/layout.js +++ b/app/js/ui/layout.js @@ -179,6 +179,9 @@ function parseColumn() { $("#bottom").removeClass("reverse"); $(".leftside").removeClass("reverse"); } + if(localStorage.getItem("sec") && localStorage.getItem("sec")!="nothing"){ + secvis(localStorage.getItem("sec")); + } favTag(); var cw = localStorage.getItem("always-cw"); if (cw == "yes") { @@ -193,6 +196,29 @@ function parseColumn() { } } } +//セカンダリートゥートボタン +function secvis(set){ + if(set=="public"){ + $("#toot-sec-icon").text("public"); + $("#toot-sec-btn").addClass("purple"); + }else if(set=="unlisted"){ + $("#toot-sec-icon").text("lock_open"); + $("#toot-sec-btn").addClass("blue"); + }else if(set=="private"){ + $("#toot-sec-icon").text("lock"); + $("#toot-sec-btn").addClass("orange"); + }else if(set=="direct"){ + $("#toot-sec-icon").text("mail"); + $("#toot-sec-btn").addClass("red"); + }else if(set=="limited"){ + $("#toot-sec-icon").text("group"); + $("#toot-sec-btn").addClass("teal"); + }else if(set=="local"){ + $("#toot-sec-icon").text("visibility"); + $("#toot-sec-btn").addClass("light-blue"); + } + $("#toot-sec-btn").removeClass("hide"); +} //カラム追加 function addColumn() { var acct = $("#add-acct-sel").val(); diff --git a/app/js/ui/settings.js b/app/js/ui/settings.js index d4b6b287..00731952 100644 --- a/app/js/ui/settings.js +++ b/app/js/ui/settings.js @@ -192,6 +192,13 @@ function settings() { Materialize.toast(lang_setting_main[lang].replace("{{set}}" ,maint), 3000); } localStorage.setItem("mainuse", maind); + + var secd = $("[name=sec]:checked").val(); + var sect = $("[for=sec-"+secd+"]").text(); + if (secd != localStorage.getItem("sec")) { + Materialize.toast(lang_setting_sec[lang].replace("{{set}}" ,sect), 3000); + } + localStorage.setItem("sec", secd); } //読み込み時の設定ロード @@ -384,6 +391,12 @@ function load() { var maint = "remain"; } $("#mn_" + maint).prop("checked", true); + + var sect = localStorage.getItem("sec"); + if (!sect) { + var sect = "nothing"; + } + $("#sec-" + sect).prop("checked", true); } //最初に読む load(); diff --git a/app/package.json b/app/package.json index e1ac240c..fcd176cc 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "thedesk", - "version": "16.1.2", + "version": "16.1.3", "description": "TheDesk is a Mastodon client for PC.", "main": "main.js", "scripts": { diff --git a/app/view/en/acct.html b/app/view/en/acct.html index 995342af..8ffdb88d 100644 --- a/app/view/en/acct.html +++ b/app/view/en/acct.html @@ -88,6 +88,7 @@ Mastodon version:@
+ \ No newline at end of file diff --git a/app/view/en/index.html b/app/view/en/index.html index 02d84e1c..e479ec31 100644 --- a/app/view/en/index.html +++ b/app/view/en/index.html @@ -26,7 +26,7 @@ + \ No newline at end of file diff --git a/app/view/ja/index.html b/app/view/ja/index.html index 7db64efa..e790717c 100644 --- a/app/view/ja/index.html +++ b/app/view/ja/index.html @@ -26,7 +26,7 @@ + \ No newline at end of file diff --git a/app/view/make/index.sample.html b/app/view/make/index.sample.html index 6e65b3f8..56cab57e 100644 --- a/app/view/make/index.sample.html +++ b/app/view/make/index.sample.html @@ -26,7 +26,7 @@