Media['duration']; $plexItem['watched'] = (!empty($plexItem['elapsed']) ? floor(($plexItem['elapsed'] / $plexItem['duration']) * 100) : 0); $plexItem['transcoded'] = floor($item->TranscodeSession['progress']- $plexItem['watched']); $plexItem['stream'] = isset($item->Media->Part->Stream['decision']) ? (string)$item->Media->Part->Stream['decision']: ''; $plexItem['id'] = str_replace('"', '', (string)$item->Player['machineIdentifier']); $plexItem['state'] = (((string)$item->Player['state'] == "paused") ? "pause" : "play"); $plexItem['user'] = ($GLOBALS['homepageShowStreamNames'] && qualifyRequest(1) ) ? (string)$item->User['title'] : ""; $plexItem['address'] = $GLOBALS['plexTabURL'] ? $GLOBALS['plexTabURL']."/web/index.html#!/server/".$GLOBALS['plexID']."/details?key=/library/metadata/".$item['ratingKey'] : "https://app.plex.tv/web/app#!/server/".$GLOBALS['plexID']."/details?key=/library/metadata/".$item['ratingKey']; $plexItem['nowPlayingOriginalImage'] = 'api/?v1/image&source=plex&img='.$plexItem['nowPlayingThumb'].'&height='.$nowPlayingHeight.'&width='.$nowPlayingWidth.'&key='.$plexItem['nowPlayingKey'].'$'.randString(); $plexItem['originalImage'] = 'api/?v1/image&source=plex&img='.$plexItem['thumb'].'&height='.$height.'&width='.$width.'&key='.$plexItem['key'].'$'.randString(); if (file_exists($cacheDirectory.$plexItem['nowPlayingKey'].'.jpg')){ $plexItem['nowPlayingImageURL'] = $cacheDirectoryWeb.$plexItem['nowPlayingKey'].'.jpg'; } if (file_exists($cacheDirectory.$plexItem['key'].'.jpg')){ $plexItem['imageURL'] = $cacheDirectoryWeb.$plexItem['key'].'.jpg'; } if (file_exists($cacheDirectory.$plexItem['nowPlayingKey'].'.jpg') && (time() - 604800) > filemtime($cacheDirectory.$plexItem['nowPlayingKey'].'.jpg') || !file_exists($cacheDirectory.$plexItem['nowPlayingKey'].'.jpg')) { $plexItem['nowPlayingImageURL'] = 'api/?v1/image&source=plex&img='.$plexItem['nowPlayingThumb'].'&height='.$nowPlayingHeight.'&width='.$nowPlayingWidth.'&key='.$plexItem['nowPlayingKey'].''; } if (file_exists($cacheDirectory.$plexItem['key'].'.jpg') && (time() - 604800) > filemtime($cacheDirectory.$plexItem['key'].'.jpg') || !file_exists($cacheDirectory.$plexItem['key'].'.jpg')) { $plexItem['imageURL'] = 'api/?v1/image&source=plex&img='.$plexItem['thumb'].'&height='.$height.'&width='.$width.'&key='.$plexItem['key'].''; } if(!$plexItem['nowPlayingThumb'] ){ $plexItem['nowPlayingOriginalImage'] = $plexItem['nowPlayingImageURL'] = "images/no-np.png"; $plexItem['nowPlayingKey'] = "no-np"; } if(!$plexItem['thumb'] ){ $plexItem['originalImage'] = $plexItem['imageURL'] = "images/no-list.png"; $plexItem['key'] = "no-list"; } if(isset($useImage)){ $plexItem['useImage'] = $useImage; } return $plexItem; } function getPlexStreams(){ if(!empty($GLOBALS['plexURL']) && !empty($GLOBALS['plexToken']) && !empty($GLOBALS['plexID'] && qualifyRequest($GLOBALS['homepagePlexStreamsAuth']))){ try{ $url = qualifyURL($GLOBALS['plexURL']); $url = $url."/status/sessions?X-Plex-Token=".$GLOBALS['plexToken']; $options = (localURL($url)) ? array('verify' => false ) : array(); $response = Requests::get($url, array(), $options); libxml_use_internal_errors(true); if($response->success){ $items = array(); $plex = simplexml_load_string($response->body); foreach($plex AS $child) { $items[] = resolvePlexItem($child); } $api['content'] = $items; $api['plexID'] = $GLOBALS['plexID']; $api['showNames'] = true; $api['group'] = '1'; return $api; } }catch( Requests_Exception $e ) { writeLog('error', 'Plex Connect Function - Error: '.$e->getMessage(), 'SYSTEM'); }; } return false; } function getPlexRecent(){ if(!empty($GLOBALS['plexURL']) && !empty($GLOBALS['plexToken']) && !empty($GLOBALS['plexID'] && qualifyRequest($GLOBALS['homepagePlexRecentAuth']))){ try{ $url = qualifyURL($GLOBALS['plexURL']); $url = $url."/library/recentlyAdded?X-Plex-Token=".$GLOBALS['plexToken']; $options = (localURL($url)) ? array('verify' => false ) : array(); $response = Requests::get($url, array(), $options); libxml_use_internal_errors(true); if($response->success){ $items = array(); $plex = simplexml_load_string($response->body); foreach($plex AS $child) { $items[] = resolvePlexItem($child); } $api['content'] = $items; $api['plexID'] = $GLOBALS['plexID']; $api['showNames'] = true; $api['group'] = '1'; return $api; } }catch( Requests_Exception $e ) { writeLog('error', 'Plex Connect Function - Error: '.$e->getMessage(), 'SYSTEM'); }; } return false; }