ФЭНДОМ


Pywikibotфреймворк, включающий в себя большое количество готовых скриптов, при помощи которых можно в автоматическом или полуавтоматическом режиме редактировать вики. В отличие от AWB не имеет графического интерфейса, более сложен в настройке, поэтому, если бот нужен лишь для замены какого-то слова или фразы, вам, вероятно, будет проще установить и воспользоваться AWB.

Системные требования: Microsoft Windows, OS X или Linux. Для работы требуется установленный Python версии 2.7.2 и выше или Python 3.3 и выше.

Обратите внимание. Боты предназначены для выполнения множества однотипных правок. Если на вашей вики менее 100 страниц, то создавать бота не имеет смысла. У администраторов некоторых крупных википроектов уже есть боты, поэтому вы можете обратиться к ним для выполнения однотипных задач. Если вы хотите потестировать возможности бота, то вам не нужно запрашивать особый статус для учётной записи. Просто перейдите на Тест вики и используйте бота из-под своей учётной записи.

Шаг за шагом

Шаг 1: создаём аккаунт

Если у вас уже есть аккаунт для бота или вы хотите просто потестировать возможности pywikibot, пропустите этот шаг.

Обычно для ботов используются отдельные учётные записи, которые имеют особый статус.

Шаг 2: устанавливаем Python

  • Прежде всего откройте терминал (Для Linux: Ctrl+Alt+T) или командную строку (Для Windows: Win+R, впишите в окошко «cmd») и выполните команду
python --version
  • В случае, если в ответе будет указана версия 2.6.5(9), 2.7.2(10) или 3.3(5), вы можете пропустить этот шаг и переходить к следующему.
  • В случае, если в ответе будет указана иная версия либо ответа не будет вовсе, потребуется (пере)установить Python. Скачайте Python подходящей версии на свой компьютер и проследуйте инструкциям по установке.
  • Для установки дополнительных зависимостей потребуется pip (Package Manager). Он уже должен быть установлен, если вы используете последние версии Python. В противном случае, воспользуйтесь этой инструкцией.

Шаг 3: устанавливаем pywikibot

  • Скачайте pywikibot на свой компьютер.
  • Обратите внимание, что программу не нужно устанавливать. Просто распакуйте скачанный архив в отдельную папку, избегая кириллицы в адресе до pywikibot. Здесь и далее представим, что вы пользователь Windows и распаковали архив в папку C:/wikia. В случае с Linux команды аналогичны, но, скажем, для установки зависимостей придется воспользоваться правами администратора, а значит командой «sudo».
  • Снова откройте терминал или командную строку и выполните команду «cd», чтобы перейти в папку с pywikibot:
cd C:/wikia
  • Выполните следующую команду, установив все зависимости одной командой (необязательно, но облегчит дальнейшую работу):
pip install -r requirements.txt

Шаг 4: первоначальная настройка

  • Ботом мы планируем воспользоваться на ФЭНДОМЕ, а не на Википедии, для которой он изначально настроен, поэтому для начала придётся создать «family-file». Это можно сделать вручную, но гораздо удобнее будет воспользоваться встроенным скриптом. Для этого, «находясь» в той же папке, выполните команду
