Compare commits

...

10 commits

Author SHA1 Message Date
Lio Young
5995bdd157 remove redis, stick to static variables 2021-10-19 12:18:47 +02:00
Lio Young
3c28bd4b3f update css 2021-10-19 12:17:51 +02:00
Lio Young
f74684c306 move to yaml files 2021-10-19 12:17:34 +02:00
Lio Young
cf112d7d29 move images around 2021-10-19 12:16:55 +02:00
Lio
6e7704157c Merge branch 'master' of http://werewolf.codes/h/alex into master 2020-11-18 00:57:04 +01:00
Lio
e18d6a3dab add kumarion remix image and links 2020-11-18 00:56:46 +01:00
hokkqi
0e000ece3a remove nbsp 2020-10-05 21:43:56 +02:00
hokkqi
4ac3281f35 make entire made by clickable 2020-10-05 21:43:20 +02:00
hokkqi
108f4734a2 Update 'c.js' 2020-10-05 21:34:45 +02:00
Lio
76a8ebfc68 actual links and images 2020-10-05 21:24:30 +02:00
23 changed files with 1737 additions and 1515 deletions

View file

@ -1,55 +1,64 @@
@import url("https://fonts.googleapis.com/css2?family=Orbitron&display=swap");
* {
margin: 0;
padding: 0; }
padding: 0;
}
/* Hide scrollbar for Chrome, Safari and Opera */
::-webkit-scrollbar {
display: none; }
display: none;
}
body {
background: #000;
color: #fff;
font-family: 'Orbitron', sans-serif;
font-family: "Orbitron", sans-serif;
-ms-overflow-style: none;
/* IE and Edge */
scrollbar-width: none;
/* Firefox */ }
}
.logo {
width: 150px;
text-align: center;
margin: auto;
justify-content: center;
display: flex; }
display: flex;
}
a {
color: white;
font-size: 2vw;
text-decoration: none; }
a:hover {
color: grey; }
text-decoration: none;
}
a:hover {
color: grey;
}
.twitch svg:hover {
fill: #9146FF; }
fill: #9146FF;
}
.twitter svg:hover {
fill: #1DA1F2; }
fill: #1DA1F2;
}
.instagram svg:hover {
fill: #E4405F; }
fill: #E4405F;
}
svg {
fill: white;
padding: 0 10px;
width: 50px;
height: 50px; }
height: 50px;
}
.sub-nav {
text-align: center;
margin: auto;
justify-content: center;
display: flex; }
display: flex;
}
.bar {
position: absolute;
@ -61,20 +70,25 @@ svg {
font-size: 15px;
margin: auto;
display: flex;
padding-left: 1%; }
.bar a {
padding-left: 1%;
}
.bar a {
font-size: inherit;
color: black; }
color: black;
}
.top {
top: 50px; }
top: 50px;
}
.bottom {
bottom: 50px; }
bottom: 50px;
}
section {
height: 100vh;
width: 100vw; }
width: 100vw;
}
.music {
display: flex;
@ -82,29 +96,42 @@ section {
margin: auto;
justify-content: space-between;
padding-top: 5vh;
margin: 0 100px; }
.music .title {
margin: 0 100px;
}
.music .title {
font-size: 3vh;
display: flex;
text-align: left;
margin: auto;
justify-content: space-between;
padding-top: 2vh; }
.music img {
height: 30vh; }
padding-top: 2vh;
}
.music img {
height: 30vh;
}
@media screen and (max-width: 1350px) {
.music {
display: table;
margin: auto; }
margin: auto;
}
.title {
padding-bottom: 20px; }
padding-bottom: 20px;
}
img {
height: 20vh; }
height: 20vh;
}
.top {
top: 60px; }
top: 60px;
}
.bottom {
position: sticky;
bottom: 0; } }
bottom: 0;
}
}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiYXNzZXRzL3Nhc3MvaW5kZXguY3NzIiwKCSJzb3VyY2VzIjogWwoJCSJhc3NldHMvc2Fzcy9pbmRleC5zYXNzIgoJXSwKCSJuYW1lcyI6IFtdLAoJIm1hcHBpbmdzIjogIkFBTUEsT0FBTyxDQUFDLHFFQUFJO0FBQ1osQUFBQSxDQUFDLENBQUM7RUFDRSxNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDLEdBQUc7O0FBRWpCLGlEQUFpRDtBQUNqRCxBQUFBLG1CQUFtQixDQUFDO0VBQ2hCLE9BQU8sRUFBRSxJQUFJLEdBQUc7O0FBS3BCLEFBQUEsSUFBSSxDQUFDO0VBQ0QsVUFBVSxFQUFFLElBQUk7RUFDaEIsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsc0JBQXNCO0VBQ25DLGtCQUFrQixFQUFFLElBQUk7RUFBRyxpQkFBaUI7RUFDNUMsZUFBZSxFQUFFLElBQUk7RUFBRyxhQUFhLEVBQUc7O0FBRzVDLEFBQUEsS0FBSyxDQUFDO0VBQ0YsS0FBSyxFQUFFLEtBQUs7RUFDWixVQUFVLEVBQUUsTUFBTTtFQUNsQixNQUFNLEVBQUUsSUFBSTtFQUNaLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLE9BQU8sRUFBRSxJQUFJLEdBQUc7O0FBRXBCLEFBQUEsQ0FBQyxDQUFDO0VBQ0UsS0FBSyxFQUFFLEtBQUs7RUFDWixTQUFTLEVBQUUsR0FBRztFQUNkLGVBQWUsRUFBRSxJQUFJLEdBRUQ7RUFMeEIsQUFJSSxDQUpILEFBSUksTUFBTSxDQUFDO0lBQ0osS0FBSyxFQUFFLElBQUksR0FBRzs7QUFHdEIsQUFBQSxPQUFPLENBQUMsR0FBRyxBQUFBLE1BQU0sQ0FBQztFQUNkLElBQUksRUF0Q0MsT0FBTyxHQXNDSTs7QUFDcEIsQUFBQSxRQUFRLENBQUMsR0FBRyxBQUFBLE1BQU0sQ0FBQztFQUNmLElBQUksRUF6Q0UsT0FBTyxHQXlDSTs7QUFDckIsQUFBQSxVQUFVLENBQUMsR0FBRyxBQUFBLE1BQU0sQ0FBQztFQUNqQixJQUFJLEVBNUNJLE9BQU8sR0E0Q0k7O0FBQ3ZCLEFBQUEsR0FBRyxDQUFDO0VBQ0EsSUFBSSxFQUFFLEtBQUs7RUFDWCxPQUFPLEVBQUUsTUFBTTtFQUNmLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUksR0FBRzs7QUFHbkIsQUFBQSxRQUFRLENBQUM7RUFDTCxVQUFVLEVBQUUsTUFBTTtFQUNsQixNQUFNLEVBQUUsSUFBSTtFQUNaLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLE9BQU8sRUFBRSxJQUFJLEdBQUc7O0FBSXBCLEFBQUEsSUFBSSxDQUFDO0VBQ0QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLEdBQUc7RUFDVixNQUFNLEVBQUUsSUFBSTtFQUNaLGdCQUFnQixFQUFFLEtBQUs7RUFDdkIsY0FBYyxFQUFFLFVBQVU7RUFDMUIsS0FBSyxFQUFFLEtBQUs7RUFDWixTQUFTLEVBQUUsSUFBSTtFQUNmLE1BQU0sRUFBRSxJQUFJO0VBQ1osT0FBTyxFQUFFLElBQUk7RUFDYixZQUFZLEVBQUUsRUFBRSxHQUdLO0VBYnpCLEFBV0ksSUFYQSxDQVdBLENBQUMsQ0FBQztJQUNFLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLEtBQUssRUFBRSxLQUFLLEdBQUc7O0FBRXZCLEFBQUEsSUFBSSxDQUFDO0VBQ0QsR0FBRyxFQUFFLElBQUksR0FBRzs7QUFFaEIsQUFBQSxPQUFPLENBQUM7RUFDSixNQUFNLEVBQUUsSUFBSSxHQUFHOztBQUVuQixBQUFBLE9BQU8sQ0FBQztFQUNKLE1BQU0sRUFBRSxLQUFLO0VBQ2IsS0FBSyxFQUFFLEtBQUssR0FBRzs7QUFFbkIsQUFBQSxNQUFNLENBQUM7RUFDSCxPQUFPLEVBQUUsSUFBSTtFQUNiLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLE1BQU0sRUFBRSxJQUFJO0VBQ1osZUFBZSxFQUFFLGFBQWE7RUFDOUIsV0FBVyxFQUFFLEdBQUc7RUFDaEIsTUFBTSxFQUFFLE9BQU8sR0FTTTtFQWZ6QixBQU9JLE1BUEUsQ0FPRixNQUFNLENBQUM7SUFDSCxTQUFTLEVBQUUsR0FBRztJQUNkLE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLElBQUk7SUFDWixlQUFlLEVBQUUsYUFBYTtJQUM5QixXQUFXLEVBQUUsR0FBRyxHQUFHO0VBYjNCLEFBY0ksTUFkRSxDQWNGLEdBQUcsQ0FBQztJQUNBLE1BQU0sRUFBRSxJQUFJLEdBQUc7O0FBR3ZCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLE1BQU07RUFDaEMsQUFBQSxNQUFNLENBQUM7SUFDSCxPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxJQUFJLEdBQUc7RUFDbkIsQUFBQSxNQUFNLENBQUM7SUFDSCxjQUFjLEVBQUUsSUFBSSxHQUFHO0VBQzNCLEFBQUEsR0FBRyxDQUFDO0lBQ0EsTUFBTSxFQUFFLElBQUksR0FBRztFQUNuQixBQUFBLElBQUksQ0FBQztJQUNELEdBQUcsRUFBRSxJQUFJLEdBQUc7RUFDaEIsQUFBQSxPQUFPLENBQUM7SUFDSixRQUFRLEVBQUUsTUFBTTtJQUNoQixNQUFNLEVBQUUsQ0FBQyxHQUFHIgp9 */
/*# sourceMappingURL=index.css.map */

