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
|