... |
... |
@@ -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 |
|
- |