... |
... |
@@ -3,88 +3,137 @@ |
3 |
3 |
[[image:white.webp||data-xwiki-image-style-alignment="end" height="263" style="border:1px solid #cccccc; margin-bottom:15px; margin-left:20px" width="460"]] |
4 |
4 |
|
5 |
5 |
|
6 |
|
-This is a **Pro-White Wikipedia** project aiming to unite the scattered White lone wolves into an anonymous force of reckoning in today’s culture and information war. |
7 |
7 |
|
8 |
|
-== What sets this apart from sites like Metapedia? == |
9 |
9 |
|
10 |
|
-I'm aiming to do something different than what other Wiki sites do. [[Metapedia >>https://Metapedia.org]] is great as an alternative to Wikipedia for exploring controversial topics, and I highly encourage people to check them out and contribute to them as well. This site is more focused on documenting incidents and evidence. The sheer volume of antiwhite incidents, media coverage, articles, studies, and videos that come out every day showcasing the reality that the mainstream media hides from public view is astonishing. Most people have no idea how much it permeates all corners of our society. I want to provide a place for people to upload all these incidents easily and anonymously, as well as show some in depth explanations of certain things like the Great Replacement, with many pieces of evidence all presented together as a whole. |
11 |
|
- |
12 |
|
-== The Only Rules == |
13 |
|
- |
14 |
|
-* **No porn** — Get out and procreate instead of watching porn. |
15 |
|
-* **Nothing illegal** — This platform is censorship-resistant *as long as* content stays legal. |
16 |
|
- |
17 |
|
-[[Here>>path:/bin/view/Start/]] is a good place to begin if you want to know more about the project. |
18 |
|
- |
19 |
19 |
{{velocity}} |
20 |
|
-#set($hql = "select doc.fullName, lower(att.filename), att.filename from XWikiDocument as doc, XWikiAttachment as att where doc.id = att.docId and (lower(att.filename) like :e1 or lower(att.filename) like :e2 or lower(att.filename) like :e3 or lower(att.filename) like :e4 or lower(att.filename) like :e5 or lower(att.filename) like :e6 or lower(att.filename) like :e7)") |
|
9 |
+## Daily Random Video Display Script for XWiki |
|
10 |
+## This script finds all video attachments and displays one randomly each day |
21 |
21 |
|
22 |
|
-#set($q = $services.query.hql($hql)) |
23 |
|
-#set($q = $q.bindValue('e1','%.mp4')) |
24 |
|
-#set($q = $q.bindValue('e2','%.avi')) |
25 |
|
-#set($q = $q.bindValue('e3','%.mov')) |
26 |
|
-#set($q = $q.bindValue('e4','%.wmv')) |
27 |
|
-#set($q = $q.bindValue('e5','%.flv')) |
28 |
|
-#set($q = $q.bindValue('e6','%.webm')) |
29 |
|
-#set($q = $q.bindValue('e7','%.mkv')) |
30 |
|
-#set($rows = $q.execute()) |
|
12 |
+#set($videos = []) |
31 |
31 |
|
32 |
|
-#if($rows && $rows.size() > 0) |
33 |
|
- #set($today = $datetool.get('yyyy-MM-dd')) |
34 |
|
- #set($index = $mathtool.abs($today.hashCode()) % $rows.size()) |
35 |
|
- #set($row = $rows.get($index)) |
|
14 |
+## Query to find all documents with video attachments |
|
15 |
+#set($query = "select doc.fullName from XWikiDocument doc, XWikiAttachment attach where doc.id = attach.docId and (attach.filename like '%.mp4' or attach.filename like '%.avi' or attach.filename like '%.mov' or attach.filename like '%.wmv' or attach.filename like '%.flv' or attach.filename like '%.webm' or attach.filename like '%.mkv')") |
36 |
36 |
|
37 |
|
- #set($docName = $row.get(0)) |
38 |
|
- #set($lname = $row.get(1)) |
39 |
|
- #set($fname = $row.get(2)) |
|
17 |
+#set($results = $services.query.xwql($query).execute()) |
40 |
40 |
|
41 |
|
- #set($doc = $xwiki.getDocument($docName)) |
42 |
|
- #set($title = $doc.getDisplayTitle()) |
43 |
|
- #set($pageURL = $xwiki.getURL($docName)) |
44 |
|
- #set($attURL = $doc.getAttachmentURL($fname)) |
45 |
|
- #set($dlURL = $xwiki.getURL($docName, 'download', "filename=$escapetool.url($fname)")) |
46 |
|
- |
47 |
|
- #set($videoType = 'video/mp4') |
48 |
|
- #if($lname.endsWith('.webm')) |
49 |
|
- #set($videoType = 'video/webm') |
50 |
|
- #elseif($lname.endsWith('.avi')) |
51 |
|
- #set($videoType = 'video/x-msvideo') |
52 |
|
- #elseif($lname.endsWith('.mov')) |
53 |
|
- #set($videoType = 'video/quicktime') |
|
19 |
+## Collect all video attachments |
|
20 |
+#foreach($docName in $results) |
|
21 |
+ #set($doc = $xwiki.getDocument($docName)) |
|
22 |
+ #foreach($attachment in $doc.getAttachmentList()) |
|
23 |
+ #set($filename = $attachment.getFilename().toLowerCase()) |
|
24 |
+ #if($filename.endsWith('.mp4') || $filename.endsWith('.avi') || $filename.endsWith('.mov') || $filename.endsWith('.wmv') || $filename.endsWith('.flv') || $filename.endsWith('.webm') || $filename.endsWith('.mkv')) |
|
25 |
+ #set($videoInfo = { |
|
26 |
+ 'docName': $docName, |
|
27 |
+ 'filename': $attachment.getFilename(), |
|
28 |
+ 'url': $doc.getAttachmentURL($attachment.getFilename()), |
|
29 |
+ 'title': $doc.getDisplayTitle(), |
|
30 |
+ 'size': $attachment.getLongSize() |
|
31 |
+ }) |
|
32 |
+ #set($discard = $videos.add($videoInfo)) |
|
33 |
+ #end |
54 |
54 |
#end |
|
35 |
+#end |
55 |
55 |
|
56 |
|
- ## Render actual HTML |
57 |
|
- {{html wiki="false" clean="false"}} |
58 |
|
- <div class="daily-video-container" style="margin:20px 0;padding:20px;border:1px solid #ddd;border-radius:8px;background-color:#f9f9f9;"> |
59 |
|
- <h3 style="margin-top:0;color:#333;">Today's Featured Video</h3> |
60 |
|
- <div class="video-info" style="margin-bottom:15px;"> |
61 |
|
- <strong>From:</strong> <a href="${pageURL}">${title}</a><br/> |
62 |
|
- <strong>File:</strong> ${escapetool.xml($fname)}<br/> |
63 |
|
- <small style="color:#666;">Video changes daily</small> |
|
37 |
+## Check if we found any videos |
|
38 |
+#if($videos.size() > 0) |
|
39 |
+ ## Create a seed based on current date to ensure same video shows all day |
|
40 |
+ #set($today = $datetool.get('yyyy-MM-dd')) |
|
41 |
+ #set($seed = $today.hashCode()) |
|
42 |
+ |
|
43 |
+ ## Use the seed to create a consistent random index for today |
|
44 |
+ #set($random = $mathtool.random) |
|
45 |
+ #set($index = $mathtool.abs($seed) % $videos.size()) |
|
46 |
+ |
|
47 |
+ ## Get today's video |
|
48 |
+ #set($todaysVideo = $videos.get($index)) |
|
49 |
+ |
|
50 |
+ ## Display the video |
|
51 |
+ <div class="daily-video-container" style="margin: 20px 0; padding: 20px; border: 1px solid #ddd; border-radius: 8px; background-color: #f9f9f9;"> |
|
52 |
+ <h3 style="margin-top: 0; color: #333;">📺 Today's Featured Video</h3> |
|
53 |
+ <div class="video-info" style="margin-bottom: 15px;"> |
|
54 |
+ <strong>From:</strong> <a href="$xwiki.getURL($todaysVideo.docName)">$todaysVideo.title</a><br/> |
|
55 |
+ <strong>File:</strong> $todaysVideo.filename<br/> |
|
56 |
+ <small style="color: #666;">Video changes daily • Size: $mathtool.roundTo(2, $todaysVideo.size / 1048576) MB</small> |
64 |
64 |
</div> |
65 |
|
- <video width="100%" height="auto" controls preload="metadata" style="max-width:600px;border-radius:4px;"> |
66 |
|
- <source src="${attURL}" type="${videoType}"/> |
67 |
|
- <p>Your browser doesn't support HTML5 video. <a href="${dlURL}">Download the video</a> instead.</p> |
|
58 |
+ |
|
59 |
+ ## Determine video type for HTML5 video element |
|
60 |
+ #set($videoType = "video/mp4") |
|
61 |
+ #set($filename = $todaysVideo.filename.toLowerCase()) |
|
62 |
+ #if($filename.endsWith('.webm')) |
|
63 |
+ #set($videoType = "video/webm") |
|
64 |
+ #elseif($filename.endsWith('.avi')) |
|
65 |
+ #set($videoType = "video/x-msvideo") |
|
66 |
+ #elseif($filename.endsWith('.mov')) |
|
67 |
+ #set($videoType = "video/quicktime") |
|
68 |
+ #elseif($filename.endsWith('.wmv')) |
|
69 |
+ #set($videoType = "video/x-ms-wmv") |
|
70 |
+ #elseif($filename.endsWith('.flv')) |
|
71 |
+ #set($videoType = "video/x-flv") |
|
72 |
+ #elseif($filename.endsWith('.mkv')) |
|
73 |
+ #set($videoType = "video/x-matroska") |
|
74 |
+ #end |
|
75 |
+ |
|
76 |
+ ## HTML5 Video Player |
|
77 |
+ <video width="100%" height="auto" controls preload="metadata" style="max-width: 600px; border-radius: 4px;"> |
|
78 |
+ <source src="$todaysVideo.url" type="$videoType"> |
|
79 |
+ <p>Your browser doesn't support HTML5 video. <a href="$todaysVideo.url">Download the video</a> instead.</p> |
68 |
68 |
</video> |
69 |
|
- <div style="margin-top:10px;text-align:center;"> |
70 |
|
- <small style="color:#888;">Found ${rows.size()} total videos • <a href="${dlURL}" download="${escapetool.xml($fname)}">Download</a></small> |
|
81 |
+ |
|
82 |
+ <div style="margin-top: 10px; text-align: center;"> |
|
83 |
+ <small style="color: #888;"> |
|
84 |
+ Found $videos.size() total videos in your wiki • |
|
85 |
+ <a href="$todaysVideo.url" download="$todaysVideo.filename">Download Video</a> |
|
86 |
+ </small> |
71 |
71 |
</div> |
72 |
72 |
</div> |
73 |
|
- {{/html}} |
74 |
74 |
#else |
75 |
|
- {{html wiki="false" clean="false"}} |
76 |
|
- <div style="margin:20px 0;padding:20px;border:1px solid #ffa500;border-radius:8px;background-color:#fff3cd;color:#856404;"> |
77 |
|
- <h3 style="margin-top:0;">No Videos Found</h3> |
78 |
|
- <p>No video files were found in your XWiki site. Upload videos to any page to see them featured here.</p> |
|
90 |
+ <div class="no-videos-message" style="margin: 20px 0; padding: 20px; border: 1px solid #ffa500; border-radius: 8px; background-color: #fff3cd; color: #856404;"> |
|
91 |
+ <h3 style="margin-top: 0;">📺 No Videos Found</h3> |
|
92 |
+ <p>No video files were found in your XWiki site. Upload videos (MP4, AVI, MOV, WMV, FLV, WebM, MKV) to any page to see them featured here!</p> |
|
93 |
+ <small>Supported formats: MP4, AVI, MOV, WMV, FLV, WebM, MKV</small> |
79 |
79 |
</div> |
80 |
|
- {{/html}} |
81 |
81 |
#end |
|
96 |
+ |
|
97 |
+## Optional: Add refresh info for admins |
|
98 |
+#if($hasAdmin) |
|
99 |
+<div style="margin-top: 10px; padding: 10px; background-color: #e7f3ff; border-left: 4px solid #2196F3; font-size: 12px;"> |
|
100 |
+ <strong>Admin Info:</strong> Video selection updates at midnight. Current seed: $today ($seed). |
|
101 |
+ To force refresh for testing, change the date format in the script. |
|
102 |
+</div> |
|
103 |
+#end |
82 |
82 |
{{/velocity}} |
83 |
83 |
|
84 |
84 |
|
85 |
85 |
|
|
108 |
+ |
|
109 |
+This is a **Pro-White Wikipedia** project aiming to unite the scattered White lone wolves into an anonymous force of reckoning in today’s culture and information war. |
|
110 |
+ |
|
111 |
+== What sets this apart from sites like Metapedia? == |
|
112 |
+ |
|
113 |
+I'm aiming to do something different than what other Wiki sites do. [[Metapedia >>https://Metapedia.org]] is great as an alternative to Wikipedia for exploring controversial topics, and I highly encourage people to check them out and contribute to them as well. This site is more focused on documenting incidents and evidence. The sheer volume of antiwhite incidents, media coverage, articles, studies, and videos that come out every day showcasing the reality that the mainstream media hides from public view is astonishing. Most people have no idea how much it permeates all corners of our society. I want to provide a place for people to upload all these incidents easily and anonymously, as well as show some in depth explanations of certain things like the Great Replacement, with many pieces of evidence all presented together as a whole. |
|
114 |
+ |
|
115 |
+== The Only Rules == |
|
116 |
+ |
|
117 |
+* **No porn** — Get out and procreate instead of watching porn. |
|
118 |
+* **Nothing illegal** — This platform is censorship-resistant *as long as* content stays legal. |
|
119 |
+ |
|
120 |
+[[Here>>path:/bin/view/Start/]] is a good place to begin if you want to know more about the project. |
|
121 |
+ |
|
122 |
+ |
86 |
86 |
== Announcements == |
87 |
87 |
|
88 |
88 |
{{include reference="Announcements.WebHome"/}} |
89 |
89 |
|
90 |
|
-== == |
|
127 |
+== Disclaimer == |
|
128 |
+ |
|
129 |
+{{box cssClass="info"}} |
|
130 |
+**The views expressed on this site are those of individual authors and do not necessarily reflect the positions of affiliated organizations.** |
|
131 |
+ |
|
132 |
+This site critically examines racial dynamics — including the often-overlooked issue of **anti-White racism**. |
|
133 |
+It discusses stereotypes, myths, and harmful narratives that contribute to marginalization. |
|
134 |
+ |
|
135 |
+**Note:** Examples of offensive language and racial slurs may appear to illustrate dehumanizing narratives. |
|
136 |
+These are included **for educational and critical purposes**, not to perpetuate or endorse them. |
|
137 |
+ |
|
138 |
+**Contact:** [admin@thewhitearchive.org](mailto:admin@thewhitearchive.org) |
|
139 |
+{{/box}} |