don't attempt to remove reblogged duplicates
This commit is contained in:
		
							parent
							
								
									4d386357e7
								
							
						
					
					
						commit
						536fa97060
					
				
					 1 changed files with 13 additions and 16 deletions
				
			
		|  | @ -1,5 +1,4 @@ | |||
| import throttle from 'lodash/throttle' | ||||
| import { getIdsThatTheseStatusesReblogged } from './statuses' | ||||
| import { database } from '../_database/database' | ||||
| import { mark, stop } from '../_utils/marks' | ||||
| import { store } from '../_store/store' | ||||
|  | @ -7,33 +6,31 @@ import { scheduleIdleTask } from '../_utils/scheduleIdleTask' | |||
| import uniqBy from 'lodash/uniqBy' | ||||
| import uniq from 'lodash/uniq' | ||||
| 
 | ||||
| async function getExistingItemIdsSet (instanceName, timelineName) { | ||||
| function getExistingItemIdsSet (instanceName, timelineName) { | ||||
|   let timelineItemIds = store.getForTimeline(instanceName, timelineName, 'timelineItemIds') || [] | ||||
|   if (timelineName === 'notifications') { | ||||
|     return new Set(timelineItemIds) | ||||
|   } | ||||
|   let reblogIds = await getIdsThatTheseStatusesReblogged(instanceName, timelineItemIds) | ||||
|   return new Set([].concat(timelineItemIds).concat(reblogIds)) | ||||
|   return new Set(timelineItemIds) | ||||
| } | ||||
| 
 | ||||
| async function removeDuplicates (instanceName, timelineName, updates) { | ||||
| function removeDuplicates (instanceName, timelineName, updates) { | ||||
|   // remove duplicates, including duplicates due to reblogs
 | ||||
|   let existingItemIds = await getExistingItemIdsSet(instanceName, timelineName) | ||||
|   let existingItemIds = getExistingItemIdsSet(instanceName, timelineName) | ||||
|   return updates.filter(update => !existingItemIds.has(update.id)) | ||||
| } | ||||
| 
 | ||||
| async function insertUpdatesIntoTimeline (instanceName, timelineName, updates) { | ||||
|   updates = await removeDuplicates(instanceName, timelineName, updates) | ||||
|   updates = removeDuplicates(instanceName, timelineName, updates) | ||||
| 
 | ||||
|   if (!updates.length) { | ||||
|     return | ||||
|   } | ||||
| 
 | ||||
|   await database.insertTimelineItems(instanceName, timelineName, updates) | ||||
| 
 | ||||
|   let itemIdsToAdd = store.getForTimeline(instanceName, timelineName, 'itemIdsToAdd') || [] | ||||
|   if (updates && updates.length) { | ||||
|     itemIdsToAdd = itemIdsToAdd.concat(updates.map(_ => _.id)) | ||||
|     itemIdsToAdd = uniq(itemIdsToAdd) | ||||
|     console.log('adding ', itemIdsToAdd.length, 'items to itemIdsToAdd') | ||||
|     store.setForTimeline(instanceName, timelineName, {itemIdsToAdd: itemIdsToAdd}) | ||||
|   } | ||||
| 
 | ||||
|   itemIdsToAdd = uniq(itemIdsToAdd.concat(updates.map(_ => _.id))) | ||||
|   console.log('adding ', itemIdsToAdd.length, 'items to itemIdsToAdd') | ||||
|   store.setForTimeline(instanceName, timelineName, {itemIdsToAdd: itemIdsToAdd}) | ||||
| } | ||||
| 
 | ||||
| async function insertUpdatesIntoThreads (instanceName, updates) { | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue