source: lliurex-analytics-server/trunk/fuentes/lliurex-analytics-server/usr/lib/analytics-server/analytics/functions.php @ 6819

Last change on this file since 6819 was 6819, checked in by mabarracus, 19 months ago

Fix test suite
Consolidation daemon ported to python3
Avoid daemon running with multiple instances
Fixes indent,sizes in fonts and graphics
System stats visualization page
Minimized javascript files
New cache for visualization graphs minimizing overloading and DoS attacks
Improved scheduler with clients sending 10+ results
Support to provide blacklist
Support to platform data

File size: 5.5 KB
Line 
1<?php 
2function call_bd(){
3        return function($request,$response,$service){
4                $data=json_decode($request->stats,true);
5               
6                $db = new DB;
7                $db->connect();
8                try{
9                        if (isset($data['vers'])){
10                            $version=trim($data['vers']);
11                        }else{
12                            return 'NOK';
13                        }
14                        if (isset($data['sab'])){
15                            $sabor=trim($data['sab']);
16                        }else{
17                            return 'NOK';
18                        }
19                        if (isset($data['uid'])){
20                            $uid=trim($data['uid']);
21                        }else{
22                            return 'NOK';
23                        }
24                        if ($version == '' or $sabor == '' or $uid == ''){
25                            return 'NOK';
26                        }
27                        if (isset($data['specs'])){
28                            $specs=$data['specs'];
29                        }else{
30                            $specs=false;
31                        }
32                        if (isset($data['date'])){
33                            $db->send_data($uid,$version,$sabor,json_decode($data['stats'],true),$specs,$data['date']);
34                        }else{
35                            $db->send_data($uid,$version,$sabor,json_decode($data['stats'],true),$specs);
36                        }
37                }catch (Exception $e){
38                        //error_log($e);
39                        $db->disconnect();
40                        return 'NOK';
41                }
42                $db->disconnect();
43                return 'OK';
44        };
45}
46function call_get_stats(){
47        return function($request,$reponse,$service){
48
49                $db = new DB;
50                $db->connect();
51                echo $db->get_historic_data();
52                $db->disconnect();
53        };
54}
55
56function call_get_system_stats(){
57    return function($request,$response,$service){
58        $db = new DB;
59        $db->connect();
60        echo $db->get_system_data();
61        $db->disconnect();
62    };
63}
64
65function call_get_extended_stats(){
66        return function($request,$reponse,$service){
67                $app=$request->param('app');
68                $db = new DB;
69                $db->connect();
70                echo $db->get_extended_data($app);
71                $db->disconnect();
72        };
73}
74
75function call_getlist(){
76        return function($request,$reponse,$service){
77                $list = array();
78                $the_file = 'blacklist.txt';
79                if ( !is_file($the_file)) {
80                    return json_encode($list);
81                }
82                try{
83                    $content = file_get_contents('blacklist.txt');
84                    foreach (explode("\n",$content) as $item){
85                        $item = trim($item);
86                        if ( $item != '') {
87                            $list[] = $item;
88                        }
89                    }
90                }catch(Exception $e){}
91                return json_encode($list);
92        };
93}
94
95
96
97function call_show_stats(){
98
99return function($request,$reponse,$service){
100
101echo '<html>
102  <head>
103    <!--Load the AJAX API-->
104    <!--<script type="text/javascript" src="https://www.google.com/jsapi"></script>-->
105    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
106    <script type="text/javascript" src="jquery.min.js"></script>
107    <script type="text/javascript" src="graph_min.js"></script>
108
109    <script type="text/javascript">
110        google.charts.load("current", {packages: ["corechart"],"language":"es"});
111        google.charts.setOnLoadCallback(doChart);
112    </script>
113    <link href="ui/jquery-ui.css" rel="stylesheet">
114    <link href="graph.css" rel="stylesheet">
115    <script type="text/javascript" src="ui/jquery-ui.js"></script>
116  </head>
117  <body>
118  <div id="header"><span class="title">Lliurex-Analytics <a class="go_to_other" href="ShowExtendedStats">[Extended stats]</a></span><div id="stats_box"></div></div>
119  <div id="accordion"></div>
120  </body>
121</html>
122';
123
124};
125
126}
127
128function call_show_system_stats(){
129
130return function($request,$reponse,$service){
131
132echo '<html>
133  <head>
134    <!--Load the AJAX API-->
135    <!--<script type="text/javascript" src="https://www.google.com/jsapi"></script>-->
136    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
137    <script type="text/javascript" src="jquery.min.js"></script>
138    <script type="text/javascript" src="sysstats_min.js"></script>
139    <script type="text/javascript">
140        google.charts.load("current", {packages: ["corechart"],"language":"es"});
141        google.charts.setOnLoadCallback(initialize);
142    </script>
143    <link href="ui/jquery-ui.css" rel="stylesheet">
144    <link href="graph.css" rel="stylesheet">
145    <script type="text/javascript" src="ui/jquery-ui.js"></script>
146  </head>
147  <body>
148  <div id="chart_div"></div>
149  </body>
150</html>
151';
152
153};
154
155}
156function call_show_extended_stats(){
157
158return function($request,$reponse,$service){
159
160echo '<html>
161  <head>
162    <!--Load the AJAX API-->
163    <!--<script type="text/javascript" src="https://www.google.com/jsapi"></script>-->
164    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
165    <script type="text/javascript" src="jquery.min.js"></script>
166    <script type="text/javascript" src="graph_min.js"></script>
167
168    <script type="text/javascript">
169        google.charts.load("current", {packages: ["corechart"],"language":"es"});
170        google.charts.setOnLoadCallback(doExtendedChart);
171    </script>
172    <link href="ui/jquery-ui.css" rel="stylesheet">
173    <link href="graph.css" rel="stylesheet">
174    <script type="text/javascript" src="ui/jquery-ui.js"></script>
175    <script type="text/javascript">$(document).ready(function(){function send_query(){window.location.href=window.location.pathname+"?app="+$("#query_box>input").val()};$("#query_box>input").on("keyup",function(e){if (e.keyCode == 13){send_query()}});$("#query_box>button").click(send_query)});</script>
176  </head>
177  <body>
178  <div id="header"><div id="query_box"><span>Search by app:</span><input type="search" name="app_search"></input><button>Search</button></div><span class="title">Lliurex-Analytics <a class="go_to_other" href="ShowStats">[Simple stats]</a></span><div id="stats_box"></div></div>
179  <div id="accordion"></div>
180  </body>
181</html>
182';
183
184};
185
186}
187
188
189?>
Note: See TracBrowser for help on using the repository browser.