Exemplo n.º 1
0
 public static function friends_timeline()
 {
     $messages = array();
     //		foreach(R(new TwitterAPI())->friends_timeline() as $message) $messages[] = Message::parse($message);
     foreach (R(new WassrAPI())->friends_timeline() as $message) {
         $messages[] = Message::parse($message);
     }
     $messages = omerge($messages, "key");
     rosort($messages, "created_at");
     return $messages;
 }
 /**
  * Fully parse the text from wikitext to HTML.
  *
  * @return string Parsed HTML.
  */
 public function getHtml()
 {
     return $this->mMessage->parse();
 }
Exemplo n.º 3
0
 /**
  * Wrap a message in HTML with a class.
  *
  * @param Message $msg
  * @param string $class
  * @param string $tag
  * @return string
  */
 private static function wrap(Message $msg, $class, $tag = 'span')
 {
     return Html::rawElement($tag, array('class' => $class), $msg->parse());
 }
 /**
  * @param Message|null $error
  */
 protected function showSubpageList($error = null)
 {
     $out = $this->getOutput();
     if ($error) {
         $out->addHTML($error->parse());
     }
     $groupedRequests = [];
     foreach ($this->authRequests as $req) {
         $info = $req->describeCredentials();
         $groupedRequests[(string) $info['provider']][] = $req;
     }
     $out->addHTML(Html::openElement('dl'));
     foreach ($groupedRequests as $group => $members) {
         $out->addHTML(Html::element('dt', [], $group));
         foreach ($members as $req) {
             /** @var AuthenticationRequest $req */
             $info = $req->describeCredentials();
             $out->addHTML(Html::rawElement('dd', [], Linker::link($this->getPageTitle($req->getUniqueId()), htmlspecialchars($info['account'], ENT_QUOTES))));
         }
     }
     $out->addHTML(Html::closeElement('dl'));
 }
Exemplo n.º 5
0
 function readCallbacks($timeout = 2000)
 {
     if (!$this->socket || $this->protocol == 0) {
         throw new Exception('transport error - Client not initialized', -32300);
     }
     if ($this->protocol == 1) {
         return false;
     }
     // flo: moved to end
     //$something_received = count($this->cb_message)>0;
     $contents = '';
     $contents_length = 0;
     @stream_set_timeout($this->socket, 0, 10000);
     // timeout 10 ms (to read available data)
     // (assignment in arguments is forbidden since php 5.1.1)
     $read = array($this->socket);
     $write = NULL;
     $except = NULL;
     $nb = false;
     try {
         $nb = @stream_select($read, $write, $except, 0, $timeout);
     } catch (\Exception $e) {
         if (strpos($e->getMessage(), 'Invalid CRT') !== false) {
             $nb = true;
         } elseif (strpos($e->getMessage(), 'Interrupted system call') !== false) {
             return;
         } else {
             throw $e;
         }
     }
     // workaround for stream_select bug with amd64
     if ($nb !== false) {
         $nb = count($read);
     }
     while ($nb !== false && $nb > 0) {
         $timeout = 0;
         // we don't want to wait for the full time again, just flush the available data
         $size = 0;
         $recvhandle = 0;
         // Get result
         $contents = fread($this->socket, 8);
         if (strlen($contents) == 0) {
             throw new Exception('transport error - connection interrupted!', -32700);
         }
         $array_result = unpack('Vsize/Vhandle', $contents);
         $size = $array_result['size'];
         $recvhandle = $array_result['handle'];
         if ($recvhandle == 0 || $size == 0) {
             throw new Exception('transport error - connection interrupted!', -32700);
         }
         if ($size > SIZE_MAX) {
             throw new Exception("transport error - answer too big ({$size})", -32700);
         }
         self::$received += $size;
         $contents = '';
         $contents_length = 0;
         while ($contents_length < $size) {
             $contents .= fread($this->socket, $size - $contents_length);
             $contents_length = strlen($contents);
         }
         if (($recvhandle & 2147483648.0) == 0) {
             // this is a callback. handle= $recvhandle, xml-rpc= $contents
             //echo 'CALLBACK('.$contents_length.')[ '.$contents.' ]' . LF;
             $new_cb_message = new Message($contents);
             if ($new_cb_message->parse() && $new_cb_message->messageType != 'fault') {
                 array_push($this->cb_message, array($new_cb_message->methodName, $new_cb_message->params));
             }
             // flo: moved to end ...
             // $something_received = true;
         }
         // (assignment in arguments is forbidden since php 5.1.1)
         $read = array($this->socket);
         $write = NULL;
         $except = NULL;
         try {
             $nb = @stream_select($read, $write, $except, 0, $timeout);
         } catch (\Exception $e) {
             if (strpos($e->getMessage(), 'Invalid CRT') !== false) {
                 $nb = true;
             } else {
                 throw $e;
             }
         }
         // workaround for stream_select bug with amd64
         if ($nb !== false) {
             $nb = count($read);
         }
     }
     return !empty($this->cb_message);
 }
Exemplo n.º 6
0
 /**
  * @covers Message::serialize
  * @covers Message::unserialize
  */
 public function testSerialization()
 {
     $msg = new Message('parentheses');
     $msg->rawParams('<a>foo</a>');
     $msg->title(Title::newFromText('Testing'));
     $this->assertEquals('(<a>foo</a>)', $msg->parse(), 'Sanity check');
     $msg = unserialize(serialize($msg));
     $this->assertEquals('(<a>foo</a>)', $msg->parse());
     $title = TestingAccessWrapper::newFromObject($msg)->title;
     $this->assertInstanceOf('Title', $title);
     $this->assertEquals('Testing', $title->getFullText());
     $msg = new Message('mainpage');
     $msg->inLanguage('de');
     $this->assertEquals('Hauptseite', $msg->plain(), 'Sanity check');
     $msg = unserialize(serialize($msg));
     $this->assertEquals('Hauptseite', $msg->plain());
 }
 /**
  * Show a message in a success box.
  *
  * @since 0.1
  *
  * @param Message $message
  */
 protected function showSuccess(Message $message)
 {
     $this->getOutput()->addHTML('<div class="successbox"><strong><p>' . $message->parse() . '</p></strong></div>' . '<hr style="display: block; clear: both; visibility: hidden;" />');
 }
Exemplo n.º 8
0
 public function actionSendMessage()
 {
     if (isset($_POST['send'])) {
         if ($this->me == "guest") {
             header("location: signin");
             exit;
         }
         if (!isset($_POST['to']) || $_POST['to'] == "") {
             $_SESSION['error'] = "No recipient selected";
             header("location: " . $_SERVER['HTTP_REFERER']);
             exit;
         }
         $message = new Message();
         $message->parse($_POST);
         $message->setReceiver($_POST['to']);
         $message->setSender($this->me->userID);
         if (trim($_POST['message']) == "") {
             $_SESSION['error'] = "Cannot send blank message";
             header("location: " . $_SERVER['HTTP_REFERER']);
             exit;
         }
         if ($message->create() !== true) {
             $_SESSION['error'] = "Your message could not be sent. Please try later";
         }
         header("location: " . $_SERVER['HTTP_REFERER']);
         exit;
     }
 }
