From 6a8186d9844505e4f7e7aab678e0ca982030be7d Mon Sep 17 00:00:00 2001
From: Daniel Winzen <d@winzen4.de>
Date: Thu, 14 Apr 2016 22:32:02 +0200
Subject: [PATCH] de-duplicate code by using new functions

---
 chat.php | 94 +++++++++++++++++++++++++-------------------------------
 1 file changed, 42 insertions(+), 52 deletions(-)

diff --git a/chat.php b/chat.php
index bdd1785..61270d1 100644
--- a/chat.php
+++ b/chat.php
@@ -1140,18 +1140,8 @@ function manage_linkfilter(){
 	}
 }
 
-function send_filter($arg=''){
-	global $H, $I, $U, $db, $memcached;
-	print_start('filter');
-	echo "<h2>$I[filter]</h2><i>$arg</i><table class=\"center-table\">";
-	thr();
-	echo "<tr><th><table style=\"width:100%;\"><tr><td style=\"width:8em;\">$I[fid]</td>";
-	echo "<td style=\"width:12em;\">$I[match]</td>";
-	echo "<td style=\"width:12em;\">$I[replace]</td>";
-	echo "<td style=\"width:9em;\">$I[allowpm]</td>";
-	echo "<td style=\"width:5em;\">$I[regex]</td>";
-	echo "<td style=\"width:5em;\">$I[kick]</td>";
-	echo "<td style=\"width:5em;\">$I[apply]</td></tr></table></th></tr>";
+function get_filters(){
+	global $db, $memcached;
 	if(MEMCACHED){
 		$filters=$memcached->get(DBNAME . '-' . PREFIX . 'filter');
 	}
@@ -1165,6 +1155,40 @@ function send_filter($arg=''){
 			$memcached->set(DBNAME . '-' . PREFIX . 'filter', $filters);
 		}
 	}
+	return $filters;
+}
+
+function get_linkfilters(){
+	global $db, $memcached;
+	if(MEMCACHED){
+		$filters=$memcached->get(DBNAME . '-' . PREFIX . 'linkfilter');
+	}
+	if(!MEMCACHED || $memcached->getResultCode()!==Memcached::RES_SUCCESS){
+		$filters=array();
+		$result=$db->query('SELECT id, filtermatch, filterreplace, regex FROM ' . PREFIX . 'linkfilter;');
+		while($filter=$result->fetch(PDO::FETCH_ASSOC)){
+			$filters[]=array('id'=>$filter['id'], 'match'=>$filter['filtermatch'], 'replace'=>$filter['filterreplace'], 'regex'=>$filter['regex']);
+		}
+		if(MEMCACHED){
+			$memcached->set(DBNAME . '-' . PREFIX . 'linkfilter', $filters);
+		}
+	}
+	return $filters;
+}
+
+function send_filter($arg=''){
+	global $H, $I, $U;
+	print_start('filter');
+	echo "<h2>$I[filter]</h2><i>$arg</i><table class=\"center-table\">";
+	thr();
+	echo "<tr><th><table style=\"width:100%;\"><tr><td style=\"width:8em;\">$I[fid]</td>";
+	echo "<td style=\"width:12em;\">$I[match]</td>";
+	echo "<td style=\"width:12em;\">$I[replace]</td>";
+	echo "<td style=\"width:9em;\">$I[allowpm]</td>";
+	echo "<td style=\"width:5em;\">$I[regex]</td>";
+	echo "<td style=\"width:5em;\">$I[kick]</td>";
+	echo "<td style=\"width:5em;\">$I[apply]</td></tr></table></th></tr>";
+	$filters=get_filters();
 	foreach($filters as $filter){
 		if($filter['allowinpm']==1){
 			$check=' checked';
@@ -1208,7 +1232,7 @@ function send_filter($arg=''){
 }
 
 function send_linkfilter($arg=''){
-	global $H, $I, $U, $db, $memcached;
+	global $H, $I, $U;
 	print_start('linkfilter');
 	echo "<h2>$I[linkfilter]</h2><i>$arg</i><table class=\"center-table\">";
 	thr();
@@ -1217,19 +1241,7 @@ function send_linkfilter($arg=''){
 	echo "<td style=\"width:12em;\">$I[replace]</td>";
 	echo "<td style=\"width:5em;\">$I[regex]</td>";
 	echo "<td style=\"width:5em;\">$I[apply]</td></tr></table></th></tr>";
-	if(MEMCACHED){
-		$filters=$memcached->get(DBNAME . '-' . PREFIX . 'linkfilter');
-	}
-	if(!MEMCACHED || $memcached->getResultCode()!==Memcached::RES_SUCCESS){
-		$filters=array();
-		$result=$db->query('SELECT id, filtermatch, filterreplace, regex FROM ' . PREFIX . 'linkfilter;');
-		while($filter=$result->fetch(PDO::FETCH_ASSOC)){
-			$filters[]=array('id'=>$filter['id'], 'match'=>$filter['filtermatch'], 'replace'=>$filter['filterreplace'], 'regex'=>$filter['regex']);
-		}
-		if(MEMCACHED){
-			$memcached->set(DBNAME . '-' . PREFIX . 'linkfilter', $filters);
-		}
-	}
+	$filters=get_linkfilters();
 	foreach($filters as $filter){
 		if($filter['regex']==1){
 			$checked=' checked';
@@ -2652,7 +2664,7 @@ function validate_input(){
 }
 
 function apply_filter(){
-	global $I, $U, $db, $memcached;
+	global $I, $U;
 	if($U['poststatus']!==9 && preg_match('~^/me~i', $U['message'])){
 		$U['displaysend']=substr($U['displaysend'], 0, -3);
 		$U['message']=preg_replace("~^/me~i", '', $U['message']);
@@ -2679,17 +2691,7 @@ function apply_filter(){
 		}
 		return "$matched[0]";
 	}, $U['message']);
-	if(MEMCACHED){
-		$filters=$memcached->get(DBNAME . '-' . PREFIX . 'filter');
-	}
-	if(!MEMCACHED || $memcached->getResultCode()!==Memcached::RES_SUCCESS){
-		$filters=array();
-		$result=$db->query('SELECT id, filtermatch, filterreplace, allowinpm, regex, kick FROM ' . PREFIX . 'filter;');
-		while($filter=$result->fetch(PDO::FETCH_ASSOC)){
-			$filters[]=array('id'=>$filter['id'], 'match'=>$filter['filtermatch'], 'replace'=>$filter['filterreplace'], 'allowinpm'=>$filter['allowinpm'], 'regex'=>$filter['regex'], 'kick'=>$filter['kick']);
-		}
-		if(MEMCACHED) $memcached->set(DBNAME . '-' . PREFIX . 'filter', $filters);
-	}
+	$filters=get_filters();
 	foreach($filters as $filter){
 		if($U['poststatus']!==9){
 			$U['message']=preg_replace("/$filter[match]/i", $filter['replace'], $U['message'], -1, $count);
@@ -2704,20 +2706,8 @@ function apply_filter(){
 }
 
 function apply_linkfilter(){
-	global $U, $db, $memcached;
-	if(MEMCACHED){
-		$filters=$memcached->get(DBNAME . '-' . PREFIX . 'linkfilter');
-	}
-	if(!MEMCACHED || $memcached->getResultCode()!==Memcached::RES_SUCCESS){
-		$filters=array();
-		$result=$db->query('SELECT id, filtermatch, filterreplace, regex FROM ' . PREFIX . 'linkfilter;');
-		while($filter=$result->fetch(PDO::FETCH_ASSOC)){
-			$filters[]=array('id'=>$filter['id'], 'match'=>$filter['filtermatch'], 'replace'=>$filter['filterreplace'], 'regex'=>$filter['regex']);
-		}
-		if(MEMCACHED){
-			$memcached->set(DBNAME . '-' . PREFIX . 'linkfilter', $filters);
-		}
-	}
+	global $U;
+	$filters=get_linkfilters();
 	foreach($filters as $filter){
 		$U['message']=preg_replace_callback("/<a href=\"([^\"]+)\" target=\"_blank\">(.*?(?=<\/a>))<\/a>/i",
 			function ($matched) use(&$filter){