thedesk/app/js/common/version.js

406 lines
11 KiB
JavaScript
Raw Permalink Normal View History

2018-01-28 23:22:43 +11:00
//バージョンチェッカー
2019-10-26 04:13:37 +11:00
function verck(ver, jp) {
2020-05-03 00:32:46 +10:00
console.log('%c Welcome😊 ' + ver, 'color: red;font-size:200%;')
2020-05-06 19:02:14 +10:00
$('body').addClass(localStorage.getItem('platform'))
2019-12-01 22:28:20 +11:00
var date = new Date()
2020-05-03 23:32:41 +10:00
var showVer = false
2019-12-01 22:28:20 +11:00
if (localStorage.getItem('ver') != ver && localStorage.getItem('winstore')) {
//ちょっと削除とリンク解析の都合上アレ(s)
//対象外のアプデ:storageが20の最初まで"Usamin (18.6.5)"
2019-12-01 22:28:20 +11:00
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++) {
2019-12-01 22:28:20 +11:00
localStorage.removeItem('card_' + i)
}
}
//ちょっと削除とリンク解析の都合上アレ(e)
2020-05-03 23:32:41 +10:00
showVer = true
2019-12-01 22:28:20 +11:00
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
2019-10-31 02:30:26 +11:00
$(document).ready(function() {
2020-05-06 19:09:00 +10:00
if (localStorage.getItem('winstore') && !pwa) {
2019-12-01 22:28:20 +11:00
$('#releasenote').modal('open')
2019-09-13 00:25:27 +10:00
}
2019-12-01 22:28:20 +11:00
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()
2019-05-19 17:39:30 +10:00
} else {
2019-12-01 22:28:20 +11:00
$('#release-en').show()
2019-03-16 16:05:04 +11:00
}
2019-12-01 22:28:20 +11:00
})
2018-05-26 02:37:35 +10:00
}
2019-12-01 22:28:20 +11:00
localStorage.setItem('ver', ver)
2020-05-03 23:32:41 +10:00
if (!showVer) {
console.log(showVer)
2019-12-01 22:28:20 +11:00
if (
date.getFullYear() * 100 + date.getMonth() + 1 >= localStorage.getItem('showSupportMe') ||
!localStorage.getItem('showSupportMe')
) {
2019-06-04 02:26:00 +10:00
if (date.getMonth() == 11) {
2019-12-01 22:28:20 +11:00
var yrs = date.getFullYear() + 1
var nextmonth = yrs * 100 + 1
2019-06-04 02:26:00 +10:00
} else {
2019-12-01 22:28:20 +11:00
var yrs = date.getFullYear()
var nextmonth = yrs * 100 + date.getMonth() + 2
2019-06-04 02:26:00 +10:00
}
2019-12-01 22:28:20 +11:00
if (lang.language != 'ja') {
$('#support-btm-ja').addClass('hide')
$('#support-btm-en').removeClass('hide')
2019-06-04 23:29:47 +10:00
}
2019-12-01 22:28:20 +11:00
localStorage.setItem('showSupportMe', nextmonth)
$('#support-btm').removeClass('hide')
$('#support-btm').animate(
2019-10-31 02:30:26 +11:00
{
2019-12-01 22:28:20 +11:00
bottom: '0'
2019-10-31 02:30:26 +11:00
},
{
duration: 300
}
2019-12-01 22:28:20 +11:00
)
2019-06-04 02:26:00 +10:00
}
}
2019-12-01 22:28:20 +11:00
var platform = localStorage.getItem('platform')
console.log('Your platform:' + platform)
2020-05-06 19:09:00 +10:00
if (!localStorage.getItem('winstore') && !pwa) {
2019-12-01 22:28:20 +11:00
$('#start').css('display', 'flex')
2019-05-19 17:39:30 +10:00
}
2019-12-01 22:28:20 +11:00
if (
localStorage.getItem('winstore') == 'brewcask' ||
localStorage.getItem('winstore') == 'snapcraft' ||
localStorage.getItem('winstore') == 'winstore'
) {
var winstore = true
2019-05-19 17:39:30 +10:00
} else {
2019-12-01 22:28:20 +11:00
var winstore = false
2019-05-19 17:39:30 +10:00
}
2019-12-01 22:28:20 +11:00
var l = 5
2018-07-07 03:51:48 +10:00
// 生成する文字列に含める文字セット
2019-12-01 22:28:20 +11:00
var c = 'abcdefghijklmnopqrstuvwxyz0123456789'
var cl = c.length
var r = ''
2019-05-19 17:39:30 +10:00
for (var i = 0; i < l; i++) {
2019-12-01 22:28:20 +11:00
r += c[Math.floor(Math.random() * cl)]
2018-03-14 05:31:31 +11:00
}
2019-12-01 22:28:20 +11:00
var start = 'https://thedesk.top/ver.json'
2018-01-28 23:22:43 +11:00
fetch(start, {
2019-12-01 22:28:20 +11:00
method: 'GET'
2019-10-31 02:30:26 +11:00
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
2019-12-01 22:28:20 +11:00
setLog(response.url, response.status, text)
})
2018-07-07 03:51:48 +10:00
}
2019-12-01 22:28:20 +11:00
return response.json()
2019-10-31 02:30:26 +11:00
})
.catch(function(error) {
2019-12-01 22:28:20 +11:00
todo(error)
setLog(start, 'JSON', error)
setLog(start, 'JSON', error)
console.error(error)
2019-10-31 02:30:26 +11:00
})
.then(function(mess) {
2019-12-01 22:28:20 +11:00
console.table(mess)
2019-10-31 02:30:26 +11:00
if (mess) {
//askjp_jp_ua: 2019年10月24日、mstdn.jpによるユーザーエージェントアクセス制限
2019-12-01 22:28:20 +11:00
if (jp && mess.jp_ua && !localStorage.getItem('askjp_jp_ua')) {
localStorage.setItem('askjp_jp_ua', true)
$('#askjp_jp_ua').removeClass('hide')
2019-10-31 02:30:26 +11:00
}
2019-12-01 22:28:20 +11:00
var platform = localStorage.getItem('platform')
if (platform == 'darwin') {
var newest = mess.desk_mac
2019-10-31 02:30:26 +11:00
} else {
2019-12-01 22:28:20 +11:00
var newest = mess.desk
2019-10-31 02:30:26 +11:00
}
if (newest == ver) {
2019-12-01 22:28:20 +11:00
todo(lang.lang_version_usever.replace('{{ver}}', mess.desk))
2019-10-31 02:30:26 +11:00
//betaかWinstoreならアプデチェックしない
2019-12-01 22:28:20 +11:00
} else if (ver.indexOf('beta') != -1 || winstore) {
2019-10-31 02:30:26 +11:00
} else {
2019-12-01 22:28:20 +11:00
localStorage.removeItem('instance')
if (localStorage.getItem('new-ver-skip')) {
if (localStorage.getItem('next-ver') != newest) {
postMessage(['sendSinmpleIpc', 'update'], '*')
2019-10-31 02:30:26 +11:00
} else {
2019-12-01 22:28:20 +11:00
console.warn(lang.lang_version_skipver)
todo(lang.lang_version_skipver)
2019-10-31 02:30:26 +11:00
}
2019-05-19 17:39:30 +10:00
} else {
2019-12-01 22:28:20 +11:00
postMessage(['sendSinmpleIpc', 'update'], '*')
2018-07-22 23:03:46 +10:00
}
}
2018-01-28 23:22:43 +11:00
}
2019-12-01 22:28:20 +11:00
})
if (!localStorage.getItem('last-notice-id')) {
localStorage.setItem('last-notice-id', 0)
2018-08-24 01:15:57 +10:00
}
2020-05-03 23:46:55 +10:00
var start = 'https://thedesk.top/notice/index.php?since_id=' + localStorage.getItem('last-notice-id')
2018-08-24 01:15:57 +10:00
fetch(start, {
2020-05-03 23:46:55 +10:00
method: 'GET',
cors: true
2019-10-31 02:30:26 +11:00
})
.then(function(response) {
if (!response.ok) {
response.text().then(function(text) {
2019-12-01 22:28:20 +11:00
setLog(response.url, response.status, text)
})
2019-10-31 02:30:26 +11:00
}
2019-12-01 22:28:20 +11:00
return response.json()
2019-10-31 02:30:26 +11:00
})
.catch(function(error) {
2019-12-01 22:28:20 +11:00
todo(error)
setLog(start, 'JSON', error)
console.error(error)
2019-10-31 02:30:26 +11:00
})
.then(function(mess) {
if (mess.length < 1) {
2019-12-01 22:28:20 +11:00
return false
2019-10-31 02:30:26 +11:00
} else {
2019-12-01 22:28:20 +11:00
var last = localStorage.getItem('last-notice-id')
localStorage.setItem('last-notice-id', mess[0].ID)
2019-10-31 02:30:26 +11:00
for (i = 0; i < mess.length; i++) {
2019-12-01 22:28:20 +11:00
var obj = mess[i]
2019-10-31 02:30:26 +11:00
if (obj.ID * 1 <= last) {
2019-12-01 22:28:20 +11:00
break
2019-10-31 02:30:26 +11:00
} else {
2019-12-01 22:28:20 +11:00
if (obj.type == 'textv2') {
2019-10-31 02:30:26 +11:00
if (~obj.languages.indexOf(lang.language)) {
2020-05-03 23:32:41 +10:00
var showVer = true
2019-12-01 22:28:20 +11:00
if (obj.toot != '') {
var toot =
'<button class="btn-flat toast-action" onclick="detEx(\'' +
obj.toot +
"','main')\">Show</button>"
2019-08-08 00:27:00 +10:00
} else {
2019-12-01 22:28:20 +11:00
var toot = ''
2019-08-08 00:27:00 +10:00
}
2019-12-01 22:28:20 +11:00
if (obj.ver != '') {
2019-10-31 02:30:26 +11:00
if (obj.ver == ver) {
2020-05-03 23:32:41 +10:00
showVer = true
2019-10-31 02:30:26 +11:00
} else {
2020-05-03 23:32:41 +10:00
showVer = false
2019-10-31 02:30:26 +11:00
}
}
2019-12-01 22:28:20 +11:00
if (obj.domain != '') {
var multi = localStorage.getItem('multi')
2019-10-31 02:30:26 +11:00
if (multi) {
2020-05-03 23:32:41 +10:00
showVer = false
2019-12-01 22:28:20 +11:00
var accts = JSON.parse(multi)
2019-10-31 02:30:26 +11:00
Object.keys(accts).forEach(function(key) {
2019-12-01 22:28:20 +11:00
var acct = accts[key]
2019-10-31 02:30:26 +11:00
if (acct.domain == obj.domain) {
2020-05-03 23:32:41 +10:00
showVer = true
2019-10-31 02:30:26 +11:00
}
2019-12-01 22:28:20 +11:00
})
2019-10-31 02:30:26 +11:00
}
}
2020-05-03 23:32:41 +10:00
if (showVer) {
2019-12-01 22:28:20 +11:00
M.toast({
html:
escapeHTML(obj.text) +
toot +
'<span class="sml grey-text">(スライドして消去)</span>',
displayLength: 86400
})
2019-08-08 00:27:00 +10:00
}
}
}
}
}
}
2019-12-01 22:28:20 +11:00
})
2019-08-08 00:27:00 +10:00
}
2019-12-01 22:28:20 +11:00
var infostreaming = false
2019-08-08 00:27:00 +10:00
function infowebsocket() {
2019-12-01 22:28:20 +11:00
infows = new WebSocket('wss://thedesk.top/ws/')
2019-10-31 02:30:26 +11:00
infows.onopen = function(mess) {
2019-12-01 22:28:20 +11:00
console.log([tlid, ':Connect Streaming Info:', mess])
infostreaming = true
}
2019-10-31 02:30:26 +11:00
infows.onmessage = function(mess) {
2019-12-01 22:28:20 +11:00
console.log([tlid, ':Receive Streaming:', JSON.parse(mess.data)])
var obj = JSON.parse(mess.data)
if (obj.type != 'counter') {
if (obj.type == 'textv2') {
2019-08-08 00:27:00 +10:00
if (~obj.languages.indexOf(lang.language)) {
2019-12-01 22:28:20 +11:00
localStorage.setItem('last-notice-id', obj.id)
2020-05-03 23:32:41 +10:00
var showVer = true
2019-12-01 22:28:20 +11:00
if (obj.toot != '') {
var toot =
'<button class="btn-flat toast-action" onclick="detEx(\'' +
obj.toot +
"','main')\">Show</button>"
2019-05-19 17:39:30 +10:00
} else {
2019-12-01 22:28:20 +11:00
var toot = ''
2018-08-24 01:15:57 +10:00
}
2019-12-01 22:28:20 +11:00
if (obj.ver != '') {
2019-06-15 02:01:07 +10:00
if (obj.ver == ver) {
2020-05-03 23:32:41 +10:00
showVer = true
2019-05-19 17:39:30 +10:00
} else {
2020-05-03 23:32:41 +10:00
showVer = false
2019-05-19 17:39:30 +10:00
}
}
2019-12-01 22:28:20 +11:00
if (obj.domain != '') {
var multi = localStorage.getItem('multi')
2019-05-19 17:39:30 +10:00
if (multi) {
2020-05-03 23:32:41 +10:00
showVer = false
2019-12-01 22:28:20 +11:00
var accts = JSON.parse(multi)
2019-10-31 02:30:26 +11:00
Object.keys(accts).forEach(function(key) {
2019-12-01 22:28:20 +11:00
var acct = accts[key]
2019-06-15 02:01:07 +10:00
if (acct.domain == obj.domain) {
2020-05-03 23:32:41 +10:00
showVer = true
2019-05-19 17:39:30 +10:00
}
2019-12-01 22:28:20 +11:00
})
2019-05-19 17:39:30 +10:00
}
}
2020-05-03 23:32:41 +10:00
if (showVer) {
2019-12-01 22:28:20 +11:00
console.log(obj.text)
console.log(escapeHTML(obj.text))
M.toast({
html:
escapeHTML(obj.text) +
toot +
'<span class="sml grey-text">(スライドして消去)</span>',
displayLength: 86400
})
2018-08-24 01:15:57 +10:00
}
}
}
2019-05-19 17:39:30 +10:00
} else {
2019-12-01 22:28:20 +11:00
$('#persons').text(obj.text)
2019-05-19 17:39:30 +10:00
}
2019-12-01 22:28:20 +11:00
}
2019-10-31 02:30:26 +11:00
infows.onerror = function(error) {
2019-12-01 22:28:20 +11:00
infostreaming = false
console.error('Error closing:info')
console.error(error)
return false
}
2019-10-31 02:30:26 +11:00
infows.onclose = function() {
2019-12-01 22:28:20 +11:00
infostreaming = false
console.error('Closing:info')
}
2019-03-23 01:10:23 +11:00
}
2019-10-31 02:30:26 +11:00
setInterval(function() {
2019-05-19 17:39:30 +10:00
if (!infostreaming) {
2019-12-01 22:28:20 +11:00
console.log('try to connect to base-streaming')
infowebsocket()
2019-03-23 01:10:23 +11:00
}
2019-12-01 22:28:20 +11:00
}, 10000)
2019-05-19 17:39:30 +10:00
function openRN() {
2019-12-01 22:28:20 +11:00
$('#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()
2019-05-19 17:39:30 +10:00
} else {
2019-12-01 22:28:20 +11:00
$('#release-en').show()
2019-05-19 16:17:05 +10:00
}
2019-06-04 02:26:00 +10:00
}
function closeSupport() {
2019-12-01 22:28:20 +11:00
$('#support-btm').animate(
2019-10-31 02:30:26 +11:00
{
2019-12-01 22:28:20 +11:00
bottom: '-300px'
2019-10-31 02:30:26 +11:00
},
{
duration: 300,
complete: function() {
2019-12-01 22:28:20 +11:00
$('#support-btm').addClass('hide')
2019-06-04 02:26:00 +10:00
}
2019-10-31 02:30:26 +11:00
}
2019-12-01 22:28:20 +11:00
)
2019-06-26 00:15:52 +10:00
}
function storeDialog(platform, ver) {
if($('body').hasClass('accessibility')) return false
2019-12-01 22:28:20 +11:00
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
2020-02-08 02:59:56 +11:00
} else {
var mes = false
2019-06-26 00:15:52 +10:00
}
2020-02-08 02:59:56 +11:00
if (mes) {
Swal.fire({
title: 'Select your platform',
text: mes,
type: 'info',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#3085d6',
confirmButtonText: lang.lang_no,
cancelButtonText: lang.lang_yesno
}).then(result => {
//逆にしてる
if (!result.value) {
localStorage.setItem('winstore', 'winstore')
2019-06-26 00:15:52 +10:00
} else {
2020-02-08 02:59:56 +11:00
localStorage.setItem('winstore', 'localinstall')
2019-06-26 00:15:52 +10:00
}
2020-02-08 02:59:56 +11:00
localStorage.setItem('ver', ver)
2020-05-03 23:32:41 +10:00
showVer = true
2020-05-06 19:09:00 +10:00
if(pwa) return false
2020-02-08 02:59:56 +11:00
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()
} else {
$('#release-en').show()
}
})
2019-12-01 22:28:20 +11:00
})
2020-02-08 02:59:56 +11:00
} else {
localStorage.setItem('ver', ver)
2020-05-03 23:32:41 +10:00
showVer = true
2020-02-08 02:59:56 +11:00
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
$(document).ready(function() {
2020-05-06 19:09:00 +10:00
if(pwa) return false
2020-02-08 02:59:56 +11:00
$('#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()
}
})
}
2019-09-13 00:25:27 +10:00
}
function closeStart() {
2019-12-01 22:28:20 +11:00
$('#start').css('display', 'none')
var platform = localStorage.getItem('platform')
var ver = localStorage.getItem('ver')
storeDialog(platform, ver)
2019-10-31 02:30:26 +11:00
}