]> git.llucax.com Git - software/sercom-old.git/blobdiff - src/sc_fetch
Bugfix.
[software/sercom-old.git] / src / sc_fetch
index 82bf9022efd911db0ea606d8d6447ef750e14832..7b82bf95feb5dadb8ac394e78717df90867d30cd 100755 (executable)
@@ -90,7 +90,7 @@ while (1) {
     $mbox_errcount = 0;
     logs('Conectado como '.@$mconf['user']." a $mailbox", DEBUG);
     if (imap_num_msg($mbox) and $hdr = imap_headerinfo($mbox, 1)) {
     $mbox_errcount = 0;
     logs('Conectado como '.@$mconf['user']." a $mailbox", DEBUG);
     if (imap_num_msg($mbox) and $hdr = imap_headerinfo($mbox, 1)) {
-        logs(sprintf("Nuevo mail '%s' de %s", decode_header($hdr->subject), decode_header($hdr->subject)));
+        logs(sprintf("Nuevo mail '%s' de %s", decode_header($hdr->subject), decode_header($hdr->from)));
         @list($padron, $ej, $ent, $codigo) = validar_cabecera($hdr);
         if ($padron) {
             logs('Cabecera válida', DEBUG);
         @list($padron, $ej, $ent, $codigo) = validar_cabecera($hdr);
         if ($padron) {
             logs('Cabecera válida', DEBUG);
@@ -124,8 +124,8 @@ while (1) {
                     . "Recuerde que el formato del asunto es estricto:\n"
                     . "[padrón] [ejercicio].[entrega] [código]\n\n"
                     . "Donde [padrón] es su número de padrón, [ejercicio] es el número de\n"
                     . "Recuerde que el formato del asunto es estricto:\n"
                     . "[padrón] [ejercicio].[entrega] [código]\n\n"
                     . "Donde [padrón] es su número de padrón, [ejercicio] es el número de\n"
-                    . "ejercicio (1 a 4), [entrega] el número de entrega (1 o 2) y [código]\n"
-                    . "es el código verificador que le fue asignado por la cátedra.\n"
+                    . "ejercicio (1 a 4), [entrega] el número de entrega (1 entrega, 2 reentrega)\n"
+                    . "y [código] es el código verificador que le fue asignado por la cátedra.\n"
             );
         }
         imap_delete($mbox, 1);
             );
         }
         imap_delete($mbox, 1);
@@ -186,7 +186,7 @@ EOT;
 function validar_cabecera($hdr) {
     // Subject: padron nro_ej nro_entrega clave_alumno
     $subject = decode_header($hdr->subject);
 function validar_cabecera($hdr) {
     // Subject: padron nro_ej nro_entrega clave_alumno
     $subject = decode_header($hdr->subject);
-    if (preg_match('/^\s*(\d{5})\s+([1-4])\.([12])\s+(.*)$/', $subject, $m)) {
+    if (preg_match('/^\s*(\d{5})\s+(\d)\.(\d)\s+(.*)$/', $subject, $m)) {
         return array_slice($m, 1, 5);
     }
     return false;
         return array_slice($m, 1, 5);
     }
     return false;
@@ -201,8 +201,9 @@ function preparar_entrega($intento, $mbox, $msgid, $dir) {
         $fname = part_filename($part);
         if ($fname) {
             logs("Escribiendo archivo '$fname' [enc={$part->encoding}]", DEBUG);
         $fname = part_filename($part);
         if ($fname) {
             logs("Escribiendo archivo '$fname' [enc={$part->encoding}]", DEBUG);
-            $body = imap_fetchbody($mbox, $msgid, $id + 1);
-            if (!file_put_contents("$path/$fname", decode_body($body, $part->encoding))) return "Error al guardar el archivo $fname";
+            $body = decode_body(imap_fetchbody($mbox, $msgid, $id + 1), $part->encoding);
+            if (!$body) return "El archivo '$fname' está vacío";
+            if (!file_put_contents("$path/$fname", $body)) return "Error al guardar el archivo $fname";
         }
         //if (part_is_source($part) $has_sources = true;
         //elseif (part_mime_type($part) == 'application/zip') $has_sources = true;
         }
         //if (part_is_source($part) $has_sources = true;
         //elseif (part_mime_type($part) == 'application/zip') $has_sources = true;