InternetArchiveBot

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
This page is a translated version of the page InternetArchiveBot and the translation is 35% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎galego • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎العربية • ‎مصرى • ‎हिन्दी • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

Qu'est ce qu' InternetArchiveBot (IABot)

InternetArchiveBot est un puissant bot PHP, au cadriciel indépendant et utilisant OAuth conçu en premier lieu pour être utilisé sur les wikis de la Fondation Wikimédia, sur demande des communautés, par Cyberpower678. Il s'agit d'un bot global qui utilise des fonctions spécifiques au wiki dans une classe abstraite pour se lancer sur différents wikis avec différentes règles. Pour un maximum de flexibilité, il offre des valeurs de configuration en ligne et hors ligne qui peuvent être modifiées pour convenir à l'opérateur et/ou à la communauté wiki. Sa fonction est de traiter plusieurs aspects de linkrot. Pour les gros sites, il peut être réglé pour multithreader à l'aide d'un nombre spécifique de « worker » pour réaliser le travail plus rapidement. Chaque « worker » analyse sa propre page et la signale au maître avec les statistiques asssociées.

Qu'est-ce qu'il fait ?

IABot a un ensemble de fonctions qu'il peut exécuter quand il analyse une page. Puisque l'objectif est de prévenir l'obsolescence des liens de la manière la plus exhaustive, il analyse les liens de plusieurs manières :

  1. En cherchant les URLs dans la page plutôt que dans la base de données. Cela permet au bot de comprendre comment l'url a été utilisé, a-t-il été utilisé dans un modèle, dans une référence, ou est-ce un simple lien. Cela permet au bot de gérer intelligemment des sources formatées de différentes manières, presque comme un humain.
  2. En vérifiant dans les archives si un lien existe déjà, auquel cas il ne lance pas de requête d'archivage auprès de la Wayback Machine.
  3. En fouillant dans les archives de la Wayback Machine pour récupérer une copie fonctionnelle de la page dont le lien est mort, ou en utilisant les archives déjà utilisées pour une URL sur Wikipédia.
  4. En vérifiant si les liens morts non répertoriés sont réellement morts ou non. Cela génère un taux de faux positifs de 0,1%.
  5. En permettant une résolution automatique des modèles qui se résolvent en tant qu'URL dans les modèles de citation et en travaillant à partir de là. Il en va de même pour les modèles traitant des dates d'accès.
  6. En enregistrant toutes ces informations dans une base de données, ce qui permet l'utilisation d'interfaces qui peuvent utiliser ces informations, et permet au bot d'apprendre et d'améliorer ses services.
  7. En convertissant les URLs d'archives existantes en leur forme longue si activée.
  8. En corrigeant les mauvaises utilisations de modèles d'archives ou d'URL mal formatées.

Comment ça marche ?

Les fonctions d'IABot ont été placées dans plusieurs classes différentes, en fonction des fonctions qu'elles remplissent. Les fonctions liées à la communication, ainsi que les valeurs de configuration wiki sont stockées dans la classe API. Les fonctions liées aux bases de données dans la classe DB (en français : base de données), les fonctions de base diverses dans une classe Core (en français : base, ou coeur) statique, les fonctions de vérification des liens morts dans une classe CheckIfDead (en français : VerifieSiMort), le moteur de thread dans la classe Thread, et les fonctions d'analyse globale et spécifique au wiki dans une classe Parser (en français : analyseur) abstraite. Alors que toutes les fonctions sauf les dernières peuvent s'exécuter uniformément sur tous les wikis, la classe Parser nécessite une extension de classe en raison de sa nature abstraite. Les extensions de classe contiennent les fonctions qui permettent au bot de fonctionner correctement sur un wiki donné, avec ses règles données. Quand le bot démarre, le bot va essayer de charger automatiquement l'extension appropriée de la classe Parser et l'initialiser en tant que classe d'analyse.

Wikis actuellement pris en charge

IABot peut actuellement fonctionner sur les wikis suivants :

  1. Alemannisch Wikipedia
  2. Bavarian Wikipedia
  3. Central Kurdish Wikipedia
  4. German Wikipedia
  5. English Wikipedia
  6. Spanish Wikipedia
  7. French Wikipedia
  8. Italian Wikipedia
  9. Japanese Wikipedia
  10. Dutch Wikipedia
  11. Norwegian Wikipedia
  12. Russian Wikipedia
  13. Wikispecies
  14. Swedish Wikipedia
  15. Chinese Wikipedia

Configuration

