', namespaceOrPrefix: 'http://xmlpull.org/v1/doc/features.html#indent-output'); $xml->addAttribute('version', '2.0'); $dateCreated = new \DateTime(); $head = $xml->addChild('head'); if (isset($head)) { $head->addChild('title', $this->l10n->t('RePod Subscriptions')); $head->addChild('dateCreated', $dateCreated->format(\DateTime::RFC822)); } $body = $xml->addChild('body'); if (isset($body)) { $subscriptions = $this->podcastMetricsReader->metrics($this->userService->getUserUID()); foreach ($subscriptions as $subscription) { $podcast = $this->podcastDataReader->getCachedOrFetchPodcastData($subscription->getUrl(), $this->userService->getUserUID()); if ($podcast) { $outline = $body->addChild('outline'); if (isset($outline)) { $title = $podcast->getTitle(); $link = $podcast->getLink(); if ($title) { $outline->addAttribute('text', $title); $outline->addAttribute('title', $title); } if ($link) { $outline->addAttribute('xmlUrl', $link); } } } } } return new DataDownloadResponse((string) $xml->asXML(), 'repod-'.$dateCreated->getTimestamp().'.opml', ' application/xml'); } }