[GithubIssueBridge] Fix most relevant coding style related issues

Signed-off-by: Pierre Mazière <pierre.maziere@gmx.com>
This commit is contained in:
Pierre Mazière 2018-11-10 23:15:09 +01:00 committed by logmanoriginal
parent 3d301fc4ee
commit de575982a1

View file

@ -37,10 +37,9 @@ class GithubIssueBridge extends BridgeAbstract {
$name = $this->getInput('u') . '/' . $this->getInput('p'); $name = $this->getInput('u') . '/' . $this->getInput('p');
switch($this->queriedContext) { switch($this->queriedContext) {
case 'Project Issues': case 'Project Issues':
$prefix = static::NAME . 's for ';
if($this->getInput('c')) { if($this->getInput('c')) {
$prefix = static::NAME . 's comments for '; $prefix = static::NAME . 's comments for ';
} else {
$prefix = static::NAME . 's for ';
} }
$name = $prefix . $name; $name = $prefix . $name;
break; break;
@ -54,7 +53,8 @@ class GithubIssueBridge extends BridgeAbstract {
public function getURI(){ public function getURI(){
if(!is_null($this->getInput('u')) && !is_null($this->getInput('p'))) { if(!is_null($this->getInput('u')) && !is_null($this->getInput('p'))) {
$uri = static::URI . $this->getInput('u') . '/' . $this->getInput('p') . '/issues'; $uri = static::URI . $this->getInput('u') . '/'
. $this->getInput('p') . '/issues';
if($this->queriedContext === 'Issue comments') { if($this->queriedContext === 'Issue comments') {
$uri .= '/' . $this->getInput('i'); $uri .= '/' . $this->getInput('i');
} elseif($this->getInput('c')) { } elseif($this->getInput('c')) {
@ -79,41 +79,53 @@ class GithubIssueBridge extends BridgeAbstract {
$author = $comment->find('.author', 0)->plaintext; $author = $comment->find('.author', 0)->plaintext;
} }
$uri = static::URI . $this->getInput('u') . '/' . $this->getInput('p') . '/issues/' . $issueNbr; $uri = static::URI . $this->getInput('u') . '/'
. $this->getInput('p') . '/issues/' . $issueNbr;
$comment = $comment->firstChild(); $comment = $comment->firstChild();
if(!$event) { if(!$event) {
$comment = $comment->nextSibling(); $comment = $comment->nextSibling();
$title .= ' / ' . trim($comment->firstChild()->plaintext);
$content = '<pre>';
$content .= $comment->find('.comment-body', 0)->innertext;
$content .= '</pre>';
} }
if($event) { if($event) {
$title .= ' / ' . substr($class, strpos($class, 'discussion-item-') + strlen('discussion-item-')); $title .= ' / ';
$title .= substr(
$class,
strpos($class, 'discussion-item-') + strlen('discussion-item-')
);
if(!$comment->hasAttribute('id')) { if(!$comment->hasAttribute('id')) {
$items = array(); $items = array();
$timestamp = strtotime($comment->find('relative-time', 0)->getAttribute('datetime')); $timestamp = strtotime(
$comment->find('relative-time', 0)->getAttribute('datetime')
);
$content = $comment->innertext; $content = $comment->innertext;
while($comment = $comment->nextSibling()) { while($comment = $comment->nextSibling()) {
$item = array(); $item = array();
$item['author'] = $author; $item['author'] = $author;
$item['title'] = html_entity_decode($title, ENT_QUOTES, 'UTF-8'); $item['title'] = html_entity_decode($title, ENT_QUOTES, 'UTF-8');
$item['timestamp'] = $timestamp; $item['timestamp'] = $timestamp;
$item['content'] = $content . '<p>' . $comment->children(1)->innertext . '</p>'; $item['content'] = $content . '<p>'
$item['uri'] = $uri . '#' . $comment->children(1)->getAttribute('id'); . $comment->children(1)->innertext . '</p>';
$item['uri'] = $uri . '#'
. $comment->children(1)->getAttribute('id');
$items[] = $item; $items[] = $item;
} }
return $items; return $items;
} }
$content = $comment->parent()->innertext; $content = $comment->parent()->innertext;
} else {
$title .= ' / ' . trim($comment->firstChild()->plaintext);
$content = '<pre>' . $comment->find('.comment-body', 0)->innertext . '</pre>';
} }
$item = array(); $item = array();
$item['author'] = $author; $item['author'] = $author;
$item['uri'] = $uri . '#' . $comment->getAttribute('id'); $item['uri'] = $uri . '#' . $comment->getAttribute('id');
$item['title'] = html_entity_decode($title, ENT_QUOTES, 'UTF-8'); $item['title'] = html_entity_decode($title, ENT_QUOTES, 'UTF-8');
$item['timestamp'] = strtotime($comment->find('relative-time', 0)->getAttribute('datetime')); $item['timestamp'] = strtotime(
$comment->find('relative-time', 0)->getAttribute('datetime')
);
$item['content'] = $content; $item['content'] = $content;
return $item; return $item;
} }
@ -121,7 +133,9 @@ class GithubIssueBridge extends BridgeAbstract {
protected function extractIssueComments($issue){ protected function extractIssueComments($issue){
$items = array(); $items = array();
$title = $issue->find('.gh-header-title', 0)->plaintext; $title = $issue->find('.gh-header-title', 0)->plaintext;
$issueNbr = trim(substr($issue->find('.gh-header-number', 0)->plaintext, 1)); $issueNbr = trim(
substr($issue->find('.gh-header-number', 0)->plaintext, 1)
);
$comments = $issue->find('.js-discussion', 0); $comments = $issue->find('.js-discussion', 0);
foreach($comments->children() as $comment) { foreach($comments->children() as $comment) {
$classes = explode(' ', $comment->getAttribute('class')); $classes = explode(' ', $comment->getAttribute('class'));
@ -139,7 +153,9 @@ class GithubIssueBridge extends BridgeAbstract {
public function collectData(){ public function collectData(){
$html = getSimpleHTMLDOM($this->getURI()) $html = getSimpleHTMLDOM($this->getURI())
or returnServerError('No results for Github Issue ' . $this->getURI()); or returnServerError(
'No results for Github Issue ' . $this->getURI()
);
switch($this->queriedContext) { switch($this->queriedContext) {
case 'Issue comments': case 'Issue comments':
@ -148,23 +164,31 @@ class GithubIssueBridge extends BridgeAbstract {
case 'Project Issues': case 'Project Issues':
foreach($html->find('.js-active-navigation-container .js-navigation-item') as $issue) { foreach($html->find('.js-active-navigation-container .js-navigation-item') as $issue) {
$info = $issue->find('.opened-by', 0); $info = $issue->find('.opened-by', 0);
$issueNbr = substr(trim($info->plaintext), 1, strpos(trim($info->plaintext), ' ')); $issueNbr = substr(
trim($info->plaintext), 1, strpos(trim($info->plaintext), ' ')
);
$item = array(); $item = array();
$item['content'] = ''; $item['content'] = '';
if($this->getInput('c')) { if($this->getInput('c')) {
$uri = static::URI . $this->getInput('u') . '/' . $this->getInput('p') . '/issues/' . $issueNbr; $uri = static::URI . $this->getInput('u')
. '/' . $this->getInput('p') . '/issues/' . $issueNbr;
$issue = getSimpleHTMLDOMCached($uri, static::CACHE_TIMEOUT); $issue = getSimpleHTMLDOMCached($uri, static::CACHE_TIMEOUT);
if($issue) { if($issue) {
$this->items = array_merge($this->items, $this->extractIssueComments($issue)); $this->items = array_merge(
$this->items,
$this->extractIssueComments($issue)
);
continue; continue;
} }
$item['content'] = 'Can not extract comments from ' . $uri; $item['content'] = 'Can not extract comments from ' . $uri;
} }
$item['author'] = $info->find('a', 0)->plaintext; $item['author'] = $info->find('a', 0)->plaintext;
$item['timestamp'] = strtotime($info->find('relative-time', 0)->getAttribute('datetime')); $item['timestamp'] = strtotime(
$info->find('relative-time', 0)->getAttribute('datetime')
);
$item['title'] = html_entity_decode( $item['title'] = html_entity_decode(
$issue->find('.js-navigation-open', 0)->plaintext, $issue->find('.js-navigation-open', 0)->plaintext,
ENT_QUOTES, ENT_QUOTES,
@ -172,7 +196,8 @@ class GithubIssueBridge extends BridgeAbstract {
); );
$comments = $issue->find('.col-5', 0)->plaintext; $comments = $issue->find('.col-5', 0)->plaintext;
$item['content'] .= "\n" . 'Comments: ' . ($comments ? $comments : '0'); $item['content'] .= "\n" . 'Comments: ' . ($comments ? $comments : '0');
$item['uri'] = self::URI . $issue->find('.js-navigation-open', 0)->getAttribute('href'); $item['uri'] = self::URI
. $issue->find('.js-navigation-open', 0)->getAttribute('href');
$this->items[] = $item; $this->items[] = $item;
} }
break; break;
@ -180,7 +205,11 @@ class GithubIssueBridge extends BridgeAbstract {
array_walk($this->items, function(&$item){ array_walk($this->items, function(&$item){
$item['content'] = preg_replace('/\s+/', ' ', $item['content']); $item['content'] = preg_replace('/\s+/', ' ', $item['content']);
$item['content'] = str_replace('href="/', 'href="' . static::URI, $item['content']); $item['content'] = str_replace(
'href="/',
'href="' . static::URI,
$item['content']
);
$item['content'] = str_replace( $item['content'] = str_replace(
'href="#', 'href="#',
'href="' . substr($item['uri'], 0, strpos($item['uri'], '#') + 1), 'href="' . substr($item['uri'], 0, strpos($item['uri'], '#') + 1),