annotate Modules/Utils.lua @ 18:c7b3585c73df

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