Code Duplication    Length = 22-22 lines in 2 locations

_inc/lib/icalendar-reader.php 2 locations

@@ 365-386 (lines=22) @@
362
									$exdate_compare = date( 'Ymd\THis', $event_start_timestamp );
363
								}
364
365
								if ( in_array( $day, $bydays ) && $event_end_timestamp > $current && $event_start_timestamp < $until && $count_counter <= $rrule_count && $event_start_timestamp >= $date_from_ics && ! in_array( $exdate_compare, $exdates ) ) {
366
									if ( 8 == strlen( $event['DTSTART'] ) ) {
367
										$event['DTSTART'] = date( 'Ymd', $event_start_timestamp );
368
										$event['DTEND'] = date( 'Ymd', $event_end_timestamp );
369
									} else {
370
										$event['DTSTART'] = date( 'Ymd\THis', $event_start_timestamp );
371
										$event['DTEND'] = date( 'Ymd\THis', $event_end_timestamp );
372
									}
373
									if ( $this->timezone->getName() && 8 != strlen( $event['DTSTART'] ) ) {
374
										try {
375
											$adjusted_time = new DateTime( $event['DTSTART'], new DateTimeZone( $this->timezone->getName() ) );
376
											$adjusted_time->setTimeZone( new DateTimeZone( 'UTC' ) );
377
											$event['DTSTART'] = $adjusted_time->format('Ymd\THis');
378
379
											$event['DTEND'] = date( 'Ymd\THis', strtotime( $event['DTSTART'] ) + $duration );
380
										} catch ( Exception $e ) {
381
											// Invalid argument to DateTime
382
										}
383
									}
384
									$upcoming[] = $event;
385
									$count_counter++;
386
								}
387
388
								// Move forward one day
389
								$byday_event_date_start = strtotime( date( 'Ymd\T', strtotime( '+ 1 day', $event_start_timestamp ) ) . $start_time );
@@ 407-428 (lines=22) @@
404
								$exdate_compare = date( 'Ymd\THis', $event_start_timestamp );
405
							}
406
407
							if ( $event_end_timestamp > $current && $event_start_timestamp < $until && $count_counter <= $rrule_count && $event_start_timestamp >= $date_from_ics && ! in_array( $exdate_compare, $exdates ) ) {
408
								if ( 8 == strlen( $event['DTSTART'] ) ) {
409
									$event['DTSTART'] = date( 'Ymd', $event_start_timestamp );
410
									$event['DTEND'] = date( 'Ymd', $event_end_timestamp );
411
								} else {
412
									$event['DTSTART'] = date( 'Ymd\T', $event_start_timestamp ) . $start_time;
413
									$event['DTEND'] = date( 'Ymd\T', $event_end_timestamp ) . $end_time;
414
								}
415
								if ( $this->timezone->getName() && 8 != strlen( $event['DTSTART'] ) ) {
416
									try {
417
										$adjusted_time = new DateTime( $event['DTSTART'], new DateTimeZone( $this->timezone->getName() ) );
418
										$adjusted_time->setTimeZone( new DateTimeZone( 'UTC' ) );
419
										$event['DTSTART'] = $adjusted_time->format('Ymd\THis');
420
421
										$event['DTEND'] = date( 'Ymd\THis', strtotime( $event['DTSTART'] ) + $duration );
422
									} catch ( Exception $e ) {
423
										// Invalid argument to DateTime
424
									}
425
								}
426
								$upcoming[] = $event;
427
								$count_counter++;
428
							}
429
						}
430
431
						// Set up next interval and reset $event['DTSTART'] and $event['DTEND'], keeping timestamps intact