aboutsummaryrefslogtreecommitdiff
path: root/src/services/entity_normalizer
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/entity_normalizer')
-rw-r--r--src/services/entity_normalizer/entity_normalizer.service.js34
1 files changed, 26 insertions, 8 deletions
diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js
index ea57e6b2..546ae1c6 100644
--- a/src/services/entity_normalizer/entity_normalizer.service.js
+++ b/src/services/entity_normalizer/entity_normalizer.service.js
@@ -69,7 +69,7 @@ export const parseUser = (data) => {
}
}
- // Missing, trying to recover
+ // TODO: handle is_local
output.is_local = !output.screen_name.includes('@')
} else {
output.screen_name = data.screen_name
@@ -182,8 +182,8 @@ export const parseStatus = (data) => {
// Missing!! fix in UI?
// output.in_reply_to_screen_name = ???
- // Not exactly the same but works
- output.statusnet_conversation_id = data.id
+ // It breaks the conversation when combined with notification
+ // output.statusnet_conversation_id = data.id
if (output.type === 'retweet') {
output.retweeted_status = parseStatus(data.reblog)
@@ -192,8 +192,7 @@ export const parseStatus = (data) => {
output.summary = data.spoiler_text
output.summary_html = addEmojis(data.spoiler_text, data.emojis)
output.external_url = data.url
-
- // output.is_local = ??? missing
+ output.is_local = data.pleroma.local
} else {
output.favorited = data.favorited
output.fave_num = data.fave_num
@@ -221,7 +220,6 @@ export const parseStatus = (data) => {
output.in_reply_to_status_id = data.in_reply_to_status_id
output.in_reply_to_user_id = data.in_reply_to_user_id
output.in_reply_to_screen_name = data.in_reply_to_screen_name
-
output.statusnet_conversation_id = data.statusnet_conversation_id
if (output.type === 'retweet') {
@@ -262,6 +260,19 @@ export const parseStatus = (data) => {
return output
}
+// This is for masto API only.
+export const parseFollow = (data) => {
+ const output = {}
+ output.id = String(data.id)
+ output.visibility = true
+ output.created_at = new Date(data.created_at)
+ output.user = parseUser(data.account)
+ output.notified_at = output.created_at
+ output.account = output.user
+
+ return output
+}
+
export const parseNotification = (data) => {
const mastoDict = {
'favourite': 'like',
@@ -272,8 +283,15 @@ export const parseNotification = (data) => {
if (masto) {
output.type = mastoDict[data.type] || data.type
- // output.seen = ??? missing
- output.status = parseStatus(data.status)
+ output.seen = data.pleroma.is_seen
+ output.status = output.type === 'follow'
+ ? parseFollow(data)
+ : parseStatus(data.status)
+ if (data.type === 'reblog' || data.type === 'favourite') {
+ output.status.user = parseUser(data.account)
+ output.status.account = parseUser(data.account)
+ output.status.notified_at = new Date(data.created_at)
+ }
output.action = output.status // not sure
output.from_profile = parseUser(data.account)
} else {