5 use Class::DBI::Loader;
6 #use Class::DBI::AbstractSearch;
10 dsn => 'dbi:Pg:dbname=webpac2',
14 path => '/rest/references/PgGeneratBits/bits',
15 title => 'PostgreSQL General Bits',
16 uri => 'http://www.varlena.com/varlena/GeneralBits/archive.php',
20 my $l = Class::DBI::Loader->new(
21 debug => $self->{'debug'},
22 dsn => $self->{'dsn'},
23 user => $self->{'user'},
24 password => $self->{'passwd'},
25 namespace => "WebPAC::Input::PgBits::CDBI",
26 # additional_classes => qw/Class::DBI::AbstractSearch/,
27 # additional_base_classes => qw/My::Stuff/,
31 my $this_catalog = $l->find_class('catalog_webarchive')->find_or_create( $self->{catalog} );
32 $this_catalog->dbi_commit;
35 my $file = shift || die;
37 my $html = read_file($file);
39 my ($issue_no, $issue_date, $this_entry);
41 if ($html =~ m#<!-- ISSUE Number/Date -->.+?(\d+-\w+-\d\d\d\d)\s+Issue:\s+(\d+)#s) {
44 print "## issue $issue_no on $issue_date [$file]\n";
46 $this_entry = $l->find_class('entries_pgbits')->find_or_create(
50 title => $self->{catalog}->{title} . " :: $issue_no",
52 $this_entry->dbi_commit;
54 $l->find_class('catalog_entry')->find_or_create(
55 catalog_id => $this_catalog->id,
56 entry_id => $this_entry->id,
60 warn "can't find issue number and date in $file, skipping\n";
65 while($html =~ s#^.*?<!-- IKEY="([^"]+)" -->.+?<MYTITLE>\s*([^<]+)\s*</MYTITLE>.+?<ITITLE>\s*([^<]+)\s*</ITITLE>.+?<IDATE>\s*([^<]+)\s*</IDATE>.+?</TABLE>\s*(.+?)\s*<ICONT>\s*(.+?)\s*</ICONT>##si){
67 title => $1 . ( $2 ? " :: $2" : ""),
76 entry_id => $this_entry->id,
80 print $row->{title}," ", $row->{date},"\n";
81 $l->find_class('items_pgbits')->find_or_create( $row )->dbi_commit;
85 find({ wanted => sub {
86 my $path = $File::Find::name;
87 return unless ($path =~ m#\.php$#i && $path !~ m#\d+(?:po|es)\.#);
90 follow => 1 }, '/rest/references/PgGeneralBits/bits/');