1
assets/css/index.css.map Normal file
View file

@ -0,0 +1 @@
{"version":3,"sourceRoot":"","sources":["../sass/index.sass"],"names":[],"mappings":"AAMQ;AACR;EACI;EACA;;;AAEJ;AACA;EACI;;;AAIJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;AACA;EACI;;;AAER;EACI,MAnCK;;;AAoCT;EACI,MAtCM;;;AAuCV;EACI,MAzCQ;;;AA0CZ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;;;AAER;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;;AACJ;EACI;;;AAER;EACI;IACI;IACA;;;EACJ;IACI;;;EACJ;IACI;;;EACJ;IACI;;;EACJ;IACI;IACA","file":"index.css"}

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

View file

Before

Width:  |  Height:  |  Size: 733 KiB

After

Width:  |  Height:  |  Size: 733 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

View file

@ -4,31 +4,29 @@ $instagram: #E4405F
$twitter: #1DA1F2
$twitch: #9146FF
@import url('https://fonts.googleapis.com/css2?family=Orbitron&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Orbitron&display=swap')
*
margin: 0
padding: 0
/* Hide scrollbar for Chrome, Safari and Opera */
::-webkit-scrollbar
display: none;
display: none
// MAKE SVGS FILL WITH THEIR COLOR ON HOVER
body
background: #000
color: #fff
font-family: 'Orbitron', sans-serif;
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
font-family: 'Orbitron', sans-serif
-ms-overflow-style: none /* IE and Edge */
scrollbar-width: none /* Firefox */
.logo
width: 150px
text-align: center;
margin: auto;
justify-content: center;
text-align: center
margin: auto
justify-content: center
display: flex
a
@ -38,7 +36,6 @@ a
&:hover
color: grey
.twitch svg:hover
fill: $twitch
.twitter svg:hover
@ -51,24 +48,21 @@ svg
width: 50px
height: 50px
.sub-nav
text-align: center;
margin: auto;
justify-content: center;
text-align: center
margin: auto
justify-content: center
display: flex
.bar
position: absolute
width: 99%
height: 20px
background-color: white
mix-blend-mode: difference;
mix-blend-mode: difference
color: black
font-size: 15px
margin: auto;
margin: auto
display: flex
padding-left: 1%
a
@ -87,22 +81,21 @@ section
.music
display: flex
text-align: center;
margin: auto;
text-align: center
margin: auto
justify-content: space-between
padding-top: 5vh
margin: 0 100px
.title
font-size: 3vh
display: flex
text-align: left;
margin: auto;
text-align: left
margin: auto
justify-content: space-between
padding-top: 2vh
img
height: 30vh
@media screen and ( max-width: 1350px )
.music
display: table
@ -116,5 +109,3 @@ section
.bottom
position: sticky
bottom: 0

