Mercurial > hg > reproctool-df
comparison reproctool.cgi @ 3:e640eb6cefc3
Making DB stuff more generic, fixing missing mineral
author | Dominic Cleal <dominic@computerkb.co.uk> |
---|---|
date | Sat, 24 Jan 2009 17:18:17 +0000 |
parents | c39512d94605 |
children | 4351c0bf33d4 |
comparison
equal
deleted
inserted
replaced
2:731da755d92d | 3:e640eb6cefc3 |
---|---|
5 | 5 |
6 use CGI; | 6 use CGI; |
7 use DBI; | 7 use DBI; |
8 | 8 |
9 # Settings | 9 # Settings |
10 my $db_path = 'qr100-sqlite3-v1.db'; | |
11 my $img_http_path = '/itemimgs'; | 10 my $img_http_path = '/itemimgs'; |
12 | 11 |
13 my $cgi = new CGI; | 12 my $cgi = new CGI; |
14 print $cgi->header(-type => 'text/html', | 13 print $cgi->header(-type => 'text/html', |
15 -pragma => 'no-cache', | 14 -pragma => 'no-cache', |
27 my $nocx = $cgi->param('nocx') || die('No nocx price'); | 26 my $nocx = $cgi->param('nocx') || die('No nocx price'); |
28 my $zydr = $cgi->param('zydr') || die('No zydr price'); | 27 my $zydr = $cgi->param('zydr') || die('No zydr price'); |
29 my $mega = $cgi->param('mega') || die('No mega price'); | 28 my $mega = $cgi->param('mega') || die('No mega price'); |
30 my $morp = $cgi->param('morp') || die('No morp price'); | 29 my $morp = $cgi->param('morp') || die('No morp price'); |
31 | 30 |
32 require 'dbparams.cgi'; | 31 our @dbparams; |
32 require './dbparams.cgi'; | |
33 my $db = DBI->connect(@dbparams) | 33 my $db = DBI->connect(@dbparams) |
34 or die("Database connection failure: $DBI::errstr"); | 34 or die("Database connection failure: $DBI::errstr"); |
35 | 35 |
36 # Strip out line endings | 36 # Strip out line endings |
37 $str_items =~ s/[\n\r]+//g; | 37 $str_items =~ s/[\n\r]+//g; |
43 # SQL lookup for reprocessing amounts | 43 # SQL lookup for reprocessing amounts |
44 my $sql_reprocess = <<END; | 44 my $sql_reprocess = <<END; |
45 SELECT | 45 SELECT |
46 types.typeID, | 46 types.typeID, |
47 types.typeName, | 47 types.typeName, |
48 attrs.valueInt [metaLevel], | 48 attrs.valueInt, -- metaLevel |
49 types.basePrice, | 49 types.basePrice, |
50 graphics.icon, | 50 graphics.icon, |
51 SUM(CASE WHEN m1.requiredTypeID = 34 THEN m1.quantity ELSE 0 END) [Tritanium], | 51 SUM(CASE WHEN m1.requiredTypeID = 34 THEN m1.quantity ELSE 0 END), -- [Tritanium] |
52 SUM(CASE WHEN m1.requiredTypeID = 35 THEN m1.quantity ELSE 0 END) [Pyerite], | 52 SUM(CASE WHEN m1.requiredTypeID = 35 THEN m1.quantity ELSE 0 END), -- [Pyerite] |
53 SUM(CASE WHEN m1.requiredTypeID = 36 THEN m1.quantity ELSE 0 END) [Mexallon], | 53 SUM(CASE WHEN m1.requiredTypeID = 36 THEN m1.quantity ELSE 0 END), -- [Mexallon] |
54 SUM(CASE WHEN m1.requiredTypeID = 37 THEN m1.quantity ELSE 0 END) [Isogen], | 54 SUM(CASE WHEN m1.requiredTypeID = 37 THEN m1.quantity ELSE 0 END), -- [Isogen] |
55 SUM(CASE WHEN m1.requiredTypeID = 38 THEN m1.quantity ELSE 0 END) [Nocxium], | 55 SUM(CASE WHEN m1.requiredTypeID = 38 THEN m1.quantity ELSE 0 END), -- [Nocxium] |
56 SUM(CASE WHEN m1.requiredTypeID = 39 THEN m1.quantity ELSE 0 END) [Zydrine], | 56 SUM(CASE WHEN m1.requiredTypeID = 39 THEN m1.quantity ELSE 0 END), -- [Zydrine] |
57 SUM(CASE WHEN m1.requiredTypeID = 40 THEN m1.quantity ELSE 0 END) [Megacyte], | 57 SUM(CASE WHEN m1.requiredTypeID = 40 THEN m1.quantity ELSE 0 END), -- [Megacyte] |
58 SUM(CASE WHEN m1.requiredTypeID = 11399 THEN m1.quantity ELSE 0 END) [Morphite] | 58 SUM(CASE WHEN m1.requiredTypeID = 11399 THEN m1.quantity ELSE 0 END) -- [Morphite] |
59 FROM invTypes types | 59 FROM invTypes types |
60 INNER JOIN dgmTypeAttributes attrs ON types.typeID = attrs.typeID AND attrs.attributeID = 633 | 60 INNER JOIN dgmTypeAttributes attrs ON types.typeID = attrs.typeID AND attrs.attributeID = 633 |
61 INNER JOIN typeActivityMaterials m1 ON types.typeID = m1.typeID | 61 INNER JOIN typeActivityMaterials m1 ON types.typeID = m1.typeID |
62 INNER JOIN eveGraphics graphics ON types.graphicID = graphics.graphicID | 62 INNER JOIN eveGraphics graphics ON types.graphicID = graphics.graphicID |
63 WHERE types.typeName = ? | 63 WHERE types.typeName = ? |
71 | 71 |
72 my @output = (); | 72 my @output = (); |
73 for my $sitem (split(/\s*,\s*/, $str_items)) | 73 for my $sitem (split(/\s*,\s*/, $str_items)) |
74 { | 74 { |
75 my ($tid, $tname, $meta, $basePrice, $icon, | 75 my ($tid, $tname, $meta, $basePrice, $icon, |
76 $ttrit, $tpyer, $tmexa, $tisog, $tnocx, $tzydr, $tmega); | 76 $ttrit, $tpyer, $tmexa, $tisog, $tnocx, $tzydr, $tmega, $tmorp); |
77 | 77 |
78 $pre_reprocess->execute($sitem) or die("Can't lookup $sitem: $DBI::errstr"); | 78 $pre_reprocess->execute($sitem) or die("Can't lookup $sitem: $DBI::errstr"); |
79 $pre_reprocess->bind_columns(undef, \$tid, \$tname, \$meta, \$basePrice, | 79 $pre_reprocess->bind_columns(undef, \$tid, \$tname, \$meta, \$basePrice, |
80 \$icon, \$ttrit, \$tpyer, \$tmexa, \$tisog, \$tnocx, \$tzydr, \$tmega); | 80 \$icon, \$ttrit, \$tpyer, \$tmexa, \$tisog, |
81 \$tnocx, \$tzydr, \$tmega, \$tmorp); | |
81 | 82 |
82 my $item = {}; | 83 my $item = {}; |
83 if ($pre_reprocess->fetch()) | 84 if ($pre_reprocess->fetch()) |
84 { | 85 { |
85 my $isk = ($trit * $ttrit) + ($pyer * $tpyer) + ($mexa * $tmexa) + | 86 my $isk = ($trit * $ttrit) + ($pyer * $tpyer) + ($mexa * $tmexa) + |
86 ($isog * $tisog) + ($nocx * $tnocx) + ($zydr * $tzydr) + | 87 ($isog * $tisog) + ($nocx * $tnocx) + ($zydr * $tzydr) + |
87 ($mega * $tmega); | 88 ($mega * $tmega) + ($morp * $tmorp); |
88 | 89 |
90 $meta = 0 unless defined $meta; | |
89 $item = { id => $tid, name => $tname, meta => $meta, icon => $icon, | 91 $item = { id => $tid, name => $tname, meta => $meta, icon => $icon, |
90 price => $basePrice, reprocess => $isk }; | 92 price => $basePrice, reprocess => $isk }; |
91 } | 93 } |
92 push @output, $item; | 94 push @output, $item; |
93 } | 95 } |
98 <head> | 100 <head> |
99 <style type="text/css"> | 101 <style type="text/css"> |
100 .meta4, .meta5, .meta6, .meta7, .meta8, .meta9 | 102 .meta4, .meta5, .meta6, .meta7, .meta8, .meta9 |
101 { | 103 { |
102 border: 2px #FF0000 solid; | 104 border: 2px #FF0000 solid; |
105 } | |
106 .item | |
107 { | |
108 width: 64px; | |
103 } | 109 } |
104 </style> | 110 </style> |
105 </head> | 111 </head> |
106 <body> | 112 <body> |
107 <table> | 113 <table> |