The code and data behind xeiaso.net
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

migrate over to the new stickers endpoint

Signed-off-by: Xe Iaso <me@xeiaso.net>

+29 -27
+5 -5
dhall/characters.dhall
··· 38 38 , stickerName = "numa" 39 39 , defaultPose = "delet" 40 40 , description = 41 - "Numa is the keeper of firey hot takes. Born in the fires of shitposting and satire, Numa genuinely does care about the topics being discussed, but has a bad habit of communicating in shitposts, memes, and hot takes intentionally designed to make you reconsider how serious she is being about any given topic. She could definitely be a wonderful teacher if she could lessen up a bit on the satire. The stickers for Numa are 3d renders of the author's v-tubing avatar, but Numa is written differently than the characterization of the author when streaming. Numa is a fairly tall (6') human with neon green hair that usually wears it in a high ponytail." 41 + "Numa is the keeper of firey hot takes. Born in the fires of shitposting and satire, Numa genuinely does care about the topics being discussed, but has a bad habit of communicating in shitposts, memes, and hot takes intentionally designed to make you reconsider how serious she is being about any given topic. She could definitely be a wonderful teacher if she could lessen up a bit on the satire." 42 42 , stickers = 43 43 [ "delet" 44 - , "delet2" 45 - , "dismay" 44 + , "disgust" 46 45 , "happy" 47 - , "neutral" 46 + , "selfie" 47 + , "sleepy" 48 + , "smug" 48 49 , "stare" 49 50 , "thinking" 50 - , "vibe" 51 51 ] 52 52 } 53 53 , C::{
+1 -2
lume/src/_components/XeblogConv.tsx
··· 15 15 }: XeblogConvProps) => { 16 16 const nameLower = name.toLowerCase(); 17 17 name = name.replace(" ", "_"); 18 - const size = standalone ? 256 : 128; 19 18 20 19 return ( 21 20 <> ··· 25 24 style={`max-height:${standalone ? "6" : "4"}rem`} 26 25 alt={`${name} is ${mood}`} 27 26 loading="lazy" 28 - src={`https://cdn.xeiaso.net/sticker/${nameLower}/${mood}/${size}`} 27 + src={`https://stickers.xeiaso.net/sticker/${nameLower}/${mood}`} 29 28 /> 30 29 </div> 31 30 <div className="convsnippet min-w-0 self-center">
+15 -16
lume/src/_components/XeblogSticker.tsx
··· 1 1 export interface XeblogStickerProps { 2 2 name: string; 3 3 mood: string; 4 + maxHeight?: string | null; 4 5 } 5 6 6 - export default function XeblogSticker({ name, mood }: XeblogStickerProps) { 7 + export default function XeblogSticker({ 8 + name, 9 + mood, 10 + maxHeight = null, 11 + }: XeblogStickerProps) { 7 12 const nameLower = name.toLowerCase(); 8 13 name = name.replace(" ", "_"); 14 + if (maxHeight === null) { 15 + maxHeight = "12rem"; 16 + } 9 17 10 18 return ( 11 19 <> 12 - <picture> 13 - <source 14 - type="image/avif" 15 - srcset={`https://cdn.xeiaso.net/file/christine-static/stickers/${nameLower}/${mood}.avif`} 16 - /> 17 - <source 18 - type="image/webp" 19 - srcset={`https://cdn.xeiaso.net/file/christine-static/stickers/${nameLower}/${mood}.webp`} 20 - /> 21 - <img 22 - alt={`${name} is ${mood}`} 23 - loading="lazy" 24 - src={`https://cdn.xeiaso.net/file/christine-static/stickers/${nameLower}/${mood}.png`} 25 - /> 26 - </picture> 20 + <img 21 + style={`max-height:${maxHeight}`} 22 + alt={`${name} is ${mood}`} 23 + loading="lazy" 24 + src={`https://stickers.xeiaso.net/sticker/${nameLower}/${mood}`} 25 + /> 27 26 </> 28 27 ); 29 28 }
+8 -4
lume/src/characters.njk
··· 11 11 <p class="mb-4">{{ character.description | md | safe }}</p> 12 12 <details class="my-4"> 13 13 <summary>All stickers</summary> 14 - {% for mood in character.stickers %} 15 - <h3 class="text-md my-4">{{ mood }}</h3> 16 - {{ comp.XeblogSticker({ name: character.name, mood: mood }) | safe }} 17 - {% endfor %} 14 + <div class="grid grid-cols-4"> 15 + {% for mood in character.stickers %} 16 + <figure> 17 + {{ comp.XeblogSticker({ name: character.name, mood: mood, maxHeight: "10rem" }) | safe }} 18 + <figcaption>{{ mood }}</figcaption> 19 + </figure> 20 + {% endfor %} 21 + </div> 18 22 </details> 19 23 {% endfor %}