diff options
| author | Shpuld Shpludson <shp@cock.li> | 2021-01-18 13:44:31 +0000 |
|---|---|---|
| committer | Shpuld Shpludson <shp@cock.li> | 2021-01-18 13:44:31 +0000 |
| commit | 320418d524a33c20d7d769c8d67a25be81f251ec (patch) | |
| tree | b15c3cb41b469e732db1060d9962ce80b10c9562 /src/services/entity_normalizer/entity_normalizer.service.js | |
| parent | a39866308cd7c8cb0d30a04a5215d1fae8bf8d47 (diff) | |
| parent | 8f55cb151c546eae56c782c2ed4b292b04950e03 (diff) | |
Merge branch 'rc/2.2.3' into 'master'
rc 2.2.3 to MASTER
See merge request pleroma/pleroma-fe!1328
Diffstat (limited to 'src/services/entity_normalizer/entity_normalizer.service.js')
| -rw-r--r-- | src/services/entity_normalizer/entity_normalizer.service.js | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js index b1e68df5..625f593e 100644 --- a/src/services/entity_normalizer/entity_normalizer.service.js +++ b/src/services/entity_normalizer/entity_normalizer.service.js @@ -1,6 +1,7 @@ import escape from 'escape-html' import parseLinkHeader from 'parse-link-header' import { isStatusNotification } from '../notification_utils/notification_utils.js' +import punycode from 'punycode.js' /** NOTICE! ** * Do not initialize UI-generated data here. @@ -197,6 +198,18 @@ export const parseUser = (data) => { output.rights = output.rights || {} output.notification_settings = output.notification_settings || {} + // Convert punycode to unicode + if (output.screen_name.includes('@')) { + const parts = output.screen_name.split('@') + let unicodeDomain = punycode.toUnicode(parts[1]) + if (unicodeDomain !== parts[1]) { + // Add some identifier so users can potentially spot spoofing attempts: + // lain.com and xn--lin-6cd.com would appear identical otherwise. + unicodeDomain = '🌏' + unicodeDomain + output.screen_name = [parts[0], unicodeDomain].join('@') + } + } + return output } |
