Verified Commit 133fc12b authored by David Libeau's avatar David Libeau
Browse files

Improve stats

parent b80835c4
......@@ -8,6 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="theme-color" content="#0070C0">
<link rel="stylesheet" href="https://dav.li/forkawesome/1.0.11/css/fork-awesome.min.css" />
<link rel="stylesheet" href="//dav.li/jquery/ui/jquery-ui.min.css" />
<style>
body {
font-family: sans-serif;
......@@ -19,7 +20,7 @@
padding: 50px 0;
}
h1,h2,p {
h1,h2,p,#tabs {
margin: 20px auto;
width: 80%;
}
......@@ -72,10 +73,8 @@
.stats{
display: block;
width: 80%;
margin: auto;
overflow: auto;
background-color: #f0f0f0;
}
.stats th {
text-align: left;
......@@ -91,29 +90,78 @@
<body>
<header>
<?php
$counter=[];
ini_set('auto_detect_line_endings',TRUE);
$handle = fopen("data.txt",'r');
while ( ($data = fgetcsv($handle) ) !== FALSE ) {
if($data[0]!=null){
$counter[$data[3]]=$data[4];
}
$alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$counter=[];
$bdd=[];
ini_set('auto_detect_line_endings',TRUE);
$handle = fopen("data.txt",'r');
while ( ($data = fgetcsv($handle) ) !== FALSE ) {
if($data[0]!=null){
$counter[$data[3]]=$data[4];
$ligne=[];
$ligne["date"]=$data[0];
$ligne["section"]=$data[3];
$ligne["compteur"]=intval($data[4]);
$ligne["nb_pages"]=intval($data[5]);
$ligne["is_last"]=$data[6];
if($bdd[$data[3]]==null){
$bdd[$data[3]]=array($ligne);
}else{
array_push($bdd[$data[3]], $ligne);
}
ini_set('auto_detect_line_endings',FALSE);
$total=0;
$withPagination=0;
foreach($counter as $c){
$total+=$c;
if($c%100==1){
$withPagination++;
}
}
ini_set('auto_detect_line_endings',FALSE);
$total=0;
$withPagination=0;
//Parmi la liste de données par section, on prend la "meilleure" (selon les paramètres qu'on veut)
$bdd_best=[];
for ($i=0; $i<26; $i++) {//par ordre alphabéthique, tant qu'a faire
for ($j=0; $j<26; $j++) {
$section=$alphabet[$i].$alphabet[$j];
$isBest=false;
$k=1;
while(!$isBest){
if($bdd[$section][sizeof($bdd[$section])-$k]["is_last"]==1){
$isBest=true;
$bdd_best[$section]=$bdd[$section][sizeof($bdd[$section])-$k];
}else{
$k++;
}
if(sizeof($bdd[$section])==$k){
$isBest=true;
}
$isBest=true;
}
if($bdd_best[$section]==null){
$bdd_best[$section]=$bdd[$section][sizeof($bdd[$section])-1];
}
?>
<h1>
<?php echo($total); ?>
</h1>
<p>Signatures détectées sur la <a href="https://www.referendum.interieur.gouv.fr/" target="_blank">proposition de loi référendaire</a> visant à affirmer le caractère de service public national de l'exploitation des aérodromes de Paris (avec une marge d'erreur de plus ou moins <?php echo($withPagination*100); ?> dû au mode de calcul : le chiffre exact se situe donc entre <?php echo($total-$withPagination*100); ?> et <?php echo($total+$withPagination*100); ?>).</p>
<p><i>Attention : étant donné que le comptage est collaboratif, des erreurs peuvent altérer la véracité de ce chiffre. Toutes les données sont <a href="data.txt" target="_blank">en libre accès</a> pour faire vos propres calculs et vérifications.</i></p>
//on pourra rajouter des vérifications ici
//calcul du total au passage
$total+=$bdd_best[$section]["compteur"];
if($bdd_best[$section]["compteur"]%100==1){
$withPagination++;
}
}
}
//pour avoir la bdd avec la dernière donnée seulement
$bdd_last=[];
for ($i=0; $i<26; $i++) {//par ordre alphabéthique, tant qu'a faire
for ($j=0; $j<26; $j++) {
$section=$alphabet[$i].$alphabet[$j];
$bdd_last[$section]=$bdd[$section][sizeof($bdd[$section])-1];
}
}
?>
<h1>
<?php echo($total); ?>
</h1>
<p>Signatures détectées sur la <a href="https://www.referendum.interieur.gouv.fr/" target="_blank">proposition de loi référendaire</a> visant à affirmer le caractère de service public national de l'exploitation des aérodromes de Paris (avec une marge d'erreur de plus ou moins <?php echo($withPagination*100); ?> dû au mode de calcul : le chiffre exact se situe donc entre <?php echo($total-$withPagination*100); ?> et <?php echo($total+$withPagination*100); ?>).</p>
<p><i>Attention : étant donné que le comptage est collaboratif, des erreurs peuvent altérer la véracité de ce chiffre. Toutes les données sont <a href="data.txt" target="_blank">en libre accès</a> pour faire vos propres calculs et vérifications.</i></p>
</header>
<main>
<section>
......@@ -138,35 +186,70 @@
</section>
<section style="background-color:white">
<h2>Statistiques supplémentaires</h2>
<p>
<?php
$alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
/*for ($i=0; $i<26; $i++) {
for ($j=0; $j<26; $j++) {
if($counter[$alphabet[$i].$alphabet[$j]]==null){
echo('<a href="https://www.referendum.interieur.gouv.fr/consultation_publique/8/'.$alphabet[$i].'/'.$alphabet[$i].$alphabet[$j].'" target="_blank">'.$alphabet[$i].$alphabet[$j].'</a> / ');
<div id="tabs">
<ul>
<li><a href="#tabs-1">Alphabetique</a></li>
<li><a href="#tabs-2">Popularité</a></li>
<li><a href="#tabs-3">A mettre à jour</a></li>
<li><a href="#tabs-4">A préciser</a></li>
</ul>
<div id="tabs-1">
<table class="stats">
<?php
foreach($bdd_best as $s => $c){
echo('<tr><th><a href="https://www.referendum.interieur.gouv.fr/consultation_publique/8/'.$s[0].'/'.$s.'" target="_blank">'.$s.'</a></th><th class="bar" style="width:'.($bdd_best[$s]["compteur"]/10).'px">'.$bdd_best[$s]["compteur"].'</th></tr>');
}
}
}*/
?>
</p>
<p>
<?php echo(sizeof($counter)." couples de lettres dans la base de données. ".$withPagination." couples de lettres avec plus de 200 signatures (donc plusieurs pages)."); ?>
<table class="stats">
<?php
for ($i=0; $i<26; $i++) {
for ($j=0; $j<26; $j++) {
echo('<tr><th><a href="https://www.referendum.interieur.gouv.fr/consultation_publique/8/'.$alphabet[$i].'/'.$alphabet[$i].$alphabet[$j].'" target="_blank">'.$alphabet[$i].$alphabet[$j].'</a></th><th class="bar" style="width:'.($counter[$alphabet[$i].$alphabet[$j]]/10).'px">'.$counter[$alphabet[$i].$alphabet[$j]].'</th></tr>');
}
}
?>
</table>
</p>
?>
</table>
</div>
<div id="tabs-2">
<table class="stats"><?php
$bdd_sorted=$bdd_best;
usort($bdd_sorted, function($a, $b) {
return $b["compteur"] <=> $a["compteur"];
});
foreach($bdd_sorted as $s => $c){
echo('<tr><th><a href="https://www.referendum.interieur.gouv.fr/consultation_publique/8/'.$bdd_sorted[$s]["section"][0].'/'.$bdd_sorted[$s]["section"].'" target="_blank">'.$bdd_sorted[$s]["section"].'</a></th><th class="bar" style="width:'.($bdd_sorted[$s]["compteur"]/10).'px">'.$bdd_sorted[$s]["compteur"].'</th></tr>');
}
?>
</table>
</div>
<div id="tabs-3">
<table class="stats"><?php
$bdd_sorted=$bdd_last;
usort($bdd_sorted, function($a, $b) {
return date($a["date"]) <=> date($d["date"]);
});
foreach($bdd_sorted as $s => $c){
echo('<tr><th><a href="https://www.referendum.interieur.gouv.fr/consultation_publique/8/'.$bdd_sorted[$s]["section"][0].'/'.$bdd_sorted[$s]["section"].'" target="_blank">'.$bdd_sorted[$s]["section"].'</a></th><th><a href="https://www.referendum.interieur.gouv.fr/consultation_publique/8/'.$bdd_sorted[$s]["section"][0].'/'.$bdd_sorted[$s]["section"].'" target="_blank">'.$bdd_sorted[$s]["date"].'</a></th></tr>');
}
?>
</table>
</div>
<div id="tabs-4">
<table class="stats">
<?php
foreach($bdd_sorted as $s => $c){
if($bdd_sorted[$s]["compteur"]>200 && !$bdd_sorted[$s]["is_last"]){
echo('<tr><th><a href="https://www.referendum.interieur.gouv.fr/consultation_publique/8/'.$bdd_sorted[$s]["section"][0].'/'.$bdd_sorted[$s]["section"].'?page='.$bdd_sorted[$s]["nb_pages"].'" target="_blank">'.$bdd_sorted[$s]["section"].'</a></th><th><a href="https://www.referendum.interieur.gouv.fr/consultation_publique/8/'.$bdd_sorted[$s]["section"][0].'/'.$bdd_sorted[$s]["section"].'?page='.$bdd_sorted[$s]["nb_pages"].'" target="_blank">'.$bdd_sorted[$s]["date"].' & n\'est pas précis</a></th></tr>');
}
}
?>
</table>
</div>
</div>
</section>
</main>
<footer>
<p>CC-BY David Libeau (<a href="https://framagit.org/DavidLibeau/rip-le-compteur" target="_blank">code source</a>)</p>
<p>Données CC-BY David Libeau & contributeur·rice·s / Code GNU AGPLv3 (<a href="https://framagit.org/DavidLibeau/rip-le-compteur" target="_blank">open source</a>)</p>
</footer>
<script src="//dav.li/jquery/3.1.1.min.js"></script>
<script src="//dav.li/jquery/ui/jquery-ui.min.js"></script>
<script>
$(function() {
$("#tabs").tabs();
});
</script>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment