diff options
author | Robin Appelman <icewind@owncloud.com> | 2013-09-25 23:09:04 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2013-09-25 23:23:14 +0200 |
commit | ec60b879acb1ffb15f91b0266b1301f234828b1f (patch) | |
tree | 38d6efcf1eb7edc6e9cbcca9de4d0fe70677580a | |
parent | 4f7dfef8831da88395f03913142925cae6aab747 (diff) |
add article enhancer for twogag
-rw-r--r-- | dependencyinjection/dicontainer.php | 10 | ||||
-rw-r--r-- | utility/articleenhancer/twogagenhancer.php | 52 |
2 files changed, 62 insertions, 0 deletions
diff --git a/dependencyinjection/dicontainer.php b/dependencyinjection/dicontainer.php index 2669336dc..58f406bd7 100644 --- a/dependencyinjection/dicontainer.php +++ b/dependencyinjection/dicontainer.php @@ -65,6 +65,7 @@ use \OCA\News\Utility\ArticleEnhancer\CyanideAndHappinessEnhancer; use \OCA\News\Utility\ArticleEnhancer\ThemeRepublicEnhancer; use OCA\News\Utility\ArticleEnhancer\CADEnhancer; use OCA\News\Utility\ArticleEnhancer\PennyArcadeEnhancer; +use OCA\News\Utility\ArticleEnhancer\TwoGAGEnhancer; use \OCA\News\Middleware\CORSMiddleware; @@ -265,6 +266,7 @@ class DIContainer extends BaseContainer { $enhancer->registerEnhancer('themerepublic.net', $c['ThemeRepublicEnhancer']); $enhancer->registerEnhancer('cad-comic.com', $c['CADEnhancer']); $enhancer->registerEnhancer('penny-arcade.com', $c['PennyArcadeEnhancer']); + $enhancer->registerEnhancer('twogag.com', $c['TwoGAGEnhancer']); return $enhancer; }); @@ -305,6 +307,14 @@ class DIContainer extends BaseContainer { ); }); + $this['TwoGAGEnhancer'] = $this->share(function($c){ + return new TwoGAGEnhancer( + $c['SimplePieFileFactory'], + $c['HTMLPurifier'], + $c['feedFetcherTimeout'] + ); + }); + $this['Fetcher'] = $this->share(function($c){ $fetcher = new Fetcher(); diff --git a/utility/articleenhancer/twogagenhancer.php b/utility/articleenhancer/twogagenhancer.php new file mode 100644 index 000000000..7303e2b34 --- /dev/null +++ b/utility/articleenhancer/twogagenhancer.php @@ -0,0 +1,52 @@ +<?php + +/** + * ownCloud - News + * + * @author Alessandro Cosentino + * @author Bernhard Posselt + * @copyright 2012 Alessandro Cosentino cosenal@gmail.com + * @copyright 2012 Bernhard Posselt dev@bernhard-posselt.com + * + * 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 <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\News\Utility\ArticleEnhancer; + +use \OCA\News\Utility\SimplePieFileFactory; + + +class TwoGAGEnhancer extends ArticleEnhancer { + + + public function __construct(SimplePieFileFactory $fileFactory, $purifier, + $timeout) { + parent::__construct( + $purifier, + $fileFactory, + array(), + $timeout + ); + } + + public function enhance($item) { + if (preg_match('/www.twogag.com\/archives/', $item->getUrl()) || preg_match('/feedproxy.google.com\/\~r\/TwoGuysAndGuy/', $item->getUrl())) { + $body = $item->getBody(); + $body = preg_replace('/http\:\/\/www.twogag.com\/comics-rss\/([^.]+)\.jpg/', 'http://www.twogag.com/comics/$1.jpg', $body); + $item->setBody($body); + } + return $item; + } +} |