
@rodrigotello
Computing Interface Designer @ http://Val.Town
1
2
3
4
5
6
7
8
9
10
11
12
const hnFollowApp = function (authors: string[]) {
return async function ({ lastRunAt }) {
let posts = await stevekrouse.hnLatestPosts({
authors,
lastSyncTime: lastRunAt,
search_by_date: true,
});
let { html, subject } = await rodrigotello.hnEmail({ posts });
if (posts.length) console.email({ html: html }, subject);
};
};
// Forked from @stevekrouse.hnFollowApp
Figma Frame To HTML
TL;DR: you can see a Figma board in a website
Readme
1
2
3
4
5
6
export async function FigmaFrameToHTML(
req: express.Request,
res: express.Response,
) {
return res.send(`${@me.FigmaFrameObjectToHTMLTest}`);
}
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
let welcomeEmail = `
<p>Welcome to Val Town! Here are some resources to help you set up:</p>
<ol style="padding-left:16px;">
<li style="margin-bottom:32px">
<h3>What is a val?</h3>
<p>A val is small JavaScript or TypeScript snippet of code, written in the browser and run in our servers.
Create scheduled functions, email yourself, and persist small pieces of data — all from the browser.<p>
</li>
<li style="margin-bottom:32px">
<h3>Join our Discord</h3>
<div><a href="https://discord.gg/dHv45uN5RY" style="color:${@me.valTownCSSLink};">Join our Discord</a> so you can ask questions, share your cool vals, and learn about the cutting-edge of Val Town. Don't be shy about posting links to vals you want help debugging.</div>
</li>
<li style="margin-bottom:32px;">
<h3>Learn the basics</h3>
<ul style="list-style-type: disc;">
<li style="margin-bottom:6px">Store state: <div style="${@me.CSScodeStyling};">@me.fizz += "buzz"</div></li>
<li style="margin-bottom:6px">Reference your vals: <div style="${@me.CSScodeStyling};">@me.fizz.split('buzz').length</div></li>
<li style="margin-bottom:6px">Reference others' vals: <div style="${@me.CSScodeStyling};">@stevekrouse.moreBuzz()</div></li>
<li style="margin-bottom:6px">Reference personal secrets: <div style="${@me.CSScodeStyling};">@me.secrets.openai</div></li>
<li style="margin-bottom:6px">Import from npm: <div style="${@me.CSScodeStyling};">const _ = await import("npm:lodash-es")</div></li>
<li>Run keyboard shortcut: <div style="${@me.CSScodeStyling};">cmd+enter</div></li>
</ul>
</li>
<li style="margin-bottom:32px">
<h3>Check our resources</h3>
<ul style="list-style-type: disc;">
<li>
<a href="https://docs.val.town" style="font-weight: 800; color:${@me.valTownCSSLink}; display:inline">Docs</a>
</li>
<li >
<a href="https://val.town/examples/apis" style="font-weight: 800; color:${@me.valTownCSSLink}; display:inline">APIs</a>
</li>
<li>
<a href="https://val.town/examples/use-cases" style="font-weight: 800; color:${@me.valTownCSSLink}; display:inline">Use cases</a>
</li>
<li>
<a href="https://val.town/examples/packages", style="font-weight: 800; color:${@me.valTownCSSLink}; display:inline">NPM packages</a>
</li>
</ul>
</li>
</ol>
<p>Thanks,</p>
<p>Val Town Team</p>`;
1
2
3
4
5
6
7
8
9
10
11
async function updateInspoList(newList, auth) {
let handle = await stevekrouse.verifyAPIAuth(auth);
if (stevekrouse.isValTownTeam(handle)) {
rodrigotello.valTownInspoList = newList;
return "Updated";
}
else {
return "Unauthenticated";
}
}
// Forked from @stevekrouse.updateInspoList
1
2
3
async function valTownDailyInspo() {
return await rodrigotello.valTownInspirationEmail();
}
1
2
3
4
5
6
7
8
9
10
11
12
function vtInspoHTML(req, res) {
res.send(
rodrigotello.valTownInspoList.map((valTownInspo) =>
`<h3>Daily Val Town inspiration</h3>
<h1>${valTownInspo.title}</h1>
<p>${valTownInspo.description}</p>
<a href="https://val.town/${valTownInspo.val}"><img src="https://val.town/v/${valTownInspo.val}.png" style="max-width:576px"/></a>
<p>
</p>`
).join("\n"),
);
}
1
2
3
4
5
6
let loremipsum =
`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer commodo pretium mi, sed varius libero rutrum in. Sed a velit euismod, lacinia lectus non, ultricies justo. Duis maximus leo vel nunc facilisis, a luctus lacus posuere. Mauris faucibus tincidunt turpis ut consectetur. Pellentesque efficitur mi id augue convallis tristique. Maecenas ut justo et dolor consectetur venenatis. Proin tincidunt semper magna id dapibus. Fusce sed gravida mauris, eget sagittis lacus. Vestibulum eleifend euismod arcu, ac vulputate metus pulvinar vitae. In fermentum turpis a felis convallis, in tincidunt turpis vulputate. Sed tristique dapibus dolor, ac tempus nulla pulvinar sed. Nullam maximus auctor finibus. Ut vulputate tristique ligula, eu vulputate odio feugiat eget.
Fusce interdum mi nec lorem dictum, eu auctor est feugiat. Vestibulum sollicitudin nulla id mi fringilla, sit amet cursus eros ullamcorper. Aenean id rhoncus justo. Morbi nec velit sit amet odio ultricies placerat vitae nec nulla. Suspendisse scelerisque sagittis ex sed rutrum. Sed eu massa in ex feugiat viverra. Etiam bibendum libero nec purus efficitur, eu dapibus mi sollicitudin. Sed dapibus, orci a dignissim mattis, felis neque tristique ligula, et malesuada lacus felis et leo. Nam efficitur erat et nunc fermentum iaculis.
Curabitur volutpat sem id pulvinar feugiat. Aliquam vulputate orci ut est consequat cursus. Nullam dignissim urna sed lorem congue, vel pellentesque lacus cursus. Sed efficitur consequat dolor eget consectetur. Praesent rhoncus, tortor ac vulputate imperdiet, tellus tellus aliquam nisl, vitae tincidunt justo metus non orci. Pellentesque rhoncus mauris quis arcu gravida, id aliquet velit suscipit. Quisque lobortis odio eget leo auctor venenatis. Maecenas pellentesque malesuada urna, at pulvinar purus pharetra in. Curabitur sed sapien vel risus varius scelerisque ut eu lacus. Morbi id orci et magna ultrices tincidunt eget at nisi. Suspendisse potenti. Mauris dapibus diam dui, at pharetra sem pellentesque et. Sed ac lobortis odio. Suspendisse potenti. Suspendisse ac ultricies dui.`;
Val Town's valEditor width
Readme