зеркало из https://github.com/mozilla/popcorn-js.git
Merge branch 'wikiPlugin' into 0.3
This commit is contained in:
Коммит
33ecf35d89
|
@ -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({
|
||||
|
|
|
@ -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('<p>'));
|
||||
_text = data.parse.text[ "*" ].substr( data.parse.text[ "*" ].indexOf('<p>') );
|
||||
_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 );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 );
|
||||
|
|
Загрузка…
Ссылка в новой задаче