Пример #1
0
        public override void OnDownload(DownloadMessage message)
        {
            const string header = "Radarr - Downloaded";

            Notify(Settings, header, message.Message);
            UpdateAndCleanMovie(message.Movie, message.OldMovieFiles.Any());
        }
        private void CheckForNewEvents()
        {
            Task.Run(async() =>
            {
                var downloadedEvents = await eventDownloader.GetMetagameEventsAsync();
                var notifService     = DependencyService.Resolve <INotificationService>();
                DateTime epoch       = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

                //this should not be on the start command unless we're implementing the time to wait BETWEEN the calls.
                var notifiableEvent = CheckForWantedEvents(downloadedEvents);
                //download the events to a json

                if (notifiableEvent.event_type != "void")
                {
                    //notify the user
                    var message = new DownloadMessage
                    {
                        NotifyingEvent = notifiableEvent
                    };
                    //MessagingCenter.Send(message, "Download");
                    string theTime = epoch.AddSeconds((double)notifiableEvent.timestamp).ToLocalTime().ToLongTimeString();
                    //await notifService.NotifyAsync("Alert started!", $"{notifiableEvent.eventName} on IMPLEMENT CONTINENT NAME at {theTime}",2);
                    await notifService.NotifyBigAsync("Alert started!", $"{notifiableEvent.eventName}", notifiableEvent, theTime);
                }
            });
        }
Пример #3
0
        public override void OnDownload(DownloadMessage message)
        {
            var movie                = message.Movie;
            var movieFile            = message.MovieFile;
            var sourcePath           = message.SourcePath;
            var environmentVariables = new StringDictionary();

            environmentVariables.Add("Radarr_EventType", "Download");
            environmentVariables.Add("Radarr_IsUpgrade", message.OldMovieFiles.Any().ToString());
            environmentVariables.Add("Radarr_Movie_Id", movie.Id.ToString());
            environmentVariables.Add("Radarr_Movie_Title", movie.Title);
            environmentVariables.Add("Radarr_Movie_Year", movie.Year.ToString());
            environmentVariables.Add("Radarr_Movie_Path", movie.Path);
            environmentVariables.Add("Radarr_Movie_ImdbId", movie.ImdbId ?? string.Empty);
            environmentVariables.Add("Radarr_Movie_TmdbId", movie.TmdbId.ToString());
            environmentVariables.Add("Radarr_Movie_In_Cinemas_Date", movie.InCinemas.ToString() ?? string.Empty);
            environmentVariables.Add("Radarr_Movie_Physical_Release_Date", movie.PhysicalRelease.ToString() ?? string.Empty);
            environmentVariables.Add("Radarr_MovieFile_Id", movieFile.Id.ToString());
            environmentVariables.Add("Radarr_MovieFile_RelativePath", movieFile.RelativePath);
            environmentVariables.Add("Radarr_MovieFile_Path", Path.Combine(movie.Path, movieFile.RelativePath));
            environmentVariables.Add("Radarr_MovieFile_Quality", movieFile.Quality.Quality.Name);
            environmentVariables.Add("Radarr_MovieFile_QualityVersion", movieFile.Quality.Revision.Version.ToString());
            environmentVariables.Add("Radarr_MovieFile_ReleaseGroup", movieFile.ReleaseGroup ?? string.Empty);
            environmentVariables.Add("Radarr_MovieFile_SceneName", movieFile.SceneName ?? string.Empty);
            environmentVariables.Add("Radarr_MovieFile_SourcePath", sourcePath);
            environmentVariables.Add("Radarr_MovieFile_SourceFolder", Path.GetDirectoryName(sourcePath));
            environmentVariables.Add("Radarr_Download_Id", message.DownloadId ?? string.Empty);

            if (message.OldMovieFiles.Any())
            {
                environmentVariables.Add("Radarr_DeletedRelativePaths", string.Join("|", message.OldMovieFiles.Select(e => e.RelativePath)));
                environmentVariables.Add("Radarr_DeletedPaths", string.Join("|", message.OldMovieFiles.Select(e => Path.Combine(movie.Path, e.RelativePath))));
            }
            ExecuteScript(environmentVariables);
        }
