aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2016-11-07 22:09:34 +0100
committerRoger Braun <roger@rogerbraun.net>2016-11-07 22:09:34 +0100
commitf8a3afc9d14428d05115105030af1f1d300dde8e (patch)
tree35563b55fb075092b286f477e95f37c64d22b4c0 /src
parent79b2243f6ceec9e6f11e48a3d5c3c63f68636d70 (diff)
Don't put statuses we received from retweets into timelines.
They should be in allStatuses to keep only one reference, but they should not get into the timeline, or it will mess up old status fetching, because they have a very low id.
Diffstat (limited to 'src')
-rw-r--r--src/modules/statuses.js26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index 7913c289..8ed2890f 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -1,4 +1,4 @@
-import { flatten, map, slice, last, intersectionBy, sortBy, unionBy, toInteger, groupBy, differenceBy, each, find } from 'lodash'
+import { reduce, map, slice, last, intersectionBy, sortBy, unionBy, toInteger, groupBy, differenceBy, each, find } from 'lodash'
import moment from 'moment'
import apiService from '../services/api/api.service.js'
@@ -55,14 +55,6 @@ const addStatusesToTimeline = (addedStatuses, showImmediately, { statuses, visib
addedStatuses = statusesAndFaves['status'] || []
- const splitRetweets = (status) => {
- if (status.retweeted_status) {
- return [status, status.retweeted_status]
- } else {
- return status
- }
- }
-
// Add some html and nsfw to the statuses.
addedStatuses = map(addedStatuses, (status) => {
const statusoid = status.retweeted_status || status
@@ -79,11 +71,9 @@ const addStatusesToTimeline = (addedStatuses, showImmediately, { statuses, visib
statusoid.nsfw = statusoid.text.match(nsfwRegex)
}
- return splitRetweets(status)
+ return status
})
- addedStatuses = flatten(addedStatuses)
-
const newStatuses = sortBy(
unionBy(addedStatuses, statuses, 'id'),
({id}) => -id
@@ -125,9 +115,19 @@ const updateTimestampsInStatuses = (statuses) => {
export const mutations = {
addNewStatuses (state, { statuses, showImmediately = false, timeline }) {
state.timelines[timeline] = addStatusesToTimeline(statuses, showImmediately, state.timelines[timeline])
- state.allStatuses = unionBy(state.timelines[timeline].statuses, state.allStatuses.id)
+ state.allStatuses = unionBy(state.timelines[timeline].statuses, state.allStatuses, 'id')
// Set up retweets with most current status
+ const getRetweets = (result, status) => {
+ if (status.retweeted_status) {
+ result.push(status.retweeted_status)
+ }
+ return result
+ }
+
+ const retweets = reduce(statuses, getRetweets, [])
+
+ state.allStatuses = unionBy(retweets, state.allStatuses, 'id')
each(state.allStatuses, (status) => {
if (status.retweeted_status) {