From f252abc7a7c7b75338a1ac35a8ef57703095e2ce Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Wed, 22 May 2024 16:01:09 -0300 Subject: [PATCH 1/5] feat: change column type to datetime --- src/main/entity/game.entity.ts | 2 +- src/main/services/process-watcher.ts | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/entity/game.entity.ts b/src/main/entity/game.entity.ts index 91e19ea6..d6362928 100644 --- a/src/main/entity/game.entity.ts +++ b/src/main/entity/game.entity.ts @@ -59,7 +59,7 @@ export class Game { @Column("int", { default: 0 }) bytesDownloaded: number; - @Column("text", { nullable: true }) + @Column("datetime", { nullable: true }) lastTimePlayed: Date | null; @Column("float", { default: 0 }) diff --git a/src/main/services/process-watcher.ts b/src/main/services/process-watcher.ts index 16646934..65819502 100644 --- a/src/main/services/process-watcher.ts +++ b/src/main/services/process-watcher.ts @@ -56,10 +56,7 @@ export const startProcessWatcher = async () => { await gameRepository.update(game.id, { playTimeInMilliseconds: game.playTimeInMilliseconds + delta, - }); - - gameRepository.update(game.id, { - lastTimePlayed: new Date().toUTCString(), + lastTimePlayed: new Date(), }); } From 85cb2a4cc8dcc3b0350ed46a2768fd9007ce4549 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Mon, 27 May 2024 00:01:26 -0300 Subject: [PATCH 2/5] feat: add migration --- ...76027208-alter_lastTimePlayed_to_datime.ts | 48 +++++++++++++++++++ src/main/migrations/index.ts | 6 ++- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts diff --git a/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts b/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts new file mode 100644 index 00000000..403de539 --- /dev/null +++ b/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts @@ -0,0 +1,48 @@ +import { Game } from "@main/entity"; +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class AlterLastTimePlayedToDatime1716776027208 + implements MigrationInterface +{ + public async up(queryRunner: QueryRunner): Promise { + // 2024-05-27 02:08:17 + // Mon, 27 May 2024 02:08:17 GMT + const updateLastTimePlayedValues = ` + UPDATE game SET lastTimePlayed = (SELECT + SUBSTR(lastTimePlayed, 13, 4) || '-' || -- Ano + CASE SUBSTR(lastTimePlayed, 9, 3) + WHEN 'Jan' THEN '01' + WHEN 'Feb' THEN '02' + WHEN 'Mar' THEN '03' + WHEN 'Apr' THEN '04' + WHEN 'May' THEN '05' + WHEN 'Jun' THEN '06' + WHEN 'Jul' THEN '07' + WHEN 'Aug' THEN '08' + WHEN 'Sep' THEN '09' + WHEN 'Oct' THEN '10' + WHEN 'Nov' THEN '11' + WHEN 'Dec' THEN '12' + END || '-' || -- Mês + SUBSTR(lastTimePlayed, 6, 2) || ' ' || -- Dia + SUBSTR(lastTimePlayed, 18, 8) -- Hora; + FROM game) + WHERE lastTimePlayed IS NOT NULL; + `; + + await queryRunner.query(updateLastTimePlayedValues); + } + + public async down(queryRunner: QueryRunner): Promise { + const queryBuilder = queryRunner.manager.createQueryBuilder(Game, "game"); + + const result = await queryBuilder.getMany(); + + for (const game of result) { + if (!game.lastTimePlayed) continue; + await queryRunner.query( + `UPDATE game set lastTimePlayed = '${game.lastTimePlayed.toUTCString()}' WHERE id = ${game.id};` + ); + } + } +} diff --git a/src/main/migrations/index.ts b/src/main/migrations/index.ts index 65061fac..c0c96e45 100644 --- a/src/main/migrations/index.ts +++ b/src/main/migrations/index.ts @@ -1,3 +1,7 @@ import { FixRepackUploadDate1715900413313 } from "./1715900413313-fix_repack_uploadDate"; +import { AlterLastTimePlayedToDatime1716776027208 } from "./1716776027208-alter_lastTimePlayed_to_datime"; -export default [FixRepackUploadDate1715900413313]; +export default [ + FixRepackUploadDate1715900413313, + AlterLastTimePlayedToDatime1716776027208, +]; From 05bef7f80cba3037f0f823ff5d2edadc140c1c00 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Mon, 27 May 2024 00:34:17 -0300 Subject: [PATCH 3/5] update sql comments --- .../1716776027208-alter_lastTimePlayed_to_datime.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts b/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts index 403de539..5cca251e 100644 --- a/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts +++ b/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts @@ -9,7 +9,7 @@ export class AlterLastTimePlayedToDatime1716776027208 // Mon, 27 May 2024 02:08:17 GMT const updateLastTimePlayedValues = ` UPDATE game SET lastTimePlayed = (SELECT - SUBSTR(lastTimePlayed, 13, 4) || '-' || -- Ano + SUBSTR(lastTimePlayed, 13, 4) || '-' || -- Year CASE SUBSTR(lastTimePlayed, 9, 3) WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' @@ -23,9 +23,9 @@ export class AlterLastTimePlayedToDatime1716776027208 WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11' WHEN 'Dec' THEN '12' - END || '-' || -- Mês - SUBSTR(lastTimePlayed, 6, 2) || ' ' || -- Dia - SUBSTR(lastTimePlayed, 18, 8) -- Hora; + END || '-' || -- Month + SUBSTR(lastTimePlayed, 6, 2) || ' ' || -- Day + SUBSTR(lastTimePlayed, 18, 8) -- hh:mm:ss; FROM game) WHERE lastTimePlayed IS NOT NULL; `; From d6ea0d817e7fb20e0737ba1b9b1166830ab25a05 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Mon, 27 May 2024 18:51:45 -0300 Subject: [PATCH 4/5] user parameters on raw query --- .../migrations/1716776027208-alter_lastTimePlayed_to_datime.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts b/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts index 5cca251e..80382119 100644 --- a/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts +++ b/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts @@ -41,7 +41,8 @@ export class AlterLastTimePlayedToDatime1716776027208 for (const game of result) { if (!game.lastTimePlayed) continue; await queryRunner.query( - `UPDATE game set lastTimePlayed = '${game.lastTimePlayed.toUTCString()}' WHERE id = ${game.id};` + `UPDATE game set lastTimePlayed = ? WHERE id = ${game.id};`, + [game.lastTimePlayed.toUTCString()] ); } } From 7c1d9565ba2ae776485b021f0c72e33aea4f605e Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Mon, 27 May 2024 22:55:03 -0300 Subject: [PATCH 5/5] add missing interpolation xd --- .../1716776027208-alter_lastTimePlayed_to_datime.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts b/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts index 80382119..6a562915 100644 --- a/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts +++ b/src/main/migrations/1716776027208-alter_lastTimePlayed_to_datime.ts @@ -41,8 +41,8 @@ export class AlterLastTimePlayedToDatime1716776027208 for (const game of result) { if (!game.lastTimePlayed) continue; await queryRunner.query( - `UPDATE game set lastTimePlayed = ? WHERE id = ${game.id};`, - [game.lastTimePlayed.toUTCString()] + `UPDATE game set lastTimePlayed = ? WHERE id = ?;`, + [game.lastTimePlayed.toUTCString(), game.id] ); } }