diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index eb060ed..8d3a250 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -8,8 +8,16 @@
+
-
+
+
+
+
+
+
+
+
@@ -55,41 +63,41 @@
- {
- "keyToString": {
- "RunOnceActivity.OpenProjectViewOnStart": "true",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "full.screen.before.presentation.mode": "false",
- "git-widget-placeholder": "develop",
- "ignore.virus.scanning.warn.message": "true",
- "javascript.nodejs.core.library.configured.version": "20.16.0",
- "javascript.nodejs.core.library.typings.version": "20.14.15",
- "last_opened_file_path": "C:/Users/qpdgo/WebStormProjects/taehui/taehui-fe/src/app/www/avatar/drawing/qwilight",
- "list.type.of.created.stylesheet": "SCSS",
- "node.js.detected.package.eslint": "true",
- "node.js.detected.package.standard": "true",
- "node.js.detected.package.tslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "node.js.selected.package.standard": "",
- "node.js.selected.package.tslint": "(autodetect)",
- "nodejs_package_manager_path": "pnpm",
- "npm.taehui > dev.executor": "Debug",
- "npm.taehui > start.executor": "Run",
- "npm.taehui > start:taehui-www.executor": "Run",
- "prettierjs.PrettierConfiguration.Package": "C:\\Users\\qpdgo\\WebStormProjects\\taehui\\node_modules\\prettier",
- "run.code.analysis.last.selected.profile": "pProject Default",
- "settings.editor.selected.configurable": "terminal",
- "ts.external.directory.path": "C:\\Users\\qpdgo\\WebStormProjects\\taehui\\node_modules\\typescript\\lib",
- "vue.rearranger.settings.migration": "true"
+ dev.executor": "Run",
+ "npm.taehui > start.executor": "Run",
+ "npm.taehui > start:taehui-www.executor": "Run",
+ "prettierjs.PrettierConfiguration.Package": "C:\\Users\\qpdgo\\WebStormProjects\\taehui\\node_modules\\prettier",
+ "run.code.analysis.last.selected.profile": "pProject Default",
+ "settings.editor.selected.configurable": "terminal",
+ "ts.external.directory.path": "C:\\Users\\qpdgo\\WebStormProjects\\taehui\\node_modules\\typescript\\lib",
+ "vue.rearranger.settings.migration": "true"
}
-}
+}]]>
+
-
@@ -325,6 +333,7 @@
+
diff --git "a/taehui-fe/src/app/www/avatar/drawing/\133avatarID\135/route.ts" "b/taehui-fe/src/app/www/avatar/drawing/\133avatarID\135/route.ts"
index 1091739..6d6e394 100644
--- "a/taehui-fe/src/app/www/avatar/drawing/\133avatarID\135/route.ts"
+++ "b/taehui-fe/src/app/www/avatar/drawing/\133avatarID\135/route.ts"
@@ -1,10 +1,13 @@
import { getAvatarDrawing } from "@/app/www/logic/avatar";
import logIP from "@/app/www/media/logIP";
-import { DEFAULT_AVATAR_ASSET } from "@/app/www/utilities/Path";
+import Avatar from "@/assets/icons8-test-account-96.png";
export const GET = logIP(async (req, { params: { avatarID } }) => {
+ const avatar = await fetch(`http://localhost:3000${Avatar.src}`, {
+ method: "GET",
+ });
return new Response(
- (await getAvatarDrawing(avatarID)) ?? DEFAULT_AVATAR_ASSET,
+ (await getAvatarDrawing(avatarID)) ?? (await avatar.arrayBuffer()),
{
headers: {
["content-type"]: "image/png",
diff --git a/taehui-fe/src/app/www/avatar/drawing/route.ts b/taehui-fe/src/app/www/avatar/drawing/route.ts
index 6bcb812..4c8795b 100644
--- a/taehui-fe/src/app/www/avatar/drawing/route.ts
+++ b/taehui-fe/src/app/www/avatar/drawing/route.ts
@@ -2,15 +2,16 @@
import logIP from "@/app/www/media/logIP";
import validateMillis from "@/app/www/media/validateMillis";
import validateTotem from "@/app/www/media/validateTotem";
-import {
- AVATAR_ENTRY_PATH,
- DEFAULT_AVATAR_ASSET,
-} from "@/app/www/utilities/Path";
+import { AVATAR_ENTRY_PATH } from "@/app/www/utilities/Path";
import { writeFile } from "fs/promises";
import { join } from "path";
+import Avatar from "@/assets/icons8-test-account-96.png";
export const GET = logIP(async () => {
- return new Response(DEFAULT_AVATAR_ASSET, {
+ const avatar = await fetch(`http://localhost:3000${Avatar.src}`, {
+ method: "GET",
+ });
+ return new Response(await avatar.arrayBuffer(), {
headers: {
["content-type"]: "image/png",
},
diff --git a/taehui-fe/src/app/www/logic/avatar.ts b/taehui-fe/src/app/www/logic/avatar.ts
index 0d44db9..0f53d96 100644
--- a/taehui-fe/src/app/www/logic/avatar.ts
+++ b/taehui-fe/src/app/www/logic/avatar.ts
@@ -75,7 +75,7 @@
if (avatarCipherModified) {
await wipe(totem);
try {
- await fetch("http://localhost:8300/totem", {
+ await fetch("http://localhost:4003/totem", {
method: "PATCH",
body: avatarID,
});
@@ -144,7 +144,7 @@
export const doInvalidateDrawing = async (avatarID: string) => {
try {
- await fetch("http://localhost:8300/drawing", {
+ await fetch("http://localhost:4003/drawing", {
method: "PATCH",
body: avatarID,
});
diff --git a/taehui-fe/src/app/www/logic/essay.ts b/taehui-fe/src/app/www/logic/essay.ts
index a1cfc69..fccb0b1 100644
--- a/taehui-fe/src/app/www/logic/essay.ts
+++ b/taehui-fe/src/app/www/logic/essay.ts
@@ -4,10 +4,10 @@
getFileNames as dbGetFileNames,
getForum,
getLatestEssays as dbGetLatestEssays,
+ handleStatementUnit,
postEssay as dbPostEssay,
postEssayHit,
postFileNames,
- ta,
wipeEssay as dbWipeEssay,
wipeFileNames,
} from "@/app/www/system/DB";
@@ -52,7 +52,7 @@
return (
title &&
text &&
- ta(async (db) => {
+ handleStatementUnit(async (db) => {
if (await dbModifyEssay(db, essayID, avatarID, title, text, level)) {
const lastFileNames = await dbGetFileNames(db, essayID);
const fileNames = getFileNames(text);
@@ -81,7 +81,7 @@
avatarID: string,
level: number,
) => {
- return ta(async (db) => {
+ return handleStatementUnit(async (db) => {
const fileNames = await dbGetFileNames(db, essayID);
if (await dbWipeEssay(essayID, avatarID, level)) {
await wipeFiles(fileNames);
@@ -123,7 +123,7 @@
text: string,
) => {
return title && text
- ? await ta(async (db) => {
+ ? await handleStatementUnit(async (db) => {
const forum = await getForum(db, forumID);
if (forum) {
if (forum.level <= level) {
diff --git a/taehui-fe/src/app/www/logic/forum.ts b/taehui-fe/src/app/www/logic/forum.ts
index 8a1ac6e..70f6bf9 100644
--- a/taehui-fe/src/app/www/logic/forum.ts
+++ b/taehui-fe/src/app/www/logic/forum.ts
@@ -2,7 +2,7 @@
getEssayCount,
getEssays as dbGetEssays,
getForum,
- ta,
+ handleStatementUnit,
} from "@/app/www/system/DB";
import { getLanguage } from "@/app/www/utilities/Utility";
@@ -11,7 +11,7 @@
language: string,
page: number,
) => {
- return ta(async (db) => {
+ return handleStatementUnit(async (db) => {
const forum = await getForum(db, forumID);
if (forum) {
return {
diff --git a/taehui-fe/src/app/www/system/DB.ts b/taehui-fe/src/app/www/system/DB.ts
index 61c4ac2..460b65f 100644
--- a/taehui-fe/src/app/www/system/DB.ts
+++ b/taehui-fe/src/app/www/system/DB.ts
@@ -17,7 +17,7 @@
}
Logger.info("Loaded DB");
-await ta(async (db) => {
+await handleStatementUnit(async (db) => {
await db.query(`CREATE TABLE IF NOT EXISTS tn_avatar (
Avatar_ID VARCHAR(20),
Avatar_Cipher TEXT,
@@ -138,7 +138,9 @@
);
}
-export async function ta(onHandle: (db: Connection) => Promise) {
+export async function handleStatementUnit(
+ onHandle: (db: Connection) => Promise,
+) {
return getDB(async (db) => {
try {
await db.beginTransaction();
@@ -224,7 +226,7 @@
fax: string,
avatarIntro: string,
) {
- return ta(async (db) => {
+ return handleStatementUnit(async (db) => {
const defaultAvatarCipher = (
await db.query<{ Avatar_Cipher: string }[]>(
`SELECT Avatar_Cipher
@@ -505,7 +507,7 @@
}
export async function wipeFileNames(fileNames: string[]) {
- await ta(async (db) => {
+ await handleStatementUnit(async (db) => {
for await (const fileName of fileNames) {
await db.query(
`DELETE
diff --git a/taehui-fe/src/app/www/system/Logger.ts b/taehui-fe/src/app/www/system/Logger.ts
index 81cf812..e2c082b 100644
--- a/taehui-fe/src/app/www/system/Logger.ts
+++ b/taehui-fe/src/app/www/system/Logger.ts
@@ -1,4 +1,4 @@
-import { TAEHUI_ENTRY_PATH } from "@/app/www/utilities/Path";
+import { EVENT_ENTRY_PATH } from "@/app/www/utilities/Path";
import { join } from "path";
import { createLogger, format, transports } from "winston";
import "winston-daily-rotate-file";
@@ -16,16 +16,13 @@
format: defaultFormat,
transports: [
new transports.DailyRotateFile({
- filename: join(TAEHUI_ENTRY_PATH, "%DATE%.log"),
+ filename: join(EVENT_ENTRY_PATH, "%DATE%.log"),
zippedArchive: true,
}),
+ new transports.Console({
+ format: defaultFormat,
+ }),
],
});
-logger.add(
- new transports.Console({
- format: defaultFormat,
- }),
-);
-
export default logger;
diff --git a/taehui-fe/src/app/www/utilities/Path.ts b/taehui-fe/src/app/www/utilities/Path.ts
index 9782789..36233e6 100644
--- a/taehui-fe/src/app/www/utilities/Path.ts
+++ b/taehui-fe/src/app/www/utilities/Path.ts
@@ -1,15 +1,7 @@
-import { readFileSync } from "fs";
import { join } from "path";
const DB_ENTRY_PATH = join(process.env.DATA as string, "DB");
export const ESSAY_ENTRY_PATH = join(DB_ENTRY_PATH, "Essay");
export const AVATAR_ENTRY_PATH = join(DB_ENTRY_PATH, "Avatar");
-const EVENT_ENTRY_PATH = join(process.env.DATA as string, "Event");
-export const TAEHUI_ENTRY_PATH = join(EVENT_ENTRY_PATH, "Taehui");
-
-const SYSTEM_ENTRY_PATH = join(process.env.DATA as string, "System");
-export const ASSETS_ENTRY_PATH = join(SYSTEM_ENTRY_PATH, "Assets");
-export const DEFAULT_AVATAR_ASSET = readFileSync(
- join(ASSETS_ENTRY_PATH, "Avatar.png"),
-);
+export const EVENT_ENTRY_PATH = join(process.env.DATA as string, "Event");
diff --git a/taehui-fe/src/assets/icons8-test-account-96.png b/taehui-fe/src/assets/icons8-test-account-96.png
new file mode 100644
index 0000000..20d28e9
--- /dev/null
+++ b/taehui-fe/src/assets/icons8-test-account-96.png
Binary files differ