diff --git a/constants.json b/constants.json
index 8d930e5..605060e 100644
--- a/constants.json
+++ b/constants.json
@@ -74,9 +74,13 @@
"JQuery",
".js",
+ "enby",
+
"Slay the Spire",
- "Liberapay"
+ "Liberapay",
+
+ "Golden Wind"
],
"color": "yellow"
},
@@ -96,7 +100,16 @@
},
{
"words": [
- "Teto T",
+ "Jojo's Bizarre Adventure",
+ "Jojo"
+ ],
+ "caseInsensitive": true,
+ "color": "rgb(170, 80, 225)"
+ },
+ {
+ "words": [
+ "Teto Tuesday",
+ "Teto Territory",
"Teto",
"Kasane"
],
@@ -135,8 +148,7 @@
"Shortcat",
"Valve",
"Spooky",
- "The Ironclad",
- "Search Party"
+ "The Ironclad"
],
"color": "orange"
},
@@ -158,7 +170,6 @@
},
{
"words": [
- "Violet's ",
"Violet",
"Purgatory",
"violets-",
@@ -169,9 +180,9 @@
},
{
"words": [
- "abyss"
+ "bisexual"
],
- "color": "rgb(150, 50, 255)"
+ "color": "rgb(214, 2, 112)"
},
{
"words": [
@@ -189,11 +200,7 @@
"words": [
"Codeberg",
- "TrueNAS",
-
- "Miku M",
- "Miku",
- "Hatsune"
+ "TrueNAS"
],
"color": "rgb(0, 255, 255)"
},
@@ -303,6 +310,15 @@
"italicized": true,
"caseInsensitive": true
},
+ {
+ "words": [
+ "Pokerogue"
+ ],
+ "caseInsensitive": true,
+ "color": "#366383",
+ "outline": "#d43131",
+ "bold": true
+ },
{
"words": [
"page embed"
diff --git a/pageUpdater.js b/pageUpdater.js
index 83e8a9d..02da4f6 100644
--- a/pageUpdater.js
+++ b/pageUpdater.js
@@ -290,7 +290,7 @@ function converter(html, dynamic = true) {
},
"SELECTED_VIDEO": () => {
if (api.lanyard && api.lanyard.video) {
- return `
Predetermined weekly video!
I would call it random but I actually select them manually.
+ return `
Random video!
I would call it random daily video but its not at all daily...
`
}
@@ -344,15 +344,6 @@ function converter(html, dynamic = true) {
addedHTML += "No blog posts found...
wait
huh ???
what???????
how ???????????????
WHY ?!
Violet must've fucked up like. REALLY bad.
We're so cooked
"
}
return addedHTML
- },
- "SUBPAGE_JS": () => {
- return `
-
-
-
-
-
- `
}
}
diff --git a/static/ambience/ambient.js b/static/ambience/ambient.js
new file mode 100644
index 0000000..3f8e12c
--- /dev/null
+++ b/static/ambience/ambient.js
@@ -0,0 +1,32 @@
+function loop() {
+ var date = new Date()
+
+ var hour = date.getHours();
+ hour = (hour < 10 ? "0" : "") + hour;
+
+ var min = date.getMinutes();
+ min = (min < 10 ? "0" : "") + min;
+
+ var sec = date.getSeconds();
+ sec = (sec < 10 ? "0" : "") + sec;
+
+ $("#time").text(hour + ":" + min)
+
+ setTimeout(() => {
+ loop()
+ }, 1000)
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ loop()
+})
+
+$(document).on('keypress',function(e) {
+ if(e.which == 102) {
+ if ($.fullscreen.isFullScreen()) {
+ $.fullscreen.exit()
+ } else {
+ $("body").fullscreen()
+ }
+ }
+});
\ No newline at end of file
diff --git a/static/ambience/fullscreen.js b/static/ambience/fullscreen.js
new file mode 100644
index 0000000..de65877
--- /dev/null
+++ b/static/ambience/fullscreen.js
@@ -0,0 +1,28 @@
+/*
+ * jquery.fullscreen v0.6.0
+ * https://github.com/private-face/jquery.fullscreen
+ *
+ * Copyright (c) 2012–2016 Vladimir Zhuravlev
+ * Released under the MIT license
+ * https://github.com/private-face/jquery.fullscreen/blob/master/LICENSE
+ *
+ * Date: 2016-08-25
+ **/
+(function(global, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD
+ define(['jquery'], function (jQuery) {
+ return factory(jQuery);
+ });
+ } else if (typeof exports === 'object') {
+ // CommonJS/Browserify
+ factory(require('jquery'));
+ } else {
+ // Global
+ factory(global.jQuery);
+ }
+}(this, function($) {
+
+function defined(a){return"undefined"!=typeof a}function extend(a,b,c){var d=function(){};d.prototype=b.prototype,a.prototype=new d,a.prototype.constructor=a,b.prototype.constructor=b,a._super=b.prototype,c&&$.extend(a.prototype,c)}function native(a,b){var c;"string"==typeof a&&(b=a,a=document);for(var d=0;d37)&&defined(native("fullscreenElement"))&&(!defined(fsEnabled)||fsEnabled===!0),version=$.fn.jquery.split("."),JQ_LT_17=parseInt(version[0])<2&&parseInt(version[1])<7,FullScreenAbstract=function(){this.__options=null,this._fullScreenElement=null,this.__savedStyles={}};FullScreenAbstract.prototype={native:native,_DEFAULT_OPTIONS:{styles:{boxSizing:"border-box",MozBoxSizing:"border-box",WebkitBoxSizing:"border-box"},toggleClass:null},__documentOverflow:"",__htmlOverflow:"",_preventDocumentScroll:function(){this.__documentOverflow=document.body.style.overflow,this.__htmlOverflow=document.documentElement.style.overflow,$(this._fullScreenElement).is("body, html")||$("body, html").css("overflow","hidden")},_allowDocumentScroll:function(){document.body.style.overflow=this.__documentOverflow,document.documentElement.style.overflow=this.__htmlOverflow},_fullScreenChange:function(){this.__options&&(this.isFullScreen()?(this._preventDocumentScroll(),this._triggerEvents()):(this._allowDocumentScroll(),this._revertStyles(),this._triggerEvents(),this._fullScreenElement=null))},_fullScreenError:function(a){this.__options&&(this._revertStyles(),this._fullScreenElement=null,a&&$(document).trigger("fscreenerror",[a]))},_triggerEvents:function(){$(this._fullScreenElement).trigger(this.isFullScreen()?"fscreenopen":"fscreenclose"),$(document).trigger("fscreenchange",[this.isFullScreen(),this._fullScreenElement])},_saveAndApplyStyles:function(){var a=$(this._fullScreenElement);this.__savedStyles={};for(var b in this.__options.styles)this.__savedStyles[b]=this._fullScreenElement.style[b],this._fullScreenElement.style[b]=this.__options.styles[b];a.is("body")&&(document.documentElement.style.overflow=this.__options.styles.overflow),this.__options.toggleClass&&a.addClass(this.__options.toggleClass)},_revertStyles:function(){var a=$(this._fullScreenElement);for(var b in this.__options.styles)this._fullScreenElement.style[b]=this.__savedStyles[b];a.is("body")&&(document.documentElement.style.overflow=this.__savedStyles.overflow),this.__options.toggleClass&&a.removeClass(this.__options.toggleClass)},open:function(a,b){a!==this._fullScreenElement&&(this.isFullScreen()&&this.exit(),this._fullScreenElement=a,this.__options=$.extend(!0,{},this._DEFAULT_OPTIONS,b),this._saveAndApplyStyles())},exit:null,isFullScreen:null,isNativelySupported:function(){return IS_NATIVELY_SUPPORTED}};var FullScreenNative=function(){FullScreenNative._super.constructor.apply(this,arguments),this.exit=$.proxy(native("exitFullscreen"),document),this._DEFAULT_OPTIONS=$.extend(!0,{},this._DEFAULT_OPTIONS,{styles:{width:"100%",height:"100%"}}),$(document).bind(this._prefixedString("fullscreenchange")+" MSFullscreenChange",$.proxy(this._fullScreenChange,this)).bind(this._prefixedString("fullscreenerror")+" MSFullscreenError",$.proxy(this._fullScreenError,this))};extend(FullScreenNative,FullScreenAbstract,{VENDOR_PREFIXES:["","o","moz","webkit"],_prefixedString:function(a){return $.map(this.VENDOR_PREFIXES,function(b){return b+a}).join(" ")},open:function(a,b){FullScreenNative._super.open.apply(this,arguments);var c=native(a,"requestFullscreen");c.call(a)},exit:$.noop,isFullScreen:function(){return null!==native("fullscreenElement")},element:function(){return native("fullscreenElement")}});var FullScreenFallback=function(){FullScreenFallback._super.constructor.apply(this,arguments),this._DEFAULT_OPTIONS=$.extend({},this._DEFAULT_OPTIONS,{styles:{position:"fixed",zIndex:"2147483647",left:0,top:0,bottom:0,right:0}}),this.__delegateKeydownHandler()};extend(FullScreenFallback,FullScreenAbstract,{__isFullScreen:!1,__delegateKeydownHandler:function(){var a=$(document);a.delegate("*","keydown.fullscreen",$.proxy(this.__keydownHandler,this));var b=JQ_LT_17?a.data("events"):$._data(document).events,c=b.keydown;JQ_LT_17?b.live.unshift(b.live.pop()):c.splice(0,0,c.splice(c.delegateCount-1,1)[0])},__keydownHandler:function(a){return!this.isFullScreen()||27!==a.which||(this.exit(),!1)},_revertStyles:function(){FullScreenFallback._super._revertStyles.apply(this,arguments),this._fullScreenElement.offsetHeight},open:function(a){FullScreenFallback._super.open.apply(this,arguments),this.__isFullScreen=!0,this._fullScreenChange()},exit:function(){this.__isFullScreen&&(this.__isFullScreen=!1,this._fullScreenChange())},isFullScreen:function(){return this.__isFullScreen},element:function(){return this.__isFullScreen?this._fullScreenElement:null}}),$.fullscreen=IS_NATIVELY_SUPPORTED?new FullScreenNative:new FullScreenFallback,$.fn.fullscreen=function(a){var b=this[0];return a=$.extend({toggleClass:null,overflow:"hidden"},a),a.styles={overflow:a.overflow},delete a.overflow,b&&$.fullscreen.open(b,a),this};
+//# sourceMappingURL=jquery.fullscreen.min.js.mapreturn $.fullscreen;
+}));
\ No newline at end of file
diff --git a/static/ambience/index.html b/static/ambience/index.html
new file mode 100644
index 0000000..2b58283
--- /dev/null
+++ b/static/ambience/index.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Violet's Purgatory Ambient Page
+
+
+
+
+
+
+
+
+
+
+ {WEATHER_MODIFIER}
+
+
00:00
+
+ {ACTIVITIES}
+
+
+
+
+
\ No newline at end of file
diff --git a/static/ambience/style.css b/static/ambience/style.css
new file mode 100644
index 0000000..cd4159a
--- /dev/null
+++ b/static/ambience/style.css
@@ -0,0 +1,19 @@
+body {
+ background-image: none;
+ background-color: black;
+ display: flex;
+ align-items: center;
+ margin: auto;
+
+}
+
+@media screen and (min-height: 500px) {
+ html,
+ body {
+ height: 100%;
+ }
+}
+
+#time {
+ font-size: 5rem;
+}
\ No newline at end of file
diff --git a/static/blog/index.html b/static/blog/index.html
index 3adb6cd..1a1ef18 100644
--- a/static/blog/index.html
+++ b/static/blog/index.html
@@ -4,6 +4,9 @@
+
+
+
diff --git a/static/faq/index.html b/static/faq/index.html
index 95d5642..dd72bb5 100644
--- a/static/faq/index.html
+++ b/static/faq/index.html
@@ -5,7 +5,8 @@
- {SUBPAGE_JS}
+
+
diff --git a/static/index.html b/static/index.html
index 2c57d44..b1325e8 100644
--- a/static/index.html
+++ b/static/index.html
@@ -2,17 +2,14 @@
-
+
-
-
-
-
-
+
+
@@ -29,7 +26,7 @@
{WEATHER_MODIFIER}
- Welcome to Violet's PurgatoryCommit {COMMIT_COUNT}
+ Welcome to Violet's PurgatoryCommit {COMMIT_COUNT}
Make sure to check out this project on Forgejo!
@@ -37,7 +34,7 @@
{Violet}
-

+
@@ -72,6 +69,7 @@
{ACTIVITIES}
+
{ANNOUNCEMENT}
Services
diff --git a/static/jquery.js b/static/jquery.js
new file mode 100644
index 0000000..1a86433
--- /dev/null
+++ b/static/jquery.js
@@ -0,0 +1,10716 @@
+/*!
+ * jQuery JavaScript Library v3.7.1
+ * https://jquery.com/
+ *
+ * Copyright OpenJS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2023-08-28T13:37Z
+ */
+( function( global, factory ) {
+
+ "use strict";
+
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+ // For CommonJS and CommonJS-like environments where a proper `window`
+ // is present, execute the factory and get jQuery.
+ // For environments that do not have a `window` with a `document`
+ // (such as Node.js), expose a factory as module.exports.
+ // This accentuates the need for the creation of a real `window`.
+ // e.g. var jQuery = require("jquery")(window);
+ // See ticket trac-14549 for more info.
+ module.exports = global.document ?
+ factory( global, true ) :
+ function( w ) {
+ if ( !w.document ) {
+ throw new Error( "jQuery requires a window with a document" );
+ }
+ return factory( w );
+ };
+ } else {
+ factory( global );
+ }
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var flat = arr.flat ? function( array ) {
+ return arr.flat.call( array );
+} : function( array ) {
+ return arr.concat.apply( [], array );
+};
+
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+ // Support: Chrome <=57, Firefox <=52
+ // In some browsers, typeof returns "function" for HTML