Pywikipedia
pywikipediabot (Python Wikipedia Robot Framework) — набор скриптов для бота, работающего с движком MediaWiki. Скрипты написаны на языке Python. Заточены под работу в Википедии, но способны также работать в любом проекте, использующем движок MediaWiki.
Установка[править | править код]
- Скачать архив со скриптами, на сайте проекта в SF.net.
- Распаковать архив в желаемую директорию. У вас в системе должен быть установлен интерпретатор Python версии 2.3 или новее, получить его можно по адресу http://www.python.org/download/ (в большинстве современных дистрибутивов он уже есть).
- В директории families создать файл с именем traditio_family.py, куда вписать следующий текст:
# -*- coding: utf-8 -*- import family # Traditio class Family(family.Family): def __init__(self): family.Family.__init__(self) self.name = 'traditio' self.langs = { 'ru': 'new.traditio.ru', } self.namespaces[4] = { '_default': [u'Traditio', self.namespaces[4]['_default']], } self.namespaces[5] = { '_default': [u'Обсуждение Traditio', self.namespaces[5]['_default']], } def version(self, code): return "1.10.0" def path(self, code): return '/index.php' def apipath(self, code): return '/api.php'
- В корневой директории скриптов pywikipedia создать файл user-config.py, куда вписать следующий код:
# -*- coding: utf-8 -*- mylang = 'ru' family = 'traditio' usernames['traditio']['ru'] = u'Имя_вашего_бота' console_encoding = 'utf-8'
Если ваш бот обладает правами администратора, то следует добавить строку:
sysopnames['traditio']['ru'] = u'Имя_вашего_бота'
- В консоли выполнить:
python login.py
В случае, если всё успешно, скрипт запросит пароль вашего бота, залогинится и сохранит настройки в директории login-data. После этого вызывать скрипт больше не нужно, бот будет логиниться сам.
Скрипты[править | править код]
В наборе имеются скрипты, позволяющие производить наиболее востребованные действия. Каждый из скриптов обладает своим набором параметров запуска. Кроме того, имеются следующие глобальные параметры запуска:
-log
. Включить логирование действий скрипта. Лог будет расположен в директории logs.-log:filename
. Включить логирование, лог будет иметь имя filename.-nolog
. Выключить логирование.-putthrottle:timeout
. Установить время ожидания скрипта перед сохранением каждой изменяемой страницы в timeout.-lang:lng
-family:fml
login.py[править | править код]
Производит вход бота в проект, используя информацию из файла user-config.py
category.py[править | править код]
Скрипт для манипуляции категориями. Использование:
python category.py [global-arguments] action [-option]
Интерфейс[править | править код]
wikipedia[править | править код]
getSite(code = None, fam = None, user = None)
- переключиться на вики-проект с языком lang, типом family и используя учётную запись username
stopme()
input(question, colors = None)
- выведет строку текста и будет ожидать, что введет пользователь. Возвратит текст, введённый пользователем.
output(text, decoder = None, colors = [], newline = True, toStdout = False)
- выведет строку текста.
Page[править | править код]
Объекты Page представляют собой одну страницу в вики-проекте.
__init__(self, site, title, insite = None, defaultNamespace = 0)
- Конструктор класса Page. Возвращает страницу, находящуюся в проекте site с именем title.
title(self, underscore = False, savetitle = False)
- Получить имя страницы. Если передан аргумент
underscore
, равныйTrue
, метод возвращает имя страницы, в которой все пробелы заменены на символ «_».
- Получить имя страницы. Если передан аргумент
urlname(self)
- Получить имя страницы, закодированное для URL.
titleWithoutNamespace(self, underscore = False)
- Получить имя страницы без пространства имён и якоря раздела.
section(self, underscore = False)
- Получить имя якоря раздела. Метод возвращает имя якоря раздела, если он существует; возвращает
None
в противном случае.
- Получить имя якоря раздела. Метод возвращает имя якоря раздела, если он существует; возвращает
sectionFreeTitle(self, underscore = False)
- Получить имя страницы без якоря раздела. Если передан аргумент
underscore
, равныйTrue
, метод возвращает имя страницы, в которой все пробелы заменены на символ «_».
- Получить имя страницы без якоря раздела. Если передан аргумент
aslink(self, forceInterwiki = False)
site(self)
encoding(self)
- Получить кодировку страницы.
isAutoTitle(self)
autoFormat(self)
isCategory(self)
- Определить, является ли страница категорией. Метод возвращает
True
, если страница является категорией; возвращаетFalse
в обратном случае.
- Определить, является ли страница категорией. Метод возвращает
isImage(self)
- Проверить, является ли страница описанием изображения. Метод возвращает
True
, если страница является описанием изображения; возвращаетFalse
в обратном случае.
- Проверить, является ли страница описанием изображения. Метод возвращает
get(self, force = False, get_redirect = False, throttle = True, sysop = False, nofollow_redirects = False)
- Получить текст страницы.
exists(self)
- Проверить наличие страницы. Метод возвращает
True
, если страница существует; возвращаетFalse
в обратном случае.
- Проверить наличие страницы. Метод возвращает
isRedirectPage(self)
- Определить, является ли страница перенаправлением. Метод возвращает
True
, если страница существует и является перенаправлением; возвращаетFalse
в остальных случаях.
- Определить, является ли страница перенаправлением. Метод возвращает
isEmpty(self)
- Определить, является ли страница пустой. Метод возвращает
True
, если размер страницы без ссылок на категории и interwiki меньше 4 символов; возвращаетFalse
в остальных случаях.
- Определить, является ли страница пустой. Метод возвращает
botMayEdit(self)
- Определить, может ли бот редактировать страницу. Метод возвращает
True
, если редактировать страницу возможно; возвращаетFalse
в обратном случае.
- Определить, может ли бот редактировать страницу. Метод возвращает
interwiki(self)
categories(self, nofollow_redirects = False)
- Получить категории. Метод возвращает список страниц, являющихся категориями для страницы.
linkedPages(self)
- Получить страницы, на которые ссылается данная страница. Метод возвращает список страниц, ссылки на которые содержатся в тексте данной страницы.
imagelinks(self, followRedirects = False, loose = False)
- Получить изображения, которые включены в страницу. Метод возвращает список изображений.
templates(self)
- Получить имена шаблонов, используемых на странице. Метод возвращает список, состоящий из строк, являющихся именами шаблонов.
getRedirectTarget(self)
- Получить имя страницы, на которую перенаправляет данная. Метод возвращает строку, являющуюся именем страницы, на которую перенаправляет данная.
isDisambig(self)
getReferences(self, follow_redirects = True, withTemplateInclusion = True, onlyTemplateInclusion = False, redirectsOnly = False)
- Получить страницы, которые ссылаются на данную. Метод возвращает список страниц, в которых есть ссылка на данную страницу.
namespace(self)
permalink(self)
- Получить постоянную ссылку на текущую версию страницы.
move(self, newtitle, reason = None, movetalkpage = True, sysop = False, throttle = False)
- Переименовать страницу. Метод переименует страницу, используя имя
newtitle
. Если передан аргументreason
, то его значение будет использовано как причина переименования. Метод возвращаетTrue
в случае, если переименование прошло успешно; возвращаетFalse
в обратном случае.
- Переименовать страницу. Метод переименует страницу, используя имя
put(self, newtext, comment = None, watchArticle = None, minorEdit = True)
- Заменить содержимое страницы. Метод заменяет содержимое страницы значением аргумента
newtext
. - Если передан аргумент
comment
, то его значение будет использовано для описания изменений. - Если передан аргумент
watchArticle
, равныйTrue
, то страница будет добавлена в список наблюдения участника; если же аргумент равенFalse
, то страница будет удалена из списка наблюдения. - Если передан аргумент
minorEdit
, равныйTrue
, то изменение будет помечено как малое; если же аргумент равенFalse
, то оно не будет помечено.
- Заменить содержимое страницы. Метод заменяет содержимое страницы значением аргумента
delete(self, reason = None, prompt = True, throttle = False)
getVersionHistory(self, forceReload = False, reverseOrder = False, getAll = False, revCount = 500)
- возвращает список кортежей, состоящих из четырёх элементов — oldid, даты правки, имени автора правки и комментария автора.
getVersionHistoryTable(self, forceReload = False, reverseOrder = False, getAll = False, revCount = 500)
- возвращает строку, представляющую из себя код на языке разметки MediaWiki таблицы с информацией о изменениях страницы.
fullVersionHistory(self, max = 50, comment = False, since = None)
- возвращает список кортежей, состоящих из трёх элементов — даты и времени правки, имени автора и текста этой версии страницы.
getPreviousVersion(self)
- возвращает текст предыдущей версии страницы.
Источники[править | править код]
- Using the python wikipediabot, страница на Wikimedia
- Pywikipedia bot on non-Wikimedia projects, страница на Wikimedia
- Pywikipediabot general parameters, страница на Wikimedia
- Category.py
- Imagetransfer.py
- Interwiki.py
- Redirect.py
- Replace.py
- Solve disambiguation.py
- Table2wiki.py
- Template.py
- Upload.py
- Weblinkchecker.py