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 90% complete.

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

Что такое InternetArchiveBot (IABot)

InternetArchiveBot — бот, написанный на PHP, фреймворк-независимый, с поддержкой OAth-авторизации. Предназачен в первую очередь для использования в вики-проектах WMF. Создан в ответ на запрос сообщества участником Cyberpower678. Бот глобальный, использует специфические вики-функции в абстрактном классе, чтобы работать в различных вики по различным правилам. Для достижения максимальной гибкости ботом используютмя внутренние и внешние параметры настройки, с помощью которых можно задать желаемое пользователем и/или сообществом поведение. Задачей бота является решение различных вопросов, связанных с вымиранием ссылок. На крупных сайтах можно настроить работу бота в многопотоковом режиме с заданным числом рабочих процессов для ускорения анализа. Каждый процесс обрабатывает свою отдельную страницу и по окончании передает основному процессу статистику работы.

Что делает бот?

IABot обладает набором функций, используемых при анализе страниц. Поскольку конечной целью является мааксимальное избавление от неработающих ссылок, бот выполняет следующий анализ:

  1. ищет ссылки непосредственно на странице, а не в базе данных. Благодаря этому бот определяет, в какой форме использована ссылка, например, различает ссылки внутри шаблонов цитирования, в сносках или напрямую в тексте. Это позволяет интеллектуально обрабатывать ссылки, отформатированные различными способами, что делает поведение бота весьма близким к действиям человека.
  2. проверяет архивы на наличие сохранённой копии страницы, а если такой не обнаруживает, архивирует страницу с помощью Wayback Machine.
  3. просматривает архивы Wayback Machine, чтобы получить рабочую копию страницы по ссылке, либо использует ссылки на архивные копии страниц, уже указанные в Википедии.
  4. проверяет, работает ли непомеченная ссылка. Уровень ложно положительных срабатываний — 0,1 %.
  5. автоматически распознаёт в шаблонах ссылки и работает с ними. Также распознаёт даты доступа к страницам, указанные в шаблонах.
  6. сохраняет все полученные сведения в базе данных, благодаря чему может в дальнейшем обеспечить к ним доступ с помощью сопутствующих инструментов и использовать для самообучения.
  7. преобразовывает существующие архивные ссылки в длинную форму (если включёна соответствующая настройка).
  8. исправляет неверное использование архивных шаблонов или неправильный формат ссылок.

Как это работает

Функции IABot распрелделены по нескольким класс в соответствии с назначением. Коммуникационные функции и функции настройки хранятся в классе API, функции работы с базой данных — в классе DB, прочие функции ядра — в статическом классе Core, функции проверки доступности страниц — в классе CheckIfDead, многопотоковая фукциональность — в классе Thread, функции глобального и локального парсера — в абстрактном классе Parser. Все функции, за исключением парсера, работают одинаково на всех вики. Класс Parser, будучи абстрактным, требует использование расширений класа. Расширения класса сожержат функции, которые помогают боту правильно работать на заданной вики, исиользуя локальные настройки. При запуске бот пытается автоматически загрузить соответсвующее расширение класса Parser и инициализирует его в качестве основного парсера.

Поддеживаемые разделы

На текущий момент IABot может работать в следующих вики:

  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

Настройка

