diff options
-rw-r--r-- | data/lang.txt | 23 | ||||
-rw-r--r-- | data/script.js | 3 | ||||
-rw-r--r-- | lib/VNDB/DB/VN.pm | 4 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNBrowse.pm | 2 |
4 files changed, 28 insertions, 4 deletions
diff --git a/data/lang.txt b/data/lang.txt index 5e6af4b5..3795a079 100644 --- a/data/lang.txt +++ b/data/lang.txt @@ -5668,15 +5668,36 @@ en : General ru*: cs*: hu*: -nl : +nl : Algemeen :_vnbrowse_length en : Length ru*: cs*: hu*: +nl : Lengte + +:_vnbrowse_anime +en : Anime +ru*: +cs*: +hu*: nl : +:_vnbrowse_anime_yes +en : Has anime +ru*: +cs*: +hu*: +nl : Heeft anime + +:_vnbrowse_anime_no +en : Does not have anime +ru*: +cs*: +hu*: +nl : Heeft geen anime + :_vnbrowse_tags en : Tags ru*: diff --git a/data/script.js b/data/script.js index d6a22a1d..9f96bc6f 100644 --- a/data/script.js +++ b/data/script.js @@ -2052,7 +2052,8 @@ function filVN() { return [ mt('_vnbrowse_fil_title'), [ mt('_vnbrowse_general'), - filFSelect('length', mt('_vnbrowse_length'), 6, len) + filFSelect( 'length', mt('_vnbrowse_length'), 6, len), + filFOptions('hasani', mt('_vnbrowse_anime'), [[1, mt('_vnbrowse_anime_yes')],[0, mt('_vnbrowse_anime_no')]]) ], [ mt('_vnbrowse_tags'), [ '', ' ', tag('('+mt('_vnbrowse_booland')+')') ], diff --git a/lib/VNDB/DB/VN.pm b/lib/VNDB/DB/VN.pm index ff16a02f..1154fc71 100644 --- a/lib/VNDB/DB/VN.pm +++ b/lib/VNDB/DB/VN.pm @@ -10,7 +10,7 @@ use Encode 'decode_utf8'; our @EXPORT = qw|dbVNGet dbVNRevisionInsert dbVNImageId dbScreenshotAdd dbScreenshotGet dbScreenshotRandom|; -# Options: id, rev, char, search, length, lang, plat, tags_include, tags_exclude, results, page, what, sort, reverse +# Options: id, rev, char, search, length, lang, plat, tags_include, tags_exclude, hasani, results, page, what, sort, reverse # What: extended anime relations screenshots relgraph rating ranking changes # Sort: id rel pop rating title tagscore rand sub dbVNGet { @@ -35,6 +35,8 @@ sub dbVNGet { 'v.c_languages && ARRAY[!l]::language[]' => [ ref $o{lang} ? $o{lang} : [$o{lang}] ]) : (), $o{plat} ? ( '('.join(' OR ', map "v.c_platforms ILIKE '%%$_%%'", ref $o{plat} ? @{$o{plat}} : $o{plat}).')' => 1 ) : (), + defined $o{hasani} ? ( + '!sEXISTS(SELECT 1 FROM vn_anime va WHERE va.vid = vr.id)' => [ $o{hasani} ? '' : 'NOT ' ]) : (), $o{tags_include} && @{$o{tags_include}} ? ( 'v.id IN(SELECT vid FROM tags_vn_inherit WHERE tag IN(!l) AND spoiler <= ? GROUP BY vid HAVING COUNT(tag) = ?)', [ $o{tags_include}[1], $o{tags_include}[0], $#{$o{tags_include}[1]}+1 ] diff --git a/lib/VNDB/Handler/VNBrowse.pm b/lib/VNDB/Handler/VNBrowse.pm index db3fa58c..56468e96 100644 --- a/lib/VNDB/Handler/VNBrowse.pm +++ b/lib/VNDB/Handler/VNBrowse.pm @@ -25,7 +25,7 @@ sub list { ); return 404 if $f->{_err}; $f->{q} ||= $f->{sq}; - my $fil = fil_parse $f->{fil}, qw|length taginc tagexc tagspoil lang plat|; + my $fil = fil_parse $f->{fil}, qw|length hasani taginc tagexc tagspoil lang plat|; _fil_compat($self, $fil); if($f->{q}) { |