Commit:    92648c56c140ffb899c353618830d1991f197006
Author:    Hannes Magnusson <[email protected]>         Sun, 3 May 2015 23:50:37 
+0000
Parents:   246fb2dbcb220128eb596b249fe2bf8c8b43aeea
Branches:  master

Link:       
http://git.php.net/?p=web/master.git;a=commitdiff;h=92648c56c140ffb899c353618830d1991f197006

Log:
Update the weekly summary mail to

a) sync with mirror-test
b) set envelope sender to the mail gets through to our list

Changed paths:
  M  scripts/mirror-summary

diff --git a/scripts/mirror-summary b/scripts/mirror-summary
index 3a06f95..c59be66 100755
--- a/scripts/mirror-summary
+++ b/scripts/mirror-summary
@@ -8,13 +8,23 @@
 */
 
 // Please edit this when testing to print the mail out, not send them to the 
list every time
-define("DEBUG", false);
+define("DEBUG", true);
 
+function email($address, $subject, $content) {
+       if (DEBUG) {
+               echo $subject, "\n", $content, "\n\n\n\n";
+               return;
+       }
+
+       $headers = "From: [email protected]";
+       $extrah  = "[email protected]";
+       return mail($address, $subject, $content, $headers, $extrah);
+}
 // This script will run for a long time
 set_time_limit (0);
 
 // Empty arrays by default
-$inactives = $outdated = $disabled = array();
+$inactives = $disabled = $lines = array();
  
 // Try to connect to the database and select phpmasterdb database
 mysql_connect("localhost","nobody","") or die("unable to connect to database");
@@ -25,51 +35,68 @@ $lct = mysql_query("SELECT UNIX_TIMESTAMP(lastchecked) FROM 
mirrors ORDER BY las
 list($checktime) = mysql_fetch_row($lct);
 
 // Select all mirrors ordered by hostname
-$query = "SELECT maintainer, hostname, id, has_search, 
UNIX_TIMESTAMP(lastupdated) AS lastupdate, " .
+$query = "SELECT maintainer, active, hostname, id, has_search, 
UNIX_TIMESTAMP(lastupdated) AS lastupdate, " .
          "phpversion, acmt, ocmt " .
-         "FROM mirrors ORDER BY hostname";
+         "FROM mirrors WHERE mirrortype = 1 ORDER BY hostname";
 
 // Execute SQL query
 $result = mysql_query($query) or die("unable to get from the database");
 
-// Download data to the $hosts array, and count total number of hosts
 while ($host = mysql_fetch_assoc($result)) {
-    // skips: docs.php.net is not an official mirror (builds own manuals, 
empty distributions/, ...)
-    if ($host['hostname'] === 'docs.php.net') {
-        continue;
-    }
-    $hosts[] = $host;
+
+       if (!$host["active"] || $host["ocmt"]) {
+               $error = "";
+               if (!$host["active"]) {
+                       $disabled[$host["hostname"]] = $host;
+                       $error .= $host["acmt"];
+               }
+               if ($host["ocmt"]) {
+                       $inactives[$host["hostname"]] = $host;
+                       $error .= $host["ocmt"];
+               }
+
+               $message = "Hi!\n\nOur automatic mirror site check found a 
permanent "
+                       ."fatal error in your mirror setup.\n"
+                       ."Therefore our bot automatically disabled your listing 
as an\n"
+                       ."official PHP.net mirror site.\n"
+                       ."\n$error\n"
+                       ."Please correct the problem or reply to this mail with 
your\n"
+                       ."questions, if you think that the problem is not on 
your side.\n"
+                       ."Your mirror will be kept disabled until the error is 
fixed.\n\n"
+                       ."Mail sent out by the PHP.net automatic mirror site 
monitoring system";
+
+               email(
+                       $host["maintainer"],
+                       "{$host["hostname"]} mirror site deactivated",
+                       $message
+               );
+       } else {
+               $has_search = empty($host['has_search']) ? 'N' : 'Y';
+
+               $lines[]= sprintf(" %s%s%s%s%s%s%s\n", 
+                      $host['hostname'],   pad(12,  'hostname'), 
+                      $host['phpversion'], pad(6, 'phpversion'), 
+                      $has_search,              pad(1, 'has_search'), 
+                      date('F j, Y, g:i a', $host['lastupdate'])
+                 );
+       }
 }
-$total = count($hosts);
 
 // This is the common text for the php-mirrors mail
 $body = "Following is data gathered from the various mirrors. It is ordered by 
those\n"
       . "that are suspected to be dead, mirrors which are alive but have 
errors, and\n"
-      . "finally the rest, sorted by hostname. The maintainers of inactive and 
outdated\n"
+      . "finally the rest, sorted by hostname. The maintainers of inactive and 
disabled\n"
       . "mirror sites are automatically notified the same time, as this mail 
goes out.\n\n"
       . "View the mirror trouble guide here: 
http://php.net/mirroring-troubles.php\n\n";;
 
