Code Duplication    Length = 22-22 lines in 2 locations

_inc/lib/icalendar-reader.php 2 locations

@@ 379-400 (lines=22) @@
376
									$exdate_compare = date( 'Ymd\THis', $event_start_timestamp );
377
								}
378
379
								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 ) ) {
380
									if ( 8 == strlen( $event['DTSTART'] ) ) {
381
										$event['DTSTART'] = date( 'Ymd', $event_start_timestamp );
382
										$event['DTEND'] = date( 'Ymd', $event_end_timestamp );
383
									} else {
384
										$event['DTSTART'] = date( 'Ymd\THis', $event_start_timestamp );
385
										$event['DTEND'] = date( 'Ymd\THis', $event_end_timestamp );
386
									}
387
									if ( $this->timezone->getName() && 8 != strlen( $event['DTSTART'] ) ) {
388
										try {
389
											$adjusted_time = new DateTime( $event['DTSTART'], new DateTimeZone( $this->timezone->getName() ) );
390
											$adjusted_time->setTimeZone( new DateTimeZone( 'UTC' ) );
391
											$event['DTSTART'] = $adjusted_time->format('Ymd\THis');
392
393
											$event['DTEND'] = date( 'Ymd\THis', strtotime( $event['DTSTART'] ) + $duration );
394
										} catch ( Exception $e ) {
395
											// Invalid argument to DateTime
396
										}
397
									}
398
									$upcoming[] = $event;
399
									$count_counter++;
400
								}
401
402
								// Move forward one day
403
								$byday_event_date_start = strtotime( date( 'Ymd\T', strtotime( '+ 1 day', $event_start_timestamp ) ) . $start_time );
@@ 421-442 (lines=22) @@
418
								$exdate_compare = date( 'Ymd\THis', $event_start_timestamp );
419
							}
420
421
							if ( $event_end_timestamp > $current && $event_start_timestamp < $until && $count_counter <= $rrule_count && $event_start_timestamp >= $date_from_ics && ! in_array( $exdate_compare, $exdates ) ) {
422
								if ( 8 == strlen( $event['DTSTART'] ) ) {
423
									$event['DTSTART'] = date( 'Ymd', $event_start_timestamp );
424
									$event['DTEND'] = date( 'Ymd', $event_end_timestamp );
425
								} else {
426
									$event['DTSTART'] = date( 'Ymd\T', $event_start_timestamp ) . $start_time;
427
									$event['DTEND'] = date( 'Ymd\T', $event_end_timestamp ) . $end_time;
428
								}
429
								if ( $this->timezone->getName() && 8 != strlen( $event['DTSTART'] ) ) {
430
									try {
431
										$adjusted_time = new DateTime( $event['DTSTART'], new DateTimeZone( $this->timezone->getName() ) );
432
										$adjusted_time->setTimeZone( new DateTimeZone( 'UTC' ) );
433
										$event['DTSTART'] = $adjusted_time->format('Ymd\THis');
434
435
										$event['DTEND'] = date( 'Ymd\THis', strtotime( $event['DTSTART'] ) + $duration );
436
									} catch ( Exception $e ) {
437
										// Invalid argument to DateTime
438
									}
439
								}
440
								$upcoming[] = $event;
441
								$count_counter++;
442
							}
443
						}
444
445
						// Set up next interval and reset $event['DTSTART'] and $event['DTEND'], keeping timestamps intact