Si vous exécutez InternetArchiveBot vous-même, vous pouvez le configurer via la page de configuration wiki et en créant un nouveau fichier deadlink.config.local.local.inc.php dans le même répertoire. Si quelqu'un d'autre exécute InternetArchiveBot et que vous avez juste besoin de le configurer pour un wiki particulier, vous pouvez configurer une sous-page de la page utilisateur du bot appelée "Dead-links.js" et la configurer là. Par exemple, User:InternetArchiveBot/Dead-links.js. (Note du traducteur : vérifier si la page doit rester en:User:(...) ou basculer sur le wiki particulier, comme fr:User:(...). Fin de la note du traducteur.) Les valeurs de configuration sont expliquées ci-dessous :

  • link_scan – Determines what to scan for when analyzing a page. Set to 0 to handle every external URL on the article. Set to 1 to only scan URLs that are inside reference tags.
  • page_scan – Determines what pages to scan when doing it's run. Set to 0 to scan all of the main space. Set to 1 to only scan for pages that have dead link tags.
  • dead_only – Determines what URLs it can touch and/or modify. Set to 0 to all the bot modify all links. Set to 1 to only allow the bot to modify URLs tagged as dead. Set to 2 allow the bot to modify all URLs tagged as dead and and all dead URLs that are not tagged.
  • tag_override – Tells the bot to override its own judgement regarding URLs. If a human tags a URL as dead when the bot determines it alive, setting this to 1 will allow the tag to override the bot's judgement. Set to 0 to disable.
  • archive_by_accessdate – Setting this to 1 will instruct the bot to provide archive snapshots as close to the URLs original access data as possible. Setting this to 0 will have the bot simply find the newest working archive. Exceptions to this are the archive snapshots already found and stored in the DB for already scanned URLs.
  • touch_archive – This setting determines whether or not the bot is allowed to touch a URL that already has an archive snapshot associated with it. Setting this to 1 enables this feature. Setting this to 0 disables this feature. In the event of invalid archives being present or detectable mis-formatting of archive URLs, the bot will ignore this setting and touch those respective URLs.
  • notify_on_talk – This setting instructs the bot to leave a message of what changes it made to a page on its respective talk page. When editing the main page, the talk page message is only left when new archives are added to URLs or existing archives are changed. When only leaving a talk page message without editing the main page, the message is left if a URL is detected to be dead, or archive snapshots were found for given URLs. Setting this to 1 enables this feature. Setting this to 0 disables it.
  • notify_error_on_talk – This instructs the bot to leave messages about problematic sources not being archived on respective talk pages. Setting to 1 enables this feature.
  • talk_message_header – Set the section header of the talk page message it leaves behind, when notify_on_talk is set to 1.
    See the #Magic Word Globals subsection for usable magic words.
  • talk_message – The main body of the talk page message left when notify_on_talk is set to 1.
    See the #Magic Word Globals subsection for usable magic words.
  • talk_message_header_talk_only – Set the section header of the talk page message it leaves behind when the bot doesn't edit the main article.
    See the #Magic Word Globals subsection for usable magic words.
  • talk_message_talk_only – The main body of the talk page message left when the bot doesn't edit the main article.
    See the #Magic Word Globals subsection for usable magic words.
  • talk_error_message_header – Set the section header of the talk page error message left behind, when notify_error_on_talk is set to 1.
  • talk_error_message – The main body of the talk page error message left when notify_error_on_talk is set to 1.
    Supports the following magic words:
    1. {problematiclinks}: A bullet generated list of errors encountered during the archiving process.
  • deadlink_tags – A collection of dead link tags to seek out. Automatically resolves the redirects, so redirects are not required. Format the template as you would on an article, without parameters.
  • citation_tags – A collection of citation tags to seek out, that support URLs. Automatically resolves the redirects, so redirects are not required. Format the template as you would on an article, without parameters.
  • archive#_tags – A collection of general archive tags to seek out, that supports the archiving services IABot uses. Automatically resolves the redirects, so redirects are not required. Format the template as you would on an article, without parameters. The "#" is a number. Multiple categories can be implemented to handle different unique archiving templates. This is dependent on how the bot is designed to handle these on a given wiki and is wiki specific.
  • talk_only_tags – A collection of IABot tags to seek out, that signal the bot to only leave a talk page message. These tags overrides the active configuration.
  • no_talk_tags – A collection of IABot tags to seek out, that signal the bot to not leave a talk page message. These tags overrides the active configuration.
  • ignore_tags – A collection of bot specific tags to seek out. These tags instruct the bot to ignore the source the tag is attached to. Automatically resolves the redirects, so redirects are not required. Format the template as you would on an article, without parameters.
  • verify_dead – Activate the dead link checker algorithm. The bot will check all untagged and not yet flagged as dead URLs and act on that information. Set to 1 to enable. Set to 0 to disable.
  • archive_alive – Submit live URLs not yet in the Wayback Machine for archiving into the Wayback Machine. Set to 1 to enable. Requires permission from the developers of the Wayback Machine.
  • notify_on_talk_only – Disable editing of the main article and leave a message on the talk page only. This overrides notify_on_talk. Set to 1 to enable.
  • convert_archives – This option instructs the bot to convert all recognized archives to HTTPS when possible, and forces the long-form snapshot URLs, when possible, to include a decodable timestamp and original URL.
  • convert_to_cites – This option instructs the bot to convert plain links inside references with no title to citation templates. Set to 0 to disable.
  • mladdarchive – Part of the {modifiedlinks} magic word, this is used to describe the addition of an archive to a URL.
    Supports the following magic words:
    1. {link}: The original URL.
    2. {newarchive}: The new archive of the original URL.
  • mlmodifyarchive – Part of the {modifiedlinks} magic word, this is used to describe the modification of an archive URL for the original URL.
    Supports the following magic words:
    1. {link}: The original URL.
    2. {oldarchive}: The old archive of the original URL.
    3. {newarchive}: The new archive of the original URL.
  • mlfix – Part of the {modifiedlinks} magic word, this is used to describe the formatting changes and/or corrections made to a URL.
    Supports the following magic words:
    1. {link}: The original URL.
  • mltagged – Part of the {modifiedlinks} magic word, this is used to describe that the original URL has been tagged as dead.
    Supports the following magic words:
    1. {link}: The original URL.
  • mltagremoved – Part of the {modifiedlinks} magic word, this is used to describe that the original URL has been untagged as dead.
    Supports the following magic words:
    1. {link}: The original URL.
  • mldefault – Part of the {modifiedlinks} magic word, this is used as the default text in the event of an internal error when generating the {modifiedlinks} magic word.
    Supports the following magic words:
    1. {link}: The original URL.
  • mladdarchivetalkonly – Part of the {modifiedlinks} magic word, this is used to describe the recommended addition of an archive to a URL. This is used when the main article hasn't been edited.
    Supports the following magic words:
    1. {link}: The original URL.
    2. {newarchive}: The new archive of the original URL.
  • mltaggedtalkonly – Part of the {modifiedlinks} magic word, this is used to describe that the original URL has been found to be dead and should be tagged. This is used when the main article hasn't been edited.
    Supports the following magic words:
    1. {link}: The original URL.
  • mltagremovedtalkonly – Part of the {modifiedlinks} magic word, this is used to describe that the original URL has been tagged as dead, but found to be alive and recommends the removal of the tag. This is used when the main article hasn't been edited.
    Supports the following magic words:
    1. {link}: The original URL.
  • plerror – Part of the {problematiclinks} magic word, this is used to describe the problem the Wayback machine encountered during archiving.
    Supports the following magic words:
    1. {problem}: The problem URL.
    2. {error}: The error that was encountered for the URL during the archiving process.
  • maineditsummary – This sets the edit summary the bot will use when editing the main article.
    See the #Magic Word Globals subsection for usable magic words. (Items 11, 12, and 13 are not supported)
  • errortalkeditsummary – This sets the edit summary the bot will use when posting the error message on the article's talk page.
  • talkeditsummary = This sets the edit summary the bot will use when posting the analysis information on the article's talk page.
    See the #Magic Word Globals subsection for usable magic words.

