30 // This is a no-op if nothing's changed
31 if (!isEndpointSet) {
32 await bot.api.setWebhook(req.url, {
33 secret_token: SECRET_TOKEN,
34 });
23}
24
25// API Routes
26app.route("/api/tools", toolsRouter);
27
28// Manual database seeding endpoint (for testing)
29app.get("/api/seed", async c => {
30 try {
31 console.log('🔧 Starting manual seed...');
126
127// Test endpoint to check table name
128app.get("/api/test-table", async c => {
129 try {
130 const { TABLE_NAME } = await import("./database/migrations.ts");
377 {
378 name: 'Resemble AI',
379 description: 'Real-time voice cloning and speech synthesis API',
380 category: 'audio-ai',
381 url: 'https://resemble.ai',
382 tags: JSON.stringify(['voice-cloning', 'api', 'real-time']),
383 pricing: 'paid',
384 featured: false,
50 if (filters?.featured) params.append('featured', 'true');
51
52 const response = await fetch(`/api/tools/search?${params}`);
53 const data = await response.json();
54
7 <script src="https://cdn.twind.style" crossorigin></script>
8 <script src="https://esm.town/v/std/catch"></script>
9 <link rel="preconnect" href="https://fonts.googleapis.com">
10 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&family=Playfair+Display:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@300;400;500;600&display=swap" rel="stylesheet">
12 <style>
13 :root {
81 </time>
82 <open-heart
83 href={`https://api.oh.dddddddddzzzz.org/github.com/dddddddddzzzz/${question.id}`}
84 emoji="❤️"
85 >
20 if (originalLetter === substitutedLetter) {
21 // Swap with another letter
22 const swapIndex = (i + 1) % alphabet.length;
23 [shuffledAlphabet[i], shuffledAlphabet[swapIndex]] = [shuffledAlphabet[swapIndex], shuffledAlphabet[i]];
24 }
25
1import { useState, useEffect } from "react";
2
3const USER_ENDPOINT = "/api/user";
4
5export function useUser() {
20 SUM(num_images) as total_images
21 FROM ${USAGE_TABLE}
22 WHERE our_api_token = 1
23 GROUP BY user_id, username
24 ORDER BY total_price DESC
1import { useState, useEffect } from "react";
2
3const PROJECT_ENDPOINT = "/api/project";
4const FILES_ENDPOINT = "/api/project-files";
5
6export function useProject(projectId: string, branchId?: string) {