Fix for Textmarketer and adds a new entry in the servers db table for the last time it was offline (last_offline) to allow the duration of the outage to be included in the notification, also exposed last_online and last_offline so that they can also be used in the notifications should the user wish.

pull/182/head
Matthew Pattman 2015-02-27 13:45:40 +00:00
parent 62633f6937
commit ede1f60804
1 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,77 @@
<?php
/**
* PHP Server Monitor
* Monitor your servers and websites.
*
* This file is part of PHP Server Monitor.
* PHP Server Monitor is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PHP Server Monitor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
*
* @package phpservermon
* @author Perri Vardy-Mason
* @copyright Copyright (c) 2008-2015 Pepijn Over <pep@peplab.net>
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
* @version Release: @package_version@
* @link http://www.phpservermonitor.org/
* @since phpservermon 2.1
**/
namespace psm\Txtmsg;
class Textmarketer extends Core {
// =========================================================================
// [ Fields ]
// =========================================================================
public $gateway = 1;
public $resultcode = null;
public $resultmessage = null;
public $success = false;
public $successcount = 0;
/**
* Send the SMS message
* @param string $message
* @return boolean (true = message was sent successfully, false = there was a problem sending the message)
*/
public function sendSMS($message) {
$recipients = join(',', $this->recipients);
if(count($recipients) == 0) {
return false;
}
$containsLetter = preg_match('/[a-zA-Z]/', $this->originator);
$containsSpecial = preg_match('/[^a-zA-Z\d]/', $this->originator);
if ($containsLetter || $containsSpecial) { // 11 Alphanumeric, 16 for just numbers
$from = urlencode(substr($this->originator, 0, 11));
}
else {
$from = urlencode(substr($this->originator, 0, 16));
}
$url = "https://api.textmarketer.co.uk/gateway/" .
"?username=" . $this->username .
"&password=" . $this->password .
"&to=" . rawurlencode($recipients) .
"&message=" . urlencode( $message ) .
"&orig=" . $from;
$result = file_get_contents( $url );
$isOk = strpos($result, 'SUCCESS') !== false;
if(!$isOk) {
$result = trim(str_replace("\n", " ", str_replace("\r", " ", $result)));
error_log("SMS API Error: '".$result."'", E_USER_NOTICE);
}
return $isOk;
}
}