3 # $Id: megapop.pl,v 1.1 1999-04-19 10:32:44 ivan Exp $
5 # this will break when megapop changes the URL or format of their listing page.
6 # that's stupid. perhaps they can provide a machine-readable listing?
10 use FS::UID qw(adminsuidsetup);
13 my $url = "http://www.megapop.com/location.htm";
15 my $user = shift or die &usage;
16 adminsuidsetup($user);
18 my %state2usps = &state2usps;
19 $state2usps{'WASHINGTON STATE'} = 'WA'; #megapop's on crack
20 $state2usps{'CANADA'} = 'CANADA'; #freeside's on crack
22 my $ua = new LWP::UserAgent;
23 my $request = new HTTP::Request('GET', $url);
24 my $response = $ua->request($request);
25 die $response->error_as_HTML unless $response->is_success;
28 foreach $line ( split("\n", $response->content) ) {
29 if ( $line =~ /\W(\w[\w\s]*\w)\s+LOCATIONS/i ) {
30 $usps = $state2usps{uc($1)}
31 or warn "warning: unknown state $1\n";
32 } elsif ( $line =~ /(\d{3})\-(\d{3})\-(\d{4})\s+(\w[\w\s]*\w)/ ) {
33 print "$1 $2 $3 $4 $usps\n";
34 my $svc_acct_pop = new FS::svc_acct_pop ( {
40 my $error = $svc_acct_pop->insert;
46 die "Usage:\n $0 user\n";
52 'AMERICAN SAMOA' => 'AS',
57 'CONNECTICUT' => 'CT',
59 'DISTRICT OF COLUMBIA' => 'DC',
60 'FEDERATED STATES OF MICRONESIA' => 'FM',
73 'MARSHALL ISLANDS' => 'MH',
75 'MASSACHUSETTS' => 'MA',
78 'MISSISSIPPI' => 'MS',
83 'NEW HAMPSHIRE' => 'NH',
87 'NORTH CAROLINA' => 'NC',
88 'NORTH DAKOTA' => 'ND',
89 'NORTHERN MARIANA ISLANDS' => 'MP',
94 'PENNSYLVANIA' => 'PA',
95 'PUERTO RICO' => 'PR',
96 'RHODE ISLAND' => 'RI',
97 'SOUTH CAROLINA' => 'SC',
98 'SOUTH DAKOTA' => 'SD',
103 'VIRGIN ISLANDS' => 'VI',
105 'WASHINGTON' => 'WA',
106 'WEST VIRGINIA' => 'WV',
109 'ARMED FORCES AFRICA' => 'AE',
110 'ARMED FORCES AMERICAS' => 'AA',
111 'ARMED FORCES CANADA' => 'AE',
112 'ARMED FORCES EUROPE' => 'AE',
113 'ARMED FORCES MIDDLE EAST' => 'AE',
114 'ARMED FORCES PACIFIC' => 'AP',