Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Bertille Pesquidoux
TX-collecte-CHATONS
Commits
2374e40b
Commit
2374e40b
authored
Jun 03, 2020
by
Bertille Dubosc de Pesquidoux
Browse files
Compatibilité avec Entraide
parent
f8993c15
Changes
5
Hide whitespace changes
Inline
Side-by-side
conversion/convert_json.py
View file @
2374e40b
...
...
@@ -91,18 +91,17 @@ def convertStr(v: str, context: str = None) -> str:
"""Convertir une str en format entraide grâce au dictionnaire 'conversion'
"""
showNode
(
f
"S :
{
v
}
,
{
context
}
"
)
if
context
==
"url"
:
if
context
==
"url"
or
context
==
"name"
:
return
v
elif
context
==
"name"
:
return
v
elif
context
==
"consent"
:
pass
# Todo, on ne l'a pas dans le schéma
elif
context
==
"software"
:
soft
=
conversion
[
"values"
][
"software"
].
get
(
v
,
None
)
if
soft
is
None
:
print
(
f
"Software '
{
v
}
' non-existant"
)
# soft = v # On met la valeur maison, au cas où
return
soft
# elif context == "consent":
# return v
# elif context == "node_link":
# return v
elif
context
==
"type"
or
context
==
"software"
or
context
==
"account"
:
value
=
conversion
[
"values"
][
context
].
get
(
v
,
None
)
if
value
is
None
:
print
(
f
"
{
context
}
'
{
v
}
' non-existant"
)
return
value
return
None
...
...
@@ -112,7 +111,7 @@ def convertInt(v: int, context: str = None) -> str:
if
context
==
"degradability"
:
return
convertDegradability
(
v
)
elif
context
==
"weight"
:
return
v
return
str
(
v
)
return
None
...
...
@@ -169,15 +168,10 @@ def exploseChatonServices(d) -> list:
def
makeChatonService
(
c
:
dict
,
service
:
dict
)
->
dict
:
"""Passage des champs du service aux champs du chaton"""
nc
=
c
.
copy
()
software
=
service
.
get
(
'software'
)
description
=
conversion
[
'descriptions'
][
'software'
].
get
(
software
)
if
description
is
None
:
if
software
is
not
None
:
print
(
f
"Aucune description pour
{
software
}
"
)
description
=
"Aucune description pour ce service"
nc
[
'type'
]
=
description
# Parce que le consentement et le lien d'édition n'existent pas dans
# notre schema, on met des valeurs bidons
nc
[
'consent'
]
=
'1'
nc
[
'edit_link'
]
=
'https://chatons.org/fr/node/0000/edit'
for
(
k
,
v
)
in
service
.
items
():
nc
[
k
]
=
v
...
...
@@ -194,12 +188,24 @@ def nodeify(liste_chaton: list) -> dict:
]
}
# Vérification que toutes les valeurs du dictionnaire sont dans l'ordre
def
addMissingValues
(
services
:
list
)
->
list
:
for
service
in
services
:
for
field
,
value
in
conversion
[
"expected_fields"
].
items
():
if
field
not
in
service
:
if
type
(
value
)
is
str
:
service
[
field
]
=
"Valeur par défaut"
elif
type
(
value
)
is
int
:
service
[
field
]
=
"1"
return
services
# Synthèse des conversions :
def
convertSchema
(
input
)
->
dict
:
"""Maxi-conversion entre le schéma de la Tx et le schéma entraide"""
return
nodeify
(
# Structure node
exploseChatonServices
(
# Explosion par service
convertValue
(
input
,
"chaton"
)
# Conversion valeur/clé JSON
return
nodeify
(
# Structure node
addMissingValues
(
# Tous les champs nécessaires
exploseChatonServices
(
# Explosion par service
convertValue
(
input
,
"chaton"
)
# Conversion valeur/clé JSON
)
)
)
conversion/data.py
View file @
2374e40b
# Le dictionnaire qui sert à passer de nos valeurs à celles de entraide
conversion
=
{
"expected_fields"
:
{
"chaton"
:
""
,
"type"
:
""
,
"software"
:
""
,
"open"
:
""
,
"weight"
:
0
,
"consent"
:
0
,
"degradability"
:
""
,
"endpoint"
:
""
,
"edit_link"
:
""
,
"chaton_website"
:
""
,
},
"keys"
:
{
"chaton"
:
{
"name"
:
"chaton"
,
...
...
@@ -7,14 +19,14 @@ conversion = {
"services"
:
"services"
,
},
"services"
:
{
"software"
:
"software"
,
# list → str
# "": "type", # Ajouté après coup
"public"
:
"open"
,
"url"
:
"endpoint"
,
"software"
:
"software"
,
"type"
:
"type"
,
"account"
:
"open"
,
"weight"
:
"weight"
,
"consent"
:
"consent"
,
# Todo
"degradability"
:
"degradability"
,
"
url"
:
"endpoint"
,
"
magie_noire
"
:
"edit_link"
,
#
Kececé ?
"
consent"
:
"consent"
,
# Todo
"
node_link
"
:
"edit_link"
#
Todo
}
},
"values"
:
{
...
...
@@ -42,33 +54,67 @@ conversion = {
"strut"
:
"Strut"
,
# ajoutés main :
"mattermost"
:
"Mattermost"
,
}
},
"descriptions"
:
{
"software"
:
{
# Parsés depuis les données du framagit le 24/05/2020
"Lufi"
:
"Partage temporaire de fichiers (alternative à WeTransfer, DropSend)"
,
"Draw.io"
:
"Création de schémas et diagrammes (alternative à Visio)"
,
"Privatebin"
:
"Transfert de messages chiffrés (alternative à PasteBin)"
,
"Etherpad"
:
"Rédaction collaborative (alternative à Google Docs)"
,
"Framadate"
:
"Aide à la prise de rendez-vous (alternative à Doodle)"
,
"Plik"
:
"Partage temporaire de fichiers (alternative à WeTransfer, DropSend)"
,
"EasyRTC"
:
"Visioconférence (alternative à Skype, Hangouts, etc.)"
,
"Cryptpad"
:
"Rédaction collaborative (alternative à Google Docs)"
,
"Filetolink"
:
"Partage temporaire de fichiers (alternative à WeTransfer, DropSend)"
,
"Lutim"
:
"Stockage/partage d'images (alternative à Img.ur)"
,
"FirefoxSend"
:
"Partage temporaire de fichiers (alternative à WeTransfer, DropSend)"
,
"Polr"
:
"Raccourcisseur d'URL (alternative à Bit.ly, tinyurl, etc.)"
,
"LSTU"
:
"Raccourcisseur d'URL (alternative à Bit.ly, tinyurl, etc.)"
,
"Jitsi Meet"
:
"Visioconférence (alternative à Skype, Hangouts, etc.)"
,
"MyCryptoChat"
:
"Chat IRC ou Jabber (alternative à MSN)"
,
"Libreto"
:
"Rédaction collaborative (alternative à Google Docs)"
,
"Darkwire.io"
:
"Chat IRC ou Jabber (alternative à MSN)"
,
"Strut"
:
"Présentation collaborative (alternative à Google Drive)"
,
"Scrumblr"
:
"Tableau blanc collaboratif (alternative à Stoodle)"
,
"Ethercalc"
:
"Tableur collaboratif (alternative à Google Sheets)"
,
"rs-short"
:
"Raccourcisseur d'URL (alternative à Bit.ly, tinyurl, etc.)"
,
# Ajoutés à la main :
},
"account"
:
{
"sans_inscription"
:
"Ouvert à tou⋅te⋅s sans inscription"
,
"sur_inscription"
:
"Ouvert à tou⋅te⋅s sur inscription"
,
"cercle_prive"
:
"Restreint"
},
"type"
:
{
"mail"
:
"Courrier électronique / mail (alternative à Gmail, Hotmail, YahooMail, etc.)"
,
"contacts"
:
"Carnet d'adresse (alternative à Google Contacts)"
,
"mailing_list"
:
"Liste de diffusion (alternative à Google Groupes)"
,
"newsletter"
:
"Lettres d'information (alternative à MailChimp)"
,
"audioconference"
:
"Audioconférence (alternative à Discord)"
,
"visioconference"
:
"Visioconférence (alternative à Skype, Hangouts, etc.)"
,
"messagerie_instantanee"
:
"Messagerie instantanée (alternative à Slack)"
,
"serveur_messagerie_instantanee"
:
"Serveur de messagerie instantaneé (type Matrix)"
,
"client_messagerie_instantanee"
:
"Client de messagerie instantanée (type Riot)"
,
"chat"
:
"Chat IRC ou Jabber (alternative à MSN)"
,
"reseau_social"
:
"Réseau social (alternative à Facebook)"
,
"microblogging"
:
"Microblogging (alternative à Twitter)"
,
"client_microblogging"
:
"Frontend alternatif pour du microblogging (type Nitter)"
,
"moteur_recherche"
:
"Moteur de recherche (alternative à Google Search)"
,
"cartographie"
:
"Cartographie (alternative à Google Maps, Mappy, etc.)"
,
"sondage"
:
"Outils de sondage (alternative à SurveyMonkey)"
,
"reduc_url"
:
"Raccourcisseur d'URL (alternative à Bit.ly, tinyurl, etc.)"
,
"transfert_chiffre"
:
"Transfert de messages chiffrés (alternative à PasteBin)"
,
"favoris"
:
"Gestionnaire de marques-pages / favoris (alternative à Del.icio.us, Diigo, Pearltrees, etc.)"
,
"rss"
:
"Agrégateur de flux RSS (alternative à Netvibes, Feedly, InoReader, etc.)"
,
"lire_plus_tard"
:
"Sauvegarde de contenus web (alternative à Pocket, Instapaper, etc.)"
,
"mots_de_passe"
:
"Gestionnaire de mots de passe (alternative à LastPass, Dashlane, etc.)"
,
"forge_logicielle"
:
"Forge logicielle (alternative à Github)"
,
"agenda"
:
"Agenda partagé (alternative à Google Agenda)"
,
"doc_collaboratif"
:
"Rédaction collaborative (alternative à Google Docs)"
,
"tab_collaboratif"
:
"Tableur collaboratif (alternative à Google Sheets)"
,
"whiteboard_collaboratif"
:
"Tableau blanc collaboratif (alternative à Stoodle)"
,
"diapo_collaboratif"
:
"Présentation collaborative (alternative à Google Drive)"
,
"questionnaire"
:
"Questionnaire en ligne (alternative à Google Forms)"
,
"rdv"
:
"Aide à la prise de rendez-vous (alternative à Doodle)"
,
"schema"
:
"Création de schémas et diagrammes (alternative à Visio)"
,
"outils_svg"
:
"Outils de compression et de création SVG"
,
"carte_heuristique"
:
"Carte heuristique / mentale (alternative à Mindmeister)"
,
"taches"
:
"Gestionnaire de tâches (alternative à Google Tasks)"
,
"pad_collaboratif"
:
"Prise de note (alternative à Evernote, OneNote, etc.)"
,
"gestion_projet"
:
"Gestion de projets (alternative à Trello, Asana, etc.)"
,
"prise_decision"
:
"Outils de prise de décision (alternative à Klaxoon)"
,
"stockage_fichiers"
:
"Stockage/ partage de documents (alternative à Dropbox, Google Drive, OneDrive, etc.)"
,
"partage_temporaire_fichier"
:
"Partage temporaire de fichiers (alternative à WeTransfer, DropSend)"
,
"partage_image"
:
"Stockage/partage d'images (alternative à Img.ur)"
,
"partage_album_photo"
:
"Stockage/partage d'albums de photos (alternative à Google Photos, Flickr, etc.)"
,
"diffusion_video"
:
"Diffusion de fichiers vidéos (alternative à YouTube, DailyMotion, Viméo, etc.)"
,
"diffusion_audio"
:
"Diffusion de fichiers audio (alternative à Soundcloud)"
,
"diffusion_direct"
:
"Diffusion en direct de flux audio et vidéo"
,
"blog"
:
"Hébergement de sites web / blogs"
,
"comptabilite"
:
"Gestionnaire de finances personnelles"
,
"facturation"
:
"Gestionnaire de facturation / paiement"
,
"progiciel_gestion"
:
"Progiciel de Gestion Intégré (PGI, ERP en anglais)"
,
"mutualise"
:
"Hébergement sur serveur(s) mutualisé(s)"
,
"vps"
:
"Location de serveur(s)virtuel(s) (VPS)"
,
"dedie"
:
"Location de serveur(s) dédié(s)"
,
"vpn"
:
"VPN"
,
"resolveur_doh"
:
"Résolveur DNS over HTTPS"
,
"autre"
:
"Autre"
}
}
}
conversion/run_convert.sh
View file @
2374e40b
python3 convert.py
-o
../sortie/
entraide
.json ../sortie/chatons.json
python3 convert.py
-o
../sortie/
chaton-services
.json ../sortie/chatons.json
documentation_source/index.md
View file @
2374e40b
...
...
@@ -52,7 +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
)
-
[
Télécharger le JSON des services
](
http://chatons.picasoft.net/exports/
chatons-services
.json
)
-
[
Les logs
](
http://chatons.picasoft.net/logs/log.txt
)
(
pour
vérifier si votre Chaton est bien
inclus dans l'export par exemple)
...
...
site/index.html
View file @
2374e40b
...
...
@@ -16,7 +16,7 @@
<li><a
href=
"http://chatons.picasoft.net/documentation/contribuer/#ajouter-son-chaton"
>
Le tutoriel pour ajouter son Chaton
</a></li>
<li><a
href=
"http://chatons.picasoft.net/gen/json_gen.html"
>
L'outil de génération de fiche
</a></li>
<li><a
href=
"http://chatons.picasoft.net/exports/chatons.json"
>
Le fichier regroupant tous les Chatons
</a></li>
<li><a
href=
"http://chatons.picasoft.net/exports/
entraide
.json"
>
Le fichier des services au format entraide
</a></li>
<li><a
href=
"http://chatons.picasoft.net/exports/
chatons-services
.json"
>
Le fichier des services au format entraide
</a></li>
<li><a
href=
"http://chatons.picasoft.net/search/recherche.html"
>
L'outil de recherche d'un Chaton
</a></li>
</ul>
</p>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment