http://www.mediawiki.org/wiki/Special:Code/MediaWiki/82780
Revision: 82780
Author: dale
Date: 2011-02-25 01:29:11 +0000 (Fri, 25 Feb 2011)
Log Message:
-----------
fixed $.cookie object usage
fixed timed text loading to use parser where needed.
Modified Paths:
--------------
trunk/extensions/MwEmbedSupport/MwEmbedModules/MwEmbedSupport/mwEmbedSupport.js
trunk/extensions/TimedMediaHandler/MwEmbedModules/EmbedPlayer/resources/MediaPlayers.js
trunk/extensions/TimedMediaHandler/MwEmbedModules/TimedText/resources/mw.TimedText.js
trunk/extensions/TimedMediaHandler/TimedMediaTransformOutput.php
Modified:
trunk/extensions/MwEmbedSupport/MwEmbedModules/MwEmbedSupport/mwEmbedSupport.js
===================================================================
---
trunk/extensions/MwEmbedSupport/MwEmbedModules/MwEmbedSupport/mwEmbedSupport.js
2011-02-25 01:24:21 UTC (rev 82779)
+++
trunk/extensions/MwEmbedSupport/MwEmbedModules/MwEmbedSupport/mwEmbedSupport.js
2011-02-25 01:29:11 UTC (rev 82780)
@@ -157,13 +157,13 @@
return 'mw_message_swap_index_' + key + '_' + index;
};
- var doSpecialSwap = false;
-
-
+ var doSpecialSwap = false;
+ var text = mediaWiki.messages.get( key );
+ if( !text){
+ return '<' + key + '>';
+ }
- var text = mediaWiki.messages.get( key )
-
// replace links:
text = text.replace( /\[(\S+)\s+([^\]]*)\]/g, function(
matched, link, linkText ) {
var indexIdAttribute = '';
Modified:
trunk/extensions/TimedMediaHandler/MwEmbedModules/EmbedPlayer/resources/MediaPlayers.js
===================================================================
---
trunk/extensions/TimedMediaHandler/MwEmbedModules/EmbedPlayer/resources/MediaPlayers.js
2011-02-25 01:24:21 UTC (rev 82779)
+++
trunk/extensions/TimedMediaHandler/MwEmbedModules/EmbedPlayer/resources/MediaPlayers.js
2011-02-25 01:29:11 UTC (rev 82780)
@@ -134,7 +134,7 @@
*/
setFormatPreference : function ( mimeFormat ) {
this.preference['formatPreference'] = mimeFormat;
- $.cookie( 'EmbedPlayer.Preference', this.preference);
+ $.cookie( 'EmbedPlayer.Preference', JSON.stringify(
this.preference) );
},
/**
@@ -152,7 +152,7 @@
selectedPlayer = this.players[i];
mw.log( 'EmbedPlayer::setPlayerPreference:
choosing ' + playerId + ' for ' + mimeType );
this.preference[ mimeType ] = playerId;
- $.cookie( 'EmbedPlayer.Preference',
this.preference );
+ $.cookie( 'EmbedPlayer.Preference',
JSON.stringify( this.preference ) );
break;
}
}
@@ -176,7 +176,7 @@
this.preference = { };
// See if we have a cookie set to a clientSupported type:
if( $.cookie( 'EmbedPlayer.Preference' ) ) {
- this.preference = $.cookie( 'EmbedPlayer.Preference' );
+ this.preference = JSON.parse( $.cookie(
'EmbedPlayer.Preference' ) );
}
}
};
Modified:
trunk/extensions/TimedMediaHandler/MwEmbedModules/TimedText/resources/mw.TimedText.js
===================================================================
---
trunk/extensions/TimedMediaHandler/MwEmbedModules/TimedText/resources/mw.TimedText.js
2011-02-25 01:24:21 UTC (rev 82779)
+++
trunk/extensions/TimedMediaHandler/MwEmbedModules/TimedText/resources/mw.TimedText.js
2011-02-25 01:29:11 UTC (rev 82780)
@@ -18,7 +18,8 @@
mw.mergeConfig( 'EmbedPlayer.SourceAttributes', [
'srclang',
'category',
- 'label'
+ 'label',
+ 'data-mwtitle'
]);
/**
@@ -129,7 +130,7 @@
// Load user preferences config:
var preferenceConfig = $.cookie( 'TimedText.Prefrences'
);
if( preferenceConfig !== null ) {
- this.config = preferenceConfig;
+ this.config = JSON.parse( preferenceConfig );
}
// Set up embedPlayer hooks:
@@ -398,23 +399,7 @@
loadTextSources: function( callback ) {
var _this = this;
this.textSources = [ ];
- // Get local reference to all timed text sources: (
text/xml, text/x-srt etc )
- var inlineSources =
this.embedPlayer.mediaElement.getSources( 'text' );
- // Add all the sources to textSources
- for( var i = 0 ; i < inlineSources.length ; i++ ) {
- // Make a new textSource:
- var source = new TextSource( inlineSources[i]
);
- this.textSources.push( source );
- }
-
- // If there are inline sources or no apiTitleKey we are
done loading
- if( this.textSources.length != 0 ||
!this.embedPlayer.apiTitleKey ) {
- // No other sources just issue the callback:
- callback();
- return ;
- }
-
// Try to get sources from text provider:
var provider_id = ( this.embedPlayer.apiProvider ) ?
this.embedPlayer.apiProvider : 'local';
var apiUrl = mw.getApiProviderURL( provider_id );
@@ -430,6 +415,21 @@
'apiUrl': apiUrl,
'embedPlayer': this.embedPlayer
} );
+ // Get local reference to all timed text sources: (
text/xml, text/x-srt etc )
+ var inlineSources =
this.embedPlayer.mediaElement.getSources( 'text' );
+
+ // Add all the sources to textSources
+ for( var i = 0 ; i < inlineSources.length ; i++ ) {
+ // Make a new textSource:
+ var source = new TextSource( inlineSources[i] ,
this.textProvider);
+ this.textSources.push( source);
+ }
+
+ // If there are inline sources don't check the api )
+ if( this.textSources.length != 0 ){
+ callback();
+ return ;
+ }
// Load the textProvider sources
this.textProvider.loadSources( apiTitleKey, function(
textSources ) {
@@ -933,7 +933,7 @@
*/
refreshDisplay: function() {
// Update the configuration object
- $.cookie( 'TimedText.Prefrences', this.config );
+ $.cookie( 'TimedText.Prefrences', JSON.stringify(
this.config ) );
// Empty out previous text to force an interface update:
this.prevText = [];
@@ -1071,7 +1071,6 @@
mw.log(" addItextDiv: " + category );
// Get the relative positioned player class from the
controlBuilder:
var $playerTarget = this.embedPlayer.$interface;
-
//Remove any existing track divs for this player;
$playerTarget.find('.track_' + category ).remove();
@@ -1165,11 +1164,14 @@
/**
* @constructor Inherits mediaSource from embedPlayer
* @param {source} Base source element
+ * @param {Object} Pointer to the textProvider
*/
- init: function( source , textProvider) {
- for( var i in source) {
- this[i] = source[i];
+ init: function( source , textProvider) {
+ // Inherits mediaSource
+ for( var i in source){
+ this[ i ] = source[ i];
}
+
// Set default category to subtitle if unset:
if( ! this.category ) {
this.category = 'SUB';
@@ -1177,7 +1179,16 @@
//Set the textProvider if provided
if( textProvider ) {
this.textProvider = textProvider;
+
+ // switch type to mw-srt if we are going to
load via api
+ // ( this is need because we want to represent
one thing to search engines / crawlers,
+ // while representing the mw-srt type
internally so that mediawiki parsed text
+ // gets converted to html before going into the
video
+ if( this.mwtitle ){
+ this.mimeType = 'text/mw-srt';
+ }
}
+ return this;
},
/**
@@ -1195,7 +1206,6 @@
}
};
_this.loaded = true;
-
// Set parser handler:
switch( this.getMIMEType() ) {
//Special mediaWiki srt format ( support
wiki-text in srt's )
@@ -1216,13 +1226,12 @@
mw.log("Error: no handler for type: " +
this.getMIMEType() );
return ;
}
-
// Try to load src via textProvider:
- if( this.textProvider && this.titleKey ) {
- this.textProvider.loadTitleKey( this.titleKey,
function( data ) {
+ if( this.textProvider && this.mwtitle) {
+ this.textProvider.loadTitleKey( this.mwtitle,
function( data ) {
if( data ) {
_this.captions = handler( data
);
- }
+ }
mw.log("mw.TimedText:: loaded from
titleKey: " + _this.captions.length + ' captions');
// Update the loaded state:
_this.loaded = true;
Modified: trunk/extensions/TimedMediaHandler/TimedMediaTransformOutput.php
===================================================================
--- trunk/extensions/TimedMediaHandler/TimedMediaTransformOutput.php
2011-02-25 01:24:21 UTC (rev 82779)
+++ trunk/extensions/TimedMediaHandler/TimedMediaTransformOutput.php
2011-02-25 01:29:11 UTC (rev 82780)
@@ -251,7 +251,7 @@
$data = $api->getResultData();
// Get the list of language Names
$langNames = Language::getLanguageNames();
-
+
if( $data['query'] && $data['query']['allpages'] ){
foreach( $data['query']['allpages'] as $na => $page ){
$subTitle = Title::newFromText( $page['title']
) ;
@@ -269,6 +269,7 @@
$this->textTracks[] = array(
'kind' => 'subtitles',
'data-mwtitle' =>
$subTitle->getNsText() . ':' . $subTitle->getDBkey(),
+ 'data-mwprovider' => 'local',
'type' => 'text/x-srt',
// TODO Should add a special entry
point and output proper WebVTT format:
//
http://www.whatwg.org/specs/web-apps/current-work/webvtt.html
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs