diff --git a/plugins/wikipedia/popcorn.wikipedia.html b/plugins/wikipedia/popcorn.wikipedia.html index 8026a922..067fab37 100644 --- a/plugins/wikipedia/popcorn.wikipedia.html +++ b/plugins/wikipedia/popcorn.wikipedia.html @@ -14,6 +14,7 @@ start: 0, // seconds end: 10, // seconds src: 'http://en.wikipedia.org/wiki/Cape_Town', + title: "this is an article", target: 'wikidiv' } ) .wikipedia({ diff --git a/plugins/wikipedia/popcorn.wikipedia.js b/plugins/wikipedia/popcorn.wikipedia.js index 75041ff9..f81ee30a 100644 --- a/plugins/wikipedia/popcorn.wikipedia.js +++ b/plugins/wikipedia/popcorn.wikipedia.js @@ -71,25 +71,25 @@ var wikiCallback; // wiki global callback function with a unique id // function gets the needed information from wikipedia // and stores it by appending values to the options object - window["wikiCallback"+ _guid] = function (data) { - options._link = document.createElement('a'); - options._link.setAttribute('href', options.src); - options._link.setAttribute('target', '_blank'); + window["wikiCallback"+ _guid] = function ( data ) { + options._link = document.createElement( 'a' ); + options._link.setAttribute( 'href', options.src ); + options._link.setAttribute( 'target', '_blank' ); // add the title of the article to the link - options._link.innerHTML = data.parse.displaytitle; + options._link.innerHTML = options.title || data.parse.displaytitle; // get the content of the wiki article - options._desc = document.createElement('p'); + options._desc = document.createElement( 'p' ); // get the article text and remove any special characters - _text = data.parse.text["*"].substr(data.parse.text["*"].indexOf('

')); + _text = data.parse.text[ "*" ].substr( data.parse.text[ "*" ].indexOf('

') ); _text = _text.replace(/((<(.|\n)+?>)|(\((.*?)\) )|(\[(.*?)\]))/g, ""); - options._desc.innerHTML = _text.substr(0, options.numberofwords ) + " ..."; + options._desc.innerHTML = _text.substr( 0, options.numberofwords ) + " ..."; options._fired = true; }; - var head = document.getElementsByTagName("head")[0]; - var script = document.createElement("script"); - script.src = "http://"+options.lang+".wikipedia.org/w/api.php?action=parse&props=text&page=" + ( options.title || options.src.slice(options.src.lastIndexOf("/")+1)) + "&format=json&callback=wikiCallback"+ _guid; + var head = document.getElementsByTagName( "head" )[0]; + var script = document.createElement( "script" ); + script.src = "http://" + options.lang + ".wikipedia.org/w/api.php?action=parse&props=text&page=" + ( options.title || options.src.slice( options.src.lastIndexOf("/")+1) ) + "&format=json&callback=wikiCallback" + _guid; head.insertBefore( script, head.firstChild ); }, @@ -99,20 +99,20 @@ var wikiCallback; * of the video reaches the start time provided by the * options variable */ - start: function(event, options){ + start: function( event, options ){ // dont do anything if the information didn't come back from wiki var isReady = function () { if ( !options._fired ) { - setTimeout(function () { + setTimeout( function () { isReady(); }, 13); } else { - if (options._link && options._desc) { + if ( options._link && options._desc ) { if ( document.getElementById( options.target ) ) { - document.getElementById( options.target ).appendChild(options._link); - document.getElementById( options.target ).appendChild(options._desc); + document.getElementById( options.target ).appendChild( options._link ); + document.getElementById( options.target ).appendChild( options._desc ); options._added = true; } } @@ -127,12 +127,12 @@ var wikiCallback; * of the video reaches the end time provided by the * options variable */ - end: function(event, options){ + end: function( event, options ){ // ensure that the data was actually added to the // DOM before removal - if (options._added) { - document.getElementById( options.target ).removeChild(options._link); - document.getElementById( options.target ).removeChild(options._desc); + if ( options._added ) { + document.getElementById( options.target ).removeChild( options._link ); + document.getElementById( options.target ).removeChild( options._desc ); } } diff --git a/plugins/wikipedia/popcorn.wikipedia.unit.js b/plugins/wikipedia/popcorn.wikipedia.unit.js index 6355ac94..89ff683a 100644 --- a/plugins/wikipedia/popcorn.wikipedia.unit.js +++ b/plugins/wikipedia/popcorn.wikipedia.unit.js @@ -1,7 +1,7 @@ test("Popcorn wikipedia Plugin", function () { var popped = Popcorn("#video"), - expects = 7, + expects = 9, count = 0, theArticle = document.getElementById('wikidiv'), wikiInterval, @@ -30,6 +30,7 @@ test("Popcorn wikipedia Plugin", function () { start: 5, // seconds end: 10, // seconds src: 'http://en.wikipedia.org/wiki/Cape_Town', + title: "this is an article", target: 'wikidiv' } ) .wikipedia({ @@ -48,6 +49,8 @@ test("Popcorn wikipedia Plugin", function () { plus(); equals (theArticle.childElementCount, 2, "wikidiv now contains two child elements" ); plus(); + equals (theArticle.childElement[0].innerHTML, "this is an article", "wikidiv has the right title" ); + plus(); equals (theArticle.childElement[1].innerHTML, "Cape Town metropolitan municipality. It is the provincial capital and primate city ...", "wikidiv has the right content" ); plus(); clearInterval( wikiInterval );