Analyst
About Analyst
Analyst collects information about the virtual economy and presents that information to the player. In its Economy panel, Analyst answers questions such as the following:
- How much gold did I earn and how?
- How much gold did I spend and on what?
- How am I doing in the auction house?
- What have I looted from mobs?
- What items did I consume?
- What items did I produce?
- How many currencies (marks, badges, emblems) have I collected?
- What have I deposited or withdrawn from the guild bank?
- What is my gathering and crafting activity?
- ... and much more
All reports can be shown over a configurable period (days, weeks, month).
Screenshots
The Economy panel lets you choose between the various reports offered by Analyst. Also, the reporting period of time can be chosen. Central information is displayed in the top frame. Data from two selected reports in shown in the bottom frames.
For the This Week report, the start day of week can be configured in the options. For example, a raid player may want to set the start day of week to the beginning of the raid ID period.
If you mouseover a statistic item, a tooltip provides detailed drill-down information on that statistic:
Usage
If you have a Lightweight Data Broker (LDB) container add-on such as Titan Panel, Analyst shows in that container. Left-clicking the Analyst icon toggles the Economy panel; right-clicking the icon shows the options.
If you do not have an LDB container, type /analyst economy to toggle the Economy panel and /analyst options to show the options.
Analyst provides a key binding to toggle the Economy panel. You may want to assign a key to that binding to gain quick access to Analyst.
There seems to be a lua error since 5.4.1 that I've tracked to Analyst. It only happens when I have analyst enabled. Steps to reproduce;
Addons enabled: Analyst, Bugsack, Bug Grabber, Bazooka.
Login, check buggrabber for errors (none)
Show Map (hit "M") and an error pops up asking to disable the addon.
"Analyst has been blocked from an action only available to the Blizzard UI. You can disable this addon and reload the UI."
Bugsack info:
1x [ADDON_ACTION_FORBIDDEN] AddOn "Analyst" tried to call the protected function "IsDisabledByParentalControls()".
!BugGrabber-r198-release\BugGrabber.lua:552: in function <!BugGrabber\BugGrabber.lua:552>
<in C code>
FrameXML\MainMenuBarMicroButtons.lua:229: in function "UpdateMicroButtons"
FrameXML\WorldMapFrame.lua:272: in function <FrameXML\WorldMapFrame.lua:255>
<in C code>
FrameXML\UIParent.lua:1819: in function "SetUIPanel"
FrameXML\UIParent.lua:1624: in function "ShowUIPanel"
FrameXML\UIParent.lua:1545: in function <FrameXML\UIParent.lua:1541>
<in C code>
FrameXML\UIParent.lua:2262: in function "ShowUIPanel"
FrameXML\UIParent.lua:2246: in function "ToggleFrame"
<string>:"TOGGLEWORLDMAP":1: in function <string>:"TOGGLEWORLDMAP":1
Locals:
nil
If I only have Analyst, Bugsack and Buggrabber loading the error doesn't happen. So it must be something to do with the databroker display in conjunction with Bazooka. However, if I load every addon (dozens of them) but not Analyst I get no error.
Really nice addon :)
Would be nice with a Total view besides the month/week/day/session views
To avoid LUA errors in patch 5.0.4 you will need to edit Analyst/Capture.lua by changing GetNumPartyMembers() to GetNumGroupMembers() and removing GetNumRaidMembers().
ie. This:
to this:
There are two instances in the functions Analyst:CHAT_MSG_MONEY (line 609) and Analyst:CHAT_MSG_LOOT (line 623).
Thanks for posting! An update will be out shortly!
In order to do its biddig, Analyst passively hooks numerous functions and listens to numerous events. None of them are specifically tied to the death of a mob, though. UNIT_DEATH is not even included in the events that Analyst listens to. So, I assume this is an undesired side effect. If you can gain any additional profiling insight into what function exactly consumes the CPU cycles, that would be much appreciated.
Date: 2011-04-19 13:32:16
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Analyst\Capture.lua line 2096:
bad argument #1 to 'find' (string expected, got nil)
Debug:
[C]: ?
[C]: find()
Analyst\Capture.lua:2096: GetEnchantString()
Analyst\Capture.lua:988:
Analyst\Capture.lua:948
(tail call): ?
[C]: DoTradeSkill()
GnomeWorks\MainWindow.lua:2042:
GnomeWorks\MainWindow.lua:2032
AddOns:
Swatter, v5.9.4960 (WhackyWallaby)
WowheadLooter, v40015
Afterlife, v40000-R3
Altoholic, v4.0.006b
Analyst, v1.1.2
Arh, v0.91
ArkInventory, v3.02
ArkInventoryRules, v
Atlas, v1.18.3
AtlasBattlegrounds, v1.18.3
AtlasDungeonLocs, v1.18.3
AtlasOutdoorRaids, v1.18.3
AtlasTransportation, v1.18.3
AtlasWorldEvents, v2.0
AtlasLootLoader, vv6.03.00-beta3
AucAdvanced, v5.9.4960 (WhackyWallaby)
AucFilterBasic, v5.9.4960 (WhackyWallaby)
AucFilterOutlier, v5.9.4960.2531
AucMatchUndercut, v5.9.4960.2531
AucScanData, v5.9.4960 (WhackyWallaby)
AucStatHistogram, v5.9.4960 (WhackyWallaby)
AucStatiLevel, v5.9.4960 (WhackyWallaby)
AucStatPurchased, v5.9.4960 (WhackyWallaby)
AucStatSales, v5.9.4960.2842
AucStatSimple, v5.9.4960 (WhackyWallaby)
AucStatStdDev, v5.9.4960 (WhackyWallaby)
AucStatWOWEcon, v5.9.4960.2530
AucUtilAHWindowControl, v5.9.4960.3311
AucUtilAppraiser, v5.9.4960.2530
AucUtilAskPrice, v5.9.4960.3175
AucUtilAutoMagic, v5.9.4960.3142
AucUtilCompactUI, v5.9.4960.2530
AucUtilEasyBuyout, v5.9.4960.3583
AucUtilFixAH, v5.9.4960 (WhackyWallaby)
AucUtilGlypher, v5.9.4960.2545
AucUtilItemSuggest, v5.9.4960.3108
AucUtilPriceLevel, v5.9.4960.2545
AucUtilScanButton, v5.9.4960.2530
AucUtilScanFinish, v5.9.4960.2530
AucUtilScanProgress, v5.9.4960.2530
AucUtilScanStart, v5.9.4960.4819
AucUtilSearchUI, v5.9.4960.3655
AucUtilSimpleAuction, v5.9.4960.4546
AucUtilVendMarkup, v5.9.4960.2530
Babylonian, v5.1.DEV.130
BeanCounter, v5.9.4960 (WhackyWallaby)
Carbonite, v4.034
CarboniteTransfer, v1.01
Configator, v5.1.DEV.282
DataStore, v4.0.001
DataStoreAchievements, v4.0.001
DataStoreAuctions, v4.0.001
DataStoreCharacters, v4.0.006
DataStoreContainers, v4.0.001
DataStoreCrafts, v4.0.001
DataStoreCurrencies, v4.0.001
DataStoreInventory, v4.0.005b
DataStoreMails, v4.0.001
DataStorePets, v4.0.001
DataStoreQuests, v4.0.001
DataStoreReputations, v4.0.001
DataStoreSpells, v4.0.001
DataStoreStats, v4.0.001
DataStoreTalents, v4.0.001
DBMBurningCrusade, v
DBMCore, v
DebugLib, v5.1.DEV.275
Enchantrix, v5.9.4960 (WhackyWallaby)
EnchantrixBarker, v5.9.4960 (WhackyWallaby)
FishingBuddy, v1.0.2 Beta 1
GatherMate2, v1.12
GearScore, v4.4.03
GnomeWorks, v144
Informant, v5.9.4960 (WhackyWallaby)
LightHeaded, v330
LilSparkysWorkshop, v
MarketWatcher, v2.11
Overachiever, v0.62
OverachieverTrade, v0.62
Postal, v3.4.4
Recount, v
SlideBar, v5.9.4960 (WhackyWallaby)
SmartBuff, v4.0g
SmartDebuff, v4.0g
Stubby, v5.9.4960 (WhackyWallaby)
SuperDuperMacro, v1.8.3
TelUIAddonSkins, v1.0-109
TradeSkillMaster, vv0.1.7Beta
TradeSkillMasterAuctionDB, vv0.2.2Beta
TradeSkillMasterAuctioning, vv0.2.2Beta
TradeSkillMasterCrafting, vv0.2.7Beta
TradeSkillMasterGathering, vv0.2.0.1Beta
TradeSkillMasterMailing, vv0.1.1Beta
TradeSkillMasterShopping, vv0.2.2Beta
Tukui, v13.04
TukuiClassTimer, v3.02
TukuiDBM, v
TukuiRaid, v
BlizRuntimeLib_enUS v4.0.6.40000 <eu>
(ck=bdd)
Other than that, great addon. Thanks.
It says "total gold gained: 332", "total gold spent: 50", Total currency gained 29" ?! Surely that's 282 gained?!
I am trying to get the addon to create the lists 4 lifetime. Could you help me on this issue.
For ex. you killed 36 different types of mobs. Instead of keeping the top ten, have all of them in the tooltip. Is there a way to do that?
Thanks ahead of time
Very Avid Fan
For your enjoyment - save for up to 450 days ...
in Locale\Local-enUS.lua, change this:
-- Periods
L["SESSION"] = "Session"
L["TODAY"] = "Today"
L["YESTERDAY"] = "Yesterday"
L["THIS_WEEK"] = "This Week"
L["THIS_MONTH"] = "This Month"
L["LAST_7_DAYS"] = "Last 7 Days"
L["LAST_30_DAYS"] = "Last 30 Days"
To this:
-- Periods
L["SESSION"] = "Session"
L["TODAY"] = "Today"
L["YESTERDAY"] = "Yesterday"
L["THIS_WEEK"] = "This Week"
L["THIS_MONTH"] = "This Month"
L["LAST_7_DAYS"] = "Last 7 Days"
L["LAST_30_DAYS"] = "Last 30 Days"
L["LAST_60_DAYS"] = "Last 60 Days"
L["LAST_90_DAYS"] = "Last 90 Days"
L["LAST_120_DAYS"] = "Last 120 Days"
L["LAST_150_DAYS"] = "Last 150 Days"
L["LAST_180_DAYS"] = "Last 180 Days"
L["LAST_270_DAYS"] = "Last 270 Days"
L["LAST_360_DAYS"] = "Last 360 Days"
L["LAST_450_DAYS"] = "Last 450 Days"
In the main Analyst.lua file, increase the data lifetime. Change this:
ANALYST_DATA_LIFETIME = 30
To this:
ANALYST_DATA_LIFETIME = 450
This next one is a little more involved. In EconomyFrame.lua, change this:
-- Periods
ANALYST_PERIOD_SESSION = "SESSION"
ANALYST_PERIOD_TODAY = "TODAY"
ANALYST_PERIOD_YESTERDAY = "YESTERDAY"
ANALYST_PERIOD_THIS_WEEK = "THIS_WEEK"
ANALYST_PERIOD_THIS_MONTH = "THIS_MONTH"
ANALYST_PERIOD_LAST_7_DAYS = "LAST_7_DAYS"
ANALYST_PERIOD_LAST_30_DAYS = "LAST_30_DAYS"
To this:
-- Periods
ANALYST_PERIOD_SESSION = "SESSION"
ANALYST_PERIOD_TODAY = "TODAY"
ANALYST_PERIOD_YESTERDAY = "YESTERDAY"
ANALYST_PERIOD_THIS_WEEK = "THIS_WEEK"
ANALYST_PERIOD_THIS_MONTH = "THIS_MONTH"
ANALYST_PERIOD_LAST_7_DAYS = "LAST_7_DAYS"
ANALYST_PERIOD_LAST_30_DAYS = "LAST_30_DAYS"
ANALYST_PERIOD_LAST_60_DAYS = "LAST_60_DAYS"
ANALYST_PERIOD_LAST_90_DAYS = "LAST_90_DAYS"
ANALYST_PERIOD_LAST_120_DAYS = "LAST_120_DAYS"
ANALYST_PERIOD_LAST_150_DAYS = "LAST_150_DAYS"
ANALYST_PERIOD_LAST_180_DAYS = "LAST_180_DAYS"
ANALYST_PERIOD_LAST_270_DAYS = "LAST_270_DAYS"
ANALYST_PERIOD_LAST_360_DAYS = "LAST_360_DAYS"
ANALYST_PERIOD_LAST_450_DAYS = "LAST_450_DAYS"
and this:
ANALYST_PERIODS = {
ANALYST_PERIOD_SESSION,
ANALYST_PERIOD_TODAY,
ANALYST_PERIOD_YESTERDAY,
ANALYST_PERIOD_THIS_WEEK,
ANALYST_PERIOD_THIS_MONTH,
ANALYST_PERIOD_LAST_7_DAYS,
ANALYST_PERIOD_LAST_30_DAYS
to this:
ANALYST_PERIODS = {
ANALYST_PERIOD_SESSION,
ANALYST_PERIOD_TODAY,
ANALYST_PERIOD_YESTERDAY,
ANALYST_PERIOD_THIS_WEEK,
ANALYST_PERIOD_THIS_MONTH,
ANALYST_PERIOD_LAST_7_DAYS,
ANALYST_PERIOD_LAST_30_DAYS,
ANALYST_PERIOD_LAST_60_DAYS,
ANALYST_PERIOD_LAST_90_DAYS,
ANALYST_PERIOD_LAST_120_DAYS,
ANALYST_PERIOD_LAST_150_DAYS,
ANALYST_PERIOD_LAST_180_DAYS,
ANALYST_PERIOD_LAST_270_DAYS,
ANALYST_PERIOD_LAST_360_DAYS,
ANALYST_PERIOD_LAST_450_DAYS,
And the last change - change this (@ line 227):
elseif period == ANALYST_PERIOD_THIS_MONTH then
local dayOfMonth = tonumber(date("%d", today))
start = today - (dayOfMonth - 1) * 86400
elseif period == ANALYST_PERIOD_LAST_7_DAYS then
start = today - 6 * 86400
elseif period == ANALYST_PERIOD_LAST_30_DAYS then
start = today - 29 * 86400
To this:
elseif period == ANALYST_PERIOD_THIS_MONTH then
local dayOfMonth = tonumber(date("%d", today))
start = today - (dayOfMonth - 1) * 86400
elseif period == ANALYST_PERIOD_LAST_7_DAYS then
start = today - 6 * 86400
elseif period == ANALYST_PERIOD_LAST_30_DAYS then
start = today - 29 * 86400
elseif period == ANALYST_PERIOD_LAST_60_DAYS then
start = today - 60 * 86400
elseif period == ANALYST_PERIOD_LAST_90_DAYS then
start = today - 90 * 86400
elseif period == ANALYST_PERIOD_LAST_120_DAYS then
start = today - 120 * 86400
elseif period == ANALYST_PERIOD_LAST_150_DAYS then
start = today - 150 * 86400
elseif period == ANALYST_PERIOD_LAST_180_DAYS then
start = today - 180 * 86400
elseif period == ANALYST_PERIOD_LAST_270_DAYS then
start = today - 270 * 86400
elseif period == ANALYST_PERIOD_LAST_360_DAYS then
start = today - 360 * 86400
elseif period == ANALYST_PERIOD_LAST_450_DAYS then
start = today - 450 * 86400
That being said i would like to ask you something:
1. Can you provide statistics for more than 30days or is it Blizz API that forbids it ?
2. Is there any tool that i can export the data outside wow รก la Google stats ?
Thanks yet again, keep up your good work!
(Perhaps it should monitor total gold, and put changes it can't identify into 'other' so any other new rewards/costs get detected automatically?)
Ticket Created.