Merge de la branch principale et du passage à la nouvelle version du framework

This commit is contained in:
root 2015-08-11 00:33:26 +02:00
commit eea4bb501d
4 changed files with 28 additions and 25 deletions

0
README.md Normal file → Executable file
View File

View File

@ -7,7 +7,7 @@
*/ */
public function help() public function help()
{ {
//On défini les commandes dispo //On définit les commandes disponibles
$commands = array( $commands = array(
'sendScheduleds' => array( 'sendScheduleds' => array(
'description' => 'Cette commande permet d\'envoyer les SMS programmés qui doivent l\'êtres.', 'description' => 'Cette commande permet d\'envoyer les SMS programmés qui doivent l\'êtres.',
@ -35,7 +35,7 @@
$message .= " Arguments obligatoires : \n"; $message .= " Arguments obligatoires : \n";
if (!count($requireds)) if (!count($requireds))
{ {
$message .= " Pas d'arguments\n"; $message .= " Pas d'argument\n";
} }
else else
{ {
@ -45,11 +45,11 @@
} }
} }
$message .= " Arguments optionels : \n"; $message .= " Arguments optionnels : \n";
if (!count($optionals)) if (!count($optionals))
{ {
$message .= " Pas d'arguments\n"; $message .= " Pas d'argument\n";
} }
else else
{ {
@ -64,18 +64,18 @@
} }
/** /**
* Cette fonction envoie tous les SMS programmés qui doivent l'êtres * Cette fonction envoie tous les SMS programmés qui doivent l'être
*/ */
public function sendScheduleds() public function sendScheduleds()
{ {
//On créer l'objet de base de données //On créé l'objet de base de données
global $db; global $db;
$now = new DateTime(); $now = new DateTime();
$now = $now->format('Y-m-d H:i:s'); $now = $now->format('Y-m-d H:i:s');
echo "Début de l'envoie des SMS programmés\n"; echo "Début de l'envoi des SMS programmés\n";
$scheduleds = $db->getScheduledsNotInProgressBefore($now); $scheduleds = $db->getScheduledsNotInProgressBefore($now);
@ -87,7 +87,7 @@
$ids_scheduleds[] = $scheduled['id']; $ids_scheduleds[] = $scheduled['id'];
} }
echo count($ids_scheduleds) . " SMS à envoyer ont été trouvés et ajouté à la liste des SMS en cours d'envoie.\n"; echo count($ids_scheduleds) . " SMS à envoyer ont été trouvés et ajoutés à la liste des SMS en cours d'envoi.\n";
$db->updateProgressScheduledsIn($ids_scheduleds, true); $db->updateProgressScheduledsIn($ids_scheduleds, true);
@ -100,7 +100,7 @@
//On initialise les numéros auxquelles envoyer le SMS //On initialise les numéros auxquelles envoyer le SMS
$numbers = array(); $numbers = array();
//On récupère les numéros pour le SMS et on les ajoutes //On récupère les numéros pour le SMS et on les ajoute
$target_numbers = $db->getNumbersForScheduled($id_scheduled); $target_numbers = $db->getNumbersForScheduled($id_scheduled);
foreach ($target_numbers as $target_number) foreach ($target_numbers as $target_number)
{ {
@ -118,7 +118,7 @@
$groups = $db->getGroupsForScheduled($id_scheduled); $groups = $db->getGroupsForScheduled($id_scheduled);
foreach ($groups as $group) foreach ($groups as $group)
{ {
//On récupère les contacts du groupe et on les ajoutes aux numéros //On récupère les contacts du groupe et on les ajoute aux numéros
$contacts = $db->getContactsForGroup($group['id']); $contacts = $db->getContactsForGroup($group['id']);
foreach ($contacts as $contact) foreach ($contacts as $contact)
{ {
@ -128,7 +128,7 @@
foreach ($numbers as $number) foreach ($numbers as $number)
{ {
echo " Envoie d'un SMS au " . $number . "\n"; echo " Envoi d'un SMS au " . $number . "\n";
//On ajoute le SMS aux SMS envoyés //On ajoute le SMS aux SMS envoyés
$db->createSended($now, $number, $scheduled['content']); $db->createSended($now, $number, $scheduled['content']);
$id_sended = $db->lastId(); $id_sended = $db->lastId();
@ -136,14 +136,14 @@
//Commande qui envoie le SMS //Commande qui envoie le SMS
$commande_send_sms = 'gammu-smsd-inject TEXT ' . escapeshellarg($number) . ' -len ' . mb_strlen($text_sms) . ' -text ' . $text_sms; $commande_send_sms = 'gammu-smsd-inject TEXT ' . escapeshellarg($number) . ' -len ' . mb_strlen($text_sms) . ' -text ' . $text_sms;
//Commande qui s'assure de passer le SMS dans ceux envoyés, et de lui donner le bon statut //Commande qui s'assure de passer le SMS dans ceux envoyés, et de lui donner le bon statut
echo $commande_send_sms . "\n";
//On va liée les deux commandes pour envoyer le SMS puis le passer en echec //On va liée les deux commandes pour envoyer le SMS puis le passer en echec
$commande = '(' . $commande_send_sms . ') >/dev/null 2>/dev/null &'; $commande = '(' . $commande_send_sms . ') >/dev/null 2>/dev/null &';
exec($commande); //On execute la commande d'envoie d'un SMS exec($commande); //On execute la commande d'envoie d'un SMS
} }
} }
echo "Tous les SMS sont en cours d'envoie.\n"; echo "Tous les SMS sont en cours d'envoi.\n";
//Tous les SMS ont été envoyés. //Tous les SMS ont été envoyés.
$db->deleteScheduledsIn($ids_scheduleds); $db->deleteScheduledsIn($ids_scheduleds);
} }
@ -164,25 +164,30 @@ echo $commande_send_sms . "\n";
continue; continue;
} }
//On récupère la date du SMS à la seconde près grâce au nom du fichier (Cf. parseSMS.sh)
//Il faut mettre la date au format Y-m-d H:i:s
$date = substr($dir, 0, 4) . '-' . substr($dir, 4, 2) . '-' . substr($dir, 6, 2) . ' ' . substr($dir, 8, 2) . ':' . substr($dir, 10, 2) . ':' . substr($dir, 12, 2);
//On récupère le fichier, et on récupère la chaine jusqu'au premier ':' pour le numéro de téléphone source, et la fin pour le message //On récupère le fichier, et on récupère la chaine jusqu'au premier ':' pour le numéro de téléphone source, et la fin pour le message
$content_file = file_get_contents(PWD_RECEIVEDS . $dir); $content_file = file_get_contents(PWD_RECEIVEDS . $dir);
//Si on peux pas ouvrir le fichier, on quitte en logant une erreur //Si on peux pas ouvrir le fichier, on quitte en logant une erreur
if ($content_file == false) if ($content_file == false)
{ {
$this->wlog('Impossible to read file "' . $dir); $this->wlog('Unable to read file "' . $dir);
die(4); die(4);
} }
//On delete le fichier. Si on y arrive pas on log //On supprime le fichier. Si on n'y arrive pas, alors on log
if (!unlink(PWD_RECEIVEDS . $dir)) if (!unlink(PWD_RECEIVEDS . $dir))
{ {
$this->wlog('Impossible to delete file "' . $dir); $this->wlog('Unable to delete file "' . $dir);
die(8); die(8);
} }
$content_file = explode(':', $content_file, 2); $content_file = explode(':', $content_file, 2);
//Si on a pas passé de SMS ou de numéro on leve une erreure //Si on a pas passé de numéro ou de message, alors on lève une erreur
if (!isset($content_file[0], $content_file[1])) if (!isset($content_file[0], $content_file[1]))
{ {
$this->wlog('Missing params in file "' . $dir); $this->wlog('Missing params in file "' . $dir);
@ -216,7 +221,7 @@ echo $commande_send_sms . "\n";
if ($user && $user['password'] == sha1($flags['PASSWORD'])) if ($user && $user['password'] == sha1($flags['PASSWORD']))
{ {
$this->wlog('Password is valid'); $this->wlog('Password is valid');
//On va faire toutes les commandes, pour voir si on en trouve dans ce message //On va passer en revue toutes les commandes, pour voir si on en trouve dans ce message
$commands = $db->getAll('commands'); $commands = $db->getAll('commands');
$this->wlog('We found ' . count($commands) . ' commands'); $this->wlog('We found ' . count($commands) . ' commands');
@ -227,7 +232,7 @@ echo $commande_send_sms . "\n";
{ {
$this->wlog('We found command ' . $command_name); $this->wlog('We found command ' . $command_name);
//Si la commande ne demande pas d'être admin, ou si on est admin //Si la commande ne nécessite pas d'être admin, ou si on est admin
if (!$command['admin'] || $user['admin']) if (!$command['admin'] || $user['admin'])
{ {
$this->wlog('And the count is ok'); $this->wlog('And the count is ok');
@ -238,23 +243,21 @@ echo $commande_send_sms . "\n";
} }
} }
//On va supprimer le mot de passe du SMS pour pouvoir l'enregistrer sans dangers //On va supprimer le mot de passe du SMS pour pouvoir l'enregistrer sans danger
$text = str_replace($flags['PASSWORD'], '*****', $text); $text = str_replace($flags['PASSWORD'], '*****', $text);
//On map les données et on créer le SMS reçu //On map les données et on créer le SMS reçu
$now = new DateTime();
$date = $now->format('Y-m-d H:i');
$send_by = $number; $send_by = $number;
$content = $text; $content = $text;
$is_command = count($found_commands); $is_command = count($found_commands);
if (!$db->createReceived($date, $send_by, $content, $is_command)) if (!$db->createReceived($date, $send_by, $content, $is_command))
{ {
echo "Erreur lors de l'enregistrement du SMS\n"; echo "Erreur lors de l'enregistrement du SMS\n";
$this->wlog('Impossible to register the SMS in file "' . $dir); $this->wlog('Unable to process the SMS in file "' . $dir);
die(7); die(7);
} }
//Pour chaque commande, on execute la commande. //Chaque commande sera executée.
foreach ($found_commands as $command_name => $command) foreach ($found_commands as $command_name => $command)
{ {
echo 'Execution de la commande : ' . $command_name . ' :: ' . $command . "\n"; echo 'Execution de la commande : ' . $command_name . ' :: ' . $command . "\n";

0
fonts/glyphicons-halflings-regular.woff2 Normal file → Executable file
View File

View File

@ -1,4 +1,4 @@
/** /**
* Lithuanian translation for bootstrap-datetimepicker * Lithuanian translation for bootstrap-datetimepicker
* Šarūnas Gliebus <ssharunas@yahoo.co.uk> * Šarūnas Gliebus <ssharunas@yahoo.co.uk>
*/ */