Ejemplo n.º 1
0
        private async Task OnVideoDeleted(Subscription sub, Video video)
        {
            log.LogInformation("Video file for {0} was deleted. Will clean up.", video);
            await videoStorageService.Delete(video);

            video.DownloadedPath = null;
            video.DownloadedSize = null;

            if (optionManager.GetForSubscription(Options.Subscriptions_AutoDeleteWatched, sub.Id))
            {
                video.IsWatched = true;
                log.LogInformation("Deleted video {0} marked as watched.", video);
            }

            await dataContext.SaveChangesAsync();
        }
Ejemplo n.º 2
0
        private IEnumerable <string> ResolveDownloadOptions(Video video)
        {
            yield return("--no-color");

            // TODO: Network Options
            // TODO: Geo Restriction

            #region Download Options

            string limitRate = optionManager.GetForSubscription(Options.Ytdl_LimitRate, video.SubscriptionId);
            if (limitRate != null)
            {
                yield return("-r");

                yield return(limitRate);
            }

            string retries = optionManager.GetForSubscription(Options.Ytdl_Retries, video.SubscriptionId);
            if (retries != null)
            {
                yield return("-R");

                yield return(retries);
            }

            #endregion

            #region Filesystem Options

            if (optionManager.GetForSubscription(Options.Ytdl_WriteDescription, video.SubscriptionId))
            {
                yield return("--write-description");
            }

            if (optionManager.GetForSubscription(Options.Ytdl_WriteInfoJson, video.SubscriptionId))
            {
                yield return("--write-info-json");
            }

            #endregion

            #region Thumbnail images

            if (optionManager.GetForSubscription(Options.Ytdl_WriteThumbnail, video.SubscriptionId))
            {
                yield return("--write-thumbnail");
            }

            #endregion

            #region Verbosity / Simulation Options

            yield return("--newline");

            bool?callHome = optionManager.GetGlobal(Options.Ytdl_CallHome);
            if (callHome.HasValue)
            {
                yield return((callHome.Value) ? "-C" : "--no-call-home");
            }

            #endregion

            // TODO: workarounds

            #region Video Format Options

            string format = optionManager.GetForSubscription(Options.Ytdl_Format, video.SubscriptionId);
            if (format != null)
            {
                yield return("-f");

                yield return(format);
            }

            if (optionManager.GetForSubscription(Options.Ytdl_AllFormats, video.SubscriptionId))
            {
                yield return("--all-formats");
            }

            if (optionManager.GetForSubscription(Options.Ytdl_PreferFreeFormats, video.SubscriptionId))
            {
                yield return("--prefer-free-formats");
            }

            string mergeOutputFormat = optionManager.GetForSubscription(Options.Ytdl_MergeOutputFormat, video.SubscriptionId);
            if (mergeOutputFormat != null)
            {
                yield return("--merge-output-format");

                yield return(mergeOutputFormat);
            }

            #endregion

            #region Subtitle Options

            if (optionManager.GetForSubscription(Options.Ytdl_WriteSubtitles, video.SubscriptionId))
            {
                yield return("--write-sub");
            }

            if (optionManager.GetForSubscription(Options.Ytdl_WriteAutoSub, video.SubscriptionId))
            {
                yield return("--write-auto-sub");
            }

            if (optionManager.GetForSubscription(Options.Ytdl_AllSubs, video.SubscriptionId))
            {
                yield return("--all-subs");
            }

            string subFormat = optionManager.GetForSubscription(Options.Ytdl_SubFormat, video.SubscriptionId);
            if (subFormat != null)
            {
                yield return("--sub-format");

                yield return(subFormat);
            }

            string subLang = optionManager.GetForSubscription(Options.Ytdl_SubLang, video.SubscriptionId);
            if (subLang != null)
            {
                yield return("--sub-lang");

                yield return(subLang);
            }

            #endregion

            // TODO: maybe add more options?
            yield return("-o");

            outputPath = ResolveOutputPath(video);
            yield return(outputPath);

            yield return(video.OriginalUrl);
        }
Ejemplo n.º 3
0
 public bool GetConfigAutoDownload(int subscriptionId)
 {
     return(optionManager.GetForSubscription(Options.Subscriptions_AutoDownload, subscriptionId));
 }