« PageUpdaterBot » : différence entre les versions
Aucun résumé des modifications |
|||
Ligne 5 : | Ligne 5 : | ||
[[PageUpdaterBot]] peut charger les pages à traiter de deux manières différentes, soit selon les dernières modifications, soit depuis le début, assurant de ce fait le traitement de toutes les pages. [[PageUpdaterBot]] commence par trier la page originale, si elle ne l'était pas encore. Puis [[PageUpdaterBot]] va analyser le contenu de la page entrée par entrée. Pour chaque entrée, le bot extrait les hyperliens qu'elle contient, en excluant la date et celui de la page en cours d'analyse. [[PageUpdaterBot]] va ensuite vérifier que chaque hyperliens redirige vers une page existante, que l'entrée existe bien dans cette page et qu'elle est placée au bon endroit. Afin de faciliter le traitement, un ID est associé à chaque entrée sous la forme d'un commentaire <code><nowiki><!-- PUB_id = &beginID&69&endID& --></nowiki></code> placé à la fin de la ligne. | [[PageUpdaterBot]] peut charger les pages à traiter de deux manières différentes, soit selon les dernières modifications, soit depuis le début, assurant de ce fait le traitement de toutes les pages. [[PageUpdaterBot]] commence par trier la page originale, si elle ne l'était pas encore. Puis [[PageUpdaterBot]] va analyser le contenu de la page entrée par entrée. Pour chaque entrée, le bot extrait les hyperliens qu'elle contient, en excluant la date et celui de la page en cours d'analyse. [[PageUpdaterBot]] va ensuite vérifier que chaque hyperliens redirige vers une page existante, que l'entrée existe bien dans cette page et qu'elle est placée au bon endroit. Afin de faciliter le traitement, un ID est associé à chaque entrée sous la forme d'un commentaire <code><nowiki><!-- PUB_id = &beginID&69&endID& --></nowiki></code> placé à la fin de la ligne. | ||
Dans le cas ou deux entrées sont présentes sous des formes différentes sur deux pages, la plus récente sera | Dans le cas ou deux entrées sont présentes sous des formes différentes sur deux pages, la plus récente sera gardée. Les pages sont sélectionnées de la plus récente à la plus ancienne pour assurer que la modification la plus récente prime. Pour vérifier que les entrées sont les mêmes, leurs "PUB_id" sont comparés. Si une entrée de la page mère n'a pas de ''PUB_id'', l'algorithme lui en donnera un, si une entrée de la page fille ne possède pas de ''PUB_id'', la liste d'hyperliens et de références qu'elles contiennent est comparée, si une correspondance est trouvée, leurs identifiants seront mis à jour. Ce traitement peut être source d'erreur si un utilisateur maladroit modifie accidentellement le ''PUB_id'' à la fin de chaque entrée. Ce qui rend ce bot un peu vulnérable au mauvais comportement des utilisateurs. Un autre cas peut poser problème : dans le cas ou une section contient des entrées sous forme de liste, puis quelques paragraphes de textes, et enfin à nouveau une liste d'entrée. Le texte entre les deux listes sera effacé par le bot. Ce qui ne devrait pas poser trop de problèmes si les utilisateurs respectent la convention adoptée. | ||
==Code== | ==Code== |
Version du 7 mai 2017 à 15:13
Résumé des fonctionnalité
PageUpdaterBot est un robot qui s'occupe de compléter les différentes pages sur Wikipast à partir d'hyperliens. PageUpdaterBot vérifie que sur chaque page, les hyperliens mènent vers une page existante et que les entrées associées soient placées aux bons endroits. Si la page associée à l'hyperlien n'existe pas, PageUpdaterBot crée la page et place l'entrée associée dans cette page.
Description technique et discussion
PageUpdaterBot peut charger les pages à traiter de deux manières différentes, soit selon les dernières modifications, soit depuis le début, assurant de ce fait le traitement de toutes les pages. PageUpdaterBot commence par trier la page originale, si elle ne l'était pas encore. Puis PageUpdaterBot va analyser le contenu de la page entrée par entrée. Pour chaque entrée, le bot extrait les hyperliens qu'elle contient, en excluant la date et celui de la page en cours d'analyse. PageUpdaterBot va ensuite vérifier que chaque hyperliens redirige vers une page existante, que l'entrée existe bien dans cette page et qu'elle est placée au bon endroit. Afin de faciliter le traitement, un ID est associé à chaque entrée sous la forme d'un commentaire <!-- PUB_id = &beginID&69&endID& -->
placé à la fin de la ligne.
Dans le cas ou deux entrées sont présentes sous des formes différentes sur deux pages, la plus récente sera gardée. Les pages sont sélectionnées de la plus récente à la plus ancienne pour assurer que la modification la plus récente prime. Pour vérifier que les entrées sont les mêmes, leurs "PUB_id" sont comparés. Si une entrée de la page mère n'a pas de PUB_id, l'algorithme lui en donnera un, si une entrée de la page fille ne possède pas de PUB_id, la liste d'hyperliens et de références qu'elles contiennent est comparée, si une correspondance est trouvée, leurs identifiants seront mis à jour. Ce traitement peut être source d'erreur si un utilisateur maladroit modifie accidentellement le PUB_id à la fin de chaque entrée. Ce qui rend ce bot un peu vulnérable au mauvais comportement des utilisateurs. Un autre cas peut poser problème : dans le cas ou une section contient des entrées sous forme de liste, puis quelques paragraphes de textes, et enfin à nouveau une liste d'entrée. Le texte entre les deux listes sera effacé par le bot. Ce qui ne devrait pas poser trop de problèmes si les utilisateurs respectent la convention adoptée.