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

Reply via email to