master
1// ________ _________
2// \________\--------___ ___ ____----------/_________/
3// \_______\----\\\\\\ //_ _ \\ //////-------/________/
4// \______\----\\|| (( ~|~ ))) ||//------/________/
5// \_____\---\\ ((\ = / ))) //----/_____/
6// \____\--\_))) \ _)))---/____/
7// \__/ ((( (((_/
8// ヾღ彡 | -))) - ))
9// =================================================================
10// acct_sum.js
11// -----------------------------------------------------------------
12// author: @archangel
13// SEC LVL: 3 -- WARNING --
14// Chars: 1330
15// Descr: Returns formated inforamtion from your transaction log
16// Syntax: acct_sum{from:"starting timecode" , to:"ending timecode"}
17// Syntax: acct_sum{count:_int}
18// Syntax: acct_sum{count:"all"}
19// =================================================================
20
21function (context, args)
22{
23 //{from:"starting timecode" , to:"ending timecode"}
24
25 // we'll wrap the analytics in a try-catch, so that a failure during recording doesn't break the rest of the script
26 try
27 {
28 // Those calls are for logging purposes. Check dtr.man{page:"soron.arch_data"} and dtr.man{page:"ada.haxfax"} in-game for more info.
29 #s.soron.arch_data({log:{c:context}});
30 #s.ada.haxfax({log:{c:context}});
31 }
32 catch (e)
33 {
34 // oh well, we can live with this. Congrats, user-who-is-not-tracked!
35 }
36
37 //SEC LVL 3
38 var trans = #s.accts.transactions({count:"all"});
39 var results = [];
40 var ret;
41 var earned = 0;
42 var m_earned = 0;
43 var spent = 0;
44 var m_spent = 0;
45 var net = 0;
46 var l = #s.scripts.lib();
47
48 if(args.count)
49 {
50 if (args.count == "all")
51 {
52 results = trans;
53 }
54 else
55 {
56 for (var i=0; i<args.count; i++)
57 {
58 results.push(trans[i]);
59 }
60 }
61
62 }
63 else
64 {
65 for (var i=0; i<trans.length; i++)
66 {
67 if (l.to_game_timestr(trans[i].time)>=args.from && l.to_game_timestr(trans[i].time)<=args.to)
68 results.push(trans[i]);
69 }
70 }
71
72 ret = "Range from\t: " + args.from + "\nRange to\t: " + args.to +"\n\n";
73
74 for (var i=0; i<results.length; i++)
75 {
76 ret += (results[i].memo) ? "[M]\t" : "\t";
77 //ret += "\t" + results[i].time + "\t\t";
78 ret += "\t" + l.to_game_timestr(results[i].time) + "\t\t";
79 if(results[i].sender == context.caller)
80 {
81 ret += "`D-`";
82 spent += results[i].amount;
83 m_spent += (results[i].memo) ? results[i].amount : 0;
84 }
85 else
86 {
87 ret += "`2+`";
88 earned += results[i].amount;
89 m_earned += (results[i].memo) ? results[i].amount : 0;
90 }
91 ret += l.to_gc_str(results[i].amount) + "\n";
92 }
93
94 net = earned - spent;
95
96 ret += "\n" + "=".repeat(40) + "\n"
97 ret += "\nEarned total\t:\t\t" + l.to_gc_str(earned).toString() + "\n[M]Earned total\t:\t\t" + l.to_gc_str(m_earned) + "\n[!M]Earned total:\t\t" + l.to_gc_str(earned - m_earned) + "\nSpent total\t\t:\t\t" + l.to_gc_str(spent) + "\n[M]Spent total\t:\t\t" + l.to_gc_str(m_spent) + "\n[!M]Spent total\t:\t\t" + l.to_gc_str(spent - m_spent) +"\nNet total\t\t:\t\t" + l.to_gc_str(net) +"\n"
98
99 return ret;
100}