commit 76925356e6754790b9f3d61dc20c44b23d000e6b from: Caleb Stein date: Tue Jun 2 01:16:52 2026 UTC initial commit commit - /dev/null commit + 76925356e6754790b9f3d61dc20c44b23d000e6b blob - /dev/null blob + 2bf6ec7036bb6021a02b1dd4545e3522acb40bf8 (mode 755) --- /dev/null +++ addrcache.pl @@ -0,0 +1,54 @@ +#!/usr/bin/perl + +use strict; + +use DBI; +use File::Path qw(make_path); + +my ($email, $name); +while (<>) +{ + next unless /From:\s*(.*)/i; + + my $line = $1; + if ($line =~ /^(.*)\s+<(.*)>$/) + { + $email = $2; + $name = $1; + $name =~ s/^"|"$//g; + } + else + { + $email = $line; + $line =~ s/\s+$//; + $name = ''; + } + +} + +my $db_dir = "$ENV{HOME}/.local/share/addrutils/"; +my $db = "addrs.db"; +my $dsn = "dbi:SQLite:dbname=$db_dir/$db"; + +make_path($db_dir); + +my $dbh = DBI->connect($dsn, "", "", { + RaiseError => 1, + AutoCommit => 1, + sqlite_see_if_its_a_number => 1, +}) or die "SQLite Error: $DBI::errstr"; + +$dbh->do(<<'SQL'); +CREATE TABLE IF NOT EXISTS contacts ( + Email TEXT NOT NULL, + Name TEXT, + CONSTRAINT PK_Contact PRIMARY KEY (Email, Name) +) +SQL + +my $insert_sql = "INSERT OR IGNORE INTO contacts (Email, Name) VALUES (?, ?)"; +my $insert = $dbh->prepare($insert_sql); +$insert->execute($email, $name); +$insert->finish; +$dbh->disconnect; + blob - /dev/null blob + e318d93e2d3e546e5971afbdc3279b636ee87dea (mode 755) --- /dev/null +++ addrquery.pl @@ -0,0 +1,29 @@ +#!/usr/bin/perl + +use strict; + +use DBI; + +my @addrs; + +my $db_dir = "$ENV{HOME}/.local/share/addrutils/"; +my $db = "addrs.db"; +my $dsn = "dbi:SQLite:dbname=$db_dir/$db"; + +my $dbh = DBI->connect($dsn, "", "", { + RaiseError => 1, + AutoCommit => 1, + sqlite_see_if_its_a_number => 1, +}) or die "SQLite Error: $DBI::errstr"; + +my $select_sql = "SELECT Email, Name FROM contacts WHERE Email LIKE ? OR Name LIKE ?"; +my $select = $dbh->prepare($select_sql); +$select->execute("%$ARGV[0]%", "%$ARGV[0]%"); +while (my $row = $select->fetchrow_hashref) +{ + print "\n$row->{Email}\t$row->{Name}"; +} +print "\n"; +$select->finish; +$dbh->disconnect; +