New function fetchUserData() introduced to API, total rewrite (not all)
[mailer.git] / inc / autopurge / purge-mails.php
index 1528fc2ebeb34eaba5de36e7e25babc3383f80a4..a38879112429fd3d72d2ee550c98a59918637c56 100644 (file)
@@ -42,15 +42,13 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Abort if autopurge is not active or disabled by admin
-if ((!isExtensionActive('autopurge')) || (getConfig('auto_purge_active') != 'Y')) {
+if ((!isExtensionActive('autopurge')) || (getConfig('auto_purge_active') != 'Y') || (getConfig('ap_del_mails') != 'Y')) {
        // Abort here
        return false;
 } // END - if
 
-// Search for mails from deleted members?
-if (getConfig('ap_del_mails') == 'Y') {
-       // Okay, let's check for them...
-       $result_mails = SQL_QUERY("SELECT
+// Okay, let's check for deleted mails
+$result_mails = SQL_QUERY("SELECT
        `sender`
 FROM
        `{?_MYSQL_PREFIX?}_pool`
@@ -59,24 +57,22 @@ WHERE
 ORDER BY
        `sender` ASC", __FILE__, __LINE__);
 
-       // Reset counter...
-       $DELETED = 0;
+// Reset counter...
+$DELETED = 0;
 
-       // Do we have "purged" mails?
-       if (SQL_NUMROWS($result_mails) > 0) {
-               // Okay, check for their sender's
-               while ($content = SQL_FETCHARRAY($result_mails)) {
-                       // Check now...
-                       $fount = SQL_NUMROWS(SQL_QUERY_ESC("SELECT userid FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1",
-                       array(bigintval($content['sender'])), __FILE__, __LINE__));
-                       if ($found == 0) {
-                               // Okay we found some mails!
-                               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_pool` WHERE `sender`=%s",
-                                       array(bigintval($content['sender'])), __FILE__, __LINE__);
-                               $DELETED += SQL_AFFECTEDROWS();
+// Do we have "purged" mails?
+if (SQL_NUMROWS($result_mails) > 0) {
+       // Okay, check for their sender's
+       while ($content = SQL_FETCHARRAY($result_mails)) {
+               // Check now...
+               if (!fetchUserData($content['sender'])) {
+                       // Okay we found some mails!
+                       SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_pool` WHERE `sender`=%s",
+                               array(bigintval($content['sender'])), __FILE__, __LINE__);
+                       $DELETED += SQL_AFFECTEDROWS();
 
-                               // Reset query (to prevent possible errors) ...;
-                               $result_mails = SQL_QUERY("SELECT
+                       // Reset query (to prevent possible errors) ...;
+                       $result_mails = SQL_QUERY("SELECT
        `sender`
 FROM
        `{?_MYSQL_PREFIX?}_pool`
@@ -84,58 +80,55 @@ WHERE
        `data_type`='DELETED' AND timestamp <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
 ORDER BY
        `sender` ASC", __FILE__, __LINE__);
-                       }
-               }
-       }
+               } // END - if
+       } // END - while
+} // END - if
 
-       // Free memory
-       SQL_FREERESULT($result_mails);
+// Free memory
+SQL_FREERESULT($result_mails);
 
-       // Now let's check for stats entries as well;
-       $result_mails = SQL_QUERY("SELECT
-       `sender`
+// Now let's check for stats entries as well;
+$result_mails = SQL_QUERY("SELECT
+       `userid` AS sender
 FROM
        `{?_MYSQL_PREFIX?}_user_stats`
 WHERE
-       `data_type`='DELETED' AND `timestamp_send` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+       `timestamp_send` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
 ORDER BY
        `sender` ASC", __FILE__, __LINE__);
 
-       // Do we have "purged" mails?
-       if (SQL_NUMROWS($result_mails) > 0) {
-               // Okay, check for their sender's
-               while ($content = SQL_FETCHARRAY($result_mails)) {
-                       // Check now...
-                       $found = SQL_NUMROWS(SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1",
-                               array(bigintval($content['sender'])), __FILE__, __LINE__));
-                       if ($found == 0) {
-                               // Okay we found some mails!
-                               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `sender`=%s",
-                                       array(bigintval($content['sender'])), __FILE__, __LINE__);
-                               $DELETED += SQL_AFFECTEDROWS();
+// Do we have "purged" mails?
+if (SQL_NUMROWS($result_mails) > 0) {
+       // Okay, check for their sender's
+       while ($content = SQL_FETCHARRAY($result_mails)) {
+               // Check now...
+               if (!fetchUserData($content['sender'])) {
+                       // Okay we found some mails!
+                       SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `sender`=%s",
+                               array(bigintval($content['sender'])), __FILE__, __LINE__);
+                       $DELETED += SQL_AFFECTEDROWS();
 
-                               // Reset query (to prevent possible errors) ...
-                               $result_mails = SQL_QUERY("SELECT
-       `sender`
+                       // Reset query (to prevent possible errors) ...
+                       $result_mails = SQL_QUERY("SELECT
+       `userid` AS sender
 FROM
        `{?_MYSQL_PREFIX?}_user_stats`
 WHERE
-       `data_type`='DELETED' AND timestamp_send <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
+       `timestamp_send` <= (UNIX_TIMESTAMP() - {?ap_dm_timeout?})
 ORDER BY
        `sender` ASC", __FILE__, __LINE__);
-                       }
-               }
-       }
+               } // END - if
+       } // END - while
+} // END - if
 
-       // Free memory
-       SQL_FREERESULT($result_mails);
+// Free memory
+SQL_FREERESULT($result_mails);
 
-       // Do we have deleted mails and the admin want's to receive a notification
-       if (($DELETED > 0) && (getConfig('ap_dm_notify') == 'Y')) {
-               // Send out email to admin
-               sendAdminNotification(getMessage('AUTOPURGE_ADMIN_DEL_MAILS_SUBJECT'), 'admin_autopurge_del_mails', $DELETED, '');
-       } // END - if
-}
+// Do we have deleted mails and the admin want's to receive a notification
+if (($DELETED > 0) && (getConfig('ap_dm_notify') == 'Y')) {
+       // Send out email to admin
+       sendAdminNotification(getMessage('AUTOPURGE_ADMIN_DEL_MAILS_SUBJECT'), 'admin_autopurge_del_mails', $DELETED, '');
+} // END - if
 
 //
 ?>