jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/395653 )
Change subject: Media: Exclude .noviewer and .metadata items
......................................................................
Media: Exclude .noviewer and .metadata items
Looks like this mostly overlaps with our size- and mime-based filtering.
Bug: T177430
Change-Id: Idfe8664cf187e0811a27dbce94a1f361e42cb910
---
M lib/media.js
M lib/selectors.js
M test/diff/results/page_media-enwiki-Hummingbird.json
M test/lib/media/media-test.js
4 files changed, 14 insertions(+), 50 deletions(-)
Approvals:
BearND: Looks good to me, approved
jenkins-bot: Verified
diff --git a/lib/media.js b/lib/media.js
index aeae4e8..136aa86 100644
--- a/lib/media.js
+++ b/lib/media.js
@@ -4,7 +4,8 @@
const api = require('./api-util');
const mUtil = require('./mobile-util');
const Title = require('mediawiki-title').Title;
-const MediaSelectors = require('./selectors').MediaSelectors;
+const Selectors = require('./selectors').MediaSelectors;
+const Blacklist = require('./selectors').MediaBlacklist;
const SpokenWikipediaId = require('./selectors').SpokenWikipediaId;
const MIN_IMAGE_SIZE = 64;
@@ -55,8 +56,8 @@
function getMediaItemInfoFromPage(html) {
const doc = domino.createDocument(html);
// todo: handle Mathoid-rendered math images
- const selection = doc.querySelectorAll(MediaSelectors.join());
- return [].map.call(selection, (elem) => {
+ const elems = doc.querySelectorAll(Selectors.join()).filter(e =>
!e.closest(Blacklist.join()));
+ return [].map.call(elems, (elem) => {
const mediaType = getMediaType(elem);
const resource = mediaType.selector &&
elem.querySelector(mediaType.selector);
const figCaption = elem.querySelector('figcaption');
diff --git a/lib/selectors.js b/lib/selectors.js
index 835aac7..3e66897 100644
--- a/lib/selectors.js
+++ b/lib/selectors.js
@@ -13,6 +13,11 @@
'span.IPA+small a[rel=mw:MediaLink]'
];
+const MediaBlacklist = [
+ '.noviewer',
+ '.metadata'
+];
+
const ImageSelectors = MediaSelectors.filter(selector =>
selector.includes('Image'));
const VideoSelectors = MediaSelectors.filter(selector =>
selector.includes('Video'));
const PronunciationSelector = MediaSelectors.filter(selector =>
selector.includes('IPA'))[0];
@@ -22,6 +27,7 @@
module.exports = {
MediaSelectors,
+ MediaBlacklist,
ImageSelectors,
VideoSelectors,
PronunciationSelector,
diff --git a/test/diff/results/page_media-enwiki-Hummingbird.json
b/test/diff/results/page_media-enwiki-Hummingbird.json
index 1bf7b9c..e3a50d5 100644
--- a/test/diff/results/page_media-enwiki-Hummingbird.json
+++ b/test/diff/results/page_media-enwiki-Hummingbird.json
@@ -826,52 +826,6 @@
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0",
"description": "A female Anna's Hummingbird <i><a
href=\"//commons.wikimedia.org/wiki/Calypte_anna\" title=\"Calypte
anna\">Calypte anna</a></i> perched on a small branch."
- },
- {
- "type": "image",
- "titles": {
- "canonical": "File:Caribou_from_Wagon_Trails.jpg",
- "normalized": "File:Caribou from Wagon Trails.jpg",
- "display": "File:Caribou from Wagon Trails.jpg"
- },
- "thumbnail": {
- "source":
"https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Caribou_from_Wagon_Trails.jpg/320px-Caribou_from_Wagon_Trails.jpg",
- "width": 320,
- "height": 219,
- "mime": "image/jpeg"
- },
- "original": {
- "source":
"https://upload.wikimedia.org/wikipedia/commons/e/e0/Caribou_from_Wagon_Trails.jpg",
- "width": 2064,
- "height": 1413,
- "mime": "image/jpeg"
- },
- "file_page":
"https://commons.wikimedia.org/wiki/File:Caribou_from_Wagon_Trails.jpg",
- "license": "CC BY-SA 2.5",
- "license_url": "https://creativecommons.org/licenses/by-sa/2.5"
- },
- {
- "type": "image",
- "titles": {
- "canonical": "File:Issoria_lathonia.jpg",
- "normalized": "File:Issoria lathonia.jpg",
- "display": "File:Issoria lathonia.jpg"
- },
- "thumbnail": {
- "source":
"https://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/Issoria_lathonia.jpg/320px-Issoria_lathonia.jpg",
- "width": 320,
- "height": 226,
- "mime": "image/jpeg"
- },
- "original": {
- "source":
"https://upload.wikimedia.org/wikipedia/commons/2/2d/Issoria_lathonia.jpg",
- "width": 629,
- "height": 445,
- "mime": "image/jpeg"
- },
- "file_page":
"https://commons.wikimedia.org/wiki/File:Issoria_lathonia.jpg",
- "license": "CC-BY-SA-3.0",
- "license_url": "http://creativecommons.org/licenses/by-sa/3.0/"
}
]
}
\ No newline at end of file
diff --git a/test/lib/media/media-test.js b/test/lib/media/media-test.js
index 7ab95bd..c4ea7eb 100644
--- a/test/lib/media/media-test.js
+++ b/test/lib/media/media-test.js
@@ -29,12 +29,15 @@
const noTypeSpan = '<span><video resource="./File:Foo"/></span>';
const noTypeFigureInline = '<figure-inline><video
resource="./File:Foo"/></figure-inline>';
+const imageNoViewer = '<figure typeof="mw:Image" class="noviewer"><img
resource="./File:Foo"/></figure>';
+const imageMetadata = '<span class="metadata"><figure typeof="mw:Image"><img
resource="./File:Foo"/></figure></span>';
+
const images = [imageFigure, imageSpan, imageFigureInline, imageThumbFigure,
imageThumbSpan, imageThumbFigureInline];
const videos = [videoFigure, videoSpan, videoFigureInline, videoThumbFigure,
videoThumbSpan, videoThumbFigureInline];
const audio = [audioFigure, audioSpan, audioFigureInline];
const validItems = images.concat(videos).concat(audio);
-const invalidItems = [noTypeFigure, noTypeSpan, noTypeFigureInline];
+const invalidItems = [noTypeFigure, noTypeSpan, noTypeFigureInline,
imageNoViewer, imageMetadata];
const imageWithCaption =
'<figure typeof="mw:Image">' +
--
To view, visit https://gerrit.wikimedia.org/r/395653
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Idfe8664cf187e0811a27dbce94a1f361e42cb910
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/services/mobileapps
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>
Gerrit-Reviewer: BearND <[email protected]>
Gerrit-Reviewer: Fjalapeno <[email protected]>
Gerrit-Reviewer: Gergő Tisza <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: Mholloway <[email protected]>
Gerrit-Reviewer: Mhurd <[email protected]>
Gerrit-Reviewer: Ppchelko <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits