Added presence
This commit is contained in:
parent
6f6c9f229f
commit
af797ba515
7 changed files with 89 additions and 3 deletions
|
@ -12,6 +12,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"7.css": "^0.16.0",
|
"7.css": "^0.16.0",
|
||||||
"@astrojs/node": "^8.3.2",
|
"@astrojs/node": "^8.3.2",
|
||||||
"astro": "^4.12.2"
|
"astro": "^4.12.2",
|
||||||
|
"lanyard-wrapper": "^2.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -17,6 +17,9 @@ importers:
|
||||||
astro:
|
astro:
|
||||||
specifier: ^4.12.2
|
specifier: ^4.12.2
|
||||||
version: 4.12.2
|
version: 4.12.2
|
||||||
|
lanyard-wrapper:
|
||||||
|
specifier: ^2.0.1
|
||||||
|
version: 2.0.1
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
|
@ -1062,6 +1065,9 @@ packages:
|
||||||
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
|
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
lanyard-wrapper@2.0.1:
|
||||||
|
resolution: {integrity: sha512-wDMqGTEzc1AXvs3i2JaVkDHCzA7FCkpsdlJIpypOiDhhkIYJhhnDzOo91FQ3E6u5fQiF1Q8vfOOKm3kZ3peQSw==}
|
||||||
|
|
||||||
load-yaml-file@0.2.0:
|
load-yaml-file@0.2.0:
|
||||||
resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
|
resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
@ -2741,6 +2747,8 @@ snapshots:
|
||||||
|
|
||||||
kleur@4.1.5: {}
|
kleur@4.1.5: {}
|
||||||
|
|
||||||
|
lanyard-wrapper@2.0.1: {}
|
||||||
|
|
||||||
load-yaml-file@0.2.0:
|
load-yaml-file@0.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
|
|
BIN
public/game.ico
Normal file
BIN
public/game.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 45 KiB |
BIN
public/music.ico
Normal file
BIN
public/music.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 81 KiB |
|
@ -1,4 +1,24 @@
|
||||||
<style>
|
---
|
||||||
|
import {fetchUserData, type DiscordStatus} from "lanyard-wrapper";
|
||||||
|
|
||||||
|
const rawUserData = await fetchUserData("886685857560539176");
|
||||||
|
const statusColor = () => {
|
||||||
|
switch (rawUserData.discord_status) {
|
||||||
|
case "online":
|
||||||
|
return "#23a55a";
|
||||||
|
case "idle":
|
||||||
|
return "#f0b232";
|
||||||
|
case "dnd":
|
||||||
|
return "#f23f43";
|
||||||
|
case "offline":
|
||||||
|
return "#80848e";
|
||||||
|
default:
|
||||||
|
return "#80848e";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
---
|
||||||
|
|
||||||
|
<style define:vars={{statusColor: statusColor()}}>
|
||||||
div {
|
div {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
@ -13,7 +33,7 @@
|
||||||
height: 90px;
|
height: 90px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
box-shadow: 10px black;
|
box-shadow: 10px black;
|
||||||
border-color: var(--offline-color);
|
border-color: var(--statusColor);
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 2px;
|
border-width: 2px;
|
||||||
}
|
}
|
||||||
|
|
55
src/components/Presence.astro
Normal file
55
src/components/Presence.astro
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
---
|
||||||
|
import {fetchUserData} from "lanyard-wrapper";
|
||||||
|
|
||||||
|
const rawUserData = await fetchUserData("886685857560539176");
|
||||||
|
const activity = (() => {
|
||||||
|
let finalActivity = {
|
||||||
|
type: undefined,
|
||||||
|
name: undefined,
|
||||||
|
artist: undefined
|
||||||
|
};
|
||||||
|
rawUserData.activities.some((activity => {
|
||||||
|
if(activity.type === 0) {
|
||||||
|
finalActivity = {
|
||||||
|
type: "playing",
|
||||||
|
name: activity.name,
|
||||||
|
artist: undefined
|
||||||
|
};
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
if(finalActivity.type !== undefined) return finalActivity;
|
||||||
|
if(rawUserData.listening_to_spotify) {
|
||||||
|
finalActivity = {
|
||||||
|
type: "listening",
|
||||||
|
name: rawUserData.spotify.song,
|
||||||
|
artist: rawUserData.spotify.artist
|
||||||
|
};
|
||||||
|
};
|
||||||
|
return finalActivity;
|
||||||
|
})();
|
||||||
|
---
|
||||||
|
|
||||||
|
<style>
|
||||||
|
div {
|
||||||
|
margin-top: 10px;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin-top: auto;
|
||||||
|
margin-bottom: auto;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
{
|
||||||
|
activity.type !== undefined &&
|
||||||
|
<div>
|
||||||
|
<img src={activity.type === "playing" ? "/game.ico" : "/music.ico"}>
|
||||||
|
<p>{`${activity.type === "playing" ? "Playing" : "Listening to"} ${activity.name}${activity.type === "listening" ? ` - ${activity.artist}` : ""}`}</p>
|
||||||
|
</div>
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
---
|
---
|
||||||
import Me from "../components/Me.astro";
|
import Me from "../components/Me.astro";
|
||||||
|
import Presence from "../components/Presence.astro";
|
||||||
import Window from "../components/Window.astro";
|
import Window from "../components/Window.astro";
|
||||||
import BaseLayout from "../layouts/BaseLayout.astro";
|
import BaseLayout from "../layouts/BaseLayout.astro";
|
||||||
---
|
---
|
||||||
|
@ -7,5 +8,6 @@ import BaseLayout from "../layouts/BaseLayout.astro";
|
||||||
<BaseLayout tabTitle="Home - nin0dev">
|
<BaseLayout tabTitle="Home - nin0dev">
|
||||||
<Window title="Home" maxWidth="600px">
|
<Window title="Home" maxWidth="600px">
|
||||||
<Me />
|
<Me />
|
||||||
|
<Presence />
|
||||||
</Window>
|
</Window>
|
||||||
</BaseLayout>
|
</BaseLayout>
|
||||||
|
|
Loading…
Reference in a new issue