Если вы запускаете InternetArchiveBot самостоятельно, его настройку можно осуществить на странице настроек вики и путем создания файла deadlink.config.local.inc.php в той же директории. Если InternetArchiveBot запускает кто-то ещё, а вам нужно настроить его поведение в заданной вики, вы можете создать подстраницу учётной записи бота под названием "Dead-links.js" и указать настройки на ней. Пример такой страницы: User:InternetArchiveBot/Dead-links.js. Используемые параметры описаны ниже:

  • link_scan — определяет, где искать ссылки. 0 — обрабатывать все ссылки на странице. 1 — обрабатывать ссылки внутри тегов сносок.
  • page_scan — определяет, какие страницы обрабатывать. 0 — обрабатывать все страницы основного пространства. 1 — обрабатывать только страницы, имеющие теги неработающей ссылки (например, deadlink).
  • dead_only — определяет, какие ссылки может обрабатывать бот. 0 — обрабатывать все ссылки. 1 — обрабатывать только ссылки, помеченные как неработающие. 2 — обрабатывать ссылки, помеченные как неработающие, и не помеченные ссылки, но определённые ботом как неработающие.
  • tag_override — отменять оценку ссылки ботом. Если участник пометил ссылку как неработающую, а бот считает, что она в порядке, то 1 запрещает боту использовать собственное заключение, 0 — оставляет заключение бота в силе.
  • archive_by_accessdate — значение 1 требует от бота использовать архивную копию, максимально близкую к моменту времени, указанному в параметре accessdate (время последней проверки страницы). 0 — использовать наиболее свежую архивную копию страницы. Исключением являются архивные копии страницы по данной ссылке, использованные ботом ранее и включённые в его базу данных.
  • touch_archive — изменение имеющейся ссылки на архивную копию. 1 — позволяет изменять имеющуюся ссылку на архив. 0 — запрещает менять имеющуюся ссылку. В случае если архивная копия некорректна или может быть определён неверный формат ссылки на архив, бот игнорирует значение данного параметра и всегда исправляет ссылку на архивную копию.
  • notify_on_talk — оставлять сообщения о внесённых изменениях на соответствующей странице обсуждения. При редактировании основной страницы на страницу обсуждения добавляются только сообщения о вновь добавленных ссылках на архивные копии страниц (в том числе при изменении ранее добавленных архивных ссылок). Если основная страница не редактировалась, на странице обсуждения указываются все ссылки, определённые как неработающие, и ссылки на обнаруженные архивные копии. 1 — включить данную настройку. 0 — не включать данную настройку.
  • notify_error_on_talk — оставлять на соответствующей странице обсуждения об источниках, которые не удалось заархивировать. 1 — включить данную настройку.
  • talk_message_header — заголовок сообщений бота. Работает в сочетании с параметром notify_on_talk равным 1.
    См. также подраздел #Магические слова.
  • talk_message — основной текст сообщений бота. Работает в сочетании с параметром notify_on_talk равным 1.
    См. также подраздел #Магические слова.
  • talk_message_header_talk_only — заголовок сообщений бота, если основной текст статьи не редактировался.
    См. также подраздел #Магические слова.
  • talk_message_header_talk_only — основной текст сообщений бота, если основной текст статьи не редактировался.
    См. также подраздел #Магические слова.
  • talk_error_message_header — заголовок сообщений бота об ошибках. Работает в сочетании с параметром notify_error_on_talk равным 1.
  • talk_error_message — основной текст сообщений бота об ошибках. Работает в сочетании с параметром notify_error_on_talk равным 1.
    Поддерживает следующие магические слова:
    1. {problematiclinks}: ненумерованный список ошибок, возникших при архивировании.
  • deadlink_tags — набор тегов, обозначающих неработающие ссылки. Перенаправления распознаются автоматически, их добавление не требуется. Используйте формат шаблона как в статье, но без параметров.
  • citation_tags — набор тегов, обозначающих цитирование с использование ссылок. Перенаправления распознаются автоматически, их добавление не требуется. Используйте формат шаблона как в статье, но без параметров.
  • archive#_tags — набор тегов общепринятых ссылок на архивы, используемые ботом. Перенаправления распознаются автоматически, их добавление не требуется. Используйте формат шаблона как в статье, но без параметров. # — число. Для обработки шаблонов архивирования могут использоваться различные категории. Это зависит от настроек бота при работе в конкретной вики и связано с её особенностями.
  • talk_only_tags — набор тегов, требующих от бота не изменять основной текст статьи. Эти теги имеют приоритет перед общей настройкой бота.
  • no_talk_tags — набот тегов, запрещающих боту оставлять сообщения на странице обсуждения. Эти теги имеют приоритет перед общей настройкой бота.
  • ignore_tags — набор тегов, требующих игнорировать источники, связанные с данными тегами. Перенаправления распознаются автоматически, их добавление не требуется. Используйте формат шаблона как в статье, но без параметров.
  • verify_dead — включить алгоритм проверки работоспособности ссылок. Бот проверяет непомеченные и не помеченные как неработающие ссылки и действует в соответствии с полученными результатами. 1 — включить. 0 — выключить.
  • archive_alive — архивировать ещё не архивированные ссылки с помощью Wayback Machine. 1 — включить. Требует разрешения от разработчиков Wayback Machine.
  • notify_on_talk_only — запретить редактирование основного текста статьи, только оставлять сообщения на странице обсуждения. Имеет приоритет перед notify_on_talk. 1 — включить.
  • convert_archives — преобразовывать все распознанные ссылки на архивные копии в HTTPS (при возможности), преобразовывать ссылки на архивные копии в длинный формат (при возможности) для отображения даты архивирования и оригинальной ссылки.
  • 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 — часть магического слова {modifiedlinks}, используется в описании добавленной ссылки на архивную копию страницы.
    Поддерживает следующие магические слова:
    1. {link}: оригинальная ссылка.
    2. {newarchive}: ссылка на новую архивную копию.
  • mlmodifyarchive — часть магического слова {modifiedlinks}, используется в описании изменённой ссылки на архивную копию страницы.
    Поддерживает следующие магические слова:
    1. {link}: оригинальная ссылка.
    2. {oldarchive}: ссылка на старую архивную копию.
    3. {newarchive}: ссылка на новую архивную копию.
  • mlfix – часть магического слова {modifiedlinks}, используется в описании изменений форматировани и/или исправлений ссылки.
    Поддерживает следующие магические слова:
    1. {link}: оригинальная ссылка.
  • mltagged — часть магического слова {modifiedlinks}, используется в описании ссылки, помеченной как неработающая.
    Поддерживает следующие магические слова:
    1. {link}: оригинальная ссылка.
  • mltagremoved — часть магического слова {modifiedlinks}, используется в описании ссылки, с которой снята пометка неработающей.
    Поддерживает следующие магические слова:
    1. {link}: оригинальная ссылка.
  • mldefault — часть магического слова {modifiedlinks}, используется в качестве текста, сигнализирующего о внутренней ошибке бота при использовании {modifiedlinks}.
    Поддерживает следующие магические слова:
    1. {link}: оригинальная ссылка.
  • mladdarchivetalkonly — часть магического слова {modifiedlinks}, используется в описании ссылки, для которой рекомендуется добавление ссылки на архивную копию. Используется, если основной текст статьи не изменялся.
    Поддерживает следующие магические слова:
    1. {link}: оригинальная ссылка.
    2. {newarchive}: ссылка на новую архивную копию.
  • mltaggedtalkonly — часть магического слова {modifiedlinks}, используется в описании ссылки, которая определена как неработающая и должна быть помечена. Используется, если основной текст статьи не изменялся.
    Поддерживает следующие магические слова:
    1. {link}: оригинальная ссылка.
  • mltagremovedtalkonly — часть магического слова {modifiedlinks}, используется в описании ссылки, помеченной как неработающая, но при анализе ботом признана живой. Используется, если основной текст статьи не изменялся.
    Поддерживает следующие магические слова:
    1. {link}: оригинальная ссылка.
  • plerror — часть магического слова {problematiclinks}, используется в описании ошибок Wayback Machine при архивировании.
    Поддерживает следующие магические слова:
    1. {problem}: ссылка, с которой связан ошибка.
    2. {error}: ошибка, возникшая при архивировании страницы по ссылке.
  • maineditsummary — комментарий к правке основного текста статьи, совершаемой ботом.
    См. также подраздел #Магические слова (не поддерживаются пп. 11, 12 и 13).
  • errortalkeditsummary — комментарий к правке страницы обсуждения, содержащей сообщение об ошибке.
  • talkeditsummary — комментарий к правке страницы обсуждения, содержащей анализ основного текста.
    См. также подраздел #Магические слова.

