Пример #1
0
 public static void SaveEpisode(Episode episode)
 {
     episode.UpdatedDate = DateTime.Now;
     using (var db = DatabaseFactory.GetMetaDbConnection())
     {
         if (episode.Id != null)
             db.Execute("delete from episode where id = ?", episode.Id);
         db.Insert(episode);
     }
 }
Пример #2
0
        public void HandleEpisode(Recording record, Episode episode)
        {
            bool same;
            var oldFile = new FileInfo(record.Filename);
            var newFile = new FileInfo(GetEpisodeFilename(record, episode, out same));
            
            //Create NFO
            xbmc.DeleteVideoNfoFile(oldFile.FullName);
            if (episode == null)
            {
                xbmc.CreateEpisodeNfoFile(newFile.FullName, record);
            }

            if (same)
            {
                /*LogUtil.Log("No Change (TV): " + record.Title + ", " + record.SubTitle + ":");
                LogUtil.Log("\tOld Filename: " + oldFile.Name);
                LogUtil.Log("\tNew Filename: " + newFile.Name);
                LogUtil.Log("");*/
                return; //nothing to do
            }

            //Move File
            File.Move(oldFile.FullName, newFile.FullName);
            new RecordingData().UpdateFilename(record, newFile.FullName);

            //Logging
            var update = oldFile.FullName.StartsWith(Config.XbmcTvPath, StringComparison.OrdinalIgnoreCase);
            if (episode == null)
            {
                LogUtil.Log("Match Failure (TV): " + record.Title + ", " + record.SubTitle + ":");
                LogUtil.Log("\tOld Filename: " + oldFile.Name);
                LogUtil.Log("\tNew Filename: " + newFile.Name);
                LogUtil.Log("");
            }
            else if (!update)
            {
                LogUtil.Log("Match Success (TV): " + record.Title + ", " + record.SubTitle + ":");
                LogUtil.Log("\tOld Filename: " + oldFile.Name);
                LogUtil.Log("\tNew Filename: " + newFile.Name);
                LogUtil.Log("");
            }
            else
            {
                LogUtil.Log("Match Updated (TV): " + record.Title + ", " + record.SubTitle + ":");
                LogUtil.Log("\tOld Filename: " + oldFile.Name);
                LogUtil.Log("\tNew Filename: " + newFile.Name);
                LogUtil.Log("");
            }
        }
Пример #3
0
        public void Rename(Recording record, Series series, Episode episode)
        {
            FileUtil.CreateDirectoryPath(xbmc.GetSeriesDirectory(record.Name));
            
            //Cleanup orphaned files
            if (!File.Exists(record.Filename))
            {
                xbmc.DeleteVideoNfoFile(record.Filename);
                return;
            }

            HandleSeries(record, series);
            HandleEpisode(record, episode);
        }
Пример #4
0
 public string GetEpisodeFilename(Recording record, Episode episode, out bool same)
 {
     string oldFile = record.Filename;
     string newFile;
     int i = 1;
     do
     {
         var suffix = i == 1 ? "" : i.ToString();
         if (episode != null)
             newFile = xbmc.GetEpisodeFilename(record.Name, episode.SeasonNumber, episode.EpisodeNumber, episode.EpisodeName, suffix, "ts");
         else
             newFile = xbmc.GetAltEpisodeFilename(record.Name, record.StartTime.Value, record.SubTitle, suffix, "ts");
         same = string.Equals(oldFile, newFile, StringComparison.OrdinalIgnoreCase);
         i++;
     }
     while (File.Exists(newFile) && !same);
     return newFile;
 }