summaryrefslogtreecommitdiff
path: root/lib/VNDB/Util/DB.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNDB/Util/DB.pm')
-rw-r--r--lib/VNDB/Util/DB.pm23
1 files changed, 17 insertions, 6 deletions
diff --git a/lib/VNDB/Util/DB.pm b/lib/VNDB/Util/DB.pm
index a2f3efe3..683caec0 100644
--- a/lib/VNDB/Util/DB.pm
+++ b/lib/VNDB/Util/DB.pm
@@ -12,7 +12,7 @@ $VERSION = $VNDB::VERSION;
@EXPORT = qw|
DBInit DBCheck DBCommit DBRollBack DBExit
- DBLanguageCount DBCategoryCount DBTableCount DBGetHist DBLockItem DBIncId
+ DBLanguageCount DBCategoryCount DBTableCount DBGetHist DBLockItem DBIncId DBAddScreenshot DBGetScreenshot
DBGetUser DBAddUser DBUpdateUser DBDelUser
DBGetVotes DBVoteStats DBAddVote DBDelVote
DBGetVNList DBDelVNList
@@ -245,6 +245,16 @@ sub DBIncId { # sequence (this is a rather low-level function... aww heck...)
}
+sub DBAddScreenshot { # just returns an ID
+ return $_[0]->DBRow(q|INSERT INTO screenshots (status) VALUES(0) RETURNING id|)->{id};
+}
+
+
+sub DBGetScreenshot { # ids
+ return $_[0]->DBAll(q|SELECT * FROM screenshots WHERE id IN(!l)|, $_[1]);
+}
+
+
#-----------------------------------------------------------------------------#
# A U T H / U S E R S T U F F #
@@ -811,11 +821,12 @@ sub DBGetVN { # %options->{ id rev char search order results page what cati cate
}
if($o{what} =~ /screenshots/) {
- push(@{$r->[$r{$_->{vid}}]{screenshots}}, [ $_->{scr}, $_->{nsfw} ]) for (@{$s->DBAll(q|
- SELECT vid, scr, nsfw
- FROM vn_screenshots
- WHERE vid IN(!l)
- ORDER BY scr|,
+ push(@{$r->[$r{$_->{vid}}]{screenshots}}, $_) && delete $_->{vid} for (@{$s->DBAll(q|
+ SELECT vs.vid, s.id, vs.nsfw, s.width, s.height
+ FROM vn_screenshots vs
+ JOIN screenshots s ON vs.scr = s.id
+ WHERE vs.vid IN(!l)
+ ORDER BY vs.scr|,
[ keys %r ]
)});
}