Avatar

stevekrouse

mayor of val town
Likes
452
andreterron avatar
genval
@andreterron
HTTP (deprecated)
Forked from tmcw/poll
tmcw avatar
big_story_visualization
@tmcw
Express
The Big Story This val, along with @tmcw.big_story , which requests from the New York Times API , and @tmcw.big_stories_ranks , which contains the data, generates a visualization of top stories on the NYTimes homepage. This is here just to ask the question – what happens to cover stories over time? Do they slowly drop down the page, or just get replaced by a fully new lede? So far it doesn't have quite enough data to answer that question. But also, it might be neat because it'll show which kinds of stories make the front page - is it climate, war, politics, or something else? 👉 The Big Story (visualization)
tmcw avatar
poll
@tmcw
Express
Quick poll https://tmcw-poll.express.val.run This val, along with a val called poll_results and a val called poll_options , lets you conduct a little poll using just Val Town! With the express API , this exposes a web interface in which people can click an option and vote. We make sure everyone only votes once by setting a cookie in their browser. This uses htmx to make the voting experience slick, Tailwind to style the UI, and htm to generate HTML for the pages. If you want to use this yourself, fork this val, the poll_results val, and the poll_options val, and customize the options list. You can delete the existing results as well to clear the data.
easrng avatar
valSign
@easrng
Script
secure signatures with vals setup you'll need to make 2 new vals: generate a keypair (keep this val private) let vsExportedKeys = @easrng.generateKeys(); publish your public key (make this val public) const vsPublicKey = () => @me.exportedKeys.publicKey; usage sign call @easrng.valSign to get a signature. const signature = await @easrng.valSign({ keys: @me.vsExportedKeys, data: {hello: "world"}}) the result will look something like this: @easrng.htVgaVWWtvnz5AK0DnDaNON5gar5qJeaorfsTCiIr7ua_-D4HPmFrIrPMfwmCaMvI0CxKlYCUe9XTGm7r5s5C3siZGF0YSI6eyJoZWxsbyI6IndvcmxkIn0sInVzZXIiOiJlYXNybmciLCJleHByIjpudWxsfQ you can also set an expiration date: const signature = await @easrng.valSign({ keys: @me.vsExportedKeys, data: "this expires in 1 second", expireIn: 1000 }) verify call @easrng.valSignVerify to verify a signature const { data, handle, expiresAt } = await @easrng.valSignVerify(signature) with the example signature from earlier, data would be {hello: "world"} , handle would be easrng , and expiresAt would be null
stevekrouse avatar
button
@stevekrouse
HTTP
Forked from easrng/button
thedavis avatar
whoNext
@thedavis
Script
The cruddiest CRUD app for my @me.roundRobin private val. maintains a round-robin schedule for who should go next in a meeting. This should probably not be accessed manually, but thru a yet-to-be-designed slack bot.
adamas avatar
getWeekNumber
@adamas
Script
An interactive, runnable TypeScript val by adamas
webup avatar
moderateSampleHate
@webup
Script
An interactive, runnable TypeScript val by webup
simply_say_m avatar
getActivityAndGiphy
@simply_say_m
Express
An interactive, runnable TypeScript val by simply_say_m
simply_say_m avatar
fetchGiphy
@simply_say_m
Script
An interactive, runnable TypeScript val by simply_say_m
webup avatar
completeSampleExplainCode
@webup
Script
An interactive, runnable TypeScript val by webup
tr3ntg avatar
scrapeMSUrlPublic
@tr3ntg
Script
An interactive, runnable TypeScript val by tr3ntg
webup avatar
complete
@webup
Script
An interactive, runnable TypeScript val by webup
webup avatar
chatSampleSystemRoleExpert
@webup
Script
An interactive, runnable TypeScript val by webup
webup avatar
chatSampleSystemRoleSimpleLine
@webup
Script
An interactive, runnable TypeScript val by webup
webup avatar
chatSampleSystemRoleSimple
@webup
Script
An interactive, runnable TypeScript val by webup