mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			939 B
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			939 B
		
	
	
	
		
			TypeScript
		
	
	
| import { Job } from 'bullmq'
 | |
| import { Notifier } from '@server/lib/notifier/index.js'
 | |
| import { VideoModel } from '@server/models/video/video.js'
 | |
| import { NotifyPayload } from '@peertube/peertube-models'
 | |
| import { logger } from '../../../helpers/logger.js'
 | |
| 
 | |
| async function processNotify (job: Job) {
 | |
|   const payload = job.data as NotifyPayload
 | |
|   logger.info('Processing %s notification in job %s.', payload.action, job.id)
 | |
| 
 | |
|   if (payload.action === 'new-video') return doNotifyNewVideo(payload)
 | |
| }
 | |
| 
 | |
| // ---------------------------------------------------------------------------
 | |
| 
 | |
| export {
 | |
|   processNotify
 | |
| }
 | |
| 
 | |
| // ---------------------------------------------------------------------------
 | |
| 
 | |
| async function doNotifyNewVideo (payload: NotifyPayload & { action: 'new-video' }) {
 | |
|   const refreshedVideo = await VideoModel.loadFull(payload.videoUUID)
 | |
|   if (!refreshedVideo) return
 | |
| 
 | |
|   Notifier.Instance.notifyOnNewVideoOrLiveIfNeeded(refreshedVideo)
 | |
| }
 |