diff --git a/html/src/app.js b/html/src/app.js index 776b9ad4..95576bca 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -7586,12 +7586,11 @@ speechSynthesis.getVoices(); await database.initTables(); await this.resetGameLog(); var location = ''; - var pushToTable = false; for (var gameLog of await gameLogService.getAll()) { if (gameLog.type === 'location') { location = gameLog.location; } - this.addGameLogEntry(gameLog, location, pushToTable); + this.addGameLogEntry(gameLog, location); } this.getGameLogTable(); }; @@ -7610,12 +7609,11 @@ speechSynthesis.getVoices(); setTimeout(resolve, 10000); }); var location = ''; - var pushToTable = true; for (var gameLog of await gameLogService.getAll()) { if (gameLog.type === 'location') { location = gameLog.location; } - this.addGameLogEntry(gameLog, location, pushToTable); + this.addGameLogEntry(gameLog, location); } }; @@ -7626,14 +7624,13 @@ speechSynthesis.getVoices(); rawLogs[2], rawLogs.slice(3) ); - var pushToTable = true; - this.addGameLogEntry(gameLog, this.lastLocation.location, pushToTable); + this.addGameLogEntry(gameLog, this.lastLocation.location); }; $app.data.lastLocationDestination = ''; $app.data.lastLocationDestinationTime = 0; - $app.methods.addGameLogEntry = function (gameLog, location, pushToTable) { + $app.methods.addGameLogEntry = function (gameLog, location) { var userId = ''; if (gameLog.userDisplayName) { for (var ref of API.cachedUsers.values()) { @@ -7747,7 +7744,7 @@ speechSynthesis.getVoices(); database.addGamelogPortalSpawnToDatabase(entry); break; case 'video-play': - this.addGameLogVideo(gameLog, location, userId, pushToTable); + this.addGameLogVideo(gameLog, location, userId); return; case 'api-request': var bias = Date.parse(gameLog.dt) + 60 * 1000; @@ -7775,7 +7772,7 @@ speechSynthesis.getVoices(); // VideoPlay(PyPyDance) "https://jd.pypy.moe/api/v1/videos/jr1NX4Jo8GE.mp4",0.1001,239.606,"0905 : [J-POP] 【まなこ】金曜日のおはよう 踊ってみた (vernities)" var type = gameLog.data.substr(0, gameLog.data.indexOf(' ')); if (type === 'VideoPlay(PyPyDance)') { - this.addGameLogPyPyDance(gameLog, location, pushToTable); + this.addGameLogPyPyDance(gameLog, location); } return; case 'notification': @@ -7794,18 +7791,13 @@ speechSynthesis.getVoices(); database.addGamelogEventToDatabase(entry); break; } - if (pushToTable && entry) { + if (entry) { this.queueGameLogNoty(entry); this.addGameLog(entry); } }; - $app.methods.addGameLogVideo = async function ( - gameLog, - location, - userId, - pushToTable - ) { + $app.methods.addGameLogVideo = async function (gameLog, location, userId) { var videoUrl = gameLog.videoUrl; var youtubeVideoId = ''; var videoId = ''; @@ -7860,20 +7852,11 @@ speechSynthesis.getVoices(); userId, videoPos }; - if (pushToTable) { - this.setNowPlaying(entry); - this.queueGameLogNoty(entry); - this.addGameLog(entry); - } - database.addGamelogVideoPlayToDatabase(entry); + this.setNowPlaying(entry); } }; - $app.methods.addGameLogPyPyDance = function ( - gameLog, - location, - pushToTable - ) { + $app.methods.addGameLogPyPyDance = function (gameLog, location) { var data = /VideoPlay\(PyPyDance\) "(.+?)",([\d.]+),([\d.]+),"(.+?)\s*(?:)?"/g.exec( gameLog.data @@ -7905,6 +7888,16 @@ speechSynthesis.getVoices(); } } } + if (videoUrl === this.nowPlaying.url) { + var entry = { + created_at: gameLog.dt, + videoUrl, + videoLength, + videoPos + }; + this.setNowPlaying(entry); + return; + } if (videoId === 'YouTube') { var entry = { dt: gameLog.dt, @@ -7913,7 +7906,7 @@ speechSynthesis.getVoices(); videoPos, videoId }; - this.addGameLogVideo(entry, location, userId, pushToTable); + this.addGameLogVideo(entry, location, userId); } else { var entry = { created_at: gameLog.dt, @@ -7927,12 +7920,7 @@ speechSynthesis.getVoices(); userId, videoPos }; - if (pushToTable) { - this.setNowPlaying(entry); - this.queueGameLogNoty(entry); - this.addGameLog(entry); - } - database.addGamelogVideoPlayToDatabase(entry); + this.setNowPlaying(entry); } }; @@ -7989,21 +7977,37 @@ speechSynthesis.getVoices(); }; $app.methods.setNowPlaying = function (ctx) { - var displayName = ''; - if (ctx.displayName) { - displayName = ` (${ctx.displayName})`; + if (this.nowPlaying.url !== ctx.videoUrl) { + this.queueGameLogNoty(ctx); + this.addGameLog(ctx); + database.addGamelogVideoPlayToDatabase(ctx); + + var displayName = ''; + if (ctx.displayName) { + displayName = ` (${ctx.displayName})`; + } + var name = `${ctx.videoName}${displayName}`; + this.nowPlaying = { + url: ctx.videoUrl, + name, + length: ctx.videoLength, + startTime: Date.parse(ctx.created_at) / 1000 - ctx.videoPos, + elapsed: 0, + percentage: 0, + remainingText: '' + }; + } else { + this.nowPlaying = { + ...this.nowPlaying, + length: ctx.videoLength, + startTime: Date.parse(ctx.created_at) / 1000 - ctx.videoPos, + elapsed: 0, + percentage: 0, + remainingText: '' + }; } - var name = `${ctx.videoName}${displayName}`; - this.nowPlaying = { - url: ctx.videoUrl, - name, - length: ctx.videoLength, - startTime: Date.parse(ctx.created_at) / 1000 - ctx.videoPos, - elapsed: 0, - percentage: 0, - remainingText: '' - }; - if (!this.nowPlaying.playing) { + this.updateVrNowPlaying(); + if (!this.nowPlaying.playing && ctx.videoLength > 0) { this.nowPlaying.playing = true; this.updateNowPlaying(); } @@ -8011,7 +8015,7 @@ speechSynthesis.getVoices(); $app.methods.updateNowPlaying = function () { var np = this.nowPlaying; - if (!np.url) { + if (!this.nowPlaying.playing) { this.nowPlaying.playing = false; return; } @@ -8201,8 +8205,10 @@ speechSynthesis.getVoices(); appId = '846232616054030376'; bigIcon = 'vr_dancing'; } - if (this.nowPlaying.playing) { + if (this.nowPlaying.name) { L.worldName = this.nowPlaying.name; + } + if (this.nowPlaying.playing) { Discord.SetTimestamps( Date.now(), (this.nowPlaying.startTime + this.nowPlaying.length) * 1000