Physikerwelt has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/72770


Change subject: Styling and struggling with HTTP:post
......................................................................

Styling and struggling with HTTP:post

for some reason HTTP:post does not return the correct error status

Change-Id: I25dac7c0ce0bbc5a65f0e96b3e6a168c3e03d985
---
M FormulaInfo.php
M MathObject.php
M MathSearch.hooks.php
M SpecialMathDebug.php
M SpecialMathSearch.php
A db/CosProd.sql
A db/getNorm.sql
7 files changed, 79 insertions(+), 34 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MathSearch 
refs/changes/70/72770/1

diff --git a/FormulaInfo.php b/FormulaInfo.php
index 093da30..31bf4b5 100644
--- a/FormulaInfo.php
+++ b/FormulaInfo.php
@@ -66,7 +66,7 @@
                $mo = MathObject::constructformpage( $pid, $eid );
                $wgOut->addWikiText( "Occurences on the following pages:" );
                wfDebugLog( "MathSearch", var_export( $mo->getAllOccurences(), 
true ) );
-               //$wgOut->addWikiText('<b>:'.var_export($res,true).'</b>');
+               // $wgOut->addWikiText('<b>:'.var_export($res,true).'</b>');
                $wgOut->addWikiText( 'TeX : <code>' . $mo->getTex() . '</code>' 
);
 
                $wgOut->addWikiText( 'MathML : ', false );
@@ -90,7 +90,7 @@
                $wgOut->addWikiText( '==LOG and Debug==' );
                $wgOut->addWikiText( 'Rendered at : <code>' . 
$mo->getTimestamp()
                        . '</code> an idexed at <code>' . 
$mo->getIndexTimestamp() . '</code>' );
-               $wgOut->addWikiText( 'validxml : <code>' . 
MathLaTeXML::isValidMathML($mo->getMathml()) . '</code> recheck:', false );
+               $wgOut->addWikiText( 'validxml : <code>' . 
MathLaTeXML::isValidMathML( $mo->getMathml() ) . '</code> recheck:', false );
                $wgOut->addHtml( MathLaTeXML::isValidMathML( $mo->getMathml() ) 
? "valid":"invalid" );
                $wgOut->addWikiText( 'status : <code>' . $mo->getStatusCode() . 
'</code>' );
                $wgOut->addHtml( htmlspecialchars( $mo->getLog() ) );
diff --git a/MathObject.php b/MathObject.php
index 73adcbd..2975fcf 100644
--- a/MathObject.php
+++ b/MathObject.php
@@ -5,10 +5,10 @@
        protected $index_timestamp = null;
        protected $inputHash = '';
 
