aboutsummaryrefslogtreecommitdiff
path: root/src/services/entity_normalizer
diff options
context:
space:
mode:
authorShpuld Shpuldson <shp@cock.li>2021-01-05 13:58:52 +0200
committerShpuld Shpuldson <shp@cock.li>2021-01-05 13:58:52 +0200
commitab2c2c66bfe96571d14cff4b8c69fe0c90d5a3c7 (patch)
treed35c6958a49431358e131601ca31f753c804fd99 /src/services/entity_normalizer
parent5e96260a4f855e2d93915c1b428a7209a882c8cb (diff)
parent3e7d1fbf23b5ca1b382381b49affc481404137da (diff)
Merge branch 'develop' into feat/report-notification
Diffstat (limited to 'src/services/entity_normalizer')
-rw-r--r--src/services/entity_normalizer/entity_normalizer.service.js16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js
index c71bc15a..f71d6609 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
}
@@ -280,7 +294,7 @@ export const parseStatus = (data) => {
if (output.poll) {
output.poll.options = (output.poll.options || []).map(field => ({
...field,
- title_html: addEmojis(field.title, data.emojis)
+ title_html: addEmojis(escape(field.title), data.emojis)
}))
}
output.pinned = data.pinned