Mercurial > wow > itemauditor
comparison Core.lua @ 6:5dddd73b2220
Removed dependency on postal. It was only being used to determine the mail type which has been moved into ItemAuditor so I can support CODPayments. Paying for COD items works, but getting the payments back can't reliably associate the payment with an item yet.
| author | Asa Ayers <Asa.Ayers@Gmail.com> |
|---|---|
| date | Wed, 26 May 2010 22:41:47 -0700 |
| parents | 7d0f4ebedf8c |
| children | bbba2fae0f69 |
comparison
equal
deleted
inserted
replaced
| 5:7d0f4ebedf8c | 6:5dddd73b2220 |
|---|---|
| 83 | 83 |
| 84 return {items = diff, money = moneyDiff} | 84 return {items = diff, money = moneyDiff} |
| 85 end | 85 end |
| 86 | 86 |
| 87 | 87 |
| 88 | |
| 88 function addon:ScanMail() | 89 function addon:ScanMail() |
| 89 local results = {} | 90 local results = {} |
| 90 for mailIndex = 1, GetInboxNumItems() or 0 do | 91 for mailIndex = 1, GetInboxNumItems() or 0 do |
| 91 local sender, msgSubject, msgMoney, msgCOD, _, msgItem, _, _, msgText, _, isGM = select(3, GetInboxHeaderInfo(mailIndex)) | 92 local sender, msgSubject, msgMoney, msgCOD, _, msgItem, _, _, msgText, _, isGM = select(3, GetInboxHeaderInfo(mailIndex)) |
| 92 local mailType = Postal:GetMailType(msgSubject) | 93 local mailType = utils:GetMailType(msgSubject) |
| 93 | 94 |
| 95 results[mailType] = (results[mailType] or {}) | |
| 96 | |
| 94 if mailType == "NonAHMail" and msgCOD > 0 then | 97 if mailType == "NonAHMail" and msgCOD > 0 then |
| 95 -- Don't know how to handle these yet | 98 mailType = 'COD' |
| 99 results[mailType] = (results[mailType] or {}) | |
| 96 | 100 |
| 97 local itemTypes = {} | 101 local itemTypes = {} |
| 98 for itemIndex = 1, ATTACHMENTS_MAX_RECEIVE do | 102 for itemIndex = 1, ATTACHMENTS_MAX_RECEIVE do |
| 99 local itemName, _, count, _, _= GetInboxItem(mailIndex, itemIndex) | 103 local itemName, _, count, _, _= GetInboxItem(mailIndex, itemIndex) |
| 100 if itemName ~= nil then | 104 if itemName ~= nil then |
| 102 end | 106 end |
| 103 end | 107 end |
| 104 | 108 |
| 105 if utils:tcount(itemTypes) == 1 then | 109 if utils:tcount(itemTypes) == 1 then |
| 106 for itemName, count in pairs(itemTypes) do | 110 for itemName, count in pairs(itemTypes) do |
| 107 results[itemName] = (results[itemName] or 0) - msgCOD | 111 results[mailType][itemName] = (results[mailType][itemName] or 0) - msgCOD |
| 108 end | 112 end |
| 109 else | 113 else |
| 110 self:Debug("Don't know what to do with more than one item type on COD mail.") | 114 self:Debug("Don't know what to do with more than one item type on COD mail.") |
| 111 end | 115 end |
| 116 elseif mailType == "CODPayment" then | |
| 117 itemName = msgSubject:gsub(utils.SubjectPatterns[mailType], function(item) return item end) | |
| 112 | 118 |
| 119 results[mailType][itemName] = (results[mailType][itemName] or 0) + msgMoney | |
| 113 | 120 |
| 114 elseif mailType == "AHSuccess" then | 121 elseif mailType == "AHSuccess" then |
| 115 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex); | 122 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex); |
| 116 results[itemName] = (results[itemName] or 0) + deposit + buyout - consignment | 123 results[mailType][itemName] = (results[mailType][itemName] or 0) + deposit + buyout - consignment |
| 117 | 124 |
| 118 elseif mailType == "AHWon" then | 125 elseif mailType == "AHWon" then |
| 119 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex); | 126 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex); |
| 120 results[itemName] = (results[itemName] or 0) - bid | 127 results[mailType][itemName] = (results[mailType][itemName] or 0) - bid |
| 121 elseif mailType == "AHExpired" or mailType == "AHCancelled" or mailType == "AHOutbid" then | 128 elseif mailType == "AHExpired" or mailType == "AHCancelled" or mailType == "AHOutbid" then |
| 122 -- These should be handled when you pay the deposit at the AH | 129 -- These should be handled when you pay the deposit at the AH |
| 123 else | 130 else |
| 124 self:Debug("Unhandled mail type: " .. mailType) | 131 self:Debug("Unhandled mail type: " .. mailType) |
| 125 self:Debug(msgSubject) | 132 self:Debug(msgSubject) |
| 129 return results | 136 return results |
| 130 end | 137 end |
| 131 | 138 |
| 132 function addon:SaveValue(item, value) | 139 function addon:SaveValue(item, value) |
| 133 local item_account = self.db.factionrealm.item_account | 140 local item_account = self.db.factionrealm.item_account |
| 134 if item_account[item] == nil then | 141 |
| 135 item_account[item] = 0 | 142 item_account[item] = (item_account[item] or 0) + value |
| 136 end | 143 |
| 137 item_account[item] = item_account[item] + value | 144 self:Debug("Updated price of " .. item .. " to " .. utils:FormatMoney(item_account[item]) .. "(change: " .. utils:FormatMoney(value) .. ")") |
| 138 | 145 |
| 139 if item_account[item] >= 0 then | 146 if item_account[item] >= 0 then |
| 147 self:Debug("Updated price of " .. item .. " to " .. utils:FormatMoney(0)) | |
| 140 item_account[item] = nil | 148 item_account[item] = nil |
| 141 end | 149 end |
| 142 end | 150 end |
| 143 | 151 |
| 144 local defaultBagDelay = 0.2 | 152 local defaultBagDelay = 0.2 |
