MarkTraceur has uploaded a new change for review. https://gerrit.wikimedia.org/r/87487
Change subject: Add file-link "parser" to mw.Title from commons ...................................................................... Add file-link "parser" to mw.Title from commons Rillke has been amazing and provided us with a first pass at a file URL parser for MediaWiki: https://commons.wikimedia.org/wiki/MediaWiki:Gadget-libUtil.js Hoping to use this for Extension:MultimediaViewer and others in the near future - potentially replacing patchset Ib69d1ffdfd3b58c2e8e3314940a2cad311b85533 Change-Id: Ie31e6df376bda087e92ec889d54df3374ba96b5e --- M resources/mediawiki/mediawiki.Title.js 1 file changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/87/87487/1 diff --git a/resources/mediawiki/mediawiki.Title.js b/resources/mediawiki/mediawiki.Title.js index b86a14b..1657450 100644 --- a/resources/mediawiki/mediawiki.Title.js +++ b/resources/mediawiki/mediawiki.Title.js @@ -234,6 +234,40 @@ } }; + /** + * Get the file title from a file source link + * + * @example + * var title = mw.Title.fromImgSrc( $( 'img:first' ).prop( 'src' ) ); + * + * @static + * @param {string} src The image src attribute + * @return {mw.Title|undefined} The file title - undefined if unsuccessful. + */ + Title.fromImgSrc = function(src) { + var matches, i, regex, + decodedSrc = decodeURIComponent( src ), + underscores = /_/g, + + regexes = [ + /\/[a-f0-9]\/[a-f0-9]{2}\/(\S+\.\S{2,5})\//, + /thumb\.php.*(?:\?|\&)f=(\S+\.\S{2,5})(?:\&.+)?$/, + /\/[a-f0-9]\/[a-f0-9]{2}\/(\S+\.\S{2,5})$/ + ], + + recount = regexes.length; + + for ( i = 0; i < recount; i++ ) { + regex = regexes[i]; + matches = decodedSrc.match( regex ); + + if ( matches && matches[1] ) { + return new mw.Title( matches[1].replace( underscores, ' ' ) ); + } + } + }; + + /* Public methods */ fn = { -- To view, visit https://gerrit.wikimedia.org/r/87487 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ie31e6df376bda087e92ec889d54df3374ba96b5e Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: MarkTraceur <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
