Parsage du journal d'appel

This commit is contained in:
xdrm-brackets 2016-04-04 14:04:36 +02:00
parent 9d7a9530e7
commit 0b06a50d8c
4 changed files with 99 additions and 297 deletions

View File

@ -12,297 +12,97 @@
/* NSERTION DES UTILISATEURS DANS LA BDD DEPUIS JSON
/* PARSAGE DE JOURNAUX D'APPEL
*
*
* @return status<Boolean> 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 );
/* [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'];
// 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 );
}
return true;
}//insertUsersFromJSON();
/* NSERTION DES MACHINES DANS LA BDD DEPUIS JSON
*
*
* @return status<Boolean> 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 );
// var_dump( $log );
}
return true;
}//insertMachinesFromJSON();
/* [4] On trie par nombre de contacts
=========================================================*/
// rsort($msms);
// rsort($call);
/* [5] On debug les donnees recues
=========================================================*/
echo "Il y a ".count($names)." personnes :<br>";
echo "- ".count($msms)." par SMS/MMS<br>";
echo "- ".count($call)." par telephone<br><br>";
echo 'Soit par ordre d\'affinites : <br>';
echo "TOP 10 DES APPELS<br>";
echo "=================<br>";
$count = 0;
foreach($call as $k=>$v){
var_dump( $k );
var_dump( $names[$k] ." => ". $v ." appels");
$count++;
}
// var_dump( $call );
return 0;
}
/* AFFICHAGE DES UTILISATEURS DE LA BDD
*
*
* @return status<Boolean> 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<Boolean> 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<Boolean> 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<typeRetour> 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 <String>
$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<typeRetour> 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<Boolean> 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<Boolean> 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<Boolean> 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();
?>

1
calllog.xml Normal file

File diff suppressed because one or more lines are too long

9
config/views.json Normal file
View File

@ -0,0 +1,9 @@
[
"dashboard",
"profile",
"machines",
"users",
"groups",
"analytics",
"settings"
]

View File

@ -13,6 +13,9 @@
/*******************************************/
/* [0] On initialise le routeur
===================================================*/
$R = new Router( $_GET['url'] );
@ -23,19 +26,15 @@
// 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); });
@ -52,15 +51,8 @@
$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();