[GelbooruBridge] Fix bridge not getting tags correctly

Tags are embedded in the 'title' attribute instead of 'alt' as
defined by the ancestor (DanbooruBridge).

The 'title' attribute also contains statistics data ('score:...',
'rating:...') that is now filtered by a custom implementation of
the 'getTags' function (elements that contain a colon are removed)

Closes #560
This commit is contained in:
logmanoriginal 2017-08-05 22:38:22 +02:00
parent 9599f921a5
commit fc0ae42450

View file

@ -10,6 +10,7 @@ class GelbooruBridge extends DanbooruBridge {
const PATHTODATA = '.thumb'; const PATHTODATA = '.thumb';
const IDATTRIBUTE = 'id'; const IDATTRIBUTE = 'id';
const TAGATTRIBUTE = 'title';
const PIDBYPAGE = 63; const PIDBYPAGE = 63;
@ -19,4 +20,16 @@ class GelbooruBridge extends DanbooruBridge {
. ($this->getInput('p') ? ($this->getInput('p') - 1) * static::PIDBYPAGE : '') . ($this->getInput('p') ? ($this->getInput('p') - 1) * static::PIDBYPAGE : '')
. '&tags=' . urlencode($this->getInput('t')); . '&tags=' . urlencode($this->getInput('t'));
} }
protected function getTags($element){
$tags = parent::getTags($element);
$tags = explode(' ', $tags);
// Remove statistics from the tags list (identified by colon)
foreach($tags as $key => $tag) {
if(strpos($tag, ':') !== false) unset($tags[$key]);
}
return implode(' ', $tags);
}
} }