/// <summary> /// Adds the supplied Media item to the list of already queued media. /// </summary> public void AddMediaToList(PlayOnVideo media) { var skipFileName = SkipFileNameFromMedia(media); var fs = new FileStream(skipFileName, FileMode.CreateNew); fs.Dispose(); }
/// <summary> /// Generates the skip filename for a media item. /// </summary> private string SkipFileNameFromMedia(PlayOnVideo media) { var temp = String.Format("{0} - {1}.playpass.skip", media.Series, media.MediaTitle); var re = new Regex("[<>:\"/\\|?*]"); temp = re.Replace(temp, "_").TrimStart(' ', '-'); return(Path.Combine(_skipFilePath, temp)); }
/// <summary> /// Adds the supplied Media item to the list of already queued media. /// </summary> public void AddMediaToList(PlayOnVideo media) { if (MediaInList(media)) { return; } _list.Add(KeyFromMedia(media)); }
/// <summary> /// Checks the local file system to see if the item has already been recorded. If not, it will queue the video for record in PlayLater. /// </summary> void QueueMedia(PlayOnVideo Item) { bool Success = false; string Message = ""; WriteOutput(" QUEUING: " + Item.Name + " (" + Item.RunTime + ")"); string FileName = String.Format("{0} - {1}{2}", Item.Series, Item.MediaTitle, MediaFileExt); Regex re = new Regex("[<>:\"/\\|?*]"); FileName = re.Replace(FileName, "_").TrimStart(' ', '-'); if (File.Exists(Path.Combine(MediaStorageLocation, FileName))) { Message = String.Format("Video already recorded to {0}.", Path.Combine(MediaStorageLocation, FileName)); } else if (_MaxRunTime.TotalSeconds == 0 || _QueuedRunTime.Add(Item.RunTime) < _MaxRunTime) { if (!QueueMode) { Success = true; Message = "Run in queue mode to record"; _QueuedRunTime = _QueuedRunTime.Add(Item.RunTime); } else { try { QueueVideoResult QueueResult = Item.AddToPlayLaterQueue(); if (QueueResult == QueueVideoResult.PlayLaterNotFound) { Message = "PlayLater queue link not found (Is PlayLater running?)"; } else if (QueueResult == QueueVideoResult.AlreadyInQueue) { Message = "Media item is already in the queue"; } if (QueueResult == QueueVideoResult.Success) { Success = true; _QueuedRunTime = _QueuedRunTime.Add(Item.RunTime); } } catch (Exception ex) { Message = ex.Message.ToString(); } } } else { Message = "Exceeds total runtime"; } WriteLog(" {0}{1}", (Success ? "[Success" : "[Skipped"), (Message == "" ? "" : ": " + Message) + "]"); }
/// <summary> /// Checks to see if the item has already been recorded. If not, it will queue the video for recording in PlayLater. /// </summary> private void QueueMedia(PlayOnVideo media) { var success = false; string message; if (SkipMode) { message = "Manually skipped."; _queueValidator.AddMediaToQueueList(media); } else if (_queueValidator.CanQueueMedia(media, out message)) { if (!QueueMode) { success = true; message = "Pending queue mode."; _queueValidator.AddMediaToCounts(media); } else { try { var queueResult = _playOn.QueueMedia(media); if (queueResult == PlayOnConstants.QueueVideoResult.PlayLaterNotFound) { message = "PlayLater queue link not found. PlayLater may not be running."; } else if (queueResult == PlayOnConstants.QueueVideoResult.AlreadyInQueue) { message = "Already queued."; } success = (queueResult == PlayOnConstants.QueueVideoResult.Success); if (success) { _queueValidator.AddMediaToQueueList(media); } } catch (Exception ex) { message = ex.Message; } } } _logManager.Log("{0}{1}", (success ? "Queued" : "Skipped"), (message == "" ? "" : ": " + message)); }
public bool CanQueueMedia(PlayOnVideo media, out string message) { var retValue = false; if (_queueList.MediaInList(media)) { message = "Already recorded or skipped."; } else if (QueueCountLimit > 0 && QueueCountLimit <= _queuedCount) { message = "Queue limit reached."; } else if (QueueDurationLimit.Ticks > 0 && QueueDurationLimit <= _queuedDuration.Add(RunTimeToTimeSpan(media.RunTime))) { message = "Queue duration limit reached."; } else { message = ""; retValue = true; } return(retValue); }
public void AddMediaToQueueList(PlayOnVideo media) { _queueList.AddMediaToList(media); AddMediaToCounts(media); }
public void AddMediaToCounts(PlayOnVideo media) { _queuedCount++; _queuedDuration = _queuedDuration.Add(RunTimeToTimeSpan(media.RunTime)); }
/// <summary> /// Indicates if a skip file exists for the supplied media item. /// </summary> public bool MediaInList(PlayOnVideo media) { return(File.Exists(SkipFileNameFromMedia(media))); }
/// <summary> /// Generates the skip filename for a media item. /// </summary> private static string KeyFromMedia(PlayOnVideo media) { return(media.Series + " - " + media.MediaTitle); }
/// <summary> /// Indicates if a skip file exists for the supplied media item. /// </summary> public bool MediaInList(PlayOnVideo media) { return(_list.Contains(KeyFromMedia(media))); }