63
c.js
View file

@ -1,63 +0,0 @@
const icons = require("simple-icons");
var argv = require("minimist")(process.argv.slice(2));
// Since I can't refer back to things, I'm just gonna make them consts
// and export them
const dev = false || argv.dev;
const port = 9696;
const name = "ALEX HELDT";
const socials = [
{
name: "twitch",
link: "https://twitter.com/abisoos",
icon: icons["Twitch"],
},
{
name: "twitter",
link: "https://twitter.com/abisoos",
icon: icons["Twitter"],
},
{
name: "instagram",
link: "https://twitter.com/abisoos",
icon: icons["Instagram"],
},
];
const music = [
{
id: "rumorsremix",
shown: "Rumors Remix",
image: "/assets/images/serrated.jpg",
link: "https://soundcloud.com/abisoos/overdrive",
},
{
id: "serrated",
shown: "Serrated",
image: "/assets/images/serrated.jpg",
link: "https://soundcloud.com/abisoos/overdrive",
},
{
id: "overdrive3",
shown: "Serrated",
image: "/assets/images/serrated.jpg",
link: "https://soundcloud.com/abisoos/overdrive",
},
{
id: "overdrive4",
shown: "Serrated",
image: "/assets/images/serrated.jpg",
link: "https://soundcloud.com/abisoos/overdrive",
},
];
const allMusic = [...music];
module.exports = {
dev,
port,
name,
socials,
music,
allMusic,
};