Магические слова

Магические слова используются с соответствующими параметрами, о чём упомянута в их описании выше.

  1. {namespacepage}: заголовок страницы, обработанной ботом.
  2. {linksmodified}: количество помеченных или восстановленных.
  3. {linksrescued}: количество восстановленных ссылок.
  4. {linksnotrescued}: количество невосстановимых ссылок.
  5. {linkstagged}: количество ссылок, помеченных как неработающие.
  6. {linksarchived}: количество ссылок заархивированных с помощью Wayback Machine.
  7. {linksanalayzed}: общее число обработанных ссылок.
  8. {pageid}: идентификатор обработанной страницы.
  9. {title}: заголовок страницы, обработанной ботом, закодированный как в адресной строке.
  10. {logstatus}: возвращает "fixed", если настройки бота позволяют редактировать статью; "posted", если бот может только оставлять сообщения на странице обсуждения.
  11. {revid}: идентификатор версии правки; возвращает пустое значение, если редактирование не осуществлялось.
  12. {diff}: ссылка на страницу сравнения версий до и после редактирования статьи; возвращает пустое значение, если редактирование не осуществлялось.
  13. {modifedlinks}: ненумерованный список действий, осуществлённых либо планируемых к осуществлению на странице; при форматировании текста используется набор дополнительных переменных.

Исходный код

Текущую версию исходного кода можно найти по адресу: https://github.com/cyberpower678/Cyberbot_II/tree/master/IABot.

План мероприятий

Phase 1 (complete) – Have InternetArchiveBot process all the pages on English Wikipedia that are in Category:Articles with dead external links and replace as many dead links as possible with archive links from the Wayback Machine.

Phase 2 (complete) – Have InternetArchiveBot process all the pages on English Wikipedia to find untagged dead links and replace them with archive links.

Phase 3 (in progress) – Deploy InternetArchiveBot on other wikis besides English Wikipedia (with community consent).

Management

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.