Ver código fonte

Merge pull request #1491 from HalianElf/v2-develop

Radarr Unmonitored/Cinema Release Toggles
causefx 5 anos atrás
pai
commit
3de3032fa5
2 arquivos alterados com 70 adições e 11 exclusões
  1. 4 0
      api/config/default.php
  2. 66 11
      api/homepage/radarr.php

+ 4 - 0
api/config/default.php

@@ -66,6 +66,10 @@ return array(
 	'lidarrSocksEnabled' => false,
 	'lidarrSocksAuth' => '999',
 	'radarrURL' => '',
+	'radarrUnmonitored' => false,
+	'radarrPhysicalRelease' => true,
+	'radarrDigitalRelease' => false,
+	'radarrCinemaRelease' => false,
 	'radarrToken' => '',
 	'radarrSocksEnabled' => false,
 	'radarrSocksAuth' => '999',

+ 66 - 11
api/homepage/radarr.php

@@ -155,6 +155,30 @@ trait RadarrHomepageItem
 						'label' => 'Refresh Seconds',
 						'value' => $this->config['calendarRefresh'],
 						'options' => $this->timeOptions()
+					),
+					array(
+						'type' => 'switch',
+						'name' => 'radarrUnmonitored',
+						'label' => 'Show Unmonitored',
+						'value' => $this->config['radarrUnmonitored']
+					),
+					array(
+						'type' => 'switch',
+						'name' => 'radarrPhysicalRelease',
+						'label' => 'Show Physical Release',
+						'value' => $this->config['radarrPhysicalRelease']
+					),
+					array(
+						'type' => 'switch',
+						'name' => 'radarrDigitalRelease',
+						'label' => 'Show Digital Release',
+						'value' => $this->config['radarrDigitalRelease']
+					),
+					array(
+						'type' => 'switch',
+						'name' => 'radarrCinemaRelease',
+						'label' => 'Show Cinema Releases',
+						'value' => $this->config['radarrCinemaRelease']
 					)
 				),
 				'Test Connection' => array(
@@ -234,7 +258,7 @@ trait RadarrHomepageItem
 				],
 				'not_empty' => [
 					'radarrURL',
-					'lidarrToken'
+					'radarrToken'
 				]
 			],
 			'queue' => [
@@ -323,7 +347,7 @@ trait RadarrHomepageItem
 		foreach ($list as $key => $value) {
 			try {
 				$downloader = new Kryptonit3\Sonarr\Sonarr($value['url'], $value['token']);
-				$results = $downloader->getCalendar($startDate, $endDate);
+				$results = $downloader->getCalendar($startDate, $endDate, $this->config['radarrUnmonitored']);
 				$result = json_decode($results, true);
 				if (is_array($result) || is_object($result)) {
 					$calendar = (array_key_exists('error', $result)) ? '' : $this->formatRadarrCalendar($results, $key, $value['url']);
@@ -349,17 +373,41 @@ trait RadarrHomepageItem
 		$gotCalendar = array();
 		$i = 0;
 		foreach ($array as $child) {
-			if (isset($child['physicalRelease'])) {
+			for ($j = 0; $j < 3; $j++) {
+				$type = [];
+				if ($j == 0 && $this->config['radarrPhysicalRelease'] && isset($child['physicalRelease'])) {
+					$releaseDate = $child['physicalRelease'];
+					array_push($type, "physical");
+					if (isset($child['digitalRelease']) && $child['physicalRelease'] == $child['digitalRelease']) {
+						array_push($type, "digital");
+						$j++;
+					}
+					if (isset($child['inCinemas']) && $child['physicalRelease'] == $child['inCinemas']) {
+						array_push($type, "cinema");
+						$j += 2;
+					}
+				} elseif ($j == 1 && $this->config['radarrDigitalRelease'] && isset($child['digitalRelease'])) {
+					$releaseDate = $child['digitalRelease'];
+					array_push($type, "digital");
+					if (isset($child['inCinemas']) && $child['digitalRelease'] == $child['inCinemas']) {
+						array_push($type, "cinema");
+						$j++;
+					}
+				} elseif ($j == 2 && $this->config['radarrCinemaRelease'] && isset($child['inCinemas'])) {
+					$releaseDate = $child['inCinemas'];
+					array_push($type, "cinema");
+				} else {
+					continue;
+				}
 				$i++;
 				$movieName = $child['title'];
 				$movieID = $child['tmdbId'];
 				if (!isset($movieID)) {
 					$movieID = "";
 				}
-				$physicalRelease = $child['physicalRelease'];
-				$physicalRelease = strtotime($physicalRelease);
-				$physicalRelease = date("Y-m-d", $physicalRelease);
-				if (new DateTime() < new DateTime($physicalRelease)) {
+				$releaseDate = strtotime($releaseDate);
+				$releaseDate = date("Y-m-d", $releaseDate);
+				if (new DateTime() < new DateTime($releaseDate)) {
 					$notReleased = "true";
 				} else {
 					$notReleased = "false";
@@ -402,10 +450,16 @@ trait RadarrHomepageItem
 					}
 				}
 				$alternativeTitles = "";
-				foreach ($child['alternativeTitles'] as $alternative) {
-					$alternativeTitles .= $alternative['title'] . ', ';
+				if (!empty($child['alternativeTitles'])) {
+					foreach ($child['alternativeTitles'] as $alternative) {
+						$alternativeTitles .= $alternative['title'] . ', ';
+					}
+				} elseif (!empty($child['alternateTitles'])) { //v3 API
+					foreach ($child['alternateTitles'] as $alternative) {
+						$alternativeTitles .= $alternative['title'] . ', ';
+					}
 				}
-				$alternativeTitles = empty($child['alternativeTitles']) ? "" : substr($alternativeTitles, 0, -2);
+				$alternativeTitles = empty($alternativeTitles) ? "" : substr($alternativeTitles, 0, -2);
 				$details = array(
 					"topTitle" => $movieName,
 					"bottomTitle" => $alternativeTitles,
@@ -426,11 +480,12 @@ trait RadarrHomepageItem
 				array_push($gotCalendar, array(
 					"id" => "Radarr-" . $number . "-" . $i,
 					"title" => $movieName,
-					"start" => $physicalRelease,
+					"start" => $releaseDate,
 					"className" => "inline-popups bg-calendar movieID--" . $movieID,
 					"imagetype" => "film " . $downloaded,
 					"imagetypeFilter" => "film",
 					"downloadFilter" => $downloaded,
+					"releaseType" => $type,
 					"bgColor" => str_replace('text', 'bg', $downloaded),
 					"details" => $details
 				));