Played time recording add-on for World of Warcraft, with out-of-game visualization script. It keeps a record of your total playing time for each day, for each of your characters.
The add-on is located in the TitanPlayed/ folder
This add-on requires TitanPanel .
The add-on will appear as a right-only icon on the Titan bar of your choice. When the mouse is over this icon, a tooltip showing the /played time of all your characters will be shown.
The /played time of the current character will be recorded:
- on log in
- on log out
- each time the tooltip is displayed
- each time the /played command is executed
- before each loading screen
Note: Only one /played time is recorded for each day for each character
Copy the folder TitanPlayed/ into the Interface/AddOns/ subfolder of your World of Warcraft instance.
The scripts/ folder contains the various visualization scripts available.
The data saved by the TitanPlayed is located at WTF/Account/<your_account_name>/SavedVariables/TitanPlayed.lua
Here is an example of such file (from the file scripts/example.lua):
TitanPlayedTimes = {
["Bob"] = {
["sessions"] = {
[1348012800] = {
["money"] = 15000000,
["played"] = 439874,
["ilvl"] = {
["Standard"] = 450,
},
},
[1348444800] = {
["money"] = 20000000,
["played"] = 441001,
["ilvl"] = {
["Standard"] = 470,
},
},
},
["last"] = 1348444800,
["class"] = "HUNTER",
["level"] = 10,
["levels_history"] = {
1348012800, -- [1]
1348012900, -- [2]
1348013000, -- [3]
1348013100, -- [4]
1348013200, -- [5]
1348013300, -- [6]
1348013400, -- [7]
1348013500, -- [8]
1348013600, -- [9]
1348013700, -- [10]
},
},
["John"] = {
["sessions"] = {
[1348012800] = {
["money"] = 8000000,
["played"] = 339784,
["ilvl"] = {
["Standard"] = 460,
},
},
[1348185600] = {
["money"] = 16000000,
["played"] = 345900,
["ilvl"] = {
["Standard"] = 480,
},
},
[1348272000] = {
["money"] = 33000000,
["played"] = 349877,
["ilvl"] = {
["Standard"] = 490,
},
},
[1348358400] = {
["money"] = 50000000,
["played"] = 353909,
["ilvl"] = {
["Standard"] = 510,
},
},
[1348444800] = {
["money"] = 100000000,
["played"] = 355062,
["ilvl"] = {
["Standard"] = 525,
},
},
},
["last"] = 1348444800,
["class"] = "WARRIOR",
["level"] = 5,
["levels_history"] = {
1348185650, -- [1]
1348271000, -- [2]
1348358600, -- [3]
1348444800, -- [4]
1348444890, -- [5]
},
},
}
Here we have two characters (Bob, a hunter, and John, a warrior). Bob played on two different days (represented by the number of seconds since 0 hours, 0 minutes, 0 seconds, January 1, 1970, Coordinated Universal Time): 1348012800 (2012/9/19) and 1348444800 (2012/9/24).
On 2012/9/19, the /played time of Bob was 439874 (seconds) and on 2012/9/24 it was 440001. Therefore, Bob played 441001 - 439874 = 1127 seconds = 18 minutes and 47 seconds on 2012/9/24.
For convenience, the last entry indicates which day is the last one.
The file also contains the current level of the character, and the timestamps at which he leveled up.
For each play sessions, the amount of gold is also saved.
Usage: ./plot-html.py <your_data_file> [<dest_folder>]
The default value for dest_folder is ./html
.
It will produce a web page in dest_folder (complete with CSS and JavaScript files) displaying various interactive graphs:
- the time played each day on each character
- your total fortune
- the daily activity of your fortune
- your activity per day
- the progression of the iLevel of your characters
- your percentage time played with each character for various periods
If you want to ignore some characters, or to change their colors, you can copy the file settings_example.py (your copy must be called settings.py and be located alongside the plot-html.py script) and modify it to your liking.
You can customize the generated HTML page by modifying the template located at: scripts/templates/index.html.
Note: This script requires matplotlib and numpy
Usage: ./plot-stats.py <your_data_file>
It will produce an image (stats-played.png) containing a graph showing your activity per character:
If you want to ignore some characters, or to change their colors, you can copy the file settings_example.py (your copy must be called settings.py and be located alongside the plot-stats.py script) and modify it to your liking.
TitanPlayed is is made available under the MIT License. The text of the license is in the file 'LICENSE'.
Under the MIT License you may use TitanPlayed for any purpose you wish, without warranty, and modify it if you require, subject to one condition:
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."
In practice this means that whenever you distribute your application, whether as binary or as source code, you must include somewhere in your distribution the text in the file 'LICENSE'. This might be in the printed documentation, as a file on delivered media, or even on the credits / acknowledgements of the runtime application itself; any of those would satisfy the requirement.
Even if the license doesn't require it, please consider to contribute your modifications back to the community.