summaryrefslogtreecommitdiff
path: root/lib/VNDB
diff options
context:
space:
mode:
authoryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-08-18 10:43:33 +0000
committeryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-08-18 10:43:33 +0000
commita6854187b0e2fcc8a89874090eeacdb938bc285a (patch)
tree1fee81148452d593d149131705e7618d41ff8cf8 /lib/VNDB
parenta528cb22d0459b0b76ac163c40cbe28a2ef27b70 (diff)
Stored relgraph image maps in the DB, instead of using plain text files in /data/rg/
git-svn-id: svn://vndb.org/vndb@93 1fe2e327-d9db-4752-bcf7-ef0cb4a1748b
Diffstat (limited to 'lib/VNDB')
-rw-r--r--lib/VNDB/Releases.pm4
-rw-r--r--lib/VNDB/Util/DB.pm16
-rw-r--r--lib/VNDB/VN.pm15
3 files changed, 15 insertions, 20 deletions
diff --git a/lib/VNDB/Releases.pm b/lib/VNDB/Releases.pm
index 947ed770..0f36c4fe 100644
--- a/lib/VNDB/Releases.pm
+++ b/lib/VNDB/Releases.pm
@@ -172,11 +172,11 @@ sub RHide {
sub RVNCache { # @vids - calls update_vncache and regenerates relation graphs if needed
my($self, @vns) = @_;
- my $before = $self->DBGetVN(id => \@vns, order => 'v.id');
+ my $before = $self->DBGetVN(id => \@vns, order => 'v.id', what => 'relations');
$self->DBVNCache(@vns);
my $after = $self->DBGetVN(id => \@vns, order => 'v.id');
my @upd = map {
- $before->[$_]{rgraph} && (
+ @{$before->[$_]{relations}} && (
$before->[$_]{c_released} != $after->[$_]{c_released}
|| $before->[$_]{c_languages} ne $after->[$_]{c_languages}
) ? $before->[$_]{id} : ();
diff --git a/lib/VNDB/Util/DB.pm b/lib/VNDB/Util/DB.pm
index 4063eb2a..d25a1e5b 100644
--- a/lib/VNDB/Util/DB.pm
+++ b/lib/VNDB/Util/DB.pm
@@ -18,7 +18,7 @@ $VERSION = $VNDB::VERSION;
DBGetVNList DBDelVNList
DBGetWishList DBEditWishList DBDelWishList
DBGetRList DBGetRLists DBEditRList DBDelRList
- DBGetVN DBAddVN DBEditVN DBHideVN DBUndefRG DBVNCache
+ DBGetVN DBAddVN DBEditVN DBHideVN DBVNCache
DBGetRelease DBAddRelease DBEditRelease DBHideRelease
DBGetProducer DBGetProducerVN DBAddProducer DBEditProducer DBHideProducer
DBGetThreads DBGetPosts DBAddPost DBEditPost DBEditThread DBAddThread
@@ -773,11 +773,14 @@ sub DBGetVN { # %options->{ id rev char search order results page what cati cate
$o{what} =~ /changes/ || $o{rev} ? (
'JOIN changes c ON c.id = vr.id',
'JOIN users u ON u.id = c.requester' ) : (),
+ $o{what} =~ /relgraph/ ? (
+ 'LEFT JOIN relgraph rg ON rg.id = v.rgraph' ) : (),
);
- my $sel = 'v.id, v.locked, v.hidden, v.c_released, v.c_languages, v.c_platforms, vr.title, vr.id AS cid, v.rgraph';
+ my $sel = 'v.id, v.locked, v.hidden, v.c_released, v.c_languages, v.c_platforms, vr.title, vr.id AS cid';
$sel .= ', vr.alias, vr.image AS image, vr.img_nsfw, vr.length, vr.desc, vr.l_wp, vr.l_encubed, vr.l_renai, vr.l_vnn' if $o{what} =~ /extended/;
$sel .= ', c.added, c.requester, c.comments, v.latest, u.username, c.rev, c.causedby' if $o{what} =~ /changes/;
+ $sel .= ', v.rgraph, rg.cmap' if $o{what} =~ /relgraph/;
my $r = $s->DBAll(qq|
SELECT $sel
@@ -970,14 +973,7 @@ sub DBVNCache { # @vids
}
-sub DBUndefRG { # ids
- my($s, @id) = @_;
- $s->DBExec(q|
- UPDATE vn
- SET rgraph = 0
- WHERE id IN(!l)|,
- \@id);
-}
+
#-----------------------------------------------------------------------------#
diff --git a/lib/VNDB/VN.pm b/lib/VNDB/VN.pm
index 666349f7..9c872619 100644
--- a/lib/VNDB/VN.pm
+++ b/lib/VNDB/VN.pm
@@ -20,14 +20,18 @@ sub VNPage {
return $self->ResNotFound if $self->ReqParam('rev');
+ my $what = 'extended relations categories anime screenshots';
+ $what .= ' changes' if $rev;
+ $what .= ' relgraph' if $page eq 'rg';
+
my $v = $self->DBGetVN(
id => $id,
- what => 'extended relations categories anime screenshots'.($rev ? ' changes' : ''),
+ what => $what,
$rev ? ( rev => $rev ) : ()
)->[0];
return $self->ResNotFound if !$v->{id};
- my $c = $rev && $rev > 1 && $self->DBGetVN(id => $id, rev => $rev-1, what => 'extended changes relations categories anime screenshots')->[0];
+ my $c = $rev && $rev > 1 && $self->DBGetVN(id => $id, rev => $rev-1, what => $what)->[0];
$v->{next} = $rev && $v->{latest} > $v->{cid} ? $rev+1 : 0;
my $rel = $self->DBGetRelease(vid => $id, what => 'producers platforms');
@@ -41,12 +45,7 @@ sub VNPage {
my $r = (grep $i->{rid} == $_->{id}, @$rel)[0];
$r->{rlist} = $i;
}
-
- } elsif($page eq 'rg' && $v->{rgraph}) {
- open(my $F, '<:utf8', sprintf '%s/%02d/%d.cmap', $self->{mappath}, $v->{rgraph}%100, $v->{rgraph}) || die $!;
- $v->{rmap} = join('', (<$F>));
- close($F);
- }
+ }
$self->ResAddTpl(vnpage => {
vote => $self->AuthInfo->{id} ? $self->DBGetVotes(uid => $self->AuthInfo->{id}, vid => $id)->[0] : {},