diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VNDB/Handler/Chars.pm | 9 | ||||
-rw-r--r-- | lib/VNDB/Handler/Tags.pm | 10 | ||||
-rw-r--r-- | lib/VNDB/Handler/Traits.pm | 10 | ||||
-rw-r--r-- | lib/VNDB/Handler/Users.pm | 9 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNBrowse.pm | 5 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNPage.pm | 18 |
6 files changed, 30 insertions, 31 deletions
diff --git a/lib/VNDB/Handler/Chars.pm b/lib/VNDB/Handler/Chars.pm index f667d41b..c59d44b9 100644 --- a/lib/VNDB/Handler/Chars.pm +++ b/lib/VNDB/Handler/Chars.pm @@ -66,10 +66,9 @@ sub page { div class => 'mainbox'; $self->htmlItemMessage('c', $r); + my $spoil = $self->authPref('spoilers')||0; p id => 'charspoil_sel'; - a href => '#', class => 'sel', mt '_spoilset_0'; - a href => '#', mt '_spoilset_1'; - a href => '#', mt '_spoilset_2'; + a href => '#', $spoil == $_ ? (class => 'sel') : (), mt "_spoilset_$_" for (0..2); end; h1 $r->{name}; h2 class => 'alttitle', $r->{original} if $r->{original}; @@ -487,7 +486,9 @@ sub list { ); return $self->resNotFound if $f->{_err}; - my($list, $np) = $self->filFetchDB(char => $f->{fil}, {}, { + my($list, $np) = $self->filFetchDB(char => $f->{fil}, { + tagspoil => $self->authPref('spoilers')||0, + }, { $fch ne 'all' ? ( char => $fch ) : (), $f->{q} ? ( search => $f->{q} ) : (), results => 50, diff --git a/lib/VNDB/Handler/Tags.pm b/lib/VNDB/Handler/Tags.pm index 8d982767..f4f8cec3 100644 --- a/lib/VNDB/Handler/Tags.pm +++ b/lib/VNDB/Handler/Tags.pm @@ -33,12 +33,10 @@ sub tagpage { { get => 's', required => 0, default => 'tagscore', enum => [ qw|title rel pop tagscore rating| ] }, { get => 'o', required => 0, default => 'd', enum => [ 'a','d' ] }, { get => 'p', required => 0, default => 1, template => 'int' }, - { get => 'm', required => 0, default => undef, enum => [qw|0 1 2|] }, + { get => 'm', required => 0, default => $self->authPref('spoilers') || 0, enum => [qw|0 1 2|] }, { get => 'fil', required => 0 }, ); return $self->resNotFound if $f->{_err}; - my $tagspoil = $self->reqCookie('tagspoil')||''; - $f->{m} //= $tagspoil =~ /^[0-2]$/ ? $tagspoil : 0; $f->{fil} //= $self->authPref('filter_vn'); my($list, $np) = $t->{meta} || $t->{state} != 2 ? ([],0) : $self->filFetchDB(vn => $f->{fil}, undef, { @@ -108,9 +106,9 @@ sub tagpage { h1 mt '_tagp_vnlist'; p class => 'browseopts'; - a href => "/g$t->{id}?fil=$f->{fil};m=0", $f->{m} == 0 ? (class => 'optselected') : (), id => 'tagspoil_0', mt '_spoilset_0'; - a href => "/g$t->{id}?fil=$f->{fil};m=1", $f->{m} == 1 ? (class => 'optselected') : (), id => 'tagspoil_1', mt '_spoilset_1'; - a href => "/g$t->{id}?fil=$f->{fil};m=2", $f->{m} == 2 ? (class => 'optselected') : (), id => 'tagspoil_2', mt '_spoilset_2'; + a href => "/g$t->{id}?fil=$f->{fil};m=0", $f->{m} == 0 ? (class => 'optselected') : (), mt '_spoilset_0'; + a href => "/g$t->{id}?fil=$f->{fil};m=1", $f->{m} == 1 ? (class => 'optselected') : (), mt '_spoilset_1'; + a href => "/g$t->{id}?fil=$f->{fil};m=2", $f->{m} == 2 ? (class => 'optselected') : (), mt '_spoilset_2'; end; a id => 'filselect', href => '#v'; diff --git a/lib/VNDB/Handler/Traits.pm b/lib/VNDB/Handler/Traits.pm index c5bf6da0..a69e8763 100644 --- a/lib/VNDB/Handler/Traits.pm +++ b/lib/VNDB/Handler/Traits.pm @@ -26,12 +26,10 @@ sub traitpage { my $f = $self->formValidate( { get => 'p', required => 0, default => 1, template => 'int' }, - { get => 'm', required => 0, default => undef, enum => [qw|0 1 2|] }, + { get => 'm', required => 0, default => $self->authPref('spoilers')||0, enum => [qw|0 1 2|] }, { get => 'fil', required => 0, default => '' }, ); return $self->resNotFound if $f->{_err}; - my $tagspoil = $self->reqCookie('tagspoil')||''; - $f->{m} //= $tagspoil =~ /^[0-2]$/ ? $tagspoil : 0; my $title = mt '_traitp_title', $t->{meta}?0:1, $t->{name}; $self->htmlHeader(title => $title, noindex => $t->{state} != 2); @@ -97,9 +95,9 @@ sub traitpage { h1 mt '_traitp_charlist'; p class => 'browseopts'; - a href => "/i$trait?m=0", $f->{m} == 0 ? (class => 'optselected') : (), id => 'tagspoil_0', mt '_spoilset_0'; - a href => "/i$trait?m=1", $f->{m} == 1 ? (class => 'optselected') : (), id => 'tagspoil_1', mt '_spoilset_1'; - a href => "/i$trait?m=2", $f->{m} == 2 ? (class => 'optselected') : (), id => 'tagspoil_2', mt '_spoilset_2'; + a href => "/i$trait?m=0", $f->{m} == 0 ? (class => 'optselected') : (), mt '_spoilset_0'; + a href => "/i$trait?m=1", $f->{m} == 1 ? (class => 'optselected') : (), mt '_spoilset_1'; + a href => "/i$trait?m=2", $f->{m} == 2 ? (class => 'optselected') : (), mt '_spoilset_2'; end; a id => 'filselect', href => '#c'; diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm index 0068768d..293a91b5 100644 --- a/lib/VNDB/Handler/Users.pm +++ b/lib/VNDB/Handler/Users.pm @@ -376,6 +376,7 @@ sub edit { { post => 'show_nsfw', required => 0, default => 0, enum => [0,1] }, { post => 'tags_all', required => 0, default => 0, enum => [0,1] }, { post => 'tags_cat', required => 0, multi => 1, enum => [qw|cont ero tech|] }, + { post => 'spoilers', required => 0, default => 0, enum => [0..2] }, { post => 'skin', required => 0, default => $self->{skin_default}, enum => [ keys %{$self->{skins}} ] }, { post => 'customcss', required => 0, maxlength => 2000, default => '' }, ); @@ -383,7 +384,7 @@ sub edit { if ($frm->{usrpass} || $frm->{usrpass2}) && (!$frm->{usrpass} || !$frm->{usrpass2} || $frm->{usrpass} ne $frm->{usrpass2}); if(!$frm->{_err}) { $frm->{skin} = '' if $frm->{skin} eq $self->{skin_default}; - $self->dbUserPrefSet($uid, $_ => $frm->{$_}) for (qw|skin customcss show_nsfw tags_all hide_list |); + $self->dbUserPrefSet($uid, $_ => $frm->{$_}) for (qw|skin customcss show_nsfw tags_all hide_list spoilers|); my $tags_cat = join(',', sort @{$frm->{tags_cat}}) || 'none'; $self->dbUserPrefSet($uid, tags_cat => $tags_cat eq $self->{default_tags_cat} ? '' : $tags_cat); @@ -405,7 +406,7 @@ sub edit { $frm->{usrname} ||= $u->{username}; $frm->{mail} ||= $u->{mail}; $frm->{perms} ||= [ grep $u->{perm} & $self->{permissions}{$_}, keys %{$self->{permissions}} ]; - $frm->{$_} //= $u->{prefs}{$_} for(qw|skin customcss show_nsfw tags_all hide_list|); + $frm->{$_} //= $u->{prefs}{$_} for(qw|skin customcss show_nsfw tags_all hide_list spoilers|); $frm->{tags_cat} ||= [ split /,/, $u->{prefs}{tags_cat}||$self->{default_tags_cat} ]; $frm->{ign_votes} = $u->{ign_votes} if !defined $frm->{ign_votes}; $frm->{skin} ||= $self->{skin_default}; @@ -442,8 +443,8 @@ sub edit { [ check => short => 'hide_list', name => mt '_usere_flist', "/u$uid/list", "/u$uid/votes", "/u$uid/wish" ], [ check => short => 'show_nsfw', name => mt '_usere_fnsfw' ], [ check => short => 'tags_all', name => mt '_usere_ftags' ], - [ select => short => 'tags_cat', name => mt('_usere_tagcats'), multi => 1, size => 3, options => [ - map [ $_, mt '_tagcat_'.$_ ], qw|cont ero tech| ] ], + [ select => short => 'tags_cat', name => mt('_usere_tagcats'), multi => 1, size => 3, options => [ map [ $_, mt '_tagcat_'.$_ ], qw|cont ero tech| ] ], + [ select => short => 'spoilers', name => mt('_usere_spoilers'), options => [ map [ $_, mt '_spoilset_'.$_ ], 0..2 ] ], [ select => short => 'skin', name => mt('_usere_skin'), width => 300, options => [ map [ $_, $self->{skins}{$_}[0].($self->debug?" [$_]":'') ], sort { $self->{skins}{$a}[0] cmp $self->{skins}{$b}[0] } keys %{$self->{skins}} ] ], [ textarea => short => 'customcss', name => mt '_usere_css' ], diff --git a/lib/VNDB/Handler/VNBrowse.pm b/lib/VNDB/Handler/VNBrowse.pm index 3323722c..c2a923b5 100644 --- a/lib/VNDB/Handler/VNBrowse.pm +++ b/lib/VNDB/Handler/VNBrowse.pm @@ -50,7 +50,10 @@ sub list { $f->{s} = 'title' if $f->{fil} !~ /tag_inc-/ && $f->{s} eq 'tagscore'; $f->{o} = $f->{s} eq 'tagscore' ? 'd' : 'a' if !$f->{o}; - my($list, $np) = $self->filFetchDB(vn => $f->{fil}, \%compat, { + my($list, $np) = $self->filFetchDB(vn => $f->{fil}, { + %compat, + tagspoil => $self->authPref('spoilers')||0, + }, { what => ' rating' . ($f->{vnlist} ? ' vnlist' : ''). ($f->{wish} ? ' wishlist' : ''), diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm index 9a97cd41..183d56a4 100644 --- a/lib/VNDB/Handler/VNPage.pm +++ b/lib/VNDB/Handler/VNPage.pm @@ -627,9 +627,10 @@ sub page { # NOTE: order of these links is hardcoded in JS my $tags_cat = $self->authPref('tags_cat') || $self->{default_tags_cat}; a href => "#$_", $tags_cat =~ /\Q$_/ ? (class => 'tsel') : (), lc mt "_tagcat_$_" for qw|cont ero tech|; - a href => '#', class => 'sec tsel', lc mt '_spoilset_0'; - a href => '#', lc mt '_spoilset_1'; - a href => '#', lc mt '_spoilset_2'; + my $spoiler = $self->authPref('spoilers') || 0; + a href => '#', class => 'sec'.($spoiler == 0 ? ' tsel' : ''), lc mt '_spoilset_0'; + a href => '#', $spoiler == 1 ? (class => 'tsel') : (), lc mt '_spoilset_1'; + a href => '#', $spoiler == 2 ? (class => 'tsel') : (), lc mt '_spoilset_2'; a href => '#', class => 'sec'.($self->authPref('tags_all') ? '': ' tsel'), mt '_vnpage_tags_summary'; a href => '#', $self->authPref('tags_all') ? (class => 'tsel') : (), mt '_vnpage_tags_all'; end; @@ -1070,7 +1071,6 @@ sub _chars { my($self, $has, $v) = @_; my $l = $has && $self->dbCharGet(vid => $v->{id}, what => "extended vns($v->{id}) seiyuu traits", results => 100); return if !$has; - # TODO: spoiler handling + hide unimportant roles by default my %done; my %rol; for my $r (@{$self->{char_roles}}) { @@ -1081,10 +1081,9 @@ sub _chars { next if !@{$rol{$r}}; div class => 'mainbox'; if(!$first++) { + my $spoil = $self->authPref('spoilers')||0; p id => 'charspoil_sel'; - a href => '#', class => 'sel', mt '_spoilset_0'; - a href => '#', mt '_spoilset_1'; - a href => '#', mt '_spoilset_2'; + a href => '#', $spoil == $_ ? (class => 'sel') : (), mt "_spoilset_$_" for (0..2); end; } h1 mt "_charrole_$r", scalar @{$rol{$r}}; @@ -1132,10 +1131,9 @@ sub _staff { $has_spoilers ||= $_->{spoil}, $has_notes ||= $_->{note} for @{$v->{seiyuu}}; div class => 'mainbox staff cast'; if($has_spoilers) { + my $spoil = $self->authPref('spoilers')||0; p id => 'charspoil_sel'; - a href => '#', class => 'sel', mt '_spoilset_0'; - a href => '#', mt '_spoilset_1'; - a href => '#', mt '_spoilset_2'; + a href => '#', $spoil == $_ ? (class => 'sel') : (), mt "_spoilset_$_" for (0..2); end; } h1 mt '_vnpage_cast'; |