annotate Modules/Utils.lua @ 57:9cb0bc93ed11

Added the version number to the title in ItemAuditor options.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Sun, 25 Jul 2010 12:52:14 -0700
parents 003de902ae64
children bdf3aba93aa9
rev   line source
Asa@3 1 local addonName, addonTable = ...;
Asa@15 2 local addon = _G[addonName]
Asa@3 3
Asa@20 4 function addon:FormatMoney(copper, color, textOnly)
Asa@20 5 color = color or "|cFFFFFFFF"
Asa@6 6 local prefix = ""
Asa@16 7 if copper < 0 then
Asa@6 8 prefix = "-"
Asa@16 9 copper = abs(copper)
Asa@6 10 end
Asa@20 11
Asa@20 12 local copperTexture = COPPER_AMOUNT_TEXTURE
Asa@20 13 local silverTexture = SILVER_AMOUNT_TEXTURE
Asa@20 14 local goldTexture = GOLD_AMOUNT_TEXTURE
Asa@20 15 if textOnly then
Asa@20 16 copperTexture = '%dc'
Asa@20 17 silverTexture = '%ds'
Asa@20 18 goldTexture = '%dg'
Asa@20 19 end
Asa@16 20
Asa@16 21 local gold = floor( copper / 10000 );
Asa@16 22 copper = mod(copper, 10000)
Asa@16 23 local silver = floor( copper / 100 );
Asa@16 24 copper = mod(copper, 100)
Asa@16 25
Asa@16 26
Asa@20 27 copper = color .. format(copperTexture, copper, 13, 13)
Asa@16 28 if silver > 0 or gold > 0 then
Asa@20 29 silver = color.. format(silverTexture, silver, 13, 13) .. ' '
Asa@16 30 else
Asa@16 31 silver = ""
Asa@16 32 end
Asa@16 33 if gold > 0 then
Asa@20 34 gold = color.. format(goldTexture, gold, 13, 13) .. ' '
Asa@16 35 else
Asa@16 36 gold = ""
Asa@16 37 end
Asa@16 38
Asa@16 39 return format("%s%s%s%s", prefix, gold, silver, copper)
Asa@6 40 end
Asa@6 41
Asa@8 42 -- This is only here to make sure this doesn't blow up if ReplaceItemCache is never called
Asa@7 43 local item_db = {}
Asa@7 44
Asa@7 45 function addon:ReplaceItemCache(new_cache)
Asa@7 46 item_db = new_cache
Asa@7 47 end
Asa@7 48
Asa@7 49 -- This will be reset every session
Asa@7 50 local tmp_item_cache = {}
Asa@7 51 function addon:GetItemID(itemName)
Asa@7 52 if item_db[itemName] ~= nil then
Asa@7 53 return item_db[itemName]
Asa@7 54 end
Asa@7 55
Asa@7 56 if tmp_item_cache[itemName] == nil then
Asa@7 57 local _, itemLink = GetItemInfo (itemName);
Asa@7 58 if itemLink ~= nil then
Asa@7 59 local _, _, _, _, itemID = string.find(itemLink, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?")
Asa@7 60 tmp_item_cache[itemName] = tonumber(itemID)
Asa@7 61 end
Asa@7 62 end
Asa@7 63
Asa@9 64 if tmp_item_cache[itemName] == nil then
Asa@9 65 for link, data in pairs(ItemAuditor.db.factionrealm.items) do
Asa@9 66 local name, itemLink = GetItemInfo (link);
Asa@9 67 if name == itemName then
Asa@9 68 local _, _, _, _, itemID = string.find(itemLink, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?")
Asa@9 69 tmp_item_cache[itemName] = tonumber(itemID)
Asa@9 70 end
Asa@9 71 end
Asa@9 72
Asa@9 73 end
Asa@9 74
Asa@7 75 return tmp_item_cache[itemName]
Asa@7 76 end
Asa@7 77
Asa@9 78 function addon:GetLinkFromName(itemName)
Asa@9 79 local itemID = self:GetItemID(itemName)
Asa@9 80 local itemLink
Asa@9 81 if itemID ~= nil then
Asa@9 82 _, itemLink = GetItemInfo(itemID)
Asa@9 83 end
Asa@9 84
Asa@9 85 return itemLink
Asa@9 86 end
Asa@9 87
Asa@7 88 function addon:SaveItemID(itemName, id)
Asa@7 89 item_db[itemName] = tonumber(id)
Asa@7 90 end
Asa@7 91
Asa@24 92 addon.SubjectPatterns = {
Asa@6 93 AHCancelled = gsub(AUCTION_REMOVED_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 94 AHExpired = gsub(AUCTION_EXPIRED_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 95 AHOutbid = gsub(AUCTION_OUTBID_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 96 AHSuccess = gsub(AUCTION_SOLD_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 97 AHWon = gsub(AUCTION_WON_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 98 CODPayment = gsub(COD_PAYMENT, "%%s", "(.*)"),
Asa@6 99 }
Asa@6 100
Asa@6 101 function addon:GetMailType(msgSubject)
Asa@6 102 if msgSubject then
Asa@24 103 for k, v in pairs(self.SubjectPatterns) do
Asa@6 104 if msgSubject:find(v) then return k end
Asa@6 105 end
Asa@6 106 end
Asa@6 107 return "NonAHMail"
Asa@3 108 end
Asa@3 109
Asa@3 110 function addon:tcount(tab)
Asa@3 111 local n = #tab
Asa@3 112 if (n == 0) then
Asa@3 113 for _ in pairs(tab) do
Asa@3 114 n = n + 1
Asa@3 115 end
Asa@3 116 end
Asa@3 117 return n
Asa@3 118 end
Asa@3 119
Asa@3 120 function addon:GetDebug(info)
Asa@11 121 return self.db.char.debug
Asa@3 122 end
Asa@3 123
Asa@3 124 function addon:SetDebug(info, input)
Asa@11 125
Asa@11 126 ItemAuditor.db.char.debug = input
Asa@3 127 local value = "off"
Asa@3 128 if input then
Asa@3 129 value = "on"
Asa@3 130 end
Asa@11 131 self:Print("Debugging is now: " .. value)
Asa@3 132 end