mirror of
https://github.com/RaspbianFrance/raspisms.git
synced 2025-04-20 16:37:48 +02:00
few coderules changes
This commit is contained in:
parent
80b6a3ed86
commit
117c18ddca
28 changed files with 1485 additions and 1666 deletions
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
namespace controllers\internals;
|
||||
class Console extends \InternalController
|
||||
|
||||
class Console extends \descartes\InternalController
|
||||
{
|
||||
|
||||
/**
|
||||
|
@ -32,35 +33,26 @@ class Console extends \InternalController
|
|||
$message .= "Voici la liste des commandes disponibles : \n";
|
||||
|
||||
//On écrit les texte pour la liste des commandes dispos
|
||||
foreach ($commands as $name => $value)
|
||||
{
|
||||
foreach ($commands as $name => $value) {
|
||||
$requireds = isset($value['requireds']) ? $value['requireds'] : array();
|
||||
$optionals = isset($value['optionals']) ? $value['optionals'] : array();
|
||||
|
||||
$message .= ' ' . $name . ' : ' . $value['description'] . "\n";
|
||||
$message .= " Arguments obligatoires : \n";
|
||||
if (!count($requireds))
|
||||
{
|
||||
if (!count($requireds)) {
|
||||
$message .= " Pas d'argument\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ($requireds as $argument => $desc)
|
||||
{
|
||||
} else {
|
||||
foreach ($requireds as $argument => $desc) {
|
||||
$message .= ' - ' . $argument . ' : ' . $desc . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
$message .= " Arguments optionnels : \n";
|
||||
|
||||
if (!count($optionals))
|
||||
{
|
||||
if (!count($optionals)) {
|
||||
$message .= " Pas d'argument\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ($optionals as $argument => $desc)
|
||||
{
|
||||
} else {
|
||||
foreach ($optionals as $argument => $desc) {
|
||||
$message .= ' - ' . $argument . ' : ' . $desc . "\n";
|
||||
}
|
||||
}
|
||||
|
@ -77,8 +69,7 @@ class Console extends \InternalController
|
|||
//On créé l'objet de base de données
|
||||
global $db;
|
||||
|
||||
for ($i = 0; $i < 30; $i++)
|
||||
{
|
||||
for ($i = 0; $i < 30; $i++) {
|
||||
$now = new \DateTime();
|
||||
$now = $now->format('Y-m-d H:i:s');
|
||||
|
||||
|
@ -89,8 +80,7 @@ class Console extends \InternalController
|
|||
$ids_scheduleds = array();
|
||||
|
||||
//On passe en cours de progression tous les SMS
|
||||
foreach ($scheduleds as $scheduled)
|
||||
{
|
||||
foreach ($scheduleds as $scheduled) {
|
||||
$ids_scheduleds[] = $scheduled['id'];
|
||||
}
|
||||
|
||||
|
@ -99,8 +89,7 @@ class Console extends \InternalController
|
|||
$db->updateProgressScheduledIn($ids_scheduleds, true);
|
||||
|
||||
//Pour chaque SMS à envoyer
|
||||
foreach ($scheduleds as $scheduled)
|
||||
{
|
||||
foreach ($scheduleds as $scheduled) {
|
||||
$id_scheduled = $scheduled['id'];
|
||||
$text_sms = escapeshellarg($scheduled['content']);
|
||||
$flash = $scheduled['flash'];
|
||||
|
@ -110,41 +99,33 @@ class Console extends \InternalController
|
|||
|
||||
//On récupère les numéros pour le SMS et on les ajoute
|
||||
$target_numbers = $db->getNumbersForScheduled($id_scheduled);
|
||||
foreach ($target_numbers as $target_number)
|
||||
{
|
||||
foreach ($target_numbers as $target_number) {
|
||||
$numbers[] = $target_number['number'];
|
||||
}
|
||||
|
||||
//On récupère les contacts, et on ajoute les numéros
|
||||
$contacts = $db->getContactForScheduled($id_scheduled);
|
||||
foreach ($contacts as $contact)
|
||||
{
|
||||
foreach ($contacts as $contact) {
|
||||
$numbers[] = $contact['number'];
|
||||
}
|
||||
|
||||
//On récupère les groupes
|
||||
$groupes = $db->getGroupeForScheduled($id_scheduled);
|
||||
foreach ($groupes as $groupe)
|
||||
{
|
||||
foreach ($groupes as $groupe) {
|
||||
//On récupère les contacts du groupe et on les ajoute aux numéros
|
||||
$contacts = $db->getContactForGroupe($groupe['id']);
|
||||
foreach ($contacts as $contact)
|
||||
{
|
||||
foreach ($contacts as $contact) {
|
||||
$numbers[] = $contact['number'];
|
||||
}
|
||||
}
|
||||
|
||||
$smsStops = $db->getFromTableWhere('smsstop');
|
||||
|
||||
foreach ($numbers as $number)
|
||||
{
|
||||
foreach ($numbers as $number) {
|
||||
//Si les SMS STOP sont activés, on passe au numéro suivant si le numéro actuelle fait parti des SMS STOP
|
||||
if (RASPISMS_SETTINGS_SMSSTOPS)
|
||||
{
|
||||
foreach ($smsStops as $smsStop)
|
||||
{
|
||||
if (!($number == $smsStop['number']))
|
||||
{
|
||||
if (RASPISMS_SETTINGS_SMSSTOPS) {
|
||||
foreach ($smsStops as $smsStop) {
|
||||
if (!($number == $smsStop['number'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -160,8 +141,7 @@ class Console extends \InternalController
|
|||
$now = $now->format('Y-m-d H:i:s');
|
||||
|
||||
//On peut maintenant ajouter le SMS
|
||||
if (!$db->insertIntoTable('sendeds', ['at' => $now, 'target' => $number, 'content' => $scheduled['content'], 'before_delivered' => ceil(mb_strlen($scheduled['content'])/160)]))
|
||||
{
|
||||
if (!$db->insertIntoTable('sendeds', ['at' => $now, 'target' => $number, 'content' => $scheduled['content'], 'before_delivered' => ceil(mb_strlen($scheduled['content'])/160)])) {
|
||||
echo 'Impossible d\'inserer le sms pour le numero ' . $number . "\n";
|
||||
}
|
||||
|
||||
|
@ -170,8 +150,7 @@ class Console extends \InternalController
|
|||
//Commande qui envoie le SMS
|
||||
$commande_send_sms = 'gammu-smsd-inject TEXT ' . escapeshellarg($number) . ' -report -len ' . mb_strlen($text_sms) . ' -text ' . $text_sms;
|
||||
|
||||
if (RASPISMS_SETTINGS_SMS_FLASH && $flash)
|
||||
{
|
||||
if (RASPISMS_SETTINGS_SMS_FLASH && $flash) {
|
||||
$commande_send_sms .= ' -flash';
|
||||
}
|
||||
|
||||
|
@ -184,7 +163,7 @@ class Console extends \InternalController
|
|||
}
|
||||
|
||||
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->deleteScheduledIn($ids_scheduleds);
|
||||
|
||||
//On dors 2 secondes
|
||||
|
@ -200,15 +179,12 @@ class Console extends \InternalController
|
|||
//On créer l'objet de base de données
|
||||
global $db;
|
||||
|
||||
for ($i = 0; $i < 30; $i++)
|
||||
{
|
||||
foreach (scandir(PWD_RECEIVEDS) as $dir)
|
||||
{
|
||||
for ($i = 0; $i < 30; $i++) {
|
||||
foreach (scandir(PWD_RECEIVEDS) as $dir) {
|
||||
//Si le fichier est un fichier système, on passe à l'itération suivante
|
||||
if ($dir == '.' || $dir == '..' || $dir == '.tokeep')
|
||||
{
|
||||
if ($dir == '.' || $dir == '..' || $dir == '.tokeep') {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
echo "Analyse du SMS " . $dir . "\n";
|
||||
|
||||
|
@ -220,15 +196,13 @@ class Console extends \InternalController
|
|||
$content_file = file_get_contents(PWD_RECEIVEDS . $dir);
|
||||
|
||||
//Si on peux pas ouvrir le fichier, on quitte en logant une erreur
|
||||
if ($content_file == false)
|
||||
{
|
||||
if ($content_file == false) {
|
||||
$this->wlog('Unable to read file "' . $dir);
|
||||
die(4);
|
||||
}
|
||||
|
||||
//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('Unable to delete file "' . $dir);
|
||||
die(8);
|
||||
}
|
||||
|
@ -236,8 +210,7 @@ class Console extends \InternalController
|
|||
$content_file = explode(':', $content_file, 2);
|
||||
|
||||
//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);
|
||||
die(5);
|
||||
}
|
||||
|
@ -247,8 +220,7 @@ class Console extends \InternalController
|
|||
$text = $content_file[1];
|
||||
|
||||
//On gère les SMS STOP
|
||||
if (trim($text) == 'STOP')
|
||||
{
|
||||
if (trim($text) == 'STOP') {
|
||||
echo 'STOP SMS detected ' . $number . "\n";
|
||||
$this->wlog('STOP SMS detected ' . $number);
|
||||
$db->insertIntoTable('smsstop', ['number' => $number]);
|
||||
|
@ -256,8 +228,7 @@ class Console extends \InternalController
|
|||
}
|
||||
|
||||
//On gère les accusés de reception
|
||||
if (trim($text) == 'Delivered' || trim($text) == 'Failed')
|
||||
{
|
||||
if (trim($text) == 'Delivered' || trim($text) == 'Failed') {
|
||||
echo 'Delivered or Failed SMS for ' . $number . "\n";
|
||||
$this->wlog('Delivered or Failed SMS for ' . $number);
|
||||
|
||||
|
@ -266,24 +237,21 @@ class Console extends \InternalController
|
|||
$interval = new \DateInterval('PT12H');
|
||||
$sinceDate = $now->sub($interval)->format('Y-m-d H:i:s');
|
||||
|
||||
if (!$sendeds = $db->getFromTableWhere('sendeds', ['target' => $number, 'delivered' => false, 'failed' => false, '>at' => $sinceDate], 'at', false, 1))
|
||||
{
|
||||
if (!$sendeds = $db->getFromTableWhere('sendeds', ['target' => $number, 'delivered' => false, 'failed' => false, '>at' => $sinceDate], 'at', false, 1)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$sended = $sendeds[0];
|
||||
|
||||
//On gère les echecs
|
||||
if (trim($text) == 'Failed')
|
||||
{
|
||||
if (trim($text) == 'Failed') {
|
||||
$db->updateTableWhere('sendeds', ['before_delivered' => 0, 'failed' => true], ['id' => $sended['id']]);
|
||||
echo "Sended SMS id " . $sended['id'] . " pass to failed status\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
//On gère le cas des messages de plus de 160 caractères, lesquels impliquent plusieurs accusés
|
||||
if ($sended['before_delivered'] > 1)
|
||||
{
|
||||
if ($sended['before_delivered'] > 1) {
|
||||
$db->updateTableWhere('sendeds', ['before_delivered' => $sended['before_delivered'] - 1], ['id' => $sended['id']]);
|
||||
echo "Sended SMS id " . $sended['id'] . " before_delivered decrement\n";
|
||||
continue;
|
||||
|
@ -295,8 +263,7 @@ class Console extends \InternalController
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!$number)
|
||||
{
|
||||
if (!$number) {
|
||||
$this->wlog('Invalid phone number in file "' . $dir);
|
||||
die(6);
|
||||
}
|
||||
|
@ -309,28 +276,23 @@ class Console extends \InternalController
|
|||
$found_commands = array();
|
||||
|
||||
//Si on reçu des identifiants
|
||||
if (array_key_exists('LOGIN', $flags) && array_key_exists('PASSWORD', $flags))
|
||||
{
|
||||
if (array_key_exists('LOGIN', $flags) && array_key_exists('PASSWORD', $flags)) {
|
||||
//Si on a bien un utilisateur avec les identifiants reçus
|
||||
$user = $db->getUserFromEmail($flags['LOGIN']);
|
||||
$this->wlog('We found ' . count($user) . ' users');
|
||||
if ($user && $user['password'] == sha1($flags['PASSWORD']))
|
||||
{
|
||||
if ($user && $user['password'] == sha1($flags['PASSWORD'])) {
|
||||
$this->wlog('Password is valid');
|
||||
//On va passer en revue toutes les commandes, pour voir si on en trouve dans ce message
|
||||
$commands = $db->getFromTableWhere('commands');
|
||||
|
||||
$this->wlog('We found ' . count($commands) . ' commands');
|
||||
foreach ($commands as $command)
|
||||
{
|
||||
foreach ($commands as $command) {
|
||||
$command_name = mb_strtoupper($command['name']);
|
||||
if (array_key_exists($command_name, $flags))
|
||||
{
|
||||
if (array_key_exists($command_name, $flags)) {
|
||||
$this->wlog('We found command ' . $command_name);
|
||||
|
||||
//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');
|
||||
$found_commands[$command_name] = PWD_SCRIPTS . $command['script'] . escapeshellcmd($flags[$command_name]);
|
||||
}
|
||||
|
@ -340,8 +302,7 @@ class Console extends \InternalController
|
|||
}
|
||||
|
||||
//On va supprimer le mot de passe du SMS pour pouvoir l'enregistrer sans danger
|
||||
if (isset($flags['PASSWORD']))
|
||||
{
|
||||
if (isset($flags['PASSWORD'])) {
|
||||
$text = str_replace($flags['PASSWORD'], '*****', $text);
|
||||
}
|
||||
|
||||
|
@ -349,8 +310,7 @@ class Console extends \InternalController
|
|||
$send_by = $number;
|
||||
$content = $text;
|
||||
$is_command = count($found_commands);
|
||||
if (!$db->insertIntoTable('receiveds', ['at' => $date, 'send_by' => $send_by, 'content' => $content, 'is_command' => $is_command]))
|
||||
{
|
||||
if (!$db->insertIntoTable('receiveds', ['at' => $date, 'send_by' => $send_by, 'content' => $content, 'is_command' => $is_command])) {
|
||||
echo "Erreur lors de l'enregistrement du SMS\n";
|
||||
$this->wlog('Unable to process the SMS in file "' . $dir);
|
||||
die(7);
|
||||
|
@ -360,8 +320,7 @@ class Console extends \InternalController
|
|||
$db->insertIntoTable('transfers', ['id_received' => $db->lastId(), 'progress' => false]);
|
||||
|
||||
//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";
|
||||
exec($command);
|
||||
}
|
||||
|
@ -375,10 +334,9 @@ class Console extends \InternalController
|
|||
/**
|
||||
* Cette fonction permet d'envoyer par mail les sms à transférer
|
||||
*/
|
||||
public function sendTransfers ()
|
||||
public function sendTransfers()
|
||||
{
|
||||
if (!RASPISMS_SETTINGS_TRANSFER)
|
||||
{
|
||||
if (!RASPISMS_SETTINGS_TRANSFER) {
|
||||
echo "Le transfer de SMS est désactivé ! \n";
|
||||
return false;
|
||||
}
|
||||
|
@ -388,8 +346,7 @@ class Console extends \InternalController
|
|||
|
||||
$ids_transfers = [];
|
||||
$ids_receiveds = [];
|
||||
foreach ($transfers as $transfer)
|
||||
{
|
||||
foreach ($transfers as $transfer) {
|
||||
$ids_transfers[] = $transfer['id'];
|
||||
$ids_receiveds[] = $transfer['id_received'];
|
||||
}
|
||||
|
@ -400,10 +357,8 @@ class Console extends \InternalController
|
|||
|
||||
$users = $db->getFromTableWhere('users', ['transfer' => true]);
|
||||
|
||||
foreach ($users as $user)
|
||||
{
|
||||
foreach ($receiveds as $received)
|
||||
{
|
||||
foreach ($users as $user) {
|
||||
foreach ($receiveds as $received) {
|
||||
echo "Transfer d'un SMS du " . $received['send_by'] . " à l'email " . $user['email'];
|
||||
$to = $user['email'];
|
||||
$subject = '[RaspiSMS] - Transfert d\'un SMS du ' . $received['send_by'];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue