untitled-3025index.js1 match
1export default async function (req) {
2// Get the logo SVG content
3const logoSvg = `<?xml version="1.0" encoding="UTF-8"?>
untitled-4689tts-fallback.ts1 match
9* @returns Audio buffer containing the speech
10*/
11export async function simpleTTS(text: string): Promise<Uint8Array> {
12try {
13// Use a simple TTS service that doesn't require authentication
untitled-4689tts.ts5 matches
17* @returns Array of script segments with speaker and text
18*/
19function parseScript(script: string): ScriptSegment[] {
20console.log("Parsing script into segments...");
21const segments: ScriptSegment[] = [];
6566/**
67* Fallback function to generate audio using a simpler approach
68* This is used if the Google TTS integration fails
69*/
70async function fallbackTextToSpeech(script: string): Promise<Uint8Array> {
71console.log("Using fallback TTS method...");
72
83* @returns True if credentials are valid, false otherwise
84*/
85function validateCredentials(credentials: any): boolean {
86if (!credentials) return false;
87
104* @returns Audio buffer containing the podcast
105*/
106export async function textToSpeech(script: string, voices: string[] = ["en-US-Neural2-F", "en-US-Neural2-D"]): Promise<Uint8Array> {
107try {
108console.log("Starting text-to-speech conversion...");
untitled-4689index.ts1 match
200});
201202function parseProject(url: string) {
203const match = url.match(/v\/([^\/]+)\/([^\/]+)/);
204return {
untitled-4689openai.ts1 match
14* @returns A conversational podcast script
15*/
16export async function generatePodcastScript(title: string, content: string): Promise<string> {
17// Truncate content to avoid exceeding token limits
18const truncatedContent = truncateContent(content, 6000);
untitled-4689wikipedia.ts3 matches
1/**
2* Utility functions for fetching and processing Wikipedia articles
3*/
413* @returns The article title and content
14*/
15export async function fetchWikipediaArticle(articleInput: string): Promise<WikipediaArticle> {
16// Extract title from URL if a URL is provided
17let title = articleInput;
72* @returns Truncated content
73*/
74export function truncateContent(content: string, maxLength: number = 8000): string {
75if (content.length <= maxLength) {
76return content;
untitled-5701index.js10 matches
3738// Função principal de inicialização
39async function inicializarApp() {
40app = document.getElementById('app');
41
6970// Carrega casas da API
71async function carregarCasas() {
72try {
73casasContainer.innerHTML = '<div class="col-span-full text-center py-10"><i class="fas fa-spinner fa-spin text-blue-600 text-3xl"></i></div>';
122123// Renderiza as casas na interface
124function renderizarCasas() {
125// Limpa o container
126casasContainer.innerHTML = '';
169170// Abre o modal de detalhes da casa
171function abrirDetalhesCasa(casa) {
172const detalhesTemplate = document.getElementById('detalhes-casa-template');
173const detalhesElement = document.importNode(detalhesTemplate.content, true);
207208// Abre o formulário para adicionar nova casa
209function abrirFormularioCasa() {
210const formTemplate = document.getElementById('form-casa-template');
211const formElement = document.importNode(formTemplate.content, true);
229230// Salva uma nova casa
231async function salvarNovaCasa(form) {
232try {
233// Obtém os dados do formulário
289290// Aplica os filtros
291async function aplicarFiltros() {
292// Atualiza o estado com os valores dos filtros
293state.filtros.cidade = filtroCidade.value.trim();
301302// Limpa os filtros
303async function limparFiltros() {
304// Limpa os campos
305filtroCidade.value = '';
321322// Verifica se há filtros ativos
323function temFiltrosAtivos() {
324return (
325state.filtros.cidade ||
331332// Formata o preço para exibição
333function formatarPreco(preco) {
334return preco.toLocaleString('pt-BR');
335}
TownieuseUser.tsx1 match
3const USER_ENDPOINT = "/api/user";
45export function useUser() {
6const [data, setData] = useState<any>(null);
7const [loading, setLoading] = useState(true);
TownieuseUsageStats.ts1 match
1import { useEffect } from "react";
23export function useUsageStats(messages: any[], usages: any[]) {
4useEffect(() => {
5if (!messages?.length) return;
TownieuseScrollToBottom.tsx3 matches
7*
8* @param {Array} dependencies - Array of dependencies that trigger scrolling when changed
9* @returns {Object} An object containing containerRef and scrollToBottom function
10*/
11export function useScrollToBottomContainer(dependencies = []) {
12const containerRef = useRef(null);
132829// body scroll version
30export function useScrollToBottom(dependencies = []) {
31const bottomRef = useRef(null);
32