Asa@3: local addonName, addonTable = ...; Asa@15: local addon = _G[addonName] Asa@3: Asa@20: function addon:FormatMoney(copper, color, textOnly) Asa@20: color = color or "|cFFFFFFFF" Asa@6: local prefix = "" Asa@16: if copper < 0 then Asa@6: prefix = "-" Asa@16: copper = abs(copper) Asa@6: end Asa@20: Asa@20: local copperTexture = COPPER_AMOUNT_TEXTURE Asa@20: local silverTexture = SILVER_AMOUNT_TEXTURE Asa@20: local goldTexture = GOLD_AMOUNT_TEXTURE Asa@20: if textOnly then Asa@20: copperTexture = '%dc' Asa@20: silverTexture = '%ds' Asa@20: goldTexture = '%dg' Asa@20: end Asa@16: Asa@16: local gold = floor( copper / 10000 ); Asa@16: copper = mod(copper, 10000) Asa@16: local silver = floor( copper / 100 ); Asa@16: copper = mod(copper, 100) Asa@16: Asa@16: Asa@20: copper = color .. format(copperTexture, copper, 13, 13) Asa@16: if silver > 0 or gold > 0 then Asa@20: silver = color.. format(silverTexture, silver, 13, 13) .. ' ' Asa@16: else Asa@16: silver = "" Asa@16: end Asa@16: if gold > 0 then Asa@20: gold = color.. format(goldTexture, gold, 13, 13) .. ' ' Asa@16: else Asa@16: gold = "" Asa@16: end Asa@16: Asa@16: return format("%s%s%s%s", prefix, gold, silver, copper) Asa@6: end Asa@6: Asa@8: -- This is only here to make sure this doesn't blow up if ReplaceItemCache is never called Asa@7: local item_db = {} Asa@7: Asa@7: function addon:ReplaceItemCache(new_cache) Asa@7: item_db = new_cache Asa@7: end Asa@7: Asa@7: -- This will be reset every session Asa@7: local tmp_item_cache = {} Asa@7: function addon:GetItemID(itemName) Asa@7: if item_db[itemName] ~= nil then Asa@7: return item_db[itemName] Asa@7: end Asa@7: Asa@7: if tmp_item_cache[itemName] == nil then Asa@7: local _, itemLink = GetItemInfo (itemName); Asa@7: if itemLink ~= nil then Asa@7: local _, _, _, _, itemID = string.find(itemLink, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?") Asa@7: tmp_item_cache[itemName] = tonumber(itemID) Asa@7: end Asa@7: end Asa@7: Asa@9: if tmp_item_cache[itemName] == nil then Asa@9: for link, data in pairs(ItemAuditor.db.factionrealm.items) do Asa@9: local name, itemLink = GetItemInfo (link); Asa@9: if name == itemName then Asa@9: local _, _, _, _, itemID = string.find(itemLink, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?") Asa@9: tmp_item_cache[itemName] = tonumber(itemID) Asa@9: end Asa@9: end Asa@9: Asa@9: end Asa@9: Asa@7: return tmp_item_cache[itemName] Asa@7: end Asa@7: Asa@9: function addon:GetLinkFromName(itemName) Asa@9: local itemID = self:GetItemID(itemName) Asa@9: local itemLink Asa@9: if itemID ~= nil then Asa@9: _, itemLink = GetItemInfo(itemID) Asa@9: end Asa@9: Asa@9: return itemLink Asa@9: end Asa@9: Asa@7: function addon:SaveItemID(itemName, id) Asa@7: item_db[itemName] = tonumber(id) Asa@7: end Asa@7: Asa@24: addon.SubjectPatterns = { Asa@6: AHCancelled = gsub(AUCTION_REMOVED_MAIL_SUBJECT, "%%s", ".*"), Asa@6: AHExpired = gsub(AUCTION_EXPIRED_MAIL_SUBJECT, "%%s", ".*"), Asa@6: AHOutbid = gsub(AUCTION_OUTBID_MAIL_SUBJECT, "%%s", ".*"), Asa@6: AHSuccess = gsub(AUCTION_SOLD_MAIL_SUBJECT, "%%s", ".*"), Asa@6: AHWon = gsub(AUCTION_WON_MAIL_SUBJECT, "%%s", ".*"), Asa@6: CODPayment = gsub(COD_PAYMENT, "%%s", "(.*)"), Asa@6: } Asa@6: Asa@6: function addon:GetMailType(msgSubject) Asa@6: if msgSubject then Asa@24: for k, v in pairs(self.SubjectPatterns) do Asa@6: if msgSubject:find(v) then return k end Asa@6: end Asa@6: end Asa@6: return "NonAHMail" Asa@3: end Asa@3: Asa@3: function addon:tcount(tab) Asa@3: local n = #tab Asa@3: if (n == 0) then Asa@3: for _ in pairs(tab) do Asa@3: n = n + 1 Asa@3: end Asa@3: end Asa@3: return n Asa@3: end Asa@3: Asa@3: function addon:GetDebug(info) Asa@11: return self.db.char.debug Asa@3: end Asa@3: Asa@3: function addon:SetDebug(info, input) Asa@11: Asa@11: ItemAuditor.db.char.debug = input Asa@3: local value = "off" Asa@3: if input then Asa@3: value = "on" Asa@3: end Asa@11: self:Print("Debugging is now: " .. value) Asa@3: end