summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/lang.txt23
-rw-r--r--data/script.js3
-rw-r--r--lib/VNDB/DB/VN.pm4
-rw-r--r--lib/VNDB/Handler/VNBrowse.pm2
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}) {