From 2e59ab738b6991a0e6b0a0b9a6dafba41e16c929 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Thu, 7 Mar 2019 19:49:41 +0200
Subject: [PATCH 1/2] updates normalizer for proper user handling and adds
 support for friends tl via mastoapi

---
 src/services/api/api.service.js                   |  4 ++--
 .../entity_normalizer.service.js                  | 15 ++++++++++++---
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index 2de87026..fe2cb1c8 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -1,6 +1,5 @@
 /* eslint-env browser */
 const LOGIN_URL = '/api/account/verify_credentials.json'
-const FRIENDS_TIMELINE_URL = '/api/statuses/friends_timeline.json'
 const ALL_FOLLOWING_URL = '/api/qvitter/allfollowing'
 const PUBLIC_TIMELINE_URL = '/api/statuses/public_timeline.json'
 const PUBLIC_AND_EXTERNAL_TIMELINE_URL = '/api/statuses/public_and_external_timeline.json'
@@ -43,6 +42,7 @@ const DENY_USER_URL = '/api/pleroma/friendships/deny'
 const SUGGESTIONS_URL = '/api/v1/suggestions'
 
 const MASTODON_USER_FAVORITES_TIMELINE_URL = '/api/v1/favourites'
+const MASTODON_USER_HOME_TIMELINE_URL = '/api/v1/timelines/home'
 
 import { each, map } from 'lodash'
 import { parseStatus, parseUser, parseNotification } from '../entity_normalizer/entity_normalizer.service.js'
@@ -342,7 +342,7 @@ const setUserMute = ({id, credentials, muted = true}) => {
 const fetchTimeline = ({timeline, credentials, since = false, until = false, userId = false, tag = false}) => {
   const timelineUrls = {
     public: PUBLIC_TIMELINE_URL,
-    friends: FRIENDS_TIMELINE_URL,
+    friends: MASTODON_USER_HOME_TIMELINE_URL,
     mentions: MENTIONS_URL,
     dms: DM_TIMELINE_URL,
     notifications: QVITTER_USER_NOTIFICATIONS_URL,
diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js
index d20ce77f..70f6d693 100644
--- a/src/services/entity_normalizer/entity_normalizer.service.js
+++ b/src/services/entity_normalizer/entity_normalizer.service.js
@@ -60,9 +60,18 @@ export const parseUser = (data) => {
 
     if (data.pleroma) {
       const pleroma = data.pleroma
-      output.follows_you = pleroma.follows_you
-      output.statusnet_blocking = pleroma.statusnet_blocking
-      output.muted = pleroma.muted
+      const relationship = pleroma.relationship
+      output.follows_you = relationship.followed_by
+      output.statusnet_blocking = relationship.blocking
+      output.muted = relationship.muting
+      output.following = relationship.following
+
+      // Unused:
+      // domain_blocking
+      // endorsed
+      // muting_notifications
+      // requested
+      // showing_reblogs
     }
 
     // Missing, trying to recover

From c038d0c12a8cc2af9fd3d3c6f9e338ee0d7c4765 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Thu, 7 Mar 2019 20:04:29 +0200
Subject: [PATCH 2/2] undo this change since BE returns empty object for
 relationship, add in a separate MR

---
 .../entity_normalizer.service.js                  | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js
index 70f6d693..d20ce77f 100644
--- a/src/services/entity_normalizer/entity_normalizer.service.js
+++ b/src/services/entity_normalizer/entity_normalizer.service.js
@@ -60,18 +60,9 @@ export const parseUser = (data) => {
 
     if (data.pleroma) {
       const pleroma = data.pleroma
-      const relationship = pleroma.relationship
-      output.follows_you = relationship.followed_by
-      output.statusnet_blocking = relationship.blocking
-      output.muted = relationship.muting
-      output.following = relationship.following
-
-      // Unused:
-      // domain_blocking
-      // endorsed
-      // muting_notifications
-      // requested
-      // showing_reblogs
+      output.follows_you = pleroma.follows_you
+      output.statusnet_blocking = pleroma.statusnet_blocking
+      output.muted = pleroma.muted
     }
 
     // Missing, trying to recover