private bool AddThread(string pageUrl, string pageAuth, string imageAuth, int checkIntervalSeconds, bool oneTimeDownload, string description, UrlTransformResult urlTransformResult)
        {
            if (urlTransformResult != null)
            {
                pageUrl = urlTransformResult.TransformedUrl;
            }
            SiteHelper    siteHelper     = SiteHelper.CreateByUrl(pageUrl);
            string        globalThreadID = siteHelper.GetGlobalThreadID();
            ThreadWatcher watcher        = ThreadList.Items.FirstOrDefault(w => w.GlobalThreadID.Equals(globalThreadID, StringComparison.OrdinalIgnoreCase));

            if (watcher == null)
            {
                description ??= urlTransformResult?.DefaultDescription ?? siteHelper.GetDefaultDescription();
                watcher = ThreadWatcher.Create(siteHelper, pageUrl, pageAuth, imageAuth, oneTimeDownload, checkIntervalSeconds, description);

                AttachWatcherToUI(watcher);
                DisplayDescription(watcher);
                DisplayAddedOn(watcher);

                ThreadList.Add(watcher);
            }
            else
            {
                if (watcher.IsRunning)
                {
                    return(false);
                }

                watcher.PageAuth             = pageAuth;
                watcher.ImageAuth            = imageAuth;
                watcher.CheckIntervalSeconds = checkIntervalSeconds;
                watcher.OneTimeDownload      = oneTimeDownload;

                if (description != null)
                {
                    watcher.Description = description;
                    DisplayDescription(watcher);
                }
            }

            watcher.Start();

            _saveThreadList = true;

            return(true);
        }
Ejemplo n.º 2
0
        public static ThreadWatcher Create(SiteHelper siteHelper, string pageUrl, string pageAuth, string imageAuth, bool oneTimeDownload, int checkIntervalSeconds, string description = null)
        {
            string globalThreadID      = siteHelper.GetGlobalThreadID();
            ThreadWatcherConfig config = new ThreadWatcherConfig {
                PageUrl              = pageUrl,
                GlobalThreadID       = globalThreadID,
                AddedOn              = DateTime.UtcNow,
                PageAuth             = pageAuth,
                ImageAuth            = imageAuth,
                UseOriginalFileNames = Settings.UseOriginalFileNames,
                OneTimeDownload      = oneTimeDownload,
                CheckIntervalSeconds = checkIntervalSeconds,
                PageBaseFileName     = General.CleanFileName(siteHelper.GetThreadName()),
                Description          = description ?? globalThreadID
            };

            return(new ThreadWatcher(siteHelper, config));
        }