Zerotorescue@0: local MailOpener = LibStub("AceAddon-3.0"):GetAddon("MailOpener"); Zerotorescue@31: local mod = MailOpener:NewModule("Collected", "AceEvent-3.0", "AceTimer-3.0"); Zerotorescue@70: local L = LibStub("AceLocale-3.0"):GetLocale("MailOpener"); Zerotorescue@0: Zerotorescue@68: mod.moduleDescription = L["Shows a simple summary of what has been collected at the mailbox."]; Zerotorescue@31: mod.moduleRequired = false; Zerotorescue@3: Zerotorescue@31: -- Gold Zerotorescue@0: local previousGold, earned, sessionEarned; Zerotorescue@31: -- Items Zerotorescue@0: local previousFreeSlotsAvailable, itemsGained, sessionItemsgained; Zerotorescue@31: -- Mail Zerotorescue@0: local previousMailCount, mailOpened, sessionMailOpened; Zerotorescue@31: -- Time Zerotorescue@0: local timeStarted, sessionTimeSpent; -- even though the first contains GetTime(), the second var will be filled with actual seconds Zerotorescue@31: Zerotorescue@0: local updated; Zerotorescue@0: Zerotorescue@31: function mod:OnInitialize() Zerotorescue@0: local defaults = { Zerotorescue@0: profile = { Zerotorescue@0: trackGold = true, Zerotorescue@0: trackItems = true, Zerotorescue@0: trackMail = true, Zerotorescue@55: trackTimeSpent = true, Zerotorescue@0: sessionSummary = false, Zerotorescue@0: batchSummary = false, Zerotorescue@0: }, Zerotorescue@0: }; Zerotorescue@0: Zerotorescue@0: -- Register our saved variables NameSpace Zerotorescue@0: self.db = MailOpener.db:RegisterNamespace("Collected", defaults); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:OnEnable() Zerotorescue@0: self:Debug("OnEnable"); Zerotorescue@0: Zerotorescue@0: self:RegisterEvent("MAIL_SHOW"); Zerotorescue@0: Zerotorescue@0: MailOpener:TogglePostalModule("Rake", false); Zerotorescue@0: Zerotorescue@0: sessionEarned = 0; Zerotorescue@0: sessionItemsgained = 0; Zerotorescue@0: sessionMailOpened = 0; Zerotorescue@0: sessionTimeSpent = 0; Zerotorescue@0: Zerotorescue@0: -- If we were toggling this module on while the mailbox is opened we must register all events again Zerotorescue@0: if MailFrame:IsVisible() then Zerotorescue@0: self:MAIL_SHOW(); Zerotorescue@0: end Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: -- Even though Ace can unregister our events it's neater to do it manually too Zerotorescue@31: function mod:OnDisable() Zerotorescue@0: self:Debug("OnDisable"); Zerotorescue@0: Zerotorescue@0: self:UnregisterEvent("MAIL_SHOW"); Zerotorescue@0: Zerotorescue@0: self:Stop(); Zerotorescue@0: Zerotorescue@0: MailOpener:TogglePostalModule("Rake", true); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:MAIL_SHOW() Zerotorescue@0: self:Debug("MAIL_SHOW"); Zerotorescue@0: Zerotorescue@0: -- Unbind / reset all previous events and settings Zerotorescue@0: self:Stop(); Zerotorescue@0: Zerotorescue@0: self:RegisterEvent("MAIL_CLOSED"); Zerotorescue@0: Zerotorescue@0: if self.db.profile.batchSummary then Zerotorescue@0: self:RegisterMessage("MO_OPEN_COMPLETE"); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: -- Money Zerotorescue@0: if self.db.profile.trackGold then Zerotorescue@0: self:RegisterEvent("PLAYER_MONEY"); Zerotorescue@0: Zerotorescue@0: previousGold = GetMoney(); Zerotorescue@0: earned = 0; Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: -- Items Zerotorescue@0: if self.db.profile.trackItems then Zerotorescue@0: self:RegisterEvent("BAG_UPDATE"); Zerotorescue@0: Zerotorescue@0: previousFreeSlotsAvailable = self:GetNumFreeSlots(); Zerotorescue@0: itemsGained = 0; Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: -- Mail Zerotorescue@0: if self.db.profile.trackMail then Zerotorescue@0: self:RegisterEvent("MAIL_INBOX_UPDATE"); Zerotorescue@0: Zerotorescue@0: previousMailCount = nil; Zerotorescue@0: mailOpened = 0; Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: -- Time Spent Zerotorescue@0: if self.db.profile.trackTimeSpent then Zerotorescue@0: timeStarted = GetTime(); Zerotorescue@0: end Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:MAIL_CLOSED() Zerotorescue@0: self:Debug("MAIL_CLOSED"); Zerotorescue@0: Zerotorescue@76: self:Summarize(true); Zerotorescue@0: Zerotorescue@0: self:Stop(); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:PLAYER_MONEY() Zerotorescue@0: -- Sending mail does not interest us, so only remember what we earned Zerotorescue@0: local currentGold = GetMoney(); Zerotorescue@0: Zerotorescue@0: if currentGold > previousGold then Zerotorescue@0: local goldEarned = ( currentGold - previousGold ); Zerotorescue@0: Zerotorescue@0: earned = ( earned + goldEarned ); Zerotorescue@0: Zerotorescue@0: updated = true; Zerotorescue@0: Zerotorescue@0: if self.db.profile.sessionSummary then Zerotorescue@0: sessionEarned = ( sessionEarned + goldEarned ); Zerotorescue@0: end Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: previousGold = currentGold; Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:BAG_UPDATE() Zerotorescue@0: -- Sending mail does not interest us, so only remember what we earned Zerotorescue@0: local freeSlotAvailable = self:GetNumFreeSlots(); Zerotorescue@0: Zerotorescue@0: if freeSlotAvailable < previousFreeSlotsAvailable then Zerotorescue@0: -- we lost a slot, so gained an item Zerotorescue@0: Zerotorescue@0: local gained = ( previousFreeSlotsAvailable - freeSlotAvailable ); Zerotorescue@0: Zerotorescue@0: itemsGained = ( itemsGained + gained ); Zerotorescue@0: Zerotorescue@0: updated = true; Zerotorescue@0: Zerotorescue@0: if self.db.profile.sessionSummary then Zerotorescue@0: sessionItemsgained = ( sessionItemsgained + gained ); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: --We may need the lines below if we get inaccurate counts Zerotorescue@0: -- previousFreeSlotsAvailable = ( previousFreeSlotsAvailable - gained ); Zerotorescue@0: --elseif freeSlotAvailable > previousFreeSlotsAvailable then Zerotorescue@0: -- an additional slot available, so we lost an item Zerotorescue@0: Zerotorescue@0: -- local lost = ( freeSlotAvailable - previousFreeSlotsAvailable ); Zerotorescue@0: Zerotorescue@0: -- previousFreeSlotsAvailable = ( previousFreeSlotsAvailable + lost ); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: previousFreeSlotsAvailable = freeSlotAvailable; Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:MAIL_INBOX_UPDATE() Zerotorescue@0: local numItems, _ = GetInboxNumItems(); Zerotorescue@0: Zerotorescue@0: if previousMailCount == nil then Zerotorescue@0: previousMailCount = numItems; Zerotorescue@0: else Zerotorescue@0: if numItems < previousMailCount then Zerotorescue@0: -- We lost a mail, which means we opened one without text Zerotorescue@0: Zerotorescue@0: --local opened = ( previousMailCount - numItems ); Zerotorescue@0: Zerotorescue@0: mailOpened = ( mailOpened + 1 ); Zerotorescue@0: Zerotorescue@0: updated = true; Zerotorescue@0: Zerotorescue@0: if self.db.profile.sessionSummary then Zerotorescue@0: sessionMailOpened = ( sessionMailOpened + 1 ); Zerotorescue@0: end Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: previousMailCount = numItems; Zerotorescue@0: end Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:MO_OPEN_COMPLETE() Zerotorescue@0: -- Only summarize when changed Zerotorescue@0: if updated then Zerotorescue@76: self:Summarize(false); Zerotorescue@0: Zerotorescue@0: updated = false; Zerotorescue@0: end Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:Stop() Zerotorescue@0: self:UnregisterEvent("MAIL_CLOSED"); Zerotorescue@0: Zerotorescue@0: -- Batch summary Zerotorescue@0: self:UnregisterMessage("MO_OPEN_COMPLETE"); Zerotorescue@0: Zerotorescue@0: -- Clear any var in the memory remaining Zerotorescue@0: Zerotorescue@0: -- Money Zerotorescue@0: self:UnregisterEvent("PLAYER_MONEY"); Zerotorescue@0: previousGold = nil; Zerotorescue@0: earned = nil; Zerotorescue@0: Zerotorescue@0: -- Items Zerotorescue@0: self:UnregisterEvent("BAG_UPDATE"); Zerotorescue@0: previousFreeSlotsAvailable = nil; Zerotorescue@0: itemsGained = nil; Zerotorescue@0: Zerotorescue@0: -- Mail Zerotorescue@0: self:UnregisterEvent("MAIL_INBOX_UPDATE"); Zerotorescue@0: previousMailCount = nil; Zerotorescue@0: mailOpened = nil; Zerotorescue@0: Zerotorescue@0: -- Time Spent Zerotorescue@0: timeStarted = nil; Zerotorescue@0: end Zerotorescue@0: Zerotorescue@76: function mod:Summarize(full) Zerotorescue@0: -- Message buffer, append details we have data for Zerotorescue@0: local printMessage = ""; Zerotorescue@0: Zerotorescue@76: local timeSpent, tempSessionTimeSpent; Zerotorescue@0: if timeStarted then Zerotorescue@78: timeSpent = ceil( GetTime() - timeStarted ); Zerotorescue@76: Zerotorescue@76: if self.db.profile.sessionSummary and self.db.profile.trackTimeSpent then Zerotorescue@76: tempSessionTimeSpent = ( sessionTimeSpent + timeSpent ); Zerotorescue@0: Zerotorescue@76: if full then Zerotorescue@76: -- Only remember the timespent when the mailbox is closed Zerotorescue@76: sessionTimeSpent = tempSessionTimeSpent; Zerotorescue@76: end Zerotorescue@0: end Zerotorescue@78: Zerotorescue@78: self:Debug(timeSpent); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: -- Did we record any mail being opened? Zerotorescue@0: if mailOpened and mailOpened > 0 then Zerotorescue@0: -- Time Spent Zerotorescue@1: if timeSpent and timeSpent > 0 then Zerotorescue@37: local timeSpentMinutes = floor( timeSpent / 60 ); Zerotorescue@37: local timeSpentSeconds = ( timeSpent % 60 ); Zerotorescue@37: if timeSpentMinutes ~= 0 then Zerotorescue@68: printMessage = printMessage .. format(L["Collected a total of %d mail within %d minutes and %d seconds."], mailOpened, timeSpentMinutes, timeSpentSeconds) .. " "; Zerotorescue@37: else Zerotorescue@76: printMessage = printMessage .. format(L["Collected a total of %d mail within %d seconds."], mailOpened, timeSpentSeconds) .. " "; Zerotorescue@37: end Zerotorescue@0: else Zerotorescue@68: printMessage = printMessage .. format(L["Collected a total of %d mail."], mailOpened) .. " "; Zerotorescue@0: end Zerotorescue@1: elseif timeSpent and timeSpent > 0 then Zerotorescue@37: local timeSpentMinutes = floor( timeSpent / 60 ); Zerotorescue@37: local timeSpentSeconds = ( timeSpent % 60 ); Zerotorescue@37: if timeSpentMinutes ~= 0 then Zerotorescue@78: printMessage = printMessage .. format(L["Spent %d minutes and %d seconds collecting mail."], timeSpentMinutes, timeSpentSeconds) .. " "; Zerotorescue@37: else Zerotorescue@78: printMessage = printMessage .. format(L["Spent %d seconds collecting mail."], timeSpentSeconds) .. " "; Zerotorescue@37: end Zerotorescue@37: end Zerotorescue@0: Zerotorescue@0: -- Did we record any items or gold being looted? Zerotorescue@0: if (itemsGained and itemsGained > 0) and (earned and earned > 0) then Zerotorescue@68: printMessage = printMessage .. format(L["You gained %d items and %s from this."], itemsGained, MailOpener:FormatMoney(earned)); Zerotorescue@0: elseif itemsGained and itemsGained > 0 then Zerotorescue@68: printMessage = printMessage .. format(L["You gained %d items from this."], itemsGained); Zerotorescue@0: elseif earned and earned > 0 then Zerotorescue@68: printMessage = printMessage .. format(L["You gained %s from this."], MailOpener:FormatMoney(earned)); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: -- Did we record anything? print that! Zerotorescue@0: if printMessage ~= "" then Zerotorescue@68: MailOpener:Print(printMessage); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@76: if self.db.profile.sessionSummary and ((sessionMailOpened and (not mailOpened or sessionMailOpened > mailOpened)) or (tempSessionTimeSpent and (not timeSpent or tempSessionTimeSpent > timeSpent)) or (sessionEarned and (not earned or sessionEarned > earned)) or (sessionItemsgained and (not itemsGained or sessionItemsgained > itemsGained))) then Zerotorescue@0: -- Message buffer, append details we have data for Zerotorescue@76: printMessage = L["(Session summary)"] .. " "; Zerotorescue@0: Zerotorescue@0: -- Did we record any mail being opened? Zerotorescue@0: if sessionMailOpened and sessionMailOpened > 0 then Zerotorescue@0: -- Time Spent Zerotorescue@76: if tempSessionTimeSpent and tempSessionTimeSpent > 0 then Zerotorescue@76: local timeSpentMinutes = floor( tempSessionTimeSpent / 60 ); Zerotorescue@76: local timeSpentSeconds = ( tempSessionTimeSpent % 60 ); Zerotorescue@37: if timeSpentMinutes ~= 0 then Zerotorescue@78: printMessage = printMessage .. format(L["Collected a total of %d mail within %d minutes and %d seconds this session."], sessionMailOpened, timeSpentMinutes, timeSpentSeconds) .. " "; Zerotorescue@37: else Zerotorescue@78: printMessage = printMessage .. format(L["Collected a total of %d mail within %d seconds this session."], sessionMailOpened, timeSpentSeconds) .. " "; Zerotorescue@37: end Zerotorescue@0: else Zerotorescue@68: printMessage = printMessage .. format(L["Collected a total of %d mail this session."], sessionMailOpened) .. " "; Zerotorescue@0: end Zerotorescue@76: elseif tempSessionTimeSpent then Zerotorescue@76: local timeSpentMinutes = floor( tempSessionTimeSpent / 60 ); Zerotorescue@76: local timeSpentSeconds = ( tempSessionTimeSpent % 60 ); Zerotorescue@37: if timeSpentMinutes ~= 0 then Zerotorescue@78: printMessage = printMessage .. format(L["Spent %d minutes and %d seconds collecting mail this session."], timeSpentMinutes, timeSpentSeconds) .. " "; Zerotorescue@37: else Zerotorescue@78: printMessage = printMessage .. format(L["Spent %d seconds collecting mail this session."], timeSpentSeconds) .. " "; Zerotorescue@37: end Zerotorescue@37: end Zerotorescue@37: Zerotorescue@0: -- Did we record any items or gold being looted? Zerotorescue@0: if (sessionItemsgained and sessionItemsgained > 0) and (sessionEarned and sessionEarned > 0) then Zerotorescue@68: printMessage = printMessage .. format(L["You gained %d items and %s from this."], sessionItemsgained, MailOpener:FormatMoney(sessionEarned)); Zerotorescue@0: elseif sessionItemsgained and sessionItemsgained > 0 then Zerotorescue@68: printMessage = printMessage .. format(L["You gained %d items from this."], sessionItemsgained); Zerotorescue@0: elseif sessionEarned and sessionEarned > 0 then Zerotorescue@68: printMessage = printMessage .. format(L["You gained %s from this."], MailOpener:FormatMoney(sessionEarned)); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: -- Did we record anything? print that! Zerotorescue@0: if printMessage ~= "" then Zerotorescue@68: MailOpener:Print(printMessage); Zerotorescue@0: end Zerotorescue@0: end Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:GetNumFreeSlots() Zerotorescue@0: local slotsAvailable = 0; Zerotorescue@0: for bag = 0, 4 do Zerotorescue@0: slotsAvailable = ( slotsAvailable + GetContainerNumFreeSlots(bag) ); Zerotorescue@0: end Zerotorescue@0: Zerotorescue@0: return slotsAvailable; Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:GetOptionsGroup() Zerotorescue@0: local configGroup = { Zerotorescue@31: order = 0, Zerotorescue@31: type = "modulesSubGroup", Zerotorescue@68: name = L["Collected"], Zerotorescue@68: desc = L["Change settings for the collected module."], Zerotorescue@0: args = { Zerotorescue@0: General = { Zerotorescue@0: order = 10, Zerotorescue@0: type = "group", Zerotorescue@0: inline = true, Zerotorescue@68: name = L["General"], Zerotorescue@0: args = { Zerotorescue@0: description = { Zerotorescue@0: order = 10, Zerotorescue@0: type = "description", Zerotorescue@0: name = function() Zerotorescue@68: local descText = L["With this button you can completely toggle this module |cff00ff00on|r or |cffff0000off|r. This setting will be remembered and the module will be automatically toggled |cff00ff00on|r or |cffff0000off|r upon logon as it was last set."] .. "\n\n"; Zerotorescue@0: Zerotorescue@0: if self:IsEnabled() then Zerotorescue@68: descText = descText .. L["Status: %s"]:format(L["|cff00ff00Enabled|r"]); Zerotorescue@0: else Zerotorescue@68: descText = descText .. L["Status: %s"]:format(L["|cffff0000Disabled|r"]); Zerotorescue@0: end Zerotorescue@31: Zerotorescue@31: return descText; Zerotorescue@0: end, Zerotorescue@0: }, Zerotorescue@0: disable = { Zerotorescue@0: order = 20, Zerotorescue@0: type = "execute", Zerotorescue@0: name = function() Zerotorescue@0: if self:IsEnabled() then Zerotorescue@68: return L["Disable Module"]; Zerotorescue@0: else Zerotorescue@68: return L["Enable Module"]; Zerotorescue@0: end Zerotorescue@0: end, Zerotorescue@68: desc = L["Click here to completely toggle this module on or off."], Zerotorescue@0: width = "double", Zerotorescue@0: func = function() Zerotorescue@0: if self:IsEnabled() then Zerotorescue@0: self:Disable(); Zerotorescue@0: Zerotorescue@0: MailOpener.db.profile.modules[self:GetName()] = false; Zerotorescue@0: else Zerotorescue@0: self:Enable(); Zerotorescue@0: Zerotorescue@0: MailOpener.db.profile.modules[self:GetName()] = true; Zerotorescue@0: end Zerotorescue@0: end, Zerotorescue@0: }, Zerotorescue@0: }, Zerotorescue@0: }, Zerotorescue@0: TrackStats = { Zerotorescue@0: order = 20, Zerotorescue@0: type = "group", Zerotorescue@0: inline = true, Zerotorescue@68: name = L["Track Stats"], Zerotorescue@0: args = { Zerotorescue@0: description = { Zerotorescue@0: order = 10, Zerotorescue@0: type = "description", Zerotorescue@68: name = L["You can select what things to track. Toggling something off will stop tracking of it completely and reduce the resources used by Mail Opener (although you shouldn't notice a difference)."], Zerotorescue@0: }, Zerotorescue@0: AHHeader = { Zerotorescue@0: order = 15, Zerotorescue@0: type = "header", Zerotorescue@0: name = "", Zerotorescue@0: }, Zerotorescue@0: trackGold = { Zerotorescue@0: order = 20, Zerotorescue@0: type = "toggle", Zerotorescue@68: name = L["Track |cfffed000gold gained|r"], Zerotorescue@68: desc = L["Track the amount of gold gained and display it when closing the mailbox."], Zerotorescue@0: set = function(i, v) Zerotorescue@0: self.db.profile.trackGold = v; Zerotorescue@0: Zerotorescue@0: if MailFrame:IsVisible() then Zerotorescue@0: self:MAIL_SHOW(); Zerotorescue@0: end Zerotorescue@0: end, Zerotorescue@0: get = function() return self.db.profile.trackGold; end, Zerotorescue@0: }, Zerotorescue@0: trackItems = { Zerotorescue@0: order = 30, Zerotorescue@0: type = "toggle", Zerotorescue@68: name = L["Track |cfffed000items gained|r"], Zerotorescue@68: desc = L["Track the amount of items gained and display it when closing the mailbox."], Zerotorescue@0: set = function(i, v) Zerotorescue@0: self.db.profile.trackItems = v; Zerotorescue@0: Zerotorescue@0: if MailFrame:IsVisible() then Zerotorescue@0: self:MAIL_SHOW(); Zerotorescue@0: end Zerotorescue@0: end, Zerotorescue@0: get = function() return self.db.profile.trackItems; end, Zerotorescue@0: }, Zerotorescue@0: trackMail = { Zerotorescue@0: order = 40, Zerotorescue@0: type = "toggle", Zerotorescue@68: name = L["Track |cfffed000mail opened|r"], Zerotorescue@68: desc = L["Track the amount of mail received and display it when closing the mailbox."], Zerotorescue@0: set = function(i, v) Zerotorescue@0: self.db.profile.trackMail = v; Zerotorescue@0: Zerotorescue@0: if MailFrame:IsVisible() then Zerotorescue@0: self:MAIL_SHOW(); Zerotorescue@0: end Zerotorescue@0: end, Zerotorescue@0: get = function() return self.db.profile.trackMail; end, Zerotorescue@0: }, Zerotorescue@0: trackTimeSpent = { Zerotorescue@0: order = 50, Zerotorescue@0: type = "toggle", Zerotorescue@68: name = L["Track |cfffed000time spent|r"], Zerotorescue@68: desc = L["Track the amount of time spent at the mailbox."], Zerotorescue@0: set = function(i, v) Zerotorescue@0: self.db.profile.trackTimeSpent = v; Zerotorescue@0: Zerotorescue@0: if MailFrame:IsVisible() then Zerotorescue@0: self:MAIL_SHOW(); Zerotorescue@0: end Zerotorescue@0: end, Zerotorescue@0: get = function() return self.db.profile.trackTimeSpent; end, Zerotorescue@0: }, Zerotorescue@0: }, Zerotorescue@0: }, Zerotorescue@0: Summarize = { Zerotorescue@0: order = 30, Zerotorescue@0: type = "group", Zerotorescue@0: inline = true, Zerotorescue@68: name = L["Summarize"], Zerotorescue@0: args = { Zerotorescue@0: sessionSummary = { Zerotorescue@0: order = 20, Zerotorescue@0: type = "toggle", Zerotorescue@68: name = L["Also show a summary of the recorded stats within the entire session"], Zerotorescue@68: desc = L["Also show a summary of the recorded stats within the entire session (since your last login or /reload)."], Zerotorescue@0: set = function(i, v) Zerotorescue@0: self.db.profile.sessionSummary = v; Zerotorescue@0: Zerotorescue@0: if MailFrame:IsVisible() then Zerotorescue@0: self:MAIL_SHOW(); Zerotorescue@0: end Zerotorescue@0: end, Zerotorescue@0: get = function() return self.db.profile.sessionSummary; end, Zerotorescue@0: width = "full", Zerotorescue@0: }, Zerotorescue@0: batchSummary = { Zerotorescue@0: order = 30, Zerotorescue@0: type = "toggle", Zerotorescue@68: name = L["Show a summary of the recorded stats whenever it updated after opening the current batch has finished"], Zerotorescue@68: desc = L["Show a summary of the recorded stats whenever it has been updated after opening the current batch of mails has finished."], Zerotorescue@0: set = function(i, v) Zerotorescue@0: self.db.profile.batchSummary = v; Zerotorescue@0: Zerotorescue@0: if MailFrame:IsVisible() then Zerotorescue@0: self:MAIL_SHOW(); Zerotorescue@0: end Zerotorescue@0: end, Zerotorescue@0: get = function() return self.db.profile.batchSummary; end, Zerotorescue@0: width = "full", Zerotorescue@0: }, Zerotorescue@0: }, Zerotorescue@0: }, Zerotorescue@0: }, Zerotorescue@0: }; Zerotorescue@0: Zerotorescue@0: return configGroup; Zerotorescue@0: end Zerotorescue@0: Zerotorescue@31: function mod:Debug(t) Zerotorescue@0: return MailOpener:Debug("|cffff0000Collected|r:" .. t); Zerotorescue@0: end