33
configs.js Normal file
View file

@ -0,0 +1,33 @@
const icons = require("simple-icons");
var argv = require("minimist")(process.argv.slice(2));
// Since I can't refer back to things, I'm just gonna make them consts
// and export them
const dev = false || argv.dev;
const port = 9696;
const name = "ALEX HELDT";
const yml = require("./yaml")
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
let socials = []
yml.social.forEach(element => {
element.icon = icons[capitalize(element.name)];
socials.push(element)
});
let music = yml.music.filter(m => m.shown === true)
let allMusic = yml.music
module.exports = {
dev,
port,
name,
socials,
music,
allMusic,
};

43
files/music.yml Normal file
View file

@ -0,0 +1,43 @@
- id: disillusioned
name: DISILLUSIONED
image: /assets/images/covers/disillusioned_alt.jpg
link: https://ffm.to/disillusioned
shown: true
- id: laughtracks
name: LAUGH TRACKS
image: /assets/images/covers/laughtracks.jpg
link: https://ffm.to/laughtracks
shown: true
- id: cantfeelmyself
name: CAN'T FEEL MYSELF
image: /assets/images/covers/cantfeelmyself.jpg
link: https://ffm.to/cantfeelmyself
shown: true
- id: cfmmv
name: CAN'T FEEL MYSELF MV
image: /assets/images/covers/cfm_video.png
link: https://www.youtube.com/watch?v=vdQdjxUFV3E
shown: true
- id: kumarionrmx
name: Want It Remix
image: "/assets/images/covers/kumarionrmx.jpg"
link: https://soundcloud.com/alexheldtmusic/kumarion-want-it-alex-heldt-remix-1
- id: rumorsrmx
name: Rumors Remix
image: "/assets/images/covers/rumors.jpg"
link: https://ffm.to/dd3kjja
- id: blowfishrmx
name: Blowfish Boyfriend Remix
image: "/assets/images/covers/blowfishrmx.jpg"
link: https://ffm.to/blowfishbfremix.owe
- id: serrated
name: Serrated EP
image: "/assets/images/covers/serrated.jpg"
link: https://ffm.to/serrated

