Changeset 74081 in spip-zone for _plugins_/nospam


Ignore:
Timestamp:
Jul 4, 2013, 8:56:27 PM (6 years ago)
Author:
cedric@…
Message:

Reparer la compta SPIP 2.0 : sql_date_proche n'existe pas, il faut l'emuler

Location:
_plugins_/nospam
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/nospam/nospam_pipelines.php

    r74026 r74081  
    311311                  // au bout du 5e message en <10min ou 10e en <30min on va moderer tout message avec un lien
    312312                  if (!$spammeur_connu){
    313                           if (($nb=sql_countsel('spip_forum','(ip='.sql_quote($GLOBALS['ip']).$email.') AND '.sql_date_proche('date_heure','-30','minute')))>=7){
     313                          if (($nb=sql_countsel('spip_forum','(ip='.sql_quote($GLOBALS['ip']).$email.') AND '.nospam_sql_date_proche('date_heure','-30','minute')))>=7){
    314314                          spip_log("[Flood] $nb message pour (ip=".$GLOBALS['ip']."$email) dans les 30 dernieres minutes",'nospam');
    315315                          $spammeur_connu = true;
     
    317317                  }
    318318                  if (!$spammeur_connu){
    319                           if (($nb=sql_countsel('spip_forum','(ip='.sql_quote($GLOBALS['ip']).$email.') AND '.sql_date_proche('date_heure','-10','minute')))>=3){
     319                          if (($nb=sql_countsel('spip_forum','(ip='.sql_quote($GLOBALS['ip']).$email.') AND '.nospam_sql_date_proche('date_heure','-10','minute')))>=3){
    320320                          spip_log("[Flood] $nb message pour (ip=".$GLOBALS['ip']."$email) dans les 10 dernieres minutes",'nospam');
    321321                          $spammeur_connu = true;
     
    333333                                if (
    334334                                        (isset($GLOBALS['ip_blacklist'][$GLOBALS['ip']])
    335                                    AND ($nb = sql_countsel('spip_forum', sql_in('statut',array('spam')).' AND (ip=' . sql_quote($GLOBALS['ip']).') AND ' . sql_date_proche('date_heure','-48','hour'))) >= 5
     335                                   AND ($nb = sql_countsel('spip_forum', sql_in('statut',array('spam')).' AND (ip=' . sql_quote($GLOBALS['ip']).') AND ' . nospam_sql_date_proche('date_heure','-48','hour'))) >= 5
    336336                                         AND $h=48
    337337                                        )
    338338                                        OR
    339                                         (($nb = sql_countsel('spip_forum', 'statut=\'spam\' AND (ip=' . sql_quote($GLOBALS['ip']) . $email . ') AND ' . sql_date_proche('date_heure','-120','minute'))) >= 30
     339                                        (($nb = sql_countsel('spip_forum', 'statut=\'spam\' AND (ip=' . sql_quote($GLOBALS['ip']) . $email . ') AND ' . nospam_sql_date_proche('date_heure','-120','minute'))) >= 30
    340340                                                AND $h=2)
    341341                                        OR
    342                                         (($nb = sql_countsel('spip_forum', 'statut=\'spam\' AND (ip=' . sql_quote($GLOBALS['ip']) . $email .') AND ' . sql_date_proche('date_heure','-60','minute'))) >= 10
     342                                        (($nb = sql_countsel('spip_forum', 'statut=\'spam\' AND (ip=' . sql_quote($GLOBALS['ip']) . $email .') AND ' . nospam_sql_date_proche('date_heure','-60','minute'))) >= 10
    343343                                                AND $h=1)
    344344                                        ){
     
    440440                        // plus de 5 messages en 5 minutes c'est suspect ...
    441441                        if ($flux['data']['statut'] != 'spam') {
    442                                 if (($nb = sql_countsel('spip_forum', 'ip=' . sql_quote($GLOBALS['ip']) . ' AND ' . sql_date_proche('date_heure','-5','minute'))) >= 5){
     442                                if (($nb = sql_countsel('spip_forum', 'ip=' . sql_quote($GLOBALS['ip']) . ' AND ' . nospam_sql_date_proche('date_heure','-5','minute'))) >= 5){
    443443                                        $flux['data']['statut'] = 'spam';
    444444                                        spip_log("[Flood2] $nb message pour (ip=".$GLOBALS['ip']."$email) dans les 5 dernieres minutes : requalif en spam",'nospam');
     
    448448        }
    449449        return $flux;
     450}
     451
     452/**
     453 * @param $champ
     454 * @param $interval
     455 * @param $unite
     456 * @return string
     457 */
     458function nospam_sql_date_proche($champ, $interval, $unite) {
     459        if (function_exists("sql_date_proche"))
     460                return sql_date_proche($champ, $interval, $unite);
     461
     462        return '('
     463        . $champ
     464        . (($interval <= 0) ? '>' : '<')
     465        . (($interval <= 0) ? 'DATE_SUB' : 'DATE_ADD')
     466        . '('
     467        . sql_quote(date('Y-m-d H:i:s'))
     468        . ', INTERVAL '
     469        . (($interval > 0) ? $interval : (0-$interval))
     470        . ' '
     471        . $unite
     472        . '))';
    450473}
    451474
  • _plugins_/nospam/paquet.xml

    r74026 r74081  
    22        prefix="nospam"
    33        categorie="performance"
    4         version="1.5.3"
     4        version="1.5.4"
    55        etat="stable"
    66        compatibilite="[2.0.0;3.0.99]"
  • _plugins_/nospam/plugin.xml

    r74026 r74081  
    1010        <icon>images/nospam-32.png</icon>
    1111        <licence>(c) 2008 GPL</licence>
    12         <version>1.5.3</version>
     12        <version>1.5.4</version>
    1313        <etat>stable</etat>
    1414        <description><multi>
Note: See TracChangeset for help on using the changeset viewer.