Ignore:
Timestamp:
Feb 19, 2018, 6:48:13 PM (20 months ago)
Author:
mabarracus
Message:

Whitelist implementation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lliurex-analytics-server/trunk/fuentes/lliurex-analytics-server/usr/lib/analytics-server/analytics/db.php

    r6868 r6876  
    11<?php
     2$USE_CACHE = true;
    23class Cache{
    34    private $cache_file;
     
    6162    }
    6263    function get($key){
     64        global $USE_CACHE;
     65        if (! $USE_CACHE){
     66            return false;
     67        }
    6368        if (! $this->process()){
    6469            return false;
     
    444449     }
    445450
    446      function get_historic_data(){
     451     function get_historic_data($typechart=''){
    447452         $this->load_alias();
    448453         $obj=[];
     
    455460                 $sname=$sabor['name'];
    456461                 $slike=$sabor['like'];
    457                  $obj[$dname][$sname][]=$this->get_chart($dlike,$slike,'current');
    458                  $obj[$dname][$sname][]=$this->get_chart($dlike,$slike,'old');
    459                  $obj[$dname][$sname][]=$this->get_chart($dlike,$slike,'very_old');
     462                 $obj[$dname][$sname][]=$this->get_chart($dlike,$slike,'current',$typechart);
     463                 $obj[$dname][$sname][]=$this->get_chart($dlike,$slike,'old',$typechart);
     464                 $obj[$dname][$sname][]=$this->get_chart($dlike,$slike,'very_old',$typechart);
    460465             }
    461466         }
     
    467472         return json_encode($obj);
    468473     }
    469     function get_chart($version='',$sabor='',$type='current'){
    470         $cache_key="$version"."_"."$sabor"."_"."$type";
     474   
     475    function get_chart($version='',$sabor='',$type='current',$typechart=''){
     476        if ($typechart == ''){
     477            $cache_key="$version"."_"."$sabor"."_"."$type";
     478            $limit = "limit 10";
     479            $sql_limit=10;
     480            $and = "";
     481        }else{
     482            $cache_key="$version"."_"."$sabor"."_"."$type"."_"."$typechart";
     483            $limit = "";
     484            $sql_limit=1000;
     485            $and = "and string in ( select `name` from `PackagesWhitelist` where status = '1' )";
     486        }
    471487        if ($version != ''){
    472488            $version = " and Releases_name = '$version' ";
     
    475491            $sabor = " and Flavours_name = '$sabor' ";
    476492        }
    477         $order=" order by count desc limit 10 ";
     493        $order=" order by count desc $limit ";
    478494        $group=" group by app ";
    479495
     
    481497        $where_clients=$this->dates['date_'.$type]." $version $sabor ";
    482498
    483         $sql="SELECT string as app,sum(count) as count from RecvPackages where $where $group $order";
     499        $sql="SELECT string as app,sum(count) as count from RecvPackages where $where $and $group $order";
    484500        $sql_clients = "select count(distinct Client_uid) as count from Client_Versions where $where_clients $order";
    485 
    486501        $cache = new Cache;
    487502        $data = $cache->get($cache_key);
     
    489504            return $data;
    490505        }else{
    491             $data=array($this->get_result_from_sql($sql),$this->get_clients_from_sql($sql_clients));
     506            $data=array($this->get_result_from_sql($sql,$sql_limit),$this->get_clients_from_sql($sql_clients));
    492507            $cache->store($data,$cache_key);
    493508            return $data;
     
    510525
    511526     }
    512      function get_result_from_sql($sql){
     527     function get_result_from_sql($sql,$limit){
    513528             $stime=microtime(true);
    514529         if ($result=$this->dbconn->query($sql)){
     
    520535                 if (array_key_exists($row['app'],$this->alias)){
    521536                     if (! empty($this->alias[$row['app']])){
    522                          if ($nobj < 10)
     537                         if ($nobj < $limit)
    523538                             $obj2[$this->alias[$row['app']]]=$row['count'];
    524539                         $nobj++;
    525540                     }
    526541                 }else{
    527                      if ($nobj < 10)
     542                     if ($nobj < $limit)
    528543                         $obj2[$row['app']]=$row['count'];
    529544                     $nobj++;
     
    536551     }
    537552    function get_whitelist_form(){
    538         $sql = "select distinct `string` from `RecvPackages`";
     553        $sql = "select distinct `string` from `RecvPackages` order by `string` asc";
    539554        $sql2 = "select `name`,`status` from `PackagesWhitelist`";
    540555        $result=$this->dbconn->query($sql);
Note: See TracChangeset for help on using the changeset viewer.