Linux anchor 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
Apache/2.4.18 (Ubuntu)
Server IP : 10.10.100.4 & Your IP : 216.73.217.150
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
wiki.bernardino.org /
includes /
api /
Delete
Unzip
Name
Size
Permission
Date
Action
i18n
[ DIR ]
drwxr-xr-x
2016-11-28 20:20
ApiAMCreateAccount.php
4.17
KB
-rw-r--r--
2016-11-28 20:20
ApiAuthManagerHelper.php
12.14
KB
-rw-r--r--
2016-11-28 20:20
ApiBase.php
84.45
KB
-rw-r--r--
2016-11-28 20:20
ApiBlock.php
5.16
KB
-rw-r--r--
2016-11-28 20:20
ApiCSPReport.php
6.34
KB
-rw-r--r--
2016-11-28 20:20
ApiChangeAuthenticationData.php
2.95
KB
-rw-r--r--
2016-11-28 20:20
ApiCheckToken.php
2.24
KB
-rw-r--r--
2016-11-28 20:20
ApiClearHasMsg.php
1.62
KB
-rw-r--r--
2016-11-28 20:20
ApiClientLogin.php
4.39
KB
-rw-r--r--
2016-11-28 20:20
ApiComparePages.php
3.51
KB
-rw-r--r--
2016-11-28 20:20
ApiContinuationManager.php
8.03
KB
-rw-r--r--
2016-11-28 20:20
ApiDelete.php
6.38
KB
-rw-r--r--
2016-11-28 20:20
ApiDisabled.php
1.42
KB
-rw-r--r--
2016-11-28 20:20
ApiEditPage.php
18.94
KB
-rw-r--r--
2016-11-28 20:20
ApiEmailUser.php
2.79
KB
-rw-r--r--
2016-11-28 20:20
ApiErrorFormatter.php
9.31
KB
-rw-r--r--
2016-11-28 20:20
ApiExpandTemplates.php
7.05
KB
-rw-r--r--
2016-11-28 20:20
ApiFeedContributions.php
6.51
KB
-rw-r--r--
2016-11-28 20:20
ApiFeedRecentChanges.php
5.32
KB
-rw-r--r--
2016-11-28 20:20
ApiFeedWatchlist.php
8.96
KB
-rw-r--r--
2016-11-28 20:20
ApiFileRevert.php
3.86
KB
-rw-r--r--
2016-11-28 20:20
ApiFormatBase.php
8.3
KB
-rw-r--r--
2016-11-28 20:20
ApiFormatDbg.php
1.77
KB
-rw-r--r--
2010-12-22 21:52
ApiFormatDump.php
1.79
KB
-rw-r--r--
2011-01-10 23:36
ApiFormatFeedWrapper.php
3.51
KB
-rw-r--r--
2016-11-28 20:20
ApiFormatJson.php
3.86
KB
-rw-r--r--
2016-11-28 20:20
ApiFormatNone.php
1.07
KB
-rw-r--r--
2016-11-28 20:20
ApiFormatPhp.php
2.47
KB
-rw-r--r--
2016-11-28 20:20
ApiFormatRaw.php
3.02
KB
-rw-r--r--
2016-11-28 20:20
ApiFormatTxt.php
1.75
KB
-rw-r--r--
2010-12-22 21:52
ApiFormatWddx.php
4.07
KB
-rw-r--r--
2010-12-22 21:52
ApiFormatXml.php
8.96
KB
-rw-r--r--
2016-11-28 20:20
ApiFormatYaml.php
1.37
KB
-rw-r--r--
2011-04-18 13:42
ApiHelp.php
26.17
KB
-rw-r--r--
2016-11-28 20:20
ApiHelpParamValueMessage.php
1.95
KB
-rw-r--r--
2016-11-28 20:20
ApiImageRotate.php
5.19
KB
-rw-r--r--
2016-11-28 20:20
ApiImport.php
4.95
KB
-rw-r--r--
2016-11-28 20:20
ApiLinkAccount.php
3.83
KB
-rw-r--r--
2016-11-28 20:20
ApiLogin.php
9.22
KB
-rw-r--r--
2016-11-28 20:20
ApiLogout.php
2.04
KB
-rw-r--r--
2016-11-28 20:20
ApiMain.php
55.81
KB
-rw-r--r--
2016-11-28 20:20
ApiManageTags.php
3.24
KB
-rw-r--r--
2016-11-28 20:20
ApiMergeHistory.php
3.75
KB
-rw-r--r--
2016-11-28 20:20
ApiMessage.php
5.64
KB
-rw-r--r--
2016-11-28 20:20
ApiModuleManager.php
8.31
KB
-rw-r--r--
2016-11-28 20:20
ApiMove.php
7.22
KB
-rw-r--r--
2016-11-28 20:20
ApiOpenSearch.php
11.74
KB
-rw-r--r--
2016-11-28 20:20
ApiOptions.php
5.25
KB
-rw-r--r--
2016-11-28 20:20
ApiPageSet.php
44.37
KB
-rw-r--r--
2016-11-28 20:20
ApiParamInfo.php
14.88
KB
-rw-r--r--
2016-11-28 20:20
ApiParse.php
26.07
KB
-rw-r--r--
2016-11-28 20:20
ApiPatrol.php
2.99
KB
-rw-r--r--
2016-11-28 20:20
ApiProtect.php
5.54
KB
-rw-r--r--
2016-11-28 20:20
ApiPurge.php
5.83
KB
-rw-r--r--
2016-11-28 20:20
ApiQuery.php
17.13
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryAllCategories.php
5.79
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryAllDeletedRevisions.php
14.65
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryAllImages.php
11.64
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryAllLinks.php
8.69
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryAllMessages.php
7.26
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryAllPages.php
9.65
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryAllRevisions.php
8.78
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryAllUsers.php
11.5
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryAllimages.php
8.42
KB
-rw-r--r--
2011-11-28 16:52
ApiQueryAllmessages.php
7.59
KB
-rw-r--r--
2011-11-28 16:52
ApiQueryAllpages.php
10.24
KB
-rw-r--r--
2011-11-28 16:52
ApiQueryAuthManagerInfo.php
4.11
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryBacklinks.php
17.24
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryBacklinksprop.php
12.31
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryBase.php
17.33
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryBlocks.php
10.29
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryCategories.php
6.53
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryCategoryInfo.php
3.29
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryCategoryMembers.php
11.99
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryContributors.php
7.5
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryDeletedRevisions.php
9.64
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryDeletedrevs.php
16.42
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryDisabled.php
1.4
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryDuplicateFiles.php
5.38
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryExtLinksUsage.php
5.94
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryExternalLinks.php
3.79
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryFileRepoInfo.php
3.2
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryFilearchive.php
9.18
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryGeneratorBase.php
3.27
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryIWBacklinks.php
5.62
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryIWLinks.php
5.12
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryImageInfo.php
25.98
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryImages.php
4.88
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryInfo.php
27.38
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryLangBacklinks.php
5.55
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryLangLinks.php
5.44
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryLinks.php
6.63
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryLogEvents.php
14.02
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryMyStashedFiles.php
4.04
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryPagePropNames.php
2.96
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryPageProps.php
3.13
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryPagesWithProp.php
4.84
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryPrefixSearch.php
3.63
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryProtectedTitles.php
6.83
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryQueryPage.php
4.6
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryRandom.php
6.56
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryRecentChanges.php
21.5
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryRevisions.php
14.46
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryRevisionsBase.php
15.64
KB
-rw-r--r--
2016-11-28 20:20
ApiQuerySearch.php
10.87
KB
-rw-r--r--
2016-11-28 20:20
ApiQuerySiteinfo.php
26.94
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryStashImageInfo.php
4.25
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryTags.php
4.93
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryTokens.php
4
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryUserContributions.php
17.06
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryUserInfo.php
9.93
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryUsers.php
10.21
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryWatchlist.php
15.41
KB
-rw-r--r--
2016-11-28 20:20
ApiQueryWatchlistRaw.php
5.74
KB
-rw-r--r--
2016-11-28 20:20
ApiRemoveAuthenticationData.php
3.29
KB
-rw-r--r--
2016-11-28 20:20
ApiResetPassword.php
3.89
KB
-rw-r--r--
2016-11-28 20:20
ApiResult.php
36.21
KB
-rw-r--r--
2016-11-28 20:20
ApiRevisionDelete.php
6.42
KB
-rw-r--r--
2016-11-28 20:20
ApiRollback.php
6.02
KB
-rw-r--r--
2016-11-28 20:20
ApiRsd.php
4.71
KB
-rw-r--r--
2016-11-28 20:20
ApiSerializable.php
1.55
KB
-rw-r--r--
2016-11-28 20:20
ApiSetNotificationTimestamp.php
7.01
KB
-rw-r--r--
2016-11-28 20:20
ApiStashEdit.php
15.04
KB
-rw-r--r--
2016-11-28 20:20
ApiTag.php
4.6
KB
-rw-r--r--
2016-11-28 20:20
ApiTokens.php
3.11
KB
-rw-r--r--
2016-11-28 20:20
ApiUnblock.php
3.52
KB
-rw-r--r--
2016-11-28 20:20
ApiUndelete.php
3.9
KB
-rw-r--r--
2016-11-28 20:20
ApiUpload.php
30.6
KB
-rw-r--r--
2016-11-28 20:20
ApiUserrights.php
3.92
KB
-rw-r--r--
2016-11-28 20:20
ApiWatch.php
5.3
KB
-rw-r--r--
2016-11-28 20:20
SearchApi.php
6.16
KB
-rw-r--r--
2016-11-28 20:20
Save
Rename
<?php /** * * * Created on Sep 19, 2006 * * Copyright © 2006 Yuri Astrakhan "<Firstname><Lastname>@gmail.com" * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * http://www.gnu.org/copyleft/gpl.html * * @file */ /** * API XML output formatter * @ingroup API */ class ApiFormatXml extends ApiFormatBase { private $mRootElemName = 'api'; public static $namespace = 'http://www.mediawiki.org/xml/api/'; private $mIncludeNamespace = false; private $mXslt = null; public function getMimeType() { return 'text/xml'; } public function setRootElement( $rootElemName ) { $this->mRootElemName = $rootElemName; } public function execute() { $params = $this->extractRequestParams(); $this->mIncludeNamespace = $params['includexmlnamespace']; $this->mXslt = $params['xslt']; $this->printText( '<?xml version="1.0"?>' ); if ( !is_null( $this->mXslt ) ) { $this->addXslt(); } $result = $this->getResult(); if ( $this->mIncludeNamespace && $result->getResultData( 'xmlns' ) === null ) { // If the result data already contains an 'xmlns' namespace added // for custom XML output types, it will override the one for the // generic API results. // This allows API output of other XML types like Atom, RSS, RSD. $result->addValue( null, 'xmlns', self::$namespace, ApiResult::NO_SIZE_CHECK ); } $data = $result->getResultData( null, [ 'Custom' => function ( &$data, &$metadata ) { if ( isset( $metadata[ApiResult::META_TYPE] ) ) { // We want to use non-BC for BCassoc to force outputting of _idx. switch ( $metadata[ApiResult::META_TYPE] ) { case 'BCassoc': $metadata[ApiResult::META_TYPE] = 'assoc'; break; } } }, 'BC' => [ 'nobool', 'no*', 'nosub' ], 'Types' => [ 'ArmorKVP' => '_name' ], ] ); $this->printText( static::recXmlPrint( $this->mRootElemName, $data, $this->getIsHtml() ? -2 : null ) ); } /** * This method takes an array and converts it to XML. * * @param string|null $name Tag name * @param mixed $value Tag value (attributes/content/subelements) * @param int|null $indent Indentation * @param array $attributes Additional attributes * @return string */ public static function recXmlPrint( $name, $value, $indent, $attributes = [] ) { $retval = ''; if ( $indent !== null ) { if ( $name !== null ) { $indent += 2; } $indstr = "\n" . str_repeat( ' ', $indent ); } else { $indstr = ''; } if ( is_object( $value ) ) { $value = (array)$value; } if ( is_array( $value ) ) { $contentKey = isset( $value[ApiResult::META_CONTENT] ) ? $value[ApiResult::META_CONTENT] : '*'; $subelementKeys = isset( $value[ApiResult::META_SUBELEMENTS] ) ? $value[ApiResult::META_SUBELEMENTS] : []; if ( isset( $value[ApiResult::META_BC_SUBELEMENTS] ) ) { $subelementKeys = array_merge( $subelementKeys, $value[ApiResult::META_BC_SUBELEMENTS] ); } $preserveKeys = isset( $value[ApiResult::META_PRESERVE_KEYS] ) ? $value[ApiResult::META_PRESERVE_KEYS] : []; $indexedTagName = isset( $value[ApiResult::META_INDEXED_TAG_NAME] ) ? self::mangleName( $value[ApiResult::META_INDEXED_TAG_NAME], $preserveKeys ) : '_v'; $bcBools = isset( $value[ApiResult::META_BC_BOOLS] ) ? $value[ApiResult::META_BC_BOOLS] : []; $indexSubelements = isset( $value[ApiResult::META_TYPE] ) ? $value[ApiResult::META_TYPE] !== 'array' : false; $content = null; $subelements = []; $indexedSubelements = []; foreach ( $value as $k => $v ) { if ( ApiResult::isMetadataKey( $k ) && !in_array( $k, $preserveKeys, true ) ) { continue; } $oldv = $v; if ( is_bool( $v ) && !in_array( $k, $bcBools, true ) ) { $v = $v ? 'true' : 'false'; } if ( $name !== null && $k === $contentKey ) { $content = $v; } elseif ( is_int( $k ) ) { $indexedSubelements[$k] = $v; } elseif ( is_array( $v ) || is_object( $v ) ) { $subelements[self::mangleName( $k, $preserveKeys )] = $v; } elseif ( in_array( $k, $subelementKeys, true ) || $name === null ) { $subelements[self::mangleName( $k, $preserveKeys )] = [ 'content' => $v, ApiResult::META_CONTENT => 'content', ApiResult::META_TYPE => 'assoc', ]; } elseif ( is_bool( $oldv ) ) { if ( $oldv ) { $attributes[self::mangleName( $k, $preserveKeys )] = ''; } } elseif ( $v !== null ) { $attributes[self::mangleName( $k, $preserveKeys )] = $v; } } if ( $content !== null ) { if ( $subelements || $indexedSubelements ) { $subelements[self::mangleName( $contentKey, $preserveKeys )] = [ 'content' => $content, ApiResult::META_CONTENT => 'content', ApiResult::META_TYPE => 'assoc', ]; $content = null; } elseif ( is_scalar( $content ) ) { // Add xml:space="preserve" to the element so XML parsers // will leave whitespace in the content alone $attributes += [ 'xml:space' => 'preserve' ]; } } if ( $content !== null ) { if ( is_scalar( $content ) ) { $retval .= $indstr . Xml::element( $name, $attributes, $content ); } else { if ( $name !== null ) { $retval .= $indstr . Xml::element( $name, $attributes, null ); } $retval .= static::recXmlPrint( null, $content, $indent ); if ( $name !== null ) { $retval .= $indstr . Xml::closeElement( $name ); } } } elseif ( !$indexedSubelements && !$subelements ) { if ( $name !== null ) { $retval .= $indstr . Xml::element( $name, $attributes ); } } else { if ( $name !== null ) { $retval .= $indstr . Xml::element( $name, $attributes, null ); } foreach ( $subelements as $k => $v ) { $retval .= static::recXmlPrint( $k, $v, $indent ); } foreach ( $indexedSubelements as $k => $v ) { $retval .= static::recXmlPrint( $indexedTagName, $v, $indent, $indexSubelements ? [ '_idx' => $k ] : [] ); } if ( $name !== null ) { $retval .= $indstr . Xml::closeElement( $name ); } } } else { // to make sure null value doesn't produce unclosed element, // which is what Xml::element( $name, null, null ) returns if ( $value === null ) { $retval .= $indstr . Xml::element( $name, $attributes ); } else { $retval .= $indstr . Xml::element( $name, $attributes, $value ); } } return $retval; } /** * Mangle XML-invalid names to be valid in XML * @param string $name * @param array $preserveKeys Names to not mangle * @return string Mangled name */ private static function mangleName( $name, $preserveKeys = [] ) { static $nsc = null, $nc = null; if ( in_array( $name, $preserveKeys, true ) ) { return $name; } if ( $name === '' ) { return '_'; } if ( $nsc === null ) { // Note we omit ':' from $nsc and $nc because it's reserved for XML // namespacing, and we omit '_' from $nsc (but not $nc) because we // reserve it. $nsc = 'A-Za-z\x{C0}-\x{D6}\x{D8}-\x{F6}\x{F8}-\x{2FF}\x{370}-\x{37D}\x{37F}-\x{1FFF}' . '\x{200C}-\x{200D}\x{2070}-\x{218F}\x{2C00}-\x{2FEF}\x{3001}-\x{D7FF}' . '\x{F900}-\x{FDCF}\x{FDF0}-\x{FFFD}\x{10000}-\x{EFFFF}'; $nc = $nsc . '_\-.0-9\x{B7}\x{300}-\x{36F}\x{203F}-\x{2040}'; } if ( preg_match( "/^[$nsc][$nc]*$/uS", $name ) ) { return $name; } return '_' . preg_replace_callback( "/[^$nc]/uS", function ( $m ) { return sprintf( '.%X.', UtfNormal\Utils::utf8ToCodepoint( $m[0] ) ); }, str_replace( '.', '.2E.', $name ) ); } protected function addXslt() { $nt = Title::newFromText( $this->mXslt ); if ( is_null( $nt ) || !$nt->exists() ) { $this->setWarning( 'Invalid or non-existent stylesheet specified' ); return; } if ( $nt->getNamespace() != NS_MEDIAWIKI ) { $this->setWarning( 'Stylesheet should be in the MediaWiki namespace.' ); return; } if ( substr( $nt->getText(), -4 ) !== '.xsl' ) { $this->setWarning( 'Stylesheet should have .xsl extension.' ); return; } $this->printText( '<?xml-stylesheet href="' . htmlspecialchars( $nt->getLocalURL( 'action=raw' ) ) . '" type="text/xsl" ?>' ); } public function getAllowedParams() { return parent::getAllowedParams() + [ 'xslt' => [ ApiBase::PARAM_HELP_MSG => 'apihelp-xml-param-xslt', ], 'includexmlnamespace' => [ ApiBase::PARAM_DFLT => false, ApiBase::PARAM_HELP_MSG => 'apihelp-xml-param-includexmlnamespace', ], ]; } }