-import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core'
+import { AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core'
import { Router } from '@angular/router'
-import { AuthService, CanComponentDeactivate, Notifier, ServerService } from '@app/core'
+import { AuthService, CanComponentDeactivate, HooksService, Notifier, ServerService } from '@app/core'
import { scrollToTop } from '@app/helpers'
import { FormValidatorService } from '@app/shared/shared-forms'
import { VideoCaptionService, VideoEdit, VideoImportService, VideoService } from '@app/shared/shared-main'
import { LoadingBarService } from '@ngx-loading-bar/core'
-import { VideoPrivacy, VideoUpdate } from '@shared/models'
+import { ServerErrorCode, VideoPrivacy, VideoUpdate } from '@shared/models'
import { hydrateFormFromVideo } from '../shared/video-edit-utils'
import { VideoSend } from './video-send'
'./video-send.scss'
]
})
-export class VideoImportTorrentComponent extends VideoSend implements OnInit, CanComponentDeactivate {
+export class VideoImportTorrentComponent extends VideoSend implements OnInit, AfterViewInit, CanComponentDeactivate {
@Output() firstStepDone = new EventEmitter<string>()
@Output() firstStepError = new EventEmitter<void>()
@ViewChild('torrentfileInput') torrentfileInput: ElementRef<HTMLInputElement>
protected videoService: VideoService,
protected videoCaptionService: VideoCaptionService,
private router: Router,
- private videoImportService: VideoImportService
+ private videoImportService: VideoImportService,
+ private hooks: HooksService
) {
super()
}
super.ngOnInit()
}
+ ngAfterViewInit () {
+ this.hooks.runAction('action:video-torrent-import.init', 'video-edit')
+ }
+
canDeactivate () {
return { canDeactivate: true }
}
this.isImportingVideo = true
const videoUpdate: VideoUpdate = {
- privacy: this.firstStepPrivacyId,
+ privacy: VideoPrivacy.PRIVATE,
waitTranscoding: false,
commentsEnabled: true,
downloadEnabled: true,
this.video = new VideoEdit(Object.assign(res.video, {
commentsEnabled: videoUpdate.commentsEnabled,
downloadEnabled: videoUpdate.downloadEnabled,
+ privacy: { id: this.firstStepPrivacyId },
support: null,
thumbnailUrl: null,
previewUrl: null
this.loadingBar.useRef().complete()
this.isImportingVideo = false
this.firstStepError.emit()
- this.notifier.error(err.message)
+
+ let message = err.message
+ if (err.body?.code === ServerErrorCode.INCORRECT_FILES_IN_TORRENT) {
+ message = $localize`Torrents with only 1 file are supported.`
+ }
+
+ this.notifier.error(message)
}
)
}