Руководство:Pywikibot/login.py

From mediawiki.org
This page is a translated version of the page Manual:Pywikibot/login.py and the translation is 100% complete.

login.py — это программа на Python, которая регистрирует пользователя, запустившего pywikibot, в системе, используя данные, которые можно найти в user-config.py .

Авторизация как бот

Боты обеспечивают запрограммированный результат изменений и, как следствие, не требуют внимания, которого требуют другие изменения. При наличии специального «пользователя» для запуска бота, изменения, созданные таким образом, будут скрыты на типичном экране «недавних изменений». Статус бота присваивается по отдельным заявкам.


Как сообщить о процедуре подключения

В файле user-config.py есть три компонента:

  1. mylang - код языкового раздела
  2. family - имя вики, включая wikipedia или wiktionary
  3. username — имя пользователя, должно быть зарегистрировано для работы в качестве бота.

Чтобы войти во все проекты/языки, упомянутые в user-config.py, можно использовать параметр -all, и если во всех этих проектах используется один и тот же пароль, его можно комбинировать с -pass, чтобы программа не запрашивала пароль для каждого сайта.

$ python pwb.py login -all -pass

будет вход во все проекты в user-config.py, используя один и тот же пароль для всех. На данный момент использование параметра -pass не поддерживается. (T102477) Вместо этого вы должны использовать файл паролей. Создайте файл, в котором каждая строка текста содержит структуру в формате ("en", "wikipedia", "User", "password"). Затем вставьте в свой файл user-config.py строку password_file = "path_to_password_file". После этого Pywikibot должен использовать данные из этого файла, когда ему нужно войти в систему.

Внимание!!! Прежде чем добавлять логины и пароли, надо сделать user-config.py нечитаемым для других. Для этого используйте в терминале команду chmod 600 user-config.py. Аналогично надо поступить для файла с паролями. You should make user-config.py and password file unreadable for others (chmod 600 user-config.py) before adding secrets to it.

Выход из авторизации (Logout)

$ python pwb.py login -logout

Вход с использованием OAuth

Pywikibot поддерживает вход с использованием аутентификации OAuth вместо пароля. Для OAuth требуется сайт с установленным и правильно настроенным Расширение:OAuth . OAuth более безопасен (пароли не отправляются через Интернет, могут быть аннулированы в любое время, а разрешения пользователя-бота могут быть ограничены) и, как правило, предпочтительнее входа в систему через прописанные пароли. См. Manual:Pywikibot/OAuth о том, как это использовать (не связано с login.py).

Если по какой-то причине вы хотите зарегистрировать своего бота как многопользовательское приложение OAuth (не рекомендуется, но, например, старые версии MediaWiki могут не поддерживать приложения только для владельцев), вы можете использовать для этого login.py с опцией -oauth</код>. Процесс содержит следующие шаги:

  1. Войдите в мета через учетную запись своего бота. Создайте приложение OAuth по адресу Special:OAuthConsumerRegistration/propose, если оно еще не существует, и запишите для данного клиента ключ и секрет. Пока T323849 не разрешен, поддерживается только версия 1.0a.
  2. Запустите python pwb.py login -oauth
  3. Введите секрет клиента OAuth
  4. Введите секрет потребителя OAuth
  5. Аутентифицируйте пользователя через веб-браузер. Возможно, вам придется вручную скопировать URL-адрес из терминала, если веб-браузер не открывается автоматически.
  6. После успешной аутентификации введите в терминал строку ответов на запросы. Например: oauth_verifier=xxx&oauth_token=yyy
  7. Скопируйте и вставьте созданную запись аутентификации в user-config.py .

-logout, -pass, -force, -pass:XXXX and -sysop не совместимы с -oauth.


Доступные глобальные аргументы

Эти параметры переопределяют настройки параметров в user-config.py .

Глобальные параметры
Параметр Описание Конфигурационная переменная
-dir:PATH Прочитать настройки бота из каталога, заданному переменной PATH, а не из каталога по умолчанию.  
-config:file The user config filename. Default is user-config.py. user-config.py
-lang:xx Установить язык Вики с которой вы хотите работать, перезаписывая конфигурацию из user-config.py. Вместо xx должен быть указан код языка (ru). mylang
-family:xyz Установите семейство Вики с которой вы хотите работать, например, Википедия, викисловарь, викисклад, викитрэвел, ... Переопределяет конфигурацию в user-config.py. family
-user:xyz Войдите в систему как пользователь 'xyz' вместо пользователя по умолчанию. usernames
-daemonize:xyz Немедленно возвращает управление терминалу и перенаправляет stdout и stderr в файл xyz (использовать только для ботов, которые не требуют ввода из stdin).  
-help Показать справку.  
-log Включить лог-файл, используя имя файла по умолчанию script_name-bot.log. Журналы будут храниться в подкаталоге logs. log
-log:xyz Включить лог-файл, используя 'xyz' в качестве имени файла. logfilename
-nolog Отключить лог (если он включен по умолчанию).  
-maxlag Устанавливает новый параметр - maxlag (число секунд). Отложить правки ботов в периоды лагов сервера базы данных. Значение по умолчанию устанавливается в config.py maxlag
-putthrottle:n
-pt:n
-put_throttle:n
Указать минимальное время (в секундах) которое бот будет ждать после сохранения страниц. put_throttle
-debug:item
-debug
Включить лог-файл и включить расширенные отладочные данные для компонента "item(элемент)" (для всех компонентов, если используется последующая форма). debug_log
-verbose
-v
Выводить больше отладочной информации в консоль. verbose_output
-cosmeticchanges
-cc
Переключает настройки cosmetic_changes в config.py или user-config.py в противоположные или отменяет их. Все остальные параметры и ограничения остаются без изменений. cosmetic_changes
-simulate Запрещается запись на сервер. Полезно для тестирования и отладки нового кода (если эта опция указана, не делается каких-либо реальных изменений, а только показывается, что изменилось бы). simulate
-<config var>:n Вы можете использовать все заданные числовые настройки переменных как параметр и изменить его из командной строки.