Пример #4
0
 /// <summary>
 /// Function to receive download message
 /// </summary>
 /// <param name="downloadMessage">The message which has to be received</param>
 private void ReceivedDownloadMessage(DownloadMessage downloadMessage)
 {
     if (downloadMessage.type.Equals(TypeCode.REQUEST))
     {
         string path = _path + @".hidden\" + downloadMessage.fromUuid + @"\" +
                       downloadMessage.fullFileName + @"\" + downloadMessage.filehash;
         if (downloadMessage.statusCode == StatusCode.OK)
         {
             if (File.Exists(path))
             {
                 downloadMessage.CreateReply();
                 downloadMessage.statusCode = StatusCode.ACCEPTED;
                 downloadMessage.Send(downloadMessage.port);
                 Console.WriteLine("Response send");
             }
             else
             {
                 Console.WriteLine("File not found");
                 downloadMessage.CreateReply();
                 downloadMessage.statusCode = StatusCode.FILE_NOT_FOUND;
                 downloadMessage.Send(downloadMessage.port);
             }
         }
         else if (downloadMessage.statusCode.Equals(StatusCode.ACCEPTED))
         {
             var sender = new ChunkSender(downloadMessage.fromIp, downloadMessage.port);
             sender.Send(path);
             DiskHelper.ConsoleWrite("File send " + downloadMessage.filehash);
         }
     }
 }
Пример #5
0
        public override void OnDownload(DownloadMessage message)
        {
            var series               = message.Series;
            var episodeFile          = message.EpisodeFile;
            var sourcePath           = message.SourcePath;
            var environmentVariables = new StringDictionary();

            environmentVariables.Add("Sonarr_EventType", "Download");
            environmentVariables.Add("Sonarr_Series_Id", series.Id.ToString());
            environmentVariables.Add("Sonarr_Series_Title", series.Title);
            environmentVariables.Add("Sonarr_Series_Path", series.Path);
            environmentVariables.Add("Sonarr_Series_TvdbId", series.TvdbId.ToString());
            environmentVariables.Add("Sonarr_Series_Type", series.SeriesType.ToString());
            environmentVariables.Add("Sonarr_EpisodeFile_Id", episodeFile.Id.ToString());
            environmentVariables.Add("Sonarr_EpisodeFile_RelativePath", episodeFile.RelativePath);
            environmentVariables.Add("Sonarr_EpisodeFile_Path", Path.Combine(series.Path, episodeFile.RelativePath));
            environmentVariables.Add("Sonarr_EpisodeFile_SeasonNumber", episodeFile.SeasonNumber.ToString());
            environmentVariables.Add("Sonarr_EpisodeFile_EpisodeNumbers", string.Join(",", episodeFile.Episodes.Value.Select(e => e.EpisodeNumber)));
            environmentVariables.Add("Sonarr_EpisodeFile_EpisodeAirDates", string.Join(",", episodeFile.Episodes.Value.Select(e => e.AirDate)));
            environmentVariables.Add("Sonarr_EpisodeFile_EpisodeAirDatesUtc", string.Join(",", episodeFile.Episodes.Value.Select(e => e.AirDateUtc)));
            environmentVariables.Add("Sonarr_EpisodeFile_Quality", episodeFile.Quality.Quality.Name);
            environmentVariables.Add("Sonarr_EpisodeFile_QualityVersion", episodeFile.Quality.Revision.Version.ToString());
            environmentVariables.Add("Sonarr_EpisodeFile_ReleaseGroup", episodeFile.ReleaseGroup ?? string.Empty);
            environmentVariables.Add("Sonarr_EpisodeFile_SceneName", episodeFile.SceneName ?? string.Empty);
            environmentVariables.Add("Sonarr_EpisodeFile_SourcePath", sourcePath);
            environmentVariables.Add("Sonarr_EpisodeFile_SourceFolder", Path.GetDirectoryName(sourcePath));

            ExecuteScript(environmentVariables);
        }
