From c5890d037e6d560160c63cb6a1e594559f53befc Mon Sep 17 00:00:00 2001
From: Dominik Hebeler <dominik@suma-ev.de>
Date: Tue, 11 Jun 2019 13:49:06 +0200
Subject: [PATCH] implemented stronger caching for possible spam

---
 app/Http/Controllers/MetaGerSearch.php | 18 +++++++++++++++++-
 config/spam.txt                        |  6 ++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
 create mode 100644 config/spam.txt

diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php
index 46e04a658..be31c4736 100644
--- a/app/Http/Controllers/MetaGerSearch.php
+++ b/app/Http/Controllers/MetaGerSearch.php
@@ -16,6 +16,11 @@ class MetaGerSearch extends Controller
 {
     public function search(Request $request, MetaGer $metager)
     {
+        $spamEntries = [];
+        if (file_exists(config_path('spam.txt'))) {
+            $spamEntries = file(config_path('spam.txt'));
+        }
+
         $focus = $request->input("focus", "web");
 
         if ($focus === "maps") {
@@ -35,6 +40,10 @@ class MetaGerSearch extends Controller
         # Nach Spezialsuchen überprüfen:
         $metager->checkSpecialSearches($request);
 
+        if (Cache::has('spam.' . $metager->getFokus() . "." . md5($metager->getQ()))) {
+            return response(Cache::get('spam.' . $metager->getFokus() . "." . md5($metager->getQ())));
+        }
+
         # Die Quicktips als Job erstellen
         $quicktips = $metager->createQuicktips();
 
@@ -66,7 +75,14 @@ class MetaGerSearch extends Controller
         $pipeline->execute();
 
         # Die Ausgabe erstellen:
-        return $metager->createView($quicktipResults);
+        $resultpage = $metager->createView($quicktipResults);
+        foreach ($spamEntries as $index => $entry) {
+            $entry = trim($entry);
+            if (preg_match("/" . $entry . "/si", $metager->getEingabe())) {
+                Cache::put('spam.' . $metager->getFokus() . "." . md5($metager->getQ()), $resultpage->render(), 1440);
+            }
+        }
+        return $resultpage;
     }
 
     public function loadMore(Request $request)
diff --git a/config/spam.txt b/config/spam.txt
new file mode 100644
index 000000000..67e6cc857
--- /dev/null
+++ b/config/spam.txt
@@ -0,0 +1,6 @@
+^[\d]{3}chan
+"155chan"
+^hebe chan$
+^jailbait chan$
+^http[s]{0,1}:\/\/[\d]{3}chan\..{2}
+^susimail\s+-site:[^\s]+\s-site:
\ No newline at end of file
-- 
GitLab