RecordingHelper.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #pragma warning disable CS1591
  2. #pragma warning disable SA1600
  3. using System;
  4. using System.Globalization;
  5. using MediaBrowser.Controller.LiveTv;
  6. namespace Emby.Server.Implementations.LiveTv.EmbyTV
  7. {
  8. internal class RecordingHelper
  9. {
  10. public static DateTime GetStartTime(TimerInfo timer)
  11. {
  12. return timer.StartDate.AddSeconds(-timer.PrePaddingSeconds);
  13. }
  14. public static string GetRecordingName(TimerInfo info)
  15. {
  16. var name = info.Name;
  17. if (info.IsProgramSeries)
  18. {
  19. var addHyphen = true;
  20. if (info.SeasonNumber.HasValue && info.EpisodeNumber.HasValue)
  21. {
  22. name += string.Format(
  23. CultureInfo.InvariantCulture,
  24. " S{0}E{1}",
  25. info.SeasonNumber.Value.ToString("00", CultureInfo.InvariantCulture),
  26. info.EpisodeNumber.Value.ToString("00", CultureInfo.InvariantCulture));
  27. addHyphen = false;
  28. }
  29. else if (info.OriginalAirDate.HasValue)
  30. {
  31. if (info.OriginalAirDate.Value.Date.Equals(info.StartDate.Date))
  32. {
  33. name += " " + GetDateString(info.StartDate);
  34. }
  35. else
  36. {
  37. name += " " + info.OriginalAirDate.Value.ToLocalTime().ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
  38. }
  39. }
  40. else
  41. {
  42. name += " " + GetDateString(info.StartDate);
  43. }
  44. if (!string.IsNullOrWhiteSpace(info.EpisodeTitle))
  45. {
  46. if (addHyphen)
  47. {
  48. name += " -";
  49. }
  50. name += " " + info.EpisodeTitle;
  51. }
  52. }
  53. else if (info.IsMovie && info.ProductionYear != null)
  54. {
  55. name += " (" + info.ProductionYear + ")";
  56. }
  57. else
  58. {
  59. name += " " + GetDateString(info.StartDate);
  60. }
  61. return name;
  62. }
  63. private static string GetDateString(DateTime date)
  64. {
  65. date = date.ToLocalTime();
  66. return string.Format(
  67. CultureInfo.InvariantCulture,
  68. "{0}_{1}_{2}_{3}_{4}_{5}",
  69. date.Year.ToString("0000", CultureInfo.InvariantCulture),
  70. date.Month.ToString("00", CultureInfo.InvariantCulture),
  71. date.Day.ToString("00", CultureInfo.InvariantCulture),
  72. date.Hour.ToString("00", CultureInfo.InvariantCulture),
  73. date.Minute.ToString("00", CultureInfo.InvariantCulture),
  74. date.Second.ToString("00", CultureInfo.InvariantCulture));
  75. }
  76. }
  77. }