Википедия:Заявки на статус бота/VortBot

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

User:VortBot[править код]

Здесь находятся завершившиеся обсуждения. Просьба не вносить изменений.

вкладправкиSULжурналыблокироватьлог блокировокжурнал изменения правприсвоить флаг

Ответственный ботовод: Vort

Цель[править код]

Выполнение задач на ВП:РДБ. В данный момент собираюсь выполнить запрос ВП:РДБ#Bogus file options. Примеры правок: 1, 2, 3, 4. Планирую запускать обработку малыми партиями, оценивать отзывы и постепенно наращивать объёмы (50, 200, 500 правок).

Технические подробности[править код]

Выполнение указанного запроса РДБ происходит в 3 этапа: скачивание статей, синтаксический анализ викиразметки и замена фрагментов викитекста в автоматическом режиме. За каждый этап отвечает отдельная программа. Все они написаны на C#, используются непосредственно API вызовы MediaWiki. Так как за редактирование статей отвечает третья программа, то вот её исходный код:

Код писался быстро, поэтому выглядит не лучшим образом. Со временем планирую подправить архитектуру и стиль. Остальные два модуля тоже могу выложить, если потребуется.

Имеется флаг бота в других разделах Википедии?[править код]

Нет.

Обсуждение[править код]

  • Есть же фреймворки для шарпа, зачем через голое API работать по харкдору? :) Из кода обычно интересны только сами замены. ~Facenapalm (обс.) 18:44, 26 июля 2017 (UTC)[ответить]
    • Когда-то искал библиотеки да и не нашел того, что требовалось. На этот раз же использовал прошлые наработки + дописывал по аналогии. Из преимуществ такого подхода: полный контроль над процессом работы бота; проще находить и исправлять ошибки. Вот замены: WikiParse/Program.cs. — Vort (обс.) 19:06, 26 июля 2017 (UTC)[ответить]
      • @Vort: погоди, я правильно понимаю, что алгоритм такой: а) скачать текст всех статей; б) отредактировать все статьи; в) сохранить всю пачку? Конфликтов правок не боишься? ~Facenapalm (обс.) 12:26, 28 июля 2017 (UTC)[ответить]
        • @Facenapalm: Скачиваются только те, которые в этом списке. Скачиваются вместе с датой последнего редактирования. В случае конфликта в базе ставится пометка и замена пропускается. — Vort (обс.) 12:28, 28 июля 2017 (UTC)[ответить]
          • Ну да, я имел в виду «все статьи из списка». :) Просто обычно боты работают по принципу «скачал одну статью — отредактировал одну статью — сохранил одну статью». Если нужен предварительный анализ, скажем, для составления списка статей, используется дамп. Что конфликтов правок бот устраивать не будет — это хорошо, но всё же, по-моему, путь это сложный и ненужный. Но дело твоё, конечно. ~Facenapalm (обс.) 12:33, 28 июля 2017 (UTC)[ответить]
            • Пакетная обработка всегда быстрее. К примеру, в случае скачки, будет качаться 50 статей за раз. Это позволит сэкономить время минимум 50-ти ping-ов. В случае обработки будут использоваться все 4 ядра моего процессора. — Vort (обс.) 12:37, 28 июля 2017 (UTC)[ответить]
            • Также по всем данным сразу можно собирать статистику и делать визуальный контроль. Отладка алгоритма тоже упрощается — пересчёт данных не требует их повторной закачки. — Vort (обс.) 13:33, 28 июля 2017 (UTC)[ответить]
            • С дампами не работал, но, как я понимаю, они намного больше той выборки, которая мне требуется. Да и данные не самые свежие — то есть всё равно надо докачивать обновившиеся версии. — Vort (обс.) 13:33, 28 июля 2017 (UTC)[ответить]
  • Такая периодическая замена нужна, т.к. постоянно возникают ошибки, копируются из статьи в статью и на других языках из других хх-вики. Когда "там" вики-текст работает, а "тут" почему-то нет - это наверняка несёт негатив редким редакторам. :) ~Sunpriat (обс.) 20:53, 26 июля 2017 (UTC)[ответить]

Итог[править код]

Вроде все нормально, флаг присвоен rubin16 (обс.) 19:38, 27 августа 2017 (UTC)[ответить]