diff options
author | Yorhel <git@yorhel.nl> | 2019-11-12 20:15:32 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2019-11-12 20:19:55 +0100 |
commit | 06bacb61526f3945520dd344821d2aa7b85a5f43 (patch) | |
tree | 81e7469ab7ac1c1e3e2a80f79cf49022083f89b6 /lib/VNDB/DB/Releases.pm | |
parent | e525c5fb92612e5459ab04b1c010fb88a3dfa22a (diff) |
v2rw: Move entryLinks() into separate VNDB::ExtLinks module
This is yak shaving. The new module doesn't have much value as it is,
apart from having a central place to define link formats. This new
enrich_extlinks() approach is also a bit more efficient in that it can
avoid separate SQL queries for multiple objects.
But the real reason for these changes is that I can use that %LINKS hash
table to automatically generate the links part in the edit summary and
it should (hopefully) also be useful to generate a more
convenient/streamlined Elm edit form.
Diffstat (limited to 'lib/VNDB/DB/Releases.pm')
-rw-r--r-- | lib/VNDB/DB/Releases.pm | 34 |
1 files changed, 4 insertions, 30 deletions
diff --git a/lib/VNDB/DB/Releases.pm b/lib/VNDB/DB/Releases.pm index 1c95a3c0..9813029d 100644 --- a/lib/VNDB/DB/Releases.pm +++ b/lib/VNDB/DB/Releases.pm @@ -90,6 +90,9 @@ sub dbReleaseGet { r.notes r.catalog r.gtin r.resolution r.voiced r.freeware r.doujin r.uncensored r.ani_story r.ani_ero r.engine r.hidden r.locked | : (), $o{pid} ? ('rp.developer', 'rp.publisher') : (), + $o{what} =~ /links/ ? qw| + r.gtin r.l_steam r.l_gog r.l_gyutto r.l_digiket r.l_melon r.l_getchu r.l_getchudl r.l_dmm r.l_itch r.l_jastusa r.l_egs r.l_erotrail r.l_mg r.l_denpa r.l_jlist r.l_dlsite r.l_dlsiteen + | : () ); my $order = sprintf { @@ -129,6 +132,7 @@ sub dbReleaseGetRev { $select .= ', r.notes, r.catalog, r.gtin, r.resolution, r.voiced, r.freeware, r.doujin, r.uncensored, r.ani_story, r.ani_ero, r.engine, ro.hidden, ro.locked' if $o{what} =~ /extended/; $select .= ', extract(\'epoch\' from c.added) as added, c.comments, c.rev, c.ihid, c.ilock, '.VNWeb::DB::sql_user(); $select .= ', c.id AS cid, NOT EXISTS(SELECT 1 FROM changes c2 WHERE c2.type = c.type AND c2.itemid = c.itemid AND c2.rev = c.rev+1) AS lastrev'; + $select .= ', r.gtin, r.l_steam, r.l_gog, r.l_gyutto, r.l_digiket, r.l_melon, r.l_getchu, r.l_getchudl, r.l_dmm, r.l_itch, r.l_jastusa, r.l_egs, r.l_erotrail, r.l_mg, r.l_denpa, r.l_jlist, r.l_dlsite, r.l_dlsiteen' if $o{what} =~ /links/; my $r = $self->dbAll(q| SELECT !s @@ -204,36 +208,6 @@ sub _enrich { [ keys %r ] )}); } - - if($what =~ /links/) { - $r->[ delete $r{$_->{xid}} ] = { %{$r->[$r{ $_->{xid} }]}, %$_ } for (@{$self->dbAll(" - SELECT r.$colname AS xid, r.gtin, r.l_steam, r.l_gog, r.l_gyutto, r.l_digiket, r.l_melon, r.l_getchu, r.l_getchudl, r.l_dmm, r.l_itch, r.l_jastusa, l_egs, l_erotrail - , r.l_mg, smg.price AS l_mg_price, smg.r18 AS l_mg_r18 - , r.l_denpa, sdenpa.price AS l_denpa_price - , r.l_jlist, sjlist.price AS l_jlist_price, sjlist.jbox AS l_jlist_jbox - , r.l_dlsite, sdlsite.price AS l_dlsite_price, sdlsite.shop AS l_dlsite_shop - , r.l_dlsiteen, sdlsiteen.price AS l_dlsiteen_price, sdlsiteen.shop AS l_dlsiteen_shop - FROM releases$hist r - LEFT JOIN shop_denpa sdenpa ON sdenpa.id = r.l_denpa AND sdenpa.lastfetch IS NOT NULL AND sdenpa.deadsince IS NULL - LEFT JOIN shop_dlsite sdlsite ON sdlsite.id = r.l_dlsite AND sdlsite.lastfetch IS NOT NULL AND sdlsite.deadsince IS NULL - LEFT JOIN shop_dlsite sdlsiteen ON sdlsiteen.id = r.l_dlsiteen AND sdlsiteen.lastfetch IS NOT NULL AND sdlsiteen.deadsince IS NULL - LEFT JOIN shop_jlist sjlist ON sjlist.id = r.l_jlist AND sjlist.lastfetch IS NOT NULL AND sjlist.deadsince IS NULL - LEFT JOIN shop_mg smg ON smg.id = r.l_mg AND smg.lastfetch IS NOT NULL AND smg.deadsince IS NULL - WHERE r.$colname IN(!l)", - [ keys %r ] - )}); - - my %p = map { - $r->[$_]{l_playasia} = []; - $r->[$_]{gtin} ? ($r->[$_]{gtin}, $_) : () - } 0..$#$r; - if(keys %p) { - push(@{$r->[$p{$_->{gtin}}]{l_playasia}}, $_) for (@{$self->dbAll(" - SELECT gtin, price, url FROM shop_playasia WHERE gtin IN(!l) AND price <> ''", - [ keys %p ] - )}); - } - } } return wantarray ? ($r, $np) : $r; |