Как удалить медиа-вики-страницы, используя Nuke и Pywikibot

Я какое-то время ломал голову над этой задачей. Я безуспешно пытался использовать расширение Mediawiki Nuke и pywikibot. Я упускаю что-то простое, здесь я это знаю. Кажется, я не могу правильно идентифицировать страницы, потому что ни один из шаблонов, которые я использую в "Массовом удалении", не возвращает никаких совпадений, и pywikibot говорит: "Пропуск": [[mediawiki: Некоторые страницы, которые я хочу удалить - Страница 1]] не существует.

Я вошел как я, бюрократ и администратор. MW ver 1.26. Я могу удалить одну страницу, находясь на странице и используя опцию Удалить.

Nuke: я оставляю имя пользователя, поле ip пустым, я ввожу заголовок или части заголовка страниц в шаблоне для имени страницы на странице массового удаления, но безрезультатно. Что я делаю неправильно?

Пример: некоторые страницы, которые я хочу удалить - страница 1, некоторые страницы%, % некоторые страницы%

pywikibot: Может, это мой user-config.py?

family = 'mediawiki'
mylang = 'mediawiki'
usernames['mediawiki']['mediawiki'] = u'myname'

Я создал файл со страницами, которые я хочу удалить.

Файл: delete_pages.txt

# [[Some Page I want To Delete -- Page 1]]
# [[Some Page I want To Delete -- Page 2]]
# [[Some Page I want To Delete -- Page 3]]

Образец вывода

C:\Users\me\pywikibot>\python34\python delete.py -file:delete_pages.txt
Enter a reason for the deletion:

>>> Some Page I want To Delete -- Page 1 <<<
Skipping: [[mediawiki:Some Page I want To Delete -- Page 1]] does not exist.

>>> Some Page I want To Delete -- Page 2 <<<
Skipping: [[mediawiki:Some Page I want To Delete -- Page 2]] does not exist.
etc

Редактировать:

Я получил Nuke: Mass Delete, чтобы найти несколько страниц для удаления. Было бы только найти страницы, которые были недавно. Я не знаю, что означает недавний, некоторые страницы он нашел, а другие нет.

2 ответа

Я тоже долго боролся с этой проблемой, но потом наткнулся на библиотеку под названием «mwclient» на питоне. Это также довольно легко реализовать.

      import mwclient
site = mwclient.Site(host='ml-concepts.com/wiki/', path='', retry_timeout=180)
site.login('USERNAME','PASSWORD')
pages = [page for page in site.pages]

for page in pages:
    if page.base_name == 'the title to be matched':
        page.delete(reason='spam')

mediawiki это https://www.mediawiki.org/. Вы действительно хотите удалить страницы там? Вы, вероятно, ищете generate_family_file.py.

Другие вопросы по тегам