diff --git a/lib/implugin.php b/lib/implugin.php index a6a9a3dad9..def9a942c9 100644 --- a/lib/implugin.php +++ b/lib/implugin.php @@ -84,7 +84,7 @@ abstract class ImPlugin extends Plugin * * @return boolean success value */ - function sendNotice($screenname, $notice) + function sendNotice($screenname, Notice $notice) { return $this->sendMessage($screenname, $this->formatNotice($notice)); } @@ -370,19 +370,18 @@ abstract class ImPlugin extends Plugin * @return string plain-text version of the notice, with user nickname prefixed */ - function formatNotice($notice) + protected function formatNotice(Notice $notice) { $profile = $notice->getProfile(); - $nicknames = $profile->nickname; - if (!empty($notice->reply_to)) { - $orig_notice = $notice->getParent(); - $orig_profile = $orig_notice->getProfile(); - $nicknames = $nicknames . " => " . $orig_profile->nickname; - } - common_log(LOG_INFO, "Notice: " . $notice->content, __FILE__); - $data = $nicknames . ': ' . $notice->content . ' [' . $notice->id . ']'; - return $data; + try { + $orig_profile = $notice->getParent()->getProfile(); + $nicknames = sprintf('%1$s => %2$s', $profile->nickname, $orig_profile->nickname); + } catch (Exception $e) { + $nicknames = $profile->nickname; + } + + return sprintf('%1$s: %2$s [%3$u]', $nicknames, $notice->content, $notice->id); } //========================UTILITY FUNCTIONS USEFUL TO IMPLEMENTATIONS - RECEIVING ========================\ diff --git a/plugins/Xmpp/XmppPlugin.php b/plugins/Xmpp/XmppPlugin.php index 3d20c14c4c..a5666e5aa6 100644 --- a/plugins/Xmpp/XmppPlugin.php +++ b/plugins/Xmpp/XmppPlugin.php @@ -335,7 +335,7 @@ class XmppPlugin extends ImPlugin * * @return string Extra information (Atom, HTML, addresses) in string format */ - function format_entry($notice) + protected function format_entry(Notice $notice) { $profile = $notice->getProfile(); @@ -344,16 +344,16 @@ class XmppPlugin extends ImPlugin $xs = new XMLStringer(); $xs->elementStart('html', array('xmlns' => 'http://jabber.org/protocol/xhtml-im')); $xs->elementStart('body', array('xmlns' => 'http://www.w3.org/1999/xhtml')); - $xs->element('a', array('href' => $profile->profileurl), - $profile->nickname); - if (!empty($notice->reply_to)) { - $orig_notice = Notice::getKV('id', $notice->reply_to); - $orig_profile = $orig_notice->getProfile(); + $xs->element('a', array('href' => $profile->profileurl), $profile->nickname); + try { + $orig_profile = $notice->getParent()->getProfile(); + $orig_profurl = $orig_profile->getUrl(); $xs->text(" => "); - $xs->element('a', array('href' => $orig_profile->profileurl), - $orig_profile->nickname); + $xs->element('a', array('href' => $orig_profurl), $orig_profile->nickname); $xs->text(": "); - } else { + } catch (InvalidUrlException $e) { + $xs->text(sprintf(' => %s', $orig_profile->nickname)); + } catch (Exception $e) { $xs->text(": "); } if (!empty($notice->rendered)) { @@ -368,7 +368,7 @@ class XmppPlugin extends ImPlugin array('id' => $notice->conversation)).'#notice-'.$notice->id), // TRANS: Link description to notice in conversation. // TRANS: %s is a notice ID. - sprintf(_m('[%s]'),$notice->id)); + sprintf(_m('[%u]'),$notice->id)); $xs->elementEnd('body'); $xs->elementEnd('html');