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(); } }
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); }
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); } }