python generate_family_file.py
  • Проследуйте появившимся в командной строке инструкциям. Вас попросят ввести полный адрес до вики (пример: http://ru.community.wikia.com/wiki/Main_Page ), короткое название (пример: community), а также, вероятно, спросят о добавлении интервики-ссылок, на что следует ответить положительно буквой «y».
  • Вам также потребуется файл с настройками, для создания которого существует собственный скрипт, запускаемый командой
python generate_user_files.py
  • Проследуйте появившимся в командной строке инструкциям. Вас попросят подтвердить папку установки (указывайте «y»), предложат скопировать уже имеющиеся файлы существующей установки (указывайте «n») и создать тот самый файл с настройками (указывайте «y»). Далее потребуется выбрать ранее созданный «family-file» и ввести его номер, языковой код сайта (пример: ru), а также логин для бота (пример: AwesomeUser).

Шаг 5: входим в учётную запись

  • Выполните команду
python pwb.py login
  • Введите пароль, и появятся следующие строки:
Logging in to community:ru as AwesomeUser
Logged in on community:ru as AwesomeUser.

Важно: пароль не будет отображается по время ввода. Просто вводите и нажимайте клавишу ввода.

Рассматриваем скрипты

Вместе с pywikibot поставляется большое количество скриптов, расположенных в папке «scripts». При необходимости вы можете написать собственный, используя эту инструкцию. Любой скрипт из папки можно выполнить командой

python pwb.py [название скрипта]

Полный список скриптов можно найти на этой странице. Вы можете указать особые глобальные параметры, применимые ко всем скриптам и игнорирующие предустановленные настройки. Их можно найти здесь. Рассмотрим некоторые из задач и скрипты для их выполнения.

Замена текста

Для замены текста используется скрипт replace.py. Более подробно с ним можно ознакомиться здесь.

Представим, что у нас есть некая категория, скажем, «Справка», а нам нужно заменить во всех статьях, входящих в неё, слово «Викия» на «ФЭНДОМ». Команда для этого будет выглядеть примерно так:

python pwb.py replace -cat:"Справка" "Викия" "ФЭНДОМ"

С помощью параметра -cat:"Справка" мы указываем «источник» (в данном случае категорию), с которым будем работать. Помимо него можно указать, например:

  1. -catr:"Категория" — рекурсивно использовать категорию (просмотр подкатегорий, под-под категорий и т.д.).
  2. -xml:"Файл" — использовать дамп базы данных, что не подходит для ФЭНДОМА, потому что дамп нельзя запрашивать чаще одного раза в неделю.
  3. -start:"!" — использовать все страницы вики, начиная с указанной.
  4. -page:"Страница" — использовать выбранную страницу. Может быть использован многократно.
  5. -titleregex:"Страница" — использовать страницы, соответствующие указанному регулярному выражению.

Помимо «источника» нужно указать старый текст и новый (поддерживаются регулярные выражения; можно указать несколько вариантов замены).

Этой командой можно заменить слова «википроект» и «вики-проект» на «вики» во всех статьях вики, исключая те, в которых содержится указанный шаблон:

python pwb.py replace -regex -start:! "википроект\nвики-проект" "вики" -excepttext:"{{шаблон"

С помощью этой команды вы можете заменить все HTML-теги на вики-разметку во всех статьях из основного пространства имен:

python pwb.py replace -ns:0 -fix:HTML

Исправление категорий

Для исправления категорий используется скрипт redirect.py. Более подробно с ним можно ознакомиться здесь.

С помощью этой команды бот исправит двойные перенаправления, используя страницу Special:DoubleRedirects и спрашивая разрешение перед каждым исправлением:

python pwb.py redirect double

С помощью этой команды бот исправит разорванные перенаправления, используя страницу Special:BrokenRedirects, указав на верную страницу или удалив, если последнее невозможно (если есть права администратора; в противном случае отметит шаблоном на удаление), всё так же спрашивая разрешение перед каждым исправлением:

python pwb.py redirect broken -delete

С помощью этой команды бот исправит и двойные, и разорванные перенаправления, не спрашивая разрешения перед каждым исправлением:

python pwb.py redirect both -always -delete

Интервики-ссылки

Для создания, обновления и удаления интервики-ссылок используется скрипт interwiki.py. Более подробно с ним можно ознакомиться здесь.

Обновить все интервики-ссылки можно с помощью простой команды. Бот будет запрашивать разрешение на выполнение действий:

python pwb.py interwiki -start:! -confirm

Бот может также добавлять на страницы ссылки, которых там не было. Это реализуется при помощи подсказокhints»). Например, на страницу Конструктор тем нужно добавить интервики-ссылку en:Theme designer, которая существует на Community Central. Для этого следует использовать следующую команду:

python pwb.py interwiki -page:Справка:Конструктор_тем -hint:en:Theme_designer

Если требуется просмотреть название сразу в нескольких языковых разделах, их следует перечислить через запятую:

python pwb.py interwiki -page:Справка:Конструктор_тем -hint:de,es,id:Theme_designer

Представим, что на вашей вики проставлено большинство интервики-ссылок на вики другого языкового раздела, например английского, но в самой английской вики ситуация противоположная: ссылки на вашу не проставлены. Исправить ситуацию можно командой:

python pwb.py interwiki -start:! -back

Обратите внимание. Бот будет работать только на тех вики, где для него указана учётная запись. Это означает, что если вы хотите позволить использовать учётную запись «AwesomeUser» на английском портале, вы должны добавить следующую строку в файл «user-config.py»:

usernames['community']['en'] = u'AwesomeUser'

Ссылки

Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA , если не указано иное.