From 0b06a50d8cabcee35ad596fd56878daf0416f419 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Mon, 4 Apr 2016 14:04:36 +0200 Subject: [PATCH] Parsage du journal d'appel --- automate.php | 354 ++++++++++------------------------------------ calllog.xml | 1 + config/views.json | 9 ++ index.php | 32 ++--- 4 files changed, 99 insertions(+), 297 deletions(-) create mode 100644 calllog.xml create mode 100644 config/views.json diff --git a/automate.php b/automate.php index 1d65ac1..9ef6233 100755 --- a/automate.php +++ b/automate.php @@ -12,297 +12,97 @@ - /* NSERTION DES UTILISATEURS DANS LA BDD DEPUIS JSON + /* PARSAGE DE JOURNAUX D'APPEL * * - * @return status TRUE si aucune erreur, sinon FALSE - * */ - function insertUsersFromJSON(){ - $json = ResourceDispatcher::getResource('f/json/generated_users/conf'); - $json = json_decode( $json, true ); + function parseCallLog(){ - // Pour chaque entree - foreach( $json as $user ){ + /* [1] On recupere le journal d'appel + =========================================================*/ + $filename = 'calllog.xml'; + $file = simplexml_load_file( $filename ); - // Creation de la requete - $request = new ModuleRequest('userDefault/create', array( - $user['code'], - $user['username'], - $user['firstname'], - $user['lastname'], - $user['email'], - $user['password'], - $user['status'] - )); - $answer = $request->dispatch(); - // Debug error - var_dump( $answer->error == ManagerError::Success ); + /* [2] On parcours chaque ligne + =========================================================*/ + $names = array(); // Contiendra les correspondances num/names + $msms = array(); // Contiendra les personnes utilisant SMS/MMS + $call = array(); // Contiendra les personnes utilisant CALL + + + + /* [3] On parcours chaque ligne + =========================================================*/ + foreach($file->Item as $log){ + // On recupere le numero en string + $num = (string) $log['Number']; + + // On formatte le numero + if( preg_match("/^(?:\+33|33|0)(.+)/", $num, $m) ) + $num = '0'.$m[1]; + + + /* (1) Si le type est MMS ou SMS */ + if( $log['Type'] == 'SMS' || $log['Type'] == 'MMS' ){ + + // Si la personne n'est pas referencee, on l'ajoute + // Sinon on incremente son nombre d'apparition + if( isset($msms[$num]) ) + $msms[$num]+= 1; + else + $msms[$num] = 1; + + // On enregistre le nom si c'est pas fait + if( !isset($names[$num]) ) $names[$num] = $log['Name']; + + + /* (2) Si le type est PHONE */ + }else if( $log['Type'] == 'PHONE' ){ + + // Si la personne n'est pas referencee, on l'ajoute + // Sinon on incremente son nombre d'apparition + if( isset($call[$num]) ) + $call[$num]+= 1; + else + $call[$num] = 1; + + // On enregistre le nom si c'est pas fait + if( !isset($names[$num]) ) $names[$num] = $log['Name']; + + } + + // var_dump( $log ); } - return true; - }//insertUsersFromJSON(); + /* [4] On trie par nombre de contacts + =========================================================*/ + // rsort($msms); + // rsort($call); + /* [5] On debug les donnees recues + =========================================================*/ + echo "Il y a ".count($names)." personnes :
"; + echo "- ".count($msms)." par SMS/MMS
"; + echo "- ".count($call)." par telephone

"; - - - /* NSERTION DES MACHINES DANS LA BDD DEPUIS JSON - * - * - * @return status TRUE si aucune erreur, sinon FALSE - * - */ - function insertMachinesFromJSON(){ - $json = ResourceDispatcher::getResource('f/json/generated_machines/conf'); - $json = json_decode( $json, true ); - - // Pour chaque entree - foreach( $json as $machine ){ - - // Creation de la requete - $request = new ModuleRequest('machineDefault/create', array( - $machine['code'], - $machine['name'] - )); - $answer = $request->dispatch(); - // Debug error - var_dump( $answer->error == ManagerError::Success ); + echo 'Soit par ordre d\'affinites :
'; + echo "TOP 10 DES APPELS
"; + echo "=================
"; + $count = 0; + foreach($call as $k=>$v){ + var_dump( $k ); + + var_dump( $names[$k] ." => ". $v ." appels"); + $count++; } + // var_dump( $call ); - return true; + return 0; + } - }//insertMachinesFromJSON(); - - - - - - - - - /* AFFICHAGE DES UTILISATEURS DE LA BDD - * - * - * @return status TRUE si aucune erreur, sinon FALSE - * - */ - function selectUsers(){ - - // Creation de la requete - $requete = new ModuleRequest('userDefault/getAll'); - $answer = $requete->dispatch(); - - var_dump( ManagerError::explicit($answer->error) ); - var_dump( $answer->get('users') ); - - return true; - - }//selectUsers(); - - - - - - - /* AFFICHAGE DES MACHINES DE LA BDD - * - * - * @return status TRUE si aucune erreur, sinon FALSE - * - */ - function selectMachines(){ - - // Creation de la requete - $requete = new ModuleRequest('machineDefault/getAll'); - $answer = $requete->dispatch(); - - var_dump( ManagerError::explicit($answer->error) ); - var_dump( $answer->get('machines') ); - - return true; - - }//selectMachines(); - - - - - - - - - /* AFFICHAGE DES UTILISATEURS DE LA BDD (MIS EN PAGE) - * - * - * @return status TRUE si aucune erreur, sinon FALSE - * - */ - function displayUsers(){ - - // Creation de la requete - $request = new ModuleRequest('userDefault/getAll'); - $answer = $request->dispatch(); - - // Debug error - if( $answer->error != ManagerError::Success ) - var_dump( ManagerError::explicit($answer->error) ); - - // display result - var_dump( $answer->getAll() ); - - return true; - - }//displayUsers(); - - - - - - - - - - /* TEST DU DISPATCHER DES MANAGERS - * - * @return nomRetour Description du retour - - */ - function testModuleDispatcher(){ - - // Creation d'une requete en objet - $req1 = new ModuleRequest('firstModule/returnvar', array('id_user' => 10, 'code' => '11-22-33-44') ); - // Creation d'une requete a partir d'un json en - $req2 = ModuleRequest::fromString('{"path": "firstModule/returnvar", "data": {"id_user":10, "code":"11-22-33-44"}}'); - - var_dump( $req1->dispatch() ); - - return true; - - }//testModuleDispatcher(); - - - - - - /* TEST DU DISPATCHER DES REPO - * - * @return nomRetour Description du retour - - */ - function testRepoDispatcher(){ - - // Creation d'une requete en objet - $req1 = new Repo('user/getById', array('19')); - // $req1 = new Repo('user/getByCode', array('92-55-B9-B3')); - var_dump( $req1->answer() ); - - if( $req1->error != ManagerError::Success ) - var_dump( ManagerError::explicit($req1->error) ); - - - return true; - - }//testRepoDispatcher(); - - - - - - - /* INSERTION (COMPOSITE) DES UTILISATEURS DE LA BDD - * - * - * @return status TRUE si aucune erreur, sinon FALSE - * - */ - function insertUsersComposite(){ - - // Creation de la requete - $request = new ModuleRequest('userDefault/create', array('92-55-B9-B1', 'b', 'bla', 'bla', 'bla@test.com', 'sadas', '1') ); - $answer = $request->dispatch(); - // Debug error - if( $answer->error != ManagerError::Success ) - var_dump( ManagerError::explicit($answer->error) ); - - var_dump( $answer->getAll() ); - - return true; - - }//insertUsersComposite(); - - - - - - - /* RETOURNE LES GROUPES D'UN UTILISATEUR - * - * - * @return status TRUE si aucune erreur, sinon FALSE - * - */ - function getUserClusters(){ - $id_user = 115; - - // Groupes de l'utilisateur 'a' - $getUser1Clusters = new Repo('user/getClusters', array($id_user)); - $user1Clusters = $getUser1Clusters->answer(); - var_dump( $user1Clusters ); - - // On ajoute un groupe a l'utilisateur 100 - $linkA = new Repo('cluster/link', array($user1Clusters[0]['id_cluster'], 100) ); - var_dump( $linkA->answer() ); - $getUser2Clusters = new Repo('user/getClusters', array(100)); - var_dump( $getUser2Clusters->answer() ); - - // On retire un groupe a l'utilisateur 100 - $unlinkA = new Repo('cluster/unlink', array($user1Clusters[0]['id_cluster'], 100) ); - var_dump( $linkA->answer() ); - $getUser2Clusters = new Repo('user/getClusters', array(100)); - var_dump( $getUser2Clusters->answer() ); - - - - return true; - - }//getUserClusters(); - - - - - - - /* MODIFICATION D'UN UTILISATEUR - * - * - * @return status TRUE si aucune erreur, sinon FALSE - * - */ - function editUser(){ - $id_user = 48; - - $request = new ModuleRequest('userDefault/edit', array( - 'B1-87-EA-BF', - 'Abigail', - 'Mcmillan', - 'Savage', - 'mcmillansavage@corecom.com', - 'password', - 0 - )); - - - // ["B1-87-EA-BF","Abigail01","Mcmillan","Savage","mcmillansavage@corecom.com","password",0] - - var_dump( $request->dispatch() ); - - - return true; - - }//editUser(); - - // new ResourceDispatcher('f/svg/search/st/sub-menu-side/ff0000', true); + parseCallLog(); ?> \ No newline at end of file diff --git a/calllog.xml b/calllog.xml new file mode 100644 index 0000000..191fc32 --- /dev/null +++ b/calllog.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/config/views.json b/config/views.json new file mode 100644 index 0000000..d4254bb --- /dev/null +++ b/config/views.json @@ -0,0 +1,9 @@ +[ + "dashboard", + "profile", + "machines", + "users", + "groups", + "analytics", + "settings" +] \ No newline at end of file diff --git a/index.php b/index.php index 0f0ba8b..8ba482a 100755 --- a/index.php +++ b/index.php @@ -13,6 +13,9 @@ /*******************************************/ + + + /* [0] On initialise le routeur ===================================================*/ $R = new Router( $_GET['url'] ); @@ -23,22 +26,18 @@ // Racine -> page d'accueil $R->get('/?', function(){ header('Location: /dashboard/'); }); - // Liste des pages du site - $page_list = array( - 'dashboard', - 'profile', - 'machines', - 'users', - 'groups', - 'analytics', - 'settings' - ); + + /* [2] On recupere la liste des pages du site + =========================================================*/ + $views = json_decode( ResourceDispatcher::getResource( 'f/json/views/conf', true ) ); + + // nomPage/arg1/arg2 -> inclusion de la page - $R->get('(?:'.implode('|', $page_list).')(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; }); + $R->get('(?:'.implode('|', $views).')(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; }); // Dispatcher - $R->get('f(?:/([\w-]+))*/?', function(){ new ResourceDispatcher($_GET['url'], true); }); + $R->get('f(?:/([\w-]+))*/?', function(){ new ResourceDispatcher($_GET['url'], true); }); // Api $R->post('api/?', function(){ @@ -50,17 +49,10 @@ // N'importe -> page d'accueil $R->get('.+', function(){ header('Location: /dashboard/'); }); - - - // $R->post('.*', function(){ - // var_dump( 'Acces POST : '.$_GET['url'] ); - // var_dump( $_POST ); - // }); - - /* [2] On lance le routeur + /* [3] On lance le routeur ===================================================*/ $R->run();