8
files/social.yml Normal file
View file

@ -0,0 +1,8 @@
- name: twitch
link: https://twitch.tv/alexheldtmusic
- name: twitter
link: https://twitch.tv/alexheldtmusic
- name: Instagram
link: https://instagr.am/alexheldtmusic

View file

@ -6,37 +6,9 @@ const cors = require("cors");
const morgan = require("morgan");
const chalk = require("chalk");
const hbs = require("express-handlebars");
const { dev, music, port, socials, name } = require("./c");
const redis = require("ioredis");
const { promisify } = require("util");
const {
compileSassAndSaveMultiple,
setupCleanupOnExit,
} = require("compile-sass");
const path = require("path");
// Init
const { dev, allMusic, music, port, socials, name } = require("./configs");
const app = express();
const r = new redis(6379, "192.168.1.11", {
connectionName: `ALEXHELDT${dev ? "-dev" : ""}`,
});
const get = promisify(r.get).bind(r);
compileSassAndSaveMultiple({
sassPath: path.join(__dirname, "assets/sass/"),
cssPath: path.join(__dirname, "assets/css/"),
files: ["index.sass"],
});
process.on("SIGINT", () => {
try {
setupCleanupOnExit("assets/css");
console.log("worked");
process.exit(0);
} catch (error) {
console.error(error);
process.exit(1);
}
});
app.engine("hbs", hbs({ extname: "hbs", defaultView: "default" }));
app.set("view engine", "hbs");
@ -72,8 +44,8 @@ app.get("/", async (req, res) => {
socials,
music,
creator: {
name: await r.get("creator_name") || 'lio',
website: await r.get("creator_website") || "https://himbo.cat",
name: "temere",
website: "https://teme.re",
},
});
});
@ -84,7 +56,7 @@ socials.forEach((social) => {
});
// ! MUSIC LINKS
music.forEach((item) => {
allMusic.forEach((item) => {
app.get(`/${item.id}`, (req, res) => res.redirect(item.link));
});

2896
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -5,21 +5,20 @@
"main": "index.js",
"dependencies": {
"chalk": "^3.0.0",
"compile-sass": "^1.1.1",
"compression": "^1.7.4",
"cors": "^2.8.5",
"express": "^4.17.1",
"express-handlebars": "^3.1.0",
"helmet": "^3.21.2",
"ioredis": "^4.17.3",
"js-yaml": "^4.1.0",
"minimist": "^1.2.5",
"morgan": "^1.9.1",
"node-cache": "^5.1.2",
"sass": "^1.41.0",
"simple-icons": "^3.10.0"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"css": "sass assets/sass/index.sass assets/css/index.css"
},
"keywords": [],
"author": "",

View file

@ -18,9 +18,9 @@
<div class="music">
{{#each music}}
<div class="song">
<a href="{{../protocol}}://{{../host}}/{{id}}"><img src="{{image}}" alt="{{shown}} Cover Art"></a>
<a href="{{../protocol}}://{{../host}}/{{id}}"><img src="{{image}}" alt="{{name}} Cover Art"></a>
<a href="{{../protocol}}://{{../host}}/{{id}}" class="title">
{{shown}}
{{name}}
</a>
</div>
{{/each}}
@ -29,4 +29,4 @@
<div class="bar top"></div>
<div class="bar bottom">made by&nbsp; <a href="{{creator.website}}">{{creator.name}}</a></div>
<div class="bar bottom"><a href="{{creator.website}}">made by {{creator.name}}</a></div>

11
yaml.js Normal file
View file

@ -0,0 +1,11 @@
const yaml = require('js-yaml');
const fs = require('fs');
const path = require('path');
let YAML = []
fs.readdirSync('./files').forEach(file => {
YAML[file.replace('.yml', '')] = yaml.load(fs.readFileSync(path.join(__dirname, 'files', file), 'utf8'))
});
module.exports = YAML;