mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-30 21:14:12 +00:00 
			
		
		
		
	fix: properly mute notifications when mentioned by muted users
Closes #339
This commit is contained in:
		
							parent
							
								
									1bec69df16
								
							
						
					
					
						commit
						6c6ccdc1e0
					
				
					 1 changed files with 30 additions and 3 deletions
				
			
		|  | @ -57,8 +57,10 @@ import { FeaturedService } from '@/core/FeaturedService.js'; | ||||||
| import { FanoutTimelineService } from '@/core/FanoutTimelineService.js'; | import { FanoutTimelineService } from '@/core/FanoutTimelineService.js'; | ||||||
| import { UtilityService } from '@/core/UtilityService.js'; | import { UtilityService } from '@/core/UtilityService.js'; | ||||||
| import { UserBlockingService } from '@/core/UserBlockingService.js'; | import { UserBlockingService } from '@/core/UserBlockingService.js'; | ||||||
|  | import { CacheService } from '@/core/CacheService.js'; | ||||||
| import { isReply } from '@/misc/is-reply.js'; | import { isReply } from '@/misc/is-reply.js'; | ||||||
| import { trackPromise } from '@/misc/promise-tracker.js'; | import { trackPromise } from '@/misc/promise-tracker.js'; | ||||||
|  | import { isUserRelated } from '@/misc/is-user-related.js'; | ||||||
| 
 | 
 | ||||||
| type NotificationType = 'reply' | 'renote' | 'quote' | 'mention'; | type NotificationType = 'reply' | 'renote' | 'quote' | 'mention'; | ||||||
| 
 | 
 | ||||||
|  | @ -217,6 +219,7 @@ export class NoteCreateService implements OnApplicationShutdown { | ||||||
| 		private instanceChart: InstanceChart, | 		private instanceChart: InstanceChart, | ||||||
| 		private utilityService: UtilityService, | 		private utilityService: UtilityService, | ||||||
| 		private userBlockingService: UserBlockingService, | 		private userBlockingService: UserBlockingService, | ||||||
|  | 		private cacheService: CacheService, | ||||||
| 	) { } | 	) { } | ||||||
| 
 | 
 | ||||||
| 	@bindThis | 	@bindThis | ||||||
|  | @ -796,7 +799,15 @@ export class NoteCreateService implements OnApplicationShutdown { | ||||||
| 						}, | 						}, | ||||||
| 					}); | 					}); | ||||||
| 
 | 
 | ||||||
| 					if (!isThreadMuted) { | 					const [ | ||||||
|  | 						userIdsWhoMeMuting, | ||||||
|  | 					] = data.reply.userId ? await Promise.all([ | ||||||
|  | 						this.cacheService.userMutingsCache.fetch(data.reply.userId), | ||||||
|  | 					]) : [new Set<string>()]; | ||||||
|  | 
 | ||||||
|  | 					const muted = isUserRelated(note, userIdsWhoMeMuting); | ||||||
|  | 
 | ||||||
|  | 					if (!isThreadMuted || !muted) { | ||||||
| 						nm.push(data.reply.userId, 'reply'); | 						nm.push(data.reply.userId, 'reply'); | ||||||
| 						this.globalEventService.publishMainStream(data.reply.userId, 'reply', noteObj); | 						this.globalEventService.publishMainStream(data.reply.userId, 'reply', noteObj); | ||||||
| 
 | 
 | ||||||
|  | @ -823,7 +834,15 @@ export class NoteCreateService implements OnApplicationShutdown { | ||||||
| 						}, | 						}, | ||||||
| 					}); | 					}); | ||||||
| 
 | 
 | ||||||
| 					if (!isThreadMuted) { | 					const [ | ||||||
|  | 						userIdsWhoMeMuting, | ||||||
|  | 					] = data.renote.userId ? await Promise.all([ | ||||||
|  | 						this.cacheService.userMutingsCache.fetch(data.renote.userId), | ||||||
|  | 					]) : [new Set<string>()]; | ||||||
|  | 
 | ||||||
|  | 					const muted = isUserRelated(note, userIdsWhoMeMuting); | ||||||
|  | 
 | ||||||
|  | 					if (!isThreadMuted || !muted) { | ||||||
| 						nm.push(data.renote.userId, type); | 						nm.push(data.renote.userId, type); | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
|  | @ -1042,7 +1061,15 @@ export class NoteCreateService implements OnApplicationShutdown { | ||||||
| 				}, | 				}, | ||||||
| 			}); | 			}); | ||||||
| 
 | 
 | ||||||
| 			if (isThreadMuted) { | 			const [ | ||||||
|  | 				userIdsWhoMeMuting, | ||||||
|  | 			] = u.id ? await Promise.all([ | ||||||
|  | 				this.cacheService.userMutingsCache.fetch(u.id), | ||||||
|  | 			]) : [new Set<string>()]; | ||||||
|  | 
 | ||||||
|  | 			const muted = isUserRelated(note, userIdsWhoMeMuting); | ||||||
|  | 
 | ||||||
|  | 			if (isThreadMuted || muted) { | ||||||
| 				continue; | 				continue; | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue