public async Task <IActionResult> ServerStatus() { var users = await userManager.GetUsersInRoleAsync(UserRoles.User); var admins = await userManager.GetUsersInRoleAsync(UserRoles.Admin); return(Ok(responseFactory.Success(new ServerStatusResponse() { Initialized = optionManager.GetGlobal(Options.Server_Initialized), HaveUsers = users.Count > 0, HaveAdmin = admins.Count > 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); }