From 3da97e239394106482960877852d0403e2c88d90 Mon Sep 17 00:00:00 2001
From: friendica <info@friendica.com>
Date: Mon, 5 Mar 2012 23:20:42 -0800
Subject: [PATCH] finalise spam storage model, begin driver changes.

---
 library/spam/b8/storage/storage_frndc.php | 34 +++++++++++++++++++----
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/library/spam/b8/storage/storage_frndc.php b/library/spam/b8/storage/storage_frndc.php
index 7702c108b3..62909d4715 100644
--- a/library/spam/b8/storage/storage_frndc.php
+++ b/library/spam/b8/storage/storage_frndc.php
@@ -174,20 +174,44 @@ class b8_storage_frndc extends b8_storage_base
 				array_push($where, $token);
 			}
 
-			$where = 'token IN ("' . implode('", "', $where) . '")';
+			$where = 'term IN ("' . implode('", "', $where) . '")';
 		}
 
 		else {
 			$token = dbesc($token);
-			$where = 'token = "' . $token . '"';
+			$where = 'term = "' . $token . '"';
 		}
 
 		# ... and fetch the data
 
 		$result = q('
-			SELECT *
-			FROM ' . $this->config['table_name'] . '
-			WHERE ' . $where . ' AND uid = ' . $uid );
+			SELECT * FROM spam WHERE ' . $where . ' AND uid = ' . $uid );
+
+
+		$returned_tokens = array();
+		if(count($result)) {
+			foreach($result as $rr)
+				$returned_tokens[] = $rr['term'];
+		}
+		$to_create = array();
+
+		if(count($tokens) > 0) {
+			foreach($tokens as $token)
+				if(! in_array($token,$returned_tokens))
+					$to_create[] = str_tolower($token); 
+		}
+		if(count($to_create)) {
+			$sql = '';
+			foreach($to_create as $term) {
+				if(strlen($sql))
+					$sql .= ',';
+				$sql .= sprintf("(term,datetime,uid) values('%s','%s',%d)",
+					dbesc(str_tolower($term))
+					dbesc(datetime_convert()),
+					intval($uid)
+				);
+			q("insert into spam " . $sql);
+		}
 
 		return $result;