#!/usr/bin/perl -w

if (/^BARCODE:\d+,(UPA|UA2|UA5),(\w{12})/) {
    print "Feeding $2 type UPC-A to debarcode.com...\n" if ($::verbosity >= 2);
    system("netscape 'http://www.deBarcode.com/deBarcode/cgi-bin/deBarcode.cgi?type=U.P.C.+A&barcode=$2&deBarcode=deBarcode'&");
} elsif (/^BARCODE:\d+,UPE,(\w{8})/) {
    print "Feeding $1 type UPC-E to debarcode.com...\n" if ($::verbosity >= 2);
    system("netscape 'http://www.deBarcode.com/deBarcode/cgi-bin/deBarcode.cgi?type=U.P.C.+E&barcode=$1&deBarcode=deBarcode'&");
} elsif (/^BARCODE:\d+,(IB5|IBN),(\w{13})/) {
    print "Feeding $2 type ISBN to barnesandnoble.com...\n" if ($::verbosity >= 2);
    system("netscape 'http://shop.barnesandnoble.com/booksearch/isbnInquiry.asp?ean=$2'&");
} elsif (/^BARCODE:\d+,128,(1[Zz]\w{16}|\w{11}|[Tt]\w{10})$/) {
    print "Feeding $1 to UPS tracking...\n" if ($::verbosity >= 2);
    system("netscape 'http://wwwapps.ups.com/etracking/tracking.cgi?TypeOfInquiryNumber=T&InquiryNumber1=$1'&");
} elsif (/^BARCODE:\d+,128,\w{16}(\w{12})\w{16}$/) {
    print "Feeding $1 to FedEx tracking...\n" if ($::verbosity >= 2);
    system("netscape 'http://www.fedex.com/cgi-bin/tracking?tracknumbers=$1&action=track&language=english&cntry_code=us'&");
} elsif (/^BARCODE:(\d+),(...),(.*)$/) {
    print "Couldn't identify barcode with type $2 and value '$3'.\n" if ($::verbosity >= 1);
} else {
    print "Invalid driver code found: $_\n" if ($::verbosity >= 1);
}
return 1;
