From ce6e0e234854771674ec676c5313b6298646cd0e Mon Sep 17 00:00:00 2001 From: Brian Wolff Date: Wed, 2 Jul 2014 23:34:00 -0300 Subject: [PATCH] Do not include file redirects in Special:Wantedfiles If you look at [[Special:WantedFiles]] on commons, its full of file redirects, making the page kind of useless. This makes the query much more complex, but at least the page will be useful. The page will still be useless on non-commons projects due to foreign files being listed as missing. Change-Id: I115fdaa3b67bee81ba0a715ebb427bb35cf0f67e --- includes/specials/SpecialWantedfiles.php | 32 ++++++++++++++++++++---- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/includes/specials/SpecialWantedfiles.php b/includes/specials/SpecialWantedfiles.php index fa68504b2a..7d439fa44b 100644 --- a/includes/specials/SpecialWantedfiles.php +++ b/includes/specials/SpecialWantedfiles.php @@ -74,17 +74,39 @@ class WantedFilesPage extends WantedQueryPage { function getQueryInfo() { return array( - 'tables' => array( 'imagelinks', 'image' ), + 'tables' => array( + 'imagelinks', + 'page', + 'redirect', + 'img1' => 'image', + 'img2' => 'image', + ), 'fields' => array( 'namespace' => NS_FILE, 'title' => 'il_to', 'value' => 'COUNT(*)' ), - 'conds' => array( 'img_name IS NULL' ), + 'conds' => array( + 'img1.img_name' => null, + // We also need to exclude file redirects + 'img2.img_name' => null, + ), 'options' => array( 'GROUP BY' => 'il_to' ), - 'join_conds' => array( 'image' => - array( 'LEFT JOIN', - array( 'il_to = img_name' ) + 'join_conds' => array( + 'img1' => array( 'LEFT JOIN', + 'il_to = img1.img_name' + ), + 'page' => array( 'LEFT JOIN', array( + 'il_to = page_title', + 'page_namespace' => NS_FILE, + ) ), + 'redirect' => array( 'LEFT JOIN', array( + 'page_id = rd_from', + 'rd_namespace' => NS_FILE, + 'rd_interwiki' => '' + ) ), + 'img2' => array( 'LEFT JOIN', + 'rd_title = img2.img_name' ) ) ); -- 2.20.1