tangled
alpha
login
or
join now
ptr.pet
/
endpoint
0
fork
atom
data endpoint for entity 90008 (aka. a website)
0
fork
atom
overview
issues
pulls
pipelines
more minor fixes
ptr.pet
3 months ago
bced32a4
0ccf40f0
verified
This commit was signed with the committer's
known signature
.
ptr.pet
SSH Key Fingerprint:
SHA256:Abmvag+juovVufZTxyWY8KcVgrznxvBjQpJesv071Aw=
0/0
Waiting for spindle ...
+47
-35
7 changed files
expand all
collapse all
unified
split
eunomia
src
components
pet.svelte
lib
activity.ts
routes
(site)
+page.svelte
guestbook
+page.svelte
styles
app.css
static
fonts
fusionmono.woff2
fusionprop.woff2
+11
-4
eunomia/src/components/pet.svelte
reviewed
···
178
178
}
179
179
180
180
// Normal movement when not physics-based
181
181
-
let moveByX = moveTowards(position.x, targetX, speed * ((self.innerWidth ?? 1600.0) / 1600.0));
181
181
+
let moveByX = moveTowards(
182
182
+
position.x,
183
183
+
targetX,
184
184
+
speed * ((self.innerWidth ?? 1600.0) / 1600.0)
185
185
+
);
182
186
position.x += moveByX;
183
187
184
188
turnStrideWheel(moveByX);
···
232
236
const viewportWidth = self.innerWidth || null;
233
237
if (viewportWidth !== null && Math.abs(position.x - targetX) < 5) {
234
238
targetX = Math.max(
235
235
-
Math.min(targetX + (Math.random() - 0.5) * (viewportWidth * 0.5), viewportWidth * 0.9),
239
239
+
Math.min(
240
240
+
targetX + (Math.random() - 0.5) * (viewportWidth * 0.5),
241
241
+
viewportWidth * 0.9
242
242
+
),
236
243
viewportWidth * 0.1
237
244
);
238
245
}
···
252
259
applyUserSelectHack: true,
253
260
handle: 'img',
254
261
bounds: {
255
255
-
bottom: (window.innerHeight / 100) * 5.5
262
262
+
bottom: (window.innerHeight / 100) * 5
256
263
},
257
264
onDragStart: () => {
258
265
sprite = '/pet/pick.webp';
···
286
293
dragged = false;
287
294
}
288
295
}}
289
289
-
class="fixed bottom-[5vh] z-[1000] hover:animate-squiggle"
296
296
+
class="fixed bottom-[4.6vh] z-[1000] hover:animate-squiggle"
290
297
style="cursor: url('/icons/gaze.webp'), pointer;"
291
298
>
292
299
<!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
+1
-1
eunomia/src/lib/activity.ts
reviewed
···
71
71
72
72
activities.push({
73
73
source: 'tangled',
74
74
-
description: `pushed ${repoName}: ${message}`,
74
74
+
description: `${repoName}: ${message}`,
75
75
link: `https://tangled.sh/${did}/${repoName}/commit/${hash}`,
76
76
date: dateStr ? new Date(dateStr) : null,
77
77
id: hash
+7
-7
eunomia/src/routes/(site)/+page.svelte
reviewed
···
120
120
<div class="flex flex-col gap-2 md:gap-6 md:ml-auto place-items-end">
121
121
<Window title="status" iconUri="/icons/msn.webp" removePadding>
122
122
{#if data.lastNote}
123
123
-
<div class="m-1.5 flex flex-col font-monospace text-sm">
123
123
+
<div class="m-1.5 flex flex-col font-monospace">
124
124
<p
125
125
-
class="prose prose-ralsei p-1 border-4 text-sm bg-ralsei-black"
125
125
+
class="prose prose-ralsei leading-tight p-1 border-4 bg-ralsei-black"
126
126
style="border-style: double double none double;"
127
127
title={renderDate(data.lastNote.published)}
128
128
>
···
137
137
</div>
138
138
{/if}
139
139
{#if data.lastActivity.length > 0}
140
140
-
<div class="m-1.5 flex flex-col font-monospace text-sm">
140
140
+
<div class="m-1.5 flex flex-col font-monospace">
141
141
<p
142
142
-
class="prose prose-ralsei p-1 border-4 text-sm bg-ralsei-black"
142
142
+
class="prose prose-ralsei leading-tight p-1 px-1.5 border-4 bg-ralsei-black"
143
143
style="border-style: double double none double;"
144
144
title={renderDate(data.lastActivity[0].date)}
145
145
>
···
147
147
was {renderRelativeDate(data.lastActivity[0].date)}..
148
148
</p>
149
149
<div
150
150
-
class="prose prose-ralsei mt-0 p-1.5 border-4 border-double bg-ralsei-black min-w-full max-w-[60ch]"
150
150
+
class="prose prose-ralsei mt-0 leading-tight p-1.5 border-4 border-double bg-ralsei-black min-w-full max-w-[60ch]"
151
151
>
152
152
{#each data.lastActivity as activity, index (index)}
153
153
<div
154
154
-
class="text-ralsei-green-light text-sm text-ellipsis text-nowrap overflow-hidden max-w-[60ch]"
154
154
+
class="text-ralsei-green-light text-ellipsis text-nowrap overflow-hidden max-w-[60ch]"
155
155
style="opacity: {1.0 -
156
156
(index * 1.0) / data.lastActivity.length +
157
157
index * 0.03};"
···
403
403
>
404
404
<input
405
405
type="text"
406
406
-
class="entry w-full p-1 m-0 bg-transparent resize-none text-shadow-white placeholder-shown:[text-shadow:none] border-none"
406
406
+
class="entry w-full p-1 m-0 bg-transparent resize-none text-shadow-white focus:[box-shadow:none] placeholder-shown:[text-shadow:none] border-none"
407
407
name="content"
408
408
placeholder="bother it now!!"
409
409
maxlength="100"
+26
-21
eunomia/src/routes/(site)/guestbook/+page.svelte
reviewed
···
22
22
23
23
<div class="flex flex-col-reverse md:flex-row gap-2 md:gap-4">
24
24
<Window title="guestbook" style="ml-auto" iconUri="/icons/guestbook.webp">
25
25
-
<div class="flex flex-col gap-1 max-w-[50ch] leading-6">
26
26
-
<div class="prose prose-ralsei leading-6 entry p-2">
27
27
-
<p>hia, here is the guestbook if you wanna post anything :)</p>
28
28
-
<p>be good pretty please (and don't be shy!!!)</p>
29
29
-
<p class="text-sm italic">
30
30
-
(to see all the entries, look <a href="https://bsky.app/profile/guestbook.gaze.systems"
31
31
-
>here</a
32
32
-
>)
33
33
-
</p>
25
25
+
<div class="flex flex-col gap-1 max-w-[50ch]">
26
26
+
<div class="prose prose-ralsei entry p-2">
27
27
+
hia, here is the guestbook if you wanna post anything :) <br />
28
28
+
be good pretty please (and don't be shy!!!) <br />
29
29
+
(to see all the entries, look
30
30
+
<a href="https://bsky.app/profile/guestbook.gaze.systems">here</a>)
34
31
</div>
35
32
<form method="post">
36
33
<input type="hidden" name="_token" value={data.apiToken} />
37
34
<div class="entry entryflex">
38
35
<textarea
39
39
-
class="text-lg p-1 m-0 ml-0.5 bg-transparent resize-none text-shadow-white placeholder-shown:[text-shadow:none] [field-sizing:content] border-none"
36
36
+
class="p-1 m-0 ml-0.5 bg-transparent resize-none text-shadow-white focus:[box-shadow:none] placeholder-shown:[text-shadow:none] [field-sizing:content] border-none"
40
37
name="content"
41
41
-
placeholder="say {placeholders[Math.floor(Math.random() * placeholders.length)]}!"
38
38
+
placeholder="say {placeholders[
39
39
+
Math.floor(Math.random() * placeholders.length)
40
40
+
]}!"
42
41
maxlength="300"
43
42
required
44
43
></textarea>
···
104
103
<Token v="[" punct />gazesys <Token v="/" keywd /><Token v="]$" punct /> <Token
105
104
v="let"
106
105
funct
107
107
-
/> <Token v="entries" /> <Token v="=" punct /> <Token v="(" punct /><Token
108
108
-
v="ls"
109
109
-
funct
110
110
-
/> <Token v="guestbook" /> <Token v="|" punct /> <Token v="reverse" funct /> <Token
106
106
+
/> <Token v="entries" /> <Token v="=" punct /> <Token
107
107
+
v="("
108
108
+
punct
109
109
+
/><Token v="ls" funct /> <Token v="guestbook" /> <Token
111
110
v="|"
112
111
punct
113
113
-
/> <Token v="take" funct /> <Token v="14" /><Token v=")" punct />
112
112
+
/> <Token v="reverse" funct /> <Token v="|" punct /> <Token
113
113
+
v="take"
114
114
+
funct
115
115
+
/> <Token v="14" /><Token v=")" punct />
114
116
<br />
115
117
<Token v="[" punct />gazesys <Token v="/" keywd /><Token v="]$" punct /> <Token
116
118
v="$entries"
117
117
-
/> <Token v="|" punct /> <Token v="each" funct /> <Token v="{" punct /><Token
119
119
+
/> <Token v="|" punct /> <Token v="each" funct /> <Token
120
120
+
v="{"
121
121
+
punct
122
122
+
/><Token v="|" punct /><Token v="file" /><Token
118
123
v="|"
119
124
punct
120
120
-
/><Token v="file" /><Token v="|" punct /> <Token v="render" funct /> <Token
121
121
-
v="("
122
122
-
punct
123
123
-
/><Token v="open" funct /> <Token v="$file.name" /><Token v=")" punct /><Token
125
125
+
/> <Token v="render" funct /> <Token v="(" punct /><Token
126
126
+
v="open"
127
127
+
funct
128
128
+
/> <Token v="$file.name" /><Token v=")" punct /><Token
124
129
v="}"
125
130
punct
126
131
/>
+2
-2
eunomia/src/styles/app.css
reviewed
···
17
17
18
18
@font-face {
19
19
font-family: 'Fusion Pixel 8px Monospaced SC';
20
20
-
src: url('/fonts/fusion-pixel-sc-monospaced.woff2') format('woff2');
20
20
+
src: url('/fonts/fusionmono.woff2') format('woff2');
21
21
font-weight: normal;
22
22
font-style: normal;
23
23
font-display: swap;
···
25
25
26
26
@font-face {
27
27
font-family: 'Fusion Pixel 8px Proportional SC';
28
28
-
src: url('/fonts/fusion-pixel-sc-proportional.woff2') format('woff2');
28
28
+
src: url('/fonts/fusionprop.woff2') format('woff2');
29
29
font-weight: normal;
30
30
font-style: normal;
31
31
font-display: swap;
eunomia/static/fonts/fusion-pixel-sc-monospaced.woff2
eunomia/static/fonts/fusionmono.woff2
reviewed
eunomia/static/fonts/fusion-pixel-sc-proportional.woff2
eunomia/static/fonts/fusionprop.woff2
reviewed