Skip to content

Commit 0634606

Browse files
committed
Add greatly priced deals to OculusDB
1 parent 58d9db6 commit 0634606

File tree

9 files changed

+301
-49
lines changed

9 files changed

+301
-49
lines changed

OculusDB/FrontendServer.cs

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void StartServer(HttpServer httpServer)
9696
server = httpServer;
9797
server.StartServer(config.port);
9898
server.logRequests = true;
99-
server.maxRamUsage = 700 * 1024 * 1024; // 700 MB
99+
server.maxRamUsage = 700 * 1024 * 1024; // 700 MiB
100100
Logger.Log("Working directory is " + OculusDBEnvironment.workingDir);
101101
Logger.Log("data directory is " + OculusDBEnvironment.dataDir);
102102
FileManager.CreateDirectoryIfNotExisting(OculusDBEnvironment.dataDir + "images");
@@ -335,8 +335,8 @@ public void StartServer(HttpServer httpServer)
335335
request.SendStringReplace(File.ReadAllText(frontend + "admin.html"), "text/html", 200, replace);
336336
return true;
337337
}), true, true, true);
338-
server.AddRouteFile("/login", frontend + "login.html", replace, true, true, true, 0, true);
339-
server.AddRouteFile("/style.css", frontend + "style.css", replace, true, true, true, 0, true);
338+
server.AddRouteFile("/login", frontend + "login.html", replace, true, true, !OculusDBEnvironment.debugging, 0, true);
339+
server.AddRouteFile("/style.css", frontend + "style.css", replace, true, true, !OculusDBEnvironment.debugging, 0, true);
340340
server.AddRoute("POST", "/api/updateserver/", new Func<ServerRequest, bool>(request =>
341341
{
342342
if (!IsUserAdmin(request)) return true;
@@ -839,18 +839,19 @@ public void StartServer(HttpServer httpServer)
839839
});
840840
*/
841841

842-
server.AddRouteFile("/", frontend + "home.html", replace, true, true, true, accessCheck);
843-
server.AddRouteFile("/alias", frontend + "alias.html", replace, true, true, true, accessCheck);
844-
server.AddRouteFile("/recentactivity", frontend + "recentactivity.html", replace, true, true, true, accessCheck);
845-
server.AddRouteFile("/server", frontend + "server.html", replace, true, true, true, accessCheck);
842+
server.AddRouteFile("/", frontend + "home.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
843+
server.AddRouteFile("/alias", frontend + "alias.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
844+
server.AddRouteFile("/recentactivity", frontend + "recentactivity.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
845+
server.AddRouteFile("/server", frontend + "server.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
846846

847-
server.AddRouteFile("/downloadstats", frontend + "downloadstats.html", replace, true, true, true, accessCheck);
848-
server.AddRouteFile("/search", frontend + "search.html", replace, true, true, true, accessCheck);
849-
server.AddRouteFile("/logo", frontend + "logo.png", true, true, true, accessCheck);
850-
server.AddRouteFile("/notfound.jpg", frontend + "notfound.jpg", true, true, true, accessCheck);
851-
server.AddRouteFile("/favicon.ico", frontend + "favicon.png", true, true, true, accessCheck);
852-
server.AddRouteFile("/privacy", frontend + "privacy.html", replace, true, true, true, accessCheck);
853-
server.AddRouteFile("/saved", frontend + "saved.html", replace, true, true, true, accessCheck);
847+
server.AddRouteFile("/downloadstats", frontend + "downloadstats.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
848+
server.AddRouteFile("/search", frontend + "search.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
849+
server.AddRouteFile("/deal", frontend + "deal.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
850+
server.AddRouteFile("/logo", frontend + "logo.png", true, true, !OculusDBEnvironment.debugging, accessCheck);
851+
server.AddRouteFile("/notfound.jpg", frontend + "notfound.jpg", true, true, !OculusDBEnvironment.debugging, accessCheck);
852+
server.AddRouteFile("/favicon.ico", frontend + "favicon.png", true, true, !OculusDBEnvironment.debugging, accessCheck);
853+
server.AddRouteFile("/privacy", frontend + "privacy.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
854+
server.AddRouteFile("/saved", frontend + "saved.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
854855

855856
server.AddRoute("GET", "/console", new Func<ServerRequest, bool>(request =>
856857
{
@@ -864,30 +865,30 @@ public void StartServer(HttpServer httpServer)
864865
if (!DoesUserHaveAccess(request)) return true;
865866
request.SendStringReplace(File.ReadAllText(frontend + "id.html").Replace("{0}", request.pathDiff), "text/html", 200, replace);
866867
return true;
867-
}), true, true, true, true);
868+
}), true, true, true, !OculusDBEnvironment.debugging);
868869
server.AddRoute("GET", "/activity/", new Func<ServerRequest, bool>(request =>
869870
{
870871
if (!DoesUserHaveAccess(request)) return true;
871872
request.SendStringReplace(File.ReadAllText(frontend + "activity.html").Replace("{0}", request.pathDiff), "text/html", 200, replace);
872873
return true;
873874
}), true, true, true, true);
874-
server.AddRouteFile("/explore", frontend + "explore.html", replace, true, true, true, accessCheck);
875-
server.AddRouteFile("/script.js", frontend + "script.js", replace, true, true, true, accessCheck);
876-
server.AddRouteFile("/api/docs", frontend + "api.html", replace, true, true, true, accessCheck);
877-
server.AddRouteFile("/jsonview.js", frontend + "jsonview.js", replace, true, true, true, accessCheck);
878-
server.AddRouteFile("/guide", frontend + "guide.html", replace, true, true, true, accessCheck);
879-
server.AddRouteFile("/supportus", frontend + "supportus.html", replace, true, true, true, accessCheck);
880-
server.AddRouteFile("/qavslogs", frontend + "qavsloganalyser.html", replace, true, true, true, accessCheck);
875+
server.AddRouteFile("/explore", frontend + "explore.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
876+
server.AddRouteFile("/script.js", frontend + "script.js", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
877+
server.AddRouteFile("/api/docs", frontend + "api.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
878+
server.AddRouteFile("/jsonview.js", frontend + "jsonview.js", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
879+
server.AddRouteFile("/guide", frontend + "guide.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
880+
server.AddRouteFile("/supportus", frontend + "supportus.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
881+
server.AddRouteFile("/qavslogs", frontend + "qavsloganalyser.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
881882

882883
// for all the annoying people out there
883884
server.AddRouteRedirect("GET", "/idiot", "/guide/quest");
884885

885-
server.AddRouteFile("/guide/quest", frontend + "guidequest.html", replace, true, true, true, accessCheck);
886-
server.AddRouteFile("/guide/quest/pc", frontend + "guidequest_PC.html", replace, true, true, true, accessCheck);
887-
server.AddRouteFile("/guide/quest/qavs", frontend + "guidequest_QAVS.html", replace, true, true, true, accessCheck);
888-
server.AddRouteFile("/guide/quest/sqq", frontend + "guidequest_SQQ.html", replace, true, true, true, accessCheck);
889-
server.AddRouteFile("/assets/sq.png", frontend + "sq.png", true, true, true, accessCheck);
890-
server.AddRouteFile("/assets/discord.svg", frontend + "discord.svg", true, true, true, accessCheck);
886+
server.AddRouteFile("/guide/quest", frontend + "guidequest.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
887+
server.AddRouteFile("/guide/quest/pc", frontend + "guidequest_PC.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
888+
server.AddRouteFile("/guide/quest/qavs", frontend + "guidequest_QAVS.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
889+
server.AddRouteFile("/guide/quest/sqq", frontend + "guidequest_SQQ.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
890+
server.AddRouteFile("/assets/sq.png", frontend + "sq.png", true, true, !OculusDBEnvironment.debugging, accessCheck);
891+
server.AddRouteFile("/assets/discord.svg", frontend + "discord.svg", true, true, !OculusDBEnvironment.debugging, accessCheck);
891892
server.AddRoute("GET", "/fonts/OpenSans", request =>
892893
{
893894
ProxyChangeFontUrl("https://fonts.googleapis.com/css?family=Open+Sans:400,400italic,700,700italic", request);
@@ -904,7 +905,7 @@ public void StartServer(HttpServer httpServer)
904905
return true;
905906
}, false, true, true, true, 3600, true, 0);
906907

907-
server.AddRouteFile("/guide/rift", frontend + "guiderift.html", replace, true, true, true, accessCheck);
908+
server.AddRouteFile("/guide/rift", frontend + "guiderift.html", replace, true, true, !OculusDBEnvironment.debugging, accessCheck);
908909
server.AddRoute("GET", "/api/api.json", new Func<ServerRequest, bool>(request =>
909910
{
910911
if (!DoesUserHaveAccess(request)) return true;

OculusDB/frontend/activity.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ <h2>OculusDB Info</h2>
4141

4242
GetActivityById(id).then(res => {
4343
activity = res
44+
if(isAprilFools() && !hasDeal("activity")) {
45+
dealPopUpBuyPleaseUwU("activity", "see activity")
46+
return
47+
}
4448
document.getElementById("type").innerHTML = activity.__OculusDBType
4549
document.getElementById("id").innerHTML = activity.__id
4650
document.getElementById("lastUpdated").innerHTML = new Date(activity.__lastUpdated).toLocaleString()

OculusDB/frontend/deal.html

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
{meta}
5+
<link rel="stylesheet" href="/style.css" >
6+
<title>Deal - OculusDB</title>
7+
<meta name="title" content="Aliases - OculusDB">
8+
<meta name="description" content="Page to create aliases for game version names">
9+
</head>
10+
<body>
11+
<noscript>This page relies on javascript. Please enable javascript on your browser</noscript>
12+
<div class="content">
13+
<h2>OculusDB deals</h2>
14+
<p>Capitalism has made it's way to OculusDB! As we're just starting out we got an exclusive deal for all users.</p>
15+
<div class="popup">
16+
<div class="h3Popup">Special Offer</div>
17+
<div class="h2Popup">80<sup>%</sup><span> Off</span></div>
18+
</div>
19+
<p>We got several tiers for all your needs</p>
20+
<div style="display: flex; flex-wrap: wrap" id="deals">
21+
</div>
22+
</div>
23+
<script src="/script.js"></script>
24+
<script>
25+
const deals = {
26+
details: {
27+
title: "Details",
28+
strikethrough: "10 €",
29+
price: "2 €",
30+
description: "See all the details of applications"
31+
},
32+
search: {
33+
title: "Search",
34+
strikethrough: "42 €",
35+
price: "8.40 €",
36+
description: "Be able to search OculusDB"
37+
},
38+
download: {
39+
title: "Download",
40+
strikethrough: "142 €",
41+
price: "28.40 €",
42+
description: "Do the holy grail of downgrading, download an old version"
43+
},
44+
download_stats: {
45+
title: "Download stats",
46+
strikethrough: "1 €",
47+
price: "0.20 €",
48+
description: "See download statistics"
49+
},
50+
activity: {
51+
title: "Activity",
52+
strikethrough: "13.69 €",
53+
price: "2.938 €",
54+
description: "See activity on OculusDB (aka change tracking)"
55+
},
56+
57+
}
58+
html = ``
59+
for(const [key, value] of Object.entries(deals)) {
60+
html += `
61+
<div class="popup">
62+
<h1 class="black">${value.title}</h1>
63+
<p class="black">${value.description}</p>
64+
<h2 class="strikethroughPrice">${value.strikethrough}</h2>
65+
<h2 class="dealPrice">${value.price}</h2>
66+
${hasDeal(key) ? `<h2 class="dealPrice">You already have this deal</h2>` : `<button class="buy-button" onclick="deal('${key}')">Get The Deal</button>`}
67+
68+
</div>`
69+
}
70+
document.getElementById("deals").innerHTML = html
71+
72+
function deal(type) {
73+
PopUp(`<div class="overlay" id="popup">
74+
<div class="popup">
75+
<button class="close-button" onclick="closePopup()">X</button>
76+
<div class="h3Popup">Proceed to buy ${type}</div>
77+
<p class="black">Due to an issue in our payment system you will be granted the deal without any charges. We are sorry for the inconvenience and will provide a way to pay later</p>
78+
<button class="buy-button" onclick="buy('${type}')">Get The Deal</button>
79+
</div>
80+
</div>`, "overlay")
81+
}
82+
83+
function buy(type) {
84+
ClosePopUp()
85+
localStorage.deal += `,${type}`
86+
PopUp(`<div class="overlay" id="popup">
87+
<div class="popup">
88+
<button class="close-button" onclick="closePopup()">X</button>
89+
<div class="h3Popup">You've got the deal. Thanks for your collaboration!</div>
90+
<button class="buy-button" onclick="window.location.href = '/'">Close</button>
91+
</div>
92+
</div>`, "overlay")
93+
}
94+
</script>
95+
</body>
96+
</html>

OculusDB/frontend/downloadstats.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ <h2>Download stats</h2>
4040
window.location.href = "?" + params.toString()
4141
}
4242

43-
44-
fetch("/api/v1/applicationanalytics?skip=" + skip).then(res => res.json().then(res => {
43+
if(isAprilFools() && !hasDeal("download_stats")) dealPopUpBuyPleaseUwU("download stats", "see download stats")
44+
else fetch("/api/v1/applicationanalytics?skip=" + skip).then(res => res.json().then(res => {
4545
activity = res
4646
var html = ""
4747
activity.forEach(a => {

OculusDB/frontend/id.html

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,13 @@ <h2>OculusDB Info</h2>
8080
}
8181

8282
GetObjectById(id).then(res => {
83+
if(isAprilFools() && !hasDeal("details")) {
84+
stopLoading("You haven't bought the details deal. Please <a href='/deal'>buy it</a> to proceed")
85+
SearchResults.innerHTML = `
86+
<div class="application"><p>Oh no! You did not buy the search deal. Without this you cannot search for anything on OculusDB. Please <a href="/deal">buy it</a> to proceed</p></div>
87+
`
88+
return
89+
}
8390
object = res
8491
document.getElementById("type").innerHTML = object.__OculusDBType
8592
document.getElementById("lastUpdated").innerHTML = new Date(object.__lastUpdated).toLocaleString()
@@ -102,14 +109,14 @@ <h2>OculusDB Info</h2>
102109
}
103110
})
104111

105-
function stopLoading() {
106-
versions.innerHTML = "App not found"
107-
applications.innerHTML = "App not found"
108-
dlcs.innerHTML = "App not found"
109-
dlcpacks.innerHTML = "App not found"
110-
document.getElementById("history").innerHTML = "Can't load history. App not found"
111-
document.getElementById("specific").innerHTML = "App not found"
112-
document.getElementById("this").innerHTML = "App not found"
112+
function stopLoading(reason = "App not found") {
113+
versions.innerHTML = reason
114+
applications.innerHTML = reason
115+
dlcs.innerHTML = reason
116+
dlcpacks.innerHTML = reason
117+
document.getElementById("history").innerHTML = `Can't load history. ${reason}`
118+
document.getElementById("specific").innerHTML = reason
119+
document.getElementById("this").innerHTML = reason
113120
}
114121

115122
function AddDownloadStats(id) {

OculusDB/frontend/recentactivity.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,10 @@ <h2 id="filter"></h2>
105105
if(constraints == "") constraints = "none"
106106

107107

108-
fetch("/api/v1/activity?typeconstraint=" + (constraints ?? "none") + "&skip=" + skip + (applicationId ? "&application=" + applicationId : "") + `&currency=${params.get("currency") ? params.get("currency") : ""}`).then(res => {
108+
if(isAprilFools() && !hasDeal("activity")) {
109+
dealPopUpBuyPleaseUwU("activity", "see activity")
110+
}
111+
else fetch("/api/v1/activity?typeconstraint=" + (constraints ?? "none") + "&skip=" + skip + (applicationId ? "&application=" + applicationId : "") + `&currency=${params.get("currency") ? params.get("currency") : ""}`).then(res => {
109112
if(res.status != 200) {
110113
res.text().then(text => {
111114
PopUp(text)

0 commit comments

Comments
 (0)