Пример #6
0
        private async Task DownloadPodcastFileAsync(RssEpisode episode)
        {
            try
            {
                episode.PlayPauseDownloadIcon = IconFont.Clock;
                //save download status to the database
                var resultSave = await DataStore.SaveEpisodeItemAsync(episode, true); //returns the number of items changed

                if (resultSave != 1)
                {
                    Debug.WriteLine("DownloadService.DownloadPodcastFile Could not Update episode");
                }
                //download the file to storage
                var filePath = FileHelper.GetPodcastPath(episode.PodcastFileName);
                var message  = new DownloadMessage
                {
                    Id        = episode.Id.Value, //needed to update RssEpisode when done
                    Url       = episode.EnclosureLink,
                    FilePath  = filePath,
                    QueueType = QueueType.PodcastFile
                };
                MessagingCenter.Send(message, "Download"); //goes to Android project Service, returns thru DownloadFinishedMessage
            }
            catch (Exception ex)
            {
                Debug.WriteLine("DownloadService.DownloadPodcastFile Error " + ex.Message);
            }
        }
        public DownloadProgressViewModel(string url)
        {
            Title = "Downloading File";

            var file = new DownloadMessage
            {
                Url = url
            };

            Message = string.Format("Downloading file from {0}", url);

            MessagingCenter.Send(file, "Download");

            MessagingCenter.Unsubscribe <DownloadProgressMessage>(Application.Current, "DownloadProgressMessage");
            MessagingCenter.Subscribe <DownloadProgressMessage>(Application.Current, "DownloadProgressMessage", message =>
            {
                Device.BeginInvokeOnMainThread(() =>
                {
                    Percentage = message.Percentage;
                });
            });

            MessagingCenter.Unsubscribe <DownloadFinishedMessage>(Application.Current, "DownloadFinishedMessage");
            MessagingCenter.Subscribe <DownloadFinishedMessage>(Application.Current, "DownloadFinishedMessage", message =>
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    var msj = string.Format("The file was saved in {0}", message.FilePath);
                    await Application.Current.MainPage.DisplayAlert("Message", msj, "OK");

                    await Application.Current.MainPage.Navigation.PopModalAsync(true);
                });
            });
        }
Пример #8
0
        public override void OnDownload(DownloadMessage message)
        {
            const string header = "Sonarr - Downloaded";

            Notify(Settings, header, message.Message);
            UpdateAndClean(message.Series, message.OldFiles.Any());
        }
Пример #9
0
        public override void OnDownload(DownloadMessage message)
        {
            var movieFile = message.MovieFile;

            var payload = new WebhookImportPayload
            {
                EventType          = WebhookEventType.Download,
                Movie              = new WebhookMovie(message.Movie),
                RemoteMovie        = new WebhookRemoteMovie(message.Movie),
                MovieFile          = new WebhookMovieFile(movieFile),
                IsUpgrade          = message.OldMovieFiles.Any(),
                DownloadClient     = message.DownloadClientInfo?.Name,
                DownloadClientType = message.DownloadClientInfo?.Type,
                DownloadId         = message.DownloadId
            };

            if (message.OldMovieFiles.Any())
            {
                payload.DeletedFiles = message.OldMovieFiles.ConvertAll(x =>
                                                                        new WebhookMovieFile(x)
                {
                    Path = Path.Combine(message.Movie.Path, x.RelativePath)
                });
            }

            _proxy.SendWebhook(payload, Settings);
        }
Пример #10
0
        public override void OnDownload(DownloadMessage message)
        {
            var movie                = message.Movie;
            var movieFile            = message.MovieFile;
            var sourcePath           = message.SourcePath;
            var environmentVariables = new StringDictionary();

            environmentVariables.Add("Radarr_EventType", "Download");
            environmentVariables.Add("Radarr_Movie_Id", movie.Id.ToString());
            environmentVariables.Add("Radarr_Movie_Title", movie.Title);
            environmentVariables.Add("Radarr_Movie_Path", movie.Path);
            environmentVariables.Add("Radarr_Movie_ImdbId", movie.ImdbId);
            environmentVariables.Add("Radarr_Movie_TmdbId", movie.TmdbId.ToString());
            environmentVariables.Add("Radarr_MovieFile_Id", movieFile.Id.ToString());
            environmentVariables.Add("Radarr_MovieFile_RelativePath", movieFile.RelativePath);
            environmentVariables.Add("Radarr_MovieFile_Path", Path.Combine(movie.Path, movieFile.RelativePath));
            environmentVariables.Add("Radarr_MovieFile_Quality", movieFile.Quality.Quality.Name);
            environmentVariables.Add("Radarr_MovieFile_QualityVersion", movieFile.Quality.Revision.Version.ToString());
            environmentVariables.Add("Radarr_MovieFile_ReleaseGroup", movieFile.ReleaseGroup ?? string.Empty);
            environmentVariables.Add("Radarr_MovieFile_SceneName", movieFile.SceneName ?? string.Empty);
            environmentVariables.Add("Radarr_MovieFile_SourcePath", sourcePath);
            environmentVariables.Add("Radarr_MovieFile_SourceFolder", Path.GetDirectoryName(sourcePath));

            ExecuteScript(environmentVariables);
        }
Пример #11
0
        public override void OnDownload(DownloadMessage message)
        {
            const string subject = "NzbDrone [TV] - Downloaded";
            var          body    = String.Format("{0} Downloaded and sorted.", message.Message);

            _emailService.SendEmail(Settings, subject, body);
        }
Пример #12
0
        public override void OnDownload(DownloadMessage message)
        {
            var episodeFile = message.EpisodeFile;

            var payload = new WebhookImportPayload
            {
                EventType      = WebhookEventType.Download,
                Series         = new WebhookSeries(message.Series),
                Episodes       = episodeFile.Episodes.Value.ConvertAll(x => new WebhookEpisode(x)),
                EpisodeFile    = new WebhookEpisodeFile(episodeFile),
                IsUpgrade      = message.OldFiles.Any(),
                DownloadClient = message.DownloadClient,
                DownloadId     = message.DownloadId
            };

            if (message.OldFiles.Any())
            {
                payload.DeletedFiles = message.OldFiles.ConvertAll(x => new WebhookEpisodeFile(x)
                {
                    Path = Path.Combine(message.Series.Path,
                                        x.RelativePath)
                }
                                                                   );
            }

            _proxy.SendWebhook(payload, Settings);
        }
Пример #13
0
        void Download(object sender, EventArgs e)
        {
            this.catImage.Source = null;
            var message = new DownloadMessage {
                Url = "https://xamarinuniversity.blob.core.windows.net/ios210/huge_monkey.png"
            };

            MessagingCenter.Send(message, "Download");
        }
Пример #14
0
        protected override void ProcessRecord()
        {
            LogErrors(() =>
            {
                if (!CheckSessionCanDoInteractiveAction())
                {
                    return;
                }

                AssertDefaultSize(700, 140);
                DownloadMessage message = null;
                if (Item != null)
                {
                    if (!Item.Paths.IsMediaItem)
                    {
                        WriteVerbose($"Skipping item {Item.ID} because it is not a media item.");
                        return;
                    }
                    if (Item.InheritsFrom(TemplateIDs.MediaFolder))
                    {
                        WriteVerbose($"Skipping item {Item.ID} because it inherits from Media Folder.");
                        return;
                    }

                    message = new DownloadMessage(Item);
                }
                else if (!string.IsNullOrEmpty(Path))
                {
                    var file = FileUtil.MapPath(Path);

                    if (!File.Exists(file))
                    {
                        PutMessage(
                            new AlertMessage($"You cannot download:\n{Path}\n\n The file could not be found."));
                        return;
                    }

                    message = new DownloadMessage(file);
                }

                if (message != null)
                {
                    message.NoDialog     = NoDialog;
                    message.Message      = Message;
                    message.Title        = Title;
                    message.ShowFullPath = ShowFullPath;
                    message.Width        = Width == 0 ? "600" : WidthString;
                    message.Height       = Height == 0 ? "200" : HeightString;

                    PutMessage(message);
                    var result = message.GetResult().ToString();
                    WriteObject(result);
                }
            });
        }
Пример #15
0
        public override void OnDownload(DownloadMessage message)
        {
            const string header = "NzbDrone [TV] - Downloaded";

            if (Settings.Notify)
            {
                _xbmcProvider.Notify(Settings, header, message.Message);
            }

            UpdateAndClean(message.Series, message.OldFiles.Any());
        }
Пример #16
0
 public override void OnDownload(DownloadMessage message)
 {
     if (message.OldMovieFiles.Any())
     {
         _proxy.SendNotification(MOVIE_UPGRADED_TITLE, message.Message, Settings);
     }
     else
     {
         _proxy.SendNotification(MOVIE_DOWNLOADED_TITLE, message.Message, Settings);
     }
 }
