diff options
author | yorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b> | 2008-05-20 17:46:52 +0000 |
---|---|---|
committer | yorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b> | 2008-05-20 17:46:52 +0000 |
commit | c2615af845fef85c048d3d1b2e0fd83b701dc4e1 (patch) | |
tree | ffd38c74eee923eedbb6cec3294165dcd5fa733f /lib | |
parent | 2ce770e7e5817f8838fdaf7bc7eda2a8da972962 (diff) |
Several bugfixes, xml extention to rss feeds, noindex on user forms, client side filter selection, and how the fuck did the "Finished" status get lost!?
git-svn-id: svn://vndb.org/vndb@14 1fe2e327-d9db-4752-bcf7-ef0cb4a1748b
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ChangeLog | 5 | ||||
-rw-r--r-- | lib/Multi/IRC.pm | 2 | ||||
-rw-r--r-- | lib/Multi/Sitemap.pm | 18 | ||||
-rw-r--r-- | lib/VNDB.pm | 23 | ||||
-rw-r--r-- | lib/VNDB/HomePages.pm | 4 | ||||
-rw-r--r-- | lib/VNDB/Util/DB.pm | 8 | ||||
-rw-r--r-- | lib/VNDB/VN.pm | 4 | ||||
-rw-r--r-- | lib/global.pl | 1 |
8 files changed, 45 insertions, 20 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog index a9969ac5..43bfbf1b 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -18,7 +18,10 @@ TODO: - Grouped producers, user stats and general information on the VN page - Added language icons to producer browser - A little CSS cleanup - - Grouped category browser into one advanced search + - Grouped category browser and search into one advanced search + - Updated sitemap generator + - Pattern matching bug fixes in Multi::IRC, and better handling of commands + - Added .xml extention to all RSS URLs 1.15 - 2008-05-04 - Relation graph now also updated on VN title change diff --git a/lib/Multi/IRC.pm b/lib/Multi/IRC.pm index 58789675..5611c3cf 100644 --- a/lib/Multi/IRC.pm +++ b/lib/Multi/IRC.pm @@ -148,7 +148,7 @@ sub vndbid { # dest, msg my @id; push @id, [$1,$2,$3,$4] while $m =~ s/^(.*)([duvpr])([0-9]+)(.*)$/ $1 $4 /i; for (reverse @id) { - next if $$_[0] =~ /[a-z0-9%/]$/i || $$_[3] =~ /^[a-z]/i; + next if $$_[0] =~ /[a-z0-9%\/]$/i || $$_[3] =~ /^[a-z.]/i; my($t, $id, $ext) = (lc($$_[1]), $$_[2], $$_[3]); next if $_[HEAP]{log}{$t.$id}; diff --git a/lib/Multi/Sitemap.pm b/lib/Multi/Sitemap.pm index 991244fd..d21d7fb9 100644 --- a/lib/Multi/Sitemap.pm +++ b/lib/Multi/Sitemap.pm @@ -67,11 +67,13 @@ sub cmd_sitemap { sub staticpages { $_[KERNEL]->call(core => log => 3, 'Adding static pages'); - $_[KERNEL]->call(sitemap => addurl => '', 'd'); - $_[KERNEL]->call(sitemap => addurl => 'faq', 'm'); + $_[KERNEL]->call(sitemap => addurl => '', 'daily'); - $_[KERNEL]->call(sitemap => addurl => $_, 'w') - for ( (map { 'v/'.$_ } 'a'..'z'), 'v/all', 'v/cat', (map { 'p/'.$_ } 'a'..'z'), 'p/all'); + /([0-9]+)$/ && $_[KERNEL]->call(sitemap => addurl => 'd'.$1, 'monthly') + for ( (</www/vndb/data/docs/*>) ); + + $_[KERNEL]->call(sitemap => addurl => $_, 'weekly') + for ( (map { 'v/'.$_ } 'a'..'z'), 'v/all', 'v/search', (map { 'p/'.$_ } 'a'..'z'), 'p/all'); $_[KERNEL]->yield('vnpages'); } @@ -88,8 +90,8 @@ sub vnpages { |); $q->execute; while(local $_ = $q->fetchrow_arrayref) { - $_[KERNEL]->call(sitemap => addurl => 'v'.$_->[0], 'w', $_->[1], 0.7); - $_[KERNEL]->call(sitemap => addurl => 'v'.$_->[0].'/rg', 'w', $_->[1], 0.7) if $_->[2]; + $_[KERNEL]->call(sitemap => addurl => 'v'.$_->[0], 'weekly', $_->[1], 0.7); + $_[KERNEL]->call(sitemap => addurl => 'v'.$_->[0].'/rg', 'weekly', $_->[1], 0.7) if $_->[2]; } $_[KERNEL]->yield('releasepages'); @@ -107,7 +109,7 @@ sub releasepages { |); $q->execute; while(local $_ = $q->fetchrow_arrayref) { - $_[KERNEL]->call(sitemap => addurl => 'r'.$_->[0], 'w', $_->[1], 0.3); + $_[KERNEL]->call(sitemap => addurl => 'r'.$_->[0], 'weekly', $_->[1], 0.3); } $_[KERNEL]->yield('producerpages'); @@ -125,7 +127,7 @@ sub producerpages { |); $q->execute; while(local $_ = $q->fetchrow_arrayref) { - $_[KERNEL]->call(sitemap => addurl => 'p'.$_->[0], 'w', $_->[1]); + $_[KERNEL]->call(sitemap => addurl => 'p'.$_->[0], 'weekly', $_->[1]); } $_[KERNEL]->yield('finish'); diff --git a/lib/VNDB.pm b/lib/VNDB.pm index 93f9e190..5ac3bc87 100644 --- a/lib/VNDB.pm +++ b/lib/VNDB.pm @@ -79,7 +79,6 @@ my %VNDBuris = ( # wildcards: * -> (.+), + -> ([0-9]+) v => { '/' => sub { shift->VNBrowse }, new => sub { shift->VNEdit(0); }, - #search => sub { shift->VNSearch }, '*' => sub { $_[2] =~ /^([a-z0]|all|search)$/ ? shift->VNBrowse($_[1]) : shift->ResNotFound; }, }, 'v+' => { @@ -135,10 +134,21 @@ my %OLDuris = ( '*' => sub { shift->ResRedirect('/v/'.$_[1], 'perm') }, }, v => { - cat => sub { }, + cat => sub { + my $f = $_[0]->FormCheck({name=>'i',required=>0},{name=>'e',required=>0},{name=>'l',required=>0}, + {name=>'p',required=>0},{name=>'o',required=>0},{name=>'s',required=>0}); + my %f; + $f{$_} = $f->{$_} for (qw|p o s|); + $f{q} = join ' ', (map $VNDB::CAT->{substr($_,0,1)}[1]{substr($_,1,2)}, split /,/, $f->{i}), + (map '-'.$VNDB::CAT->{substr($_,0,1)}[1]{substr($_,1,2)}, split /,/, $f->{e}), + (map $VNDB::LANG->{$_}, split /,/, $f->{l}); + !$f{$_}&&delete $f{$_} for keys %f; + $_[0]->ResRedirect('/v/search'.(!(keys %f)?'':'?'.join(';', map $_.'='.$f{$_}, keys %f) ), 'perm'); + }, }, 'v+' => { votes => sub { shift->ResRedirect('/v'.(shift).'/stats', 'perm') }, + hist=>{rss => sub { shift->ResRedirect('/v'.(shift).'/hist/rss.xml', 'perm') } }, }, u => { '*' => { @@ -151,7 +161,14 @@ my %OLDuris = ( } }, } - } + }, + 'u+' => { + hist=>{rss => sub { shift->ResRedirect('/u'.(shift).'/hist/rss.xml', 'perm') } }, + }, + 'p+' => { + hist=>{rss => sub { shift->ResRedirect('/p'.(shift).'/hist/rss.xml', 'perm') } }, + }, + hist=>{rss => sub { shift->ResRedirect('/hist/rss.xml', 'perm') } }, ); diff --git a/lib/VNDB/HomePages.pm b/lib/VNDB/HomePages.pm index 0e99f517..7ce07983 100644 --- a/lib/VNDB/HomePages.pm +++ b/lib/VNDB/HomePages.pm @@ -62,13 +62,13 @@ sub DocPage { } -sub History { # type(p,v,r,u), id, [rss|/] +sub History { # type(p,v,r,u), id, [rss.xml|/] my($self, $type, $id, $fmt) = @_; $type ||= ''; $id ||= 0; $fmt = undef if !$fmt || $fmt eq '/'; - return $self->ResNotFound if $fmt && $fmt ne 'rss'; + return $self->ResNotFound if $fmt && $fmt ne 'rss.xml'; my $f = $self->FormCheck( { name => 'p', required => 0, default => 1, template => 'int' }, diff --git a/lib/VNDB/Util/DB.pm b/lib/VNDB/Util/DB.pm index a2b4a035..87b7ba89 100644 --- a/lib/VNDB/Util/DB.pm +++ b/lib/VNDB/Util/DB.pm @@ -108,6 +108,7 @@ sub DBCategoryCount { SELECT cat, COUNT(vid) AS cnt FROM vn_categories vc JOIN vn v ON v.latest = vc.vid + WHERE v.hidden = 0 GROUP BY cat ORDER BY cnt| )} @@ -119,10 +120,15 @@ sub DBCategoryCount { sub DBLanguageCount { return { (map { $_ => 0 } keys %$VNDB::LANG ), map { $_->{language} => $_->{count} } @{shift->DBAll(q| - SELECT rr.language, COUNT(DISTINCT rv.vid) AS count + SELECT rr.language, COUNT(DISTINCT v.id) AS count FROM releases_rev rr JOIN releases r ON r.latest = rr.id JOIN releases_vn rv ON rv.rid = rr.id + JOIN vn v ON v.id = rv.vid + WHERE r.hidden = 0 + AND v.hidden = 0 + AND rr.type <> 2 + AND rr.released <= TO_CHAR('today'::timestamp, 'YYYYMMDD')::integer GROUP BY rr.language|)} }; } diff --git a/lib/VNDB/VN.pm b/lib/VNDB/VN.pm index fd46672c..5436f07e 100644 --- a/lib/VNDB/VN.pm +++ b/lib/VNDB/VN.pm @@ -286,12 +286,8 @@ sub VNBrowse { page => $f->{p}, chr => $chr, $chr eq 'search' ? ( - incl => \@cati, - excl => \@cate, cat => $self->DBCategoryCount, langc => $self->DBLanguageCount, - lang => \@lang, - plat => \@plat, ) : (), order => [ $f->{s}, $f->{o} ], }, diff --git a/lib/global.pl b/lib/global.pl index cf8d02db..a169abc8 100644 --- a/lib/global.pl +++ b/lib/global.pl @@ -102,6 +102,7 @@ our $LSTAT = [ 'Wishlist', 'Blacklist', 'Playing', + 'Finished', 'Stalled', 'Dropped', 'Other', # XXX: hardcoded at 6 |