annotate Modules/Utils.lua @ 12:6a6296dd249f

Removed dependency on DevTools, completed chaning over the database to use links instead of names, Added integration with my version of QuickAuctions3 (I need to make this optional soon)
author Asa Ayers <Asa.Ayers@Gmail.com>
date Wed, 30 Jun 2010 22:59:37 -0700
parents 03e2d9edc344
children 44e70a3fdb19
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@3 96 function addon:GetDebug(info)
Asa@11 97 return self.db.char.debug
Asa@3 98 end
Asa@3 99
Asa@3 100 function addon:SetDebug(info, input)
Asa@11 101
Asa@11 102 ItemAuditor.db.char.debug = input
Asa@3 103 local value = "off"
Asa@3 104 if input then
Asa@3 105 value = "on"
Asa@3 106 end
Asa@11 107 self:Print("Debugging is now: " .. value)
Asa@3 108 end