Selaa lähdekoodia

Fix for iCal count

causefx 7 vuotta sitten
vanhempi
commit
9d343c22e6
1 muutettua tiedostoa jossa 16 lisäystä ja 5 poistoa
  1. 16 5
      api/functions/homepage-connect-functions.php

+ 16 - 5
api/functions/homepage-connect-functions.php

@@ -1234,25 +1234,26 @@ function getCalendar()
 						$end = reset($endKeys);
 						$totalDays = $GLOBALS['calendarStart'] + $GLOBALS['calendarEnd'];
 						if ($repeat) {
+							$repeatOverride = getCalenderRepeatCount(trim($icsEvent["RRULE"]));
 							switch (trim(strtolower(getCalenderRepeat($repeat)))) {
 								case 'daily':
-									$repeat = $totalDays;
+									$repeat = ($repeatOverride) ? $repeatOverride : $totalDays;
 									$term = 'days';
 									break;
 								case 'weekly':
-									$repeat = round($totalDays / 7);
+									$repeat = ($repeatOverride) ? $repeatOverride : round($totalDays / 7);
 									$term = 'weeks';
 									break;
 								case 'monthly':
-									$repeat = round($totalDays / 30);
+									$repeat = ($repeatOverride) ? $repeatOverride : round($totalDays / 30);
 									$term = 'months';
 									break;
 								case 'yearly':
-									$repeat = round($totalDays / 365);
+									$repeat = ($repeatOverride) ? $repeatOverride : round($totalDays / 365);
 									$term = 'years';
 									break;
 								default:
-									$repeat = $totalDays;
+									$repeat = ($repeatOverride) ? $repeatOverride : $totalDays;
 									$term = 'days';
 									break;
 							}
@@ -1364,6 +1365,16 @@ function getCalenderRepeatUntil($value)
 	}
 }
 
+function getCalenderRepeatCount($value)
+{
+	$first = explode('COUNT=', $value);
+	if (count($first) > 1) {
+		return $first[1];
+	} else {
+		return false;
+	}
+}
+
 function getSonarrCalendar($array, $number)
 {
 	$array = json_decode($array, true);