InternetArchiveBot/Як бот виправляє непрацюючі посилання
Процес виправлення непрацюючих посилань відбувається у чотири кроки: аналіз вмісту сторінки, сканування посилань, що з'являються на сторінці, створення архівів посилань та редагування сторінки.
== Розбір сторінки ==
Спочатку бот отримує пакет із 5000 статей для роботи з API вікі. Перед початком пакетного аналізу бот перевірить, чи були внесені будь-які зміни конфігурації з інтерфейсу керування. Після застосування будь-яких змін конфігурації він продовжить роботу з пакетом із 5000 статей, які зазвичай будуть розташовані в алфавітному порядку.
Бот починає аналіз сторінки з повного сканування вікітексту сторінки. Він намагається зібрати якомога більше інформації про шаблони цитувань, що містять URL-адреси, URL-адреси, що містяться в квадратних дужках, та URL-адреси, розміщені прямо, враховуючи <nowiki>, <pre>, <code>, <syntaxhighlight>, <source> та коментарі HTML. Він також намагається знайти відповідну інформацію про знайдені посилання, наприклад, чи інший редактор або бот оголосив посилання недійсним, або чи з ним вже пов’язані будь-які архівні URL-адреси. Наступний крок – аналіз інформації про парсинг, яку повертає механізм парсингу, для створення метаданих про неї.
Метадані для кожного посилання – джерела з посиланням у ньому – будуються на основі даних парсера, які включають: час доступу, час архівування, URL-адресу архіву, оригінальну URL-адресу, чи є URL-адреса недійсною, чи вважається вона платною URL-адресою, чи є вона неправильно сформованим посиланням, чи є це посилання, яке можна розширити в шаблон за бажанням, чи URL-адреса вже вважається недійсною чи ні. Якщо час доступу не знайдено в посиланні, InternetArchiveBot спробує екстраполювати час доступу, припускаючи, що час додавання посилання на сторінку був часом останнього доступу до посилання. Якщо знайдено URL-адресу архіву, яка не показує боту оригінальну URL-адресу, яку вона має відображати, бот екстраполює це, щоб перевірити, чи архів дійсно належить до посилання.
Примітка щодо URL-адрес у шаблонах: InternetArchiveBot за замовчуванням не обробляє URL-адреси, що містяться в невідомих шаблонах, оскільки не знає, як зміна цього шаблону може вплинути на відображену сторінку. Усі шаблони, не налаштовані як шаблони цитування, вважаються невідомими шаблонами. Налаштування шаблонів виконується в конфігураторі шаблонів цитування Citation Templates.
== Сканування посилань ==
Після аналізу кожного посилання бот, якщо це налаштовано, спробує визначити, чи посилання насправді непрацює, виконавши швидке сканування, розподіливши пошук URL-адрес, щоб запобігти перевантаженню. Кілька URL-адрес в одному домені будуть запитуватися послідовно з перервою в одну секунду. URL-адреси різних доменів будуть згруповані для асинхронного запиту. Для сканування будуть включені лише URL-адреси, що відповідають встановленим критеріям.
URL-адреси, що підлягають скануванню, не повинні були бути скановані протягом останніх семи днів. Однак, якщо останнє сканування URL-адреси призвело до відповіді, яка позначила URL-адресу як неактивну, період очікування скорочується до трьох днів. URL-адреса повинна не пройти три сканування поспіль, щоб вважатися неактивною. Це означає, що для того, щоб URL-адресу вважали неактивною, потрібно щонайменше дев'ять днів. Період очікування повертається до семи днів після того, як її вважають неактивною. Якщо неактивну URL-адресу проскановано та виявлено активною, її статус негайно скидається до активного. URL-адреси та домени, встановлені у стан permalead (тобто постійно активні), завжди вважатимуться активними, якщо вони не позначені на вікі як неактивне посилання, і бот не налаштовано приймати цей тег замість власної оцінки. Постійні посилання не скануються. URL-адреси та домени, встановлені у стан permadead (тобто постійно неактивні), завжди вважатимуться неактивними без винятку. Посилання Permadead не скануються.
Окрім того, що permadead та permalive зазначають, бот також не сканує посилання, які він вважає сайтами з підпискою. Оскільки такі сайти неможливо точно оцінити, не знаючи, чи відповідь пов’язана з відсутніми обліковими даними або чи сторінка насправді недоступна. Як результат, бот вважатиме URL-адресу непрацюючою, лише якщо вона встановлена вручну в боті або позначена тегом у Вікіпедії. Бот шукає шаблони або значення параметрів у шаблонах CS1, встановлені користувачем, який ідентифікує сайт як такий, що вимагає безкоштовного або платного облікового запису для доступу до матеріалу. Якщо такі знаходять, домен позначається як сайт з підпискою, і бот припиняє його перевірку.
Архівування непрацюючих посилань
Після сканування всіх посилань бот перейде до пошуку архівів посилань, які він виявив непрацюючими. Якщо це налаштовано, він також може шукати архіви для всіх активних посилань. Якщо бот раніше виявляв URL-адресу архіву певного посилання, він використовуватиме свою пам'ять про нього. InternetArchiveBot може розпізнавати та використовувати понад 20 різних архівних сервісів. Якщо для активного посилання не існує архіву, бот спробує зберегти копію посилання в Wayback Machine, якщо це налаштовано, та використовувати отриманий знімок як нову URL-адресу архіву. Якщо знімок архіву для непрацюючого посилання не знайдено, бот вважатиме його невиправним і позначить його як постійно непрацююче посилання. Якщо посилання має URL-адресу архіву, але воно не розпізнається як дійсний архів або URL-адреса не відповідає знімку, воно буде замінено на те, яке бот вважає дійсним. Це забезпечує цілісність посилань і допомагає мінімізувати наслідки помилок і вандалізму.
Редагування сторінки
Після того, як бот завершить аналіз посилань, він спробує встановити, чи вносить він повторне редагування, яке було скасовано раніше. Якщо він виявить, що редагування повторюється, він спробує з'ясувати, чому редагування було скасовано, зокрема, чи було повідомлено про нього як про хибнопозитивний результат. Якщо він оцінить, що редагування могло бути хибнопозитивним, він повідомить про хибнопозитивний результат від імені користувача, який скасував редагування, і не повторюватиме спробу редагування, доки розробник не перегляне звіт.
Зрештою, до статті публікується редагування. Бот також виконує деякі виправлення по ходу справи та вносить інші незначні зміни до посилань, які він має намір редагувати. Найчастіше бот робить інтервали між шаблонами більш узгодженими, щоб примусово використовувати HTTPS для конкретних архівних URL-адрес, коли це можливо, а іноді просто перемикає UrlStatus у шаблоні цитування з активного на неактивний. Якщо бот зустрічає посилання, яке не використовує шаблон цитування, бот конвертує посилання на голе посилання на посилання, яке використовує шаблон цитування, якщо він може зробити це, не порушуючи формат посилання. Якщо голе посилання має шаблон архіву, шаблон, який відображає посилання на оригінальний знімок архіву URL-адрес, і шаблон вважається застарілим, бот конвертує його на бажаний стандартний.
Після внесення редагування, якщо це налаштовано, бот залишить повідомлення на сторінці обговорення з описом змін, внесених до сторінки. Або ж бота можна налаштувати так, щоб він залишав лише повідомлення на сторінці обговорення, а не редагував статтю.