jenkins-bot has submitted this change and it was merged. Change subject: Use SiteLinkLookup in WikibaseLuaBindings for getSiteLinkPageName ......................................................................
Use SiteLinkLookup in WikibaseLuaBindings for getSiteLinkPageName instead of loading entire entities here. Bug: T108928 Change-Id: Ie0bd94e9b31ecc0c244c079a44ed71953ca42f8d --- M client/includes/DataAccess/Scribunto/WikibaseLuaBindings.php 1 file changed, 19 insertions(+), 12 deletions(-) Approvals: Jonas Kress (WMDE): Looks good to me, but someone else must approve Daniel Kinzler: Looks good to me, approved jenkins-bot: Verified diff --git a/client/includes/DataAccess/Scribunto/WikibaseLuaBindings.php b/client/includes/DataAccess/Scribunto/WikibaseLuaBindings.php index fad00b7..621e16f 100644 --- a/client/includes/DataAccess/Scribunto/WikibaseLuaBindings.php +++ b/client/includes/DataAccess/Scribunto/WikibaseLuaBindings.php @@ -12,6 +12,7 @@ use Wikibase\DataModel\Services\EntityId\EntityIdParsingException; use Wikibase\DataModel\Services\Lookup\EntityLookup; use Wikibase\DataModel\Services\Lookup\LabelDescriptionLookup; +use Wikibase\DataModel\SiteLink; use Wikibase\Lib\Store\SiteLinkLookup; use Wikibase\Lib\Store\StorageException; use Wikibase\SettingsArray; @@ -41,7 +42,7 @@ /** * @var SiteLinkLookup */ - private $siteLinkTable; + private $siteLinkLookup; /** * @var SettingsArray @@ -71,7 +72,7 @@ /** * @param EntityIdParser $entityIdParser * @param EntityLookup $entityLookup - * @param SiteLinkLookup $siteLinkTable + * @param SiteLinkLookup $siteLinkLookup * @param SettingsArray $settings * @param LabelDescriptionLookup $labelDescriptionLookup * @param UsageAccumulator $usageAccumulator for tracking title usage via getEntityId. @@ -84,7 +85,7 @@ public function __construct( EntityIdParser $entityIdParser, EntityLookup $entityLookup, - SiteLinkLookup $siteLinkTable, + SiteLinkLookup $siteLinkLookup, SettingsArray $settings, LabelDescriptionLookup $labelDescriptionLookup, UsageAccumulator $usageAccumulator, @@ -93,7 +94,7 @@ ) { $this->entityIdParser = $entityIdParser; $this->entityLookup = $entityLookup; - $this->siteLinkTable = $siteLinkTable; + $this->siteLinkLookup = $siteLinkLookup; $this->settings = $settings; $this->labelDescriptionLookup = $labelDescriptionLookup; $this->usageAccumulator = $usageAccumulator; @@ -111,7 +112,7 @@ * @return string|null */ public function getEntityId( $pageTitle ) { - $id = $this->siteLinkTable->getItemIdForLink( $this->siteId, $pageTitle ); + $id = $this->siteLinkLookup->getItemIdForLink( $this->siteId, $pageTitle ); if ( !$id ) { return null; @@ -186,7 +187,7 @@ * @param string $prefixedEntityId * * @since 0.5 - * @return string|null Null if entity couldn't be found/ no label present + * @return string|null Null if no site link found. */ public function getSiteLinkPageName( $prefixedEntityId ) { try { @@ -195,14 +196,20 @@ return null; } - /** @var Item $item */ - $item = $this->entityLookup->getEntity( $itemId ); - if ( !$item || !$item->getSiteLinkList()->hasLinkWithSiteId( $this->siteId ) ) { - return null; + // @fixme the SiteLinks do not contain badges! but all we want here is page name. + $siteLinkRows = $this->siteLinkLookup->getLinks( + array( $itemId->getNumericId() ), + array( $this->siteId ) + ); + + foreach ( $siteLinkRows as $siteLinkRow ) { + $siteLink = new SiteLink( $siteLinkRow[0], $siteLinkRow[1] ); + + $this->usageAccumulator->addTitleUsage( $itemId ); + return $siteLink->getPageName(); } - $this->usageAccumulator->addTitleUsage( $itemId ); - return $item->getSiteLinkList()->getBySiteId( $this->siteId )->getPageName(); + return null; } /** -- To view, visit https://gerrit.wikimedia.org/r/231533 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ie0bd94e9b31ecc0c244c079a44ed71953ca42f8d Gerrit-PatchSet: 6 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Aude <aude.w...@gmail.com> Gerrit-Reviewer: Addshore <addshorew...@gmail.com> Gerrit-Reviewer: Aude <aude.w...@gmail.com> Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de> Gerrit-Reviewer: Hoo man <h...@online.de> Gerrit-Reviewer: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de> Gerrit-Reviewer: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits