diff options
author | Yorhel <git@yorhel.nl> | 2011-05-03 10:14:37 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2011-05-03 10:14:37 +0200 |
commit | 8da57d32fae2989438c8b509821c339464d26c82 (patch) | |
tree | f5f2e136d37e38e2f6ac1df65ca1382dfc9aa37c | |
parent | 50a94610a570c16f1e4c9ffcadc60739d4a30b82 (diff) |
affiliates: Expose some columns and allow price without lastfetch
This allows the price info to be manually set without worrying about the
lastfetch. Would be useful with MangaGamer.
-rw-r--r-- | lib/VNDB/DB/Affiliates.pm | 12 | ||||
-rw-r--r-- | lib/VNDB/Handler/Affiliates.pm | 8 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNPage.pm | 3 |
3 files changed, 17 insertions, 6 deletions
diff --git a/lib/VNDB/DB/Affiliates.pm b/lib/VNDB/DB/Affiliates.pm index 51320b47..51f8c2dc 100644 --- a/lib/VNDB/DB/Affiliates.pm +++ b/lib/VNDB/DB/Affiliates.pm @@ -36,7 +36,7 @@ sub dbAffiliateGet { return $self->dbAll(qq| SELECT af.id, af.rid, af.hidden, af.priority, af.affiliate, af.url, af.version, - extract('epoch' from af.lastfetch) as lastfetch, af.price$select + extract('epoch' from af.lastfetch) as lastfetch, af.price, af.data$select FROM affiliate_links af $join !W @@ -53,15 +53,19 @@ sub dbAffiliateDel { sub dbAffiliateEdit { my($self, $id, %ops) = @_; my %set; - exists($ops{$_}) && ($set{"$_ = ?"} = $ops{$_}) for(qw|rid priority hidden affiliate url version|); + exists($ops{$_}) && ($set{"$_ = ?"} = $ops{$_}) for(qw|rid priority hidden affiliate url version price data|); + $set{"lastfetch = TIMESTAMP WITH TIME ZONE 'epoch' + ? * INTERVAL '1 second'"} = $ops{lastfetch} || $ops{lastfetch} eq '0' ? $ops{lastfetch} : undef if exists $ops{lastfetch}; return if !keys %set; $self->dbExec('UPDATE affiliate_links !H WHERE id = ?', \%set, $id); } + sub dbAffiliateAdd { my($self, %ops) = @_; - $self->dbExec('INSERT INTO affiliate_links (rid, priority, hidden, affiliate, url, version) VALUES(!l)', - [@ops{qw| rid priority hidden affiliate url version|}]); + $self->dbExec(q|INSERT INTO affiliate_links (rid, priority, hidden, affiliate, url, version, price, data, lastfetch) + VALUES(!l, TIMESTAMP WITH TIME ZONE 'epoch' + ? * INTERVAL '1 second')|, + [@ops{qw| rid priority hidden affiliate url version price data|}], + $ops{lastfetch} || $ops{lastfetch} eq '0' ? $ops{lastfetch} : undef); } diff --git a/lib/VNDB/Handler/Affiliates.pm b/lib/VNDB/Handler/Affiliates.pm index 679d6ee2..0482e597 100644 --- a/lib/VNDB/Handler/Affiliates.pm +++ b/lib/VNDB/Handler/Affiliates.pm @@ -114,6 +114,9 @@ sub edit { { post => 'affiliate',required => 1, enum => [0..$#{$self->{affiliates}}] }, { post => 'url', required => 1 }, { post => 'version', required => 0, default => '' }, + { post => 'price', required => 0, default => '' }, + { post => 'lastfetch',required => 0, min => 0 }, + { post => 'data', required => 0, default => '' }, ); if(!$frm->{_err}) { $self->dbAffiliateEdit($id, %$frm) if $id; @@ -123,7 +126,7 @@ sub edit { } if($id) { - $frm->{$_} = $r->{$_} for(qw|rid priority hidden affiliate url version|); + $frm->{$_} = $r->{$_} for(qw|rid priority hidden affiliate url version price lastfetch data|); } else { $frm->{rid} = $self->reqGet('rid'); } @@ -137,6 +140,9 @@ sub edit { [ $_, $self->{affiliates}[$_]{name} ], grep $self->{affiliates}[$_], 0..$#{$self->{affiliates}} ] ], [ input => short => 'url', name => 'URL', width => 400 ], [ input => short => 'version', name => 'Version', width => 400 ], + [ input => short => 'price', name => 'Price' ], + [ input => short => 'lastfetch', name => 'Lastfetch', post => ' UNIX timestamp' ], + [ input => short => 'data', name => 'Data', width => 400 ], ]); $self->htmlFooter; } diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm index 01a80e7c..0358d09a 100644 --- a/lib/VNDB/Handler/VNPage.pm +++ b/lib/VNDB/Handler/VNPage.pm @@ -430,7 +430,8 @@ sub _affiliate_links { || ($f->{default_version} && $f->{default_version}->($self, $link, $rel)) || $version; txt " at $f->{name}"; - acronym class => 'pricenote', title => sprintf('Last updated: %s.', $en->age($link->{lastfetch})), " for $link->{price}" + acronym class => 'pricenote', title => + $link->{lastfetch} ? sprintf('Last updated: %s.', $en->age($link->{lastfetch})) : '', " for $link->{price}" if $link->{price}; txt ' ยป'; end; |