Преглед на файлове

fix Emby HomePage Add-in - Item Details URL Needs updating (#1290) - take2 (#1545)

CauseFX преди 5 години
родител
ревизия
964f386aa7
променени са 4 файла, в които са добавени 31 реда и са изтрити 4 реда
  1. 2 0
      api/config/default.php
  2. 5 0
      api/functions/organizr-functions.php
  3. 12 2
      api/homepage/emby.php
  4. 12 2
      api/homepage/jellyfin.php

+ 2 - 0
api/config/default.php

@@ -240,10 +240,12 @@ return array(
 	'homepageEmbyStreamsAuth' => '1',
 	'homepageEmbyRecent' => false,
 	'homepageEmbyRecentAuth' => '1',
+	'homepageEmbyLink' => ' http://app.emby.media/#!/item/item.html?id={id}&serverId={serverId}',
 	'homepageJellyfinStreams' => false,
 	'homepageJellyStreamsAuth' => '1',
 	'homepageJellyfinRecent' => false,
 	'homepageJellyfinRecentAuth' => '1',
+	'homepageJellyfinLink' => 'http://hostname:port/jellyfin/web/index.html#!/details?id={id}&serverId={serverId}',
 	'calendarDefault' => 'month',
 	'calendarFirstDay' => '1',
 	'calendarStart' => '14',

+ 5 - 0
api/functions/organizr-functions.php

@@ -600,4 +600,9 @@ trait OrganizrFunctions
 		}
 		return $approved;
 	}
+	
+	public function userDefinedIdReplacementLink($link, $variables)
+	{
+		return strtr($link, $variables);
+	}
 }

+ 12 - 2
api/homepage/emby.php

@@ -105,6 +105,13 @@ trait EmbyHomepageItem
 					),
 				),
 				'Misc Options' => array(
+					array(
+						'type' => 'input',
+						'name' => 'homepageEmbyLink',
+						'label' => 'Emby Homepage Link URL',
+						'value' => $this->config['homepageEmbyLink'],
+						'help' => 'Available variables: {id} {serverId}'
+					),
 					array(
 						'type' => 'input',
 						'name' => 'embyTabName',
@@ -538,8 +545,11 @@ trait EmbyHomepageItem
 		$embyItem['user'] = ($this->config['homepageShowStreamNames'] && $this->qualifyRequest($this->config['homepageShowStreamNamesAuth'])) ? @(string)$itemDetails['UserName'] : "";
 		$embyItem['userThumb'] = '';
 		$embyItem['userAddress'] = (isset($itemDetails['RemoteEndPoint']) ? $itemDetails['RemoteEndPoint'] : "x.x.x.x");
-		$embyURL = 'https://app.emby.media/#!/item/item.html?id=';
-		$embyItem['address'] = $this->config['embyTabURL'] ? rtrim($this->config['embyTabURL'], '/') . "/web/#!/item/item.html?id=" . $embyItem['uid'] : $embyURL . $embyItem['uid'] . "&serverId=" . $embyItem['id'];
+		$embyVariablesForLink = [
+			'{id}' => $embyItem['uid'],
+			'{serverId}' => $embyItem['id']
+		];
+		$embyItem['address'] = $this->userDefinedIdReplacementLink($this->config['homepageEmbyLink'], $embyVariablesForLink);
 		$embyItem['nowPlayingOriginalImage'] = 'api/v2/homepage/image?source=emby&type=' . $embyItem['nowPlayingImageType'] . '&img=' . $embyItem['nowPlayingThumb'] . '&height=' . $nowPlayingHeight . '&width=' . $nowPlayingWidth . '&key=' . $embyItem['nowPlayingKey'] . '$' . $this->randString();
 		$embyItem['originalImage'] = 'api/v2/homepage/image?source=emby&type=' . $embyItem['imageType'] . '&img=' . $embyItem['thumb'] . '&height=' . $height . '&width=' . $width . '&key=' . $embyItem['key'] . '$' . $this->randString();
 		$embyItem['openTab'] = $this->config['embyTabURL'] && $this->config['embyTabName'] ? true : false;

+ 12 - 2
api/homepage/jellyfin.php

@@ -106,6 +106,13 @@ trait JellyfinHomepageItem
 					),
 				),
 				'Misc Options' => array(
+					array(
+						'type' => 'input',
+						'name' => 'homepageJellyfinLink',
+						'label' => 'Jellyfin Homepage Link URL',
+						'value' => $this->config['homepageJellyfinLink'],
+						'help' => 'Available variables: {id} {serverId}'
+					),
 					array(
 						'type' => 'input',
 						'name' => 'jellyfinTabName',
@@ -539,8 +546,11 @@ trait JellyfinHomepageItem
 		$jellyfinItem['user'] = ($this->config['homepageShowStreamNames'] && $this->qualifyRequest($this->config['homepageShowStreamNamesAuth'])) ? @(string)$itemDetails['UserName'] : "";
 		$jellyfinItem['userThumb'] = '';
 		$jellyfinItem['userAddress'] = (isset($itemDetails['RemoteEndPoint']) ? $itemDetails['RemoteEndPoint'] : "x.x.x.x");
-		$jellyfinURL = $this->config['jellyfinURL'] . '/web/index.html#!/details?id=';
-		$jellyfinItem['address'] = $this->config['jellyfinTabURL'] ? rtrim($this->config['jellyfinTabURL'], '/') . "/web/#!/item/item.html?id=" . $jellyfinItem['uid'] : $jellyfinURL . $jellyfinItem['uid'] . "&serverId=" . $jellyfinItem['id'];
+		$jellfinVariablesForLink = [
+			'{id}' => $jellyfinItem['uid'],
+			'{serverId}' => $jellyfinItem['id']
+		];
+		$jellyfinItem['address'] = $this->userDefinedIdReplacementLink($this->config['homepageJellyfinLink'], $jellfinVariablesForLink);
 		$jellyfinItem['nowPlayingOriginalImage'] = 'api/v2/homepage/image?source=jellyfin&type=' . $jellyfinItem['nowPlayingImageType'] . '&img=' . $jellyfinItem['nowPlayingThumb'] . '&height=' . $nowPlayingHeight . '&width=' . $nowPlayingWidth . '&key=' . $jellyfinItem['nowPlayingKey'] . '$' . $this->randString();
 		$jellyfinItem['originalImage'] = 'api/v2/homepage/image?source=jellyfin&type=' . $jellyfinItem['imageType'] . '&img=' . $jellyfinItem['thumb'] . '&height=' . $height . '&width=' . $width . '&key=' . $jellyfinItem['key'] . '$' . $this->randString();
 		$jellyfinItem['openTab'] = $this->config['jellyfinTabURL'] && $this->config['jellyfinTabName'] ? true : false;