- if ( mw.Title.newFromText( query ) ) {
- return this.getInterwikiPrefixesPromise().then( function ( interwikiPrefixes ) {
- var interwiki = query.substring( 0, query.indexOf( ':' ) );
- if (
- interwiki && interwiki !== '' &&
- interwikiPrefixes.indexOf( interwiki ) !== -1
- ) {
- return $.Deferred().resolve( { query: {
- pages: [ {
- title: query
- } ]
- } } ).promise( promiseAbortObject );
- } else {
- req = api.get( widget.getApiParams( query ) );
- promiseAbortObject.abort = req.abort.bind( req ); // TODO ew
- return req.then( function ( ret ) {
- if ( ret.query === undefined ) {
- ret = api.get( { action: 'query', titles: query } );
- promiseAbortObject.abort = ret.abort.bind( ret );
- }
- return ret;
- } );
- }
- } ).promise( promiseAbortObject );
- } else {