diff options
author | Yorhel <git@yorhel.nl> | 2021-01-03 10:45:26 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2021-01-03 10:45:28 +0100 |
commit | ceea93df7af8b17513a399a5a1c903bb66c7ad61 (patch) | |
tree | e1ea775b60a660ed43aac6357571086b359bd1b2 /lib/VNWeb | |
parent | 65e36750ec6ed95d82529146887dd82b2e9dde1c (diff) |
AdvSearch: Only autocomplete referenced anime
Fixes https://vndb.org/t14995.53 point 1
Diffstat (limited to 'lib/VNWeb')
-rw-r--r-- | lib/VNWeb/Misc/ElmAnime.pm | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/VNWeb/Misc/ElmAnime.pm b/lib/VNWeb/Misc/ElmAnime.pm index 97260dd4..7910e18e 100644 --- a/lib/VNWeb/Misc/ElmAnime.pm +++ b/lib/VNWeb/Misc/ElmAnime.pm @@ -2,8 +2,9 @@ package VNWeb::Misc::ElmAnime; use VNWeb::Prelude; -elm_api Anime => undef, { search => {} }, sub { - my $q = shift->{search}; +elm_api Anime => undef, { search => {}, ref => { anybool => 1 } }, sub { + my($d) = @_; + my $q = $d->{search}; my $qs = sql_like $q; elm_AnimeResult tuwf->dbPagei({ results => 15, page => 1 }, @@ -14,7 +15,8 @@ elm_api Anime => undef, { search => {} }, sub { sql('SELECT 1+substr_score(lower(title_romaji),', \$qs, '), id FROM anime WHERE title_romaji ILIKE', \"%$qs%"), sql('SELECT 10+substr_score(lower(title_kanji),', \$qs, '), id FROM anime WHERE title_kanji ILIKE', \"%$qs%"), ), ') x(prio, id) - JOIN anime a ON a.id = x.id + JOIN anime a ON a.id = x.id', + $d->{ref} ? 'WHERE EXISTS(SELECT 1 FROM vn_anime va WHERE va.aid = a.id)' : (), ' GROUP BY a.id, a.title_romaji, a.title_kanji ORDER BY MIN(x.prio), a.title_romaji '); |