diff --git a/app/Models/parserSkripte/Europeana.php b/app/Models/parserSkripte/Europeana.php index 9715b87904aafef1d1a97cb159cdc3ca9e00b3f3..9ea0a4ea70e149742364bfea0e81e67f24bf0383 100644 --- a/app/Models/parserSkripte/Europeana.php +++ b/app/Models/parserSkripte/Europeana.php @@ -30,24 +30,14 @@ class Europeana extends Searchengine foreach ($results as $result) { if (isset($result->edmPreview)) { $title = $result->title[0]; - if (preg_match("/(.+)\?.*/si", $result->guid, $match)) { $link = $match[1]; } else { $link = ""; } - $anzeigeLink = $link; $descr = ""; - - /*if (preg_match("/(?:uri=)(.+)/si", urldecode($result->edmPreview[0]), $match)){ - $image = $match[1]; - } else { - $image = ""; - } - echo $image . " - ";*/ - $image = urldecode($result->edmPreview[0]); + $image = urldecode($result->edmPreview[0]); $this->counter++; $this->results[] = new \App\Models\Result( $this->engine, @@ -63,4 +53,17 @@ class Europeana extends Searchengine } } } + + public function getNext(\App\MetaGer $metager, $result) + { + $start = ($metager->getPage()) * 10 + 1; + $content = json_decode($result); + if ($start > $content->totalResults) { + return; + } + $next = new Europeana(simplexml_load_string($this->engine), $metager); + $next->getString .= "&start=" . $start; + $next->hash = md5($next->host . $next->getString . $next->port . $next->name); + $this->next = $next; + } } diff --git a/app/Models/parserSkripte/Flickr.php b/app/Models/parserSkripte/Flickr.php index f657714bda98d19c67c82225b4238061aa3faa8b..73329cb901f1054d27a589b4f1e6e6f752cdf8db 100644 --- a/app/Models/parserSkripte/Flickr.php +++ b/app/Models/parserSkripte/Flickr.php @@ -46,4 +46,27 @@ class Flickr extends Searchengine ); } } + + public function getNext(\App\MetaGer $metager, $result) + { + $page = $metager->getPage() + 1; + $result = preg_replace("/\r\n/si", "", $result); + $content = simplexml_load_string($result); + $results = $content->xpath('//photos')[0]; + try { + $content = simplexml_load_string($result); + } catch (\Exception $e) { + abort(500, "$result is not a valid xml string"); + } + if (!$content) { + return; + } + if ($page >= intval($results["pages"]->__toString())) { + return; + } + $next = new Flickr(simplexml_load_string($this->engine), $metager); + $next->getString .= "&page=" . $page; + $next->hash = md5($next->host . $next->getString . $next->port . $next->name); + $this->next = $next; + } } diff --git a/app/Models/parserSkripte/Openclipart.php b/app/Models/parserSkripte/Openclipart.php index d6674bc71a5d6c78e44225f372a146a3e6c99db9..df88399121fe36980f8e9334373378fdf2f5bc0f 100644 --- a/app/Models/parserSkripte/Openclipart.php +++ b/app/Models/parserSkripte/Openclipart.php @@ -47,4 +47,16 @@ class Openclipart extends Searchengine ); } } + + public function getNext(\App\MetaGer $metager, $result) + { + $content = json_decode($result); + if ($content->info->current_page > $content->info->pages) { + return; + } + $next = new Openclipart(simplexml_load_string($this->engine), $metager); + $next->getString .= "&page=" . ($metager->getPage() + 1); + $next->hash = md5($next->host . $next->getString . $next->port . $next->name); + $this->next = $next; + } } diff --git a/app/Models/parserSkripte/Pixabay.php b/app/Models/parserSkripte/Pixabay.php index 31f07dc463faeb169530dcaa885f316cbd0b76f9..d5ee4dee913cc0d1dd319209f51b8e8f2d1c96bd 100644 --- a/app/Models/parserSkripte/Pixabay.php +++ b/app/Models/parserSkripte/Pixabay.php @@ -47,4 +47,17 @@ class Pixabay extends Searchengine ); } } + + public function getNext(\App\MetaGer $metager, $result) + { + $page = $metager->getPage() + 1; + $content = json_decode($result); + if ($page * 20 > $content->total) { + return; + } + $next = new Pixabay(simplexml_load_string($this->engine), $metager); + $next->getString .= "&page=" . $page; + $next->hash = md5($next->host . $next->getString . $next->port . $next->name); + $this->next = $next; + } }