summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--data/lang.txt4
-rw-r--r--lib/VNDB/Handler/VNPage.pm7
-rw-r--r--lib/VNDB/Util/LayoutHTML.pm1
4 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 009d00a8..4d1591d4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,7 @@ git - ?
- New platforms: DOS, PC-98, Sega Saturn
- Box titles on homepage are click-able
- Russian translation of the interface
+ - Random VN link in menu
2.6 - 2009-08-09
- New screen resolutions: 1024x600 and 1600x1200
diff --git a/data/lang.txt b/data/lang.txt
index d6c52860..a31c8831 100644
--- a/data/lang.txt
+++ b/data/lang.txt
@@ -617,6 +617,10 @@ ru : Форум
en : FAQ
ru : ЧаВо
+:_menu_randvn
+en : Random visual novel
+ru*:
+
:_menu_webchat
en : webchat
ru : Веб-чат
diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm
index 510d2dfc..48732530 100644
--- a/lib/VNDB/Handler/VNPage.pm
+++ b/lib/VNDB/Handler/VNPage.pm
@@ -8,11 +8,18 @@ use VNDB::Func;
YAWF::register(
+ qr{v/rand} => \&rand,
qr{v([1-9]\d*)/rg} => \&rg,
qr{v([1-9]\d*)(?:\.([1-9]\d*))?} => \&page,
);
+sub rand {
+ my $self = shift;
+ $self->resRedirect('/v'.$self->dbVNGet(results => 1, order => 'RANDOM()')->[0]{id}, 'temp');
+}
+
+
sub rg {
my($self, $vid) = @_;
diff --git a/lib/VNDB/Util/LayoutHTML.pm b/lib/VNDB/Util/LayoutHTML.pm
index 774c2d09..72e3fbef 100644
--- a/lib/VNDB/Util/LayoutHTML.pm
+++ b/lib/VNDB/Util/LayoutHTML.pm
@@ -74,6 +74,7 @@ sub _menu {
a href => '/hist', mt '_menu_recent_changes'; br;
a href => '/t', mt '_menu_discussion_board'; br;
a href => '/d6', mt '_menu_faq'; br;
+ a href => '/v/rand', mt '_menu_randvn'; br;
a href => 'irc://irc.synirc.net/vndb', '#vndb';
lit ' (<a href="http://cgiirc.synirc.net/?chan=%23vndb">'.mt('_menu_webchat').'</a>)';
end;