summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoranoy <anoymouserver+github@mailbox.org>2020-11-06 17:09:36 +0100
committerBenjamin Brahmer <info@b-brahmer.de>2020-11-07 09:57:20 +0100
commitcb32a2c4ed9a360bffd967db98d6b9157cc41e43 (patch)
treef2b205113d1c942f803113164fe7570d90ad5940
parentad202a71866f82d0ad6a650665b338dbc7d66478 (diff)
remove deprecated YouTube playlist API
Signed-off-by: anoy <anoymouserver+github@mailbox.org>
-rw-r--r--.mailmap1
-rw-r--r--CHANGELOG.md1
-rw-r--r--lib/AppInfo/Application.php2
-rw-r--r--lib/Fetcher/YoutubeFetcher.php88
-rw-r--r--tests/Unit/Fetcher/YoutubeFetcherTest.php90
5 files changed, 2 insertions, 180 deletions
diff --git a/.mailmap b/.mailmap
index 2d43d329c..d77258002 100644
--- a/.mailmap
+++ b/.mailmap
@@ -12,3 +12,4 @@ bastei <bastei@users.noreply.github.com> bastei <none>
Konrad Graefe <konradgraefe@aol.com> kgraefe <konradgraefe@aol.com>
<lukas@owncloud.com> <lukas@statuscode.ch>
<dev@ibboard.co.uk> <github@ibboard.co.uk>
+<anoymouserver+github@mailbox.org> <anoymouserver@users.noreply.github.com>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d77821678..ddfacfbe0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
All notable changes to this project will be documented in this file.
## Unreleased
+- Remove deprecated YouTube playlist API
## 15.1.0-rc1
diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php
index b22775924..a262e2a03 100644
--- a/lib/AppInfo/Application.php
+++ b/lib/AppInfo/Application.php
@@ -36,7 +36,6 @@ use OCA\News\Db\MapperFactory;
use OCA\News\Db\ItemMapper;
use OCA\News\Fetcher\FeedFetcher;
use OCA\News\Fetcher\Fetcher;
-use OCA\News\Fetcher\YoutubeFetcher;
use OCP\User\Events\BeforeUserDeletedEvent;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
@@ -81,7 +80,6 @@ class Application extends App implements IBootstrap
// register fetchers in order, the most generic fetcher should be
// the last one
- $fetcher->registerFetcher($container->get(YoutubeFetcher::class));
$fetcher->registerFetcher($container->get(FeedFetcher::class));
return $fetcher;
});
diff --git a/lib/Fetcher/YoutubeFetcher.php b/lib/Fetcher/YoutubeFetcher.php
deleted file mode 100644
index 7c197a1b1..000000000
--- a/lib/Fetcher/YoutubeFetcher.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * Nextcloud - News
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Bernhard Posselt <dev@bernhard-posselt.com>
- * @copyright Bernhard Posselt 2012, 2014
- */
-
-namespace OCA\News\Fetcher;
-
-class YoutubeFetcher implements IFeedFetcher
-{
-
- private $feedFetcher;
-
- public function __construct(FeedFetcher $feedFetcher)
- {
- $this->feedFetcher = $feedFetcher;
- }
-
-
- /**
- * Build YouTube URL
- *
- * @param string $url
- *
- * @return string
- */
- private function buildUrl(string $url): string
- {
- $baseRegex = '%(?:https?://|//)?(?:www.)?youtube.com';
- $playRegex = $baseRegex . '.*?list=([^&]*)%';
-
- if (preg_match($playRegex, $url, $matches)) {
- $id = $matches[1];
- return 'http://gdata.youtube.com/feeds/api/playlists/' . $id;
- } else {
- return $url;
- }
- }
-
-
- /**
- * Check if the URL is a youtube URL by reformatting it.
- *
- * @param string $url the url that should be fetched
- *
- * @return bool
- */
- public function canHandle(string $url): bool
- {
- return $this->buildUrl($url) !== $url;
- }
-
-
- /**
- * Fetch a feed from remote
- *
- * @inheritdoc
- */
- public function fetch(
- string $url,
- bool $favicon,
- ?string $lastModified,
- bool $fullTextEnabled,
- ?string $user,
- ?string $password
- ): array {
- $transformedUrl = $this->buildUrl($url);
-
- $result = $this->feedFetcher->fetch(
- $transformedUrl,
- $favicon,
- $lastModified,
- $fullTextEnabled,
- $user,
- $password
- );
-
- // reset feed url so we know the correct added url for the feed
- $result[0]->setUrl($url);
-
- return $result;
- }
-}
diff --git a/tests/Unit/Fetcher/YoutubeFetcherTest.php b/tests/Unit/Fetcher/YoutubeFetcherTest.php
deleted file mode 100644
index e08d35f16..000000000
--- a/tests/Unit/Fetcher/YoutubeFetcherTest.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-/**
- * Nextcloud - News
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Bernhard Posselt <dev@bernhard-posselt.com>
- * @copyright Bernhard Posselt 2012, 2014
- */
-
-namespace OCA\News\Tests\Unit\Fetcher;
-
-use \OCA\News\Db\Feed;
-use OCA\News\Fetcher\FeedFetcher;
-use OCA\News\Fetcher\Fetcher;
-use OCA\News\Fetcher\YoutubeFetcher;
-
-use PHPUnit\Framework\TestCase;
-
-class YoutubeFetcherTest extends TestCase
-{
-
- /**
- * Mocked fetcher.
- *
- * @var Fetcher
- */
- private $fetcher;
-
- /**
- * Mocked Feed Fetcher.
- *
- * @var FeedFetcher
- */
- private $feedFetcher;
-
- public function setUp(): void
- {
- $this->feedFetcher = $this->getMockBuilder(FeedFetcher::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->fetcher = new YoutubeFetcher($this->feedFetcher);
- }
-
-
- public function testCanHandleFails()
- {
- $url = 'http://youtube.com';
- $this->assertFalse($this->fetcher->canHandle($url));
- }
-
-
- public function testCanHandle()
- {
- $url = 'http://youtube.com/test/?test=a&list=b&b=c';
- $this->assertTrue($this->fetcher->canHandle($url));
- }
-
-
- public function testPlaylistUrl()
- {
- $url = 'http://youtube.com/something/weird?a=b&list=sobo3&c=1';
- $transformedUrl = 'http://gdata.youtube.com/feeds/api/playlists/sobo3';
- $favicon = true;
- $modified = 3;
- $fullTextEnabled = false;
- $user = 5;
- $password = 5;
- $feed = new Feed();
- $feed->setUrl('http://google.de');
- $result = [$feed, []];
-
- $this->feedFetcher->expects($this->once())
- ->method('fetch')
- ->with(
- $this->equalTo($transformedUrl),
- $this->equalTo($favicon),
- $this->equalTo($modified),
- $this->equalTo($fullTextEnabled),
- $this->equalTo($user)
- )
- ->will($this->returnValue($result));
- $feed = $this->fetcher->fetch($url, $favicon, $modified, $fullTextEnabled, $user, $password);
-
- $this->assertEquals($url, $result[0]->getUrl());
- }
-
-
-}