[DevToBridge] Fix bridge (#1699)

Fixes full article option not working
This commit is contained in:
Joseph 2020-08-12 18:07:53 +00:00 committed by GitHub
parent 268ddf1382
commit dc36b425cd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -45,24 +45,22 @@ apple-icon-5c6fa9f2bce280428589c6195b7f1924206a53b782b371cfe2d02da932c8c173.png'
} }
public function collectData() { public function collectData() {
$html = getSimpleHTMLDOMCached($this->getURI()) $html = getSimpleHTMLDOMCached($this->getURI())
or returnServerError('Could not request ' . $this->getURI()); or returnServerError('Could not request ' . $this->getURI());
$html = defaultLinkTo($html, static::URI); $html = defaultLinkTo($html, static::URI);
$articles = $html->find('div.single-article') $articles = $html->find('div.crayons-story')
or returnServerError('Could not find articles!'); or returnServerError('Could not find articles!');
foreach($articles as $article) { foreach($articles as $article) {
$item = array(); $item = array();
$item['uri'] = $article->find('a[id*=article-link]', 0)->href; $item['uri'] = $article->find('a[id*=article-link]', 0)->href;
$item['title'] = $article->find('h3', 0)->plaintext; $item['title'] = $article->find('h2 > a', 0)->plaintext;
// i.e. "Charlie Harrington・Sep 21" $item['timestamp'] = $article->find('time', 0)->datetime;
$item['timestamp'] = strtotime(explode('・', $article->find('h4 a', 0)->plaintext, 2)[1]); $item['author'] = $article->find('a.crayons-story__secondary.fw-medium', 0)->plaintext;
$item['author'] = explode('・', $article->find('h4 a', 0)->plaintext, 2)[0];
// Profile image // Profile image
$item['enclosures'] = array($article->find('img', 0)->src); $item['enclosures'] = array($article->find('img', 0)->src);
@ -70,7 +68,6 @@ apple-icon-5c6fa9f2bce280428589c6195b7f1924206a53b782b371cfe2d02da932c8c173.png'
if($this->getInput('full')) { if($this->getInput('full')) {
$fullArticle = $this->getFullArticle($item['uri']); $fullArticle = $this->getFullArticle($item['uri']);
$item['content'] = <<<EOD $item['content'] = <<<EOD
<img src="{$item['enclosures'][0]}" alt="{$item['author']}">
<p>{$fullArticle}</p> <p>{$fullArticle}</p>
EOD; EOD;
} else { } else {
@ -80,11 +77,13 @@ EOD;
EOD; EOD;
} }
$item['categories'] = array_map(function($e){ return $e->plaintext; }, $article->find('div.tags span.tag')); // categories
foreach ($article->find('a.crayons-tag') as $tag) {
$item['categories'][] = str_replace('#', '', $tag->plaintext);
}
$this->items[] = $item; $this->items[] = $item;
} }
} }
public function getName() { public function getName() {
@ -101,6 +100,10 @@ EOD;
$html = defaultLinkTo($html, static::URI); $html = defaultLinkTo($html, static::URI);
if ($html->find('div.crayons-article__cover', 0)) {
return $html->find('div.crayons-article__cover', 0) . $html->find('[id="article-body"]', 0);
}
return $html->find('[id="article-body"]', 0); return $html->find('[id="article-body"]', 0);
} }
} }