1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
<h2>[[: $p{PageTitle} ]]</h2>
[[ if($d{chr} eq 'cat') { ]]-
<ul id="cat">
[[ for my $c (qw| e g p t l s |) { ]]-
-[[= $c ne 'l' && $c ne 'p' ? '<li>' : '<br />' ]][[: $VNDB::CAT->{$c}[0] ]]-
<ul>
[[ for (sort keys %{$VNDB::CAT->{$c}[1]}) { ]]-
<li class="cat_[[= $c.$_ ]][[= $d{incl} =~ /$c$_/ ? ' inc' : $d{excl} =~ /$c$_/ ? ' exc' : '' ]]">
[[: $VNDB::CAT->{$c}[1]{$_} ]]- ([[= $d{cat}{$c.$_} || 0 ]])</li>
[[ } ]]
</ul>[[= $c ne 't' && $c ne 'g' ? '</li>' : '' ]]-
[[ } ]]-
</ul>
<div id="lfilter">
<b>Languages</b> (none selected means all)<br />
[[ for (sort keys %{$d{lang}}) { next if !$d{lang}{$_}; ]]-
<input type="checkbox" name="lang_[[= $_ ]]" id="lang_[[= $_ ]]" value="1" -[[= $d{slang}=~/$_/?'checked="checked"':'' ]]>
<label for="lang_[[= $_ ]]">[[: $VNDB::LANG->{$_} ]]- ([[= $d{lang}{$_} ]])</label>
[[ } ]]-
</div>
<br style="clear: left" />
<input type="button" class="right" id="catsearch" name="catsearch" value="Search!" />
<br style="clear: left" />
<br />
<br />
[[ } elsif($d{chr} ne 'search') { ]]-
<p class="chr">
-[[= $d{chr} ne 'all' ? '<a href="/v/all">all</a>' : 'all' ]]- |
[[ for('a'..'z', 0) { ]]-
-[[ if($d{chr} eq $_) { ]][[= $_?$_:'#' ]][[ } else { ]]<a href="/v/[[= $_ ]]">[[= $_?$_:'#' ]]</a>[[ } ]]
[[ } ]]-
<br /><br />
</p>
[[ } ]]-
-[[ if($#{$d{vn}} < 0) { ]]
<p>
-[[ if($d{chr} eq 'cat' && !$d{scat}[0][0] && !$d{scat}[0][1]) { ]]
Select some categories and hit the "Search" button to get a list of visual novels. Click on a
category again to exclude it.<br />
Please keep in mind that not all visual novels have the correct categories set, so you
may not always find what you are looking for.
[[ } else { ]]
No results again, life sucks... :'(
[[ } ]]-
</p>
[[ } else {
my %url = (
$p{searchquery} ? ( q => $p{searchquery} ) : (),
$d{incl} ? ( i => $d{incl} ) : (),
$d{excl} ? ( e => $d{excl} ) : (),
$d{slang} ? ( l => $d{slang} ) : (),
);
my %urls = ( %url,
$d{order}[0] ne 'title' ? ( s => $d{order}[0] ) : (),
$d{order}[1] ne 'a' ? ( o => $d{order}[1] ) : (),
);
my $url = sprintf '/v/%s', $d{chr};
my $urls = $url;
$urls .= '?'.join(';', map { $_.'='.$urls{$_} } keys %urls) if keys %urls;
$url .= '?'.join(';', map { $_.'='.$url{$_} } keys %url) if keys %url;
]]
[[= pagebut($urls) ]]
<table id="tbv">
<thead><tr>
<td class="tc1">Title [[= sortbut($url, 'title') ]]</td>
<td class="tc2">Released [[= sortbut($url, 'released') ]]</td>
<td class="tc3">Languages</td>
<td class="tc4">Rating [[= sortbut($url, 'votes') ]]</td>
</thead></tr>
[[ for (@{$d{vn}}) {
$_->{c_votes} =~ s#^([0-9]{2}.[0-9]{2})\|([0-9]{4})$#$1 == 0 ? sprintf '- (%d)', $2 : sprintf '%.2f (%d)', $1, $2#e;
$_->{c_released} =~ s#^([0-9]{4})([0-9]{2}).+#$1==0?'N/A':$1==9999?'TBA':(($2&&$2>0?($Time::CTime::MoY[$2-1].' '):'').$1)#e;
]]-
<tr>
<td class="tc1"><a href="/v[[= $_->{id} ]]">[[: $_->{title} ]]</a></td>
<td class="tc2">[[: $_->{c_released} ]]</td>
<td class="tc3">[[: $_->{c_languages} || 'N/A' ]]</td>
<td class="tc4">[[: $_->{c_votes} ]]</td>
</tr>
[[ } ]]-
</table>
[[= pagebut($urls) ]]
[[ } ]]
|