-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
143 lines (106 loc) · 5.68 KB
/
index.html
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<!-- Pas certain quess ça fait. -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Wikipedia pas en anglais</title>
<link href="https://fonts.googleapis.com/css?family=Francois+One" rel="stylesheet">
<!-- JQuery est obligatoire pour le bon fonctionnemnt de Bootstrap ET DOIT LOADER AVANT!! -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<!-- ?? -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<style>
h1 {
font-family: 'Francois One', sans-serif;
font-size: 3em;
}
.jumbotron {
margin-top: 20px;
}
#rechercheIn {
margin-bottom: 5px;
}
</style>
</head>
<body>
<div class="container">
<div class="jumbotron">
<h1 class="text-center text-primary">Wikipanglais</h1>
</div>
<div class="row">
<div id="rechercheOut" class="col-md-6 col-md-offset-3">
<div id="rechercheIn" class="input-group input-group-lg">
<input type="text" class="form-control" id="quoi" onkeydown="if (event.keyCode == 13)
document.getElementById('bouton').click()">
<span class="input-group-btn">
<button class="btn btn-primary" type="button" id="bouton">Cherche</button>
</span>
</div>
</div>
</div>
<br>
<div class="list-group" id="resultats">
</div>
</div>
<script>
$(document).ready(function () {
var liste = [];
var rX = /^https:\/\/fr.wikipedia.org\/wiki\/(.*)$/;
var rXs;
var liste2 = [];
var rXTitre = [];
var listeURL = [];
$("#bouton").on("click", openSearch);
// *****************************************************
// ******************** Fonctions ********************
// *****************************************************
// La première fonction fait une recheche normale sur Wikipédia et revient avec les résultats.
function openSearch() {
liste = [];
liste2 = [];
rXTitre = [];
listeURL = [];
var quoi = $("#quoi").val();
$.getJSON('https://fr.wikipedia.org/w/api.php?action=opensearch&search=' + quoi + '&limit=500&format=json&origin=*', laListe);
};
// La deuxième fonction isole l'url des liens vers les différents résultats dans le json (json[3]), puis extrait le *titre* de la page pour l'insérer dans un deuxième url de l'API qui va chercher les 'langlinks', i.e., les liens vers les différentes versions linguistiques de cette page.
function laListe(json) {
liste = json[3];
// Message au cas où il n'y ait pas de résultats en français.
if(liste.length == 0) {
$("#resultats").removeClass("list-group");
$("#resultats").html("<p style='font-size:1.5em; text-align:center'>Il n'y a pas de pages Wikipédia en français à ce sujet.</p>");
} else {
for (y = 0; y < liste.length; y++) {
rXs = rX.exec(liste[y])[1];
$.getJSON('https://fr.wikipedia.org/w/api.php?action=query&titles=' + rXs + '&prop=langlinks&lllang=en&redirects&format=json&origin=*', wikiFr);
};
};
};
// S'il n'y a pas de langlink vers l'anglais, on formate l'url pour l'insérer comme table/bouton dans la liste des résultats.
function wikiFr(json2, rien) {
for (var pageId in json2.query.pages) {
if (json2.query.pages[pageId].langlinks === undefined) {
listeURL += "<a href='https://fr.wikipedia.org/wiki/" + json2.query.normalized[0].from + "' class='btn list-group-item' role='button'>" + json2.query.normalized[0].to + "</a>";
};
$("#resultats").html(listeURL);
};
};
// Le message d'erreur qui s'affiche si tous les pages ont une version anglais est isolé dans une fonction à part, parce que sinon il s'affiche en fantôme avant le retour des résultats et c'est laid.
function rien() {
if (listeURL.length == 0) {
$("#resultats").removeClass("list-group");
$("#resultats").html("<p style='font-size:1.5em; text-align:center'>Il semble que tout ce qu'il y a a dire à ce sujet a déjà été dit en anglais.</p>");
};
};
});
</script>
</body>
</html>