summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorShittyKopper <shittykopper@w.on-t.work>2023-11-05 15:43:16 +0300
committerShittyKopper <shittykopper@w.on-t.work>2023-11-05 16:28:55 +0300
commit36c136cfd25e3166434705bd747312942c2b8bc0 (patch)
treea92bd462c336b23637df2fb69de3eb7bdfd5e071 /packages
parentupd: rip out AiService (diff)
downloadsharkey-36c136cfd25e3166434705bd747312942c2b8bc0.tar.gz
sharkey-36c136cfd25e3166434705bd747312942c2b8bc0.tar.bz2
sharkey-36c136cfd25e3166434705bd747312942c2b8bc0.zip
upd: remove more traces of sensitiveMediaDetection
kept the api endpoint props just to stay compatible with clients that expect them to be there. they are unused and won't get saved
Diffstat (limited to 'packages')
-rw-r--r--packages/backend/src/core/DriveService.ts27
-rw-r--r--packages/backend/src/core/FileInfoService.ts8
-rw-r--r--packages/backend/src/server/api/endpoints/admin/update-meta.ts16
-rw-r--r--packages/frontend/src/pages/admin/security.vue66
4 files changed, 2 insertions, 115 deletions
diff --git a/packages/backend/src/core/DriveService.ts b/packages/backend/src/core/DriveService.ts
index 3f38cf4a22..9b6187be4f 100644
--- a/packages/backend/src/core/DriveService.ts
+++ b/packages/backend/src/core/DriveService.ts
@@ -461,36 +461,12 @@ export class DriveService {
requestHeaders = null,
ext = null,
}: AddFileArgs): Promise<MiDriveFile> {
- let skipNsfwCheck = false;
const instance = await this.metaService.fetch();
const userRoleNSFW = user && (await this.roleService.getUserPolicies(user.id)).alwaysMarkNsfw;
- if (user == null) {
- skipNsfwCheck = true;
- } else if (userRoleNSFW) {
- skipNsfwCheck = true;
- }
- if (instance.sensitiveMediaDetection === 'none') skipNsfwCheck = true;
- if (user && instance.sensitiveMediaDetection === 'local' && this.userEntityService.isRemoteUser(user)) skipNsfwCheck = true;
- if (user && instance.sensitiveMediaDetection === 'remote' && this.userEntityService.isLocalUser(user)) skipNsfwCheck = true;
- const info = await this.fileInfoService.getFileInfo(path, {
- skipSensitiveDetection: skipNsfwCheck,
- sensitiveThreshold: // 感度が高いほどしきい値は低くすることになる
- instance.sensitiveMediaDetectionSensitivity === 'veryHigh' ? 0.1 :
- instance.sensitiveMediaDetectionSensitivity === 'high' ? 0.3 :
- instance.sensitiveMediaDetectionSensitivity === 'low' ? 0.7 :
- instance.sensitiveMediaDetectionSensitivity === 'veryLow' ? 0.9 :
- 0.5,
- sensitiveThresholdForPorn: 0.75,
- enableSensitiveMediaDetectionForVideos: instance.enableSensitiveMediaDetectionForVideos,
- });
+ const info = await this.fileInfoService.getFileInfo(path);
this.registerLogger.info(`${JSON.stringify(info)}`);
- // 現状 false positive が多すぎて実用に耐えない
- //if (info.porn && instance.disallowUploadWhenPredictedAsPorn) {
- // throw new IdentifiableError('282f77bf-5816-4f72-9264-aa14d8261a21', 'Detected as porn.');
- //}
-
// detect name
const detectedName = correctFilename(
// DriveFile.nameは256文字, validateFileNameは200文字制限であるため、
@@ -586,7 +562,6 @@ export class DriveService {
: false;
if (info.sensitive && profile!.autoSensitive) file.isSensitive = true;
- if (info.sensitive && instance.setSensitiveFlagAutomatically) file.isSensitive = true;
if (userRoleNSFW) file.isSensitive = true;
if (url !== null) {
diff --git a/packages/backend/src/core/FileInfoService.ts b/packages/backend/src/core/FileInfoService.ts
index 25487fa0fa..803f6908de 100644
--- a/packages/backend/src/core/FileInfoService.ts
+++ b/packages/backend/src/core/FileInfoService.ts
@@ -50,13 +50,7 @@ export class FileInfoService {
* Get file information
*/
@bindThis
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- public async getFileInfo(path: string, _opts: {
- skipSensitiveDetection: boolean;
- sensitiveThreshold?: number;
- sensitiveThresholdForPorn?: number;
- enableSensitiveMediaDetectionForVideos?: boolean;
- }): Promise<FileInfo> {
+ public async getFileInfo(path: string): Promise<FileInfo> {
const warnings = [] as string[];
const size = await this.getFileSize(path);
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 915021601a..efb6695d35 100644
--- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
@@ -292,22 +292,6 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
set.turnstileSecretKey = ps.turnstileSecretKey;
}
- if (ps.sensitiveMediaDetection !== undefined) {
- set.sensitiveMediaDetection = ps.sensitiveMediaDetection;
- }
-
- if (ps.sensitiveMediaDetectionSensitivity !== undefined) {
- set.sensitiveMediaDetectionSensitivity = ps.sensitiveMediaDetectionSensitivity;
- }
-
- if (ps.setSensitiveFlagAutomatically !== undefined) {
- set.setSensitiveFlagAutomatically = ps.setSensitiveFlagAutomatically;
- }
-
- if (ps.enableSensitiveMediaDetectionForVideos !== undefined) {
- set.enableSensitiveMediaDetectionForVideos = ps.enableSensitiveMediaDetectionForVideos;
- }
-
if (ps.enableBotTrending !== undefined) {
set.enableBotTrending = ps.enableBotTrending;
}
diff --git a/packages/frontend/src/pages/admin/security.vue b/packages/frontend/src/pages/admin/security.vue
index 1ff38548c9..f02fa1024d 100644
--- a/packages/frontend/src/pages/admin/security.vue
+++ b/packages/frontend/src/pages/admin/security.vue
@@ -21,49 +21,6 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkFolder>
<MkFolder>
- <template #icon><i class="ph-eye-slash ph-bold ph-lg"></i></template>
- <template #label>{{ i18n.ts.sensitiveMediaDetection }}</template>
- <template v-if="sensitiveMediaDetection === 'all'" #suffix>{{ i18n.ts.all }}</template>
- <template v-else-if="sensitiveMediaDetection === 'local'" #suffix>{{ i18n.ts.localOnly }}</template>
- <template v-else-if="sensitiveMediaDetection === 'remote'" #suffix>{{ i18n.ts.remoteOnly }}</template>
- <template v-else #suffix>{{ i18n.ts.none }}</template>
-
- <div class="_gaps_m">
- <span>{{ i18n.ts._sensitiveMediaDetection.description }}</span>
-
- <MkRadios v-model="sensitiveMediaDetection">
- <option value="none">{{ i18n.ts.none }}</option>
- <option value="all">{{ i18n.ts.all }}</option>
- <option value="local">{{ i18n.ts.localOnly }}</option>
- <option value="remote">{{ i18n.ts.remoteOnly }}</option>
- </MkRadios>
-
- <MkRange v-model="sensitiveMediaDetectionSensitivity" :min="0" :max="4" :step="1" :textConverter="(v) => `${v + 1}`">
- <template #label>{{ i18n.ts._sensitiveMediaDetection.sensitivity }}</template>
- <template #caption>{{ i18n.ts._sensitiveMediaDetection.sensitivityDescription }}</template>
- </MkRange>
-
- <MkSwitch v-model="enableSensitiveMediaDetectionForVideos">
- <template #label>{{ i18n.ts._sensitiveMediaDetection.analyzeVideos }}<span class="_beta">{{ i18n.ts.beta }}</span></template>
- <template #caption>{{ i18n.ts._sensitiveMediaDetection.analyzeVideosDescription }}</template>
- </MkSwitch>
-
- <MkSwitch v-model="setSensitiveFlagAutomatically">
- <template #label>{{ i18n.ts._sensitiveMediaDetection.setSensitiveFlagAutomatically }} ({{ i18n.ts.notRecommended }})</template>
- <template #caption>{{ i18n.ts._sensitiveMediaDetection.setSensitiveFlagAutomaticallyDescription }}</template>
- </MkSwitch>
-
- <!-- 現状 false positive が多すぎて実用に耐えない
- <MkSwitch v-model="disallowUploadWhenPredictedAsPorn">
- <template #label>{{ i18n.ts._sensitiveMediaDetection.disallowUploadWhenPredictedAsPorn }}</template>
- </MkSwitch>
- -->
-
- <MkButton primary @click="save"><i class="ph-floppy-disk ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
- </div>
- </MkFolder>
-
- <MkFolder>
<template #label>Active Email Validation</template>
<template v-if="enableActiveEmailValidation" #suffix>Enabled</template>
<template v-else #suffix>Disabled</template>
@@ -126,10 +83,6 @@ let summalyProxy: string = $ref('');
let enableHcaptcha: boolean = $ref(false);
let enableRecaptcha: boolean = $ref(false);
let enableTurnstile: boolean = $ref(false);
-let sensitiveMediaDetection: string = $ref('none');
-let sensitiveMediaDetectionSensitivity: number = $ref(0);
-let setSensitiveFlagAutomatically: boolean = $ref(false);
-let enableSensitiveMediaDetectionForVideos: boolean = $ref(false);
let enableIpLogging: boolean = $ref(false);
let enableActiveEmailValidation: boolean = $ref(false);
@@ -139,15 +92,6 @@ async function init() {
enableHcaptcha = meta.enableHcaptcha;
enableRecaptcha = meta.enableRecaptcha;
enableTurnstile = meta.enableTurnstile;
- sensitiveMediaDetection = meta.sensitiveMediaDetection;
- sensitiveMediaDetectionSensitivity =
- meta.sensitiveMediaDetectionSensitivity === 'veryLow' ? 0 :
- meta.sensitiveMediaDetectionSensitivity === 'low' ? 1 :
- meta.sensitiveMediaDetectionSensitivity === 'medium' ? 2 :
- meta.sensitiveMediaDetectionSensitivity === 'high' ? 3 :
- meta.sensitiveMediaDetectionSensitivity === 'veryHigh' ? 4 : 0;
- setSensitiveFlagAutomatically = meta.setSensitiveFlagAutomatically;
- enableSensitiveMediaDetectionForVideos = meta.enableSensitiveMediaDetectionForVideos;
enableIpLogging = meta.enableIpLogging;
enableActiveEmailValidation = meta.enableActiveEmailValidation;
}
@@ -155,16 +99,6 @@ async function init() {
function save() {
os.apiWithDialog('admin/update-meta', {
summalyProxy,
- sensitiveMediaDetection,
- sensitiveMediaDetectionSensitivity:
- sensitiveMediaDetectionSensitivity === 0 ? 'veryLow' :
- sensitiveMediaDetectionSensitivity === 1 ? 'low' :
- sensitiveMediaDetectionSensitivity === 2 ? 'medium' :
- sensitiveMediaDetectionSensitivity === 3 ? 'high' :
- sensitiveMediaDetectionSensitivity === 4 ? 'veryHigh' :
- 0,
- setSensitiveFlagAutomatically,
- enableSensitiveMediaDetectionForVideos,
enableIpLogging,
enableActiveEmailValidation,
}).then(() => {