-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathddmc.html
More file actions
145 lines (131 loc) · 5.49 KB
/
ddmc.html
File metadata and controls
145 lines (131 loc) · 5.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Doki Doki Modding Club - a LachlanM05 creation.</title>
<link rel="icon" type="image/x-icon" href="/assets/ddmc/icon.ico" />
<link rel="stylesheet" href="/assets/ddmc/ddmc-modern.css" />
<!--
Confused on this following script? It's a UTM tracker.
It tracks what referred you here and sends it to my API.
For example, if you came from my steam profile, it'd have:
?utm_source=steamcommunity.com
Which sends back that you came from my steam(or other steam profile).
Then you will also see something appended to it like:
&utm_campaign=steamprofile_abtme
Which further identifies where you came from.
So a full utm url might look like:
https://lachlanm05.com/?utm_source=steamcommunity&utm_campaign=steamprofile_abtme
And the whole purpose of such is to find out where people are coming from.
As I can see where in the world people are coming from based on IP's, but not anything else.
-->
<script>
(function () {
// run asap, but safe
function getCookie(n) {
return document.cookie.split('; ').reduce((r, v) => {
const p = v.split('=');
return p[0] === n ? decodeURIComponent(p[1]) : r
}, null);
}
function setCookie(n, v, days) {
const d = new Date();
d.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000));
document.cookie = n + "=" + encodeURIComponent(v)
+ ";expires=" + d.toUTCString() + ";path=/;SameSite=Lax";
}
// check UTM params immediat
var url = new URL(window.location.href);
var params = url.searchParams;
var keys = ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"];
var hasUTM = false;
var payload = {};
keys.forEach(k => {
if (params.has(k)) {
hasUTM = true;
payload[k] = params.get(k);
}
});
if (!hasUTM) return;
// prevent duping on auto refresh / SPA nav
if (getCookie("lm_reftrack_sent") === "1") return;
payload.full_url = window.location.href;
payload.landing_path = window.location.pathname + window.location.search;
// send immediatialy using keepalive so it works even if user quick leaves
try {
fetch("https://lachlanm05.com/api/reftrack", {
method: "POST",
headers: { "Content-Type": "application/json" },
keepalive: true,
body: JSON.stringify(payload)
}).finally(function () {
setCookie("lm_reftrack_sent", "1", 1);
});
} catch (e) {
setCookie("lm_reftrack_sent", "1", 1);
}
})();
</script>
</head>
<body>
<header>
<div class="wrap">
<img src="assets/ddmc/ddmc.png" alt="DDMC Logo" class="ddmc-logo" />
<nav aria-label="Primary">
<div class="header-text">
<h1>Doki Doki Modding Club</h1>
<p>
A DDLC Mod Launcher made with love by
<a href="https://lachlanm05.com" target="_blank" rel="noopener">LachlanM05</a>
</p>
</div>
</div>
</header>
<main class="wrap">
<section class="card">
<h2>What is Doki Doki Modding Club?</h2>
<p>
DDMC is a mod launcher/manager for Doki Doki Literature Club. It started as a project for myself, but I
thought others may find it useful too.
Read the <a href="https://github.com/LachlanM05/ddmc" target="" _blank" rel="noopener">Source Code</a>
here.
</p>
</section>
<section class="card">
<h2>Features</h2>
<ul>
<li>Profile-based mod management/launching.</li>
<li>Playtime tracking.</li>
<li>Discord Rich Presence</li>
<li>Dark and Light Mode.</li>
<li>Easy access logs with CTRL+L.</li>
</ul>
<p>Never updated, because SOMEBODY (me) wrote the entire thing and left 0 comments! YAY!!! YIPPIE</p>
</section>
<section class="card">
<h2>Downloads</h2>
<div class="downloads">
<a class="buttonlike" href="/assets/ddmc/ddlc_manager.zip" download>
Download DDMC (ZIP - New update sometime, maybe.) <small>Python 3.10+</small>
</a>
<a class="buttonlike" href="/assets/ddmc/ddlc_manager.exe" download>
Download DDMC (EXE - New update sometime, maybe.) <small>Pre-Compiled</small>
</a>
<!--
Update? Me? Never.
-->
</div>
</section>
</main>
</body>
<footer>
<div class="wrap">
<div class="footer-inner">
<p>© 2025 LachlanM05 — <a href="https://discord.gg/QWfq3feYnn" target="_blank">Join the Discord</a></p>
<p id="credit-line" aria-live="polite"></p>
</div>
</div>
</footer>
<script src="/assets/ddmc/ddmc-footer.js" defer></script>
</html>