This repository has been archived by the owner on Mar 4, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ui.js
141 lines (129 loc) · 4.05 KB
/
ui.js
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
import { existsSync } from "fs";
import express from "express";
import { dirname } from "path";
import { fileURLToPath } from "url";
import { JSDOM as jsdom } from "jsdom";
import { updateHTML } from "./populate.js";
import { populateCSS, populateConfig } from "./build.js";
import { updateCommand } from "./update.js";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const app = express();
app.set("view engine", "ejs");
app.use(express.static(__dirname + "/views"));
app.set("views", __dirname + "/views");
app.use(
express.json({
limit: "50mb",
}),
);
app.use(
express.urlencoded({
limit: "50mb",
extended: true,
}),
);
const port = 3200;
global.DOMParser = new jsdom().window.DOMParser;
import { outDir } from "./utils.js";
function uiCommand() {
app.get("/", (req, res) => {
res.render("index.ejs");
});
app.get("/update", (req, res) => {
if (!existsSync(`${outDir}/config.json`)) {
return res.send(
'You need to run build command before using update<br><a href="/">Go Back</a>',
);
}
updateCommand();
res.redirect("/");
});
app.post("/build", (req, res) => {
const { username } = req.body;
if (!username) {
return res.send("username can't be empty");
}
const sort = req.body.sort ? req.body.sort : "created";
const order = req.body.order ? req.body.order : "asc";
const includeFork = req.body.fork === "true";
const types = ["owner"];
const codepen = req.body.codepen ? req.body.codepen : null;
const dev = req.body.dev ? req.body.dev : null;
const discord = req.body.discord ? req.body.discord : null;
const dribbble = req.body.dribbble ? req.body.dribbble : null;
const email = req.body.email ? req.body.email : null;
const facebook = req.body.facebook ? req.body.facebook : null;
const gradient = req.body.gradient ? req.body.gradient : null;
const initials = req.body.initials ? req.body.initials : null;
const instagram = req.body.instagram ? req.body.instagram : null;
const keybase = req.body.keybase ? req.body.keybase : null;
const linkedin = req.body.linkedin ? req.body.linkedin : null;
const medium = req.body.medium ? req.body.medium : null;
const paypal = req.body.paypal ? req.body.paypal : null;
const pinterest = req.body.pinterest ? req.body.pinterest : null;
const reddit = req.body.reddit ? req.body.reddit : null;
const snapchat = req.body.snapchat ? req.body.snapchat : null;
const stackexchange = req.body.stackexchange
? req.body.stackexchange
: null;
const steam = req.body.steam ? req.body.steam : null;
const telegram = req.body.telegram ? req.body.telegram : null;
const threads = req.body.threads ? req.body.threads : null;
const tvtime = req.body.tvtime ? req.body.tvtime : null;
const tumblr = req.body.tumblr ? req.body.tumblr : null;
const twitch = req.body.twitch ? req.body.twitch : null;
const x = req.body.x ? req.body.x : null;
const xda = req.body.xda ? req.body.xda : null;
const youtube = req.body.youtube ? req.body.youtube : null;
let background = req.body.background
? req.body.background
: "https://source.unsplash.com/1280x720/?wallpaper";
const theme = req.body.theme === "on" ? "dark" : "light";
const opts = {
sort,
order,
includeFork,
types,
codepen,
dev,
discord,
dribbble,
email,
facebook,
gradient,
initials,
instagram,
keybase,
linkedin,
medium,
paypal,
pinterest,
reddit,
snapchat,
stackexchange,
steam,
telegram,
threads,
tvtime,
tumblr,
twitch,
x,
xda,
youtube,
};
updateHTML(username, opts);
populateCSS({
background,
theme,
});
populateConfig(opts);
res.redirect("/");
});
console.log("\nStarting...");
app.listen(port);
console.log(
`The GUI is running on port ${port}, Navigate to http://localhost:${port} in your browser\n`,
);
}
export { uiCommand };