16 price: number;
17 finish_reason: string;
18 num_images: number;
19 our_api_token: boolean;
20}
36 price REAL,
37 finish_reason TEXT,
38 num_images INTEGER,
39 our_api_token INTEGER NOT NULL
40 )
54 model,
55 finish_reason,
56 num_images,
57 our_api_token,
58}: {
66 model: string;
67 finish_reason: string;
68 num_images: number;
69 our_api_token: boolean;
70}) {
90 price,
91 finish_reason,
92 num_images,
93 our_api_token
94 ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
107 price,
108 finish_reason,
109 num_images,
110 our_api_token ? 1 : 0,
111 ],
1export default async function(req: Request): Promise<Response> {
2 return Response.json({
3 image_url: "https://jon.bo/IMG_9387.png",
4 video_url: "https://brainrot.i12bp8.xyz/videos/reddit_video_54000.mp4",
5 audio_url: "https://res.cloudinary.com/dzkwltgyd/video/upload/v1746471301/glif-app/s43eeo9zs7ecxloj6mcr.webm",
12 // Iterate through each one and delete it's blob
13 for (const row of res.rows) {
14 if (row.image) {
15 blob.delete("pondiverse_image" + row.id);
16 }
17 }
55 // for (let creation of response.rows) {
56 // creation.url = `https://pondiverse.val.run/get-creation?id=${creation.id}`;
57 // creation.image = `https://pondiverse.val.run/get-creation-image?id=${creation.id}`;
58 // }
59
3This is a lightweight Blob Admin interface to view and debug your Blob data.
4
5
6
7To use this, fork it to your account.
60 const { ValTown } = await import("npm:@valtown/sdk");
61 const vt = new ValTown();
62 const { email: authorEmail, profileImageUrl, username } = await vt.me.profile.retrieve();
63 // const authorEmail = me.email;
64
128
129 c.set("email", email);
130 c.set("profile", { profileImageUrl, username });
131 await next();
132};
437 {profile && (
438 <div className="flex items-center space-x-4">
439 <img src={profile.profileImageUrl} alt="Profile" className="w-8 h-8 rounded-full" />
440 <span>{profile.username}</span>
441 <a href="/auth/logout" className="text-blue-400 hover:text-blue-300">Logout</a>
580 alt="Blob content"
581 className="max-w-full h-auto"
582 onError={() => console.error("Error loading image")}
583 />
584 </div>
630 <li>Create public shareable links for blobs</li>
631 <li>View and manage public folder</li>
632 <li>Preview images directly in the interface</li>
633 </ul>
634 </div>
35 // Now it's time to delete the creation
36 const rows = await sqlite.execute(
37 `CREATE TABLE deleted AS SELECT id, image FROM ${TABLE_NAME} WHERE id = ?;
38 DELETE FROM ${TABLE_NAME} WHERE id IN (SELECT id FROM deleted WHERE id = ?);
39 SELECT image FROM deleted WHERE id = ?;
40 DROP TABLE deleted;`,
41 [id, id, id],
42 );
43
44 if (rows[0] && rows[0].image) {
45 // Also delete the blob!
46 blob.delete("pondiverse_image" + id);
47 }
48
3View and interact with your Val Town SQLite data. It's based off Steve's excellent [SQLite Admin](https://www.val.town/v/stevekrouse/sqlite_admin?v=46) val, adding the ability to run SQLite queries directly in the interface. This new version has a revised UI and that's heavily inspired by [LibSQL Studio](https://github.com/invisal/libsql-studio) by [invisal](https://github.com/invisal). This is now more an SPA, with tables, queries and results showing up on the same page.
4
5
6
7## Install
16- Generate ideas and outlines
17- Improve writing style and grammar
18- Create complementary images
19- Optimize content for search engines
20
23## Interactive and Immersive Content
24
25Static text and images are giving way to more interactive experiences:
26
27- Embedded interactive data visualizations