UltrasonicNXT has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/329681 )

Change subject: Tidy up parsing mechanism a bit
......................................................................

Tidy up parsing mechanism a bit

Key point was to replace the 'MWCHAT $text' thing with something
 more elegent
Also a few other things

Change-Id: I616f3a74d52772df7f34e5e9ea0db00c3de53091
---
M MediaWikiChat.hooks.php
M MediaWikiChatClass.php
M extension.json
3 files changed, 8 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MediaWikiChat 
refs/changes/81/329681/1

diff --git a/MediaWikiChat.hooks.php b/MediaWikiChat.hooks.php
index c8f5dc0..243a9b7 100644
--- a/MediaWikiChat.hooks.php
+++ b/MediaWikiChat.hooks.php
@@ -12,9 +12,7 @@
         * @return bool
         */
        public static function onParserBeforeInternalParse( &$parser, &$text, 
&$strip_state ) {
-               if ( strpos( $text, 'MWCHAT' ) === false ) {
-                       return true;
-               } else {
+               if ( $parser->getTitle()->equals( SpecialPage::getTitleFor( 
'Chat', 'message' ) ) ) { // only do our version of parsing when this is 
Special:Chat and we're parsing a message
                        $text = $parser->replaceVariables( $text );
 
                        $text = Sanitizer::removeHTMLtags(
@@ -24,17 +22,14 @@
                                array_keys( $parser->mTransparentTagHooks )
                        );
 
-                       $text = preg_replace( '/(^|\n)-----*/', '\\1<hr />', 
$text );
-
                        $text = $parser->replaceInternalLinks( $text );
                        $text = $parser->doAllQuotes( $text );
                        $text = $parser->replaceExternalLinks( $text );
-
-                       $text = str_replace( $parser->mUniqPrefix . 'NOPARSE', 
'', $text );
-
                        $text = $parser->doMagicLinks( $text );
 
-                       return false;
+                       return false; // stop parser doing anything as we've 
done the parsing ourselves
+               } else {
+                       return true;
                }
        }
 
diff --git a/MediaWikiChatClass.php b/MediaWikiChatClass.php
index 658d1cc..0deedb6 100644
--- a/MediaWikiChatClass.php
+++ b/MediaWikiChatClass.php
@@ -224,8 +224,6 @@
                                $message
                        );
 
-                       $message = "MWCHAT $message"; // flag to show the 
parser this is a chat message (for our hook)
-
                        $opts = new ParserOptions();
                        $opts->setEditSection( false );
                        $opts->setExternalLinkTarget( '_blank' );
@@ -237,19 +235,18 @@
                        
                        $message = $parser->preSaveTransform(
                                $message,
-                               SpecialPage::getTitleFor( 'Chat' ),
+                               SpecialPage::getTitleFor( 'Chat', 'message' ),
                                $user,
                                $opts
                        );
                        
                        $parseOut = $parser->parse(
                                $message,
-                               SpecialPage::getTitleFor( 'Chat' ),
+                               SpecialPage::getTitleFor( 'Chat', 'message' ), 
// the message subpage tells our hook this is message
                                $opts
                        );
 
                        $message = $parseOut->getText();
-                       $message = str_replace( 'MWCHAT', '', $message ); // 
remove flag for parser
 
                        $message = str_replace( '<p>', '', $message ); // 
remove MW's automatical p,
                        $message = str_replace( '</p>', '', $message ); // it's 
pointless
@@ -258,7 +255,7 @@
                } else {
                        $message = htmlentities( $message );
 
-                       $message = preg_replace( '#(http[s]?\:\/\/[^ \n]+)#', 
'<a target="_blank" href="$1">$1</a>', $message );
+                       $message = preg_replace( '#(http[s]?\:\/\/[^ \n]+)#', 
'<a target="_blank" href="$1">$1</a>', $message ); // turn URLs into links
                }
 
                $message = str_replace( array( '&nbsp;', '&#160;' ), ' ', 
$message ); // replace nonbreaking space with regular space
diff --git a/extension.json b/extension.json
index 18643ad..67da23e 100644
--- a/extension.json
+++ b/extension.json
@@ -1,6 +1,6 @@
 {
        "name": "MediaWikiChat",
-       "version": "2.19.0",
+       "version": "2.19.1",
        "author": [
                "Adam Carter/UltrasonicNXT"
        ],

-- 
To view, visit https://gerrit.wikimedia.org/r/329681
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I616f3a74d52772df7f34e5e9ea0db00c3de53091
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MediaWikiChat
Gerrit-Branch: master
Gerrit-Owner: UltrasonicNXT <adamr_car...@btinternet.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to