diff options
-rw-r--r-- | lib/VNDB/DB/Releases.pm | 6 | ||||
-rw-r--r-- | lib/VNDB/Handler/Releases.pm | 7 | ||||
-rw-r--r-- | lib/VNDB/Util/Misc.pm | 1 | ||||
-rw-r--r-- | util/sql/schema.sql | 6 | ||||
-rw-r--r-- | util/updates/update_20190816.sql | 2 |
5 files changed, 15 insertions, 7 deletions
diff --git a/lib/VNDB/DB/Releases.pm b/lib/VNDB/DB/Releases.pm index 6edaefa0..f2f6a726 100644 --- a/lib/VNDB/DB/Releases.pm +++ b/lib/VNDB/DB/Releases.pm @@ -85,7 +85,7 @@ sub dbReleaseGet { ); my @select = ( - qw|r.id r.title r.original r.website r.l_steam r.l_dlsite r.l_dlsiteen r.l_gog r.l_denpa r.released r.minage r.type r.patch|, + qw|r.id r.title r.original r.website r.l_steam r.l_dlsite r.l_dlsiteen r.l_gog r.l_denpa r.l_jlist r.released r.minage r.type r.patch|, $o{what} =~ /extended/ ? qw|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') : (), ); @@ -123,7 +123,7 @@ sub dbReleaseGetRev { $o{rev} ||= $self->dbRow('SELECT MAX(rev) AS rev FROM changes WHERE type = \'r\' AND itemid = ?', $o{id})->{rev}; - my $select = 'c.itemid AS id, r.title, r.original, r.website, r.l_steam, r.l_dlsite, r.l_dlsiteen, r.l_gog, r.l_denpa, r.released, r.minage, r.type, r.patch'; + my $select = 'c.itemid AS id, r.title, r.original, r.website, r.l_steam, r.l_dlsite, r.l_dlsiteen, r.l_gog, r.l_denpa, r.l_jlist, r.released, r.minage, r.type, r.patch'; $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.requester, c.comments, u.username, c.rev, c.ihid, c.ilock'; $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'; @@ -214,7 +214,7 @@ sub dbReleaseRevisionInsert { my($self, $o) = @_; my %set = map exists($o->{$_}) ? ("$_ = ?", $o->{$_}) : (), - qw|title original gtin catalog website l_steam l_dlsite l_dlsiteen l_gog l_denpa released notes minage type + qw|title original gtin catalog website l_steam l_dlsite l_dlsiteen l_gog l_denpa l_jlist released notes minage type patch resolution voiced freeware doujin uncensored ani_story ani_ero engine|; $self->dbExec('UPDATE edit_releases !H', \%set) if keys %set; diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm index 8915d3eb..3084b123 100644 --- a/lib/VNDB/Handler/Releases.pm +++ b/lib/VNDB/Handler/Releases.pm @@ -64,6 +64,7 @@ sub page { [ l_dlsiteen => 'DLsite (eng)', htmlize => sub { $_[0] ? sprintf '<a href="https://www.dlsite.com/eng/work/=/product_id/%s.html">%1$s</a>', $_[0] : '[empty]' } ], [ l_gog => 'GOG.com', htmlize => sub { $_[0] ? sprintf '<a href="https://www.gog.com/game/%s">%1$s</a>', $_[0] : '[empty]' } ], [ l_denpa => 'Denpasoft', htmlize => sub { $_[0] ? sprintf '<a href="https://denpasoft.com/products/%s">%1$s</a>', $_[0] : '[empty]' } ], + [ l_jlist => 'J-List', htmlize => sub { $_[0] ? sprintf '<a href="https://www.jlist.com/%s">%1$s</a>', $_[0] : '[empty]' } ], [ released => 'Release date', htmlize => \&fmtdatestr ], [ minage => 'Age rating', serialize => \&minage ], [ notes => 'Notes', diff => qr/[ ,\n\.]/ ], @@ -312,7 +313,7 @@ sub edit { my $vn = $rid ? $r->{vn} : [{ vid => $vid, title => $v->{title} }]; my %b4 = !$rid ? () : ( - (map { $_ => $r->{$_} } qw|type title original gtin catalog languages website l_steam l_dlsite l_dlsiteen l_gog l_denpa released minage + (map { $_ => $r->{$_} } qw|type title original gtin catalog languages website l_steam l_dlsite l_dlsiteen l_gog l_denpa l_jlist released minage notes platforms patch resolution voiced freeware doujin uncensored ani_story ani_ero engine ihid ilock|), media => join(',', sort map "$_->{medium} $_->{qty}", @{$r->{media}}), producers => join('|||', map @@ -343,6 +344,7 @@ sub edit { { post => 'l_dlsiteen',required => 0, default => '', regex => [ qr/^[VR]E[0-9]{6}$/, 'Invalid DLsite ID' ] }, { post => 'l_gog', required => 0, default => '', regex => [ qr/^[a-z0-9_]+$/, 'Invalid GOG.com ID' ] }, { post => 'l_denpa', required => 0, default => '', regex => [ qr/^[a-z0-9-]+$/, 'Invalid Denpasoft ID' ] }, + { post => 'l_jlist', required => 0, default => '', regex => [ qr/^[a-z0-9-]+$/, 'Invalid J-List ID' ] }, { post => 'released', required => 0, default => 0, template => 'rdate' }, { post => 'minage' , required => 0, default => -1, enum => $self->{age_ratings} }, { post => 'notes', required => 0, default => '', maxlength => 10240 }, @@ -395,7 +397,7 @@ sub edit { if(!$frm->{_err}) { my $nrev = $self->dbItemEdit(r => !$copy && $rid ? ($r->{id}, $r->{rev}) : (undef, undef), - (map { $_ => $frm->{$_} } qw| type title original gtin catalog languages website l_steam l_dlsite l_dlsiteen l_gog l_denpa released minage + (map { $_ => $frm->{$_} } qw| type title original gtin catalog languages website l_steam l_dlsite l_dlsiteen l_gog l_denpa l_jlist released minage notes platforms resolution editsum patch voiced freeware doujin uncensored ani_story ani_ero engine ihid ilock|), vn => $new_vn, producers => $producers, @@ -447,6 +449,7 @@ sub _form { [ input => short => 'l_dlsiteen',name => 'DLsite (eng)', post => ' e.g. "RE083922"', width => 100 ], [ input => short => 'l_gog', name => 'GOG.com', pre => 'https://www.gog.com/game/' ], [ input => short => 'l_denpa', name => 'Denpasoft', pre => 'https://denpasoft.com/products/' ], + [ input => short => 'l_jlist', name => 'J-List', pre => 'https://www.jlist.com/', post => ' (the last part of the URL, e.g. "np004")' ], [ date => short => 'released', name => 'Release date' ], [ static => content => 'Leave month or day blank if they are unknown' ], [ select => short => 'minage', name => 'Age rating', diff --git a/lib/VNDB/Util/Misc.pm b/lib/VNDB/Util/Misc.pm index f9d1da44..d040a8c0 100644 --- a/lib/VNDB/Util/Misc.pm +++ b/lib/VNDB/Util/Misc.pm @@ -201,6 +201,7 @@ sub entryLinks { $lnk->($obj->{l_dlsiteen}, 'DLsite (eng)','https://www.dlsite.com/eng/work/=/product_id/%s.html'); $lnk->($obj->{l_gog}, 'GOG', 'https://www.gog.com/game/%s'); $lnk->($obj->{l_denpa}, 'Denpasoft', 'https://denpasoft.com/products/%s'); + $lnk->($obj->{l_jlist}, 'J-List', 'https://www.jlist.com/%s'); } # Staff links diff --git a/util/sql/schema.sql b/util/sql/schema.sql index 0154e688..4e7c1c9f 100644 --- a/util/sql/schema.sql +++ b/util/sql/schema.sql @@ -308,7 +308,8 @@ CREATE TABLE releases ( -- dbentry_type=r l_dlsite text NOT NULL DEFAULT '', -- [pub] l_dlsiteen text NOT NULL DEFAULT '', -- [pub] l_gog text NOT NULL DEFAULT '', -- [pub] - l_denpa text NOT NULL DEFAULT '' -- [pub] + l_denpa text NOT NULL DEFAULT '', -- [pub] + l_jlist text NOT NULL DEFAULT '' -- [pub] ); -- releases_hist @@ -336,7 +337,8 @@ CREATE TABLE releases_hist ( l_dlsite text NOT NULL DEFAULT '', l_dlsiteen text NOT NULL DEFAULT '', l_gog text NOT NULL DEFAULT '', - l_denpa text NOT NULL DEFAULT '' + l_denpa text NOT NULL DEFAULT '', + l_jlist text NOT NULL DEFAULT '' ); -- releases_lang diff --git a/util/updates/update_20190816.sql b/util/updates/update_20190816.sql index 769da299..37ca37d2 100644 --- a/util/updates/update_20190816.sql +++ b/util/updates/update_20190816.sql @@ -5,11 +5,13 @@ ALTER TABLE releases ADD COLUMN l_dlsite text NOT NULL DEFAULT ''; ALTER TABLE releases ADD COLUMN l_dlsiteen text NOT NULL DEFAULT ''; ALTER TABLE releases ADD COLUMN l_gog text NOT NULL DEFAULT ''; ALTER TABLE releases ADD COLUMN l_denpa text NOT NULL DEFAULT ''; +ALTER TABLE releases ADD COLUMN l_jlist text NOT NULL DEFAULT ''; ALTER TABLE releases_hist ADD COLUMN l_steam integer NOT NULL DEFAULT 0; ALTER TABLE releases_hist ADD COLUMN l_dlsite text NOT NULL DEFAULT ''; ALTER TABLE releases_hist ADD COLUMN l_dlsiteen text NOT NULL DEFAULT ''; ALTER TABLE releases_hist ADD COLUMN l_gog text NOT NULL DEFAULT ''; ALTER TABLE releases_hist ADD COLUMN l_denpa text NOT NULL DEFAULT ''; +ALTER TABLE releases_hist ADD COLUMN l_jlist text NOT NULL DEFAULT ''; \i util/sql/editfunc.sql |