Ejemplo n.º 1
0
        public void AddToHistory(Episode episode, NzbInfo nzb)
        {
            using (SABSyncEntities sabSyncEntities = new SABSyncEntities())
            {
                var data = (from e in sabSyncEntities.episodes.AsEnumerable()
                           where
                               e.shows.show_name.Equals(episode.ShowName, StringComparison.InvariantCultureIgnoreCase) && e.episode_number == episode.EpisodeNumber &&
                               e.season_number == episode.SeasonNumber
                           select new
                           {
                               ShowId = e.shows.id,
                               EpisodeId = e.id
                           }).FirstOrDefault();

                if (data == null)
                {
                    data = (from e in sabSyncEntities.episodes.AsEnumerable()
                            where
                                e.shows.show_name.Equals(episode.ShowName, StringComparison.InvariantCultureIgnoreCase) &&
                                Convert.ToDateTime(e.air_date) == episode.AirDate
                            select new
                                       {
                                           ShowId = e.shows.id,
                                           EpisodeId = e.id
                                       }).FirstOrDefault();
                }

                histories newItem = new histories
                {
                    id = new long(),
                    show_id = data.ShowId,
                    episode_id = data.EpisodeId,
                    feed_title = episode.FeedItem.Title,
                    quality = episode.Quality,
                    proper = Convert.ToInt32(episode.IsProper),
                    provider = nzb.Site.Name,
                    date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
                };

                Logger.Log("Episode added to History Database: {0} - S{1}E{2}", episode.ShowName, episode.SeasonNumber.ToString("00"), episode.EpisodeNumber.ToString("00"));
                sabSyncEntities.AddTohistories(newItem);
                sabSyncEntities.SaveChanges();

            }
        }
Ejemplo n.º 2
0
        public string AddByUrl(NzbInfo nzb)
        {
            // TODO: create an sab action type
            const string mode = "addurl";
            // TODO: use HttpUtility.UrlEncode once moved to dll
            string name = nzb.Link.ToString().Replace("&", "%26");
            const string cat = "tv";
            string nzbname = CleanUrlString(CleanString(nzb.Title));
            string action = string.Format("mode={0}&name={1}&cat={2}&nzbname={3}", mode, name, cat, nzbname);

            string request = string.Format(Config.SabRequest, action);
            Logger.Log("Adding report [{0}] to the queue.", nzb.Title);

            return SendRequest(request);
        }
Ejemplo n.º 3
0
        private void QueueIfWanted(NzbInfo nzb)
        {
            Log(string.Empty);
            Log("----------------------------------------------------------------");
            Log("Verifying '{0}'", nzb.Title);
            try
            {
                if (nzb.IsPassworded())
                {
                    RejectPasswordedCount++;
                    Log("Skipping Passworded Report {0}", nzb.Title);
                    return;
                }

                var feedItem = new FeedItem { NzbId = nzb.Id, Title = nzb.Title, Description = nzb.Description };
                Episode episode = ParseEpisode(feedItem);
                if (episode == null)
                {
                    Log("Unsupported Title: {0}", feedItem.Title);
                    return;
                }

                if (!IsShowWanted(episode.ShowName))
                    return;

                if (!IsEpisodeWanted(episode))
                    return;

                nzb.Title = episode.FeedItem.TitleFix;
                string queueResponse = Sab.AddByUrl(nzb);

                Database.AddToHistory(episode, nzb);
                DatabaseChangedHandler handler = DbChanged;
                if (handler != null) handler("history");
                
                // TODO: check if Queued.Add need unfixed Title (was previously)
                AcceptCount++;
                Queued.Add(string.Format("{0}: {1}", nzb.Title, queueResponse));
            }
            catch (Exception e)
            {
                Log("Unsupported Title: {0} - {1}", nzb.Title, e);
            }
        }