aboutsummaryrefslogtreecommitdiff
path: root/src/services/entity_normalizer/entity_normalizer.service.js
diff options
context:
space:
mode:
authorShpuld Shpludson <shp@cock.li>2021-01-18 13:44:31 +0000
committerShpuld Shpludson <shp@cock.li>2021-01-18 13:44:31 +0000
commit320418d524a33c20d7d769c8d67a25be81f251ec (patch)
treeb15c3cb41b469e732db1060d9962ce80b10c9562 /src/services/entity_normalizer/entity_normalizer.service.js
parenta39866308cd7c8cb0d30a04a5215d1fae8bf8d47 (diff)
parent8f55cb151c546eae56c782c2ed4b292b04950e03 (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.js13
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
}