Commit a37a94b6 authored by Adrien Laporte's avatar Adrien Laporte
Browse files

Merge branch 'master' of framagit.org:bertille/tx-collecte-chatons

parents 10f31ff1 870c6250
sortie/*
crawler/sortie/*
crawler/log.txt
crawler/__pycache__
conversion/__pycache__
conversion/__pycache__
site/documentation
......@@ -29,5 +29,8 @@ Le but du crawler est de télécharger tous les fichiers JSON répertoriés et d
## La liste des URL à vérifier
Le crawler prend en entrée une liste d'URL à télécharger. Les merge request sont les bienvenues sur cette liste pour intégrer de nouveaux CHATONS à l'outil de centralisation.
## Le convertisseur
Une fois les données agrégées, le convertisseur permet de les transformer en un autre format, par exemple celui de https://entraide.chatons.org ou celui d'une organisation selon schema.org (en construction).
## Le site
Un site a été mis en place pour présenter la démarche et mettre à disposition les résultats de la collecte. Ses sources sont aussi sur ce dépôt.
# Convertisseur entre différents schémas json
## Pourquoi ?
TODO : notre schéma → entraide.chatons.org
Le crawler permet de générer une liste de Chatons dans un format qui ressemble à celui des fiches (par exemple, https://chatons.org/fr/chaton/artifaille-0). Mais, une fois que l'on a l'information, on peut la transformer et la mettre dans un autre format. Ainsi, ce système est interopérable et l'on peut utiliser les données pour communiquer avec d'autres sites ou nourrir d'autres bases.
## Usage :
## Usage
Pour l'instant, le convertisseur prend en entrée un fichier JSON conforme à notre schéma et sort un JSON qui correspond aux données d'[entraide](https://entraide.chatons.org).
Il s'utilise ainsi :
```
converter.py [-o OUTPUT] input
......
# Todo
# ToDo list
- [ ] Mettre la sortie en ligne
- [X] Mettre la sortie en ligne
- [ ] Supporter tous les formats
- [ ] N'exporter que les Chatons valides pour entraide.chatons.org
- [ ] S'occuper du champ `edit_link`
- [ ] Rendre vraiment conforme au schéma entraide (nodes)
- [ ] Proposer de choisir le type d'export (vers schema.org par exemple)
# Le dictionnaire qui sert à passer de nos valeurs à celles de entraide
conversion = {
"keys": {
"chaton": {
......
python3 convert.py -o ../sortie/entraide.json ../sortie/chatons.json
......@@ -10,7 +10,6 @@
- [x] Pouvoir inclure des commentaires dans la liste d'URL
- [x] Enregistrer les logs des URL brisées, des schémas pas valides…
- [x] Faire une mise à jour « intelligente » (comparer au précédent chatons.json s'il existe déjà…)
- [ ] Enregistrer aussi au format entraide.chatons.org
- [x] Vérifier que chaque chaton n'existe qu'une fois maximum dans le gros JSON
- [ ] Basculer tous les affichages en français ?
- [x] Si schema, valider aussi les anciens chatons avant de les ré-ajouter aux nouveaux si `--update-only`
......
python3 crawler.py -u -v -i ../liste/CHATONS_list.txt -s ../schema/CHATONS_schema-0.0.2.json -o sortie/chatons.json
python3 crawler.py -u -v -i ../liste/CHATONS_list.txt -s ../schema/CHATONS_schema-0.0.2.json -o ../sortie/chatons.json
......@@ -14,5 +14,5 @@ Merci à Stéphane Crozat, Rémi Uro et Quentin Duchemin d'avoir encadré ce pro
Merci à Angie et à pyg d'avoir répondu à nos questions et de nous avoir aidés
à comprendre l'écosystème du CHATONS.
Merci à TTDM, ljf, djayroma, unteem, numahell, Neil, Kyâne et Meewan pour leurs
Merci à TTDM, ljf, djayroma, unteem, numahell, Neil, Kyâne, Meewan, pierre, bouviermullerp, mrflos, cpm et deblan pour leurs
coups de main, retours et suggestions.
......@@ -42,5 +42,3 @@ non pas une base de donnée plus classique, pour des raisons discutées
[Dernière version de la liste des URL](https://framagit.org/bertille/tx-collecte-chatons/-/blob/master/liste/CHATONS_list.txt)
--------------------------------------
[Retour à l'accueil](index.md)
......@@ -11,6 +11,8 @@ Tout d'abord, il faut renseigner les informations de votre structure.
Pour ce faire, vous pouvez consulter [la liste de tous les champs possibles, des valeurs qu'ils peuvent
prendre et de leur sens](https://framagit.org/bertille/tx-collecte-chatons/-/blob/master/schema/README.md).
Vous pouvez aussi utiliser [un formulaire qui se génère avec le schéma](http://chatons.picasoft.net/gen/json_gen.html).
Vérifier que le fichier respecte bien la convention adoptée
-----------------------------------------------------------
......@@ -107,5 +109,3 @@ de software ou de service\_type, vers la fin du schéma.
C'est la même procédure pour ajouter une valeur possible à n'importe
laquelle des listes.
[Retour à l'accueil](index.md)
Le convertisseur
================
Principe
--------
Les données récupérées par le crawler permettent de créer les fiches des Chatons pour [le site principal](https://chatons.org).
Mais, avec ces informations, il est possible de faire plein d'autres choses. Par exemple, on peut les exporter de telle sorte à fournir les informations nécessaires au [site d'entraide](https://entraide.chatons.org). On peut aussi en faire des données sémantiques pour décrire une [organisation telle que pensée par schema.org](https://schema.org/Organization).
......@@ -87,5 +87,3 @@ inclure (le respect de la charte point par point par exemple). Il faudra
donc trouver à la fois des solutions pour faire l'interface entre les
clefs et les valeurs des deux modèles, et pour importer les données dans
le Drupal de chatons.org.
[Retour à l'accueil](index.md)
......@@ -52,6 +52,7 @@ Voici les liens vers les dernières données obtenues :
- [Chercher un Chaton](http://chatons.picasoft.net/search/recherche.html)
- [Télécharger le JSON de tous les Chatons](http://chatons.picasoft.net/exports/chatons.json)
- [Télécharger le JSON des services](http://chatons.picasoft.net/exports/entraide.json)
- [Les logs](http://chatons.picasoft.net/logs/log.txt) (pour vérifier si votre Chaton est bien
inclus dans l'export par exemple)
......@@ -66,6 +67,7 @@ Il contient notamment :
- [sa documentation](https://framagit.org/bertille/tx-collecte-chatons/-/blob/master/schema/README.md)
- [la liste des URL](https://framagit.org/bertille/tx-collecte-chatons/-/blob/master/liste/CHATONS_list.txt)
- [le code du crawler](https://framagit.org/bertille/tx-collecte-chatons/-/blob/master/crawler/crawler.py)
- [le code du convertisseur](https://framagit.org/bertille/tx-collecte-chatons/-/blob/master/conversion/convert.py)
- [les sources de cette documentation](https://framagit.org/bertille/tx-collecte-chatons/-/tree/master/documentation_source)
Ce site
......
......@@ -15,7 +15,7 @@ symbolique vers `/home/tx/tx-collecte-chatons/site`.
Grâce à un `crontab`, le site est mis à jour toutes les nuits autour de 2h du
matin. Un `git pull` télécharge toutes les sources, puis la documentation est
regénérée, le crawler exécuté et les logs archivés.
regénérée, le crawler et le convertisseur exécutés, et les logs archivés.
Documentation
-------------
......@@ -29,7 +29,7 @@ Recherche
La partie exploration des Chatons est structurée avec des liens symboliques. Ils
permettent d'accéder aux exports JSON (du dossier `site/exports` à
`crawler/sortie`) et aux logs (de `site/logs/log.txt` à `crawler/log.txt`),
`sortie`) et aux logs (de `site/logs/log.txt` à `crawler/log.txt`),
qui par défaut sont générés dans le dossier du crawler. Un autre lien pointe
vers le schéma.
......
......@@ -18,3 +18,4 @@ nav:
- 'Fonctionnement':
- 'Le schéma': 'schema.md'
- 'Le crawler': 'crawler.md'
- 'Le convertisseur': 'convertisseur.md'
# ToDo list
- [ ] Changer les valeurs pour soit des étiquettes en anglais, soit les vraies données en français complet
../crawler/sortie
\ No newline at end of file
../sortie
\ No newline at end of file
This diff is collapsed.
<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta charset="UTF-8">
<title>Site de la TX Collecte CHATONS</title>
<script src="brutusin-json-forms.js"></script>
<script type="text/javascript">
const BrutusinForms = brutusin['json-forms'];
let bf;
function formGen () {
// Repérage de la frame gui contient le schéma
const originFrame = document.getElementById('schema');
// Récupération du contenu de la frame
const content = originFrame.contentWindow.document.body.childNodes[0].innerHTML;
// Conversion en JSON
const schema = JSON.parse(content);
// Génération du formulaire
bf = BrutusinForms.create(schema);
const container = document.getElementById('form');
bf.render(container);
}
function printData() {
const json = bf.getData();
const container = document.getElementById('result');
// Remise à zéro de la section
container.innerHTML = '';
const result = document.createElement('p');
result.textContent = JSON.stringify(json);
container.appendChild(result);
}
</script>
</head>
<body>
<h1>Formulaire pour créer une fiche</h1>
<!-- Un peu sale, mais permet d'accéder à des fichiers du serveur avec le JavaScript -->
<iframe id="schema" src="../schema/schema.json" style="display: none;" onload="formGen()"></iframe>
<div class="info">
<p>Remplissez le formulaire suivant pour obtenir la fiche de votre Chaton</p>
</div>
<div class="form_schema">
<form onsubmit="retun false;">
<div class="form" id= "form">
</div>
<input type="button" value="Valider" onclick="printData()">
</form>
</div>
<div class="result" id="result">
</div>
<div class="license">
<p>Formulaire généré grâce à la librairie <a href="https://github.com/brutusin/json-forms">json-forms</a>.</p>
</div>
<div class="return">
<a href="../index.html">Retour à l'accueil</a>
</div>
</body>
</html>
Supports Markdown
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