summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-08-24 13:19:21 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-08-24 13:19:21 +0900
commitd64e25e4490da7fc508230d92d277b1c5284b381 (patch)
tree5eb4f52484b100f59ee091664f5de9bb94c04ca5 /src
parentfix(server): use csp to imporve security (diff)
downloadsharkey-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.vue6
-rw-r--r--src/models/entities/meta.ts5
-rw-r--r--src/server/api/endpoints/admin/update-meta.ts8
-rw-r--r--src/server/api/endpoints/meta.ts2
-rw-r--r--src/server/api/endpoints/notes/translate.ts4
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',