diff options
Diffstat (limited to 'src/lib/labeling')
-rw-r--r-- | src/lib/labeling/const.ts | 50 | ||||
-rw-r--r-- | src/lib/labeling/helpers.ts | 19 |
2 files changed, 69 insertions, 0 deletions
diff --git a/src/lib/labeling/const.ts b/src/lib/labeling/const.ts new file mode 100644 index 000000000..8403fdf1a --- /dev/null +++ b/src/lib/labeling/const.ts @@ -0,0 +1,50 @@ +import {LabelPreferencesModel} from 'state/models/ui/preferences' + +export interface LabelValGroup { + id: keyof LabelPreferencesModel | 'illegal' | 'unknown' + title: string + values: string[] +} + +export const ILLEGAL_LABEL_GROUP: LabelValGroup = { + id: 'illegal', + title: 'Illegal Content', + values: ['csam', 'dmca-violation', 'nudity-nonconsentual'], +} + +export const UNKNOWN_LABEL_GROUP: LabelValGroup = { + id: 'unknown', + title: 'Unknown Label', + values: [], +} + +export const CONFIGURABLE_LABEL_GROUPS: Record< + keyof LabelPreferencesModel, + LabelValGroup +> = { + nsfw: { + id: 'nsfw', + title: 'Sexual Content', + values: ['porn', 'nudity', 'sexual'], + }, + gore: { + id: 'gore', + title: 'Violent / Bloody', + values: ['gore', 'self-harm', 'torture'], + }, + hate: { + id: 'hate', + title: 'Political Hate-Groups', + values: ['icon-kkk', 'icon-nazi', 'icon-confederate'], + }, + spam: { + id: 'spam', + title: 'Spam', + values: ['spam'], + }, + impersonation: { + id: 'impersonation', + title: 'Impersonation', + values: ['impersonation'], + }, +} diff --git a/src/lib/labeling/helpers.ts b/src/lib/labeling/helpers.ts new file mode 100644 index 000000000..b2057ff18 --- /dev/null +++ b/src/lib/labeling/helpers.ts @@ -0,0 +1,19 @@ +import { + LabelValGroup, + CONFIGURABLE_LABEL_GROUPS, + ILLEGAL_LABEL_GROUP, + UNKNOWN_LABEL_GROUP, +} from './const' + +export function getLabelValueGroup(labelVal: string): LabelValGroup { + let id: keyof typeof CONFIGURABLE_LABEL_GROUPS + for (id in CONFIGURABLE_LABEL_GROUPS) { + if (ILLEGAL_LABEL_GROUP.values.includes(labelVal)) { + return ILLEGAL_LABEL_GROUP + } + if (CONFIGURABLE_LABEL_GROUPS[id].values.includes(labelVal)) { + return CONFIGURABLE_LABEL_GROUPS[id] + } + } + return UNKNOWN_LABEL_GROUP +} |