summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2022-03-29 16:07:44 +0200
committerYorhel <git@yorhel.nl>2022-03-29 16:08:05 +0200
commitab2daacf35905c01541abc92988a666ab8d9a7e2 (patch)
tree47565850c2acbfd1f2a1e1c79c6c75eb70bbd4ca /util
parentc1f27dac99b0f04ba3b451d7e06bfc58d9f02fd8 (diff)
VN length voting: support private votes
The database model supports private votes with a proper speed setting, but that is currently not possible through the UI.
Diffstat (limited to 'util')
-rwxr-xr-xutil/dbdump.pl4
-rwxr-xr-xutil/devdump.pl2
-rw-r--r--util/updates/2022-03-29-lengthvotes-private.sql3
3 files changed, 6 insertions, 3 deletions
diff --git a/util/dbdump.pl b/util/dbdump.pl
index 5488d6e4..5adf35de 100755
--- a/util/dbdump.pl
+++ b/util/dbdump.pl
@@ -98,7 +98,7 @@ my %tables = (
users => { where => 'id IN(SELECT DISTINCT uvl.uid FROM ulist_vns_labels uvl JOIN ulist_labels ul ON ul.uid = uvl.uid AND ul.id = uvl.lbl WHERE NOT ul.private)'
.' OR id IN(SELECT DISTINCT uid FROM tags_vn)'
.' OR id IN(SELECT DISTINCT uid FROM image_votes)'
- .' OR id IN(SELECT DISTINCT uid FROM vn_length_votes)' },
+ .' OR id IN(SELECT DISTINCT uid FROM vn_length_votes WHERE NOT private)' },
vn => { where => 'NOT hidden' },
vn_anime => { where => 'id IN(SELECT id FROM vn WHERE NOT hidden)' },
vn_relations => { where => 'id IN(SELECT id FROM vn WHERE NOT hidden)' },
@@ -108,7 +108,7 @@ my %tables = (
.' AND cid IN(SELECT id FROM chars WHERE NOT hidden)' },
vn_staff => { where => 'id IN(SELECT id FROM vn WHERE NOT hidden) AND aid IN(SELECT sa.aid FROM staff_alias sa JOIN staff s ON s.id = sa.id WHERE NOT s.hidden)' },
vn_titles => { where => 'id IN(SELECT id FROM vn WHERE NOT hidden)' },
- vn_length_votes => { where => 'vid IN(SELECT id FROM vn WHERE NOT hidden)'
+ vn_length_votes => { where => 'vid IN(SELECT id FROM vn WHERE NOT hidden) AND NOT private'
, order => 'vid, uid' },
wikidata => { where => q{id IN(SELECT l_wikidata FROM producers WHERE NOT hidden
UNION SELECT l_wikidata FROM staff WHERE NOT hidden
diff --git a/util/devdump.pl b/util/devdump.pl
index 9d801912..a36d0184 100755
--- a/util/devdump.pl
+++ b/util/devdump.pl
@@ -160,7 +160,7 @@ sub copy_entry {
copy_entry [qw/vn vn_anime vn_seiyuu vn_staff vn_relations vn_screenshots vn_titles/], \@vids;
# VN-related niceties
- copy vn_length_votes => "SELECT DISTINCT ON (vid,vndbid_num(uid)%10) * FROM vn_length_votes WHERE vid IN($vids)", {uid => 'user'};
+ copy vn_length_votes => "SELECT DISTINCT ON (vid,vndbid_num(uid)%10) * FROM vn_length_votes WHERE NOT private AND vid IN($vids)", {uid => 'user'};
copy tags_vn => "SELECT DISTINCT ON (tag,vid,vndbid_num(uid)%10) * FROM tags_vn WHERE vid IN($vids)", {uid => 'user'};
copy quotes => "SELECT * FROM quotes WHERE vid IN($vids)";
my $votes = "SELECT vid, vndbid('u', vndbid_num(uid)%8+2) AS uid, (percentile_cont((vndbid_num(uid)%8+1)::float/9) WITHIN GROUP (ORDER BY vote))::smallint AS vote, MIN(vote_date) AS vote_date"
diff --git a/util/updates/2022-03-29-lengthvotes-private.sql b/util/updates/2022-03-29-lengthvotes-private.sql
new file mode 100644
index 00000000..5c721818
--- /dev/null
+++ b/util/updates/2022-03-29-lengthvotes-private.sql
@@ -0,0 +1,3 @@
+ALTER TABLE vn_length_votes ADD COLUMN private boolean NOT NULL DEFAULT FALSE;
+ALTER TABLE vn_length_votes ALTER COLUMN private DROP DEFAULT;
+\i sql/func.sql