Parsage du journal d'appel
This commit is contained in:
parent
9d7a9530e7
commit
0b06a50d8c
350
automate.php
350
automate.php
|
@ -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();
|
||||
|
||||
?>
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,9 @@
|
|||
[
|
||||
"dashboard",
|
||||
"profile",
|
||||
"machines",
|
||||
"users",
|
||||
"groups",
|
||||
"analytics",
|
||||
"settings"
|
||||
]
|
30
index.php
30
index.php
|
@ -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();
|
||||
|
||||
|
|
Loading…
Reference in New Issue