Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recréer un arbre à partir d'une liste.

22 réponses
Avatar
Julien Arlandis
Bonjour,

Je suis en train de coder un client de news entièrement en Javascript, celui se connecte à usenet via le protocole HTTP-NNTP que je suis en train de spécifier. Le prototype en cours de réalisation est accessible à cette adresse : http://http://news.julien-arlandis.fr/ (Accès en écriture seulement sur les groupes fr.test et nemo.test)
Le format d'échange de données entre le client et le serveur est le json.

Pour pouvoir gérer l'arborescence des messages en fonction des champs References, j'ai besoin d'un algorithme capable de transformer une liste d'articles contenant les articles référents (ici clé "ref"):

liste=[
{"id":"a", "ref":["d"]},
{"id":"b", "ref":["d","c"]},
{"id":"c", "ref":["d"]},
{"id":"d", "ref":[]},
{"id":"e", "ref":["d","c","f"]},
{"id":"f", "ref":["d","c"]},
{"id":"g", "ref":["d","c","f"]},
{"id":"h", "ref":["d"]},
{"id":"i", "ref":["d","a"]},
{"id":"j", "ref":[]},
{"id":"k", "ref":["j"]},
{"id":"l", "ref":["j","k"]},
]

en un objet json qui reflète la structure de l'arborescence des fichiers :

arbre={
"d":{
"a":{
"i":{}
},
"c":{
"f":{
"e":{},
"g":{}
},
"b":{}
},
"h":{}
},
"i":{
"j":{
"k":{}
}
}
}

Avez vous une idée sur la façon de procéder en javascript?
Autre question, en json si la clé d'un objet possède des caractères spéciaux comme le -, comment peut aux éléments de la structure?

Exemple : si j'ai toto = {"message-id":"xxx"}
Je ne pourrais pas faire toto.message-id (confusion avec l'opérateur de soustraction).

2 réponses

1 2 3
Avatar
Julien Arlandis
Le 09/04/13 02:08, Olivier Miakinen a écrit :
Le 08/04/2013 19:21, Julien Arlandis a écrit :

Ah oui, j'ai vu sur fr.test que tu faisais des tests avec latex. Mais
quitte à envoyer autre chose que du text/plain, pourquoi ne pas passer
à HTML ?



On ne peut pas permettre à un utilisateur d'injecter du HTML, c'est la
porte ouverte aux failles XSS. Il faut nécessairement passer par un
langage de balisage léger dont on contrôle la transition vers HTML.



Alors tu vas devoir définir de nouveaux types MIME :
<http://fr.wikipedia.org/wiki/Type_MIME>
<http://www.iana.org/assignments/media-types/text>

Probablement text/latex et text/bbcode ?



Pourquoi de nouveaux types MIME ? Le BBcode c'est du simple texte...
Avatar
Olivier Miakinen
J'avais oublié de faire suivre à fr.comp.usenet.serveurs, je le fais
maintenant.

Le 09/04/2013 02:33, Julien Arlandis a écrit :

Alors tu vas devoir définir de nouveaux types MIME :
<http://fr.wikipedia.org/wiki/Type_MIME>
<http://www.iana.org/assignments/media-types/text>

Probablement text/latex et text/bbcode ?



Pourquoi de nouveaux types MIME ? Le BBcode c'est du simple texte...



Ce n'est ni plus ni moins du simple texte que le HTML, or HTML a son
propre type MIME.
1 2 3