{ if (!Preference::exists('myplex_username')) { Preference::insert('myplex_username', 'myPlex Username', '', '25', 'string', 'internal'); Preference::insert('myplex_authtoken', 'myPlex Auth Token', '', '25', 'string', 'internal'); Preference::insert('myplex_published', 'Plex Server is published to myPlex', '0', '25', 'boolean', 'internal'); Preference::insert('plex_uniqid', 'Plex Server Unique Id', uniqid(), '25', 'string', 'internal'); Preference::insert('plex_servername', 'Plex Server Name', 'Ampache', '25', 'string', 'internal'); Preference::insert('plex_public_address', 'Plex Public Address', '', '25', 'string', 'internal'); Preference::insert('plex_public_port', 'Plex Public Port', '32400', '25', 'string', 'internal'); Preference::insert('plex_local_auth', 'myPlex authentication required on local network', '0', '25', 'boolean', 'internal'); Preference::insert('plex_match_email', 'Link myPlex users to Ampache based on e-mail address', '1', '25', 'boolean', 'internal'); User::rebuild_all_preferences(); } } init_db(); $myplex_username = Plex_XML_Data::getMyPlexUsername(); $myplex_authtoken = Plex_XML_Data::getMyPlexAuthToken(); $myplex_published = Plex_XML_Data::getMyPlexPublished(); $plex_servername = Plex_XML_Data::getServerName(); $plex_public_address = Plex_XML_Data::getServerPublicAddress(); $plex_public_port = Plex_XML_Data::getServerPublicPort(); $plex_local_port = Plex_XML_Data::getServerPort(); $plex_local_auth = AmpConfig::get('plex_local_auth'); $plex_match_email = AmpConfig::get('plex_match_email'); $plexact = $_REQUEST['plexact']; switch ($plexact) { case 'auth_myplex': $myplex_username = $_POST['myplex_username']; $myplex_password = $_POST['myplex_password']; $plex_public_port = $_POST['plex_public_port']; if (!empty($myplex_username)) {
protected static function getPlexHeaders($private = false, $filters = null) { $headers = array('X-Plex-Client-Identifier' => Plex_XML_Data::getClientIdentifier(), 'X-Plex-Product' => 'Plex Media Server', 'X-Plex-Version' => Plex_XML_Data::getPlexVersion(), 'X-Plex-Platform' => Plex_XML_Data::getPlexPlatform(), 'X-Plex-Platform-Version' => Plex_XML_Data::getPlexPlatformVersion(), 'X-Plex-Client-Platform' => Plex_XML_Data::getPlexPlatform(), 'X-Plex-Protocol' => 1.0, 'X-Plex-Device' => 'Ampache', 'X-Plex-Device-Name' => 'Ampache', 'X-Plex-Provides' => 'server'); if ($private) { if (Plex_XML_Data::getMyPlexUsername()) { $headers['X-Plex-Username'] = Plex_XML_Data::getMyPlexUsername(); } if (Plex_XML_Data::getMyPlexUsername()) { $headers['X-Plex-Token'] = Plex_XML_Data::getMyPlexAuthToken(); } } if ($filters) { $fheaders = array(); foreach ($headers as $key => $value) { if (array_search(strtolower($key), $filters)) { $fheaders[$key] = $value; } } $headers = $fheaders; } return $headers; }