Пример #17
0
        public override void OnDownload(DownloadMessage message)
        {
            if (Settings.Notify)
            {
                _mediaBrowserService.Notify(Settings, EPISODE_DOWNLOADED_TITLE_BRANDED, message.Message);
            }

            if (Settings.UpdateLibrary)
            {
                _mediaBrowserService.Update(Settings, message.Series, "Created");
            }
        }
        internal HttpMultiThreadDownloader createMTDO(DownloadMessage MSG)
        {
            var finalFolder = Properties.Settings.Default.SaveFolder;
            var tempFolder  = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

            tempFolder = Path.Combine(tempFolder, "AltoDownloadAccelerator");
            var dorg = new HttpMultiThreadDownloader(MSG.Url, finalFolder, "", tempFolder, Properties.Settings.Default.NofThread);

            dorg.Id = Guid.NewGuid().ToString("N");
            dorg.DownloadRequestMessage = MSG;
            return(dorg);
        }
Пример #19
0
        /// <summary>
        /// Handler for a resource download request from server (your DownloadVersion mismatches)
        /// </summary>
        /// <param name="Message"></param>
        protected override void HandleDownloadMessage(DownloadMessage Message)
        {
            base.HandleDownloadMessage(Message);

            // tell user about mismatching resources version
            MessageBox.Show(RESVERSIONMISMATCH);

            // close connection, we're not going to download the proposed new resource files
            ServerConnection.Disconnect();

            // reset logincontrol
            MainForm.LoginControl.ConnectedState = false;
        }
 public void SendMessage(DownloadMessage msg)
 {
     if (tracker == null)
     {
         // Attempt to create a tracker
         tracker = new SingleInstanceTracker("SingleInstanceSample", new SingleInstanceEnforcerRetriever(GetSingleInstanceEnforcer));
     }
     if (msg != null)
     {
         var json = JsonConvert.SerializeObject(msg);
         tracker.SendMessageToFirstInstance(json);
     }
 }
Пример #21
0
        public override void OnDownload(DownloadMessage message)
        {
            const string title = "Radarr - Movie Downloaded";

            if (Settings.Notify)
            {
                _mediaBrowserService.Notify(Settings, title, message.Message);
            }

            if (Settings.UpdateLibrary)
            {
                _mediaBrowserService.UpdateMovies(Settings, message.Movie, "Created");
            }
        }
        /// <summary>
        /// Adds a new download task
        /// </summary>
        /// <param name="msg"></param>
        protected override void NewDownload(DownloadMessage msg)
        {
            try
            {
                DownloadingItems.Add(new DownloadItemView {
                    DataContext = new DownloadItemViewModel(msg.Url)
                });
            }

            catch (Exception ex)
            {
                DialogService.ShowMessageBox(ex.Message);
            }
        }
Пример #23
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Message"></param>
        protected override void HandleDownloadMessage(DownloadMessage Message)
        {
            base.HandleDownloadMessage(Message);

            // server proposed different resources version
            // adjust resourceversion in configuration.xml

            // close connection and exit
            ServerConnection.Disconnect();
            IsRunning = false;

            Log("ERROR", LOG_WRONGRESVERSION);
            Thread.Sleep(SLEEPAFTERERROR);
        }
Пример #24
0
        public override void OnDownload(DownloadMessage message)
        {
            const string title = "Sonarr - Downloaded";

            if (Settings.Notify)
            {
                _mediaBrowserService.Notify(Settings, title, message.Message);
            }

            if (Settings.UpdateLibrary)
            {
                _mediaBrowserService.Update(Settings, message.Series);
            }
        }
Пример #25
0
        public override void OnDownload(DownloadMessage message)
        {
            var movieFile = message.MovieFile;

            var payload = new WebhookImportPayload
            {
                EventType   = "Download",
                Movie       = new WebhookMovie(message.Movie),
                RemoteMovie = new WebhookRemoteMovie(message.Movie),
                MovieFile   = new WebhookMovieFile(movieFile),
                IsUpgrade   = message.OldMovieFiles.Any()
            };

            _proxy.SendWebhook(payload, Settings);
        }
 void showForm(DownloaderForm f, DownloadMessage req, bool directStart)
 {
     if (f != null && f.Visible)
     {
         return;
     }
     else
     {
         removeForm(req.FileName, req.Url);
         var a = new DownloaderForm(f.dorg, directStart);
         a.FormClosed += a_FormClosed;
         formlist.Add(a);
         a.Shown += a_Shown;
         a.Show();
     }
 }
