5 use Class::DBI::Loader;
6 #use Class::DBI::AbstractSearch;
10 dsn => 'dbi:Pg:dbname=webpac2',
14 name => 'PostgreSQL General Bits',
15 path => '/rest/references/PgGeneratBits/bits',
16 uri => 'http://www.varlena.com/varlena/GeneralBits/archive.php',
21 my $l = Class::DBI::Loader->new(
22 debug => $self->{'debug'},
23 dsn => $self->{'dsn'},
24 user => $self->{'user'},
25 password => $self->{'passwd'},
26 namespace => "WebPAC::Input::PgBits::CDBI",
27 # additional_classes => qw/Class::DBI::AbstractSearch/,
28 # additional_base_classes => qw/My::Stuff/,
32 my $top = $l->find_class('topics_webarchive')->find_or_create( $self->{catalog} );
36 my $file = shift || die;
38 my $html = read_file($file);
40 my ($issue_no, $issue_date, $this_entry);
42 if ($html =~ m#<!-- ISSUE Number/Date -->.+?(\d+-\w+-\d\d\d\d)\s+Issue:\s+(\d+)#s) {
45 print "## issue $issue_no on $issue_date [$file]\n";
47 $issue = $l->find_class('topics_pgbits')->find_or_create(
48 name => "issue $issue_no",
53 parent_id => $top->id,
58 warn "can't find issue number and date in $file, skipping\n";
63 while($html =~ s#^.*?<!-- IKEY="([^"]+)" -->.+?<MYTITLE>\s*([^<]+)\s*</MYTITLE>.+?<ITITLE>\s*([^<]+)\s*</ITITLE>.+?<IDATE>\s*([^<]+)\s*</IDATE>.+?</TABLE>\s*(.+?)\s*<ICONT>\s*(.+?)\s*</ICONT>##si){
65 name => $2 . ( $3 ? " :: $3" : ""),
77 print $row->{name}," ", $row->{date},"\n";
78 my $article = $l->find_class('items_pgbits')->find_or_create( $row );
81 $l->find_class('item_topics')->find_or_create(
82 topic_id => $issue->id,
83 item_id => $article->id,
88 find({ wanted => sub {
89 my $path = $File::Find::name;
90 return unless ($path =~ m#\.php$#i && $path !~ m#\d+(?:po|es)\.#);
93 follow => 1 }, '/rest/references/PgGeneralBits/bits/');