-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
101 lines (88 loc) · 2.99 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
$(document).ready(function() {
$("#name").blur(getData);
$("#name").bind('keypress', function(e) {
code = (e.keyCode ? e.keyCode : e.which);
if (code === 13) getData();
});
$("#slide").hide();
});
var getData = function() {
var container = $('#data');
val = $("#name").val();
var url = "http://en.wikipedia.org/wiki/"+encodeURIComponent(val);
$.getJSON(
"http://query.yahooapis.com/v1/public/yql?" +
"q=select%20*%20from%20html%20where%20url%3D%22" +
encodeURIComponent(url)+
"%22&format=json'&callback=?",
function(data){
if(data.results[0]){
var data = data.results[0];
container.html(data);
} else {
containter.html("error");
}
}
);
$("#data").hide();
$("#loading").html("Coming up shortly, hand crafted specially for you, a WikiDex about <strong><i>" + val + "</i></strong>");
window.setTimeout(firstSlide, 10000);
};
var firstSlide = function() {
slideInits();
$("#substance").html(filterData($("#mw-content-text>p:eq(0)").html()));
$("#index").html("Slide #1");
$("#slide").fadeIn("slow");
};
var control = function() {
var id = null;
if (event.srcElement.innerText === ">") {
id = parseInt(($("#index").html().split("Slide #"))[1])+1;
} else {
id = parseInt(($("#index").html().split("Slide #"))[1])-1;
}
var slide_number = "#mw-content-text>p:eq(" + id + ")";
slideInits();
$("#substance").html(filterData($(slide_number).html()));
$("#index").html("Slide #" + id);
};
var slideInits = function() {
$("#title").html($("#firstHeading>span").html());
$("#left").html("<p><a href='#' id = 'prev'><</a></p>");
$("#right").html("<p><a href='#' id = 'next'>></a></p>");
$("#next").click(control);
$("#prev").click(control);
$("#slide").fadeIn("slow");
};
var filterData = function(data) {
data = replacePointies(data);
elems = data.split(". ");
var ret = "<ul>";
for (elem in elems) {
if (elems[elem] != "")
ret += "<li>" + elems[elem] + "</li>";
}
ret += "</ul>";
return ret;
};
/* Not proud of this function, but it works. The regexps arent working, to figure out why */
//data = data.replace(/<a href="(.*)".*>/g,RegExp.$1);
//data.match(/<a href=(.*)>(.*)<\/a>/ig);
//data = data.replace(/<sup>.*<\/sup>/, '');
//data = data.replace(/\r\n/, '\n').replace(/^(.*)\n*$/gm, RegExp.$1);
//data = data.replace(/<sup>.*<\/sup>/ig, '');
//data.replace(/\<a.*href=(.*)\>(.*)\<\/a\>/ig, RegExp.$1);
var replacePointies = function(data) {
var elems = data.split(/\r\n/);
data = elems.join('');
elems = data.split(/<\/sup>/ig); data = elems.join(''); elems =
data.split(/<sup.*>*/ig); data = elems.join(''); elems =
data.split(/<\/span>/ig); data = elems.join(''); elems =
data.split(/<span.*>.*/ig); data = elems.join(''); elems =
data.split(/\[.*\]/ig); data = elems.join('');
elems = data.split(/<\/a>/ig);
data = elems.join('');
elems = data.split(/<a.*href=.*>/ig);
data = elems.join('');
return data;
}