Пример #27
0
        public override void OnDownload(DownloadMessage message)
        {
            var embeds = new List <Embed>
            {
                new Embed
                {
                    Description = message.Message,
                    Title       = message.Series.Title,
                    Text        = message.Message,
                    Color       = (int)DiscordColors.Success
                }
            };
            var payload = CreatePayload($"Imported: {message.Message}", embeds);

            _proxy.SendPayload(payload, Settings);
        }
Пример #28
0
        public override void OnDownload(DownloadMessage message)
        {
            var attachments = new List <Attachment>
            {
                new Attachment
                {
                    Fallback = message.Message,
                    Title    = message.Movie.Title,
                    Text     = message.Message,
                    Color    = "good"
                }
            };
            var payload = CreatePayload($"Imported: {message.Message}", attachments);

            _proxy.SendPayload(payload, Settings);
        }
Пример #29
0
        public override void OnDownload(DownloadMessage message)
        {
            if (Settings.UpdateLibrary)
            {
                foreach (var oldFile in message.OldMovieFiles)
                {
                    var fullPath = Path.Combine(message.Movie.Path, oldFile.RelativePath);

                    _indexerProxy.DeleteFile(fullPath);
                }

                {
                    var fullPath = Path.Combine(message.Movie.Path, message.MovieFile.RelativePath);

                    _indexerProxy.AddFile(fullPath);
                }
            }
        }
Пример #30
0
        protected override void ProcessRecord()
        {
            LogErrors(() =>
            {
                if (!CheckSessionCanDoInteractiveAction())
                {
                    return;
                }

                AssertDefaultSize(700, 140);
                DownloadMessage message = null;
                if (Item != null)
                {
                    message = new DownloadMessage(Item);
                }
                else if (!string.IsNullOrEmpty(Path))
                {
                    var file = FileUtil.MapPath(Path);

                    if (!File.Exists(file))
                    {
                        PutMessage(
                            new AlertMessage("You cannot download:\n" + Path + "\n\n The file could not be found."));
                        return;
                    }

                    message = new DownloadMessage(file);
                }

                if (message != null)
                {
                    message.NoDialog     = NoDialog;
                    message.Message      = Message;
                    message.Title        = Title;
                    message.ShowFullPath = ShowFullPath;
                    message.Width        = Width == 0 ? "600" : WidthString;
                    message.Height       = Height == 0 ? "200" : HeightString;

                    PutMessage(message);
                    var result = message.GetResult().ToString();
                    WriteObject(result);
                }
            });
        }
Пример #31
0
        private Task<bool> RunSyncItem(Manifest.SyncItem f,
            bool verify, bool simulate,
            DownloadProgressChanged dpc, DownloadEnd de, DownloadMessage dm,
            CancellationTokenSource cts,
            string overrideDestination = null)
        {
            switch (f.type)
            {
                case "rsync":
                    RSyncDownloader dd = new RSyncDownloader(this);
                    dd.appPath = AppPath;
                    dd.tmpPath = TmpPath;
                    dd.VerifyChecksums = verify;
                    dd.Simulate = simulate;
                    return dd.Download(LatestManifest.rsyncUrl + "/" + f.name, f, RootPath,
                        dpc, de, dm, cts, overrideDestination);

                case "delete":
                    return Task<bool>.Run(() =>
                    {
                        if (f.name.EndsWith("/") && Directory.Exists(RootPath + "/" + f.name)) {
                            dm.Invoke("Deleting directory " + f.name);
                            Directory.Delete(RootPath + "/" + f.name, true);
                        } else if (File.Exists(RootPath + "/" + f.name)) {
                            dm.Invoke("Deleting file " + f.name);
                            File.Delete(RootPath + "/" + f.name);
                        }
                        return true;
                    });

                default:
                    return null;
            }
        }