diff options
author | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
---|---|---|
committer | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
commit | fc7369835258467bf97eb64f184b93691f9a9fd5 (patch) | |
tree | daabd60089d2dd76d9f5fb416b005fbe159c799d /bin/wiki/vendor/addwiki/mediawiki-api/src/Service/Parser.php |
first commit
Diffstat (limited to 'bin/wiki/vendor/addwiki/mediawiki-api/src/Service/Parser.php')
-rw-r--r-- | bin/wiki/vendor/addwiki/mediawiki-api/src/Service/Parser.php | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/bin/wiki/vendor/addwiki/mediawiki-api/src/Service/Parser.php b/bin/wiki/vendor/addwiki/mediawiki-api/src/Service/Parser.php new file mode 100644 index 00000000..da83e39e --- /dev/null +++ b/bin/wiki/vendor/addwiki/mediawiki-api/src/Service/Parser.php @@ -0,0 +1,47 @@ +<?php + +namespace Mediawiki\Api\Service; + +use GuzzleHttp\Promise\PromiseInterface; +use Mediawiki\Api\SimpleRequest; +use Mediawiki\DataModel\PageIdentifier; + +/** + * @access private + * + * @author Addshore + */ +class Parser extends Service { + + /** + * @param PageIdentifier $pageIdentifier + * + * @return array the parse result (raw from the api) + */ + public function parsePage( PageIdentifier $pageIdentifier ) { + return $this->parsePageAsync( $pageIdentifier )->wait(); + } + + /** + * @param PageIdentifier $pageIdentifier + * + * @return PromiseInterface of array the parse result (raw from the api) + */ + public function parsePageAsync( PageIdentifier $pageIdentifier ) { + $params = []; + if ( $pageIdentifier->getId() !== null ) { + $params['pageid'] = $pageIdentifier->getId(); + } elseif ( $pageIdentifier->getTitle() !== null ) { + $params['page'] = $pageIdentifier->getTitle()->getText(); + } else { + throw new \RuntimeException( 'No way to identify page' ); + } + + $promise = $this->api->getRequestAsync( new SimpleRequest( 'parse', $params ) ); + + return $promise->then( function ( $result ) { + return $result['parse']; + } ); + } + +} |