diff options
author | yorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b> | 2008-08-18 10:43:33 +0000 |
---|---|---|
committer | yorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b> | 2008-08-18 10:43:33 +0000 |
commit | a6854187b0e2fcc8a89874090eeacdb938bc285a (patch) | |
tree | 1fee81148452d593d149131705e7618d41ff8cf8 /lib/VNDB | |
parent | a528cb22d0459b0b76ac163c40cbe28a2ef27b70 (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.pm | 4 | ||||
-rw-r--r-- | lib/VNDB/Util/DB.pm | 16 | ||||
-rw-r--r-- | lib/VNDB/VN.pm | 15 |
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] : {}, |