Nous avons pu importer ce forum dans le nouveau. Bon, c'est juste un petit test que j'ai fais. Après 1h00 de développement, je suis tous excité que ça fonctionne.
C'est très intéressant de pouvoir voir les titres des 200 premiers topics.
Sujet: Re: Le Nouveau CBNA ! Jeu 4 Aoû 2016 - 23:22
Prend garde, Nous n'avons actuellement pas du bbcode, mais directement du html.
On possède déjà l'arbre parsé, il suffit de le parcourir avec des boucles et des fonctions récursives. Ça devrait te plaire plus que de devoir parser le code Regarde les quelques headers de gumbo-parser.
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
Sujet: Re: Le Nouveau CBNA ! Sam 6 Aoû 2016 - 11:26
Oui je sais qu'on a pas le bbcode pur pour l'instant. Mais je préfèrerai changer la partie qui prends le html, qui est un résultat déjà transformé en utiliser pour l'import une url qui édite/cite chaque poste, pour récupérer le bbcode pur.
Je pense que cela permettrait d'éviter de perdre des choses, et surtout d'être au plus près de ce que les utilisateurs ont entré, et cela me paraît plus robuste que de prendre le html du message déjà rendered : cela évite de mélanger par erreur la signature et cela rends le code d'import plus sûr vis à vis d'éventuelles updates de phpbb/forumactif.
_________________ Mon CV : fr - de - en Tous Ensemble! Réalisons!
Chlorodatafile Utilisateur confirmé: Rang *****
Messages : 2929 Localisation : Belfort Projet Actuel : Paralights
Sujet: Re: Le Nouveau CBNA ! Sam 6 Aoû 2016 - 11:35
Il faut dans ce cas penser à un détails, c'est que ForumActif change le bbcode à chaque édition de poste !
Ce qui fait que parfois, en éditant on flingue la mise en forme, donc ça serait un one shot cette version là de l'importeur.
En passant par la citation je ne sais pas comment ça fonctionne, reste que on ne récupérera pas la mise en forme de base normalement, pas totalement, mais quelque chose de proche.
Sujet: Re: Le Nouveau CBNA ! Sam 6 Aoû 2016 - 11:51
daminetreg a écrit:
Oui je sais qu'on a pas le bbcode pur pour l'instant. Mais je préfèrerai changer la partie qui prends le html, qui est un résultat déjà transformé en utiliser pour l'import une url qui édite/cite chaque poste, pour récupérer le bbcode pur.
Je pense que cela permettrait d'éviter de perdre des choses, et surtout d'être au plus près de ce que les utilisateurs ont entré, et cela me paraît plus robuste que de prendre le html du message déjà rendered : cela évite de mélanger par erreur la signature et cela rends le code d'import plus sûr vis à vis d'éventuelles updates de phpbb/forumactif.
Ouai par contre la tu multiplies le temps de parsing du site par le nombre de message par post (qui est de 30). Ce qui fait ~3x30, soit 90 jours.
Et le système de quotes ne marche pas quand un topic est lock.
Et chloro a raison forumactif défonce un peu le bbcode une fois qu'on le poste, quand on regarde la source ce n'est plus l'original.
Je pense que c'est plus intéressant de faire un parseur html vers markdown (ou bbcode), car au moins le projet d'export de forums forumactif pourra être utilisable pour d'autres personnes qui veulent migrer, et pas juste utilisé pour le CBNA.
_________________
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
Sujet: Re: Le Nouveau CBNA ! Lun 8 Aoû 2016 - 18:53
Le bbcode n'est pas flingué par une quote ou un edit. Du moins pas dans la réponse du serveur.
Et c'est à mon avis justement le seul moyen propre qui soit réutilisable, car tout changement de nom de classes css etc. de la part de forumactif pourrait mener à des soucis d'import.
Aussi il suffira de configurer un user qui a le droit de quoter ou éditer dans l'importeur. J'ai déjà un parseur de bbcode, je vous montrerai ce que je souhaite faire directement en code.
_________________ Mon CV : fr - de - en Tous Ensemble! Réalisons!
Sujet: Re: Le Nouveau CBNA ! Dim 28 Aoû 2016 - 0:17
Merci [TheDarTiger] On va déjà devoir implémenté la feature. Après on downloadera à fond On te préviendra si il faut. Après sinon, on parsera plutot le HTML si c'est pas possible.
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
Sujet: Re: Le Nouveau CBNA ! Mar 30 Aoû 2016 - 11:15
En fait je suis en train de faire tourner l'importeur dans le browser grace à emscripten donc tout le monde pourra participer facilement dès que j'aurai suffisamment avancé.
_________________ Mon CV : fr - de - en Tous Ensemble! Réalisons!
Sujet: Re: Le Nouveau CBNA ! Jeu 1 Sep 2016 - 21:54
Une questions pour le CBNA.
Si vous deviez faire la fonction qui effectue des recherches sur les tags, vous l'implémenteriez comment ? Je pense qu'on aura besoin de rechercher pour une conjonction de tags (tag1 ET tag2 Et tag3 ET ...) 1) Comment l'implémenter efficacement ? 2) Comment déterminer l'ordre des topics affiché lors d'une recherche ? 3) Comment, ajouter/supprimer/(modifier) des élements de recherches ?
Si vous deviez faire une recherche plus compliqué qu'une conjonction de tags, que feriez-vous ?
Sujet: Re: Le Nouveau CBNA ! Ven 2 Sep 2016 - 10:21
1) Vu que le plus opti reste une recherche dichotomique, il faudrait une table associée a chaque tag qui contiens les topics taggés, ordonné par ID de topic.
Code:
for(tag: tags) { id = map_tag_id[tag]; // todo: gerer le cas ou tag n'existe pas if(not binarySearch(tag_topic[id], topic_id) return false; } return true;
2) Dépend de ce que l'ont veut: -attribuer une note a un topic -attribuer une note a chaque tag d'un topic (recherche plus efficace, mais bien plus ****** a implementer du coup)
3) Si c'est au niveau de la GUI il faudrait une bulle autour du tag avec une petite croix a droite pour pouvoir le fermer facilement. Pour l'ajout il suffit d'écrire, et quand on fait espace, ça considère le dernier mot non considéré comme tag comme un tag. Tu peux regarder sur deviantart leur truc marche pas trop mal meme si y a pas la petite croix (du coup c'est un peu plus ****** pour virer un tag).
Pour une recherche plus compliqué il faut la transformer sous forme (A + B + C) x (A + C) X (D + E) ... Je me souviens plus le nom mais c'est une conjonction de disjonctions quoi. Je sais plus trop comment ça marche mais j'avais fait un TP pour le faire et je l'ai encore sous la main si y a besoin. Ce qu'y a de cool c'est que toute expression logique peut être ramenée sous cette forme, qui est ensuite presque aussi simple a traiter qu'une bête conjonction.
On transforme donc l'algo précédent ainsi:
Code:
for(or_tags: and_tags) { bool find = false; for(tag: or_tags) { id = map_tag_id[tag]; // todo: gerer le cas ou tag n'existe pas if(binarySearch(tag_topic[id], topic_id) { find = true; break; } } if(!find) return false; } return true;
Sujet: Re: Le Nouveau CBNA ! Dim 4 Sep 2016 - 23:31
Merci Oni!
Il me reste 2 problèmes.
1) L'aspect temporelle. Comment gérer la modification de l'index au fils du temps ? Je refais l'index pour chaque modifications ? Mouais pourquoi pas. Ou alors je fais des structures qui me permettent l'ajout puis la suppression d'une donnée.
Tu mettrerais quoi comme structures ?
Code:
struct Entry { Id id;
vector<tags> tags; Text Author; Date date; bool operator<(const Entry& other) { return id<other.id; } }
Ainsi, on peut à partir d'une entrée la supprimer rapidement de tout les index (by_tags, by_authors, by_date) en passant d'abord par by_id qui nous donne les tags, authors et dates.
Ensuite, le problème qui vient, c'est d'ordonner les résultats (par une certaine mesure qui se résume par un réel) Si les données sont importantes, cela peut-être compliqué de trier.
2) Comment récupérer des données triées (par popularité j'entend, pas par Id) ?
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
Sujet: Re: Le Nouveau CBNA ! Lun 5 Sep 2016 - 9:49
arthuro a écrit:
Haha , Dam seriously ?
Tu pense pouvoir faire marcher la libcurl avec emscripten?
Pour l'instant j'ai commenté avec un #ifdef l'import via curl et j'ai écrit l'équivalent en emscripten::val("XmlHttpRequest").new()... mais l'idée est de porter curl au passage.
_________________ Mon CV : fr - de - en Tous Ensemble! Réalisons!
Sujet: Re: Le Nouveau CBNA ! Lun 5 Sep 2016 - 10:23
Yep ta structure c'est l'idée. En fait je crois que c'est comme ça que marche une db sql :p
Pour ce qui est de l'écriture sur le HDD, une méthode simple consiste a écrire les nouvelles entrées tout bêtement à la suite, et a ordonner les donner au chargement (qui n'est pas sensé être fréquent, mais c'est très rapide).
Pour récupérer les données par popularité, il te faut un bête conteneur ordonné par popularité, et qui associe ça à l'Id des objets a trier. Ça marche plus ou moins comme le reste :p
PS: je viens de remarquer que l'algo que j'ai donné avant permet de savoir juste si UN topic correspond aux tags donnés, ce qui est un peu inutile. Pour obtenir tous les topics ça reste très simple, il suffit de faire des opérations d'ensembles sur l'ensemble de topic associé a chaque tag. Pour la disjonction c'est le plus simple, il suffit juste de faire une union entre tous les ensembles. Pour la conjonction ça demande de trouver l'intersection entre tous les ensembles.
Comme les ensembles sont de bêtes tableaux de nombres triés, cela doit se faire très rapidement.
_________________
hyper Utilisateur confirmé: Rang ****
Messages : 1454
Sujet: Re: Le Nouveau CBNA ! Dim 2 Oct 2016 - 19:54
Sujet: Re: Le Nouveau CBNA ! Ven 23 Déc 2016 - 0:17
Le système de mail ne fonctionne pas sur le serveur de production car la libcurl n'est pas installée. Dam si tu m'entends
Bientôt, vous pourriez voir tous le forum avec tous les topics/messages/utilisateurs. Il faut juste que j'upload le commit initial de la BDD.
Invité Invité
Sujet: Re: Le Nouveau CBNA ! Ven 23 Déc 2016 - 16:09
Et si on ne veut pas importer nos messages et profil pour le nouveau forum ? Est-ce qu'on a le choix ou vous avez déjà pris la décision par vous même ?
Sujet: Re: Le Nouveau CBNA ! Mer 28 Déc 2016 - 20:28
Si quelqu'un le souhaite, on peut rendre inaccessible le serveur de test pour le moment. Donc c'est de la bricole pour le moment.
Ensuite, dès qu'on aura fait le lien entre un utilisateur et son email. Nous pourrons lui envoyer un email au lancement pour lui montrer où se trouve le bouton pour supprimer son profil et ses messages. On mettra en place également une page qui récapitule l'ensemble de ses messages si il souhaite en supprimer seulement certains.