aboutsummaryrefslogtreecommitdiff
path: root/bridges/TwitterEngineeringBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/TwitterEngineeringBridge.php')
-rw-r--r--bridges/TwitterEngineeringBridge.php125
1 files changed, 65 insertions, 60 deletions
diff --git a/bridges/TwitterEngineeringBridge.php b/bridges/TwitterEngineeringBridge.php
index f11caaa1..7c450013 100644
--- a/bridges/TwitterEngineeringBridge.php
+++ b/bridges/TwitterEngineeringBridge.php
@@ -1,62 +1,67 @@
<?php
-class TwitterEngineeringBridge extends FeedExpander {
-
- const MAINTAINER = 'corenting';
- const NAME = 'Twitter Engineering Blog';
- const URI = 'https://blog.twitter.com/engineering/';
- const DESCRIPTION = 'Returns the newest articles.';
- const CACHE_TIMEOUT = 21600; // 6h
-
- protected function parseItem($item){
- $item = parent::parseItem($item);
-
- $article_html = getSimpleHTMLDOMCached($item['uri']);
- if(!$article_html) {
- $item['content'] .= '<p><em>Could not request ' . $this->getName() . ': ' . $item['uri'] . '</em></p>';
- return $item;
- }
- $article_html = defaultLinkTo($article_html, $this->getURI());
-
- $article_body = $article_html->find('div.column.column-6', 0);
-
- // Remove elements that are not part of article content
- $unwanted_selector = 'div.bl02-blog-post-text-masthead, div.tweet-error-text, div.bl13-tweet-template';
- foreach($article_body->find($unwanted_selector) as $found) {
- $found->outertext = '';
- }
-
- // Set src for images
- foreach($article_body->find('img') as $found) {
- $found->setAttribute('src', $found->getAttribute('data-src'));
- }
-
- $item['content'] = $article_body;
- $item['timestamp'] = strtotime($article_html->find('span.b02-blog-post-no-masthead__date', 0)->innertext);
- $item['categories'] = self::getCategoriesFromTags($article_html);
-
- return $item;
- }
-
- private function getCategoriesFromTags($article_html){
- $tags_list_items = array($article_html->find('.post__tags > ul > li'));
- $categories = array();
-
- foreach($tags_list_items as $tag_list_item) {
- foreach($tag_list_item as $tag) {
- $categories[] = trim($tag->plaintext);
- }
- }
-
- return $categories;
- }
-
- public function collectData(){
- $feed = static::URI . 'en_us/blog.rss';
- $this->collectExpandableDatas($feed);
- }
-
- public function getName(){
- // Else the original feed returns "English (US)" as the title
- return 'Twitter Engineering Blog';
- }
+
+class TwitterEngineeringBridge extends FeedExpander
+{
+ const MAINTAINER = 'corenting';
+ const NAME = 'Twitter Engineering Blog';
+ const URI = 'https://blog.twitter.com/engineering/';
+ const DESCRIPTION = 'Returns the newest articles.';
+ const CACHE_TIMEOUT = 21600; // 6h
+
+ protected function parseItem($item)
+ {
+ $item = parent::parseItem($item);
+
+ $article_html = getSimpleHTMLDOMCached($item['uri']);
+ if (!$article_html) {
+ $item['content'] .= '<p><em>Could not request ' . $this->getName() . ': ' . $item['uri'] . '</em></p>';
+ return $item;
+ }
+ $article_html = defaultLinkTo($article_html, $this->getURI());
+
+ $article_body = $article_html->find('div.column.column-6', 0);
+
+ // Remove elements that are not part of article content
+ $unwanted_selector = 'div.bl02-blog-post-text-masthead, div.tweet-error-text, div.bl13-tweet-template';
+ foreach ($article_body->find($unwanted_selector) as $found) {
+ $found->outertext = '';
+ }
+
+ // Set src for images
+ foreach ($article_body->find('img') as $found) {
+ $found->setAttribute('src', $found->getAttribute('data-src'));
+ }
+
+ $item['content'] = $article_body;
+ $item['timestamp'] = strtotime($article_html->find('span.b02-blog-post-no-masthead__date', 0)->innertext);
+ $item['categories'] = self::getCategoriesFromTags($article_html);
+
+ return $item;
+ }
+
+ private function getCategoriesFromTags($article_html)
+ {
+ $tags_list_items = [$article_html->find('.post__tags > ul > li')];
+ $categories = [];
+
+ foreach ($tags_list_items as $tag_list_item) {
+ foreach ($tag_list_item as $tag) {
+ $categories[] = trim($tag->plaintext);
+ }
+ }
+
+ return $categories;
+ }
+
+ public function collectData()
+ {
+ $feed = static::URI . 'en_us/blog.rss';
+ $this->collectExpandableDatas($feed);
+ }
+
+ public function getName()
+ {
+ // Else the original feed returns "English (US)" as the title
+ return 'Twitter Engineering Blog';
+ }
}