Commit 0d188fab authored by Davide Aprea's avatar Davide Aprea
Browse files

added new duplicatation filter

parent 172e5edc
......@@ -293,6 +293,7 @@ class MetaGer
if(!empty($timings)){
$timings["prepareResults"]["validated results"] = microtime(true) - $timings["starttime"];
}
$this->duplicationCheck();
# Validate Advertisements
$newResults = [];
foreach ($this->ads as $ad) {
......@@ -395,6 +396,39 @@ class MetaGer
}
}
public function duplicationCheck()
{
$arr = [];
for($i = 0; $i < count($this->results); $i++) {
$link = $this->results[$i]->link;
if (strpos($link, "http://") === 0) {
$link = substr($link, 7);
}
if (strpos($link, "https://") === 0) {
$link = substr($link, 8);
}
if (strpos($link, "www.") === 0) {
$link = substr($link, 4);
}
$link = trim($link, "/");
$hash = md5($link);
if(isset($arr[$link])){
$arr[$link]->gefVon[] = $this->results[$i]->gefVon[0];
$arr[$link]->gefVonLink[] = $this->results[$i]->gefVonLink[0];
array_splice($this->results, $i);
$i--;
}else{
$arr[$link] = &$this->results[$i];
}
}
}
public function startAdgoal(&$results)
{
$publicKey = getenv('adgoal_public');
......
......@@ -13,8 +13,8 @@ class Result
public $anzeigeLink; # Der tatsächlich angezeigte Link (rein optisch)
public $descr; # Die eventuell gekürzte Beschreibung des Suchergebnisses
public $longDescr; # Die ungekürzte Beschreibung des Suchergebnisses
public $gefVon; # Die Suchmaschine von der dieses Ergebnis stammt
public $gefVonLink;
public $gefVon = []; # Die Suchmaschine von der dieses Ergebnis stammt
public $gefVonLink = [];
public $sourceRank; # Das Ranking für dieses Suchergebnis von der Seite, die es geliefert hat (implizit durch Ergebnisreihenfolge: 20 - Position in Ergebnisliste)
public $partnershop; # Ist das Ergebnis von einem Partnershop? (bool)
public $image; # Ein Vorschaubild für das Suchergebnis (als URL)
......@@ -49,8 +49,8 @@ class Result
$this->descr = substr($this->descr, 0, strpos($this->descr, "\n"));
$this->descr .= "&#8230;"; // Ellipsis character
}
$this->gefVon = trim($gefVon);
$this->gefVonLink = trim($gefVonLink);
$this->gefVon[] = trim($gefVon);
$this->gefVonLink[] = trim($gefVonLink);
$this->proxyLink = $this->generateProxyLink($this->link);
$this->sourceRank = $sourceRank;
if ($this->sourceRank <= 0 || $this->sourceRank > 20) {
......@@ -115,7 +115,7 @@ class Result
}
# Runter Ranken von Yandex Ergebnissen mit zu viel kyrillischen Texten
if (stripos($this->gefVon, "yandex") !== false) {
if (stripos($this->gefVon[0], "yandex") !== false) {
$rank -= $this->calcYandexBoost($eingabe);
}
......@@ -279,7 +279,7 @@ class Result
/* Der Dublettenfilter, der sicher stellt,
* dass wir nach Möglichkeit keinen Link doppelt in der Ergebnisliste haben.
*/
$dublettenLink = $this->strippedLink;
if (!empty($this->provider->{"dubletten-include-parameter"}) && sizeof($this->provider->{"dubletten-include-parameter"}) > 0) {
$dublettenLink .= "?";
......@@ -300,12 +300,13 @@ class Result
}
}
if ($metager->addLink($dublettenLink)) {
if ($metager->addLink($this)) {
$metager->addHostCount($this->strippedHost);
return true;
} else {
return false;
}
}*/
return true;
}
public function isBlackListed(\App\MetaGer $metager)
......
......@@ -9,7 +9,11 @@
{!! $result->titel !!}
</a>
</h2>
<a class="result-hoster" href="{{ $result->gefVonLink }}" target="{{ $metager->getNewtab() }}" rel="noopener" tabindex="-1">{{ trans('result.gefVon') . " " . $result->gefVon }} </a>
@if(sizeof($result->gefVon)===1)
<a class="result-hoster" href="{{ $result->gefVonLink[0] }}" target="{{ $metager->getNewtab() }}" rel="noopener" tabindex="-1">{{ trans('result.gefVon') . " " . $result->gefVon[0] }} </a>
@else
<span title="{{ (implode(', ', $result->gefVon)) }}" class="result-hoster">von {{ sizeof($result->gefVon) }} Anbietern</span>
@endif
</div>
<div class="result-subheadline">
<a class="result-link" href="{{ $result->link }}" target="{{ $metager->getNewtab() }}" title="{{ $result->anzeigeLink }}" rel="noopener" tabindex="-1">
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment