Как удалить медиа-вики-страницы, используя 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.