Ejemplo n.º 1
0
        /// <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();
        }
Ejemplo n.º 2
0
        /// <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));
        }
Ejemplo n.º 3
0
 /// <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));
 }
Ejemplo n.º 4
0
        /// <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) + "]");
        }
Ejemplo n.º 5
0
        /// <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));
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
 public void AddMediaToQueueList(PlayOnVideo media)
 {
     _queueList.AddMediaToList(media);
     AddMediaToCounts(media);
 }
Ejemplo n.º 8
0
 public void AddMediaToCounts(PlayOnVideo media)
 {
     _queuedCount++;
     _queuedDuration = _queuedDuration.Add(RunTimeToTimeSpan(media.RunTime));
 }
Ejemplo n.º 9
0
 /// <summary>
 ///     Indicates if a skip file exists for the supplied media item.
 /// </summary>
 public bool MediaInList(PlayOnVideo media)
 {
     return(File.Exists(SkipFileNameFromMedia(media)));
 }
Ejemplo n.º 10
0
 /// <summary>
 ///     Generates the skip filename for a media item.
 /// </summary>
 private static string KeyFromMedia(PlayOnVideo media)
 {
     return(media.Series + " - " + media.MediaTitle);
 }
Ejemplo n.º 11
0
 /// <summary>
 ///     Indicates if a skip file exists for the supplied media item.
 /// </summary>
 public bool MediaInList(PlayOnVideo media)
 {
     return(_list.Contains(KeyFromMedia(media)));
 }