diff options
Diffstat (limited to 'src/services/entity_normalizer')
| -rw-r--r-- | src/services/entity_normalizer/entity_normalizer.service.js | 34 |
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 { |
