From 36e5a1735ea101765208e8ba982d4dcc96b50864 Mon Sep 17 00:00:00 2001 From: Jonathan Rosenbaum Date: Sun, 28 Dec 2025 11:33:21 -0500 Subject: [PATCH] Enhances CSV handling by adding status field extraction and filtering for primary status in google-civic-api.pl; updates .gitignore to include CSV files. Handles roster csv for MAL properly, but really not neccessary now that MAL's are in leage membership view file. --- .gitignore | 1 + google-civic-api.pl | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index d418ec1..d30e1ef 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ inc/ /pm_to_blib /*.zip env +*.csv diff --git a/google-civic-api.pl b/google-civic-api.pl index f9008f0..32bfab0 100755 --- a/google-civic-api.pl +++ b/google-civic-api.pl @@ -116,7 +116,7 @@ foreach my $file (@files) { $line =~ m/(?:,|\n|^)("(?:(?:"")*[^"]*)*"|[^",\n]*|(?:\n|$))/g ; #m/("[^"]+"|[^,]+)(?:,\s*)?/g; # print $#fields . "\n"; - my $leagueId, my $phone, my $email, my $joinDate; + my $leagueId, my $phone, my $email, my $joinDate, my $status; if ($localLeague) { # Local League file processing @@ -125,6 +125,7 @@ foreach my $file (@files) { ( $phone = $fields[4] ) =~ s/"//g; # Phone ( $email = $fields[3] ) =~ s/"//g; # Email ( $joinDate = $fields[13] ) =~ s/"//g; # Join Date + ( $status = $fields[12] ) =~ s/"//g; # Status - field [12] for Local League } else { # Members At Large (MAL) file processing @@ -133,6 +134,7 @@ foreach my $file (@files) { ( $phone = $fields[3] ) =~ s/"//g; # Phone ( $email = $fields[4] ) =~ s/"//g; # Email ( $joinDate = $fields[10] ) =~ s/"//g; # Join Date + ( $status = $fields[13] ) =~ s/"//g; # Status - field [13] for MAL files } ( my $firstName = $fields[0] ) =~ s/"//g; # First Name ( my $lastName = $fields[2] ) =~ s/"//g; # Last Name @@ -140,9 +142,11 @@ foreach my $file (@files) { ( my $city = $fields[6] ) =~ s/"//g; # City ( my $state = $fields[7] ) =~ s/"//g; # State ( my $zip = $fields[8] ) =~ s/"//g; # Zip - my $status = "true"; next if $street eq "Mailing Street"; + # Filter for Primary status only (Primary, Primary - Life, etc.) + next unless $status =~ /^Primary.*/; + if ( $leagueId !~ /^$STATE/ ) { next; }