Add splash screen

This commit is contained in:
cutls 2020-05-10 17:32:49 +09:00
parent a4582bb18a
commit 1b3e676b30
5 changed files with 86 additions and 35 deletions

View File

@ -28,7 +28,6 @@ The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.o
* [SVG 4095x4096](https://d2upiril6ywqp9.cloudfront.net/press/thedesk-fullcolor.svg) * [SVG 4095x4096](https://d2upiril6ywqp9.cloudfront.net/press/thedesk-fullcolor.svg)
* [ico 256x256](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ico) * [ico 256x256](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ico)
* [icns old](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.icns) * [icns old](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.icns)
* [Illustrator .ai](https://d2upiril6ywqp9.cloudfront.net/press/thedesk.ai)
The default sounds of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/) The default sounds of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/)

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -51,8 +51,35 @@ function isFile(file) {
} }
} }
function createWindow() { function createWindow() {
var lang_path = join(app.getPath('userData'), 'language')
if (isFile(lang_path)) {
var lang = fs.readFileSync(lang_path, 'utf8')
} else {
var langs = app.getLocale()
console.log(langs)
if (~langs.indexOf('ja')) {
lang = 'ja'
} else if (~langs.indexOf('de')) {
lang = 'de'
} else if (~langs.indexOf('cs')) {
lang = 'cs'
} else if (~langs.indexOf('bg')) {
lang = 'bg'
} else {
lang = 'en'
}
fs.mkdir(app.getPath('userData'), function (err) {
fs.writeFileSync(lang_path, lang)
})
}
if (!packaged) console.log('your lang:' + app.getLocale())
if (!packaged) console.log('launch:' + lang)
//Opening //Opening
const package = fs.readFileSync(__dirname + '/package.json') const package = fs.readFileSync(__dirname + '/package.json')
if(lang == 'ja') {
const maxims = JSON.parse(fs.readFileSync(__dirname + '/maxim.ja.json'))
var show = maxims[Math.floor(Math.random() * maxims.length)]
}
const data = JSON.parse(package) const data = JSON.parse(package)
const version = data.version const version = data.version
const codename = data.codename const codename = data.codename
@ -63,7 +90,7 @@ function createWindow() {
frame: false, frame: false,
resizable: false, resizable: false,
}) })
openingWindow.loadURL(`${__dirname}/opening.html?ver=${version}&codename=${codename}`) openingWindow.loadURL(`${__dirname}/opening.html?ver=${version}&codename=${codename}&maxim=${encodeURI(show)}`)
if (process.argv.indexOf('--dev') === -1) { if (process.argv.indexOf('--dev') === -1) {
var packaged = true var packaged = true
@ -89,7 +116,6 @@ function createWindow() {
var info_path = join(app.getPath('userData'), 'window-size.json') var info_path = join(app.getPath('userData'), 'window-size.json')
var max_info_path = join(app.getPath('userData'), 'max-window-size.json') var max_info_path = join(app.getPath('userData'), 'max-window-size.json')
var lang_path = join(app.getPath('userData'), 'language')
var ha_path = join(app.getPath('userData'), 'hardwareAcceleration') var ha_path = join(app.getPath('userData'), 'hardwareAcceleration')
var ua_path = join(app.getPath('userData'), 'useragent') var ua_path = join(app.getPath('userData'), 'useragent')
var frame_path = join(app.getPath('userData'), 'frame') var frame_path = join(app.getPath('userData'), 'frame')
@ -133,29 +159,6 @@ function createWindow() {
} catch { } catch {
var frame = true var frame = true
} }
if (isFile(lang_path)) {
var lang = fs.readFileSync(lang_path, 'utf8')
} else {
var langs = app.getLocale()
console.log(langs)
if (~langs.indexOf('ja')) {
lang = 'ja'
} else if (~langs.indexOf('de')) {
lang = 'de'
} else if (~langs.indexOf('cs')) {
lang = 'cs'
} else if (~langs.indexOf('bg')) {
lang = 'bg'
} else {
lang = 'en'
}
fs.mkdir(app.getPath('userData'), function (err) {
fs.writeFileSync(lang_path, lang)
})
}
if (!packaged) console.log('your lang:' + app.getLocale())
if (!packaged) console.log('launch:' + lang)
// メイン画面の表示。ウィンドウの幅、高さを指定できる // メイン画面の表示。ウィンドウの幅、高さを指定できる
var platform = process.platform var platform = process.platform
var bit = process.arch var bit = process.arch

41
app/maxim.ja.json Normal file
View File

@ -0,0 +1,41 @@
[
"TheDeskは自称ステイホームの必須アイテム",
"あと数秒でPCのファンが全力で回り始める",
"カラムの数だけ夢があるがネットワークは逼迫する",
"朝起きたらストリーミングが止まっていた…",
"誰も使ってない機能1: 未読管理",
"誰も使ってない機能2: スタンプ機能",
"TheDeskは重い(ダブルミーニング)",
"今日も生茶が美味しい(4ケース96本の在庫)",
"jQueryは死すべき(流れ弾)",
"なんでTheDeskのバージョン19は無いの",
"デレマス要素なくない?",
"今日も「TheDesk」でエゴサが捗る",
"開発者はTheDeskのヘビーユーザではない",
"アイコンは猫だが開発者は犬派",
"#TheDeskのアイコンは猫虐待",
"上のアニメーションからしてこの猫は完全に仮想化されている",
"TheDeskの歴史は2016年まで遡ることができる",
"WIP: Croudia, ネコ型SNS",
"リリース間隔は平均1桁日(昔1日に6回アプデを提供したせい)",
"node_modulesをignoreせずに上げてしまったせいでCode Frequencyが破壊された",
"TheDesk XSS Hunt をしなければならない()",
"毎月出る支援お願いしますダイアログで月初めを知る人 #いろいろな人",
"Integrated TLは目玉機能なので消せないが消せるものなら消したいくらい内部構造がヤバい",
"「アンケート」か「投票」か。「時間指定投稿」か「予約投稿」か",
"実装当初は言語を「関西弁」にするとお問い合わせフォームまで関西弁だった",
"Ctrl+Kでメニューが出ます",
"検索ボックスは入力後Enterで確定できる",
"開発者の推しカラーテーマはPolar Night",
"TheDeskのユーザーエージェントは毎回起動時に変わります。TheDeskと確定させることはできません",
"AppData/Roaming/TheDesk(Windows)の中にcutsom.cssを入れるとカスタムCSSを導入できます",
"環境設定の「ウィンドウフレーム」は「オフ」がおすすめ",
"各トゥートの右上の時刻表示を押すとトゥートのリンクがコピーされます",
"各トゥートの左下の公開範囲のアイコンを押すとそのトゥートの本文がコピーされますが挙動にバグがあります",
"TheDeskをMisskeyクライアントだと思って使ってはいけません",
"この迷文を追加したい場合はapp/maxim.ja.jsonを編集",
"本当はTheDesk 21.0.0(Mayu)専用のアイコンを用意していた",
"TheDesk 20.x.xと21.x.xではアイコンがちょっと違う",
"三大見てはいけないもの: TheDeskのコード、TheDeskのDevTool console、あと一つは",
"この画面がずっと出続けているのは多分yarn construct忘れてる"
]

View File

@ -28,8 +28,8 @@
position: relative; position: relative;
text-indent: -9999px; text-indent: -9999px;
width: 0.9em; width: 0.9em;
height: 1.5em; height: 0.9em;
margin: 0 1.6em; margin: 0 .9em;
} }
.loading:before, .loading:before,
.loading:after { .loading:after {
@ -37,17 +37,17 @@
content: '\x200B'; content: '\x200B';
display: inline-block; display: inline-block;
width: 0.9em; width: 0.9em;
height: 1.5em; height: 0.9em;
position: absolute; position: absolute;
top: 0; top: 0;
} }
.loading:before { .loading:before {
animation: throbber-loader 1000ms 150ms infinite ease-out; animation: throbber-loader 1000ms 150ms infinite ease-out;
left: -1.6em; left: -1.9em;
} }
.loading:after { .loading:after {
animation: throbber-loader 1000ms 450ms infinite ease-out; animation: throbber-loader 1000ms 450ms infinite ease-out;
right: -1.6em; right: -1.9em;
} }
@keyframes throbber-loader { @keyframes throbber-loader {
0% { 0% {
@ -64,6 +64,12 @@
a, a,
button { button {
-webkit-app-region: no-drag; -webkit-app-region: no-drag;
}
h1 {
margin: 0;
}
#maxim {
font-size: 0.7rem;
} }
</style> </style>
</head> </head>
@ -71,16 +77,18 @@
<body class="center" style="overflow: hidden;"> <body class="center" style="overflow: hidden;">
<img src="./img/desk-animation.svg" style="max-width: 62%;" /> <img src="./img/desk-animation.svg" style="max-width: 62%;" />
<h1>TheDesk</h1> <h1>TheDesk</h1>
<span class="loading"></span>
<div class="cp">
<span id="ver"></span><br /> <span id="ver"></span><br />
Copyright &copy; TheDesk 2018 <span class="loading"></span><br />
<div class="cp">
<span id="maxim"></span><br />
<script> <script>
if (location.search) { if (location.search) {
var m = location.search.match(/\?ver=([0-9.]+)&codename=([a-zA-Z]+)/) var m = location.search.match(/\?ver=([0-9.]+)&codename=([a-zA-Z]+)&maxim=(.+)/)
var ver = m[1] var ver = m[1]
var code = m[2] var code = m[2]
var maxim = m[3]
document.getElementById('ver').innerText = `${ver}(${code})` document.getElementById('ver').innerText = `${ver}(${code})`
document.getElementById('maxim').innerText = `${decodeURI(maxim)}`
} }
</script> </script>
</div> </div>