-       private static function DebugPrint($s){
-               //$s= Sanitizer::safeEncodeAttribute($s);
-               wfDebugLog( "MathSearch", $s);
-       }       
+       private static function DebugPrint( $s ) {
+               // $s= Sanitizer::safeEncodeAttribute($s);
+               wfDebugLog( "MathSearch", $s );
+       }
 
        public function getAnchorID() {
                return $this->anchorID;
@@ -25,10 +25,10 @@
        public function getIndexTimestamp() {
                return $this->index_timestamp;
        }
-       public function getInputHash(){
-               wfDebugLog('MathSearch', 'Debugger dies here');
-               //die('end of debug toolbar');
-               if ($this->inputHash){
+       public function getInputHash() {
+               wfDebugLog( 'MathSearch', 'Debugger dies here' );
+               // die('end of debug toolbar');
+               if ( $this->inputHash ) {
                        return $this->inputHash;
                } else {
                        return parent::getInputHash();
diff --git a/MathSearch.hooks.php b/MathSearch.hooks.php
index 6097c05..1579222 100644
--- a/MathSearch.hooks.php
+++ b/MathSearch.hooks.php
@@ -84,7 +84,7 @@
                        }
                }
                $url = SpecialPage::getTitleFor( 'FormulaInfo' )->getLocalUrl( 
array( 'pid' => $pid, 'eid' => $eid ) );
-               $Result = '<a href="' . $url . '" id="math'.$eid.'">' . $Result 
. '</a>';
+               $Result = '<a href="' . $url . '" id="math' . $eid . '">' . 
$Result . '</a>';
                return true;
        }
 
diff --git a/SpecialMathDebug.php b/SpecialMathDebug.php
index daf973f..e5f7d6f 100644
--- a/SpecialMathDebug.php
+++ b/SpecialMathDebug.php
@@ -86,10 +86,10 @@
                                if ( $diff->isEmpty() ) {
                                        $out->addWikiText( 'Output is 
identical' );
                                } else {
-                                       $out->addWikiText('Requst A <source 
lang="bash"> curl -d \''.
-                                               $renderer->getPostValue().'\' 
'.$parserA.'</source>');
-                                       $out->addWikiText('Requst B <source 
lang="bash"> curl -d \''.
-                                               $renderer->getPostValue().'\' 
'.$parserB.'</source>');
+                                       $out->addWikiText( 'Requst A <source 
lang="bash"> curl -d \'' .
+                                               $renderer->getPostValue() . '\' 
' . $parserA . '</source>' );
+                                       $out->addWikiText( 'Requst B <source 
lang="bash"> curl -d \'' .
+                                               $renderer->getPostValue() . '\' 
' . $parserB . '</source>' );
                                        $out->addWikiText( 'Diff: <source 
lang="diff">' . $diffFormatter->format( $diff ) . '</source>' );
                                        $out->addWikiText( 'XML Element based:' 
);
                                        $XMLA = explode( '>', $stringA );
@@ -111,13 +111,13 @@
                global $wgUseMathJax, $wgUseLaTeXML, $wgTexvc;
                $out = $this->getOutput();
                $out->addModules( array( 'ext.math.mathjax.enabler' ) );
-               //die('END');
+               // die('END');
                $i = 0;
                foreach ( array_slice( self::getMathTagsFromPage( $page ), 
$offset, $length, true ) as $key => $t ) {
                        $out->addWikiText( "=== Test #" . ( $offset + $i++ ) . 
": $key === " );
                        $out->addHTML( self::render( $t, MW_MATH_SOURCE ) );
                        $out->addHTML( self::render( $t, MW_MATH_PNG ) );
-                       $out->addWikiText('<source 
lang="latex">'.$this->getTexvcTex($t).'</source>');
+                       $out->addWikiText( '<source lang="latex">' . 
$this->getTexvcTex( $t ) . '</source>' );
                        if ( $wgUseLaTeXML ) {
                                $out->addHTML( self::render( $t, 
MW_MATH_LATEXML ) );
                        }
@@ -155,11 +155,11 @@
                return true;
        }
        private static function render( $t, $mode, $aimJax = true ) {
-               $renderer = MathRenderer::getRenderer($t, array(), $mode);
-               $renderer->setPurge(true);
+               $renderer = MathRenderer::getRenderer( $t, array(), $mode );
+               $renderer->setPurge( true );
                $fragment = $renderer->render();
                $res = $mode . ':' . $fragment;
-               wfDebugLog('MathSearch', 'rendered:' .$res);
+               wfDebugLog( 'MathSearch', 'rendered:' . $res );
                if ( $aimJax ) {
                        self::aimHTMLFromJax( $res );
                }
@@ -182,12 +182,12 @@
                // leads to array('\1'->'\2') with \1 eg Bug 2345 and \2 the 
math content
                return $math[1];
        }
-       private function getTexvcTex($tex){
+       private function getTexvcTex( $tex ) {
                $tmpDir = wfTempDir();
-               $renderer = MathRenderer::getRenderer($tex,array(),MW_MATH_PNG);
-               $renderer->setPurge(true);
+               $renderer = MathRenderer::getRenderer( $tex, array(), 
MW_MATH_PNG );
+               $renderer->setPurge( true );
                $renderer->callTexvc();
                return $renderer->getSecureTex();
-               
+
        }
 }
diff --git a/SpecialMathSearch.php b/SpecialMathSearch.php
index 3e8dd60..53d65af 100644
--- a/SpecialMathSearch.php
+++ b/SpecialMathSearch.php
@@ -77,8 +77,9 @@
                $ls = self::getLucene() ;
                if ( $ls ) {
                $ls->limit = 1000000;
+               if ( $text ) {
                $sres = $ls->searchText( $text );
-               if ( $sres ) {
+               if ( $sres && $sres->hasResults() ) {
                        $wgOut->addWikiText( "You searched for the text '$text' 
and the TeX-Pattern '$pattern'." );
                        $wgOut->addWikiText( "The text search results in 
[{{canonicalurl:search|search=$text}} " .
                                        $sres->getTotalHits()
@@ -106,7 +107,7 @@
 
                        wfDebugLog( 'mathsearch', 'EOF' );
                        wfDebugLog( 'mathsearch', var_export( 
$this->mathResults , true ) );
-               }
+       } }
                }
                // $wgOut->addHtml(htmlspecialchars( $pattern) );
                $wgOut->addWikiText( "<math> $pattern </math>" );
@@ -218,9 +219,10 @@
         * @return string|boolean
         */
        function render( $tex ) {
-               $renderer = new MathLaTeXML($texcmd);
-               $renderer->setLaTeXMLSettings('profile=mwsquery');
-               $renderer->render(true);
+               $renderer = new MathLaTeXML( $tex );
+               $renderer->setLaTeXMLSettings( 'profile=mwsquery' );
+               $renderer->setAllowedRootElments( array( 
'http://search.mathweb.org/ns:query' ) );
+               $renderer->render( true );
                $contents = $renderer->getMathml();
                if ( strlen( $contents ) == 0 ) {
                        return 'ERROR unknown';
@@ -236,14 +238,25 @@
        function genSerachString( $cmml ) {
                global $wgMWSUrl;
 
-               $out = "";      $numProcess = 30000;
-               $mwsExpr = str_replace( "answsize=\"30\"", 
"answsize=\"$numProcess\" totalreq=\"yes\"", $cmml );
-               $mwsExpr = str_replace( "m:", "", $mwsExpr );
+               $numProcess = 30000;
+               $tmp = str_replace( "answsize=\"30\"", 
"answsize=\"$numProcess\" totalreq=\"yes\"", $cmml );
+               $mwsExpr = str_replace( "m:", "", $tmp );
                wfDebugLog( 'mathsearch', 'MWS query:' . $mwsExpr );
                $res = Http::post( $wgMWSUrl, array( "postData" => $mwsExpr, 
"timeout" => 60 ) );
-
                if ( $res == false ) {
-                       wfDebugLog( "MathSearch", "Nothing retreived from 
$wgMWSUrl. Check if mwsd is running." );
+                       if ( function_exists( 'curl_init' ) ) {
+                               $handle = curl_init();
+                               $options = array(
+                               CURLOPT_URL => $wgMWSUrl,
+                               CURLOPT_CUSTOMREQUEST => 'POST', // GET POST 
PUT PATCH DELETE HEAD OPTIONS
+                               );
+                               curl_setopt_array( $handle, $options );
+                               $details = curl_exec( $handle );
+                       } else {
+                               $details = "curl is not installed.";
+                       }
+                       wfDebugLog( "MathSearch", "Nothing retreived from 
$wgMWSUrl. Check if mwsd is running. Error:" .
+                               var_export( $details, true ) );
                        return false;
                }
                $xres = new SimpleXMLElement( $res );
diff --git a/db/CosProd.sql b/db/CosProd.sql
new file mode 100644
index 0000000..b9add42
--- /dev/null
+++ b/db/CosProd.sql
@@ -0,0 +1,17 @@
+delimiter $$
+
+CREATE DEFINER=`root`@`localhost` FUNCTION `CosProd`(IDA INT,IDB INT  ) 
RETURNS decimal(20,10)
+    READS SQL DATA
+    DETERMINISTIC
+BEGIN
+-- Calculates the CosineSimilarity of two pages
+return (
+       SELECT SUM(CAST(LOG( a.`pagestat_featurecount`)* 
LOG(b.`pagestat_featurecount`) as DECIMAL(20,10))
+               /(LOG(varstat_featurecount)*LOG(varstat_featurecount)) 
)/(getNorm(IDA)* getNorm(IDB))
+       from mathpagestat as a, mathpagestat as b,  mathvarstat as s
+       WHERE (b.`pagestat_pageid`= IDA and a.`pagestat_pageid`=IDB 
+       and a.`pagestat_featureid`=b.`pagestat_featureid` 
+       and a.`pagestat_featureid`=s.varstat_id)
+);
+END$$
+
diff --git a/db/getNorm.sql b/db/getNorm.sql
new file mode 100644
index 0000000..b0581c2
--- /dev/null
+++ b/db/getNorm.sql
@@ -0,0 +1,15 @@
+delimiter $$
+
+CREATE DEFINER=`root`@`localhost` FUNCTION `getNorm`(pid INT) RETURNS 
decimal(20,10)
+    READS SQL DATA
+    DETERMINISTIC
+BEGIN
+DECLARE output DECIMAL(20,10);
+SELECT SUM(POW(LOG(CAST(`pagestat_featurecount`as 
decimal(20,10)))/LOG(varstat_featurecount),2)) as norm
+INTO output
+FROM `mathpagestat`
+JOIN mathvarstat on `pagestat_featureid` = varstat_id
+WHERE `pagestat_pageid` =pid order by norm desc;
+return POW(output,1/2);
+END$$
+

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I25dac7c0ce0bbc5a65f0e96b3e6a168c3e03d985
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MathSearch
Gerrit-Branch: master
Gerrit-Owner: Physikerwelt <w...@physikerwelt.de>

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

Reply via email to