From 5c9bd98c12c958392a6ff0c77338732dac21237d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 25 Sep 2013 22:29:34 +0200 Subject: [PATCH 1/5] add article enhancer for use cad-comic.com --- dependencyinjection/dicontainer.php | 10 ++++++ utility/articleenhancer/cadenhancer.php | 47 +++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 utility/articleenhancer/cadenhancer.php diff --git a/dependencyinjection/dicontainer.php b/dependencyinjection/dicontainer.php index ecdf0b3df..891b59bd6 100644 --- a/dependencyinjection/dicontainer.php +++ b/dependencyinjection/dicontainer.php @@ -63,6 +63,7 @@ use \OCA\News\Utility\SimplePieFileFactory; use \OCA\News\Utility\ArticleEnhancer\Enhancer; use \OCA\News\Utility\ArticleEnhancer\CyanideAndHappinessEnhancer; use \OCA\News\Utility\ArticleEnhancer\ThemeRepublicEnhancer; +use OCA\News\Utility\ArticleEnhancer\CADEnhancer; use \OCA\News\Middleware\CORSMiddleware; @@ -261,6 +262,7 @@ class DIContainer extends BaseContainer { // the most generic enhancer should be the last one $enhancer->registerEnhancer('explosm.net', $c['CyanideAndHappinessEnhancer']); $enhancer->registerEnhancer('themerepublic.net', $c['ThemeRepublicEnhancer']); + $enhancer->registerEnhancer('cad-comic.com', $c['CADEnhancer']); return $enhancer; }); @@ -285,6 +287,14 @@ class DIContainer extends BaseContainer { ); }); + $this['CADEnhancer'] = $this->share(function($c){ + return new CADEnhancer( + $c['SimplePieFileFactory'], + $c['HTMLPurifier'], + $c['feedFetcherTimeout'] + ); + }); + $this['Fetcher'] = $this->share(function($c){ $fetcher = new Fetcher(); diff --git a/utility/articleenhancer/cadenhancer.php b/utility/articleenhancer/cadenhancer.php new file mode 100644 index 000000000..9df7f5eaf --- /dev/null +++ b/utility/articleenhancer/cadenhancer.php @@ -0,0 +1,47 @@ +. + * + */ + +namespace OCA\News\Utility\ArticleEnhancer; + +use \OCA\News\Utility\SimplePieFileFactory; + + +class CADEnhancer extends ArticleEnhancer { + + + public function __construct(SimplePieFileFactory $fileFactory, $purifier, + $timeout){ + parent::__construct( + $purifier, + $fileFactory, + array( + '/cad-comic.com\/cad\/\d+\/$/' => '//*[@id=\'content\']/img' + ), + $timeout + ); + } + + +} From 4f7dfef8831da88395f03913142925cae6aab747 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 25 Sep 2013 22:43:13 +0200 Subject: [PATCH 2/5] add article enhancer for penny-arcade --- dependencyinjection/dicontainer.php | 10 ++++ .../articleenhancer/pennyarcadeenhancer.php | 47 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 utility/articleenhancer/pennyarcadeenhancer.php diff --git a/dependencyinjection/dicontainer.php b/dependencyinjection/dicontainer.php index 891b59bd6..2669336dc 100644 --- a/dependencyinjection/dicontainer.php +++ b/dependencyinjection/dicontainer.php @@ -64,6 +64,7 @@ use \OCA\News\Utility\ArticleEnhancer\Enhancer; 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\Middleware\CORSMiddleware; @@ -263,6 +264,7 @@ class DIContainer extends BaseContainer { $enhancer->registerEnhancer('explosm.net', $c['CyanideAndHappinessEnhancer']); $enhancer->registerEnhancer('themerepublic.net', $c['ThemeRepublicEnhancer']); $enhancer->registerEnhancer('cad-comic.com', $c['CADEnhancer']); + $enhancer->registerEnhancer('penny-arcade.com', $c['PennyArcadeEnhancer']); return $enhancer; }); @@ -295,6 +297,14 @@ class DIContainer extends BaseContainer { ); }); + $this['PennyArcadeEnhancer'] = $this->share(function($c){ + return new PennyArcadeEnhancer( + $c['SimplePieFileFactory'], + $c['HTMLPurifier'], + $c['feedFetcherTimeout'] + ); + }); + $this['Fetcher'] = $this->share(function($c){ $fetcher = new Fetcher(); diff --git a/utility/articleenhancer/pennyarcadeenhancer.php b/utility/articleenhancer/pennyarcadeenhancer.php new file mode 100644 index 000000000..3d2b1fd95 --- /dev/null +++ b/utility/articleenhancer/pennyarcadeenhancer.php @@ -0,0 +1,47 @@ +. + * + */ + +namespace OCA\News\Utility\ArticleEnhancer; + +use \OCA\News\Utility\SimplePieFileFactory; + + +class PennyArcadeEnhancer extends ArticleEnhancer { + + + public function __construct(SimplePieFileFactory $fileFactory, $purifier, + $timeout){ + parent::__construct( + $purifier, + $fileFactory, + array( + '/feeds.penny-arcade.com\/\~r\/pa-mainsite/' => '//*[starts-with(@class, "post")]' + ), + $timeout + ); + } + + +} From ec60b879acb1ffb15f91b0266b1301f234828b1f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 25 Sep 2013 23:09:04 +0200 Subject: [PATCH 3/5] add article enhancer for twogag --- dependencyinjection/dicontainer.php | 10 +++++ utility/articleenhancer/twogagenhancer.php | 52 ++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 utility/articleenhancer/twogagenhancer.php 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 @@ +. + * + */ + +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; + } +} From e6b2dec594475711eaa2cd30aa12f568987e376f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 25 Sep 2013 23:23:33 +0200 Subject: [PATCH 4/5] add article enhancer for least i could do --- dependencyinjection/dicontainer.php | 10 +++++ .../articleenhancer/leasticoulddoenhancer.php | 45 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 utility/articleenhancer/leasticoulddoenhancer.php diff --git a/dependencyinjection/dicontainer.php b/dependencyinjection/dicontainer.php index 58f406bd7..78e35a313 100644 --- a/dependencyinjection/dicontainer.php +++ b/dependencyinjection/dicontainer.php @@ -66,6 +66,7 @@ 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\Utility\ArticleEnhancer\LeastICouldDoEnhancer; use \OCA\News\Middleware\CORSMiddleware; @@ -267,6 +268,7 @@ class DIContainer extends BaseContainer { $enhancer->registerEnhancer('cad-comic.com', $c['CADEnhancer']); $enhancer->registerEnhancer('penny-arcade.com', $c['PennyArcadeEnhancer']); $enhancer->registerEnhancer('twogag.com', $c['TwoGAGEnhancer']); + $enhancer->registerEnhancer('leasticoulddo.com', $c['LeastICouldDoEnhancer']); return $enhancer; }); @@ -315,6 +317,14 @@ class DIContainer extends BaseContainer { ); }); + $this['LeastICouldDoEnhancer'] = $this->share(function($c){ + return new LeastICouldDoEnhancer( + $c['SimplePieFileFactory'], + $c['HTMLPurifier'], + $c['feedFetcherTimeout'] + ); + }); + $this['Fetcher'] = $this->share(function($c){ $fetcher = new Fetcher(); diff --git a/utility/articleenhancer/leasticoulddoenhancer.php b/utility/articleenhancer/leasticoulddoenhancer.php new file mode 100644 index 000000000..4ba3f244c --- /dev/null +++ b/utility/articleenhancer/leasticoulddoenhancer.php @@ -0,0 +1,45 @@ +. + * + */ + +namespace OCA\News\Utility\ArticleEnhancer; + +use \OCA\News\Utility\SimplePieFileFactory; + + +class LeastICouldDoEnhancer extends ArticleEnhancer { + + + public function __construct(SimplePieFileFactory $fileFactory, $purifier, + $timeout) { + parent::__construct( + $purifier, + $fileFactory, + array( + '/feedproxy.google.com\/\~r\/LICD/' => '//*[@id=\'comic-img\']/a/img | //*[@id=\'comic-img\']/img' + ), + $timeout + ); + } +} From 9498b293c01856a67419b1d3c7d7425658a10a85 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 25 Sep 2013 23:58:19 +0200 Subject: [PATCH 5/5] add article enhancer for comics hosted by the escapist --- dependencyinjection/dicontainer.php | 17 +++++++ .../articleenhancer/escapistcomicenhancer.php | 49 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 utility/articleenhancer/escapistcomicenhancer.php diff --git a/dependencyinjection/dicontainer.php b/dependencyinjection/dicontainer.php index 78e35a313..94806b2f7 100644 --- a/dependencyinjection/dicontainer.php +++ b/dependencyinjection/dicontainer.php @@ -67,6 +67,7 @@ use OCA\News\Utility\ArticleEnhancer\CADEnhancer; use OCA\News\Utility\ArticleEnhancer\PennyArcadeEnhancer; use OCA\News\Utility\ArticleEnhancer\TwoGAGEnhancer; use OCA\News\Utility\ArticleEnhancer\LeastICouldDoEnhancer; +use OCA\News\Utility\ArticleEnhancer\EscapistComicEnhancer; use \OCA\News\Middleware\CORSMiddleware; @@ -269,6 +270,14 @@ class DIContainer extends BaseContainer { $enhancer->registerEnhancer('penny-arcade.com', $c['PennyArcadeEnhancer']); $enhancer->registerEnhancer('twogag.com', $c['TwoGAGEnhancer']); $enhancer->registerEnhancer('leasticoulddo.com', $c['LeastICouldDoEnhancer']); + $enhancer->registerEnhancer('escapistmagazine.com/articles/view/comics/critical-miss', $c['EscapistComicEnhancer']); + $enhancer->registerEnhancer('escapistmagazine.com/articles/view/comics/critical-miss', $c['EscapistComicEnhancer']); + $enhancer->registerEnhancer('escapistmagazine.com/articles/view/comics/namegame', $c['EscapistComicEnhancer']); + $enhancer->registerEnhancer('escapistmagazine.com/articles/view/comics/stolen-pixels', $c['EscapistComicEnhancer']); + $enhancer->registerEnhancer('escapistmagazine.com/articles/view/comics/bumhugparade', $c['EscapistComicEnhancer']); + $enhancer->registerEnhancer('escapistmagazine.com/articles/view/comics/escapistradiotheater', $c['EscapistComicEnhancer']); + $enhancer->registerEnhancer('escapistmagazine.com/articles/view/comics/paused', $c['EscapistComicEnhancer']); + $enhancer->registerEnhancer('escapistmagazine.com/articles/view/comics/fraughtwithperil', $c['EscapistComicEnhancer']); return $enhancer; }); @@ -325,6 +334,14 @@ class DIContainer extends BaseContainer { ); }); + $this['EscapistComicEnhancer'] = $this->share(function($c){ + return new EscapistComicEnhancer( + $c['SimplePieFileFactory'], + $c['HTMLPurifier'], + $c['feedFetcherTimeout'] + ); + }); + $this['Fetcher'] = $this->share(function($c){ $fetcher = new Fetcher(); diff --git a/utility/articleenhancer/escapistcomicenhancer.php b/utility/articleenhancer/escapistcomicenhancer.php new file mode 100644 index 000000000..a2238ed29 --- /dev/null +++ b/utility/articleenhancer/escapistcomicenhancer.php @@ -0,0 +1,49 @@ +. + * + */ + +namespace OCA\News\Utility\ArticleEnhancer; + +use \OCA\News\Utility\SimplePieFileFactory; + + +class EscapistComicEnhancer extends ArticleEnhancer { + + + public function __construct(SimplePieFileFactory $fileFactory, $purifier, + $timeout) { + parent::__construct( + $purifier, + $fileFactory, + array( + '/escapistmagazine.com\/articles\/view\/comics\/critical-miss/' => '//*[@class=\'body\']/span/img', + '/escapistmagazine.com\/articles\/view\/comics\/namegame/' => '//*[@class=\'body\']/span/p/img[@height != "120"]', + '/escapistmagazine.com\/articles\/view\/comics\/(stolen-pixels|bumhugparade|escapistradiotheater)/' => '//*[@class=\'body\']/span/p[2]/img', + '/escapistmagazine.com\/articles\/view\/comics\/paused/' => '//*[@class=\'body\']/span/p[2]/img | //*[@class=\'body\']/span/div/img', + '/escapistmagazine.com\/articles\/view\/comics\/fraughtwithperil/' => '//*[@class=\'body\']', + ), + $timeout + ); + } +}