diff --git a/bridges/ModelKarteiBridge.php b/bridges/ModelKarteiBridge.php new file mode 100644 index 00000000..9bd63345 --- /dev/null +++ b/bridges/ModelKarteiBridge.php @@ -0,0 +1,104 @@ + array( + 'name' => 'Model ID', + 'exampleValue' => '123456' + ) + )); + + const LIMIT_ITEMS = 10; + + private $feedName = ''; + + + public function collectData() { + $model_id = preg_replace('/[^0-9]/', '', $this->getInput('model_id')); + if (empty($model_id)) + returnServerError('Invalid model ID'); + + $html = getSimpleHTMLDOM(self::URI . 'sedcards/model/' . $model_id . '/') + or returnServerError('Model not found'); + + $objTitle = $html->find('.sTitle', 0); + if ($objTitle) + $this->feedName = $objTitle->plaintext; + + $itemlist = $html->find('#photoList .photoPreview'); + if (!$itemlist) + returnServerError('No gallery'); + + foreach($itemlist as $idx => $element) { + if ($idx >= self::LIMIT_ITEMS) + break; + + $item = array(); + + $title = $element->title; + $date = $element->{'data-date'}; + $author = $this->feedName; + $text = ''; + + $objImage = $element->find('a.photoLink img', 0); + $objLink = $element->find('a.photoLink', 0); + + if ($objLink) { + $page = getSimpleHTMLDOMCached($objLink->href); + + if (empty($title)) { + $objTitle = $page->find('.p-title', 0); + if ($objTitle) + $title = $objTitle->plaintext; + } + if (empty($date)) { + $objDate = $page->find('.cameraDetails .date', 0); + if ($objDate) + $date = strtotime($objDate->parent()->plaintext); + } + if (empty($author)) { + $objAuthor = $page->find('.p-publisher a', 0); + if ($objAuthor) + $author = $objAuthor->plaintext; + } + + $objFullImage = $page->find('img#gofullscreen', 0); + if ($objFullImage) + $objImage = $objFullImage; + + $objText = $page->find('.p-desc', 0); + if ($objText) + $text = $objText->plaintext; + } + + $item['title'] = $title; + $item['timestamp'] = $date; + $item['author'] = $author; + + if ($objImage) + $item['content'] = ''; + if ($objLink) { + $item['uri'] = $objLink->href; + if (!empty($item['content'])) + $item['content'] = '' . $item['content'] . ''; + } else { + $item['uri'] = 'urn:sha1:' . hash('sha1', $item['content']); + } + if (!empty($text)) + $item['content'] = '

' . $text . '

' . $item['content']; + + $this->items[] = $item; + } + } + + + public function getName(){ + if(!empty($this->feedName)) { + return $this->feedName . ' - ' . self::NAME; + } + return parent::getName(); + } +}