0 Votes

Changes for page CleanBots

Last modified by Ryan C on 2025/04/26 23:47

From version 3.1
edited by Ryan C
on 2025/04/26 23:47
Change comment: Changed the author of the page to fix programming rights
To version 1.1
edited by Ryan C
on 2025/04/26 23:42
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,38 +1,1 @@
1 -{{groovy}}
2 -def xwiki = xcontext.getXWiki()
3 -def context = xwiki.getXWikiContext()
4 -def userDocs = xwiki.getSpaceDocsName("XWiki", context)
5 -
6 -def maxDeletes = 20
7 -def deleteCounter = 0
8 -
9 -userDocs.each { username ->
10 - if (deleteCounter >= maxDeletes) {
11 - return
12 - }
13 -
14 - if (username in ["Admin", "AdminAngriff", "TelegramBot", "testuser", "XWikiGuest", "SuperAdmin",
15 - "XWikiPreferences", "XWikiRights", "XWikiUsers", "XWikiAllGroup", "XWikiAdminGroup",
16 - "XWikiEditorsGroup", "XWikiReadOnlyGroup", "OfficeServer", "PageAdministration",
17 - "Extensions", "History", "Updater", "AvailableMacros", "XWikiSyntaxGuide", "Index",
18 - "Attachments", "DeletedAttachments", "DeletedPages", "OrphanedPages", "Tree",
19 - "ExternalLinks", "Results", "Macros", "SolrSearchAdministration", "DataTypes",
20 - "OfficeImporter", "XWikiAdvancedAdministrationTools", "XWikiProCommons", "ZoneCode"]) {
21 - println "Skipping real/system page: $username"
22 - } else if (username ==~ /^[0-9a-z]{6}$/) {
23 - def fullName = "XWiki.${username}"
24 - def doc = xwiki.getDocument(fullName, context)
25 - if (doc && doc.getObject("XWiki.XWikiUsers")) {
26 - xwiki.deleteDocument(doc, context)
27 - println "Deleted bot page: $username"
28 - deleteCounter++
29 - } else {
30 - println "Skipping page without user object: $username"
31 - }
32 - } else {
33 - println "Skipping normal page: $username"
34 - }
35 -}
36 -println "✅ Deleted ${deleteCounter} bot pages in this batch."
37 -{{/groovy}}
38 -
1 +a