private bool ChangeFileDateToLocalAirDate(string filePath, string fileDate, string fileTime) { DateTime airDate; if (DateTime.TryParse(fileDate + ' ' + fileTime, out airDate)) { // avoiding false +ve checks and set date skewing by not using UTC (Windows) DateTime oldDateTime = _diskProvider.FileGetLastWriteUtc(filePath); if (!DateTime.Equals(airDate, oldDateTime)) { try { _diskProvider.FileSetLastWriteTime(filePath, airDate); _logger.Debug("Date of file [{0}] changed from '{1}' to '{2}'", filePath, oldDateTime, airDate); return(true); } catch (Exception ex) { _logger.WarnException("Unable to set date of file [" + filePath + "]", ex); } } } else { _logger.Debug("Could not create valid date to change file [{0}]", filePath); } return(false); }
public void Cleanup() { if (String.IsNullOrWhiteSpace(_configService.RecycleBin)) { logger.Info("Recycle Bin has not been configured, cannot cleanup."); return; } logger.Info("Removing items older than 7 days from the recycling bin"); foreach (var folder in _diskProvider.GetDirectories(_configService.RecycleBin)) { if (_diskProvider.FolderGetLastWrite(folder).AddDays(7) > DateTime.UtcNow) { logger.Debug("Folder hasn't expired yet, skipping: {0}", folder); continue; } _diskProvider.DeleteFolder(folder, true); } foreach (var file in _diskProvider.GetFiles(_configService.RecycleBin, SearchOption.TopDirectoryOnly)) { if (_diskProvider.FileGetLastWriteUtc(file).AddDays(7) > DateTime.UtcNow) { logger.Debug("File hasn't expired yet, skipping: {0}", file); continue; } _diskProvider.DeleteFile(file); } logger.Debug("Recycling Bin has been cleaned up."); }
public bool IsSatisfiedBy(LocalEpisode localEpisode) { if (localEpisode.ExistingFile) { _logger.Debug("{0} is in series folder, unpacking check", localEpisode.Path); return(true); } foreach (var workingFolder in _configService.DownloadClientWorkingFolders.Split('|')) { DirectoryInfo parent = Directory.GetParent(localEpisode.Path); while (parent != null) { if (parent.Name.StartsWith(workingFolder)) { if (OsInfo.IsMono) { _logger.Debug("{0} is still being unpacked", localEpisode.Path); return(false); } if (_diskProvider.FileGetLastWriteUtc(localEpisode.Path) > DateTime.UtcNow.AddMinutes(-5)) { _logger.Debug("{0} appears to be unpacking still", localEpisode.Path); return(false); } } parent = parent.Parent; } } return(true); }
public List <Backup> GetBackups() { var backups = new List <Backup>(); foreach (var backupType in Enum.GetValues(typeof(BackupType)).Cast <BackupType>()) { var folder = GetBackupFolder(backupType); if (_diskProvider.FolderExists(folder)) { backups.AddRange(GetBackupFiles(folder).Select(b => new Backup { Path = Path.GetFileName(b), Type = backupType, Time = _diskProvider.FileGetLastWriteUtc(b) })); } } return(backups); }
public void ConvertToLocalUrls(int seriesId, IEnumerable <MediaCover> covers) { foreach (var mediaCover in covers) { var filePath = GetCoverPath(seriesId, mediaCover.CoverType); mediaCover.Url = _configFileProvider.UrlBase + @"/MediaCover/" + seriesId + "/" + mediaCover.CoverType.ToString().ToLower() + ".jpg"; if (_diskProvider.FileExists(filePath)) { var lastWrite = _diskProvider.FileGetLastWriteUtc(filePath); mediaCover.Url += "?lastWrite=" + lastWrite.Ticks; } } }
private List <LogFileResource> GetLogFiles() { var result = new List <LogFileResource>(); var files = _diskProvider.GetFiles(_appFolderInfo.GetLogFolder(), SearchOption.TopDirectoryOnly); for (int i = 0; i < files.Length; i++) { var file = files[i]; result.Add(new LogFileResource { Id = i + 1, Filename = Path.GetFileName(file), LastWriteTime = _diskProvider.FileGetLastWriteUtc(file) }); } return(result.OrderByDescending(l => l.LastWriteTime).ToList()); }
private List <LogFileResource> GetLogFilesResponse() { var result = new List <LogFileResource>(); var files = GetLogFiles().ToList(); for (int i = 0; i < files.Count; i++) { var file = files[i]; var filename = Path.GetFileName(file); result.Add(new LogFileResource { Id = i + 1, Filename = filename, LastWriteTime = _diskProvider.FileGetLastWriteUtc(file), ContentsUrl = String.Format("{0}/api/{1}/{2}", _configFileProvider.UrlBase, Resource, filename), DownloadUrl = String.Format("{0}/{1}/{2}", _configFileProvider.UrlBase, DownloadUrlRoot, filename) }); } return(result.OrderByDescending(l => l.LastWriteTime).ToList()); }