diff options
| author | Shpuld Shpludson <shp@cock.li> | 2021-01-05 08:09:09 +0000 |
|---|---|---|
| committer | Shpuld Shpludson <shp@cock.li> | 2021-01-05 08:09:09 +0000 |
| commit | 3e7d1fbf23b5ca1b382381b49affc481404137da (patch) | |
| tree | e4c7dde4130783066d103512869118f60f569dae /src/services/entity_normalizer/entity_normalizer.service.js | |
| parent | bc23266d7087dca0653097fe48ae9eba3f6f55b8 (diff) | |
| parent | ef6e2087aeff1cf76cd4e5a3f04685e228c169d4 (diff) | |
Merge branch 'fix/punycode-screen-names' into 'develop'
fix #1036 convert screen name to unicode with punycode
Closes #1036
See merge request pleroma/pleroma-fe!1320
Diffstat (limited to 'src/services/entity_normalizer/entity_normalizer.service.js')
| -rw-r--r-- | src/services/entity_normalizer/entity_normalizer.service.js | 14 |
1 files changed, 14 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..206e6281 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,19 @@ 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('@') + console.log(parts) + 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 } |
