xmltv/grab/uk_rt tv_grab_uk_rt,1.51,1.52

Nick Morrott <[email protected]> Sat, 19 Mar 2016 22:43:05 +0000
Newsgroups gmane.comp.tv.xmltv.cvs
Message-ID <[email protected]>
Update of /cvsroot/xmltv/xmltv/grab/uk_rt
In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28125/grab/uk_rt

Modified Files:
	tv_grab_uk_rt 
Log Message:
Wrap manipulation of DateTime objects in eval

Index: tv_grab_uk_rt
===================================================================
RCS file: /cvsroot/xmltv/xmltv/grab/uk_rt/tv_grab_uk_rt,v
retrieving revision 1.51
retrieving revision 1.52
diff -C2 -d -r1.51 -r1.52
*** tv_grab_uk_rt	19 Mar 2016 00:38:13 -0000	1.51
--- tv_grab_uk_rt	19 Mar 2016 22:43:03 -0000	1.52
***************
*** 2964,2993 ****
      };
      if ($@) {
!         t("  A valid programme start time could not be created for '"
                  .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
          return undef;
      }
  
!     $prog->{start} = "" . $start_dt->ymd('') . $start_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($start_dt->offset);
      t("    " . $prog->{start} . " - Start time");
  
      # Determine stop time with correct UTC offset by adding duration of
      # programme to start time
!     my $dur = DateTime::Duration->new( minutes => $prog->{'_duration_mins'} );
  
      my $stop_dt;
!     eval {
!         $stop_dt = $start_dt + $dur;
!     };
      if ($@) {
!         t("  A valid programme stop time could not be created for '"
              .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
          return undef;
      }
  
!     # Ensure correct timezone where TZ was explicitly flagged
!     $stop_dt = $stop_dt->set_time_zone('Europe/London') if (defined $prog->{'_explicit_tz'});
  
!     $prog->{stop}  = "" . $stop_dt->ymd('') . $stop_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($stop_dt->offset);
      t("    " . $prog->{stop}  . " - Stop time");
  
--- 2964,3008 ----
      };
      if ($@) {
!         t("  A valid programme start time object could not be created for '"
                  .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
          return undef;
      }
  
!     eval { $prog->{start} = "" . $start_dt->ymd('') . $start_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($start_dt->offset); };
!     if ($@) {
!         t("  A valid programme start time string could not be created for '"
!             .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
!         return undef;
!     }
      t("    " . $prog->{start} . " - Start time");
  
      # Determine stop time with correct UTC offset by adding duration of
      # programme to start time
!     my $dur_dt = DateTime::Duration->new( minutes => $prog->{'_duration_mins'} );
  
      my $stop_dt;
!     eval { $stop_dt = $start_dt + $dur_dt; };
      if ($@) {
!         t("  A valid programme stop time object could not be created for '"
              .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
          return undef;
      }
  
!     # Ensure correct timezone for stop time where TZ was explicitly flagged
!     eval { $stop_dt = $stop_dt->set_time_zone('Europe/London') if (defined $prog->{'_explicit_tz'}); };
!     if ($@) {
!         t("  An explicit timezone could not be created for '"
!             .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
!         return undef;
!     }
  
!     eval { $prog->{stop}  = "" . $stop_dt->ymd('') . $stop_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($stop_dt->offset); };
!     if ($@) {
!         t("  A valid programme stop time string could not be created for '"
!             .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
!         return undef;
!     }
! 
!     t("    " . $prog->{start} . " - Start time");
      t("    " . $prog->{stop}  . " - Stop time");
  
***************
*** 2996,3005 ****
      # correct timezone information
      #
      if (defined $channel_offset{ $prog->{channel} }) {
!         $start_dt = $start_dt + $ts_dt;
!         $stop_dt  = $stop_dt + $ts_dt;
  
!         $prog->{start} = "" . $start_dt->ymd('') . $start_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($start_dt->offset);
!         $prog->{stop}  = "" . $stop_dt->ymd('')  . $stop_dt->hms('')  . ' ' . DateTime::TimeZone->offset_as_string($stop_dt->offset);
  
          t("    " . $prog->{start} . " - Start time after applying '" . $channel_offset{ $prog->{channel} } . "' timeshift");
--- 3011,3043 ----
      # correct timezone information
      #
+     #FIXME factor out checking of datetime object manipulation - undef+next if return is defined
      if (defined $channel_offset{ $prog->{channel} }) {
!         eval { $start_dt = $start_dt + $ts_dt; };
!         if ($@) {
!             t("  A valid timeshifted programme start time object could not be created for '"
!                 .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
!             return undef;
!         }
  
!         eval { $stop_dt  = $stop_dt + $ts_dt; };
!         if ($@) {
!             t("  A valid timeshifted programme stop time object could not be created for '"
!                 .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
!             return undef;
!         }
! 
!         eval { $prog->{start} = "" . $start_dt->ymd('') . $start_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($start_dt->offset); };
!         if ($@) {
!             t("  A valid timeshifted programme start time string could not be created for '"
!                 .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
!             return undef;
!         }
! 
!         eval { $prog->{stop}  = "" . $stop_dt->ymd('')  . $stop_dt->hms('')  . ' ' . DateTime::TimeZone->offset_as_string($stop_dt->offset); };
!         if ($@) {
!             t("  A valid timeshifted programme stop time string could not be created for '"
!                 .  $prog->{'_title'} . "' ($yyyy$mm$dd $start_hr$start_mn), skipping programme");
!             return undef;
!         }
  
          t("    " . $prog->{start} . " - Start time after applying '" . $channel_offset{ $prog->{channel} } . "' timeshift");
***************
*** 3033,3037 ****
          };
          if ($@) {
!             t("  A valid channel start time could not be created for '"
                  .  $prog->{'_rt_name'} . "', skipping programme");
              return undef;
--- 3071,3075 ----
          };
          if ($@) {
!             t("  A valid channel start time object could not be created for '"
                  .  $prog->{'_rt_name'} . "', skipping programme");
              return undef;
***************
*** 3051,3055 ****
          };
          if ($@) {
!             t("  A valid channel stop time could not be created for '"
                  .  $prog->{'_rt_name'} . "', skipping programme");
              return undef;
--- 3089,3093 ----
          };
          if ($@) {
!             t("  A valid channel stop time object could not be created for '"
                  .  $prog->{'_rt_name'} . "', skipping programme");
              return undef;
***************
*** 3058,3063 ****
          # Shift channel start/stop times forward by whole days if necessary.
          if (defined $channel_offset{ $prog->{channel} } and $ts_dt->in_units( 'hours' ) % 24 == 0) {
!             $chan_start_dt = $chan_start_dt + $ts_dt;
!             $chan_stop_dt  = $chan_stop_dt  + $ts_dt;
              t("    Applying channel timeshift of " . $ts_dt->in_units( 'hours' ) . " hours");
          }
--- 3096,3113 ----
          # Shift channel start/stop times forward by whole days if necessary.
          if (defined $channel_offset{ $prog->{channel} } and $ts_dt->in_units( 'hours' ) % 24 == 0) {
!             eval { $chan_start_dt = $chan_start_dt + $ts_dt; };
!             if ($@) {
!                 t("  A valid day-shifted channel start time object could not be created for '"
!                     .  $prog->{'_rt_name'} . "', skipping programme");
!                 return undef;
!             }
! 
!             eval { $chan_stop_dt  = $chan_stop_dt  + $ts_dt; };
!             if ($@) {
!                 t("  A valid day-shifted channel stop time object could not be created for '"
!                     .  $prog->{'_rt_name'} . "', skipping programme");
!                 return undef;
!             }
! 
              t("    Applying channel timeshift of " . $ts_dt->in_units( 'hours' ) . " hours");
          }
***************
*** 3066,3075 ****
          my $chan_stops_next_day = 0;
          if ($chan_start_dt >= $chan_stop_dt) {
!             $chan_stop_dt = $chan_stop_dt + $day_dur;
              $chan_stops_next_day = 1;
          }
  
!         my $chan_start  = "" . $chan_start_dt->ymd('') . $chan_start_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($chan_start_dt->offset);
!         my $chan_stop  = "" . $chan_stop_dt->ymd('') . $chan_stop_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($chan_stop_dt->offset);
  
          t("    " . $chan_start . " - Start time of channel (normal)");
--- 3116,3143 ----
          my $chan_stops_next_day = 0;
          if ($chan_start_dt >= $chan_stop_dt) {
!             eval { $chan_stop_dt = $chan_stop_dt + $day_dur; };
!             if ($@) {
!                 t("  A valid corrected channel stop time object could not be created for '"
!                     .  $prog->{'_rt_name'} . "', skipping programme");
!                 return undef;
!             }
              $chan_stops_next_day = 1;
          }
  
!         my $chan_start;
!         eval { $chan_start  = "" . $chan_start_dt->ymd('') . $chan_start_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($chan_start_dt->offset); };
!         if ($@) {
!             t("  A valid channel start time string could not be created for '"
!                 .  $prog->{'_rt_name'} . "', skipping programme");
!             return undef;
!         }
! 
!         my $chan_stop;
!         eval { $chan_stop  = "" . $chan_stop_dt->ymd('') . $chan_stop_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($chan_stop_dt->offset); };
!         if ($@) {
!             t("  A valid channel stop time string could not be created for '"
!                 .  $prog->{'_rt_name'} . "', skipping programme");
!             return undef;
!         }
  
          t("    " . $chan_start . " - Start time of channel (normal)");
***************
*** 3081,3084 ****
--- 3149,3153 ----
              t("    '" . $prog->{'_title'} . "' shown whilst channel is on-air, adding");
          }
+ 
          # If the channel starts and stops broadcasting on the same
          # calendar day and the programme's start time is outside the
***************
*** 3109,3117 ****
              # channel is on-air the _previous_ day.
              #
!             $chan_start_dt = $chan_start_dt - $day_dur;
!             $chan_stop_dt  = $chan_stop_dt - $day_dur;
  
!             my $chan_start = "" . $chan_start_dt->ymd('') . $chan_start_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($chan_start_dt->offset);
!             my $chan_stop  = "" . $chan_stop_dt->ymd('')  . $chan_stop_dt->hms('')  . ' ' . DateTime::TimeZone->offset_as_string($chan_stop_dt->offset);
  
              t("    " . $chan_start . " - Start time of channel (previous day)");
--- 3178,3210 ----
              # channel is on-air the _previous_ day.
              #
!             eval { $chan_start_dt = $chan_start_dt - $day_dur; };
!             if ($@) {
!                 t("  A valid channel start time object (prev day) could not be created for '"
!                     .  $prog->{'_rt_name'} . "', skipping programme");
!                 return undef;
!             }
  
!             eval { $chan_stop_dt  = $chan_stop_dt - $day_dur; };
!             if ($@) {
!                 t("  A valid channel stop time object (prev day) could not be created for '"
!                     .  $prog->{'_rt_name'} . "', skipping programme");
!                 return undef;
!             }
! 
!             my $chan_start;
!             eval { $chan_start = "" . $chan_start_dt->ymd('') . $chan_start_dt->hms('') . ' ' . DateTime::TimeZone->offset_as_string($chan_start_dt->offset); };
!             if ($@) {
!                 t("  A valid channel start time string (prev day) could not be created for '"
!                     .  $prog->{'_rt_name'} . "', skipping programme");
!                 return undef;
!             }
! 
!             my $chan_stop;
!             eval { $chan_stop  = "" . $chan_stop_dt->ymd('')  . $chan_stop_dt->hms('')  . ' ' . DateTime::TimeZone->offset_as_string($chan_stop_dt->offset); };
!             if ($@) {
!                 t("  A valid channel stop time string (prev day) could not be created for '"
!                     .  $prog->{'_rt_name'} . "', skipping programme");
!                 return undef;
!             }
  
              t("    " . $chan_start . " - Start time of channel (previous day)");


------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140