Feat : renommage des pages pour meilleure compréhension. Ajout de la page d'exploration d'un corpus complet (toutes les lignes des fichiers JSONL soumis)
This commit is contained in:
parent
04ef66862c
commit
cdeb5f0b61
7 changed files with 234 additions and 12 deletions
|
@ -1,10 +1,15 @@
|
||||||
<h1>Traitement fichiers JSONL</h1>
|
[(#REM)
|
||||||
<p>Chargement des fichiers Jsonl après leur décompaction et affichage du contenu de leur 1ère et denière ligne</p>
|
affichage en boucle DATA des premières et dernières lignes des fichiers JSONL stockés dans un répertoire corpus
|
||||||
|
on fait tout un tas de traitements en fonction du type de donnée par champ pour essayer d'afficher qq chose de "lisible par un humain"
|
||||||
|
|
||||||
|
]
|
||||||
|
<h1>Aperçu d'un lot de fichiers JSONL</h1>
|
||||||
|
<p>Chargement des fichiers Jsonl après leur décompaction et affichage du contenu de leur 1ère et dernière ligne</p>
|
||||||
<div class="la_une">
|
<div class="la_une">
|
||||||
<ul>
|
<ul>
|
||||||
<BOUCLE_corpus(DATA){source ls, #CHEMIN{tmp}/#CONFIG{corpus_web/repertoire_corpus,corpus}/*}{par basename}>
|
<BOUCLE_corpus(DATA){source ls, #CHEMIN{tmp}/#CONFIG{corpus_web/repertoire_apercu,apercu_jsonl}/*}{par basename}>
|
||||||
<li>
|
<li>
|
||||||
#SET{liste_lignes,#LISTE{1}} #SET{trop_gros,#CONFIG{corpus_web/taille_max}} [(#REM) trop gros = 100Mo ]
|
#SET{liste_lignes,#LISTE{1}} #SET{trop_gros,#CONFIG{corpus_web/taille_max}|mult{1000000}} [(#REM) trop gros = 100Mo ]
|
||||||
#SET{nb_lignes, #FILE|nombre_ligne} [(#GET{nb_lignes}|!={1}|oui) #SET{liste_lignes,#LISTE{1,#GET{nb_lignes}}}]
|
#SET{nb_lignes, #FILE|nombre_ligne} [(#GET{nb_lignes}|!={1}|oui) #SET{liste_lignes,#LISTE{1,#GET{nb_lignes}}}]
|
||||||
<h3 class="spip[ (#SIZE|>{#GET{trop_gros}}|oui)non_traite]">
|
<h3 class="spip[ (#SIZE|>{#GET{trop_gros}}|oui)non_traite]">
|
||||||
[(#FILE|basename)] : [(#GET{nb_lignes}) [(#GET{nb_lignes}|singulier_ou_pluriel{page,pages})]] <small>([(#SIZE|human_filesize)o])</small>
|
[(#FILE|basename)] : [(#GET{nb_lignes}) [(#GET{nb_lignes}|singulier_ou_pluriel{page,pages})]] <small>([(#SIZE|human_filesize)o])</small>
|
||||||
|
@ -42,7 +47,6 @@
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
]
|
]
|
||||||
</li>
|
|
||||||
</BOUCLE_content>
|
</BOUCLE_content>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
114
content/explo_jsonl.html
Normal file
114
content/explo_jsonl.html
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
[(#REM)
|
||||||
|
affichage en boucle DATA des premières et dernières lignes des fichiers JSONL stockés dans un répertoire corpus
|
||||||
|
on fait tout un tas de traitements en fonction du type de donnée par champ pour essayer d'afficher qq chose de "lisible par un humain"
|
||||||
|
|
||||||
|
]
|
||||||
|
<h1>Contenus d'un lot de fichiers JSONL</h1>
|
||||||
|
<p>Chargement des fichiers Jsonl après leur décompaction et affichage du contenu de toutes leurs lignes
|
||||||
|
<br><small>pour mémoire : 1 ligne du fichier JSONL = 1 page HTML du site aspiré/archivé</small>
|
||||||
|
</p>
|
||||||
|
<div class="la_une">
|
||||||
|
<ul>
|
||||||
|
<BOUCLE_corpus(DATA){source ls, #CHEMIN{tmp}/#CONFIG{corpus_web/repertoire_corpus,corpus_jsonl}/*}{par basename}>
|
||||||
|
<li>
|
||||||
|
#SET{liste_lignes,#LISTE{1}} #SET{trop_gros,#CONFIG{corpus_web/taille_max}|mult{1000000}} [(#REM) trop gros = 100Mo ]
|
||||||
|
#SET{nb_lignes, #FILE|nombre_ligne} [(#GET{nb_lignes}|!={1}|oui) #SET{liste_lignes,#LISTE{1,#GET{nb_lignes}}}]
|
||||||
|
<h3 class="spip[ (#SIZE|>{#GET{trop_gros}}|oui)non_traite]">
|
||||||
|
[(#FILE|basename)] : [(#GET{nb_lignes}) [(#GET{nb_lignes}|singulier_ou_pluriel{page,pages})]] <small>([(#SIZE|human_filesize)o])</small>
|
||||||
|
[ (#SIZE|>{#GET{trop_gros}}|oui)<div>fichier trop gros pour traitement basique</div>]
|
||||||
|
</h3>
|
||||||
|
[(#REM)
|
||||||
|
{liste #GET{liste_lignes}}
|
||||||
|
]
|
||||||
|
<BOUCLE_2lignes(DATA){enum 1, #GET{nb_lignes}}{si #SIZE|<{#GET{trop_gros}}}>
|
||||||
|
[(#SET{num_ligne,[(#COMPTEUR_BOUCLE|=={1}|?{1,#GET{nb_lignes}})]})]
|
||||||
|
<div>
|
||||||
|
<h4 class="aff_masq">Page #VALEUR :</h4>
|
||||||
|
<div class="details">
|
||||||
|
[(#SET{content,[(#FILE|affiche_ligne{#GET{num_ligne}}|json_decode{true})]})]
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<div class="aff_masq">Contenu brut :</div>
|
||||||
|
<textarea class="details">[(#FILE|affiche_ligne{#GET{num_ligne}})]</textarea>
|
||||||
|
</li>
|
||||||
|
<BOUCLE_content(DATA){source table, #GET{content}}>
|
||||||
|
[(#CLE|=={htmlBytes}|oui)
|
||||||
|
<li>
|
||||||
|
<div class=""><span class="aff_masq_">Title :</span> [(#VALEUR|base64_decode|affiche_title)]</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="aff_masq">[(#CLE)] = HTML de la page : </div>
|
||||||
|
<div class="details">
|
||||||
|
<textarea class="details">[(#VALEUR|base64_decode|replace{<,<}|replace{>,>})]</textarea>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="aff_masq">Titraille :</div>
|
||||||
|
<textarea class="details">[(#VALEUR|base64_decode|affiche_titraille)]</textarea>
|
||||||
|
</li>
|
||||||
|
]
|
||||||
|
[(#CLE|=={htmlBytes}|non)
|
||||||
|
<li>
|
||||||
|
<div class="aff_masq">[(#CLE)] : </div>
|
||||||
|
<div class="details">
|
||||||
|
<B_ss>
|
||||||
|
<ul>
|
||||||
|
<BOUCLE_ss(DATA){source table, #VALEUR}>
|
||||||
|
<li>
|
||||||
|
<div class="aff_masq_">[(#CLE)] : </div>
|
||||||
|
<div class="details_">
|
||||||
|
[(#CLE|=={htmlmeta:html:head}|oui)
|
||||||
|
<textarea class="details_">[(#VALEUR*|print|replace{<br />,§§}|replace{<,<}|replace{>,>}|replace{§§,<br>})]</textarea>
|
||||||
|
]
|
||||||
|
[(#CLE|=={htmlmeta:html:head}|non)
|
||||||
|
[(#VALEUR|print|replace{<br />,§§}|replace{<,<}|replace{>,>}|replace{§§,<br>})]
|
||||||
|
]
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</BOUCLE_ss>
|
||||||
|
</ul>
|
||||||
|
</B_ss>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
]
|
||||||
|
</BOUCLE_content>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</BOUCLE_2lignes>
|
||||||
|
</li>
|
||||||
|
</BOUCLE_corpus>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
jQuery(function () {
|
||||||
|
$('.aff_masq').each(function() {
|
||||||
|
$(this).siblings('.details').toggleClass('js-hidden');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.aff_masq').on('click', function() {
|
||||||
|
$(this).siblings('.details').toggleClass('js-hidden');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
.aff_masq, .aff_masq_ {
|
||||||
|
cursor: pointer;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.aff_masq:hover {
|
||||||
|
background-color: #DDD;
|
||||||
|
}
|
||||||
|
.details br:first-of-type {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
textarea {
|
||||||
|
width: 100%;
|
||||||
|
height: 200px;
|
||||||
|
}
|
||||||
|
.non_traite {
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -7,7 +7,7 @@
|
||||||
On part d'une table remplie par un import CSV
|
On part d'une table remplie par un import CSV
|
||||||
|
|
||||||
]
|
]
|
||||||
<h1>Traitement CSV des vidéos : TXT</h1>
|
<h1>Import CSV des vidéos : TXT</h1>
|
||||||
<p>Intégration des contenus textuels des vidéos dans la table <strong>spip_corpus_videos</strong></p>
|
<p>Intégration des contenus textuels des vidéos dans la table <strong>spip_corpus_videos</strong></p>
|
||||||
<div class="la_une">
|
<div class="la_une">
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1>Traitement CSV des vidéos : XML</h1>
|
<h1>Import CSV des vidéos : XML</h1>
|
||||||
<p>Intégration des contenus XML des vidéos dans la table <strong>spip_corpus_videos</strong></p>
|
<p>Intégration des contenus XML des vidéos dans la table <strong>spip_corpus_videos</strong></p>
|
||||||
<div class="la_une">
|
<div class="la_une">
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1>Traitement CSV des vidéos : titres</h1>
|
<h1>Import CSV des vidéos : titres</h1>
|
||||||
<p>Création d'un titre à partir de la description si absent</p>
|
<p>Création d'un titre à partir de la description si absent</p>
|
||||||
<div class="la_une">
|
<div class="la_une">
|
||||||
<ul>
|
<ul>
|
||||||
|
|
|
@ -134,14 +134,15 @@ function affiche_ligne($fichier, $num) {
|
||||||
return 'Erreur : nombre de lignes du fichier '.$fichier.' inférieur à '.$num;
|
return 'Erreur : nombre de lignes du fichier '.$fichier.' inférieur à '.$num;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TO DO : corriger la récup du contenu des titres (cf site brezhoweb.com)
|
||||||
function affiche_titraille($html) {
|
function affiche_titraille($html) {
|
||||||
$niv_h = [1,2,3,4,5,6];
|
$niv_h = [1,2,3,4,5,6];
|
||||||
$titraille = [];
|
$titraille = [];
|
||||||
foreach($niv_h as $h) {
|
foreach($niv_h as $h) {
|
||||||
preg_match_all('/<h'.$h.'>(.*)?<\/h'.$h.'>/si', $html, $match, PREG_SET_ORDER);
|
preg_match_all('/<h'.$h.'(.*)>(.*)?<\/h'.$h.'>/si', $html, $match, PREG_SET_ORDER);
|
||||||
if ($match) {
|
if ($match) {
|
||||||
foreach($match as $m) {
|
foreach($match as $m) {
|
||||||
$titraille[] = '<h'.$h.'>'.$m[1].'</h'.$h.'>';
|
$titraille[] = '<h'.$h.'>'.$m[2].'</h'.$h.'>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,6 +151,16 @@ function affiche_titraille($html) {
|
||||||
return join("\r\n", $titraille);
|
return join("\r\n", $titraille);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function affiche_title($html) {
|
||||||
|
preg_match_all('/<title>(.*)?<\/title>/si', $html, $match, PREG_SET_ORDER);
|
||||||
|
if ($match) {
|
||||||
|
foreach($match as $m) {
|
||||||
|
$titles[] = $m[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return join("\r\n", $titles);
|
||||||
|
}
|
||||||
|
|
||||||
function human_filesize($bytes, $decimals = 2) {
|
function human_filesize($bytes, $decimals = 2) {
|
||||||
$sz = 'BKMGTP';
|
$sz = 'BKMGTP';
|
||||||
$factor = floor((strlen($bytes) - 1) / 3);
|
$factor = floor((strlen($bytes) - 1) / 3);
|
||||||
|
|
90
footer/dist.html
Normal file
90
footer/dist.html
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<BOUCLE_art_partenaires(ARTICLES){grigri = partenaires}{0,1}{tout}>
|
||||||
|
<div id="logos_partenaires">
|
||||||
|
<B_partenaires>
|
||||||
|
<div class="h3-like partenaires #EDIT{titre}">#TITRE</div>
|
||||||
|
<BOUCLE_partenaires(DOCUMENTS){id_article}{extension==jpg|png|gif|svg}{par rang_lien}{tout}>
|
||||||
|
[<a id="partenaire_#ID_DOCUMENT" href="#CREDITS*"[ title="(#DESCRIPTIF*|sinon{#TITRE})"]>
|
||||||
|
(#FICHIER|image_reduire{0,35}image_nb|inserer_attribut{class, logo_on}|inserer_attribut{alt, #DESCRIPTIF|attribut_html|sinon{#TITRE|attribut_html}}|inserer_attribut{aria-label, #DESCRIPTIF|attribut_html|sinon{#TITRE|attribut_html}})
|
||||||
|
[(#FICHIER|image_reduire{0,35}|inserer_attribut{class, logo_off}|inserer_attribut{alt, #DESCRIPTIF|attribut_html|sinon{#TITRE|attribut_html}}|inserer_attribut{aria-label, #DESCRIPTIF|attribut_html|sinon{#TITRE|attribut_html}})]
|
||||||
|
</a>]
|
||||||
|
</BOUCLE_partenaires>
|
||||||
|
</B_partenaires>
|
||||||
|
</div>
|
||||||
|
</BOUCLE_art_partenaires>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="colophon">
|
||||||
|
<ul class="nav">
|
||||||
|
[(#REM) les logos CC
|
||||||
|
<li>
|
||||||
|
<a class="lien_cc" href="https://creativecommons.org/licenses/by-nc-sa/3.0/fr/"
|
||||||
|
title="Tous les contenus de ce site sont sous licence Creative Commons By + NC + SA">
|
||||||
|
<svg class="cc">
|
||||||
|
<use xlink:href="#cc"/>
|
||||||
|
</svg>
|
||||||
|
<svg class="by">
|
||||||
|
<use xlink:href="#by"/>
|
||||||
|
</svg>
|
||||||
|
<svg class="nc">
|
||||||
|
<use xlink:href="#nc"/>
|
||||||
|
</svg>
|
||||||
|
<svg class="sa">
|
||||||
|
<use xlink:href="#sa"/>
|
||||||
|
</svg>
|
||||||
|
<span class="title">CC: By NC SA</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
]
|
||||||
|
<li class="separ">
|
||||||
|
<a rel="contents" href="#URL_PAGE{plan}">
|
||||||
|
<i class="fa fa-map"></i> <:plan_site:>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
[(#PLUGIN{gamulegal}|oui)
|
||||||
|
<li class="separ">
|
||||||
|
<a rel="contents" href="#URL_PAGE{mentions_legales}">
|
||||||
|
<i class="fa fa-legal"></i> Mentions légales
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
]
|
||||||
|
<BOUCLE_contact(ARTICLES){grigri=contact}{0,1}>
|
||||||
|
<li class="separ">
|
||||||
|
<a rel="contents" href="#URL_ARTICLE">
|
||||||
|
<i class="fa fa-phone"></i> Contact
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</BOUCLE_contact>
|
||||||
|
<?php
|
||||||
|
if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) {
|
||||||
|
?> <li class="separ">
|
||||||
|
<a class="" href="[(#URL_PAGE{modifier_auteur}|parametre_url{retour,#SELF})]" title="Gérer mon compte">
|
||||||
|
<i class="fa fa-cog" aria-hidden="true"></i> #SESSION{nom} <span class="title">: gestion compte</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="separ">
|
||||||
|
<a href="#URL_LOGOUT" rel="nofollow" title="Me déconnecter">
|
||||||
|
<i class="fa fa-sign-out"></i> Déconnexion
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="separ">
|
||||||
|
<a class="" href="[(#URL_PAGE{mouline_video})]" title="Finalisation du remplissage de la table spip_corpus_videos">
|
||||||
|
<i class="fa fa-database"></i> Import CSV vidéos
|
||||||
|
</a>
|
||||||
|
</li><?php
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
?> <li class="separ">
|
||||||
|
<a href="[(#URL_PAGE{editer_bien}|parametre_url{url,#SELF|parametre_url{url,''}})]" rel="nofollow" class='login_modal' title="Connexion">
|
||||||
|
<i class="fa fa-sign-in"></i> Connexion
|
||||||
|
</a>
|
||||||
|
</li><?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<li class="generator">
|
||||||
|
<!--small></small-->
|
||||||
|
<a href="http://gamuza.fr" rel="generator" title="Site réalisé par Gamuza" class="spip_out">[(#CHEMIN{images/gamuza_noir.png}|balise_img{GAMUZA}|image_reduire{70,70})]</a>
|
||||||
|
<a href="http://www.spip.net/" rel="generator" title="motorisé par SPIP" class="spip_out">[(#CHEMIN{images/logo_spip_noir.png}|balise_img{SPIP}|image_reduire{45,45})]</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
|
@ -11,8 +11,9 @@
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Configuration traitement JSONL</legend>
|
<legend>Configuration traitement JSONL</legend>
|
||||||
#SAISIE{input, repertoire_corpus, label=repertoire_corpus, explication=nom du répertoire des fichiers JSONL (dans tmp/) }
|
#SAISIE{input, repertoire_apercu, label=repertoire_apercu, explication=nom du répertoire des fichiers JSONL pour l'aperçu (dans tmp/) }
|
||||||
#SAISIE{input, taille_max, label=taille_max, explication=taille maximum des fichiers à traiter (en octets) }
|
#SAISIE{input, repertoire_corpus, label=repertoire_corpus, explication=nom du répertoire des fichiers JSONL pour le corpus (dans tmp/) }
|
||||||
|
#SAISIE{input, taille_max, label=taille_max, explication=taille maximum des fichiers à traiter (en Mo) }
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
|
|
||||||
<licence>GNU/GPL</licence>
|
<licence>GNU/GPL</licence>
|
||||||
|
|
||||||
|
<necessite nom="champslibres" compatibilite="[1.0.0;]" />
|
||||||
|
|
||||||
<pipeline nom="autoriser" inclure="corpus_web_autorisations.php" />
|
<pipeline nom="autoriser" inclure="corpus_web_autorisations.php" />
|
||||||
<pipeline nom="declarer_tables_objets_sql" inclure="base/corpus_web.php" />
|
<pipeline nom="declarer_tables_objets_sql" inclure="base/corpus_web.php" />
|
||||||
<pipeline nom="declarer_tables_interfaces" inclure="base/corpus_web.php" />
|
<pipeline nom="declarer_tables_interfaces" inclure="base/corpus_web.php" />
|
||||||
|
|
Loading…
Add table
Reference in a new issue