0 Votes

Changes for page sidebyside

Last modified by Ryan C on 2025/05/09 05:52

From version 1.1
edited by Ryan C
on 2025/05/09 05:42
Change comment: There is no comment for this version
To version 2.1
edited by Ryan C
on 2025/05/09 05:52
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,51 +1,27 @@
1 -{{groovy}}
2 -import java.text.SimpleDateFormat
1 +{{velocity}}
2 +#set ($cutoffMillis = $datetool.toDate("now").time - 1000 * 60 * 60 * 48) ## 48h ago
3 +#set ($adminUser = "XWiki.AdminAngriff")
4 +#set ($events = $services.activitystream.getEvents(0, 1000, [], [], [], "", false))
5 +#set ($changes = [])
6 +#set ($dateFormat = $services.localization.render('yyyy-MM-dd HH:mm:ss'))
3 3  
4 -def guestId = "XWiki.XWikiGuest"
5 -def cutoff = new Date(System.currentTimeMillis() - (1000L * 60 * 60 * 48)) // last 48 hours
6 -def dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
7 -def context = xcontext.getContext()
8 -def results = []
8 +#foreach ($event in $events)
9 + #set ($author = $event.user)
10 + #set ($type = $event.type)
11 + #set ($when = $event.date)
12 + #set ($page = $event.page)
13 + #if ($when.time > $cutoffMillis && $author != $adminUser)
14 + #set ($void = $changes.add("* **$type** by **$author** on page **$page** at $when"))
15 + #end
16 +#end
9 9  
10 -xwiki.searchDocuments("where 1=1").each { docName ->
11 - def doc = xwiki.getDocument(docName)
12 - def lastMod = doc.getDate()
18 +#if ($changes.size() > 0)
19 +== 🔍 Changes by Other Users in Last 48h ==
20 +#foreach ($entry in $changes)
21 +$entry
22 +#end
23 +#else
24 +✅ No changes made by users other than $adminUser in the last 48 hours.
25 +#end
26 +{{/velocity}}
13 13  
14 - if (lastMod && lastMod.after(cutoff) && doc.author == guestId) {
15 - def archive = doc.getDocumentArchive()
16 - def versions = archive.getRevisionList().sort()
17 -
18 - if (versions.size() >= 2) {
19 - def prevVersion = archive.loadXWikiDocument(versions[-2], context)
20 - def currVersion = archive.loadXWikiDocument(versions[-1], context)
21 -
22 - def oldContent = prevVersion.getContent()
23 - def newContent = currVersion.getContent()
24 -
25 - if (oldContent != newContent) {
26 - results << """
27 -=== [[${currVersion.displayTitle}>>path:/bin/view/${currVersion.space}/${currVersion.name}]] — edited at ${dateFormat.format(lastMod)} ===
28 -
29 -**📝 Before (v${versions[-2]}):**
30 -----
31 -${oldContent.take(3000)}
32 -----
33 -
34 -**🆕 After (v${versions[-1]}):**
35 -----
36 -${newContent.take(3000)}
37 -----
38 -"""
39 - }
40 - }
41 - }
42 -}
43 -
44 -if (results) {
45 - println "== 🚨 Content Changes by XWiki.XWikiGuest (last 48h) ==\\n"
46 - results.each { println it }
47 -} else {
48 - println "✅ No content changes by guest in the last 48 hours."
49 -}
50 -{{/groovy}}
51 -