]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blobdiff - inst/antifraude.pl
Se ordena el listado de archivos de llamada segun la fecha indicada por su filename...
[z.facultad/75.08/llamadas.git] / inst / antifraude.pl
index 04d7fee0a4e2a0e0fed5d393be0143a9dbaa2dd8..623475d52d092dbf9b85519e935f89db3328b4d0 100644 (file)
@@ -1,15 +1,38 @@
 #!/usr/bin/perl
 
+# Comparador de fecha para los archivos de llamada
+sub byDate {
+       ($year1,$mon1,$day1,$hr1,$min1) = $a =~ /([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/;
+       ($year2,$mon2,$day2,$hr2,$min2) = $b =~ /([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/;
+       
+       # Descarto por año
+       if ($year1 > $year2) { return 1; }
+       elsif ($year1 < $year2) { return -1; }
+
+       # Descarto por mes
+       if ($mon1 > $mon2) { return 1; }
+       elsif ($mon1 < $mon2) { return -1; }
+
+       # Calculo minutos de lo restante
+       $totalmin1 = ($day1 * 24 * 60) + ($hr1 * 60) + $min1;
+       $totalmin2 = ($day2 * 24 * 60) + ($hr2 * 60) + $min2;
+       if ($totalmin1 > $totalmin2) { return 1; }
+       elsif ($totalmin1 < $totalmin2) { return -1; }
+       else { return 0; }
+}
+
+# Devuelve un listado de archivos de llamada y ordenado por fecha ASC
 sub getCallFiles {
        # Obtengo listado de archivos de llamadas y lo ordeno por fecha
        opendir($DIR,$_[0]) or die 'Could not open dir';
        # Valido solo fisicamente, lo logico ya valido afimonio..
        @files = grep {/[0-9]{12}\.[0-9]{4}/ && 
                        -f "$ARGV[0]/$_" } readdir($DIR);
-       #@sortedfiles = sort bydate @files; // Do subroutine
+       @sortedfiles = sort byDate @files;
        closedir($DIR);
-       return @files;
+       return @sortedfiles;
 }
+# --------- MAIN CODE -------- #
 
 # En la version final, recibo por param el directorio del .conf, por ahora
 # recibo un dir donde tengo archivos de llamadas
@@ -20,5 +43,5 @@ if ((!$ARGV[0]) || (! -d $ARGV[0])) {
 
 @archivos = getCallFiles($ARGV[0]);
 foreach $callfile (@archivos) {
-       printf("Archivo de llamada: $callfile\n");
+       print("Archivo de llamada: $callfile\n");
 }