diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 10de2effc..76503425c 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.18.3", + "version": "2.18.4", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index 1f8f125d4..bbf31731d 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -130,6 +130,7 @@ export class ProblemCategoryHandler extends ProblemHandler { this.response.body = { path, page, pcount, ppcount, pdocs, psdict, category: category.join('+'), }; + this.extraTitleContent = category.join('+'); } } @@ -180,6 +181,7 @@ export class ProblemDetailHandler extends ProblemHandler { [this.pdoc.title, null, true], ], }; + this.extraTitleContent = this.pdoc.title; } // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/packages/hydrooj/src/handler/user.ts b/packages/hydrooj/src/handler/user.ts index 2686a68eb..49a26b200 100644 --- a/packages/hydrooj/src/handler/user.ts +++ b/packages/hydrooj/src/handler/user.ts @@ -192,6 +192,7 @@ class UserDetailHandler extends Handler { this.response.body = { isSelfProfile, udoc, sdoc, rdocs, pdocs, pcount, pdict, path, }; + this.extraTitleContent = udoc.uname; } } diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index 632edbbe0..e87c0f9f5 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -251,6 +251,7 @@ export class HandlerCommon { user: User; session: Record; request: Record; + extraTitleContent?: string; async limitRate(op: string, periodSecs: number, maxOperations: number) { await opcount.inc(op, this.request.ip, periodSecs, maxOperations); @@ -262,6 +263,7 @@ export class HandlerCommon { } renderTitle(str: string) { + if (this.extraTitleContent) return `${this.translate(str)} - ${this.extraTitleContent} - ${system.get('server.name')}`; return `${this.translate(str)} - ${system.get('server.name')}`; }