-// List mirrors which seem to be down
-for ($i=0; $i < $total; $i++) {
-    if (!$hosts[$i]['active']) {
-        $cmt = !empty($hosts[$i]['ocmt']) ? $hosts[$i]['ocmt'] : 
$hosts[$i]['acmt'];
-        $inactives[$hosts[$i]['hostname']] = array($hosts[$i]['maintainer'], 
$cmt);
-    }
-}
 if (count($inactives)) {
-  $body .= "These mirrors are badly broken or no response was returned within 
the last three days:\n\n";
-  $body .= wordwrap(join(', ', array_keys($inactives))) . "\n";
+       $body .= "These mirrors are badly broken:\n\n";
+       $body .= wordwrap(join(', ', array_keys($inactives))) . "\n";
 }
 
-for ($i=0; $i < $total; $i++) {
-    if (!$hosts[$i]['active']) {
-        $cmt = !empty($hosts[$i]['ocmt']) ? $hosts[$i]['ocmt'] : 
$hosts[$i]['acmt'];
-        $disabled[$hosts[$i]['hostname']] = array($hosts[$i]['maintainer'], 
$cmt);
-    }
-}
 if (count($disabled)) {
-    $body .= "\nThese mirrors are manually disabled:\n\n";
-    $body .= wordwrap(join(', ', array_keys($disabled))) . "\n";
+       $body .= "\nThese mirrors are manually disabled:\n\n";
+       $body .= wordwrap(join(', ', array_keys($disabled))) . "\n";
 }
 
 $body .= "\nAnd now for the rest of the mirrors:\n"
@@ -84,8 +111,8 @@ a quick strlen check, and depending on how different it is 
from the string lengt
 
 // Padd an item, respecting a default length
 function pad($deflen, $item) {
-    global $i, $hosts;
-    $str = strlen($hosts[$i][$item]);
+    global $host;
+    $str = strlen($host[$item]);
     if ($str >= $deflen*2) {
         $sp =" ";
     }
@@ -97,83 +124,14 @@ function pad($deflen, $item) {
     return $sp;    
 }
 
-for ($i=0; $i < $total; $i++) {
-    if ($hosts[$i]['active']){
-
-        $has_search = empty($hosts[$i]['has_search']) ? 'N' : 'Y';
-
-        $body .= sprintf(" %s%s%s%s%s%s%s\n", 
-                      $hosts[$i]['hostname'],   pad(12,  'hostname'), 
-                      $hosts[$i]['phpversion'], pad(6, 'phpversion'), 
-                      $has_search,              pad(1, 'has_search'), 
-                      date('F j, Y, g:i a', $hosts[$i]['lastupdate'])
-                 );
-    }
-}
 
+$body .= join("", $lines);
 $body . 
"---------------------------------------------------------------------------------------\n";
 
-if(DEBUG) {
-    echo $body . "\n\n";
-} else {
-    mail(
-        "[email protected]",
-        "[mirrors] Status information",
-        $body,
-        "From: [email protected]"
-    );
-}
-
+email(
+       "[email protected]",
+       "[mirrors] Status information",
+       $body
+);
 
-// Mail text for those mirror maintainers with inactive mirror sites
-$inactives_text = "Hi!\n\nOur automatic mirror site check was unable to 
reach\n"
-                 ."the PHP.net mirror site maintained by you for three or more 
days\n"
-                 ."now, *or* have found a permanent fatal error in your mirror 
setup.\n"
-                 ."Therefore our bot automatically disabled your listing as 
an\n"
-                 ."official PHP.net mirror site.\n\n"
-                 ."{{lasterror}}"
-                 ."Please correct the problem or reply to this mail with 
your\n"
-                 ."questions, if you think that the problem is not on your 
side.\n"
-                 ."Your mirror will be kept disabled until the error is 
fixed.\n\n"
-                 ."Mail sent out by the PHP.net automatic mirror site 
monitoring system";
-
-// Send mail to all inactive mirror maintainers
-foreach (array_merge($inactives, $disabled) as $hostname => $hostinfo) {
-    if (!empty($hostinfo[1])) {
-        $last_error = "The last error message stored for your mirror is:\n  
{$hostinfo[1]}\n\n";
-    }
-    else { $last_error = ""; }
-    if(DEBUG) {
-        echo $hostname. " - $last_error \n\n";
-    } else {
-        mail(
-            $hostinfo[0],
-            "$hostname mirror site deactivated",
-            str_replace("{{lasterror}}", $last_error, $inactives_text),
-            "From: [email protected]"
-        );
-    }
-}
 
-// Mail text for those mirror maintainers with outdated mirror sites
-$outdated_text = "Hi!\n\nOur automatic mirror site check found out, that\n"
-                 ."the PHP.net mirror site maintained by you was not updated 
in\n"
-                 ."the last seven or more days, and therefore automatically 
disabled\n"
-                 ."your listing as a PHP.net mirror site.\n\n"
-                 ."Please correct the problem or reply to this mail with 
your\n"
-                 ."questions, if you think that the problem is not on your 
side.\n\n"
-                 ."Mail sent out by the PHP.net automatic mirror site 
monitoring system";
-
-// Send mail to all outdated mirror maintainers
-foreach ($outdated as $hostname => $hostinfo) {
-    if(DEBUG) {
-        echo $hostname . " - outdated\n\n";
-    } else {
-        mail(
-            $hostinfo[0],
-            "$hostname mirror site deactivated",
-            $outdated_text,
-            "From: [email protected]"
-        );
-    }
-}
-- 
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to