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 "
$I[filter]
$arg";
- thr();
- echo "$I[fid] | ";
- echo "$I[match] | ";
- echo "$I[replace] | ";
- echo "$I[allowpm] | ";
- echo "$I[regex] | ";
- echo "$I[kick] | ";
- echo "$I[apply] |
|
";
+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 "$I[filter]
$arg";
+ thr();
+ echo "$I[fid] | ";
+ echo "$I[match] | ";
+ echo "$I[replace] | ";
+ echo "$I[allowpm] | ";
+ echo "$I[regex] | ";
+ echo "$I[kick] | ";
+ echo "$I[apply] |
|
";
+ $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 "$I[linkfilter]
$arg";
thr();
@@ -1217,19 +1241,7 @@ function send_linkfilter($arg=''){
echo "$I[replace] | ";
echo "$I[regex] | ";
echo "$I[apply] |
";
- 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>))<\/a>/i",
function ($matched) use(&$filter){