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
|