diff --git a/app/js/common/version.js b/app/js/common/version.js index 61960d6d..2358175e 100644 --- a/app/js/common/version.js +++ b/app/js/common/version.js @@ -1,346 +1,375 @@ //バージョンチェッカー function verck(ver, jp) { - console.log("%c Welcome😊", "color: red;font-size:200%;"); - var date = new Date(); - var show = false; - if (localStorage.getItem("ver") != ver && localStorage.getItem("winstore")) { + console.log('%c Welcome😊', 'color: red;font-size:200%;') + var date = new Date() + var show = false + if (localStorage.getItem('ver') != ver && localStorage.getItem('winstore')) { //ちょっと削除とリンク解析の都合上アレ(s) //対象外のアプデ:storageが20の最初まで"Usamin (18.6.5)" - if (!localStorage.getItem("usamin_18_6_5_flag")) { - localStorage.setItem("usamin_18_6_5_flag", true); - var multi = localStorage.getItem("column"); - var obj = JSON.parse(multi); + if (!localStorage.getItem('usamin_18_6_5_flag')) { + localStorage.setItem('usamin_18_6_5_flag', true) + var multi = localStorage.getItem('column') + var obj = JSON.parse(multi) for (var i = 0; i < obj.length; i++) { - localStorage.removeItem("card_" + i); + localStorage.removeItem('card_' + i) } } //ちょっと削除とリンク解析の都合上アレ(e) - show = true; - console.log("%c Thank you for your update🎉", "color: red;font-size:200%;"); + show = true + console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;') $(document).ready(function() { - if (localStorage.getItem("winstore")) { - $("#releasenote").modal("open"); + if (localStorage.getItem('winstore')) { + $('#releasenote').modal('open') } - verp = ver.replace("(", ""); - verp = verp.replace(".", "-"); - verp = verp.replace(".", "-"); - verp = verp.replace("[", "-"); - verp = verp.replace("]", ""); - verp = verp.replace(")", ""); - verp = verp.replace(" ", "_"); - console.log("%c " + verp, "color: red;font-size:200%;"); - if (lang.language == "ja") { - $("#release-" + verp).show(); + verp = ver.replace('(', '') + verp = verp.replace('.', '-') + verp = verp.replace('.', '-') + verp = verp.replace('[', '-') + verp = verp.replace(']', '') + verp = verp.replace(')', '') + verp = verp.replace(' ', '_') + console.log('%c ' + verp, 'color: red;font-size:200%;') + if (lang.language == 'ja') { + $('#release-' + verp).show() } else { - $("#release-en").show(); + $('#release-en').show() } - }); + }) } - localStorage.setItem("ver", ver); + localStorage.setItem('ver', ver) if (!show) { - console.log(show); - if (date.getMonth() + 1 >= localStorage.getItem("showSupportMe") || !localStorage.getItem("showSupportMe")) { + console.log(show) + if ( + date.getFullYear() * 100 + date.getMonth() + 1 >= localStorage.getItem('showSupportMe') || + !localStorage.getItem('showSupportMe') + ) { if (date.getMonth() == 11) { - var nextmonth = 1; + var yrs = date.getFullYear() + 1 + var nextmonth = yrs * 100 + 1 } else { - var nextmonth = date.getMonth() + 2; + var yrs = date.getFullYear() + var nextmonth = yrs * 100 + date.getMonth() + 2 } - if (lang.language != "ja") { - $("#support-btm-ja").addClass("hide"); - $("#support-btm-en").removeClass("hide"); + if (lang.language != 'ja') { + $('#support-btm-ja').addClass('hide') + $('#support-btm-en').removeClass('hide') } - localStorage.setItem("showSupportMe", nextmonth); - $("#support-btm").removeClass("hide"); - $("#support-btm").animate( + localStorage.setItem('showSupportMe', nextmonth) + $('#support-btm').removeClass('hide') + $('#support-btm').animate( { - bottom: "0" + bottom: '0' }, { duration: 300 } - ); + ) } } - var platform = localStorage.getItem("platform"); - console.log("Your platform:" + platform); - if (!localStorage.getItem("winstore")) { - $("#start").css("display", "flex"); + var platform = localStorage.getItem('platform') + console.log('Your platform:' + platform) + if (!localStorage.getItem('winstore')) { + $('#start').css('display', 'flex') } - if (localStorage.getItem("winstore") == "brewcask" || localStorage.getItem("winstore") == "snapcraft" || localStorage.getItem("winstore") == "winstore") { - var winstore = true; + if ( + localStorage.getItem('winstore') == 'brewcask' || + localStorage.getItem('winstore') == 'snapcraft' || + localStorage.getItem('winstore') == 'winstore' + ) { + var winstore = true } else { - var winstore = false; + var winstore = false } - var l = 5; + var l = 5 // 生成する文字列に含める文字セット - var c = "abcdefghijklmnopqrstuvwxyz0123456789"; - var cl = c.length; - var r = ""; + var c = 'abcdefghijklmnopqrstuvwxyz0123456789' + var cl = c.length + var r = '' for (var i = 0; i < l; i++) { - r += c[Math.floor(Math.random() * cl)]; + r += c[Math.floor(Math.random() * cl)] } - var start = "https://thedesk.top/ver.json"; + var start = 'https://thedesk.top/ver.json' fetch(start, { - method: "GET" + method: 'GET' }) .then(function(response) { if (!response.ok) { response.text().then(function(text) { - setLog(response.url, response.status, text); - }); + setLog(response.url, response.status, text) + }) } - return response.json(); + return response.json() }) .catch(function(error) { - todo(error);setLog(start, "JSON", error); - setLog(start, "JSON", error); - console.error(error); + todo(error) + setLog(start, 'JSON', error) + setLog(start, 'JSON', error) + console.error(error) }) .then(function(mess) { - console.table(mess); + console.table(mess) if (mess) { //askjp_jp_ua: 2019年10月24日、mstdn.jpによるユーザーエージェントアクセス制限 - if (jp && mess.jp_ua && !localStorage.getItem("askjp_jp_ua")) { - localStorage.setItem("askjp_jp_ua", true); - $("#askjp_jp_ua").removeClass("hide"); + if (jp && mess.jp_ua && !localStorage.getItem('askjp_jp_ua')) { + localStorage.setItem('askjp_jp_ua', true) + $('#askjp_jp_ua').removeClass('hide') } - var platform = localStorage.getItem("platform"); - if (platform == "darwin") { - var newest = mess.desk_mac; + var platform = localStorage.getItem('platform') + if (platform == 'darwin') { + var newest = mess.desk_mac } else { - var newest = mess.desk; + var newest = mess.desk } if (newest == ver) { - todo(lang.lang_version_usever.replace("{{ver}}", mess.desk)); + todo(lang.lang_version_usever.replace('{{ver}}', mess.desk)) //betaかWinstoreならアプデチェックしない - } else if (ver.indexOf("beta") != -1 || winstore) { + } else if (ver.indexOf('beta') != -1 || winstore) { } else { - localStorage.removeItem("instance"); - if (localStorage.getItem("new-ver-skip")) { - if (localStorage.getItem("next-ver") != newest) { - postMessage(["sendSinmpleIpc", "update"], "*"); + localStorage.removeItem('instance') + if (localStorage.getItem('new-ver-skip')) { + if (localStorage.getItem('next-ver') != newest) { + postMessage(['sendSinmpleIpc', 'update'], '*') } else { - console.warn(lang.lang_version_skipver); - todo(lang.lang_version_skipver); + console.warn(lang.lang_version_skipver) + todo(lang.lang_version_skipver) } } else { - postMessage(["sendSinmpleIpc", "update"], "*"); + postMessage(['sendSinmpleIpc', 'update'], '*') } } } - }); - if (!localStorage.getItem("last-notice-id")) { - localStorage.setItem("last-notice-id", 0); + }) + if (!localStorage.getItem('last-notice-id')) { + localStorage.setItem('last-notice-id', 0) } - var start = "https://thedesk.top/notice?since_id=" + localStorage.getItem("last-notice-id"); + var start = 'https://thedesk.top/notice?since_id=' + localStorage.getItem('last-notice-id') fetch(start, { - method: "GET" + method: 'GET' }) .then(function(response) { if (!response.ok) { response.text().then(function(text) { - setLog(response.url, response.status, text); - }); + setLog(response.url, response.status, text) + }) } - return response.json(); + return response.json() }) .catch(function(error) { - todo(error);setLog(start, "JSON", error); - console.error(error); + todo(error) + setLog(start, 'JSON', error) + console.error(error) }) .then(function(mess) { if (mess.length < 1) { - return false; + return false } else { - var last = localStorage.getItem("last-notice-id"); - localStorage.setItem("last-notice-id", mess[0].ID); + var last = localStorage.getItem('last-notice-id') + localStorage.setItem('last-notice-id', mess[0].ID) for (i = 0; i < mess.length; i++) { - var obj = mess[i]; + var obj = mess[i] if (obj.ID * 1 <= last) { - break; + break } else { - if (obj.type == "textv2") { + if (obj.type == 'textv2') { if (~obj.languages.indexOf(lang.language)) { - var show = true; - if (obj.toot != "") { - var toot = '"; + var show = true + if (obj.toot != '') { + var toot = + '" } else { - var toot = ""; + var toot = '' } - if (obj.ver != "") { + if (obj.ver != '') { if (obj.ver == ver) { - show = true; + show = true } else { - show = false; + show = false } } - if (obj.domain != "") { - var multi = localStorage.getItem("multi"); + if (obj.domain != '') { + var multi = localStorage.getItem('multi') if (multi) { - show = false; - var accts = JSON.parse(multi); + show = false + var accts = JSON.parse(multi) Object.keys(accts).forEach(function(key) { - var acct = accts[key]; + var acct = accts[key] if (acct.domain == obj.domain) { - show = true; + show = true } - }); + }) } } if (show) { - M.toast({ html: escapeHTML(obj.text) + toot + '(スライドして消去)', displayLength: 86400 }); + M.toast({ + html: + escapeHTML(obj.text) + + toot + + '(スライドして消去)', + displayLength: 86400 + }) } } } } } } - }); + }) } -var infostreaming = false; +var infostreaming = false function infowebsocket() { - infows = new WebSocket("wss://thedesk.top/ws/"); + infows = new WebSocket('wss://thedesk.top/ws/') infows.onopen = function(mess) { - console.log([tlid, ":Connect Streaming Info:", mess]); - infostreaming = true; - }; + console.log([tlid, ':Connect Streaming Info:', mess]) + infostreaming = true + } infows.onmessage = function(mess) { - console.log([tlid, ":Receive Streaming:", JSON.parse(mess.data)]); - var obj = JSON.parse(mess.data); - if (obj.type != "counter") { - if (obj.type == "textv2") { + console.log([tlid, ':Receive Streaming:', JSON.parse(mess.data)]) + var obj = JSON.parse(mess.data) + if (obj.type != 'counter') { + if (obj.type == 'textv2') { if (~obj.languages.indexOf(lang.language)) { - localStorage.setItem("last-notice-id", obj.id); - var show = true; - if (obj.toot != "") { - var toot = '"; + localStorage.setItem('last-notice-id', obj.id) + var show = true + if (obj.toot != '') { + var toot = + '" } else { - var toot = ""; + var toot = '' } - if (obj.ver != "") { + if (obj.ver != '') { if (obj.ver == ver) { - show = true; + show = true } else { - show = false; + show = false } } - if (obj.domain != "") { - var multi = localStorage.getItem("multi"); + if (obj.domain != '') { + var multi = localStorage.getItem('multi') if (multi) { - show = false; - var accts = JSON.parse(multi); + show = false + var accts = JSON.parse(multi) Object.keys(accts).forEach(function(key) { - var acct = accts[key]; + var acct = accts[key] if (acct.domain == obj.domain) { - show = true; + show = true } - }); + }) } } if (show) { - console.log(obj.text); - console.log(escapeHTML(obj.text)); - M.toast({ html: escapeHTML(obj.text) + toot + '(スライドして消去)', displayLength: 86400 }); + console.log(obj.text) + console.log(escapeHTML(obj.text)) + M.toast({ + html: + escapeHTML(obj.text) + + toot + + '(スライドして消去)', + displayLength: 86400 + }) } } } } else { - $("#persons").text(obj.text); + $('#persons').text(obj.text) } - }; + } infows.onerror = function(error) { - infostreaming = false; - console.error("Error closing:info"); - console.error(error); - return false; - }; + infostreaming = false + console.error('Error closing:info') + console.error(error) + return false + } infows.onclose = function() { - infostreaming = false; - console.error("Closing:info"); - }; + infostreaming = false + console.error('Closing:info') + } } setInterval(function() { if (!infostreaming) { - console.log("try to connect to base-streaming"); - infowebsocket(); + console.log('try to connect to base-streaming') + infowebsocket() } -}, 10000); +}, 10000) function openRN() { - $("#releasenote").modal("open"); - if (lang.language == "ja") { - verp = ver.replace("(", ""); - verp = verp.replace(".", "-"); - verp = verp.replace(".", "-"); - verp = verp.replace("[", "-"); - verp = verp.replace("]", ""); - verp = verp.replace(")", ""); - verp = verp.replace(" ", "_"); - $("#release-" + verp).show(); + $('#releasenote').modal('open') + if (lang.language == 'ja') { + verp = ver.replace('(', '') + verp = verp.replace('.', '-') + verp = verp.replace('.', '-') + verp = verp.replace('[', '-') + verp = verp.replace(']', '') + verp = verp.replace(')', '') + verp = verp.replace(' ', '_') + $('#release-' + verp).show() } else { - $("#release-en").show(); + $('#release-en').show() } } function closeSupport() { - $("#support-btm").animate( + $('#support-btm').animate( { - bottom: "-300px" + bottom: '-300px' }, { duration: 300, complete: function() { - $("#support-btm").addClass("hide"); + $('#support-btm').addClass('hide') } } - ); + ) } function storeDialog(platform, ver) { - if (platform == "win32") { - var mes = lang.lang_version_platform; - } else if (platform == "linux") { - var mes = lang.lang_version_platform_linux; - } else if (platform == "darwin") { - var mes = lang.lang_version_platform_mac; + if (platform == 'win32') { + var mes = lang.lang_version_platform + } else if (platform == 'linux') { + var mes = lang.lang_version_platform_linux + } else if (platform == 'darwin') { + var mes = lang.lang_version_platform_mac } Swal.fire({ - title: "Select your platform", + title: 'Select your platform', text: mes, - type: "info", + type: 'info', showCancelButton: true, - confirmButtonColor: "#3085d6", - cancelButtonColor: "#3085d6", + confirmButtonColor: '#3085d6', + cancelButtonColor: '#3085d6', confirmButtonText: lang.lang_no, cancelButtonText: lang.lang_yesno }).then(result => { //逆にしてる if (!result.value) { - localStorage.setItem("winstore", "winstore"); + localStorage.setItem('winstore', 'winstore') } else { - localStorage.setItem("winstore", "localinstall"); + localStorage.setItem('winstore', 'localinstall') } - localStorage.setItem("ver", ver); - show = true; - console.log("%c Thank you for your update🎉", "color: red;font-size:200%;"); + localStorage.setItem('ver', ver) + show = true + console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;') $(document).ready(function() { - $("#releasenote").modal("open"); - verp = ver.replace("(", ""); - verp = verp.replace(".", "-"); - verp = verp.replace(".", "-"); - verp = verp.replace("[", "-"); - verp = verp.replace("]", ""); - verp = verp.replace(")", ""); - verp = verp.replace(" ", "_"); - console.log("%c " + verp, "color: red;font-size:200%;"); - if (lang.language == "ja") { - $("#release-" + verp).show(); + $('#releasenote').modal('open') + verp = ver.replace('(', '') + verp = verp.replace('.', '-') + verp = verp.replace('.', '-') + verp = verp.replace('[', '-') + verp = verp.replace(']', '') + verp = verp.replace(')', '') + verp = verp.replace(' ', '_') + console.log('%c ' + verp, 'color: red;font-size:200%;') + if (lang.language == 'ja') { + $('#release-' + verp).show() } else { - $("#release-en").show(); + $('#release-en').show() } - }); - }); + }) + }) } function closeStart() { - $("#start").css("display", "none"); - var platform = localStorage.getItem("platform"); - var ver = localStorage.getItem("ver"); - storeDialog(platform, ver); + $('#start').css('display', 'none') + var platform = localStorage.getItem('platform') + var ver = localStorage.getItem('ver') + storeDialog(platform, ver) } diff --git a/app/js/platform/first.js b/app/js/platform/first.js index 565382e6..3e566845 100644 --- a/app/js/platform/first.js +++ b/app/js/platform/first.js @@ -161,8 +161,8 @@ $.mb_substr = function(str, begin, end) { var splitter = new GraphemeSplitter() var arr = splitter.splitGraphemes(str) var newarr = [] - for(var i = 0; i < arr.length; i++){ - if(i >= begin && i <= end){ + for (var i = 0; i < arr.length; i++) { + if (i >= begin && i <= end) { newarr.push(arr[i]) } } @@ -211,3 +211,62 @@ function escapeCsv(str) { } return result } +function statusModel(now) { + if(!now){ + var now = new Date().toString() + } + return { + id: '', + created_at: now, + in_reply_to_id: null, + in_reply_to_account_id: null, + sensitive: false, + spoiler_text: '', + visibility: 'public', + language: 'en', + uri: '', + url: '', + replies_count: 0, + reblogs_count: 0, + favourites_count: 0, + favourited: false, + reblogged: false, + muted: false, + bookmarked: false, + pinned: false, + content: '

