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