Configure moderation
This commit is contained in:
@@ -3,33 +3,88 @@ import {BskyAgent} from '@atproto/api'
|
||||
import {logger} from '#/logger'
|
||||
import {device} from '#/storage'
|
||||
|
||||
export const BR_LABELER = 'did:plc:ekitcvx7uwnauoqy5oest3hm'
|
||||
export const DE_LABELER = 'did:plc:r55ow3tocux5kafs5dq445fy'
|
||||
export const ADDITIONAL_LABELERS_MAP: {
|
||||
export const BR_LABELER = 'did:plc:ekitcvx7uwnauoqy5oest3hm' // Brazil
|
||||
export const DE_LABELER = 'did:plc:r55ow3tocux5kafs5dq445fy' // Germany
|
||||
export const RU_LABELER = 'did:plc:crm2agcxvvlj6hilnjdc4hox' // Russia
|
||||
export const UK_LABELER = 'did:plc:gvkp7euswjjrctjmqwhhfzif' // United Kingdom
|
||||
export const AU_LABELER = 'did:plc:dsynw7isrf2eqlhcjx3ffnmt' // Australia
|
||||
export const TR_LABELER = 'did:plc:cquoj7aozvmkud2gifeinkda' // Turkey
|
||||
export const JP_LABELER = 'did:plc:vhgppeyjwgrr37vm4v6ggd5a' // Japan
|
||||
export const ES_LABELER = 'did:plc:zlbbuj5nov4ixhvgl3bj47em' // Spain
|
||||
export const PK_LABELER = 'did:plc:zrp6a3tvprrsgawsbswbxu7m' // Pakistan
|
||||
export const IN_LABELER = 'did:plc:srr4rdvgzkbx6t7fxqtt6j5t' // India
|
||||
|
||||
/**
|
||||
* For all EU countries
|
||||
*/
|
||||
export const EU_LABELER = 'did:plc:z57lz5dhgz2dkjogoysm3vut'
|
||||
|
||||
const MODERATION_AUTHORITIES: {
|
||||
[countryCode: string]: string[]
|
||||
} = {
|
||||
BR: [BR_LABELER],
|
||||
DE: [DE_LABELER],
|
||||
BR: [BR_LABELER], // Brazil
|
||||
RU: [RU_LABELER], // Russia
|
||||
UK: [UK_LABELER], // United Kingdom
|
||||
AU: [AU_LABELER], // Australia
|
||||
TR: [TR_LABELER], // Turkey
|
||||
JP: [JP_LABELER], // Japan
|
||||
PK: [PK_LABELER], // Pakistan
|
||||
IN: [IN_LABELER], // India
|
||||
|
||||
// EU countries
|
||||
AT: [EU_LABELER], // Austria
|
||||
BE: [EU_LABELER], // Belgium
|
||||
BG: [EU_LABELER], // Bulgaria
|
||||
HR: [EU_LABELER], // Croatia
|
||||
CY: [EU_LABELER], // Cyprus
|
||||
CZ: [EU_LABELER], // Czech Republic
|
||||
DK: [EU_LABELER], // Denmark
|
||||
EE: [EU_LABELER], // Estonia
|
||||
FI: [EU_LABELER], // Finland
|
||||
FR: [EU_LABELER], // France
|
||||
DE: [EU_LABELER, DE_LABELER], // Germany
|
||||
GR: [EU_LABELER], // Greece
|
||||
HU: [EU_LABELER], // Hungary
|
||||
IE: [EU_LABELER], // Ireland
|
||||
IT: [EU_LABELER], // Italy
|
||||
LV: [EU_LABELER], // Latvia
|
||||
LT: [EU_LABELER], // Lithuania
|
||||
LU: [EU_LABELER], // Luxembourg
|
||||
MT: [EU_LABELER], // Malta
|
||||
NL: [EU_LABELER], // Netherlands
|
||||
PL: [EU_LABELER], // Poland
|
||||
PT: [EU_LABELER], // Portugal
|
||||
RO: [EU_LABELER], // Romania
|
||||
SK: [EU_LABELER], // Slovakia
|
||||
SI: [EU_LABELER], // Slovenia
|
||||
ES: [EU_LABELER, ES_LABELER], // Spain
|
||||
SE: [EU_LABELER], // Sweden
|
||||
}
|
||||
export const ALL_ADDITIONAL_LABELERS = Object.values(
|
||||
ADDITIONAL_LABELERS_MAP,
|
||||
).flat()
|
||||
export const NON_CONFIGURABLE_LABELERS = [BR_LABELER, DE_LABELER]
|
||||
|
||||
const MODERATION_AUTHORITIES_DIDS = Array.from(
|
||||
new Set(Object.values(MODERATION_AUTHORITIES).flat()),
|
||||
)
|
||||
|
||||
export function isNonConfigurableModerationAuthority(did: string) {
|
||||
return NON_CONFIGURABLE_LABELERS.includes(did)
|
||||
return MODERATION_AUTHORITIES_DIDS.includes(did)
|
||||
}
|
||||
|
||||
export function configureAdditionalModerationAuthorities() {
|
||||
const geolocation = device.get(['geolocation'])
|
||||
let additionalLabelers: string[] = ALL_ADDITIONAL_LABELERS
|
||||
// default to all
|
||||
let additionalLabelers: string[] = MODERATION_AUTHORITIES_DIDS
|
||||
|
||||
if (geolocation?.countryCode) {
|
||||
additionalLabelers = ADDITIONAL_LABELERS_MAP[geolocation.countryCode] ?? []
|
||||
// overwrite with only those necessary
|
||||
additionalLabelers = MODERATION_AUTHORITIES[geolocation.countryCode] ?? []
|
||||
} else {
|
||||
logger.info(`no geolocation, cannot apply mod authorities`)
|
||||
}
|
||||
|
||||
if (__DEV__) {
|
||||
additionalLabelers = []
|
||||
}
|
||||
|
||||
const appLabelers = Array.from(
|
||||
new Set([...BskyAgent.appLabelers, ...additionalLabelers]),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user