Mots magiques globaux

Ces mots magiques sont disponibles lorsqu'ils sont mentionnés dans les options de configuration respectives ci-dessus.

  1. {namespacepage}: The page name of the main article that was analyzed.
  2. {linksmodified}: The number of links that were either tagged or rescued on the main article.
  3. {linksrescued}: The number of links that were rescued on the main article.
  4. {linksnotrescued}: The number of links that were unable to be rescued on the main article.
  5. {linkstagged}: The number of links that were tagged dead on the main article.
  6. {linksarchived}: The number of links that were archived into the Wayback Machine on the main article.
  7. {linksanalayzed}: The number of links that were overall analyzed on the main article.
  8. {pageid}: The page ID of the main article that was analyzed.
  9. {title}: The URL encoded variant of the name of the main article that was analyzed.
  10. {logstatus}: Returns "fixed" when the bot is set to edit the main article. Returns "posted" when the bot is set to only leave a message on the talk page.
  11. {revid}: The revision ID of the edit to the main article. Empty if there is no edit to the main article.
  12. {diff}: The URL of the revision comparison page of the edit to main article. Empty if there is no edit to the main article.
  13. {modifedlinks}: A bullet generated list of actions performed/to be performed on the main article using the custom defined text in the other variables.

Code source

Le code source actuel peut être trouvé à l'adresse https://github.com/cyberpower678/Cyberbot_II/tree/master/IABot.

Feuille de route

Phase 1. (terminée) - Faire traiter par InternetArchiveBot toutes les pages de Wikipedia en anglais qui sont en Category:Articles with dead external links (en français : Catégorie:Articles avec des liens externes morts) et remplacer autant de liens morts que possible par des liens d'archives de la Wayback Machine.

Phase 2 (terminée) - Demander à InternetArchiveBot de traiter toutes les pages de Wikipedia en anglais pour trouver les liens morts non marqués et les remplacer par des liens d'archives.

Phase 3 (en cours) - Déployer InternetArchiveBot sur d'autres wikis que Wikipedia en anglais (avec le consentement de la communauté).

Gestion

Many aspects of InternetArchiveBot can be managed at https://tools.wmflabs.org/iabot/, including reporting false positives for dead links and directing the bot to fix a single page.