annotate Modules/Utils.lua @ 15:44e70a3fdb19

Merged utils into ItemAuditor.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Sat, 03 Jul 2010 07:40:01 -0700
parents 03e2d9edc344
children 56de19d9bd8d
rev   line source
Asa@3 1 local addonName, addonTable = ...;
Asa@15 2 local addon = _G[addonName]
Asa@3 3
Asa@3 4 addonTable.utils = addon
Asa@9 5 IAUtils = addon
Asa@3 6
Asa@3 7 function addon:FormatMoney(money)
Asa@6 8 local prefix = ""
Asa@6 9 if money < 0 then
Asa@6 10 prefix = "-"
Asa@6 11 end
Asa@6 12 return prefix .. Altoholic:GetMoneyString(abs(money), WHITE, false)
Asa@6 13 end
Asa@6 14
Asa@8 15 -- This is only here to make sure this doesn't blow up if ReplaceItemCache is never called
Asa@7 16 local item_db = {}
Asa@7 17
Asa@7 18 function addon:ReplaceItemCache(new_cache)
Asa@7 19 item_db = new_cache
Asa@7 20 end
Asa@7 21
Asa@7 22 -- This will be reset every session
Asa@7 23 local tmp_item_cache = {}
Asa@7 24 function addon:GetItemID(itemName)
Asa@7 25 if item_db[itemName] ~= nil then
Asa@7 26 return item_db[itemName]
Asa@7 27 end
Asa@7 28
Asa@7 29 if tmp_item_cache[itemName] == nil then
Asa@7 30 local _, itemLink = GetItemInfo (itemName);
Asa@7 31 if itemLink ~= nil then
Asa@7 32 local _, _, _, _, itemID = string.find(itemLink, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?")
Asa@7 33 tmp_item_cache[itemName] = tonumber(itemID)
Asa@7 34 end
Asa@7 35 end
Asa@7 36
Asa@9 37 if tmp_item_cache[itemName] == nil then
Asa@9 38 for link, data in pairs(ItemAuditor.db.factionrealm.items) do
Asa@9 39 local name, itemLink = GetItemInfo (link);
Asa@9 40 if name == itemName then
Asa@9 41 local _, _, _, _, itemID = string.find(itemLink, "|?c?f?f?(%x*)|?H?([^:]*):?(%d+):?(%d*):?(%d*):?(%d*):?(%d*):?(%d*):?(%-?%d*):?(%-?%d*):?(%d*)|?h?%[?([^%[%]]*)%]?|?h?|?r?")
Asa@9 42 tmp_item_cache[itemName] = tonumber(itemID)
Asa@9 43 end
Asa@9 44 end
Asa@9 45
Asa@9 46 end
Asa@9 47
Asa@7 48 return tmp_item_cache[itemName]
Asa@7 49 end
Asa@7 50
Asa@9 51 function addon:GetLinkFromName(itemName)
Asa@9 52 local itemID = self:GetItemID(itemName)
Asa@9 53 local itemLink
Asa@9 54 if itemID ~= nil then
Asa@9 55 _, itemLink = GetItemInfo(itemID)
Asa@9 56 end
Asa@9 57
Asa@9 58 return itemLink
Asa@9 59 end
Asa@9 60
Asa@7 61 function addon:SaveItemID(itemName, id)
Asa@7 62 item_db[itemName] = tonumber(id)
Asa@7 63 end
Asa@7 64
Asa@6 65 local SubjectPatterns = {
Asa@6 66 AHCancelled = gsub(AUCTION_REMOVED_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 67 AHExpired = gsub(AUCTION_EXPIRED_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 68 AHOutbid = gsub(AUCTION_OUTBID_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 69 AHSuccess = gsub(AUCTION_SOLD_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 70 AHWon = gsub(AUCTION_WON_MAIL_SUBJECT, "%%s", ".*"),
Asa@6 71 CODPayment = gsub(COD_PAYMENT, "%%s", "(.*)"),
Asa@6 72 }
Asa@6 73
Asa@6 74 function addon:GetMailType(msgSubject)
Asa@6 75 if msgSubject then
Asa@6 76 for k, v in pairs(SubjectPatterns) do
Asa@6 77 if msgSubject:find(v) then return k end
Asa@6 78 end
Asa@6 79 end
Asa@6 80 return "NonAHMail"
Asa@3 81 end
Asa@3 82
Asa@3 83 function addon:tcount(tab)
Asa@3 84 local n = #tab
Asa@3 85 if (n == 0) then
Asa@3 86 for _ in pairs(tab) do
Asa@3 87 n = n + 1
Asa@3 88 end
Asa@3 89 end
Asa@3 90 return n
Asa@3 91 end
Asa@3 92
Asa@3 93 function addon:GetDebug(info)
Asa@11 94 return self.db.char.debug
Asa@3 95 end
Asa@3 96
Asa@3 97 function addon:SetDebug(info, input)
Asa@11 98
Asa@11 99 ItemAuditor.db.char.debug = input
Asa@3 100 local value = "off"
Asa@3 101 if input then
Asa@3 102 value = "on"
Asa@3 103 end
Asa@11 104 self:Print("Debugging is now: " .. value)
Asa@3 105 end