annotate Modules/Utils.lua @ 9:374dd1a90d02

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