No status here

', + reblog: null, + application: { + name: null, + website: null + }, + account: { + id: '', + username: '', + acct: '', + display_name: '', + locked: false, + bot: false, + created_at: now, + note: + '', + url: '', + avatar: '', + avatar_static: + '', + header: '', + header_static: '', + followers_count: 0, + following_count: 0, + statuses_count: 0, + last_status_at: now, + emojis: [], + fields: [] + }, + media_attachments: [], + mentions: [], + tags: [], + card: null, + poll: null + } +} diff --git a/app/js/tl/parse.js b/app/js/tl/parse.js index 95f54603..718bb984 100644 --- a/app/js/tl/parse.js +++ b/app/js/tl/parse.js @@ -227,6 +227,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) { } var noticeavatar = '' if (mix == 'notf') { + if(!toot.status) { + toot.status = statusModel(toot.created_at) + } if (gif == 'yes') { noticeavatar = toot.account.avatar } else { diff --git a/app/package.json b/app/package.json index b98d000d..cc9aa00d 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "thedesk", - "version": "20.0.5", + "version": "20.0.6", "description": "TheDesk is a Mastodon client for PC.", "repository": "https://github.com/cutls/TheDesk", "main": "main.js", diff --git a/app/view/make/index.sample.html b/app/view/make/index.sample.html index 534837de..0f516f10 100644 --- a/app/view/make/index.sample.html +++ b/app/view/make/index.sample.html @@ -762,28 +762,16 @@ HP
GitHub

-