diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2025-05-12 00:23:59 -0400 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2025-05-12 21:48:21 -0400 |
| commit | e7ee2cc398dd1bf9d04c30ebacff85c113714d15 (patch) | |
| tree | 36ccce4f4ed2c783a5492ca8c4354bba559fe47d /packages/backend/src | |
| parent | merge: Add "is from local bubble instance" role condition (!1011) (diff) | |
| download | sharkey-e7ee2cc398dd1bf9d04c30ebacff85c113714d15.tar.gz sharkey-e7ee2cc398dd1bf9d04c30ebacff85c113714d15.tar.bz2 sharkey-e7ee2cc398dd1bf9d04c30ebacff85c113714d15.zip | |
add configurable timeout for note translations
Diffstat (limited to 'packages/backend/src')
4 files changed, 18 insertions, 0 deletions
diff --git a/packages/backend/src/models/Meta.ts b/packages/backend/src/models/Meta.ts index 78b3175458..5292480142 100644 --- a/packages/backend/src/models/Meta.ts +++ b/packages/backend/src/models/Meta.ts @@ -382,6 +382,12 @@ export class MiMeta { }) public swPrivateKey: string | null; + @Column('integer', { + default: 5000, + comment: 'Timeout in milliseconds for translation API requests', + }) + public translationTimeout: number; + @Column('varchar', { length: 1024, nullable: true, diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts index f059a3ed4d..13022f43a0 100644 --- a/packages/backend/src/server/api/endpoints/admin/meta.ts +++ b/packages/backend/src/server/api/endpoints/admin/meta.ts @@ -445,6 +445,10 @@ export const meta = { type: 'string', optional: false, nullable: true, }, + translationTimeout: { + type: 'number', + optional: false, nullable: false, + }, deeplAuthKey: { type: 'string', optional: false, nullable: true, @@ -723,6 +727,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- objectStorageUseProxy: instance.objectStorageUseProxy, objectStorageSetPublicRead: instance.objectStorageSetPublicRead, objectStorageS3ForcePathStyle: instance.objectStorageS3ForcePathStyle, + translationTimeout: instance.translationTimeout, deeplAuthKey: instance.deeplAuthKey, deeplIsPro: instance.deeplIsPro, deeplFreeMode: instance.deeplFreeMode, diff --git a/packages/backend/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts index eb73c4b616..090681c134 100644 --- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts +++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts @@ -103,6 +103,7 @@ export const paramDef = { type: 'string', }, }, + translationTimeout: { type: 'number' }, deeplAuthKey: { type: 'string', nullable: true }, deeplIsPro: { type: 'boolean' }, deeplFreeMode: { type: 'boolean' }, @@ -560,6 +561,10 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- set.objectStorageS3ForcePathStyle = ps.objectStorageS3ForcePathStyle; } + if (ps.translationTimeout !== undefined) { + set.translationTimeout = ps.translationTimeout; + } + if (ps.deeplAuthKey !== undefined) { if (ps.deeplAuthKey === '') { set.deeplAuthKey = null; diff --git a/packages/backend/src/server/api/endpoints/notes/translate.ts b/packages/backend/src/server/api/endpoints/notes/translate.ts index 39119bc206..843a4ef01c 100644 --- a/packages/backend/src/server/api/endpoints/notes/translate.ts +++ b/packages/backend/src/server/api/endpoints/notes/translate.ts @@ -116,6 +116,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- Accept: 'application/json, */*', }, body: params.toString(), + timeout: this.serverSettings.translationTimeout, }); if (this.serverSettings.deeplAuthKey) { const json = (await res.json()) as { @@ -165,6 +166,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- format: 'text', api_key: this.serverSettings.libreTranslateKey ?? '', }), + timeout: this.serverSettings.translationTimeout, }); const json = (await res.json()) as { |