Exemplo n.º 9
0
 /**
  * Show all applicable editing introductions
  *
  * - new article intro
  * - custom intro (editintro=Foo in URL)
  * - talk page intro
  * - main page educational note (BugId:51755)
  *
  * Handle preloads (BugId:5652)
  */
 protected function showIntro()
 {
     // Code based on EditPage.php
     if (!$this->mTitle->exists()) {
         if ($this->app->wg->User->isLoggedIn()) {
             $msgName = 'newarticletext';
             $class = 'mw-newarticletext';
         } else {
             $msgName = 'newarticletextanon';
             $class = 'mw-newarticletextanon';
         }
         // Give a notice if the user is editing a deleted/moved page...
         $titleText = $this->mTitle->getPrefixedText();
         if (!empty($titleText)) {
             $out = new OutputPage();
             $resultRowsNum = LogEventsList::showLogExtract($out, array('delete', 'move'), $titleText, '', array('lim' => 10, 'conds' => array("log_action != 'revision'"), 'showIfEmpty' => false, 'msgKey' => array('recreate-moveddeleted-warn')));
         }
         $msgParams = [];
         // check for empty message (BugId:6923)
         if (!empty($msgName)) {
             $message = wfMessage($msgName, $msgParams);
             $messageParsed = $message->parse();
             if (!$message->isBlank() && trim(strip_tags($messageParsed)) != '') {
                 $this->mEditPagePreloads['EditPageIntro'] = ['content' => $messageParsed, 'class' => $class];
             }
         }
     }
     wfRunHooks('EditPageLayoutShowIntro', [&$this->mEditPagePreloads, $this->mTitle]);
     // custom intro
     $this->showCustomIntro();
     // Intro text for talk pages (BugId:7092)
     if ($this->mTitle->isTalkPage()) {
         $this->mEditPagePreloads['EditPageTalkPageIntro'] = array('content' => wfmsgExt('talkpagetext', array('parse')), 'class' => 'mw-talkpagetext');
     } elseif ($this->mTitle->isMainPage() && !$this->mTitle->isProtected() && !$this->userDismissedEduNote()) {
         //if this is an unprotected main page and user hasn't seen the main page educational notice -- show it :)
         /** @var $notice EditPageNotice */
         $msg = wfMsgExt('mainpagewarning-notice', array('parse'));
         $notice = new EditPageNotice($msg, 'MainPageEduNote');
         $this->helper->addJsVariable('mainPageEduNoteHash', $notice->getHash());
         $this->addEditNotice($notice);
     }
     // Edit notice (BugId:7616)
     $editnotice_ns_key = 'editnotice-' . $this->mTitle->getNamespace();
     $editnotice_ns_msg = new Message($editnotice_ns_key);
     if (!$editnotice_ns_msg->isDisabled()) {
         $this->mEditPagePreloads['EditPageEditNotice'] = array('content' => $editnotice_ns_msg->parse(), 'class' => 'mw-editnotice');
     }
 }
Exemplo n.º 10
0
 /**
  * Show a message in a warning box.
  *
  * @since 0.1
  *
  * @param Message $message
  */
 protected function showWarning(Message $message)
 {
     $this->getOutput()->addHTML('<p class="visualClear warningbox">' . $message->parse() . '</p>' . '<hr style="display: block; clear: both; visibility: hidden;" />');
 }
Exemplo n.º 11
0
    if ($me == "guest") {
        header("location: signin");
        exit;
    }
    if (!isset($_GET['with'])) {
        $_SESSION['error'] = "No recipient selected";
        header("location: " . $_SERVER['REQUEST_URI']);
        exit;
    }
    if (trim($_POST['message']) == "") {
        $_SESSION['error'] = "Cannot send blank message";
        header("location: " . $_SERVER['REQUEST_URI']);
        exit;
    }
    $message = new Message();
    $message->parse($_POST);
    $message->setReceiver($_GET['with']);
    $message->setSender($me->userID);
    if ($message->create() !== true) {
        $_SESSION['error'] = "Failed to send message";
        var_dump($message->create());
    }
    header("location: " . $_SERVER['REQUEST_URI']);
    exit;
}
$pageTitle = "Messages";
$limit = 6;
$partner = isset($_GET['with']) ? $_GET['with'] : false;
if ($partner != false) {
    $partner = User::getUser($partner);
    $pageNum = isset($_GET['aftercursor']) ? $_GET['aftercursor'] : 1;