diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-08-24 13:19:21 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-08-24 13:19:21 +0900 |
| commit | d64e25e4490da7fc508230d92d277b1c5284b381 (patch) | |
| tree | 5eb4f52484b100f59ee091664f5de9bb94c04ca5 /src | |
| parent | fix(server): use csp to imporve security (diff) | |
| download | sharkey-d64e25e4490da7fc508230d92d277b1c5284b381.tar.gz sharkey-d64e25e4490da7fc508230d92d277b1c5284b381.tar.bz2 sharkey-d64e25e4490da7fc508230d92d277b1c5284b381.zip | |
fix: support DeepL pro account
Fix #7648
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/pages/instance/other-settings.vue | 6 | ||||
| -rw-r--r-- | src/models/entities/meta.ts | 5 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/update-meta.ts | 8 | ||||
| -rw-r--r-- | src/server/api/endpoints/meta.ts | 2 | ||||
| -rw-r--r-- | src/server/api/endpoints/notes/translate.ts | 4 |
5 files changed, 24 insertions, 1 deletions
diff --git a/src/client/pages/instance/other-settings.vue b/src/client/pages/instance/other-settings.vue index 8002528931..4fa80b2b2c 100644 --- a/src/client/pages/instance/other-settings.vue +++ b/src/client/pages/instance/other-settings.vue @@ -12,6 +12,9 @@ <template #prefix><i class="fas fa-key"></i></template> DeepL Auth Key </FormInput> + <FormSwitch v-model:value="deeplIsPro"> + Pro account + </FormSwitch> </FormGroup> <FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> </FormSuspense> @@ -50,6 +53,7 @@ export default defineComponent({ }, summalyProxy: '', deeplAuthKey: '', + deeplIsPro: false, } }, @@ -62,11 +66,13 @@ export default defineComponent({ const meta = await os.api('meta', { detail: true }); this.summalyProxy = meta.summalyProxy; this.deeplAuthKey = meta.deeplAuthKey; + this.deeplIsPro = meta.deeplIsPro; }, save() { os.apiWithDialog('admin/update-meta', { summalyProxy: this.summalyProxy, deeplAuthKey: this.deeplAuthKey, + deeplIsPro: this.deeplIsPro, }).then(() => { fetchInstance(); }); diff --git a/src/models/entities/meta.ts b/src/models/entities/meta.ts index 2a0632c87c..6428aacdf1 100644 --- a/src/models/entities/meta.ts +++ b/src/models/entities/meta.ts @@ -319,6 +319,11 @@ export class Meta { }) public deeplAuthKey: string | null; + @Column('boolean', { + default: false, + }) + public deeplIsPro: boolean; + @Column('varchar', { length: 512, nullable: true diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts index 5962dba98a..46f30fef7d 100644 --- a/src/server/api/endpoints/admin/update-meta.ts +++ b/src/server/api/endpoints/admin/update-meta.ts @@ -149,6 +149,10 @@ export const meta = { validator: $.optional.nullable.str, }, + deeplIsPro: { + validator: $.optional.bool, + }, + enableTwitterIntegration: { validator: $.optional.bool, }, @@ -574,6 +578,10 @@ export default define(meta, async (ps, me) => { } } + if (ps.deeplIsPro !== undefined) { + set.deeplIsPro = ps.deeplIsPro; + } + await getConnection().transaction(async transactionalEntityManager => { const meta = await transactionalEntityManager.findOne(Meta, { order: { diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts index 1c87952f6a..3f422dff07 100644 --- a/src/server/api/endpoints/meta.ts +++ b/src/server/api/endpoints/meta.ts @@ -583,6 +583,8 @@ export default define(meta, async (ps, me) => { response.objectStorageUseProxy = instance.objectStorageUseProxy; response.objectStorageSetPublicRead = instance.objectStorageSetPublicRead; response.objectStorageS3ForcePathStyle = instance.objectStorageS3ForcePathStyle; + response.deeplAuthKey = instance.deeplAuthKey; + response.deeplIsPro = instance.deeplIsPro; } } diff --git a/src/server/api/endpoints/notes/translate.ts b/src/server/api/endpoints/notes/translate.ts index a5fdf70ce6..e4bc6bb060 100644 --- a/src/server/api/endpoints/notes/translate.ts +++ b/src/server/api/endpoints/notes/translate.ts @@ -61,7 +61,9 @@ export default define(meta, async (ps, user) => { params.append('text', note.text); params.append('target_lang', targetLang); - const res = await fetch('https://api-free.deepl.com/v2/translate', { + const endpoint = instance.deeplIsPro ? 'https://api.deepl.com/v2/translate' : 'https://api-free.deepl.com/v2/translate'; + + const res = await fetch(endpoint, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', |