From 81fccaeb44206841524f615c2141231d86e18879 Mon Sep 17 00:00:00 2001 From: lutranf Date: Tue, 30 Dec 2014 14:09:01 +0100 Subject: [PATCH] Add error message in add_message function + NSFW error message for 9gag --- inc/databap.php | 43 +++++++++++++++++++++++++++++++------------ jquery/databap.js | 1 + masks/chat.html | 8 +++++--- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/inc/databap.php b/inc/databap.php index c4b538c..33d7c6d 100755 --- a/inc/databap.php +++ b/inc/databap.php @@ -432,9 +432,7 @@ class Databap extends PhpObject 'errors'=>array('disconnected'=>self::DISCONNECTED, 'not_authorized'=>self::NOT_AUTH, 'not_found'=>self::NOT_FOUND, - 'insert'=>self::FAIL_INSERT, - 'update'=>self::FAIL_UPDATE, - 'delete'=>self::FAIL_DELETE), + 'system'=>array(self::FAIL_INSERT, self::FAIL_UPDATE, self::FAIL_DELETE)), 'success'=>self::SUCCESS, 'error'=>self::ERROR, 'keep_alive'=>self::KEEP_ALIVE, @@ -735,15 +733,18 @@ class Databap extends PhpObject break; } } - $asResult = $this->downloadToTmp($o9gagImage->getAttribute('src')); + $asResult = array(); + if(isset($o9gagImage)) $asResult = $this->downloadToTmp($o9gagImage->getAttribute('src')); + else $asResult['error'] = 'Not safe for work'; + if($asResult['error']=='') { $asPost['url_img'] = $asResult['out']; $asPost['width'] = $asResult['width']; $asPost['height'] = $asResult['height']; } - else $asPost['error'] = $asResult['error']; + $asPost['error'] = $asResult['error']; return $asPost; } @@ -1793,6 +1794,8 @@ class Databap extends PhpObject { $sMessage = htmlspecialchars($sMessage); $sType = self::MESSAGE_USER; + $bSuccess = true; + $sDesc = ''; if(mb_substr($sMessage, 0, 1) == '/') { if(mb_substr($sMessage, 0, 4) == '/me ') @@ -1906,17 +1909,25 @@ class Databap extends PhpObject elseif((mb_substr($sMessage, 0, 5) == '/img ' || mb_substr($sMessage, 0, 5) == '/pic ') && mb_strlen($sMessage)>5) { $sUrl = trim(mb_substr($sMessage, 4)); - $asResult = $this->downloadToTmp($sUrl); - if($asResult['error']=='') + $asImage = $this->downloadToTmp($sUrl); + $bSuccess = ($asImage['error']==''); + if($bSuccess) { - $sMessage = $this->getJsonMessage(array($asResult['out'], $asResult['width'], $asResult['height'], $sUrl)); + $sMessage = $this->getJsonMessage(array($asImage['out'], $asImage['width'], $asImage['height'], $sUrl)); $sType = self::MESSAGE_IMG; } + else $sDesc = $asImage['error']; } elseif(mb_substr($sMessage, 0, 6) == '/9gag ' && mb_strlen($sMessage)>6) { - $sMessage = $this->getJsonMessage($this->get9gagPost(trim(mb_substr($sMessage, 6)))); - $sType = self::MESSAGE_9GAG; + $asImage = $this->get9gagPost(trim(mb_substr($sMessage, 6))); + $bSuccess = ($asImage['error']==''); + if($bSuccess) + { + $sMessage = $this->getJsonMessage($asImage); + $sType = self::MESSAGE_9GAG; + } + else $sDesc = $asImage['error']; } elseif(mb_substr($sMessage, 0, 7) == '/reboot' && $this->checkUserClearance(self::CLEARANCE_ADMIN)) { @@ -1934,8 +1945,16 @@ class Databap extends PhpObject { $sType = self::MESSAGE_PRIVATE; } - $sChanId = $this->getChanId($sChanName); - return $this->addMessage($sMessage, $sType, $sChanId); + + //Storing message + if($bSuccess) + { + $sChanId = $this->getChanId($sChanName); + $bSuccess = $this->addMessage($sMessage, $sType, $sChanId); + if(!$bSuccess) $sDesc = self::FAIL_INSERT; + } + + return $this->getJsonPostResult($bSuccess, $sDesc); } private function getJsonMessage($asData) diff --git a/jquery/databap.js b/jquery/databap.js index 4c8852e..8e39c69 100644 --- a/jquery/databap.js +++ b/jquery/databap.js @@ -713,6 +713,7 @@ function Databap() this.feedback = function(sClass, sMsg) { if(sClass=='error' && sMsg=='') sMsg = 'Aïe ! Une erreur inconnue est suvenue'; + else if(sClass=='error' && $.inArray(sMsg, self.consts.errors.system)!=-1) sMsg = 'Une erreur interne est survenue. Merci de contacter l\'admin'; $('', {'class':'feedback '+sClass}) .append($('', {'class':'fa fa-inline fa-c-'+sClass})) .append(self.addPunctuation(sMsg)) diff --git a/masks/chat.html b/masks/chat.html index e27fc37..4528247 100755 --- a/masks/chat.html +++ b/masks/chat.html @@ -530,12 +530,14 @@ function add_message(e) ( 'add_message', databap.getMainElem('#chat_form'), - function(id) + function(oData) { databap.tmp('sending_msg', false); - refresh_chat(); + if(oData.result==databap.consts.error) databap.feedback('error', oData.desc); + else refresh_chat(); }, - true + true, + 'json' ); } }