* * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Affero General Public * License along with this library. If not, see . * */ namespace OCA\Radio\Controller; use OC; use OCA\Radio\AppInfo\Application; use OCA\Radio\Service\FavoriteService; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\DataResponse; use OCP\IRequest; use SimpleXMLElement; class ExportController extends Controller { /** @var FavoriteService */ private $service; /** @var string */ private $userId; use Errors; public function __construct(IRequest $request, FavoriteService $service, $userId) { parent::__construct(Application::APP_ID, $request); $this->service = $service; $this->userId = $userId; } /** * @NoAdminRequired */ public function index() { $xml = new SimpleXMLElement(''); $trackList = $xml->addChild('trackList'); $track = $trackList->addChild('track'); $track->addChild('location', 'http://localhost/test.mp3'); $track->addChild('title', 'Radio Test 404fm'); $track->addChild('image', 'http://localhost/favicon.ico'); $user = OC::$server->getUserSession()->getUser(); if (is_null($user)) { throw new HintException('User not logged in'); } $userName = $user->getDisplayName(); $productName = OC::$server->getThemingDefaults()->getName(); $dateTime = OC::$server->getDateTimeFormatter(); $export_name = '"' . $productName . ' Radio Favorites (' . $userName . ') (' . $dateTime->formatDate(time()) . ').xspf"'; header('Content-Type: application/xspf+xml'); header('Content-Disposition: attachment; filename=' . $export_name); //return new DataResponse($this->service->findAll($this->userId)); return $xml->asXML(); } }