mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			27 lines
		
	
	
		
			827 B
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			827 B
		
	
	
	
		
			TypeScript
		
	
	
| import { moveAndProcessCaptionFile } from '@server/helpers/captions-utils.js'
 | |
| import { sequelizeTypescript } from '@server/initializers/database.js'
 | |
| import { VideoCaptionModel } from '@server/models/video/video-caption.js'
 | |
| import { MVideo, MVideoCaption } from '@server/types/models/index.js'
 | |
| 
 | |
| export async function createLocalCaption (options: {
 | |
|   video: MVideo
 | |
|   path: string
 | |
|   language: string
 | |
| }) {
 | |
|   const { language, path, video } = options
 | |
| 
 | |
|   const videoCaption = new VideoCaptionModel({
 | |
|     videoId: video.id,
 | |
|     filename: VideoCaptionModel.generateCaptionName(language),
 | |
|     language
 | |
|   }) as MVideoCaption
 | |
| 
 | |
|   await moveAndProcessCaptionFile({ path }, videoCaption)
 | |
| 
 | |
|   await sequelizeTypescript.transaction(async t => {
 | |
|     await VideoCaptionModel.insertOrReplaceLanguage(videoCaption, t)
 | |
|   })
 | |
| 
 | |
|   return videoCaption
 | |
| }
 |