From 7c34ba2eb436e71be73ae666f1166e6b2eaa8093 Mon Sep 17 00:00:00 2001 From: agent4701 <90219335+agent4701@users.noreply.github.com> Date: Wed, 19 Nov 2025 19:51:28 +0100 Subject: [PATCH] Multi-user capable and integrated branding options. Multi-user capable and integrated branding options. --- .gitignore | 4 +- Dockerfile | 15 +- Dockerfile.cuda | 8 - README.md | 5 - cmd/server/main.go | 31 +- docker-compose.build.yml | 1 + docs/assets/index-CTEra42u.js | 2 +- ...m providers for chat and summarization.png | Bin 0 -> 256774 bytes go.mod | 1 + internal/api/chat_handlers.go | 252 ++- internal/api/handlers.go | 1414 ++++++++++++----- internal/api/notes_handlers.go | 164 +- internal/api/router.go | 37 +- internal/api/summarize_handlers.go | 52 +- internal/api/summary_handlers.go | 114 +- internal/config/config.go | 38 +- internal/database/database.go | 176 +- internal/models/summary.go | 17 +- internal/models/transcription.go | 129 +- .../transcription/adapters/canary_adapter.go | 14 +- .../adapters/parakeet_adapter.go | 394 +---- .../adapters/pyannote_adapter.go | 28 +- .../adapters/sortformer_adapter.go | 23 +- .../adapters/whisperx_adapter.go | 16 +- internal/transcription/quick_transcription.go | 11 + internal/transcription/registry/registry.go | 43 - internal/web/static.go | 18 + pkg/middleware/auth.go | 151 +- run_tests.sh | 33 +- ...m providers for chat and summarization.png | Bin 0 -> 256774 bytes tests/api_handlers_test.go | 21 +- tests/queue_test.go | 25 +- tests/security_test.go | 10 +- web/frontend/src/App.tsx | 3 + web/frontend/src/components/Header.tsx | 43 +- .../components/TranscriptionConfigDialog.tsx | 4 +- web/frontend/src/contexts/AuthContext.tsx | 95 +- web/frontend/src/contexts/RouterContext.tsx | 6 +- web/frontend/src/pages/Admin.tsx | 472 ++++++ web/landing/dist/assets/index-CTEra42u.js | 2 +- ...m providers for chat and summarization.png | Bin 0 -> 256774 bytes ...m providers for chat and summarization.png | Bin 0 -> 256774 bytes web/landing/src/components/Alternating.tsx | 2 +- 43 files changed, 2432 insertions(+), 1442 deletions(-) create mode 100644 docs/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png create mode 100644 screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png create mode 100644 web/frontend/src/pages/Admin.tsx create mode 100644 web/landing/dist/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png create mode 100644 web/landing/public/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png diff --git a/.gitignore b/.gitignore index fb01f17b5..3e2e4b954 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,4 @@ debug_whisperx_parsing.go debug_parsing.go scriberr-optimized tests/database_test.db-shm - -# Project documentation (local only) -project-docs +tests diff --git a/Dockerfile b/Dockerfile index 238f899b0..6935b5abd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,20 +23,23 @@ RUN cd frontend \ FROM golang:1.24-bookworm AS go-builder WORKDIR /src -# Pre-cache modules +# Pre-cache modules for better build caching COPY go.mod go.sum ./ RUN go mod download # Copy source COPY . . +# Ensure go.sum is up-to-date if go.mod changed later in the build cache chain and download sums +RUN go mod tidy && go mod download + # Copy built UI into embed path RUN rm -rf internal/web/dist && mkdir -p internal/web COPY --from=ui-builder /web/frontend/dist internal/web/dist # Build binary (arch matches builder platform) RUN CGO_ENABLED=0 \ - go build -o /out/scriberr cmd/server/main.go + go build -mod=mod -o /out/scriberr cmd/server/main.go ######################## @@ -68,14 +71,6 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | sh \ && chmod 755 /usr/local/bin/uv \ && uv --version -# Install Deno (JavaScript runtime required for yt-dlp YouTube downloads) -# YouTube now requires JS execution for video cipher decryption -# See: https://github.com/yt-dlp/yt-dlp/issues/14404 -RUN curl -fsSL https://deno.land/install.sh | sh \ - && cp /root/.deno/bin/deno /usr/local/bin/deno \ - && chmod 755 /usr/local/bin/deno \ - && deno --version - # Create default user (will be modified at runtime if needed) RUN groupadd -g 1000 appuser \ && useradd -m -u 1000 -g 1000 appuser \ diff --git a/Dockerfile.cuda b/Dockerfile.cuda index c91ebacc4..24a4d6ab8 100644 --- a/Dockerfile.cuda +++ b/Dockerfile.cuda @@ -71,14 +71,6 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | sh \ && chmod 755 /usr/local/bin/uv \ && uv --version -# Install Deno (JavaScript runtime required for yt-dlp YouTube downloads) -# YouTube now requires JS execution for video cipher decryption -# See: https://github.com/yt-dlp/yt-dlp/issues/14404 -RUN curl -fsSL https://deno.land/install.sh | sh \ - && cp /root/.deno/bin/deno /usr/local/bin/deno \ - && chmod 755 /usr/local/bin/deno \ - && deno --version - # Create default user (will be modified at runtime if needed) # Use 10001 to avoid conflicts with existing users in CUDA base image RUN groupadd -g 10001 appuser \ diff --git a/README.md b/README.md index 9240ecb8c..f5de87a30 100644 --- a/README.md +++ b/README.md @@ -190,11 +190,6 @@ See the full guide: https://scriberr.app/docs/diarization.html Diarization setup

-## Summarization (Ollama) - -Scribber uses different models from Ollama (local, open-source and free) or OpenAi (online, propietary, paid) in order to automatically summarize the transcriptions. To connect, just go to settings and introduce either the Ollama port or the OpenAI API. -A common error is that if Ollama has been installed through Docker, rather then connecting via "http://localhost:11434" you sohuld instead connect through "http://host.docker.internal:11434" (change the port to whichever you have used, automatically uses that one). That way Scriberr directly connects to the Docker, avoiding a "Failed to fetch model" error and alike. - ## API Scriberr exposes a clean REST API for most features (transcription, chat, notes, summaries, admin, and more). Authentication supports JWT or API keys depending on endpoint. diff --git a/cmd/server/main.go b/cmd/server/main.go index bca9d9922..200c2fef6 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -7,7 +7,6 @@ import ( "net/http" "os" "os/signal" - "path/filepath" "syscall" "time" @@ -17,11 +16,10 @@ import ( "scriberr/internal/database" "scriberr/internal/queue" "scriberr/internal/transcription" - "scriberr/internal/transcription/adapters" - "scriberr/internal/transcription/registry" "scriberr/pkg/logger" _ "scriberr/api-docs" // Import generated Swagger docs + _ "scriberr/internal/transcription/adapters" // Import adapters for auto-registration ) // Version information (set by GoReleaser) @@ -75,9 +73,6 @@ func main() { logger.Startup("config", "Loading configuration") cfg := config.Load() - // Register adapters with config-based paths - registerAdapters(cfg) - // Initialize database logger.Startup("database", "Connecting to database") if err := database.Initialize(cfg.DatabasePath); err != nil { @@ -161,27 +156,3 @@ func main() { logger.Info("Server stopped") } - -// registerAdapters registers all transcription and diarization adapters with config-based paths -func registerAdapters(cfg *config.Config) { - logger.Info("Registering adapters with environment path", "whisperx_env", cfg.WhisperXEnv) - - // Shared environment path for NVIDIA models (NeMo-based) - nvidiaEnvPath := filepath.Join(cfg.WhisperXEnv, "parakeet") - - // Register transcription adapters - registry.RegisterTranscriptionAdapter("whisperx", - adapters.NewWhisperXAdapter(cfg.WhisperXEnv)) - registry.RegisterTranscriptionAdapter("parakeet", - adapters.NewParakeetAdapter(nvidiaEnvPath)) - registry.RegisterTranscriptionAdapter("canary", - adapters.NewCanaryAdapter(nvidiaEnvPath)) // Shares with Parakeet - - // Register diarization adapters - registry.RegisterDiarizationAdapter("pyannote", - adapters.NewPyAnnoteAdapter(nvidiaEnvPath)) // Shares with Parakeet - registry.RegisterDiarizationAdapter("sortformer", - adapters.NewSortformerAdapter(nvidiaEnvPath)) // Shares with Parakeet - - logger.Info("Adapter registration complete") -} diff --git a/docker-compose.build.yml b/docker-compose.build.yml index 62c42f357..125e1bf58 100644 --- a/docker-compose.build.yml +++ b/docker-compose.build.yml @@ -22,6 +22,7 @@ services: volumes: - ./scriberr-data:/app/data - ./env-data:/app/whisperx-env + - ./Transferordner:/app/Transferordner:ro restart: unless-stopped volumes: diff --git a/docs/assets/index-CTEra42u.js b/docs/assets/index-CTEra42u.js index ac0e1a091..bbce048e1 100644 --- a/docs/assets/index-CTEra42u.js +++ b/docs/assets/index-CTEra42u.js @@ -1 +1 @@ -import{j as e,r as i,G as n,c as o,R as l}from"./styles-DGJLjUaE.js";import{W as c}from"./Window-BJy5jSY4.js";function a({className:s=""}){return e.jsx("img",{src:"/scriberr-logo.png",alt:"Scriberr",className:`w-auto select-none ${s}`})}function d(){const[s,r]=i.useState(!1);return e.jsxs("header",{className:"sticky top-0 z-40 bg-white/80 backdrop-blur shadow-soft",children:[e.jsxs("div",{className:"container-narrow py-4 flex items-center justify-between",children:[e.jsx("a",{href:"#",className:"flex items-center gap-3",children:e.jsx(a,{className:"h-8 sm:h-10"})}),e.jsxs("nav",{className:"hidden md:flex items-center gap-6 text-sm text-gray-600",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",children:"API"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Menu",onClick:()=>r(t=>!t),children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:e.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),e.jsx(n,{})]})]}),s&&e.jsx("div",{className:"md:hidden border-t border-gray-200 bg-white",children:e.jsxs("div",{className:"container-narrow py-3 flex flex-col gap-2 text-sm text-gray-700",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"API"})]})})]})}function m(){return e.jsx("section",{className:"relative",children:e.jsxs("div",{className:"container-narrow section text-center",children:[e.jsx("span",{className:"eyebrow mb-3 inline-block",children:"Self-hosted offline audio transcription"}),e.jsx("h1",{className:"headline flex justify-center mb-4",children:e.jsx(a,{className:"h-16 sm:h-20 md:h-24 lg:h-28 xl:h-32"})}),e.jsx("p",{className:"subcopy mt-3 mx-auto max-w-2xl",children:"Transcribe audio locally into text - Summarize and Chat with your audio. No GPU Required."}),e.jsxs("div",{className:"mt-8 flex items-center justify-center gap-3",children:[e.jsx("a",{href:"/docs/installation.html",className:"button-primary",children:"Get Started"}),e.jsx("a",{href:"#features",className:"button-ghost",children:"Learn more"})]}),e.jsx("div",{className:"mt-6 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",onClick:s=>{s.preventDefault(),window.open("https://ko-fi.com/H2H41KQZA3","_blank","noopener,noreferrer")},children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})}),e.jsx("div",{className:"mt-12 max-w-5xl mx-auto",children:e.jsxs("div",{className:"rounded-3xl shadow-soft overflow-hidden bg-white hover-lift",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[e.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),e.jsx("img",{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage",className:"w-full object-cover"})]})}),e.jsxs("div",{className:"mt-6 flex items-center justify-center gap-4 text-xs text-gray-500",children:[e.jsx("span",{children:"Privacy preserving"}),e.jsx("span",{children:"Mobile ready"}),e.jsx("span",{children:"Fast and responsive"})]})]})})}const h=[{title:"Precise transcription",desc:"Tweak advanced transcription parameters to get the best quality output"},{title:"Built-in recorder",desc:"Capture audio directly in-app and transcribe instantly."},{title:"Summarize & chat",desc:"Extract key points or chat over transcripts using LLMs."},{title:"Lightweight notes",desc:"Highlight, annotate, and tag important moments as you listen/read."},{title:"Speaker diarization",desc:"Identify and label distinct speakers in your audio."},{title:"Profiles & presets",desc:"Save configurations for different audio scenarios."}];function x({name:s}){const r="size-4";switch(s){case"Precise transcription":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M12 3v10a3 3 0 1 1-6 0V8"}),e.jsx("path",{d:"M19 10v3a7 7 0 0 1-14 0"})]});case"Built-in recorder":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("rect",{x:"9",y:"9",width:"6",height:"6",rx:"3"}),e.jsx("circle",{cx:"12",cy:"12",r:"9"})]});case"Summarize & chat":return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:e.jsx("path",{d:"M21 15a4 4 0 0 1-4 4H7l-4 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"})});case"Lightweight notes":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M9 7h6M9 12h6M9 17h6"}),e.jsx("rect",{x:"5",y:"3",width:"14",height:"18",rx:"2"})]});case"Speaker diarization":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("circle",{cx:"7",cy:"8",r:"3"}),e.jsx("path",{d:"M2 19a5 5 0 0 1 10 0"}),e.jsx("circle",{cx:"17",cy:"10",r:"2.5"}),e.jsx("path",{d:"M13 19c.5-2.5 2.5-4 5-4"})]});case"Profiles & presets":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M6 3v12"}),e.jsx("path",{d:"M12 3v18"}),e.jsx("path",{d:"M18 3v8"})]});default:return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:e.jsx("path",{d:"M12 6v12m6-6H6"})})}}function p(){return e.jsxs("section",{id:"features",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Capabilities"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"Key Features"}),e.jsx("p",{className:"subcopy mt-2",children:"Curated set of features to manage and work with transcripts."})]}),e.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:h.map(s=>e.jsxs("article",{className:"rounded-2xl p-6 bg-gray-50 shadow-soft hover-lift",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[e.jsx("span",{className:"inline-flex items-center justify-center size-9 rounded-xl bg-gray-100 text-gray-600 shadow-subtle",children:e.jsx(x,{name:s.title})}),e.jsx("h3",{className:"font-medium text-base md:text-lg text-gray-900",children:s.title})]}),e.jsx("p",{className:"subcopy",children:s.desc})]},s.title))})]})}const u=[{title:"Transcript view",desc:"Minimal reading experience with timestamps with playback follow along that highlights currently playing word.",img:"scriberr-transcript page.png",bullets:["Jump from audio timestamp to corresponding word","Jump from text to corresponding audio segment","View transcript as paragraph or as timestamped/speaker segments"]},{title:"Record right in Scriberr",desc:"Capture audio directly in-app and transcribe",img:"scriberr-inbuilt audio recorder for directly recording and transcribing audio within the app.png",bullets:[]},{title:"Summaries at a glance",desc:"Turn long recordings into brief, actionable summaries you can scan in seconds.",img:"scriberr-summarize transcripts.png",bullets:["Write your own custom prompts for summarization","Supports both Ollama/OpenAI (needs API Key) LLM providers","Save multiple summarization presets to reuse quickly"]},{title:"Annotate transcripts",desc:"Highlight important moments, jot down concise notes, and keep insights attached to the exact timestamp.",img:"scriberr-annotate transcript and take notes.png",bullets:["Highlight text to add a note","Timestamped notes allow jumping to exact segment"]},{title:"Advanced controls",desc:"Fine-tune model settings, language, and diarization for optimal results",img:"scriberr-fine tune advanced transcription parameters as you see fit to improve transcription quality.png",bullets:["Language hints and temperature","Diarization and VAD options","Profiles for repeatable setups"]},{title:"Bring your own providers",desc:"Use OpenAI or local models via Ollama for summaries and chat — your keys, your choice.",img:"scriberr-Ollama openAI llm providers for chat and summarization.png",bullets:["Works with OpenAI or Ollama"]},{title:"Export transcripts",desc:"Download your transcripts in multiple formats",img:"scriberr-download-transcript-in-different-formats.png",bullets:["Export to TXT, Markdown, JSON","Keep timestamps and speaker info"]},{title:"Chat with your transcript",desc:"Ask questions about your recording, extract insights, and clarify details without scrubbing through audio.",img:"scriberr-chat-with-your-recording-transcript.png",bullets:["Works with OpenAI or Ollama"]},{title:"API keys and REST API",desc:"Manage API keys and use the full REST API to build automations or integrate Scriberr into your own applications.",img:"scriberr-api-key-management.png",bullets:["Secure API key management","Endpoints for transcription, chat, notes and more"]},{title:"Transcribe YouTube videos",desc:"Paste a YouTube link to transcribe the audio directly — no downloads required.",img:"scriberr-youtube-video.png",bullets:["Grab insights from talks, podcasts and lectures","Works with summarization and notes"]}];function g(){return e.jsxs("section",{id:"details",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Details"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"A closer look"})]}),e.jsx("div",{className:"space-y-16 md:space-y-24",children:u.map((s,r)=>e.jsxs("div",{className:"grid md:grid-cols-2 gap-8 md:gap-10 items-center",children:[e.jsx("div",{className:r%2===0?"order-1 md:order-1":"order-2 md:order-2",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl md:text-2xl font-semibold text-gray-900",children:s.title}),e.jsx("p",{className:"subcopy mt-2",children:s.desc}),s.bullets&&e.jsx("ul",{className:"mt-4 space-y-2 text-sm text-gray-600 list-disc list-inside",children:s.bullets.map(t=>e.jsx("li",{children:t},t))})]})}),e.jsx("div",{className:r%2===0?"order-2 md:order-2":"order-1 md:order-1",children:e.jsx(c,{src:`/screenshots/${s.img}`,alt:s.title})})]},s.title))})]})}function f(){return e.jsx("footer",{className:"mt-8 bg-gray-50",children:e.jsxs("div",{className:"container-narrow py-10 text-center text-sm text-gray-700",children:[e.jsxs("p",{children:["If you like Scriberr, consider giving the project a star on"," ",e.jsx("a",{href:"https://github.com/rishikanthc/scriberr",target:"_blank",rel:"noreferrer",className:"text-blue-600 hover:text-blue-700 underline-offset-2 hover:underline",children:"GitHub"}),"."]}),e.jsx("div",{className:"mt-4 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})})]})})}function j(){return e.jsxs("div",{className:"min-h-screen flex flex-col",children:[e.jsx(d,{}),e.jsxs("main",{className:"flex-1",children:[e.jsx(m,{}),e.jsx(p,{}),e.jsx(g,{})]}),e.jsx(f,{})]})}const b=o(document.getElementById("root"));b.render(e.jsx(l.StrictMode,{children:e.jsx(j,{})})); +import{j as e,r as i,G as n,c as o,R as l}from"./styles-DGJLjUaE.js";import{W as c}from"./Window-BJy5jSY4.js";function a({className:s=""}){return e.jsx("img",{src:"/scriberr-logo.png",alt:"Scriberr",className:`w-auto select-none ${s}`})}function d(){const[s,r]=i.useState(!1);return e.jsxs("header",{className:"sticky top-0 z-40 bg-white/80 backdrop-blur shadow-soft",children:[e.jsxs("div",{className:"container-narrow py-4 flex items-center justify-between",children:[e.jsx("a",{href:"#",className:"flex items-center gap-3",children:e.jsx(a,{className:"h-8 sm:h-10"})}),e.jsxs("nav",{className:"hidden md:flex items-center gap-6 text-sm text-gray-600",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",children:"API"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Menu",onClick:()=>r(t=>!t),children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:e.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),e.jsx(n,{})]})]}),s&&e.jsx("div",{className:"md:hidden border-t border-gray-200 bg-white",children:e.jsxs("div",{className:"container-narrow py-3 flex flex-col gap-2 text-sm text-gray-700",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"API"})]})})]})}function m(){return e.jsx("section",{className:"relative",children:e.jsxs("div",{className:"container-narrow section text-center",children:[e.jsx("span",{className:"eyebrow mb-3 inline-block",children:"Self-hosted offline audio transcription"}),e.jsx("h1",{className:"headline flex justify-center mb-4",children:e.jsx(a,{className:"h-16 sm:h-20 md:h-24 lg:h-28 xl:h-32"})}),e.jsx("p",{className:"subcopy mt-3 mx-auto max-w-2xl",children:"Transcribe audio locally into text - Summarize and Chat with your audio. No GPU Required."}),e.jsxs("div",{className:"mt-8 flex items-center justify-center gap-3",children:[e.jsx("a",{href:"/docs/installation.html",className:"button-primary",children:"Get Started"}),e.jsx("a",{href:"#features",className:"button-ghost",children:"Learn more"})]}),e.jsx("div",{className:"mt-6 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",onClick:s=>{s.preventDefault(),window.open("https://ko-fi.com/H2H41KQZA3","_blank","noopener,noreferrer")},children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})}),e.jsx("div",{className:"mt-12 max-w-5xl mx-auto",children:e.jsxs("div",{className:"rounded-3xl shadow-soft overflow-hidden bg-white hover-lift",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[e.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),e.jsx("img",{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage",className:"w-full object-cover"})]})}),e.jsxs("div",{className:"mt-6 flex items-center justify-center gap-4 text-xs text-gray-500",children:[e.jsx("span",{children:"Privacy preserving"}),e.jsx("span",{children:"Mobile ready"}),e.jsx("span",{children:"Fast and responsive"})]})]})})}const h=[{title:"Precise transcription",desc:"Tweak advanced transcription parameters to get the best quality output"},{title:"Built-in recorder",desc:"Capture audio directly in-app and transcribe instantly."},{title:"Summarize & chat",desc:"Extract key points or chat over transcripts using LLMs."},{title:"Lightweight notes",desc:"Highlight, annotate, and tag important moments as you listen/read."},{title:"Speaker diarization",desc:"Identify and label distinct speakers in your audio."},{title:"Profiles & presets",desc:"Save configurations for different audio scenarios."}];function x({name:s}){const r="size-4";switch(s){case"Precise transcription":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M12 3v10a3 3 0 1 1-6 0V8"}),e.jsx("path",{d:"M19 10v3a7 7 0 0 1-14 0"})]});case"Built-in recorder":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("rect",{x:"9",y:"9",width:"6",height:"6",rx:"3"}),e.jsx("circle",{cx:"12",cy:"12",r:"9"})]});case"Summarize & chat":return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:e.jsx("path",{d:"M21 15a4 4 0 0 1-4 4H7l-4 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"})});case"Lightweight notes":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M9 7h6M9 12h6M9 17h6"}),e.jsx("rect",{x:"5",y:"3",width:"14",height:"18",rx:"2"})]});case"Speaker diarization":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("circle",{cx:"7",cy:"8",r:"3"}),e.jsx("path",{d:"M2 19a5 5 0 0 1 10 0"}),e.jsx("circle",{cx:"17",cy:"10",r:"2.5"}),e.jsx("path",{d:"M13 19c.5-2.5 2.5-4 5-4"})]});case"Profiles & presets":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M6 3v12"}),e.jsx("path",{d:"M12 3v18"}),e.jsx("path",{d:"M18 3v8"})]});default:return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:e.jsx("path",{d:"M12 6v12m6-6H6"})})}}function p(){return e.jsxs("section",{id:"features",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Capabilities"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"Key Features"}),e.jsx("p",{className:"subcopy mt-2",children:"Curated set of features to manage and work with transcripts."})]}),e.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:h.map(s=>e.jsxs("article",{className:"rounded-2xl p-6 bg-gray-50 shadow-soft hover-lift",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[e.jsx("span",{className:"inline-flex items-center justify-center size-9 rounded-xl bg-gray-100 text-gray-600 shadow-subtle",children:e.jsx(x,{name:s.title})}),e.jsx("h3",{className:"font-medium text-base md:text-lg text-gray-900",children:s.title})]}),e.jsx("p",{className:"subcopy",children:s.desc})]},s.title))})]})}const u=[{title:"Transcript view",desc:"Minimal reading experience with timestamps with playback follow along that highlights currently playing word.",img:"scriberr-transcript page.png",bullets:["Jump from audio timestamp to corresponding word","Jump from text to corresponding audio segment","View transcript as paragraph or as timestamped/speaker segments"]},{title:"Record right in Scriberr",desc:"Capture audio directly in-app and transcribe",img:"scriberr-inbuilt audio recorder for directly recording and transcribing audio within the app.png",bullets:[]},{title:"Summaries at a glance",desc:"Turn long recordings into brief, actionable summaries you can scan in seconds.",img:"scriberr-summarize transcripts.png",bullets:["Write your own custom prompts for summarization","Supports both Ollama/OpenAI (needs API Key) LLM providers","Save multiple summarization presets to reuse quickly"]},{title:"Annotate transcripts",desc:"Highlight important moments, jot down concise notes, and keep insights attached to the exact timestamp.",img:"scriberr-annotate transcript and take notes.png",bullets:["Highlight text to add a note","Timestamped notes allow jumping to exact segment"]},{title:"Advanced controls",desc:"Fine-tune model settings, language, and diarization for optimal results",img:"scriberr-fine tune advanced transcription parameters as you see fit to improve transcription quality.png",bullets:["Language hints and temperature","Diarization and VAD options","Profiles for repeatable setups"]},{title:"Bring your own providers",desc:"Use OpenAI or local models via Ollama for summaries and chat — your keys, your choice.",img:"scriberr-Ollama:openAI llm providers for chat and summarization.png",bullets:["Works with OpenAI or Ollama"]},{title:"Export transcripts",desc:"Download your transcripts in multiple formats",img:"scriberr-download-transcript-in-different-formats.png",bullets:["Export to TXT, Markdown, JSON","Keep timestamps and speaker info"]},{title:"Chat with your transcript",desc:"Ask questions about your recording, extract insights, and clarify details without scrubbing through audio.",img:"scriberr-chat-with-your-recording-transcript.png",bullets:["Works with OpenAI or Ollama"]},{title:"API keys and REST API",desc:"Manage API keys and use the full REST API to build automations or integrate Scriberr into your own applications.",img:"scriberr-api-key-management.png",bullets:["Secure API key management","Endpoints for transcription, chat, notes and more"]},{title:"Transcribe YouTube videos",desc:"Paste a YouTube link to transcribe the audio directly — no downloads required.",img:"scriberr-youtube-video.png",bullets:["Grab insights from talks, podcasts and lectures","Works with summarization and notes"]}];function g(){return e.jsxs("section",{id:"details",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Details"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"A closer look"})]}),e.jsx("div",{className:"space-y-16 md:space-y-24",children:u.map((s,r)=>e.jsxs("div",{className:"grid md:grid-cols-2 gap-8 md:gap-10 items-center",children:[e.jsx("div",{className:r%2===0?"order-1 md:order-1":"order-2 md:order-2",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl md:text-2xl font-semibold text-gray-900",children:s.title}),e.jsx("p",{className:"subcopy mt-2",children:s.desc}),s.bullets&&e.jsx("ul",{className:"mt-4 space-y-2 text-sm text-gray-600 list-disc list-inside",children:s.bullets.map(t=>e.jsx("li",{children:t},t))})]})}),e.jsx("div",{className:r%2===0?"order-2 md:order-2":"order-1 md:order-1",children:e.jsx(c,{src:`/screenshots/${s.img}`,alt:s.title})})]},s.title))})]})}function f(){return e.jsx("footer",{className:"mt-8 bg-gray-50",children:e.jsxs("div",{className:"container-narrow py-10 text-center text-sm text-gray-700",children:[e.jsxs("p",{children:["If you like Scriberr, consider giving the project a star on"," ",e.jsx("a",{href:"https://github.com/rishikanthc/scriberr",target:"_blank",rel:"noreferrer",className:"text-blue-600 hover:text-blue-700 underline-offset-2 hover:underline",children:"GitHub"}),"."]}),e.jsx("div",{className:"mt-4 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})})]})})}function j(){return e.jsxs("div",{className:"min-h-screen flex flex-col",children:[e.jsx(d,{}),e.jsxs("main",{className:"flex-1",children:[e.jsx(m,{}),e.jsx(p,{}),e.jsx(g,{})]}),e.jsx(f,{})]})}const b=o(document.getElementById("root"));b.render(e.jsx(l.StrictMode,{children:e.jsx(j,{})})); diff --git a/docs/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png b/docs/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png new file mode 100644 index 0000000000000000000000000000000000000000..4c925fec011700f25e001f88843c1a90e90e90f9 GIT binary patch literal 256774 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 z z|M7$wD!P}u?S_r`B2t2}2h=wL#_zxS` zQ=oA9${_NL9x z)vajiJhTM@<_rwgDcbojspp%~YpHSBXzGH|iQ}?AdyVDUC|h9kF!*49`M?Q~Hui6zdBkjD%h3;jnFOy( zoxj-dg$f}*?imcZaLW1beDS52X7q}Hm<`qS2#V!t?gaJG&PaS1WtELIw`2c{3&1Lr zvSKQF%{jkV>Uy~48TX-RFgf$zGGg_f<{G!ehplE>#h%6L5vMLd zhC%=wDf`9#CpOfAnmHNzgCQJW1U^Ej5QCdJ-=GvFO$G&LCa;g8O2qzpze%ofyDT{` z&kaER;RyQD=`!VRuk6ioYsuJUZ1KHLN++V9vNAj!SXtzI?M!;7hQ%m5T&U6DdRTlIL2_Mob&L4hE zqqoh#QTH@}r#UKayp4W8g8He-Jv_QQBWwBF%aIaf@qrN2-&|A;n5kez&~ccXymui$ zThxC}BMq3@t1ax`KBuRFj#gL8#f=JcVH+86g zq>b;+G&}MOkzJ#GN1J^Vc@MV|xG$>p_^jQBt3$Ye>aAfyW3|KE1+!WCE-hzN-%Mgn zgUvgjfWm3BOoxk3ey=PmNI4V+83kyJX8;#x`g)l|^pRj1@I5Oh*uQ=UPS5Jti4&Sb zN7%On3Mi!SGThre;Rb%6LJ$U;cE_ksFj86%XYPO%GVmO(u#*~Yyy+cC_Fmd313*_< zup|B>1ZVJp(kSn`v;fZhc&pBrBh}c#OTQ%TA{<2+3sAk$M;NCbT2g2HBWx2%R0jP{R_6gt1n7H+4pjp~~BBN{ltxyyVIXkp$F z**ObxouPZU!su&%tjPhd)l4q;-p?K)B|>#%Xa&HN5~jtw6RkOUl!jlI(r$}Vm8xNX zE1G+Ae7kh~u@dU@Rf}G~?+li9mI7AOAj{ds=g2MN>y>ASbK2e}sk1a-I|iRN17eu{ znG4HL)O-uuZdroeurEUm6jv_;*lgrXhvohX{L40AvGsKa5rmJH&O+b;IdFt(!tE45 z(VDKtgx|;;0x^7tT0X_5SDd6_L9b+z8*GuAndzT!d!sn%rVab1>NmEl`LbB#Tw~IO zabUdcoZQn!7FW(aN)UKc6YpylW`CikwNjn1SAMWvE_0+Q-7JjMQK3Fme#`1KrD5~w z-nVb9zp`neg+9au3t867^@-LBrdxSv8{q6FDI^qB&jB5af$Bx2ayHUoy z^;J!Va*9^{E;xU#=|y;UAwg6@E4Pkv%w@v`IsY~d3w#4mT8rvV%9CrR(>fH_!kRfj zXU+J^ru4U^<$cm}wJ)|!%L%XeG}`?{IoO-T%z~`VKLlhBHlq(dpp%T2CJxi)S4oIO zZ@@q#GrraBoeJ1!nnWfQDAs~nKXIkewYy6K_=HSgkunIkfHKrW4wc~#sv?h_Z9>!7 zM!zeih4`uh3XY{rrM~+xbuE4NM!^sOSd0*qcE2;HDQ!Mg0v~g85*!6$C$ZOQtJp_5 zAVZ7(T)Ahdy$DTZ6+`#0EXu0v@b(?oA)#-)>qm&GRSlL4=$mENDS@`(b+qL+#`1B% zZ}z~qZ4x>@?TBG}y|XBid)5dg;PBtkIat%_Do|W6+VG?=jrU2Ud{hf+0DE4Pxh~rD zl=gy$uIXlyweLLoyFUwS3Vllzr%!+G#Q_SgXPu{byKbK-q7d-wDfj5;kFzy`&RVm= zF|V^I0}vQ2F9Ll@pOP5$(KFJ+AS1BQ@g*nk`W3ITKK)MUvJcL*I$HIlT%ON%UsmJd zI~8Xj9`jDKxcx=kmolsLheS$u-En^fgyi-*0tqQ?YWzA^PXAY{P=@51$F`fbKbIxr zvo8V(=H|l!AMec4`8E-vatS$PiDw4u!mNB+87f4scu`Iy9JzhiFUAG#ud0azg!-&+ z+stI`wq;e>AgA{#kY)(uR6k_K{rxEcrP}?k_Eh$uGiuZI)6l>5DwC#9Z-hnv;OCOt zF0lC^xVJtk^Zc`q4p&oRKXS6d$WXqqq_qE#(a2p^@AU zF=z|Qf1BbvPm<$lmi?D~WdW=C5@9M5RFwvAtft@`BuWus6&<=>`1upOcV$99^I?uC z1Xr<8T+Hd8$1&&Kw|+sD_WG2FyP%c5gP#F;5K1S-8@22^?i*?_GGvR=)Led^i!WKZ zMO^B-So7zW8Df^JT{ znQ(ctaV4P~U87pC46>E9we}$`DnuR6SUCp#0v5bG0yx7}KDK21(cfMU!Buy0F3?;!6@S2_Y``SF zUMX^JqcRCwa>32If16`Qpk=R9!jnO#kLWQc;{hnQ9cx_YZeB~l<9S4PEEmp_IKpN{ zoP9c2ZVM?$Mt;sl9}wg=SkZ*jpQ#YXkz0|#b@Tk9Kn%JlVa$e0*6&E$DrgR){Ki`0 z%A&1OeMSPTSl^=b_V!wV60u=My1e#N*=qf6c;IIEQiZEw^4!xD1^_USD`H~#RzbyX z=AvTy+$8Kv=erGxd*Wv^IoNPM7;M<;a&~f*Ff%o=#3|TtkME3;%PP{c_J*>EHW8b~ z(=X~qQa~;v#4I_biXsXlPlwH4ZM_f6K6@$|ZvO-;2z*weqx zOAf1Z8z(GjF?pk;JF<0p?$cK-YfF>VEv}AFf_!UAcX;h;)5_H@;9FX=8YC|(TVW}2 zf)55nR*i2#RC;MFiZ4d|hz5Hvr4%yqu1#mJUq^(gHU85#)}H-N+-~RBB^#rZ@__Z? zE=nK}HJciqsV_Kld5%)lBb0_8<*a=xZX0F#B=sjzUode3O+EDR?(_FBj&L&AH^cfJ z*ZQBNi^a|8vge?FSRxQi!M-f{^S4w?jm5kkKaP3mBKgoPglRS*10Oz3_EsSSxTX|Bv8$PMgqiAQJ;zHV-eO7Mp@h!(>|B*a-}MZzdPF!4(e z6rd%&he89OW-ZS9GtM%Ey21B%90PKE>V=M!$|feB0wQ)W6i@{UY1KScYsxEaIsuhi zGqO!X-Sr#q%Za0F`Ld2r9U9j#qSD}iXVeHwBiGlskdTt3kg11{C1p?-srm-I!loh6 z8uWv&Ua;jOHYPIz=7zS{BW|$?474VE514oQqm@as?Wx@c#W`2ErYPq!`o@G0q>WDT zcc82xtq7enHW$(~B{xWv5?NW+q&l^ScnRTmDsWWwER=b@k(-3wup8UG(G~_AM&)Ti zt@;=9-7bj;;VbXIN0SB} z)q3;l+UlFkZ4Y^o)UviZZHIpcx;xRHcTx5oS3mMNtl}Jcen*eKIsCn{AGv-U+b=Zx zMYhpZ;fDE;1@@Kx{)|PM?aR?L4ffI6aEnP!f?XDyo25w6sOp*IIO|KWm!=%;v)8<9 zHR791C>}PKn&r}ON*p#<(W6})-JfIJ+ zVKXNpoRtAMXP4Z)Etp|IPPHmCNUo74vRkp#81(pdiSKF}V8;EbdQn0`R2-=|0}=)V z*Vojgf*#?7>J~hEuFY-T_M|Vc+|iIF{XvMiY2H zJX4Zdk)*nFEJpkF zwX3N%J_ybv%;Hr~o+1WVM!)FpCsASO>cIr9lAZ52SdT5LOjA*~X}YZ-Z$DSNmbL-t zyydoF3zokr#tM%%#Hb}x;`36&;$_-4ojhyPsLQiyKDFL?`$&CQru3_3ce5>xEhE$j zPHt+mZe4rGz&~=xaDHpWxQ#sJw`vyS=`MP84n#(#zT?8n3&=+IIrS>3jc&5&tK*ng z6v*AICwnq}Yo9@LF6fCuqO#BvJjM+!@d^1_R?w!ls#B27)h5MsY$eh0wWUz}aSWbWUBzam3}KeJLnx?6kCWM>y|Z|74X z9>l4n@Gq>Rv+LRD@YjqHQV!>GR2DWPfk>XdJ0r#xs7~kh)wwr&4G8z!HfMi4C6$$K zJ2Idu&nubS=|wtr7-6533x;5By3e(AN0<{8;6bUKj#To;F$rZ^j5Z{543ATfBFp(z zkPp}u1!W6Mc0&a^237SuvLN%0c?o_Ya%ZxoeqQXmP>oFY{dp$y*Rz@Aj_@Cp#*Ua~ zHWxaMs+F~eZ`w!Z=w(XsG~%nTNI3;(*y61B`c9@zffi&+BU%u{UIzHq%1S5N#pL;7 zu6&%J)8ysaYA4i<9RLFyu~7-7(~exP2w8COP4&|hx~tLA!}?9&z<^e6 zur=Kvm+rbctho*3+*6n#R~%F^A@wO7<)fkEyz&YjNKpmy@UCpIW%)Yt7I(oeTtav`)*vt5~XnvZ2M zuC7YT%l;Wkm;ARa^^(R_~d|g zTLp&Z7F;4=E2A4a!GU}71>Ui!5_)WjUTMpA)K@J)<4jQe#nSmI{JMKN4qL{kq32w` zBhP_B#!t%|Cimpy0*f@k7XA7aJthMBI zj=S`H*NN{}E(yXH?0^*Cc%kEW-}n-&E>&A7SZI|I))wG4O7ZVmNsdCnyG6VjF`96y z>zV5%w(mvuhMDCLI)!wk+Pvh$d(PJJCs*ZB59ZOJ==~PX`p}Ky{H2(VhGCGa;{*D|G&oGyDSR11PN&GcVPVfJl}rwN zhq`*vrWW7*Fdm)xV8+sk;L|7OK)Q6+prHj%d8A zQ{jg6aaKo58EMy=tYo&pLl7*5S!0NK^qBgOx?*&Leu(Y-<-NMrZy8}l8du2!>4sDX-UEHB*-M)x+=nu(24r~o-Jdedz`I>diV~Ln0+@}rH5LS@ zs@BkPAw^90mDH&j|-QM&WoEbP&Ijla_mZ~e@9-hNwM zSHf!0dWo46@=IIRruL()<{uuIBy@OC)ivBxLz83q_EjG55((-)N4~y-_I@h*Lzss6 z!msoyZPp69psFLuvz@6?vCQfAM4^w*&#$hDiAi+w>I-Z7i}_shW@%=t@XN_mJFKIL z=t-SWd%8x5IT7Qc6x+OY&987?Zzh=8&no_`03})EKfMVEB*&xFOzDrVrWvDBgPbtF7FnL9jQ8bL-MG6@n^*NFa7HrACp7bpgmXXk3ORgK?Mx6t z=p(*eq3I*Wz8e_*2ZE{s)1GjNGaPjSV~`Ks*y3vyjliSzo_(}zR)>6QQmF|i2k0lZ zRdtU>&5L77;vam4N^y*irb*m!t(Bd&*lU=DmNWSYlY1WSg3vlCX<+2$6daju&DQSk zk31?0TJrCesr2Hw1)FqQv}KwkeKK*&ns89fmUMwbJ#@xq8{;$SJC-#R(+pvJ1}HC0 zn3XR|M?K~~>FHsx?`2AVI!Uq6;!jn1L#z?4Uuc}55w$bj!O(t*W2wlx^r>#$I>j*m zYFlgGJ!_N4iO1QAyU3x|`my!0YTK_3(VoOQN%AD)Kn&U!MhY)#?!?Ne+@d=N`vrrO z6mBPn9ACp`sCA50dd5veMxSIc3xt z?vzxQO3i@@C}u2sl-W`lWIZHa6IXd3rwwtO} z9jFVAje2pQ=AI0Z}^0e2*r&cM2ZYHy~ z1^uf0Pw(??Jo5-&Xj8-wi^=BQaPX>+zPgY~>2so$sfa9*y0o|ZI||@p99aEprMKtz z4f4a^>fhoUz=llw?h$#Zmy&D&o^P^lulVel#gZY{wXI#$iCfd|2rBAr z(U|eBNJQqCblggPg28u8&8OWBK5hg(>E&JeX*>c(2ZLnI4&5ltS>*~$svpJp-w_4n z0jYyvmn>+=`zV|dwLTya=zGC##Nj`2+&xP`e2s=l|m8!}o9k2OKvnmeA~-?D!m@P{w;6x#Tvx)TTcbGBl_p!` z$%K5E_@${OGi6q941MRgPq*kCXmeT0_-RowAu{#b$(3edTP5KGzEfAYYu82zOxt%A zC%{3fCW*MO(6?*!8B2VEeB^ccfpt4bT8C}`A72o^O8RMnJwcC`*~9QgAU# zYHd4@QsRIUT4`VuHzdD-Cu&`kB)6{ki4~Hry%NAb&&gwCO1=?OcM@Txs1*>_QD_aY-sb&9@yX=D8Xi6qf@4vqFMA=w%a^^HO` z=$k!#GBrU`T4X zShBB{2~X0?oQEe7$YkGkfFBU=dSqLvP0z1EPKW#<97;3vgkH4ol?_Q2P%PZv`8a(L z>AU=OWv)_^gIqPQ@fj(x1oU7;OQTVLjDOk!y|bEaaRl!U3k$kh~y`59Y4vE3@?j<1iuoAx!F>KU2@dGjrd#>g^CSGKm@fun)_VS`Dn3n6q!+dqNv+; z`bizuVCMXp24j47qC<*o@eMt1g_e;0j^F)#q`J4)ph@Uy`1RCJeby~2T|C_J60vLN zjo~Zyp3(Nin{#!|atnEBtJGP%7`Ewbs_$O;fhf@!+gQ+!#gLPHyL2kh>~xww`?m-@ zTYpF;!%(1^^KHf*{wT#44mSxa@P3c~DGa@jSt-q1i%YoUQLB_7(c)wU%M^tjd$0dB zkASl#zpXS!P`v|_dJ|v8Q>aGNICJv!3r9FSGo--ICSJvOeTj-`we28l6 zIwimLs*FqBX3scDc3O51vB4k}Uun?v{+9j2-W|`1>?UaMqXumuk(3Bs(mb&h)ZBt7U&wqOx^^7CY z0(9J~v3@|UzVc<+d>BIa@$+5cvw4C40@C=()ooyAU`Y<=jCaHlYo7g4yps^w2}*{P~8grLRT$j--0LQ0h-cy-`8k5-Qu)`)3&IGQkh5lA_Rd+TiYiy1^QD8U$m z%|J?%#N(0Y5zDQLQQ1|+U|yuFF0G7LV7wYpp(JY618u=XvQUQ^w<1LG{CF0AA)PKrnSXbw%|t1d<<9F=%GpU@HOcs(bTJzuWzQzdW&~l05>4ityAuC`)vG*s-O! z_L|wT)mdb@zNsyjbipPARfk`HS6X#m6!$zg1Xj6dd9ZF-Q%b*DcT)JmtYV7i7bZ;( z&-3dt)cLpW@hE4X6;v(a4H5z8p9^}0my{&o7OEmOn4^KTv>@`6BCT=1iJr6TilIEn zSVQ_9xSesx9}E8cPcV6mh_(I##rF;7sb0rmiH{h4#D#VGiQ48pat{$2+}?z)$hGTn zK?fd3Gc0OhoCXy`*x7_>Z|S9(2a2HeBvsU`)h?z;_d#c$Z;V^e99-CD(L9Mn!ualqU=>U z!I~WBdn?QZho8~I}i-1Rm+boPor$O zREd_X7@tp!lkQF#6$1bCVW;Bn7dlnbPcSO3 zV1haY<5cfJ&%7EFtFN><<)8ClA*5eLr0d-%3|@0Yil)v+Fv~%Wo)9zV2X7RK*^}g)Oq44jiM-r-}E+od$>D*~j z@Y<=E_SXh(lqcpBcDE4?t6lN&PEBNm+!Bu6A#SY#3QTtsT7X@!$?2NiPfncR({fuD zTL8R+v%Y5Z7n3RA*P>F zLD*|3i|{Z2HDbP0G8_JSbov;= zO@2k>FErJ}ETJwt_Qr`+TBhW0()Qw*l1ihxX=&~4=&Fxe|!=oWx z6+@%1wAB2pz=>Y|CU4=VYXzG(Te(r^I8yz#TNpRa@u^aZ$GoE%y&cpSBpW=B@e@%E z05vh3`8?!dYGn?xJ?$)1jE^AaiL^O4JS}?A6|B{5cj!qnYW$D9Yl>OBteq-lUn|i3_tNK?DS^Kt0;OuTY z!<4BpaXW5G5T;4!+hWpzS(7P6*^Tw=K#6?RoZI>%*?QvgoCe74LYj76;VrCI%pKxYYpfaBb47ekMaU=1T4btjp>x%rs5-#A!{McqO#}(WWl?SkBy52^T$*$RCy5GsQPkJv9I(pI^bE$y_9V{cPM6MP z2_RkUvq3Da@rnAV$CvHdCY+TP<0I#-DI(xPL^n%-Mpth`g_v8ca9ix#|L%9M0V2HY6 z)h-S-nwPHR-)7c?Y>nPWH@8!B@{POwd>vj*PNcp!2;C-lTK9oyK0HcmGI+`rKcbCzpISN9yL9tfX}M(CV2j>CIC$vhedPf6~4EQ<;C32}qXDUuAnD@~uD(keIQFeq9q$~%?)v}$mZIHi@rrRKp$}G3)>-#i#7W#^oNita zLVn?aNnaI38u;WSIM}9pN@k)={1ZJ26o^H&pa7*eR{fv=C&Y~)H^wD~){>{o8JENg z#lPT#8GT}#yBM*tnJOCXWWjNPqCimh+xFIC{~ftfl4TW!=Hi>Kf#8UIm{Go?F6wlb zaKAh~Ii;0aI(S|9Amg)@<*2=cMvMMtbUI~BG% z-72Vim_g~Afg99or2zWPbL6vOaRag!3_6TO^_`Q)2HHpk$zv?8+4%7d97@(hh4p~G z>%y;+&hW;g-Fj>lS5q`_kfrebp^C$bCJIzE55Ql4w)KIJFN)PS%x5x{6Bz}`8NAL? zn_)w54)D{sjIg;Ss&_={le&anA&$s*H-0G?<`BpE;%bnd{uqqHRLWZv`>0#;_-_a(W|7ZY17Z(f7!AF$ci+ zX2IYp7{CGcC7!KaFLfrG0R&&e%{%tU;H-wb&9~|*JI@vKVR-C&oDnHaambCNBM~eP zam^i7yB8DTZ7I_oA4=3Nc^q(jk|2$DnY&W^E z9yyu*Y&QRRHNS4AF_JQvn|`=|IvUKvoPRtkf~b zLz|yxcFo31-N!&M_yq?^VLBCg+5!)*2lOlf884fu`5qN!lEge95lS;F77&g0U$k?* zT0CM5lsrJ!jC(}T=I(k0B;p2IC-c3e@FV0m^!Dqu5ID)!e0?`y5c^~R+fi=d(+3{( zhd8<9M~d$g&Jb?|GEYyjeAT}X6!ZZ&_VLr@cU_~n4KO4$13dcUdIsziJF<_0BH4nT z0+qZ2KvV%BuSQf9NN?u;T0u=m{)7nBA+Hj`%+OXc{Rlk~23L`B$esHnAzK<*lNuiD zp^~a;mUCU>`va5afs`ie5l-@|D?Lak2S0$+>f73o6a6zpVTPsy{0q!)z1Wf%b#ElV zWlM?K|EH>H#EN1cDDw0(vkqCJ-nY39GKW)~O6)i(%p@gT_?pN)WJ&yV zWjS6&G&Hfk&U>mc#j5H5WA8hoqDq%`6~TZ31E7e2385u}1VMr#AQ_q@O;mCgp+T~s z;3xu0&LE)yi2_Y%l7OOQ$yrn~NKTS(ZJar0zN2Tx@2&;xIh56q@ZHaMSyB;2^JEkZ|g>J(V4ymn>jQa^_1idD3l2 z@fLNyRUBuXXyfRSec-+js+!dQ&8OcOeOW!}mOBbHPz-FpvcN~O?6;>_u;YiS1D_10 zo%^4sYl>4D%`!83&o+}(%lV_|N&>@6X9;PkMC>@7l=@AfMwc^<4OoW`Ob{>2U0ta( zgc(!30tKP6VsmtdKWF}GbjZh~me@48oV_xVmo;kCq#Z0uHj)GiiwHYSgrli}a*um<+pIX->UCnt`@fBjw~`OJA9oN|{%0E`~_Vz!mB3 zYo)jx?{%#wNJ{Hgkm`fQ&d)^{``#7oFn`!<g4v?p^taopLujCg`GvT$Y8@CfpaW`2dElv+MPlwG?A=1_HEu8mw6zE zZqF3y>(L|ne2iE~?&Ypb`!>;PzMcrXFmfK;hgS)`@4WCHY_AXMHT#*e0trH|1#<5zFi{#A!`HZD}!c|4fdvBZu^~r33A6ZYQ+^ z_4!)PHZ_`*dJnO==cATyWKAEmx>xBMot1-8a!1eRe%z&0bydcdb?AX4R=1jO0?Lo} z=FQ$WB^Otr--9_o#6Qr!9krZ_aPZQFO&^#@O^1vXG7ag`x9t>KVRrC4C6S?i@^Het z&;FduVkebu5E~*Ke^r0)G6XWlUhXb1QV0oXYs9lTHhEX|z3Hq?^!HWm_?k07)^JE^@gsQ%w#WVQ)gQ8!{W#)5+8vlJwxarn?H%Q`CEIjMrOeqt>7Ak_bzpkgnbv+>6we;NmUTCa zYStP<2;_;M0v)wC_^IZI`v(a~L*t1H&uGJ&m6Xs#g8q_G7ZUMe?eaAWB002W0#FR- zN?cgyFy_m%8;Np5TR(s8)667^xo^Zgf0yjUGVf)w6^7`0w|g|yOT3X(lzzuBkcg&3 zNGRLa-cKmsHN5HBtRXEZeANdEk)o&C=I8jAOCq-rz`?G)7&xPX?*j*t_v_XeAzn`Y zbXnuriy2VzbauMC&zX%vv$7$N7K0E_tOH`li96E8_z}E9xh6=NEJ9U?`qBo%eHcb8 zp*gL0>n@#4_#d`Ko^gSXL9ZnwaQ%j(hvdoSXkKPIrMxhcix-bYs-rzvTQrOdg+m%^ zFO}dDKJaVZ@{`(ESI0puXBpVM8m;Dm=A;PCF3lWrfW< zQ&f(H#9DQ?ixznZqARWQUL|sum3&!J4lz^ZId7~W_rz<$p^Yxtgi@UHT%zK2$x0## zuSLiofr@+b)Oj}Ui-|;RL-G6afcx>U(l>BFR2^HPXjeTu6t+TXRn(EBGx3uY@>lKAM=fH;+$GK`00;kTAkaulj|hiB z-wu$DUWqtX++cc>OMJ0%Hesz+4Y<3~eP%*yU5(n~;ap)o%Ek1F5qTg|SSnfj$~Gt} zxohFI^`x0j(PWC=mj_gOo(P%9qKeHMcZY+8S}K!HFRe89Mjy8}X{rrvJlgpquv>Y$ z-1;1^OeAD4=H-`I1aN%wA~8FEZqwJkIKEGev)Q1xXG&;dVBC>C8BS?s5Zhc>-qv z^^3@g$7%MBP9JSXXQWIhzCj(b5E1DLAz@4mGQ@QC53$;-^OU+Qe?!E_M2>_Sc-^C= zTDlua70g=xguV~D7cJacYS$E7ET{E=AySr;R&lYcdOLaR9|T5UkQwSXx!M%~*OAh+ zd?Rb2n*k=NSF}Z`mTmJ3TVBciw)yc6lOv%{H=~bB?X)Modn_SzVC$XR`nyD#yY|UX zt*11))TV|~PRN|Rq%42&H_qMG4e@q$CA=Nd0QhYYp%UbWniV8I&70M#jyQPptpv3K z0@`>Zpv};C(8iEx@r0d;q}ExDV+GGF69cMD()n_BVV)fXZ03Ml^=n)#XZna2NkUrN ztr5QYJN}<3@0z0qL(f-6?x|5eiklIh&|0Zc(=M>lWYSoJ^ZSasy5Vml&u`I9GaKe8 zyG-8@=Un#b6&|k}O%{as&|IMWNg-Rpa)5rI&4HqmWTiql<@QLV$=YvM%1xT(&IyaU zFW822%b%2ueJ_3reOqe&V2AtLqc=QzkdvM#R!Ab4HpBPwaOl!y?&%h42~u9^)7l=J z=z>rw7L$#=X_x4fpw6isBu){~%XZhV+8#B5yLxqsx48--3vgu2$3+@=475<+;5}iP z_%38*eSs(WxL=Ue=GNk|L4VT9!1O-o0J_PuKDMP(!$gz=d}2=OcZ*p;=mzez*|AF_ z?6r3bte0bA=dTDP6{8Mj&8=$^F;w+c#Rc;EI2F&|WOaxow!EM~?-1h9@ph1q_*`V4 zOqc{&+x(sE`ZfxyItLM^hVc^p2dK@3CjuVLE6Dy=@GOvR?tg>cdHDZb=V?C zzYbS@Xz)IEP$j@9Xz$Z=aHOB2udPF$E=M&ww&!$fTdAFl^$%_v+s6?kRQwIUJXZa84+8L!?aMXXh;}IJMcDA{H2LZ;G{IM*S_@*w+*!(CFw9oD}-Gw z&z%l*3C$4Rjw!>CJ`%OGeYGfqYW=C-GPtltF!t`coGd(6IW(Q84d99O-c zZm3i3zIC%BLeJ{G$98+x6p6p^3N%i2vmr>r_>n+5)p|+VXBTvhP6nLrCZ_ zv(o5RT79B7!1jf(u?E$(;ip^;#?5b2zDo<7eMae3ov8`R2P`+dVq`YYvk)ixoSQ)! z8Uf)^%D7YEC|yYOn9L4gd>j`sL{tS{_ac5H>fQ^x8KCdy!hR~{Y|-O~(=I|nc(sYE z59hNe`U&ZM+Ou@!WqzQmX1_zEC!l68k?vX6?LdCy>E&sUYF&*o@i{d0RFn}GX%xEh}_SipLO%PA3QVj zak(_#!X&(6{lJhdjOFA-3fK`as=!7xvMeAn3NFy4-o3rbG7PXd{JdsIPP1b^McOo& zY&Rg5_&@_)sVvb7*ZQO**_9J6?ZX+$x+QMHNJCdzV62vouGAw%!~`{vH}$9XTx7!> zgTy>+M{OMPf7p+Mjo946fA2ZJ20l^l5&%SOe%q9{AHPd{0Wq+h!D8DD!mJRp4p*4Q zZ(j+4N2844xpioN_S}fg$ef0!A!7dC!K{gNFnhMa2oT`TkRn^B3G&|3E8Ec2pIeHz z8eD{pNQ~3>h}KxTApCc6+or!kt(k2kb%H z1!_8${@WdL|87(Mb#KT!kSso@jQiBb=%DzvgY{kulyg~K-#21B5w!LS7l3qnSSYJxLT_{%Y< z4ZdvAXZVxmcR)aharzjtA)8O`dw3AMuT1`97vfD{hwqPc7!I=#l=na%jf9^1dbY>A zkiUCT+@Ku=9dzxEk!?`}HmzcqqwHYQO{o8gX^rN;j@@qBZy)a{sNxQ{HDdYhs~z?t zE%MuqF1y7qFw(mfZh?YFjVbvcUr<++OKzL)_PD(v`1Sm5z!cJ^iU8b+Bw% zLL|+j-w=QHfbQTxj!@={_zMu@#}FS9`t}KFU)Nkt0$Cg15ca+&!=LG?41OxpQ;kS1 z6th;Y=!dhW`+=egB8d}j9v=+Xg54xaye-m{meXLm>uk|gl)<-XPMYj}blZ389=0#x z(R<=SBjduwXmCU;q&P&#<>%rsVIqLH9+H#P%R;zf1L=qgM1VzS^R|DCJ@2Wf@e zmOaYL4}{@xB{Ve*AgRNa3Z?ef4%>1jHpgzrqsBNA$zaz7R9ylgvaR#!{tuJhHiQVj9ts$~sB3-D#ZDC{!ews6K|GZy`?F zE2Zwkq)Yd^Ra&7C`JNmY`D<^KUb_t0<>&0giF}Zi(xq6^KfZnE|MOQ@=@o#Hs_GC0 zLK7jd8zQq|q7e_0Fdm#}$&{WpM}GJsQA*hg9A6zEqJp19B@!o`XG{cHn_W#Be`p6e z?AL@yZd_$kT(_pUj3dNKm}+poK_Js5S>3a*3+ZNu3;p?t-L?0DYKu&*PEGIlMwp&I- zK>n60`;tRMuivUaF)pn+NG8F8)-unkzf{U8m->gF-AS}@m=Rc25x}D{*(aB>OBwxJ zM7t-Iw+rN5<9qJsAU6qSqItKP-hyp;Y*I+{TkB2~#EDhrqR2C_CyID{4G57e#mU1v zy{KJ}2;>};lN49~kBDRYfpwkT70Xdr&_YtJ4*d!f2iy<^7;Z>-<<~+Q(PNC;{;cZo z`;9Y#@q=tv8CRs=-aL6E86|| zIjV_9(-`}A(DNl0vkqDHnWzi5Of8K&Xm3Y&tA`oO&lzCoupV;$<0jfhUF&U`wMGUT zS9_S|5xsAC+iApi*+3HQfg^R`Q3j|}tmerSL>-t2*b!uVoMGEB|A!H=m%fhG^>wGN&DuI6{b3ZDB#$8T5dIyag%Hd~BbPhHFY^Fhe{kzDJAzPM73y$Y> zqF?25D~3qP)JMg&1Uu0_jP$N@2K|SrZvXBHomk?KK<=6~{=JC{f#_j_u2rmh$9531 ziUR$$z>a<5k{74BSTen@ExWAreh*LT(7N-(_4SB&k$(3wI5(fn8APKzVL5Ppvh$Um zk6+c)PtLwHI`^wrFAU{y)_1jL)^-i$T#X4?`L5xxNj!eve-+!1;Hsk?Vsg1p7pM*znY0xXm>0PKmbjUn3!=+gZ6IMQxxpi*tQ&4~A{e}I<2WN7 zIU#y_IgI#)enIrQMR%^rQ~YZFZ?6MMN^!^$I~SrGw4TTibYLUkK#t5jkq+M@U^;9+ z`@dZas0G!0p!~wgw-?rgIq<$npeNzfAusq?$&vRP^lnt)41)3JchI|m{)^gLN5rwH zx$7Xnw9kn9C%$5P5C7>W+?ycw6<-VeZbd(?;-CM*j&#POKBxV7i+^^5-|wCs12MQU zoy|{7;eUEf_&5%sy3j|q{rR_kyyEx2h(i&FYEqB&Ki24HAAcPPkA{1g12QZB`P4uB z<+U*c?(r^lKT#R_;nJZ9PbTn=>W_kk|9)qGeCY(Dzmn@$__sFzZ&L{o{Xg1Z`YWG} zhrHnF5=Y2?+R7il`=>k6m4Zi8s!;d&mCxqF8*UOB{z+{4rz?Ip9~q=EREjV4XO8SY zZ{sP_Dck){^Y3584tEqh+CRqokMVAAgMW;7d&~UedAB|GKc08nhyUYww@;vd!iMc* z_WyI(uu12%ypu=F`kS@$vj#fP-)`S?~6Bc1VZ8>e(f0wP_f%aohUr*0mS7FJ}l0Db< z7|9iqy|}^U&+5d7MRx4``+v9}h0h1>eOLQyAKytlxBswA^>k&<&u3QN|6%SMJt>TP zK9X@kJI{6uJ+P&bXC7v~WqNxfZPzc{-A-cC{g;eCye@EKO3U(?-GWxgjpzruQZxdk zq;bsZ+2>c)-tqX=U;U*geMoeWn&;9~OvS}oy)&U`310#c%KJE5-d5{HQj%Y~nej*W zF-j(_$auhJ731Ftcm@U}Z{ zvJn03d;jq_JY#IT61kk>{)>x+hh?k%V6|L0eU#h?PvU+F7)VJH61xsKnh(>J-0n16WNF zmL$eVG+ogmyh_m^t7?CGp1^F|vF4MQbE&^(4^l^N-twd{=S#d*=@pb+{Wvc`SL!To z&JevH1+$geNs|TQajKmUJNi$Xck zcyp5VKov#to~{TvV3?g-r&MD6AD{ZKCMI%pCq6VTSZQ1o7Su;VF+E{@u9nRZI#AjQC@FuJ!qDn2+{zuMnabCvRA4e=KUng4z{De-s&f{beFJ2OhA5 zWL#p-&A<1g;6ak7iDV;qxP4A?zZ~s5ABvWJWc9hi(-3y}|LPvV4senI7br?1h?QQB z&1@j=0qpyKbq%m-2Kt-Zi@fX)9YS7dOFnqawoBphm<@!{f=AYzjQu4p@eUpITw0V znZ^UPb8q}F?L39t9p!-ssLBIl#}CWw6FDLFOST>d$F~0ay*Of(N4iowDj0voY3?Ow z5n-nn6=$bU<|kGnI{a&E5o^5D14YFNE#hrwLXX~OfAZ%Y^IxA(3<(pS9g*4h@=$r; zj)#iBw0{^e_d#Ursjid)7M|?%)3g8KCV%>$B27fZN}T%es$Poz^Q!)NRo@-MKfCH* zZsea`^)J8ij|2SI+5i9Qtm3lzcx4{wAQ59NNf9C1j@8VX1s~G#x=nEsezb<)W^7k7n@QduP?VlYqx{Rm^))1r)yl*ksB-Gt4*PKj zPVs%X0;F&xB67cOXzRn>&fcMAAJt_TVR1VqGySnu*+yRBaJX5vs@rGJc4j7)C0pu zADIE)@=}GV1#hOdmI-}KhBKea=_md2!}$f1UDRF=f{?ghU&9uNYTShM z{4YP17g!Ix6jJn7BH!H!q_dp7PxZY0muLj+>cWF<6D|ag+56HA}|_udIy3#5+)5GS($$yolEp-+vnd17C?I z{o;Q)nt$2WpYx{E21xjz0O7-1Otc3o$FQE$Wp$yt3-ctt%OFIn4j$#J_{1AMSz^iN zLj=A8WPbKA{FZ(EV_LVBq2n!uHb(QX(C->zRM`z69T|o&l=rxnt>Rb5Iay^U_JMbP zyyF$P(!dv@kGd@#?oRq)PNBUyFPdVL)iSm745)a^JouqznW1iy7}R^7w)U_>Ew>|E zK^%e5Bu-t}lqTUTLAmGLe~o0e{|Ejwyq^bXJ3rs4 z=NC5BSH$2V85JdeCJJQnLp}E&7w_prXl^yAq)>>RyC~6=ESSKylQk^)y|;n+d!onm z2}ZH080k+~aNJ#UOkrcLh(?K5a-0>V_W9nR|1JK%3O3tYxeS$%a{)rSJIW^iPIqn)8rbB|h2Dh$TH#!cS8{6jZL@np z`Cb;LtXb?8oqpbxV?^y~fRhPB8*Iu&@rOZ!NJTP9kQA%UNCQ5-_1ju(?BmTLCKyr? zAI72QrS7(|Xpu$VUwlO^Qsh-RIZM=lVkC#nxqmt7pGEcw46y!slCb_t5bT{MR(fh7 ziG$H&R}V_^U>HN230Sjvpn8V^S(8%pQ{-hE89!RVY|N9rI?9&pLyH|c`C2pI(jOSp z2uv5}P;r|EDxN-_VO(NrFa&m9?dS;f4^Cts=ipSj-@`C+bH}BxVfZdT;mv|B{Q%i) z90%HlC=qgd%ZZ!E{&InL5OpE(C@ry4_Jn83bU8W6USw~@v)-5sO3f_oX0(mX9>Yb1 zpY!EA3zpv(yfEHYn+6WcVMKbOy5Q3z!g(pK8~(#{;oN4159mwRVDr~~Du1xwKiMFN ztAX!axcrM?$jZb9PBQX_W`me*Xo^yjAh zWuf&6Q-(3ntain3uqwN*jxod^{%suR!O!nC&dDHYEK#eSrRzSa`Yv5!VxeOVmMdbp z->rYtx=lq5pB@WiP|B=xj0DFwrhS_b$C%f9w>E90O;$1AvMuKl( z5=7Iz40j*ikDbLpcWP>Zxf>CM@NeIIQj};fINKgk#pjmy2=aJ z>t4Tqey$!!Bk@L>_5!5ckudoUM6;tGN4JPndL68XW>*R7CD6EXg`a)#I6-V0m0lTi zN2B#i9k`A!(HV1$PM)vH(Q}Q0q`R<_-EF%o;68+Vd;$nIcf~&Y6-*xJ&`G9d^}It) zI_p>RQDb9u(I%DiGp8T_IAhOH3k>DaBR?>kuaQ2OjE~GpX00BB8IYHRx7KaGwkGdBs0SS5jG$Odpmzqw*6De6Iz&t zX%SDU@X|@5wc-gTIJp6BQcjMyd_g@=%2^OMQ?6lEVxY0dx}`#*?|na<``H)z?^GTX z=bha^%dv~4$3=pPZ+S{qUjODKW(+?qK$VSIB{4o zQPr)LAk`fAsS?zq4%gFK)&lTVm!ALeq~J8!6==9b=DfW(-S^h*<3T#x4_C!my5F}@ z;Mb4lM}1!1Pr}iPmhQwMLvTY86Ha~SrDWzmapKI^y$ddC9~P%*BnDVIM#JoYp= zEWtdhe7AV5inl-pxs8nN$EKBcL3euQY5WM9Y<-(Ee~k<(z|=M+&UfCBQCm&uu@8Zj z=I|~(&`NJt^xP!}J@}>?5@6V^__~SAGRs}ZT=P-maT2^!HbKA&Zf5-LOAY@-nqHM3 zofQOhOuW@X!N+9Adh#>DkBjFPbGP5DEMA)`QtvCgET1mYK{R+mX>p6`YPH{PZyEFf7 zz^_L{bfh7wzLu>la`<9)u!>1}pt#S;Fz~xw_uc!kJ{}h!S~P7hEqt!yy7KmYla=Qn zOk#S~H}Eh$40gT=oQ>`Lt@M5v#T4JTjA&ZtnesHT)E-*w=j@M;6I7Eq*XYOn>6rno zJrkJqu$+9$q0NSb27@;>z{$s0A_vBni9i~qWJbXkQh_v9_tNz_X@PZ6vF|zj45s46 zCs_JwDvG=(+vnMHwBy<%LUxyVPW{V=HiNMl_U&5sT0MddfheWBrH@RxLcc8a3BF7` z73RFyrZ(KFB#$pYCwRQ$s60^IEtoh=sl?LvqS6vsV$G3=Z*q+95Dbcg*wa zdYq+GYxq+pQ~D$j)UnK!GUK;?C(6~a=twnrc-LP?OceBRV%rpecWuiP+O1@}t1}23 zTG!$G)bjJQz*OUaH)xgn9xNSoQqC#1*#mX(kk)f4?TRA7`fkKAwBJGMBAyg!?gIPeyHj*uaK$th(=#~@lR@+X0?CS-mw!{(sZQ?%Rd^b!;^C4_li;Wy< ztIT55%>|s>c<$l8V^1+H)hhm{{G?Jt3YUV${(6bA@&K0&hXQIiZsvf*5&r|Wz z%~zt@fZ>%E$m}g+bz&tuKjurZx=%1c3R&f4g&A31L`=67C#V7#}Y1a^SyK|Qt1Yed$HT4KztVmA(V2v4YUjR zDyDL{?yKD6I0fQ%dFl4w<_kZAU+ZW5@aZ^Kt2IMQz|B7;1AblFVZets4vWf7SoS6G zJz=s=cWAW(XI+;pMsDGxsTey7?vqnqXeD7|xmlWxiln20Fs$vgxiS*5pRM?VPq(U` zw)5;;k=U~HY(F1Tv&LPD<d--4lQP;FkNpE#IG53a+x!!mNO{r@IvGBM3(gTH5xPu;G%r&!n8fIn11rpxKGe1<-QdQ*!FUn|6T$J>a+fZ3^Z5NAwR zdAQ~QnUL}7(qshQWyn`1jPvbRI8M~PC7U_D39t5vQtP;F;7!`o)N|9=Lz`2S80J?e zG9?-x?b30c^&D$Xlx`mcdis0wlErrQmX`pMtFg8EzehAW(y))tkv20b3`kk*R%$JI zju}Pek7}k;I_2tgXxjL!KuGN#a-yLJ;_3~RbJ-*mfXtJ9f@w~a&z@+*A;cEV8O;hjc{!lB?{5OlJR z2RAG zpYW6*KU=M4Sv1KLPbmie^G-X)EZrD=LPqhu=q*1@1Ed}VA#8&q0q22&1cv*Zgl`=t z-`D2RA)0KQ=Q*U)MRkG`PX)Sn#?J~D+chd>>jW}_Z?{T4^Np%dIH}fGt7du@F$B&S zs>U;anKiYtY=>3=DW} zTAKQ4GV*Y?12|(X(wz%aeLc1iDe5S9Ra%$(zOk8=(4P3Mk%-g-i@E?%Dt?pKtp!1{pKw=A9YAAwDL9)ZKPokBJ-|lIZ-g^FI@-T ziH7ARoT$Ta%I0cOiyhP3tql`FF0zDOfe|={IrTi=!-pOq`^5c$COvED(GDpYY;NdX z7{VL|F*aLwF1)&%kBqPR?!+g@TSjW8)ay!}(aHC5RL)m`mZw+HC1kW-{n*Rw`*Izj z<@%fD+P7^qaBe00LRmRZp@ve!{K!{zLuKB#ZL1zSwK@bwM^fP^F9s z6*>owy>GW$?;&o>-p<`h3!#}0GgBXed;NyYSNFl}tx+RyFaf%>DoyJ;_Ys+tH;!SA z{v&?|WPS|B$Ah5)RX2M&^k{4C>S38M_FEn$XHI<$r%_2|aDz^|?C6W+eAZmY!>3`o z-TSU?sqVf?Wk+@~95U@SjK?B;fE%W?#rP01R$5{<1KTPd60#BeAa14k5bj~Q@9u*q zL%}hIwW;X{VvPLVH#gRLItm@~y9}vqHWoX2nj$O-)y9IZFwWCn2K>#2q>2|DKCIO3 zvoQ)Yrcv1T#}_<%bdtsVy3IMnUSvW_biF5IXPY}X3F-5K_TuZFtENDyc?MU2Iik3Hl~jvayO=M|adj-IUYy#3 z+$V`f#$m3Sp&lZ2au%Ikkmhkg0$mdxY^7iIlnMu3F6ueSo`LaxLfvvs0Q<#d{MIW2 zhf>T6XnB1S*Q3K9z?*(Pj@_A{%A<+m;Zux&G-@e(BBO{Po9`!iO~aI1JpEmP|0O8= z2jn(r4#5CRE|}%%(%u4iRj&MJ2XPke6tP6Z`f!7E`E&Aui-BDbx#ZwFuCpf|oiLz0 z`Zur{7Afcr&p?Fo(!>Qq!6JR~dw0ZGc#?}~%SOFsLpk)mCV)ig`()|p0<^IZc2C00 z6DF8P7!by56|Jat$s`2q@wwkMMkLLA!*zG?h7CXxVgsb}#WNNAn+kS=fk9cj)pnvi zU8;khbE+d#r=2h$P9E1~k>B@{_%wO;Sm&#FmudtNTAu3jX&;j6Jo+?ZinguWtAdrS zY&|FBWWU z?u1O3kP87hT+-e^u3`b8$gyO7@%{D3kIOvPQXoAxA<8ax0O|SCr+bIEMU^okhDqHg z?E;Pq#_<`U>v5`*NbUx+)AzXDZO`(!@aWXt-w=p92bY=}j0}@C3lHYPj<*_z6AmDw z+3NwHr;(lClRFLDDO$K1#s{I6VuWA$d!V{4v0dcdry!9LKl40`k?%!@Rjbrfox3D* z{*|iZu7& z2+WR_Ix4d=BD`gSv^J)7tem^m_uE8wGK6+zZvTr72**49X-0=Y-I}e@FCJV-2BCPO zlFeExrC@{_Xi|vrs;V1MK=!ICv5g?-F;U6F#BH1{m^@P*DI_;V^vOWId;8{1S^Hffd>|SRDnun==tAPR}iaEmv zEB64jX!9{k-okDu{-D~7DDKwfnb*7OZ#|+hT$aZv;bdN|9oa3hK+r5Frzry$XvBia zBTf3I#gZ~a>3OMw{WtAUsLUVGOovokygUzP1oNu*;PhU>wDcZA;NqLibJp<9wL+T_ z@ti|6{H@77v6}R0)YcFX{V$V+3s8|y_^qk?5N>qX9vYO6S-isR0zZzqWTpA+{N&JE z5~bXoP(gSRCg^0B%VMef>9xBG=4_Kq+Yy$<%a0w`Cx3{Xl=aY;8`d`IH!J{C zeCte-qHyJDN4?0#;Y^_}1E@Y6PC*7U;W?k=(p4>?AyVAnc(9~QC-iKaEbXi*x*E+a3+Eh7uWev(9CrhRwnxJ>fGv;Fj*$Fv;FmS+} z;YOYms##do^qORB7~--=T_&V%@_z9^1*x+2mCpVRoU)9tE_{ywS0m#na5bKsNT1Y| zIuc4J~W>zdK)BOR?RyUI)|L6%DwzV2JEf%Que_2_7hnAI4abiQM{X z*d2i{RepS5_S!(1s!Grx$pz+8BXuNk7CUk!@|U5223h#fJ8PW~N`44!l@9ZD5LOzB z@_pWXH~>g8;W9)?^{~562nI2Q#!*cb3>>ogaCMK^{4jMV1g8+;JL}nMYD$7jI$Xb- z+FZBttYzT}ZCj1p3EL<8amf?WFvf;wB(8P!v2Pg@Y`*to#x=7##-3^e%D=Rm5ZsCwQL29m(#ju&)t|} z_z<<_xz@7}!EQn>T8pI{U0L`b+N1;@O%Rl8BDT`~Jr?*#uBYv~V$hN(9g=1;TU2lxjK5xP&#aINA%+i{D<7r&cQDEH`Fgx&$8h`(VD&|WKQk4~ddg4}VqGIXY zRz(Sb_o}YvFdnep#z{ZlCprW0PdzCSD)zi$2(jO=kB-!QG1@^ah|}Zuc4}D-$QsZKMJUQdGL+iV$+=x?#I=c zo?YnB+=*Ha&!y|Lj=pSzQ%q&(cJ&M=_eUiqYrmwXrNEzUf&5uObBZp%#8k}FQ9a{A zro@kN`@f_5U>zhN)dQ-UhS%4SKePbuk+r_lePYKU*+IKgtU4Yt%}dDq+Um>^&%MlK zMEo6ygh}2|%r&|ja6D&PsJtyyw)ehnDfl<_lhgM_#)v$pb_JIXhC3K+Lk#7!Qu}#s znn#^bsYOA}=K&J9DB7Pe35LuiRFf-B;kuwkd~Q~^?3EG02w&6cGr z!)e@^Wt*$R04Q;nI4$$khjZsNj%nIL)c#h7t$fXCtOMjDwGJt*+W-Qg z9M(Ymx6cFuE&$pC&0T>Fh>HjfPGp>DT+ZzMvopgGpR$^Ek>(<`CxlojR^l7>ca+B1 zVdU7VgKJ^^ekThmd%uR-rZLpo%fg!CB_c@nQx0lLKopG}D8``dakwQxGN5>V?)+bR zHsCb09^B4_kfhn~cT!<2h6Es1J;S=tTZWC%7F#YWLm@b*gBt?$ld}c5stLh%>~@mM zgjd#`zgvtODzHJlfSIk3{tqP(7Wp6cCc-lLe??yUJL?nK;rB#GsXQ4ax5vs z*>_P%=K*T}an?(XSLUCFK>)J?_*NZ~Zea4vO}g=BM&0>VR;!B>M(sECd_>|ceH)?# zIyCLN3=A70FRN1*0P+xufPiB#pZJM-w*F(2wwFOs`A{EJpXc-t(IO88P|+pEv}ZRN ztvSEl*U)=haEhDR%-8ewtaPXw(Qp}mh<%f3P-VW8IY;nBEej;tWSxf-BJ==N1D(nNMFJsX6~Nw z1>OP6Y&OjGbrT<{LZAUqFgo;Dr}k;vIRzbG$rold<4vi(iNUM18NGrTB`op-&N3Sr zB?Irme_XDeI&g4_KhS-m!{kbn;a47r1ULYg)~~~ix$=*jR<=l_KzPApJF1ZLi9BQCK3(t*FB}?&G=CJa&iR_vF2!}Tn|Vdd!L@*INOGugqnw)!&`nDK#`ib z>!2oRCI_*-a=v$CoVlFmBLrS)z4(Nv)Vh3VTC6h@ztYJ_CE zh01|iN|=(oAilxQEnehF(dP`_S+IXA9v~UbSCR>bs;H{Jo$@BkB4C`)lC11z3=|#2 z%c-UMjuimsst)p9L*B2wHjVhj%qa_ldW+|70pYq*^@We1L~!&8d$javsC<-yVA5;b z(GO=jq~pd2V{Ttxy*r8jFhE*P&hUIA*=7K#2DQf3mG7Z57v<`*3FNIZQp}6Vi1&qD zUcegadz?TbvRyh*=Bu*Ik&<0u8v1N7Jo}`oMw2)61lc^w?A4W`Z?$SD;Z}?J37M=l z1JL-V!hkW*wkPSSk`c4SlwN-+sT zJ&MoNqjO{(j7qme7kHxUw&PLirI z5AYm~sSrdQA!*X6G4ZTYd;?s(o+-2V_8_+pZ7YDLzg>0wJeOaOuCw^Da#}HvqqyU+|y{m_~kaGwu2OHWW44K z>&uPcT+Ak-eWUX1ft-@R8%h4_fvY&$c=F(JJ(`9dU|-Ke5)}@pVjCbjym>{8ZHjpQ z1ndYC>7%iG^J z*G)`FlxpzIOPXWT52#reuZ)x(w`IlX`Ed81&7q}p7(5bhQ$R#PxJ7lmim|OcJ(;zG zLO8U!$lhumvd*r0At>u3r}MDgi<+PF2WWfx!Fb%O*o=dZBL`{b;NTQ<08(kbak{rFtJ$2 zwqEJ0kz&f))Pb6mMoXQ5Xd|q)N))nGlX%Z1m62w^F}eq6v~vm@v2FY9H{0xr%vjne zv~rRM1uocmZEd3P4FngKp@P*3vPXSFrj8(3o`0Z3^;R}I(=C9OH^0=`FR@j0D|C!6 z_^!{f(nkT>wU5@&=6$xA@_KZ=*$XFVmD* z3u@^erOni$pF>K=xhZFKom18+vW*X-TbV73g9wupnud+H$Z~}YqcV*Ry5h$pV zaRP1Zc2I|@hh_5E?zz|QyYyo0bqptP&M`tR=Cur~XStXiwR=9drz_MP#xQJ7NreRakHAu~3A@MWJ|5mg4@|d9;Md-3eihK2{#w+0~fMjz3 z*QeA)s}nDJLgWM6?zY8eOi%+Uf%>*fZ?a+tnVPmkB4ofiaVDGhG5JkAp1fh}4s!=X zvYjowD|TBJQ5-;zzF`Alxb(|_A;bqeDYH?;T^>)4e;Qq@GMIVagXyJHx0_2fwVLg^ zeUAk%^=Y)=f;30_W^wlv{7|23%2zh|O5p0h;xt-`5S6=AJ! zTT_yvOYo{1*KwUF$%u<+1+KGmbYZGc;>?Ydp7g}R&qfO#0lF6guLx74IA$Xn}r9j$1K16Sw)PrP#3(unL%1MrQ?(i43xs0vQk?Xyq z^$PY0)s*z*k-`M*EW)PbEx}u2bB6oPQTcKvVc3$4Z{>lahc2HVHz!Rj?@iJgsccbBx*lr3HC*1`v`q^`#CFM&sV6ltf4 zwSXp$;YPPjn+4|=6D)mM9ZuTx{T$Z&nUlV61j6DwLCS84k_*K+nTb{2YHRPF;X9a= z#Sg-UiP{4N198hUc|Dd9^BC>5mu4#khb>Xq7OI3-WEj;KdM~#gFzTmTcJ*#a^zsyR zgg9!A2M1KGbh6Y624l)uMjRvBTcIOGJPr1OU&bx`mvsv}LP)cL>)f{Vh7HNQ6Mi7pIP9_t3Y+S5|r9M3i;rUd>S;ETHas25y zU>1l6EQnb|@K~6e9d3G~v&V~!&Jtm9y7|-C>5z^e4<{`j^%i!ym9FE>ln_hJlVJ{A zyI~NH$H%YYrxCv0qe|*7(&x#e2Pc=*2Q0O$dCL|&H$f%zc1Naz%EEq0nl*rpI<4_v zUj!>FzZ3{POSZwUE=Egul}agMYok3h-zdzBP{b_Gypj91=vUer_`(WjLU5;}n zp!2OL4m%b)7D8}sn#0qUebX^Mp1m}pVtlLVSXd|WU$HGE^JuuN!! zR5_ijFwR271>J}C-aEBOD7ObGT`HD$6mAXJ`0i3WKWFb|J?q3;#I~?N~es4<)q$u z&1ORAw75bc_T|y>C%{#uQTrsr@^}na)?iau;Q_}vVS@ti8`coPuXb@T1ZoG%6;N(B z3z_uI8Gq#JIq7yNnf`#q1G>X^=lg-zUWNZMgd5}1jG@Q)KB>Yg$pQlg-7w-AJl1f` zI;P%HNUd6pu8&jNp^SW9U3scBNin9cl#;)3Jg2rz%!p8PF|~6(ZK<-XT@aF^cuK|I z#o!D{*KeQqETac9@U|tx9)uO&$J#e7qp)k38fzb(D~7KpLCKIuYS--+PpN*J zti6k3I@?fd-(#KL5Dy5NtyU@Gt`QTgGuiSMYp>e3$TUuLEN{v>mB`g+_)&3*KQP?d zSmy09&+(x-v{iuhyl==^_xc(6mkza=dYQS1@}fZ#SGVWvqlyEo*EA>WSjLDg;!(rSg$7qE3}>!yV;sn=7G96 zj=S!DYGx#q&}Rxt028|zJ^3|c6B z5!a~g5S;Fu>tM|BB2XOA6jdI#UG6z%rEW;dKP}9dtGCmk7o?MF- zcUf9i>4}=SlA0Cp@xjH_Q%Yt+teSBqrAgz@Gq~2{96u2;650izOuCUYnN{|5X8xiN z|HQOe$~%0G_?~0_no2mAja1q9*j|tNR8EYg;DTQmrS?~DU+sYDf>GxLY=PPTVehTu zqTJWM(QRPB5(`90u_y_p1OyZXq#KkPQBiV`7?4(U3{sJj&S9t-ItBs3K8?N=+LEal5pKFU|YNN@jcR7Bt z>BOAY6Kv~wy@iT*faI)un{l{4>(?R;)y^MjH54@;0T(*5&v(d=bE`UY~$5lnWVS%hr0rjFM>y-_1HjAk-zpg*$_|9jqP@0rqJ`v3db6e<&Pp7p#!!XJkow0(u4~KeFzDCJtz9$k?1l8fo;rRk%q{F)CnDh|R&|aN| za{U{coJSbR{v_~3$#B|b5AAgnY>#_g+sva#=vpS#xyDvnCW}?tu~m7h9^DD6tQ+#< zYBV>Eo9l%zbMY-8AeFLP>0X8@uGcZvx}E1Y+)A$&W&Dkl#3I9Cx9{^xiB6L=!GFzJ1_eP{KoViuPR+J@6N z>kI(N)308%D<2NCGg^$EHLP)O^5zJ22uQN!UMj|`2yd?u`$)HDWX?$AtT?r^((x;t z+ad&{Y41J2_k&AmQ(&37v~T#cwm8A`z+)J}o;ZI_08Ncvn6Q!_&zq%DwIKH!M+UYHRUTOFa72Tf&yunVgn_D$- z;%x2WKbPrOzJ%z+ZywMlFHJ(*AWLN;ZH4>LYTyf=Wv@`R4aC+&-=Szdzfs08)Sq@< zJQj(M1FRE`#2MOy6^-YjRtPhS}6^2lnnlhWCkDUGeLPD7ke17Sr0G7~`5;k8J<0z4Rg=4LHDLR*gAoEbgpV zmHl!X>nvkk))6N@;9MH@)ha>0VvqjHIm@|g2M5=`p}fll2ZlRF1v~9Z&Y}CYajUfl zi;QX=XC=r}VM<++fn!<^)pm$67T^+5!Cx533~Uk(_u58EI8>FA)IVjl#*NKd+ZtL$ z`AQq$FtI9zO!MS@Kh=hxdyZ$T>nWS;f64=X{DJ5d>o~?wE%jUmZ6>jlLV{?UbVSv8 z(n-uXLySsay=IvL=i!)COrVa$?ECq2Cyx7Z&~I(8rrnP2NJ=z^sw)0Tw+-tf=VmXz z0}DW8Pioa|W#%}hnahLTV%4^am-tbhPPJ{;zMd7uiwtY$d0hrt@r^zDMa0#HJainb zG_Q!LHsMx$ndGOpt)&mTL9e~gQdcLSzH z*-;tteN&UehiC0?Dt`;9l$sdrM z+qx5Gua46-ZSl)hiBT`t&L;7h>8ztk?3lWC?H9^2Oi~}cx0A~@_8&bLv6ubP2Nbq! zHSKY*q0}orZ29Y@U2;~pKFuzjGmf1{;O}X4we+laLQJhB+7x?^A@(I-Pbwfu)iNn= z!PeU%PopakT*&Y%A}ndUQ-i1^Q5pBk+d-bQRXDc(lUzS5yC%Ncx=)88kK9AQ9P4QE zcBOahdAnMep_4X3MGGLc)aW@~LuLJjhapUaa-D!7O=3RhhB%rVBJ}V$F5DtEdN6vgZ%j8i&Uj=DW{<32b{OBkohRYp+4t!0^V#PtzJb5r;2nh| z&w7_w%=(BdZ#J%x6BCZ}wpvxeXtnCK)$0KIl^DK)!F3TlJc!!VOtDYX))LjCJqfJ4 z0Ap?~-{M~?UX7YAwQ}Q`z52(AOKGZKy+i%|pe=5aAC`2U+;Y!oo6qSDlMBL9TuRoD z6m8uJdQk32G%EM5n>S$@FJ-r16dQ0CI&e^SC3$+bE$wYLR1zENW3Lb2rdfjiblS2v zeu>Gf5iuF@U?sz5l}3et-YYtn-KEA4b;Wa>giX#8+}XT$Y!Q9hX zOsSY2jUEp!x7%3uF~n%|$q_<^HF+>Fek9H~wHdx5NwgC4i0^+YCw++aB^A2^BWvo% zH?BAv?*QT(AUAGbW-Hud&U9o0;z6#}f%ekY`n;8r$|&T`6`Igm+%&PmTL&1+k7pvX z9+~OAIvdkp7ki2)2gkL7=K*m0*$(`6#I2!Sy^RyDhwxn9WH-pNK*_BS1t4e$wvvbJ^U1F|(NGLkU{!i;;`1UcRC51qV}Z!#w_ynH}=by zBE`Rj`(V)*8PDO>NL1Tu4^;zswTBht zrZnRk?yJB>#L_L)ZW^aFF|~M+YYY5~CrSIeaB3{;x-EkFqK+-Dj^zAiL3zFHIKYsL z>o2Y?J^~er&24$%Hu%KQJ$b%zZ?q(#+ORL>qBGQ zz|leKh;~2SRzSQ18*d8X6OE2;(8kzC`_FKnFstV4CiW9w+JRGhUpL%D{5J5Yw_GJ> z^1im;TE@pGQPnlZ4QTHA-g=H&-n{Kw@mmq$Owb=^V*bBB6MFNLlA3W9v`Sccj9jO^ z?8c944AH8fcytdnd{9uYv{cY!e_&afRnSRo(z{=GdC{)ecCdJsSti`B&->t*JI8A6 zS4=>XtFN?xnNZ5Fwg@z~o=3%}D*Dw_eohcnHivIcY`&p-MBnp_OpREJae5coIPLem zRyuaIq0F#cnWwt1g1z}-a9giKP!`;^)HuXv0}!&hLfz1Jk(&nmzPxn0hiD`%fS9BAUS{_%CDIm9MSD~|s8q^{pFo-={bNM}7`nuntGXL# z`abIo#c86~Vf>Nh&-Q&kH#@CwR`_-jhxMui$KHB;OONs+=!FAas|&X@T}8X0wZi#r zPThSK;jY$!@++bMLndMJvdW92h_^JhB(*2#EZKG$EITbFHeR z9U)2#S)$efI68UkL8(O#sIvni=~1wQvgL5Fs=t!OjQ`_^DgBIX5+uScrQFpX9y75i zv9&T>k4&=+zxwhY`bVWE27coei_q2yD`^O|jDga`)F3r`c^;CR3>CKlaiNF%%7I2_ z<1wBp`5oa9LR3p>0kfnN{=}t+w{^FXKby~QuqMdoOkn#T%apcDzd-vIK#+|;yL69C z#`2qf4PM$a#mBU!o_!CJ!yqF37z$FDxX0(Yzqy|3IwKWHlsR|nK4IC<$e_G2QDjLv zU@g;DEtg39iXGM)V;}*@DNXHgLzdo8YY=vBGjR!H>jKM%NFZu{YIytiQgx2pDOcS- zV;n0B7uaTF6s3HtKJVQU&p<)j^6m2FHx*mPotGlHl-L%6{Jb}#6v*dYID92=<*!(l zP^cP=CG+^*B7Q7f(gP_|D$Lcw10|i)sFu62RJZH3O4@d{(uHXEO~nHJl;x*{x3F$M z5fd&NMA+fPf8|f6m`_HpA>_wP$lBE%)EO4xPER$n!tpB=VfjZLHs(tIM(HneZwsgc zU25H~gO_ik3Sf;C2`^Qm`iTF5%3^)`z{@{x?X)<5F56tkgeHPL#8zC4Oeay3k86Xd1;W zy#K%YaD8>56x?~o7`|4?#?{JTW6o1$1B|&2;vY7l6#o5$>BhC`H6oo?MwlT{^ZT`m zuufOwC(W?ZQ*0M75RxCaT;;P#MCk*NbZ&h7@j#0~bs$>+x+M+as0v)G&Hxge^9eV9 zKG={ImB8wAO2=augcY)%U<_N5}{%!^x@ z-wF7UmRg<8Xz#^K(1XnbXxgP@xksl3pVxywvu-$1+!IqfpV}0#9{K*)sY=VInytwE z?2Mx_E6y{x8*fktL@2mzQ(klAOi4a?UP<|VU$b7#JMb_8>AsWgFVDxglgmThr4vWb zq!o?26;IbM;%AR9>%7H{K)i%YQLD3!~ebby! z(J#t1rnWFW7QSDXotJi&4wG@nYcey+opS%W_zqp@RVhbqnB1Qzpu9D%xIypd{jp{H zj_Lf_%{wL)Hr~hrFtNSIuTX-3$Ap1yzozg*Lbhs4@Ry$$9YgVQV{&tV4-jg4qaO{u z8Uvs={Qq`4EK}+Y@T~qGPW)=>s!lOWy#OuLyuKhP9=93 zs{gu5C5B#}w&~oL&V-nrbU0hA@~&Y?UTFkv10SAIbkWk;PIvXjlA(c1odI(Q6@ANh zKzbG$iGf-AZwFzh;_7pAkOqT=G#-@!&fn%z>|=GpRVZH9M-O_hJUt<1bCZ#9P-f)= z5`Na~BpabkxR%n!xP6(}xKq|Snqaz$c_X-OW ztc+g`d0B*#S1A0g94Pq1V=xl5P3e(z^N)IOCb>OAu$)E!KK-@<@Tne0p(Y%vsFpZ#(RaA3R&-z@E+?(pfe7eC{7Qy;Xn25nyWkQm)rR)i7ho6AW92#`z4Gvcj_y) zZzkqCC3(PZ=su*>WoOx~up|pMIUT(Vj3sA~dJ%0tav?@H!)u9Z{FjTzhkcl7?Gc}m z=F3R`*Jkp{$RGzr`&`_pAX*NUd(1Gr{8>BG4DChy#B(aL)-M&;q~l(zas%X8Y-BKu zv8bYa8X;{}+*>dbo-lHYDCC4 zFX%Rv?yjawtvMK)1J@+ijN`yM>L%5omv(*S$>I9pBGn|80ZDc*EwavsQAnrCev3)c z<+sGktdAnD3$QvP#*7p#CGA(r@_Q%Vsm8K>4)Z8UqqZ}^W6^B3K^Sv3LVL#9dLa0H zh3EjX>;YPc=z$)ARHr_7*z)UEFcRE=5tHt;e{?TYo}lp2q2 zIa^*DaJ~HP;(Qq@e?u-#-g3&lWbqaR&Z9Qx!2+x-QDDcS8)M8hJp-J2Oys*C)PW!K z%1?9(o+rC9zSkqu%eu_7y%nL@1bgy387HyTUC^9})LuvFbXG`+U9fg2Sri($FmDj@ zUyCSAm#;@6DA8Gt>xgs8Ehx-f^N3#%J#}%^G#qCyQ^=z8T_bqSqyZ_ZbTRG)exs&A z7AJn6AhtPL53=ieFL=vgmlz+;`FXX)H=;s;tW@n4TRP5YrM20yt%dke8MtOe1^t-? zk5~PLt07LV6*JH6g-T8-V(wlQr(gV>z{hV?C_>U|M*4h}ThggfqXazmsOOtw{n^^q z$Jb7&q3F{ybG|Sm0{5ja;Z>}Zaz)hFG!XQmPEb1Ucq#o%xt$R88@Bu&hFV)BQ1B_< z>(e4lGM|H1@t1<&TuOR|0{>&^>=!beHYLf7==Y`?;#!So=&G zD+7n5x=*i;idsYs8!X?Tjm^w&QCH|7J;$+fj?cgcSP*^BK0`@&NmL;Vs=)j({qSqu{< zNk4^Pcudj&XCFIXn%I0nyHl5vP6cj{C``q^pjI(33Oy#-w^UP{!IxxSKJC z13u|bUh*7hktPa|7S+~X{v)MFZT!k+>w_>E??s8sMvgL<1?wpU$&VD}C28S0G>t## zUd=ur*7c#VC%F;LKMZ`GqTZBIJebC)@r}>R5jEUmo8EhUb3v=;*2&F=pNW$nopEPg zl=xOo$ur0rDVa|*yxi<=P`v?8XF1h9o&r+CLJ^6Rw3;Oyj!taJYq+Q^3cEI}z?Wvo7%9+S|=7YB<_@p_&eT~Yd^t5a1h_Ve6L2`sEzOvUK( z-@A&}BP#k?#3s^0N*+n4IXvAA@)oi#MK4l`Eqc&UM9wVB6YMJ{45rsGDd>~G_ooJspxnn({LvAV z@M0jn0nT1}M`Ufr7jo|(oG0qOIYUu|s9H&1X(Da`7dkM0kbRG*QanI%47H0}5tvhD$QzhxUw zRuZ8zR1WOw{-*0~(oBqh@!N?Zg`{fuotRW`^0YODQ0ECz`&}iZ$>#U8XYuWULYgCC zNsbe6tDL}y9%EAFS)8xRN{X0&<{rR49~1TVd|uP~*>4ZDO4bRR+(j~6-3D2Tieue}ptl#-8*U zq=)c}(pQ&0?^M^f=3p{Bv3e&+<z+c3!@*Z@mimLU>7_=XNp-rYVeCiyG-(x+k-4R+7>nt zXFIOXG@O0!l{!*Ts#dORddY_QnninKylhvmSBP{9_AbyQD1)<3tUGuc`5S6z&DYNC zd2P7R6rd=<&7F9}xxgMMGq)6_U0_Su_1NdRBjYCNC$!&1SG zYud^@wae?+gS(DxiCqT1+ERFH(R^|%7IT?sAs(3vZAB&Q9FDyHZ z!?lw=+|+9+psq)VPE!G5;uY@azerBLrvxhYCSWpDb`O|vvM!z=MlDj@s3*)n zYsdmeCQEXNp136;^t^bSOm#c?S)d9m^37@W)T6}s*Xmj}tWMk**DTvMW)iSB`Dxj& zEhD%f8G5Jj=sSZGZ)f`=?!8m$7gU0_x!a`(hzH|m)+rrHjoh1VvhS~^qlTz!N;{M~ zX<~hft@x`1*P``m6(g&OcIbYO>QDTs(UMX3P;Xfciumn=;M6bn06Y-TTW;K{ob^H} z@Lk8dS?1KP;UlKoR;#0J^+3PqjSr?qP%dX~(@nV57xag_$}bK4KGHp~(^|TD;TH#Q z{E?O4+h})DlmvocW_1iIOR&>6XMDyZYF27BD``*D155?V=tbMQ+^|>kgHkV%gl!GV zwo~MbKlAYx6%o+jCdi*DPN0}vDaEs#0wwFir(P*3=o7S9t&Pr7vrQk<3e(nbJIWr# zTCFRIfoVS8-N6U$z&c#8r5oN_vr+Gwm{OR=FE+XB^^?BgQ1+b#r&KVmiFZ@(CVzj+aXZbrms*%guqi@+ zFAXzydaF7fVVpwfctyJNt~RS{z7K9$>w!25t-$+)U~9HWQ!@Qx0%2sHF0NH=68M3q ztX8jIWg<`Ujzw@=#Ao|^Wf7Lc8cIGNW9y`BT;_FlZ;6zJ0*0A!zX12C47KNamN2(P zVq>i~;lx6BCY9A>oad9SjZ#v>vC;-gWQBmqw*CX@OaWQ%63aFgsDgG4%NOfC9Svva{)DxF+K=)p}|6Y@`pFp2lr z;W;Q{UcFc8R!mBv)j?_&{SJyF2A`|? zCn)=ObKm%xe>T->%WEEwb#HJ!oX9djE_D$BOUNgYHMS9rgp^+|~=BVZ(8CjIud z%OSk$jj*rw|MR{*(vkE#cy2Yir?-#9?x%=g}BwVZB zLb=q>ucy^Oj-Ir7g8RHCs==`>w5mE%f>-hJnz2N+FaKXRomcBG>jf;_#*ZE%L+YhCG(hF)@Z_vYSVYd<>PTcqD|C}!P-xX&gCvC` z(#cv;y4Lx9ZOFSi+qh#a&G%@$j6omg-KYPJ_yl=N1Xfq) zG-7QKj{iI?Qo3F%gSr~A+_9zdAe*Qtn_MMnvb!_glOCoOP;%Ep10P_x93lK5u-QEq zJ}9Da&fhK^@N!RjNSosHWX&Nqi4bDC_mMdnK22xY-Kt}MqRRh$N8A4EB_T`}bL1tB z-h;57l)~Oaq^Vo#^p{F+rS1;nH@d&T4ty@Nm>$Af;f2M)%Zesxb_EWr{T!6}pPn1t z?*ILZ>dGfA5?7cYC!f-=P0F0)Ze}tq=(EMDwo>{~v3PU;pHjV9+3+fs~F!9M~r9O!(hR z5jhLhMhQ|*uB$=H$!=U* z2ol{Q3ehcx_v!uj2kl=R&be>FT_^`rxE187oH~^Lr$Obvb7%X%??s(l9+CRP3*bL5 z?T@qbfA~xL&x`uci~84!^`A2M_q*gj_thVSxBoBRSN|z}|0#X{DSdy@dHz3I`YPz2 zfR9qoO!+!GO4hra4NTfP!0&J1Gsf}F|Iqa6BKpniVKA3eQ5=QLL98wYhQp=XTkE#q zTebwm!7ec8L|mcsAa`Uytn2o!PEK;VUdD~Hd2V3f+mm@KudfCH2nAq$Qg;Bqd2T1- z@p$04&<7BQPnn`-hqKK-@?r##m5TJ-r=yeQTrp0;w&4C`S=NPJx#U%WxG6-6+s$Oq zaA4FB`|{7rsXa5`S4lg=fj%UKZCo7%Ge|?oCbEGzscb|$Ur2T~vTllh;!Wz87Jx)6 zaJ3khIqGE3mz5t}1|Ply?2(jBs37gO1$RVCqp6k@zeR|^(yqS4^%rmOk8y>P4o_qx z24;qw1F`!N@sgCh@Tn03R)GIdpUO8(vJN zj}myMv~3ViWE)7kNzYydYK9delEp5r>VHySEnI9|eccElBohYh8P$k_1UyG$?A1U^ zn`>I;W}eAc2+2)O)TV@Mq*d^9eBB(|!gcdsCZd1+&v|*1|Oj~Q5t9kh2PFa>2|%otxOYam~)EWxNYpVa@u%DksYcOte*KUb?SnL zcealh;=oVrh*AtVm2~*+0zUEZUC14}V+#y`Hc_x4U|^B@EBN8}W7;MR1MfE$WfkX8MCGh1CzZ*mB1L7Od!(OafmASUH zsUdFWmWFW<6PB)hdgRe>K0KyAe_rnX*Jt=-AP+e#WXNVB(=3AjGw3tBIbW~_+hY-v zu^0f$(7u7@VYkkCs#k{83X~!W2r;AgkL*dNl{;wmRe{Mt8(z8=13zosh3YPFB%s~N zdo$&+UZHm2ZDm5Uk<9v(FjJi*IC|UkzjvLiC6XxVxbN7V{2@~?=I54X|NC^d@5@Ne zgKNcp-1X`5^4&TjXR8rb19-t>+^~^hSYMz3`H!KSSxwQgD6vC~d&X+8(?2i_;XgW!q|4fL6nu8c#o7~M=zt@Yd z^q~>hoqRVmsjc9)FV1fb)PsHQ!Lw_n;NspW4WhQ|`c|lN-3M@Fo+})g?9NLCvaNv+Ok#^dG5+^jF-+tTow-LR-Q|{Pl z5y_B-w||Dg|EcO-Q3EpwrDS*p`~-Lgh!ZEoR}8mg=$sq|;ddd}8>Ubl_!p*oJ7>T% zA8dT#ODa$@5}Y5)ACcI67Al)V6u54Cg7dS0YD>;tMQTq$2DQx&*3Tqw0u6?pZ}&sQ z{07OaqcyZ};|$P57W`5moSa4!yYP?5baGzou;vW|!;5b48=M9bhV$UxFtL0QNP=1` z=8I18J=X7?HL#2tZoP71_-5yR;u|r?J4NabLhQ+gLlvXK}l z!I*+?0iRqIx0m(dl~9~U8eL@wn88$@Q;&`y!HMT5cqa2D(gchoJr3pg`~ZZvHODJc z&-w63o(;I1eE6luFFSZ(7?)G}#S1Pl(tL2*wsa?p+m)~4tgEeDfCh&q1)=aZQlL5Z zBuftkC24kpG-EX577`91OImN0MQlGKXLLf@rQM3xuh#+)SpdRyW4~K|v86L4s!dG@ z54t8PCCm`Q$tG@tsYEG+iF`#Q>jukG8MaUddkpw4dx0Dd=Xe4vFeart$A9o>4;dL_qhu}B1|c;X4IC6zBnEVfZQZDx_^56f3)QP z0F!i!kUK8|?z|R?ijX{86Rqn?;-q`SrQzRD_3M{hf8Of_jb^JYVk+zo#Q#<|R#hZ) z%AEE-IBsx}&ly{EWWJML>bhG99zHKJgu}qDXj+cT>z=J|38S(i>E`l;G>hkF3Kfx{WR zP9FF_8(y9dVm29vFOIO72y^VCL`tZY=c$;c;cWw%cn*2B;({#pT9|dJ@oQPH1*MJ*uta(GhoBp1Eyyip% zsSsHRJN0E-EQG`LIXW$Lu&C2Xka@=$0p`QkuEyOV+JWVXIL#e>Nc&mQbfscI-U(%@ z7xu#8fp-!tLm|uVJ~cB>9c$gn%|jcz^5zD^jn{q(O+Qi~Is%D}*yqgCl>EjMc?Z~3 zCj#wh>{<2;De2R?r%zh$K7m>wMKberG8jVANlwMqBGJoH3QQ%Yz^hB0Iw%Ti9((}R zlt))2vI(54-=f1nl72}4(oa>=wLluIj)gqA2~1+f!(K)0@! zon{xkT!hWC^K)osG@Y17bn}b%|QM46pb3Da`Fl-PP=PF(gIM;WFZ<0NHGLh`p5>rvorT zag~fQ%b+xz#l_C8Ph2RMQIpSy57G^rWQu}Sb3S+E(q|2cL{G%jNnFo2%#R=5PokxV zNF)|Vnv|v;Wm{aHhW0b3$fO4C;Uhp#wPtX z>8LR4a!K?itLhvvYh5*|i2G}DBL-^)es3djWB)!g=WkD}5Ub)tM*%!H1WGvfM7$P{ z2Sk_b@O22y-epv+`yfX$>tmV}!*9(Y9A*#7CF|Pl*^j|P51h`n=m~+MAz*9{yZeV% z-~8Bwb~q?%>0F=YU<9ZlQZkTWs?MA&bxQW9)_9AM{Q@*A zcEvrc+Arp|FtK2%7SsYUKKZ6oavrQ$P6i>`pp^Jma{FkPp2<%ua-Kqoke=i4w5by5 zuMX>o(7sYwSOwL@W?J#XdZexD7G+82&)d5Z= z7scp^oJK+^5J!lna8&4kzlQN4zV}>Utj6Rb%NNfWW>d*PUM6jOYMmT~PfHNe3nD00 z@}n3ow@Qzw6y8>bO{8&`Ex0w!NBs|W&K@wFMSVI5#Z^Sc*fQxIU&zvat|D!@DDxInv*O=$LgcTV_UhoybO<3*l%xb z3d;#cM&1MdDWe>1kLe(@?X1dW%qyQ0k#g6QuHm^^;}0|CVx`6!VyFr(S`#0_k*O&l zGm+Gw(>dv9N(FY2SQ`l z;m9JJ$~h?lyLDm_cU^7{W~J*otgEL!LZVK;0eK%2h+4(UGE=ce&Z9{tBCv=;;N7%nDXLLNSFZJI`GP;&G?b!J_;dTB_3)Jmj_L{A`Yg(OMVS7tCm z7lLp-HG$bSIqeFAm?oE7jyxx=+Imt;vHjgBQEPqdLqFLtpUY;&@<~tetz}&Z13l7I zzIEB+`eD@28yOL~S{Nv2Cr~Sq48fZ#vkn~J9b46DBXO<#?zbeyduDV$1-nQW)K*8JiQg<%!j1~POnf6` z3ids;y(5NN;XXXj&=OcAKBN2;YJTm|HA)yXFiAWKBJC;|P$Ic9xV62MfqaQ8*d_M< zqiYUxX2~|yd@fS$tE}M9GO6+$cV3R5= zZYA;HVX6_o`z++q$jg;tW~D?3bXtM}P?8#EgqC3PpX;@Jw!gbR;=)H_`Vaghd7?II zl?pu}d1BUK84-Dn!tc5~%hyYKCm~aHO5qJsz+=L3b6Qc0I^7n$#E1F8LT!W2D~pQd z)|a4%o`y24E-vU~rxts;+qvI$+-dz%#7}VQD@ksC+_Gzv^sqrV2CeLc&PE6G z^#}d?4CTM=6h*iU&EQE^K!Si8#OC`VE=udW9OwQ3Wv#$q;w~u}ukzb9h(QKegUgfr zaFebu+qJqCVj({43)q@Q%Pr4Zm1e@gvP@7H%4ekr*YbTr2E=toxuqGZn` zi1qIy8WuN0!;Xo|v{@EsP7XN3m|(t+B(bS;h0Zb$IkF4i_n(G4VUqfp4oLn5;D?XP z7>0Sgsb%w4_b;ssP_Ad4xgxZ0$uIp$`}oI~`&WU*qv0F=N(jE;Dew*V6-WaO7hzWq z$~56H{f4uf?zlH%gLv8(Z{Zdy-v8+I0pk(s2WP3>vOmGN@>V|}kxo>|d2a^2+q;fD ze#B2w4EUQ1X&D4kO`y!0g#ly=wN8WciCSFg%8=hQ*r=#d=j2!&H1}O?UBAai`R@1K(V&33HwOr^u^pu!kP!=I4GU#-zG9g#M$|(iX!;8m(1atPz*?)!5|7lpg!hZ-Fy!ZRzJOAY- z%7+KR1vkN?L5YZl_Bk8=laqR5|D-~NfHAZ*=#WDdrfgrBFMJC3VC(W?*^Us5NVFB< z{S0X&8)G;vT@ha;LgHafpl_`%Ou~#`jj6K6O7;N?)3;E9WXOWw;X4>10ZzQ{zm^RV ziM@G^GAwps1q30i)JATh7^Jpegk0MN89 zoZ&@u1=En7hrT5nDQ0VhC?2u^3!WrByc$CVP1tRc)rZGBoFM@!1%uUq=oO5(p?_if z*9-QqKJp`|CSBahG|6RlM!|4y5$I(-KtG?#U}Oh7Wcya`lgwo)ZQ4wr0GqxCRYpxv zueCxIfU&F>r-v-eVG0N-jd44V&He>nhz1xYt}C@ZO0&uRc23Oo=g7k9BTiuE>ex)f zi=7l8jXP!9a9$*fgF|t{@f;p{-1~(Vl|n!!ldF3H8MLW-wqHVVZ_C0pgxrgnXsUD? zc!9mGjIX@-@6W9*620)A1WJaYU`XiwLx2P@)(hnK+4s)IzdTSsdYvNzOep2pn`Y zW2{i;jDot|Y0z3-ENrA9f>D80=;50> zH&m}?JW5YPJhVacA31l?UP%6l1dTc3D&SOl>G)V&lZYWLX`;V#ToWXyQi&Q-MMnK`FZTN>NHyO$LbtO1ulIqu77_`H`=P4MDE+Au$ zb^t1ldVwCtt*dL3Ezij@&`cbz*7;%K7Qajb2SlUxqOl#%5 z4B1bcppUXdMhdCUhub!_NXFj*ql-hY6x6=yi%?!Fm?9a{xzaH?>Pg|?A1#g3IzE(0 zzk&cgfR!aA4qNoZ8YlT$xScB7>n2DW3U0~GVBGCy-JNTmpe7tk%z*dyOyQo^_YdKS z(huN0eY41jH3n7W;oNsKhN>Ucpm=)inSASY9*a;SgCmL>+cYj${?OOQlvz~X>^P+D z=_p^g2^TYYJQ&wb3y7`eQ}chjZhX>n2HDSu1BWszS7wjS25=RBqhS}3ZbX`AgVJj7 zP3!0>w6%s9K|Fk9d-Ot({{bIgh25)Ax5$ym;#G}?;c`q4BK3W+`#SW`G0{)x)ObYh zeA?HU##V6_WE1rO-=}oledn$vch-M*}7j4r@9v z1~@oCj3Xk1dH|ZQx-Ql6T|!66{94zL{AY($Z$gZO&mJ!8qpf z-dbz%QodH3dIj1E>KTbgcS9!fj=WA*h+*4vMA|uXj6<=t%xS9Yf@i-VcSzzxUqQsl z7lHF(jN^UC$yHXti?~%Ha8x5x-XSSVWxfC_@H?uJK3tA$fgY)<4LAYEIXS~A$VyUB ztv;0atTP)#k3Fz&h{k{iT4al&jv97(Qd@-|*#lk-C{J2f(QyE6@K?5Lv$lk#GfyEs zt9TQMvZW=aX<RTV;wE!W;f+^t|3d}D*KyH{=7B#$Nm74hW=511*a?mV$;R- zu>43*6zB2tmF2Bgw8f_&U~G-}ex^ExZn*r>Fp@p+{eM`8TJRJSZhMV`8z zWSD5EYW%*wgE+Z!JFUj|tx?N3rSD6@!hN@kVf)x8lxG zt5i{W+`8@)Ch|e%`sTqPLEZ2eYE%sx&-Pm){ePfq^-{8Rm4*{_R} zT@{yX&lEHwZ0xQKd0Awf-E5Zjzr{2DFna^}7T*Ujl3Duy-%Q^BFr)sM7yrZF{ex5f z|2k5rrrmBN%>l7&5VdUiWLRLOXGid(yBdFv2DzT2ATn-q@St}#+(?DzP?4SKFLvgq zx~TXg{YQzpauTk#N{Fo%q2=$WzFh;T;CIQS2M{}k*onXvp%K|QSd&Qw>vmAw z@`2-{aAY(s@c4x)Xc6xrb`Fpr9X1}1nc@b)cp;)>idjUWN|Ci&R;dq?SC7f3eEMY; z1AUf?WVOQ#k*Ob6bZXPNU5Ga+Y?XRj>cb7Kcvv7F*zf`8;o`yPEG>ojWmlNzAMe?* zTlr9gsC5`*4BT3Rpz|(Rd*1Wjq@uE5zB|kMMD6fO+!cwQquX(dvKnE3frLKk;YKcT z1LP9VL)vl4Di~ZIAo211xs*?r*^h;#XlZ`?c8j+AH&2=h+jsR8z86MZ9Ay!wc$08};v>kh=Tqk{v8DqP>W)n=5X6)^^p5K1ZUQqaD z^{=jlc24;5wax(m#20y+i)w-u#Hg+fQ@bhy3moU*k<@fUQ6CiypFhDgf;+xtL z@C#wDkoH%Ggq*s2)piajQ9=RS5D~~h1z)N!^SX!d0z1?US}MG~T~>b42P8&Af>G(L z)!eJ{No-E^aE=J@eq7L!nPB)6iusfSKXRf@`f~d}{lx2EzR~>EPb`n13a{aP2c!V1 zfP^?BsUoGMlyK7?wZ>c+ZXYkge2uvUHt9gh3SnlT;?FHx09;pnT*>1UJp5ouyV|{IB3s$%DC`w01F83$WQnwfEbttCGE5kvJ5*K|WJJn@3os5bfCiE`B0zphIPm`b>C8b)^ z+^tu4VIPhGt!5@9f0ehO8VD}^1QLZ;M;cWEgpVnJxW9Hm>f@fhjJv%YpWKn^o{zDR z2z)cUQZQHoPuuFFYsZMhhN;@$Kde=5%n!rADkHXx2(%y!(84i87*=3AooOi<2i2k{ zK)infH}^_FG;3>^V>=rtLrv{L5@W}W0IO{o->5=-%HUgI-^){ntgOWAYtBX4+<~vu ze3ag!^MxNrkfqt+PBp>g&R>Zkb49&qDI+s1BQLAC=>=fZ6>S3~go*-vou$<&lWORJ z?VwYx?b?Xj-bmeq$0TMy^vTIHLqDq}&BK|D>2#7HpETqiJq{}u#1=?;dt-hHEP1*R zA|mV*^AM+qd@tx={Y}&E6r}4j23Z{20}Ox@caR9z!dnfP(LQfK{=#fz>t5EepDX${ z1cG52I@>oTZ-4k30zFv^(h2J==gU<~%N6iGrtVPQsKTZdQHcSAuk9Nu_O*@h%F^Dfj%qXwPk1qFnu z>Da7*j2!$$eGX_VB9iYiT?C(L)W!}Hsq+w@JDHX5yTmVE2mWE-#G#8_AeOwSU|QpR zBoy=2`FvI>e9Kf%m*F?&g1nuU{WI>Z&W%Oc^^AObOBO~dqAmPujD^0kg21mZ7Z2#B zmzvTXoUfX_46$c?Uw$o+8)eq(3a)x?G1BT!u8_n`l6+-K0XrWI`^bT0(32tR9v#}_ zLb!|g@y`hB_9FWkMwxYppf*~*MOeQcS0pK0HU^6h%g8&5t(VRD$^(EuK*BYC1zu&9 z8Wv~WzM0zi8<``@w(!;$(OSc}0?NJc1i@VWZk6|$Jzpl8 zlhoq4fCQO?B=mSrt{AqXffhL=Q?wx6m!iVd`at!jvaNeXsM4bbQG2^D(`ju>?AzY@ zIm`DS#hm}k9$q&NSWKS~=I$3@F{MD^7l==&E&c98r^?nH${)#V4p5kw_tr+{3yXpB zGU}OtT_<}k%?Q0Z7~k-S&4|sg+ZWvi7c7bX0w({9{5lG5h9y`qR%?`yd?Y9nogqSo z`bgx-bd+7WeQmcF;=e_hm+p1+GU2J-_msyC#SZa0>tGMDk7!yo_(|7wvygce($aMxM@f&c{q;GZunmLlrNfynuD(nfa~P3blUS4BMcZ{eX)p( zW>vezX~L>b+BaW7EE%Zn83qc~r2_=kWhGe3tLj*hp=xhs&&e=5oc!ZzZSRAa2ikyMvRRrZ)uxH3y&!mWe8U^I47AoA@`zCh}02X=x?OLzcwMEkP zj}a?_9fe7@Qms`r?QTY1X3iU&=gX?sqFcDH%z4r7oRC=@^%rh92dh&bP0mOK>C#=e|AT!NUq$jNEru|&pC@m3Y;%2p7sfEXxq`kouFD0&sHpQP= zl(+wU7T*=_Jdc#NySk&E4KD0k5_SpMUl17Fimvx7)HX}n{pRbLc74S;rQsOjx^|6= z?-Eb-@)KiE?y9&K-nz#%mP@ubrol3I5uAHuW9+lm&Nt)FS$UUpUqW(niml9h`|Zqz z8V6)MK9!v)O4aUlFRsAZv@ry9&!~A;O!U_=%FK7x{bhvq6<1_Q84K0fSr4kS**Jbn z(uge|n8SCR3a}Z>DT7d?T)dym7U_?tD6ndAr3)Im02Hn_!F^ClwTk|7MV#d4h0dOG z{6}@~oUDqK1GT^&v6b56oi!cTigJ{NjY2s^@|sbh&7=<(v&83cNGpuOiD;LA*}Ix| z$#kmZ&tCj#b@?O}?n7^gArAi8dD<}z6ir>NabgwsnjdE1Rq}_*TMuH)v%>tN4~M54 zey*mY7VtzQ#s^DQFK+R0pQPF(aK&uHdWota)||U@Kdmm_F&{SC2o?|2EJ3y!#xf>a zl*RRZ1uiIt#}eNk@A7Du4x`F6FUT|7ekwZbsg-tD_Z)Ky_j}^JT60REQozIH#CZAT z88X?S>sTJNguY*ZZqTY3<=kR%%FUMicI!Puq^8g*`c&Qa%9wj$9Ly35ae}SHpHLXzb>T{91>RwW*O$PoQg{xpU=pXr!q7{yWU>~DMUgk~;wuN5iPbebpWGojx z2e~CJZq4hjzj(4&nkig6NGo(%!fVbyltav+QSj_D)a?xw7ZtYr2d%?61H#Wj|eaS6OLoH0JU+bU4U zAb6LGktiq{RiQE%i($6!+0G|Unr%|re>J^*E*vDjU+oi-Kv_SJ<$1s=X+)NWcSCcD zRxB_dyD|*opotz_^U{;P#7qa6jADmtIXp#!oKUFMad8E_==fxN2Aa;85xSDfEn^BrRvIpBS%# zg3v_>NZX0OW9|>86x1yM+IP@jh%Df`5QCAS6(%0H9sd4_wx4xKk-E z--pidH=zT1WU&Ks;;x_ysStIQ(a0jv1LusKJ+ZX zsCqDbQ0?iyQF(8s_WT1W{l_CD6|8n`OvBR&eU4sVv}-clcmMDcNGH3&1g&mXOlJ4!*9bD$l`E?Y2axuZJohF=XUXL$6=)=Ps=0L`kMjY|5} zfDRMXznXL10)0ou?n1eg{b;Pq53S|QsBM}R^z_bXw=t(_i zrdjy4Km!jsn!p9USIxS=ASL zjMfqd_#^!wd!FMh?7o>iFRJ=f-`g%!i<-rzx0{T&6fgA0$ecidZ@`Y(t=9jpJDm@4LeA1mwYh{Ytiox`m|bnuG+X*&T36 z+kF`{#7}ofOX|6!NOgS03O`_kdG$LM&HPADU9}?+pD-!99scsL*+b_Inv7KtK;|u{ zF65F3p8K+FXX)|Am#s=^X|^6TuuUc#f*gI7#qmJ(FoZ@RLA#Ff$U8t~apOt(%iaZ4A%F5v(G=5DuMtS*O zjVd+z*UtK478EJ6VKWx%k_+~hf-7!zUWYZ?;y+pdIJN31SHzgTx0v@v!@na!6Bi(z z2N5uH(o{P0#GPqDLXBG#p}*6C__El=K}{L_tbrc6yK?9eXz&B&uokd zpb-zCG`zwfXP3=!%AdEwZH@Yl^_h6F2a2;%eg`&(iC!1iD-HOv5YqZ5!t<}lqtp9T z2A=uf>$Dj5`{{eIr%Amv$aUR9G#0k7M0_z6YFNCX9<=7Z!!xzuE- zj+;$slgxf0l?s>*ZtKdWnh+^tpw6Rik1t8KOspE#sFks!#jM=Q#ledvcDSL|5?oV{tk` zV^aoQsokn}n5c&Vx%bL`*n{$=eY2egu%(JHI*`Mfy{{6Z*!b1()qOGnsH`1!@y5eK zlsY^Hbw#n|qafLWJQ6|mW?gB3m)S~~9uzwEmHSfK*0{4NB}Ks53F%L9OCEUhAn(A- zH6A5qs}0>a;XK@cRVcPY^Xr(IJ{5eXQ0LgK5$s;odRqIh7-fgeve?O7*&IOUiF6k_pY)g`yye`L{P#%<& zrfy*X3Hxt1z_|^|K=L~Alkpi*DiVS+0X$nSa z_ZygJuId}5p_n^i_Xec;*V1l$pbbvRQXSA?)={JKf}5&Ql8K6@;2}KFyouRhIGEP= z_B?W2SrYS8NGkx7N@|$LT9*?1Y9~}BHPV92T~0h+LjGr;x6K%Xhg9;8{g*w6urPWh zruEwx?VwoPj~EtFIwF%j7H_WojB73e=KlI@^i>xFToOATO2Nku23h&icer;2SSKtd zD^LuO`{?k(>VEO9>&v$P05zhm8zFBObkp$+rJQ0LqCSiuzrHx~~85)X%F&ale z)P#6!2TUx6nDOpGAs@~CTf<_A&vSb!9LauSR;y|Kat;{xk_O=h#s>VyW&26{(OU;P z=Y}LcC2Rp21!Au{yAQq@r__TzAsad?DBTm!!K9wI4!N(k%0qcnLM8EWGEGoO_E;!= zcUGINj?U&MGsPZM5f17{V+T;@HXA1Xb&Q?34+Rqh2qr^W=-RMVcKd*ZHy=4nl=k{| zT?CficT12_eoF2pb#&Uf7+Q8ho_dDYSIPgNLJM*G4ZZ;(26O!`9H(7>Jsre?xNvJD zmmSJ--l96Q3#F_@OS!}r>9c0f*$e>+%TgIIM^b|Ci@m?9Pt1^M%<&FbNS7PRdM91B zR%W7->8K&*%Lr9PQ;-KVc9vLZa(PzW8EuAYhr2(&`fXudZ#Fy zS^wo+pn@h{p~hkQ`n9Bfhc!&5J4^s-mlqNzkVMvDk7ES-jLMNZLE{dL5qFiIIB^!>hFLrpA(HrL|TYC>HBeA@v? z_xi??7cV`MBYZ38)%p@lvR_iqXBra%oVj|w5I7BeQ7a%ZT>v_3PW9JQ*yF;--@?a> z$!+C4sH~HS9QdPk1bzR{V86C z^aK<5KtWda`0q*`uF046VH%xb(!_ekcCpZ9yg86Y8kCn}|L5DQy)c4gikVr0JXc!& ze0y0Z5q41k#4`l3k?l>IH~gaO(vi}eJ*Eiw}Mgz4o=<=2A#-7*Iags)NVZ~r+_u*>1;eWa#+ydoh_FIPh-o) zubM}I$ZL;4i8I`_HY@z8Pb08IZO*kM>rQ!|ppGsz4y8k<<_b*9F(>|wm*ZIhfmEHx zKnHdiha;EinD&i3j3F295;0z&C6E>Q@xFpIJ|oT%6wb^7E?kIZM0TAhvYG(O>B?mo zw}QCweM8XdbGZ5DGB6mMFOo!WpqDRR2rwy@^*u)CD{BK4Z0mDAU^=&CM`JdaV$3L{<74R7;*rt{!q z^Ap6NaRt3M3ye__wBHdj)GPW#*d*Zuit#XR2*m;BGL|a}^`oGLk~xy`=GcSMw| z+6(Mm%v1)>75}&1U8%rH1SHx9q5dk_?c1{^AL=@<)}C1gOji3?JM8GlMSvyedMyP( zRWI!?7^^yoBA$e4*w~k4gep_3GFg`;M)j3}cIi@*FO5yCY0=pL%HV8c%434bVr8;P zt$8npv|9c=m-@aAD!Ddsu4OggRoVrP7jZ5;>0uL%i1k3Q(w;>adB|zfz&Gz;5dzqkRp-6XU z3y@#~%02;5;1HOdeBAJ8a}YE+v~kmUGaF;Z6R-26Yj{r3-GTY;?Z}7S|0sc=|c==BveNO{=+?1e@aRs}AWwv=9%D^Kdsu&YL(WURX+y^lRU zb%yM0r}G@rmhvKQmQl&&I^Awt76^S!$Y zWH4YYQP<-_mu%OTt;=p@gAqOW?Q*zbe z25xDf3ygpg%vl$OnN351yt5;MnbTsh+d}Q4Zw_meVcLp`taXZsn;Zc7Zf?jei=;?= z1y;`I0^X;z9k(Ck0whcOK~^v@Sa~@^b2WoVveb5J9;qUDht{DbXNJ}YNZw0$R;(Q4BZaH`h6M*dA6knL?#eD`qz0Nkp z!z!9Od`^WIyn;orLf+}3cSK#_o;j2-Y0X{Vbj!mQyW!NFhM#%C2Wldl*W54p3{GVz z`b->(w{r-@w6@7_s14{z@eJxDVFzrY-eBePrWeY%wlvBI5lP!CZ4dem4xIUY#P$Lo z0Y>7Nbak=+XhIyFqh*LeoEH{=h!2Jk@x1cg*HT+$$n2A|3LT;iBbv$vfd^Joclqx3 z2W@3rl!ii{^q7DS@@kT#l(oDTgP8Z3=wGeAn0U~%7qy}LD zG$L(U_AVcAmhnbUE1SY+u7=O&oPSi5ZL0E}vu8%nZ$+}$s5(Kvi98|;RP?nJf)h_l zE?QNefk?)(alAcoU!dmD>uXucv+kriR#iE8EjpJunr=G*VqcRH09;%ayY#M9jbB$2 zU`Ht+#J+tc{5I-y49bPbe}z6kBjt0HfPA;*zVW%~muGdE$JTd%b2xxA+r=_QjSHSB z2p~@m@Y}6YII|DBt+6zabIg4ALtY;Nc}{kJzb}H6)u}4ks(E>|kl*^bMt5*-<||eO z+73u3D52)T%22Ugcl0Ap+zT7_y9V5VS@z9t>vkf`naEETw6# zy1ntCnzp@)cN>25jqP0+uNcqh>~+?-PrQ9NjT$^NpAg8ulCUuC=PEUi>}iPMbJy)? zv*#+U0M5D?v`6~^2Ucr!15A*t6X2F!^nxHkg^Lem6J0^ZdDFDGTPk0hAo z5eOSDKuOdz|NUPGh~Iwd&VlANu^_^%K#1Z<4v00{`4+?HEz3b)uVI!u&6@%M!U&3f z1)~zy0bb6Y-E29%aDeS9d(P-oFyY4>bCA3jEKXyM96-+&>(qwjPc5=3p2<77HFU<9 z!=@P$b^uc*YwA=`*9lXeY`@Pb^+k-zB8*0->uE+|FBW}qA&~mfpvz+JEbrnk8XLd2 zgF?Po5>;F&E6A8~M(ny|^Rg6aIXL}!2e<|dLWw~?!F{6PS)gKcYjc@MWtQribHi5t zh6466H@{p}?gFJJG`^NdV46Kx$Pdh2;N*rmhQl=R|{gPocqKrzix5Qq{}%ohViwdzvJKC#>$Q3SL?s+)cU^X#X51SEgFVY9 zl*=jbs&4YBM7$WC598OFM}?D#k=vPBUV(}-ikIY)t|M6n#S>`9mATfeZQOO{9w^dT z7@wr{c2kCZ?wXaoJ_DRhI`L>%p_DM=P4ZKs`^xeM#gq7cH0x$YWYG(o}eJO;yT>|m|W0gb`(9bPE{gUS{4^(^scQbNDmAV#2t)#;EoTWMT@&Kqt4;-s5qD;%qqYr*$%WJrfv_x5$?ebe-tX zJnI(cskaC0+-e=WCK{Io?WM}%P-qY@Yv}H|wX$Z@sU~?r%0FnEAjC+>Qax+g*Hcd-s8nOJ;|EoeOt()8{qBR)LJT#C3?*O;y*cRbod&; zL`#8JRXc$1gRNor3WD;}xUJT1J{=(Mj^J4ELR}`729?9OnRg2)n(gS$?AjAQh38*6 zeRbc~O6Vo#gVB((mZ zxnmT4oJIfb4_c7~vKV2RloSJI;@Np53*hvV;p|HA+(RB~yzVp$2kR*(!9=A85EQ7a zX1+KOpU-4eX0w@UB*wmrM>xsX^11s=F%jR`eXgR$HvNtvKEESH-00(LluQWX>SlBQ zjjTUA&mGdL88dr2%y!7#6VvBVu#LFn$*@Vh(70>>c^dv93$c;O?fU^AQfn)d>D|&56|5{Cx_^3y;p!LiH0;1LSd`N1qahC13u0nji7dZ z9$s|0R{p}IqrweQy4{Qv)vg%><{tM116SGHt_%@V3MSJd4JGNWX7pS zt6ZXfo-Wdyi-HF*!hs-i$QWE9^|%RH8H$k+amICHM>E(TWGY6g41lQ~~_JBb$q$ByB+}f;aAofH6 zTgrCUhgh-pjd$D8>DJmbx> zceC#{MFy~>m<0I|7744v&DQT%opvL#O~bMMd`5W}b^|rMVX#I82Alg(z4@#)>G}|( z-Z~J$E}J*8Tdo)b*LaV{WTK*WUil2AV`jM+tZDX=hmLX4Wp^D$V>PJ`qbz|3Qr7V4 zot{s*gXt)m&e<{n4B3;nUYC2;D%S2#quWfQBlonYf&g@>c})P{mp$L`41>s8#0$~2 z?Oa9xznUd6$t=IeJcFZF7E0lZ=!F_^963f%gNHwn`r*itnDwT zdDtD$Bv=EDgkq}y=pH9V5XpcmNLD(ftJ6+5MgY}+*}`-n?IrKo?y}DiBV>hE_ERA= zhX_`f=x75RDs6}YGt9xq`&c%#7uc9k3aaT``j^`T=#p2kK#hqr&=!dPkF0aXspHsc zTs)K@SPn+Z3lcc^Qy?9Ihv0vTT8|$;J4LYr8WXZ~7a?4yMHvttD!=RtXqhJd6s!+r z$3dmO&%iIS*qb{NCh!KML`r@%rT(iRW7GhvDl7_CmHj`m&43mO1o7VoP;s$L%77w; z7BI_KASCagLLKslhpktFC#LXfHa3{QeFbTVq5qta``Q3cr72OYoTcCCD@@DwA z04hy?@_RBV>2n95`-K>(;%=q<_jT2{1+6O`X!u+R`OmsS-+H0?GoZ-IbZxO2%2y+^ z%Z2`RxJ?P^)$2ikd+PrJ?*FTC4ppcB1>FDVkpF)UaQ~kN{}}TnB3DqlAY9HahB`pdGr*;VZ8zb~lAx=PC%$#D| z^&)CD=&9oK#3Swn3fZST(1-o?SZr~Hx{b||^$z}w-NHHE2U!p0iQ2F^)DHh?#00Y4 zZ}C=h2}^RykWYxtU=vbQ~EiI!hc3%BTeR0<@K_v8dJf8G8tqwjoV zVNdpCmFara8g@c|gcUE2)Uh5x&mJA-c`jUP+^Tdg6VU4A`MR~hjUId{1JpDt!L4H& zfB_B-J0!{;>Omg6m_q^@NGmo0PM#?cRV{$fu!Qt!9^08G&;DUd!HD?`K%rJZ7Xy_G z+Hxy`_e!nCMnU)f5s>67cYREti#YVXdziuSWqLh9{Ref&VSJw2X3IDhJ9c3F&_YZE zulGU(zujaaF@rZw>B9}-H;e|2!*3=Druye{%K0$8`8CQ!rax&f9*n^#HuLdF!H zK=3^@+8)-F9w@ZBYk_qieA$G>djIG@e&mApj3IxzzF29IzkO>cZ$x;pV4k&P0%Ul& z&AoNJ>wVM|11Y_j%sUNfck27~hbgK%b0;8mxFP_8?$|E|=+m!|mhB?Yr_BY}aL(`s@O}a^(`7_xZ`6{aBda{xG zoG~<8|Mqu1@O97dFPbvqUG}l1{*muj%KJxmjTOIP(XN)&pDP^IqfRSNj19S0SG1L) zg5=rgF9Su?Vm{i|x2k>fraM6z2ed`xcc1Ek@mZlZXdP|?o5V`Yts&6gS%&!c0J<;~ zq3tlh>;B^--;py!fJK1;J4pRnA>mF}(4)~dex4StTJWHiyAIMXGy{UXcxtu7#OXuD z7QtSJU~>$Hb>DC;gsr*Lp$!qRboir>Gur+s#&dbt8opR$En+sDQKCyW>-&3pxatbq zarPW&v0^P?(A}*^)u06{*zg!b3eC1S@_rgk)}pjXDGw{OKL!)I?m;ReSp-tKTokC1 z3J57s6`lhy*xR53R+&8pNK)o=?MWr|1>=E-|&wRYBjnRb$*;+3CV z`Bseo(pMTm^=!`2dG`fdZlK-JDFIS>E;Dyx)Yrp|V&jfmR3Md(b6amhVb~z{l{RQb z0gvob3D19cvDl0MgrwX&Pn;Qif9=8W*+i&OObz-qy$0M5#Mru0C- z^T}F9VrH6Nmz{5GWAw@Ke=e=- zaogF};>TX62LSGVq)GQ>?I{P~uvfAZB@b)u&pwI)O|w#+Z;r`bgG)57w855b@w5&2o@>}%K^Rww6qD)`I-^@qh4!|yMNfqRiBL)5eVbC(ut z!`gi{D)LAsAQ_}gHFW%SJ|_jJrDoET6>i2POo<7J*inb^Sjd z%jr0f3A9IkRLs|V91S==Q*8-?rZkqK709vb*$lpeh4}(o`8%1e+AmCiU9oxWKhEBH zmerYVr|A8j%T2B`iq2~X?jiW^GK#i`mR|9CQm=2-!X}4civXThHcc=ohICF4Kvv+6 zN|tgk9D$OExEuDzL!Xa#js(2ZFmAVMO4xa9r{~5ppH|@= zuqxOw{QDm)=hPaS3`HL_72;mlw{9tayq56p_n`JlXpfk?^y~W4qOZXKT0Bkbozr~h zl2G?BX6OTil$Kzt-+5SX$|g$tVm=wYCnS9c0T-PC<>9u~Xw^E1)BXoi@Bi`56VDoN zwFA7Ul*7s}9N4)=0zu_E_pqjN>$D>-#~?4g{j z-ks|6JJ*k1Zo;P=4&0S_N%(HNZolJm8uG~0*=~emkR<$=?wl(!lI?U+&)oc<-H#&O zQ)oGdS{f{Fao<59b^%AC*?s4Q7L)AJPh_upbzqzV6u?)M1vX~eA^{c5m#{8%tdsd8 z>HL8^wkBo0{b$!S7RfG|{%9gqN?j_=V272S;_dIt_d!B$C7F(WmEhDAzL9Z$Az!|g zoBz4YJTS@9&mclw)!lu15oH_>V~v8~MAz8#UTHaw*sp^z>NPdVqaAzCpJ%(XR9fOX z(?N)W#ANZcu-uQy(k^EZ!q~9}HyQ?7WT-ZaJ!*A+;Gx;e)85QSy}LeNa&q~4b9W%R zGkuivOzN)eTKdw#2zRbBClTuQ>SdYxHDaGAWjciXD5Q3QdTN?XG<$*7m;ki7!4Q;jeqf00%TtvAWmZll#xPMbp;N`BYc!PA4HM59M-tD>6-}7$?&|Cn5uVB zPkXA5S|w^N4LSO3Y^Qn;Jd|l@!5M#q8M@kO9W*8IpaouzOMX4t7&m|+`Fm4wTINY~|r14XMl-Y{cz1*k? zZ>6ffqL6oXhXU4emAz-q%zD!zt)<6RfZm^wdD@t}}zgeg1h-s9r1pYF`%&yH+SgkHx& zN~i7SP56gCcw@T<`fGiC+9ILSSs>E_Z23#K!Ilqw1_zR&eX7zCcY_ytvRim&KhkBZ zp(F097yQppc3r^jsZS~ha75-c9gG=EPtwp68YaIO9@ppJLmCZrWcqI;k25G$w z2pR>DuK_e4GwDe7K2OctUB>&*EvA+T;_Nz@9!mm3%rt~@L4FUWAu0I|6h$%eF;ug1 zleQw>cRTZL3NjI`fUPC|`=!Ko%14&_?gJ$ElH4o;Bjr{xf{C5gPl1AdFbMh73Jq(XS0F zszS=2y9;(ZK%~95QoDNwVdt^X9M0SV#-39^_&gLSZGHbA*GLcO&?sdp(ZhAB%D%^P zv5w4SJ_H=Q!%^qPYXyczFRr!2vtjTL4?UxP26Ctc{vM_-wH&7^p$Tt2K_XdO7})sA z!L@7ofdAfiP;q9Ef~cVV30O{>!uQfiO8j8(TX-Bc68O*q{uu8SmBPRGMSp$lE9QKo zHX8WT{KSty@2o(-?(|`;s&P+PQR4b*coGhKPq&f&%*A)_mxE>HTH?tQr2e@!sLux{ zZvCjB4O>zd9d%nr+f{;fx%a=( z4`;pvMQ8k6ZNx%@;6&aM9umDfKN;CwzWYm@NSUwiV6KaM*p*>|u8 z$t5tV5eo3n^x#frCIebOxe+!ytNP$T*`7sReJ*u0@Enu>d=6y}IJwoxK!1PRX8>;8=fp27Cp=l{Rli;`FkGJddxCEss?8m9hWh=-hbu?V3^9SfWR3z zDW-5rxtmeX&NKew+7v$dT~7*xmth4d5U;_l1oH3m#Mwvp{?+3z*ywYyV*x>>y|<%6 zgd{;gkOJ3_&_CYa2T#cRGqH9`=}5z$9fCv5UDeRsB?2MXY49~?Me*q7Oh&J+=6nKI zxIA!?7-@UPM7ua;cl1s^cCt#Z8Mu+|XSx+>NV%xUtgVd2;#wC?*~8^e?tMZ!pVx_&Y!Az*@fYU%s#x&(YPKL+{?Yen1pS!gB8Xn7K6#>Ah6_^SstRFbm z9%>1NTCz+igIBC%kw-d#dfH&`RdpGPR}5n`F|Q7JQ=ds4KM6K2l^9$7A4&hn@J>V8 zd!DC5r62zuHyiT-s4e-qu?58QzdC7hu6M52CDaezD>;8;{Bz?E@SDfk8ntd6dG_yM z8u%{oW>I*;ji_hu)9*b^(Omo?Q5yy>IVe8h)n%ri$9=qb6U#54a#0rFZ} zA5(G40w9o8IqIl|X1cL|j`WlMYufYcr+k*5rx4%lMxt48*k0D3n2XWP498xB9eV*J zey`e(Hpgz90D5apLS9X2M`D-3Q!v))xL;JVeg(wewW3pIc4pO*^{~a%qnqf`AK*8S zT{U1i(nY&51L&+z8ZHe&{sZ^Fb&=-Bv?g3FV2}9h9_WI%=XMyeP z#od)ktC23W^1NwNEbcB`Bd2VtHI5-u`q`u3ucXh`AfdQ^hJo5~;8%z~{p0@-qURqq zzPM3uMk|Rjm6|!sN{jM@6~@)5g|3>6x$&#j?79SgPY{$RKiKhF>R&VZ+STZ)Do|eF zb}IAfrvfco3zb>4)Yr-WqdCY^2>B6;_*Adz0q&{$E+u*ambqL+sHY5RBEJ`Uo_|1M zL72ze!i;7q*GyJ#Zy>4cMl23-3)GHTU*Ms4JZ^*v#@tAdPhfJz zt!&9Lh@$tZD>GkMWV&jKWR4{&`i<5-{w=!^`ta+%nj8B4z6yKU392D(LtDpYpq4Z( zaGlp_H4zkt{rrremJGS4`LM%R2nYb#G|$h3e~+$i&>APS9~s9q_JgFL)5ER$=Q|H2 z;~S!0a6Ac3xFJDx0^2r4o=XWYL0@rYAOxXlZS^oo?82 zTZ4aE`LwdfOQw{nt(nF3(X#tCjn1PVV(7Cs+>#}`W;&CntCeaqQ@&IlYwY7D!Crq0ok(8E})g>noSSxX- zy&V6t@`;E)ZV=h~XCrOV*W`O4l(W3QdS5t84Q;uS9PoP)_3}9QzH)yo-oAL@LfUl) zsbr_xuw1#bhTl5t3Y_XL^X%weqAy=5Wb>xaVB+P53`Wo9>ljm zXN1^!+PeVpa{kfC@l(W7;ii2pYPLo#5kF$TY&!?M_HGSd%u)_5FEnZb4fm=aD`wH` z)2YiRs8iK9BJ_t$j$|{p!Nz$PX!SZ5NHfBo^I6nVj%Zk&=8sAyQ+jAQ%m`|HTai2E zwzIzy%WwsD9{IGQTYfbQ$*L|@IG4Hhn*-IZrBp8LlXSJ+cE?%=*Pwh;Dq@D+Bh zz1r9==5ZCOAihCSN-h%?KoSolqJ1A4&KyzMFehj;+e#NCFsj09=hi*;?Pvo28Y&rf z?)3kCufO=<1=m^U!dXVcmcpwBLT~+!EF7=%=aZJv@wp~J7x6_CN(gj zEP0J!SY})hgn&wm5=Yp$IX{4_SPuQd_VXy#)TZWDc_k;TJP$tU+<+tw=`ZBA-HSos+_p@ z2H{4k`g_%+1`dXu+ht*_Kf+e*B;q{(pC{w-1=JEKAf0y#rPimKCViC(cs3rmB5+YX zN_N4vOiE*THz`-GQ@ojoWT2 zn11PWjW`0nsb|jbJNb~v3Fi(3T&%J5TOLZtsYGN&l%U-X)`Ec$(oJyP7IV5s@9 zoQe-bak+rn+z(X89wQ!4bYicux*it0Mi@<9D#w1~hP#vmMoVaYxm%+u_#_=WzxTDy zBQ4Cf6@DX*#zUCKxUb{TgYTuTw6o*)Pg$r!%--YX2xe@2L$bG^RPiFy&a9o$201$z zyN;B2(E5;2-#&rI*=K#Wv@bQ84jXmHr{jx2r6RCgC~vSXe#L;Wr#oFb_ONkmg@7-& z@d!Tm5szz`wq$sVsB$7Y)OaeXp||o;eSLux~aWTyzrDibd zy~|5z1tK=nsxrTJH&Jd#NVmw7HW}TmasLAoZc%0wunrO_u^L&^ZfLCq-;xJP_ih<%8&%tbjlgl94Gch#+DDa8_X<#gtMIrGOs8GLIF_ex8 zejxkp68k9#swI;Rm3BSQSsqwYmbk{Y^i?SgV5@Hiw0JobZwG_6sNAQm30^Q^XskS+_&RxDFhKgF5hz zxu-WKTF_-Gx`D1QKRZ4&Q_>ZPwpnW6r14el-*p+ig?1k9TQ`&f$2?~}s60)T+8OKB z>|14#X(uqy-= z%?xd0ZbJ}&lf(Iol6_BWC+oip*Yopn<#kwMeE#h{&&`MKH~0V=I1?PVuQ+-NK1oaD zSGj@TvItLdP_{p;!+I+n@Vr#slMRf_MGi#QFk}|q`|v1~PlG|uX7+nn_f3Z4YJykp zbX=(z9=qJ-D3t6+#$VwWegGnB!(E*cF_xdi{4lKb~*X@Fu%SeGmx+E zr8zzYRJh4qFXG4%q2cldI^ zz6BiK7Kk(`!latR2(%)&N5_-N45T7i?g3qzQR|?>a>NB7A9(|Km~m%X+V69;D*;UH z6RbRoQ^@ea6Y7Fve@{-2vx1jvQFDCFS9BBWg`F_mZfn&Nn9oG{zkd4{# zEHW9$S^zmCBd!KwCH8x%*>QOD=#ck4w2L$h3p!B9T%1%mfbR}r8+kPtwT~Gq* zTQnP<-PO6{lGTEA7?bahtRyP&n)J@^g7|t>;+;#>Lh#kpClP!^I)Ce?TmpP<>apX$ zMT%};qKcDA&-@NzjG&$|n506Zn-NpE2E8cl+mGgq^;DPay9MpL+XhOl5^|n?63(ky zm%?7kMgv*VQoEI5b!fzwO^AtuB=p#Utl;k0;epXg!6=P@TNxj)}6jgsb^h-;(F+y{{N~iWmlq3(Ob}C%f&q!nd+105BIJl2^U~x_KM(hR04*X1^w* zqTu6E1#B-RJH91alJukQ)N%E_4Rn)01ArjhzWL~{>-RXM@ydI8u47ShX-zchmwYwk$ZJGQsA znC7;-Zdn}NP7Tm4hU0jN@ zxzykuf9HJS`fOXmlCr|6^(coje142iOhg%YyJ{4W6o1Ec{EfJHV-CvVXQ=YW;Oy(Y zOHR>;(tFC%YkAM?9)bR}RZaZj8wt~v(Q4O`yh{Eq1PyWmj(xu0H`?YHS>qmWJG4jl z{z9z7F8)?7jE4)oG#dBv`xWi@;5_*)3A=uO_k>8DHvVPHKJ4rc5n?*VEc-Su3nx`C z8n2SagfvOUt*J<30yx zkg+6ORc+3I`Y{dkmsVru*Y~DE<(m=m^d28xEY{I!BStFh4Z$7Ta6!g6aXKqIFQgqg zW~WuG5g^w$b+74^e8>=XD+Rsx#}c4RMS`@v8BFZrc5C{|5pXESv|B)dS1t_z<4>|n zpJ;FxKd_mSK&k~$a;5_C)(TJdC%N(>vpyD_zRq-W_=q1Tg|=NVavu`A!Lb7QdVaa= z0mw}Pm|m1ZKzhPth(<@&V_+5@lcQDM$$tm{>tzXPI)*I~_Ss!pfUhQ59k=}VVsRBx zj4aw^TH3*9*j;m!D6)}~ii~A?5n)PU6ybl4J5BzhVNWj|yKB$oT{n;Bx_eeniBVNM z!t(Py8`p4rMXwth628N7W1g{WSyp#szF+gMERTPX_G9R|AO{JN+1SXE!|qNB(Mm~H zkL8CZgptp3pAT4T4) z=6kM&=1$edG%BVzRU6-Gqu=rDz!faarDmf9xnM5wpqKHN3AZ&%%^mO^I31fNLnXo< zWoLoP&|5*$j?CC>Ep3*Z^_EAIcN*&{B17KM*09$3T(l#AK_y+if8+@mhI zs)uq5cBB?aiyb}Z{SM##WpHH$b1s%PO{cNgy_R#`U(Q{r);)cm_r(1DX5NEl{Qv3~h}6Mcyz)GW2^%QkHIMP<1h200IzayQlSA5$ds9^C zUv}Toe@;xh!QPEH>{dE)J|69?WjY8FqhP?LtZ-LD>u3WdmGK}o)4dDsXjNBWAC~I| zNV6+509M-q{)v!$ssQ+|$jW0R=q_MZ=69M^Ny+*J@Gk4j)#SqFu4JFqhO9@eq@f$s z1Dyi=4_dCs^W8M-%~^XW>efSi8+g8iiUp9i&02W$0!@IW)9Nb#ub2NSpzo8w(g7qf zkQktoz8%{QIb+ZFFt2NMQ93|#eS^)p4t-3GUw7o`X99b3bRE`uf1glzHiF1>t1{JL zami48*bfe$7xy=Fz|gglq()&oUP%SvCgZYDGx1-Sxdw+aW2{}hG}xc-8Lgb*uw38eHHtB# z*0FchtJusd2g;IVc&>5maKbh7-1_rQ93C(mCD?29m#Ev;MBenmR{{<%_00frTI?Np zN2Gv(bZ0h~D*CSA_rq4fMB#cV_KgZGwT`Wg@D- zT~5D3-s#^%UiHs6r{U~2Y=*#tE1Bd%^}J#yT~xA)2FKKM*EJdsQw*>TkKi!xZ{HR# zBgjUv)n1Tsic43KFq!X6v#ck<+HP(^%6?au*k* zTbU`czf39M3=B&MC8fz^Dv)>rI(o?r*z_7qe0^u4w8bz$GW*BhDv)PFpDVe#^f0Q^ zn@qL~1Qbh2maPj+asdGVc`EOU&O)>3~rCiIScyu&() z>V^ASc{f_KYplq0`9+7{-5F91dpfN8u0cmP?ca*)~tl_npuAbA{X!fGb^i^Ygh-DUIS(QD4aXXl*=TMHWnMM%aqcb7TWqGXwQ zX@4Kf5SEenaE3~UNG`GJJ8?7>g63ncv@#KzraeSMjL`L{bU z)FnT>g9$Z<-091dvKzc|&wJq%BFBrDIxEx1jUy^KO~-@9?zi4cA{5+{3yDw)HTovyvAErkUy z_&JLG8$H>|n{6h|>ADi(S$%j5E7A0n@|pz|oi3uF{ad2`WVoSVRS)e-vF3=H#<8>> z-n_fWrNSy|+u83Syv3HQF_xc`LE5?RV5*98<5P?oyLK=c<@gc)c7YdhIn6H9(d>c| zaZ2>T`0o02WHD6<-r_;j1a=4fnc;y6nc6}#wF&(A{%%_YEqU%sRIlt=vw6+UU76+B z?55JOH-`$KwR_!Wi&JGvW|pTz&9){CTp4fN!+expAh)~(bLCU@q~@rK{N4#rwc9?3 zyxvN{p>mOxk|DuO389ULI?nlW| zLAbrXDYCzB8sR@T%}qvfRa&R5M9}Nl4b(A?b}NRVBX<`AC9pu*gmZd1Fp~th7vGnq z9Ch%=eX`lOR|@*l<6W4!R-otJSY?IT4yr6}wU9HuId7uA`FUqYWW6aYXdkCsv!?;D zC$Bw*G~AX_N#>=rK2O?xTKpoT*KqPn=h9Jrzkz z`yQ#bQqADzmk?{(OM0Q(Snml%bpoFX9e>-t;P7F(v3MXdHHLuJm;NsS)hk**RaZT5CbM7W< zHSA#32;i7Qz?PfD+&91iWuCi0Nq}VFRT%lzDYo~cS^!&EhW)qOjU%bza2oi9W zMs4vGJmwt>j5=jsht>}8SZN^qU;QH4wu9QLW)}qs&K%sYNG9NbL9Y1_M4UaXD9mMg z2;2v#)zfD4v=*fLt2Vqe%9NmcHyT{~wwK℘!$o#)IXF+~Uwb(9bnaH> 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 Ko6h;N^8X82&BYu5 literal 0 HcmV?d00001 diff --git a/go.mod b/go.mod index 43eadf34a..d0e780dde 100644 --- a/go.mod +++ b/go.mod @@ -15,6 +15,7 @@ require ( github.com/swaggo/swag v1.16.6 golang.org/x/crypto v0.32.0 gorm.io/gorm v1.30.1 + gorm.io/driver/postgres v1.5.7 ) require ( diff --git a/internal/api/chat_handlers.go b/internal/api/chat_handlers.go index 1dac54752..8a78302fc 100644 --- a/internal/api/chat_handlers.go +++ b/internal/api/chat_handlers.go @@ -62,14 +62,27 @@ type ChatSessionWithMessages struct { } // getLLMService returns a provider-agnostic LLM service based on active config -func (h *Handler) getLLMService() (llm.Service, string, error) { - var cfg models.LLMConfig - if err := database.DB.Where("is_active = ?", true).First(&cfg).Error; err != nil { - if err == gorm.ErrRecordNotFound { - return nil, "", fmt.Errorf("no active LLM configuration found") - } - return nil, "", fmt.Errorf("failed to get LLM config: %w", err) - } +func (h *Handler) getLLMService(c *gin.Context) (llm.Service, string, error) { + var cfg models.LLMConfig + // Prefer user-scoped config; fallback to global + if uid, ok := c.Get("user_id"); ok { + if err := database.DB.Where("is_active = ? AND user_id = ?", true, uid).First(&cfg).Error; err != nil { + if err != gorm.ErrRecordNotFound { + return nil, "", fmt.Errorf("failed to get LLM config: %w", err) + } + if err := database.DB.Where("is_active = ? AND user_id = 0", true).First(&cfg).Error; err != nil { + if err == gorm.ErrRecordNotFound { + return nil, "", fmt.Errorf("no active LLM configuration found") + } + return nil, "", fmt.Errorf("failed to get LLM config: %w", err) + } + } + } else if err := database.DB.Where("is_active = ?", true).First(&cfg).Error; err != nil { + if err == gorm.ErrRecordNotFound { + return nil, "", fmt.Errorf("no active LLM configuration found") + } + return nil, "", fmt.Errorf("failed to get LLM config: %w", err) + } switch strings.ToLower(cfg.Provider) { case "openai": if cfg.APIKey == nil || *cfg.APIKey == "" { @@ -97,7 +110,7 @@ func (h *Handler) getLLMService() (llm.Service, string, error) { // @Security ApiKeyAuth // @Security BearerAuth func (h *Handler) GetChatModels(c *gin.Context) { - svc, _, err := h.getLLMService() + svc, _, err := h.getLLMService(c) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return @@ -136,15 +149,24 @@ func (h *Handler) CreateChatSession(c *gin.Context) { } // Verify transcription exists and has completed transcript - var transcription models.TranscriptionJob - if err := database.DB.Where("id = ?", req.TranscriptionID).First(&transcription).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription"}) - return - } + var transcription models.TranscriptionJob + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", req.TranscriptionID, uid).First(&transcription).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription"}) + return + } + } else if err := database.DB.Where("id = ?", req.TranscriptionID).First(&transcription).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription"}) + return + } if transcription.Status != models.StatusCompleted || transcription.Transcript == nil { c.JSON(http.StatusBadRequest, gin.H{"error": "Transcription must be completed to create a chat session"}) @@ -152,7 +174,7 @@ func (h *Handler) CreateChatSession(c *gin.Context) { } // Verify LLM service is available - _, _, err := h.getLLMService() + _, _, err := h.getLLMService(c) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return @@ -165,16 +187,19 @@ func (h *Handler) CreateChatSession(c *gin.Context) { } now := time.Now() - chatSession := models.ChatSession{ - JobID: req.TranscriptionID, // Use same ID for JobID as TranscriptionID - TranscriptionID: req.TranscriptionID, - Title: title, - Model: req.Model, - Provider: "openai", - MessageCount: 0, - LastActivityAt: &now, - IsActive: true, - } + chatSession := models.ChatSession{ + JobID: req.TranscriptionID, // Use same ID for JobID as TranscriptionID + TranscriptionID: req.TranscriptionID, + Title: title, + Model: req.Model, + Provider: "openai", + MessageCount: 0, + LastActivityAt: &now, + IsActive: true, + } + if uid, ok := getContextUserID(c); ok { + chatSession.UserID = uid + } if err := database.DB.Create(&chatSession).Error; err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create chat session"}) @@ -209,18 +234,31 @@ func (h *Handler) CreateChatSession(c *gin.Context) { // @Security ApiKeyAuth // @Security BearerAuth func (h *Handler) GetChatSessions(c *gin.Context) { - transcriptionID := c.Param("transcription_id") - if transcriptionID == "" { - c.JSON(http.StatusBadRequest, gin.H{"error": "Transcription ID is required"}) - return - } - - var sessions []models.ChatSession - if err := database.DB.Where("transcription_id = ?", transcriptionID). - Order("updated_at DESC").Find(&sessions).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat sessions"}) - return - } + transcriptionID := c.Param("transcription_id") + if transcriptionID == "" { + c.JSON(http.StatusBadRequest, gin.H{"error": "Transcription ID is required"}) + return + } + + // Verify transcription ownership + if uid, ok := getContextUserID(c); ok { + var t models.TranscriptionJob + if err := database.DB.Select("id").Where("id = ? AND user_id = ?", transcriptionID, uid).First(&t).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) + return + } + } + + var sessions []models.ChatSession + query := database.DB.Where("transcription_id = ?", transcriptionID) + if uid, ok := getContextUserID(c); ok { + query = query.Where("user_id = ?", uid) + } + if err := query. + Order("updated_at DESC").Find(&sessions).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat sessions"}) + return + } // Extract session IDs for batch queries sessionIDs := make([]string, len(sessions)) @@ -301,21 +339,30 @@ func (h *Handler) GetChatSessions(c *gin.Context) { // @Security ApiKeyAuth // @Security BearerAuth func (h *Handler) GetChatSession(c *gin.Context) { - sessionID := c.Param("session_id") - if sessionID == "" { - c.JSON(http.StatusBadRequest, gin.H{"error": "Session ID is required"}) - return - } - - var session models.ChatSession - if err := database.DB.Where("id = ?", sessionID).First(&session).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat session"}) - return - } + sessionID := c.Param("session_id") + if sessionID == "" { + c.JSON(http.StatusBadRequest, gin.H{"error": "Session ID is required"}) + return + } + + var session models.ChatSession + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", sessionID, uid).First(&session).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat session"}) + return + } + } else if err := database.DB.Where("id = ?", sessionID).First(&session).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat session"}) + return + } var messages []models.ChatMessage if err := database.DB.Where("chat_session_id = ?", sessionID). @@ -382,17 +429,26 @@ func (h *Handler) SendChatMessage(c *gin.Context) { // Get chat session var session models.ChatSession - if err := database.DB.Preload("Transcription").Where("id = ?", sessionID).First(&session).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat session"}) - return - } + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Preload("Transcription").Where("id = ? AND user_id = ?", sessionID, uid).First(&session).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat session"}) + return + } + } else if err := database.DB.Preload("Transcription").Where("id = ?", sessionID).First(&session).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat session"}) + return + } // Get LLM service - svc, _, err := h.getLLMService() + svc, _, err := h.getLLMService(c) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return @@ -567,15 +623,24 @@ func (h *Handler) UpdateChatSessionTitle(c *gin.Context) { return } - var session models.ChatSession - if err := database.DB.Where("id = ?", sessionID).First(&session).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat session"}) - return - } + var session models.ChatSession + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", sessionID, uid).First(&session).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat session"}) + return + } + } else if err := database.DB.Where("id = ?", sessionID).First(&session).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get chat session"}) + return + } session.Title = req.Title if err := database.DB.Save(&session).Error; err != nil { @@ -617,18 +682,31 @@ func (h *Handler) DeleteChatSession(c *gin.Context) { return } - // Delete messages first (due to foreign key constraint) - if err := database.DB.Where("chat_session_id = ?", sessionID).Delete(&models.ChatMessage{}).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete messages"}) - return - } - - // Delete session - result := database.DB.Where("id = ?", sessionID).Delete(&models.ChatSession{}) - if result.Error != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete chat session"}) - return - } + // Delete messages first (due to foreign key constraint) + if err := database.DB.Where("chat_session_id = ?", sessionID).Delete(&models.ChatMessage{}).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete messages"}) + return + } + + // Delete session + if uid, ok := getContextUserID(c); ok { + result := database.DB.Where("id = ? AND user_id = ?", sessionID, uid).Delete(&models.ChatSession{}) + if result.Error != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete chat session"}) + return + } + if result.RowsAffected == 0 { + c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) + return + } + c.Status(http.StatusNoContent) + return + } + result := database.DB.Where("id = ?", sessionID).Delete(&models.ChatSession{}) + if result.Error != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete chat session"}) + return + } if result.RowsAffected == 0 { c.JSON(http.StatusNotFound, gin.H{"error": "Chat session not found"}) @@ -772,7 +850,7 @@ Return only the title, nothing else.` } // Use configured LLM service - svc, _, err := h.getLLMService() + svc, _, err := h.getLLMService(c) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return diff --git a/internal/api/handlers.go b/internal/api/handlers.go index 06b834c85..1a055ff12 100644 --- a/internal/api/handlers.go +++ b/internal/api/handlers.go @@ -1,7 +1,6 @@ package api import ( - "bytes" "context" "crypto/rand" "crypto/sha256" @@ -33,12 +32,36 @@ import ( // Handler contains all the API handlers type Handler struct { - config *config.Config - authService *auth.AuthService - taskQueue *queue.TaskQueue - unifiedProcessor *transcription.UnifiedJobProcessor - quickTranscription *transcription.QuickTranscriptionService - multiTrackProcessor *processing.MultiTrackProcessor + config *config.Config + authService *auth.AuthService + taskQueue *queue.TaskQueue + unifiedProcessor *transcription.UnifiedJobProcessor + quickTranscription *transcription.QuickTranscriptionService + multiTrackProcessor *processing.MultiTrackProcessor +} + +// getContextUserID extracts the user_id from Gin context and normalizes to uint +func getContextUserID(c *gin.Context) (uint, bool) { + v, ok := c.Get("user_id") + if !ok { + return 0, false + } + switch id := v.(type) { + case uint: + return id, true + case int: + if id < 0 { + return 0, false + } + return uint(id), true + case int64: + if id < 0 { + return 0, false + } + return uint(id), true + default: + return 0, false + } } // NewHandler creates a new handler @@ -219,8 +242,11 @@ func (h *Handler) UploadAudio(c *gin.Context) { } defer file.Close() - // Create upload directory - uploadDir := h.config.UploadDir + // Create upload directory (user scoped if available) + uploadDir := h.config.UploadDir + if uid, ok := getContextUserID(c); ok { + uploadDir = filepath.Join(uploadDir, fmt.Sprintf("user_%d", uid)) + } if err := os.MkdirAll(uploadDir, 0755); err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create upload directory"}) return @@ -246,11 +272,14 @@ func (h *Handler) UploadAudio(c *gin.Context) { } // Create job record with "uploaded" status (not queued for transcription) - job := models.TranscriptionJob{ - ID: jobID, - AudioPath: filePath, - Status: models.StatusUploaded, // New status for uploaded but not transcribed - } + job := models.TranscriptionJob{ + ID: jobID, + AudioPath: filePath, + Status: models.StatusUploaded, // New status for uploaded but not transcribed + } + if uid, ok := getContextUserID(c); ok { + job.UserID = uid + } if title := c.PostForm("title"); title != "" { job.Title = &title @@ -271,22 +300,22 @@ func (h *Handler) UploadAudio(c *gin.Context) { var profile models.TranscriptionProfile var profileFound bool - if user.DefaultProfileID != nil { - err = database.DB.Where("id = ?", *user.DefaultProfileID).First(&profile).Error - profileFound = (err == nil) - } + if user.DefaultProfileID != nil { + err = database.DB.Where("id = ? AND user_id = ?", *user.DefaultProfileID, user.ID).First(&profile).Error + profileFound = (err == nil) + } - // If no user default or user default not found, try to find a system default - if !profileFound { - err = database.DB.Where("is_default = ?", true).First(&profile).Error - profileFound = (err == nil) - } + // If no user default or user default not found, try to find a system default + if !profileFound { + err = database.DB.Where("is_default = ? AND user_id = ?", true, user.ID).First(&profile).Error + profileFound = (err == nil) + } - // If still no profile found, use the first available profile - if !profileFound { - err = database.DB.Order("created_at ASC").First(&profile).Error - profileFound = (err == nil) - } + // If still no profile found, use the first available profile + if !profileFound { + err = database.DB.Where("user_id = ?", user.ID).Order("created_at ASC").First(&profile).Error + profileFound = (err == nil) + } // If we found a profile, update the job and queue it if profileFound { @@ -332,8 +361,11 @@ func (h *Handler) UploadVideo(c *gin.Context) { } defer file.Close() - // Create upload directory - uploadDir := h.config.UploadDir + // Create upload directory (user scoped if available) + uploadDir := h.config.UploadDir + if uid, ok := getContextUserID(c); ok { + uploadDir = filepath.Join(uploadDir, fmt.Sprintf("user_%d", uid)) + } if err := os.MkdirAll(uploadDir, 0755); err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create upload directory"}) return @@ -387,11 +419,14 @@ func (h *Handler) UploadVideo(c *gin.Context) { } // Create job record with "uploaded" status (not queued for transcription) - job := models.TranscriptionJob{ - ID: jobID, - AudioPath: audioPath, - Status: models.StatusUploaded, // Same status as audio uploads - } + job := models.TranscriptionJob{ + ID: jobID, + AudioPath: audioPath, + Status: models.StatusUploaded, // Same status as audio uploads + } + if uid, ok := getContextUserID(c); ok { + job.UserID = uid + } if title := c.PostForm("title"); title != "" { job.Title = &title @@ -412,22 +447,22 @@ func (h *Handler) UploadVideo(c *gin.Context) { var profile models.TranscriptionProfile var profileFound bool - if user.DefaultProfileID != nil { - err = database.DB.Where("id = ?", *user.DefaultProfileID).First(&profile).Error - profileFound = (err == nil) - } + if user.DefaultProfileID != nil { + err = database.DB.Where("id = ? AND user_id = ?", *user.DefaultProfileID, user.ID).First(&profile).Error + profileFound = (err == nil) + } - // If no user default or user default not found, try to find a system default - if !profileFound { - err = database.DB.Where("is_default = ?", true).First(&profile).Error - profileFound = (err == nil) - } + // If no user default or user default not found, try to find a system default + if !profileFound { + err = database.DB.Where("is_default = ? AND user_id = ?", true, user.ID).First(&profile).Error + profileFound = (err == nil) + } - // If still no profile found, use the first available profile - if !profileFound { - err = database.DB.Order("created_at ASC").First(&profile).Error - profileFound = (err == nil) - } + // If still no profile found, use the first available profile + if !profileFound { + err = database.DB.Where("user_id = ?", user.ID).Order("created_at ASC").First(&profile).Error + profileFound = (err == nil) + } // If we found a profile, update the job and queue it if profileFound { @@ -503,9 +538,12 @@ func (h *Handler) UploadMultiTrack(c *gin.Context) { // Generate unique job ID jobID := uuid.New().String() - // Create job-specific directory structure - uploadDir := h.config.UploadDir - multiTrackFolder := filepath.Join(uploadDir, jobID) + // Create job-specific directory structure (user scoped if available) + uploadDir := h.config.UploadDir + if uid, ok := getContextUserID(c); ok { + uploadDir = filepath.Join(uploadDir, fmt.Sprintf("user_%d", uid)) + } + multiTrackFolder := filepath.Join(uploadDir, jobID) tracksFolder := filepath.Join(multiTrackFolder, "tracks") if err := os.MkdirAll(tracksFolder, 0755); err != nil { @@ -592,16 +630,19 @@ func (h *Handler) UploadMultiTrack(c *gin.Context) { } // Create transcription job record - job := models.TranscriptionJob{ - ID: jobID, - Title: &title, - AudioPath: firstTrackPath, // Point to first track initially - Status: models.StatusUploaded, - IsMultiTrack: true, - AupFilePath: &aupFilePath, - MultiTrackFolder: &multiTrackFolder, - MergeStatus: "none", // No merge processing yet - } + job := models.TranscriptionJob{ + ID: jobID, + Title: &title, + AudioPath: firstTrackPath, // Point to first track initially + Status: models.StatusUploaded, + IsMultiTrack: true, + AupFilePath: &aupFilePath, + MultiTrackFolder: &multiTrackFolder, + MergeStatus: "none", // No merge processing yet + } + if uid, ok := getContextUserID(c); ok { + job.UserID = uid + } // Save job to database if err := database.DB.Create(&job).Error; err != nil { @@ -651,13 +692,27 @@ func (h *Handler) UploadMultiTrack(c *gin.Context) { // @Security ApiKeyAuth // @Security BearerAuth func (h *Handler) GetMergeStatus(c *gin.Context) { - jobID := c.Param("id") - - status, errorMsg, err := h.multiTrackProcessor.GetMergeStatus(jobID) - if err != nil { - c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) - return - } + jobID := c.Param("id") + + // Verify ownership + var check models.TranscriptionJob + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Select("id").Where("id = ? AND user_id = ?", jobID, uid).First(&check).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + } else { + if err := database.DB.Select("id").Where("id = ?", jobID).First(&check).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + } + + status, errorMsg, err := h.multiTrackProcessor.GetMergeStatus(jobID) + if err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } response := gin.H{ "merge_status": status, @@ -685,10 +740,15 @@ func (h *Handler) GetTrackProgress(c *gin.Context) { // Get the main job details var job models.TranscriptionJob - if err := database.DB.Preload("MultiTrackFiles").Where("id = ?", jobID).First(&job).Error; err != nil { - c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) - return - } + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Preload("MultiTrackFiles").Where("id = ? AND user_id = ?", jobID, uid).First(&job).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + } else if err := database.DB.Preload("MultiTrackFiles").Where("id = ?", jobID).First(&job).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } // Only provide track progress for multi-track jobs if !job.IsMultiTrack { @@ -800,8 +860,11 @@ func (h *Handler) SubmitJob(c *gin.Context) { } defer file.Close() - // Create upload directory - uploadDir := h.config.UploadDir + // Create upload directory (user scoped if available) + uploadDir := h.config.UploadDir + if uid, ok := getContextUserID(c); ok { + uploadDir = filepath.Join(uploadDir, fmt.Sprintf("user_%d", uid)) + } if err := os.MkdirAll(uploadDir, 0755); err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create upload directory"}) return @@ -872,13 +935,16 @@ func (h *Handler) SubmitJob(c *gin.Context) { params.DiarizeModel = diarizeModel // Create job - job := models.TranscriptionJob{ - ID: jobID, - AudioPath: filePath, - Status: models.StatusPending, - Diarization: diarize, - Parameters: params, - } + job := models.TranscriptionJob{ + ID: jobID, + AudioPath: filePath, + Status: models.StatusPending, + Diarization: diarize, + Parameters: params, + } + if uid, ok := getContextUserID(c); ok { + job.UserID = uid + } if title := c.PostForm("title"); title != "" { job.Title = &title @@ -911,12 +977,21 @@ func (h *Handler) SubmitJob(c *gin.Context) { // @Security ApiKeyAuth // @Security BearerAuth func (h *Handler) GetJobStatus(c *gin.Context) { - jobID := c.Param("id") - - job, err := h.taskQueue.GetJobStatus(jobID) - if err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + jobID := c.Param("id") + + // Verify ownership + if uid, ok := getContextUserID(c); ok { + var check models.TranscriptionJob + if err := database.DB.Select("id").Where("id = ? AND user_id = ?", jobID, uid).First(&check).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + } + + job, err := h.taskQueue.GetJobStatus(jobID) + if err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) return } c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job status"}) @@ -938,17 +1013,26 @@ func (h *Handler) GetJobStatus(c *gin.Context) { // @Security ApiKeyAuth // @Security BearerAuth func (h *Handler) GetTranscript(c *gin.Context) { - jobID := c.Param("id") - - var job models.TranscriptionJob - if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) - return - } + jobID := c.Param("id") + + var job models.TranscriptionJob + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", jobID, uid).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) + return + } + } else if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) + return + } if job.Status != models.StatusCompleted { c.JSON(http.StatusBadRequest, gin.H{ @@ -1004,7 +1088,10 @@ func (h *Handler) ListJobs(c *gin.Context) { offset := (page - 1) * limit - query := database.DB.Model(&models.TranscriptionJob{}) + query := database.DB.Model(&models.TranscriptionJob{}) + if uid, ok := getContextUserID(c); ok { + query = query.Where("user_id = ?", uid) + } // Filter out temporary track jobs (they have IDs starting with "track_") query = query.Where("id NOT LIKE 'track_%'") @@ -1060,15 +1147,24 @@ func (h *Handler) ListJobs(c *gin.Context) { func (h *Handler) StartTranscription(c *gin.Context) { jobID := c.Param("id") - var job models.TranscriptionJob - if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) - return - } + var job models.TranscriptionJob + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", jobID, uid).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) + return + } + } else if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) + return + } // Allow transcription for uploaded, completed, and failed jobs (re-transcription) if job.Status != models.StatusUploaded && job.Status != models.StatusCompleted && job.Status != models.StatusFailed { @@ -1220,15 +1316,24 @@ func (h *Handler) StartTranscription(c *gin.Context) { func (h *Handler) KillJob(c *gin.Context) { jobID := c.Param("id") - var job models.TranscriptionJob - if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) - return - } + var job models.TranscriptionJob + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", jobID, uid).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) + return + } + } else if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) + return + } // Check if job is currently processing if job.Status != models.StatusProcessing { @@ -1274,15 +1379,24 @@ func (h *Handler) UpdateTranscriptionTitle(c *gin.Context) { return } - var job models.TranscriptionJob - if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) - return - } + var job models.TranscriptionJob + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", jobID, uid).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) + return + } + } else if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) + return + } job.Title = &body.Title if err := database.DB.Model(&job).Update("title", body.Title).Error; err != nil { @@ -1311,17 +1425,26 @@ func (h *Handler) UpdateTranscriptionTitle(c *gin.Context) { // @Security ApiKeyAuth // @Security BearerAuth func (h *Handler) DeleteJob(c *gin.Context) { - jobID := c.Param("id") - - var job models.TranscriptionJob - if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) - return - } + jobID := c.Param("id") + + var job models.TranscriptionJob + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", jobID, uid).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) + return + } + } else if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get job"}) + return + } // Prevent deletion of jobs that are currently processing if job.Status == models.StatusProcessing { @@ -1474,14 +1597,23 @@ func (h *Handler) GetJobExecutionData(c *gin.Context) { // Get the transcription job to check if it's multi-track var job models.TranscriptionJob - if err := database.DB.Preload("MultiTrackFiles").Where("id = ?", jobID).First(&job).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Transcription job not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription job"}) - return - } + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Preload("MultiTrackFiles").Where("id = ? AND user_id = ?", jobID, uid).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription job"}) + return + } + } else if err := database.DB.Preload("MultiTrackFiles").Where("id = ?", jobID).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription job"}) + return + } var execution models.TranscriptionJobExecution if err := database.DB.Where("transcription_job_id = ? AND status = ?", jobID, models.StatusCompleted). @@ -1691,17 +1823,19 @@ func (h *Handler) Logout(c *gin.Context) { // @Success 200 {object} RegistrationStatusResponse // @Router /api/v1/auth/registration-status [get] func (h *Handler) GetRegistrationStatus(c *gin.Context) { - var userCount int64 - if err := database.DB.Model(&models.User{}).Count(&userCount).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to check registration status"}) - return - } + var userCount int64 + if err := database.DB.Model(&models.User{}).Count(&userCount).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to check registration status"}) + return + } - response := RegistrationStatusResponse{ - RegistrationEnabled: userCount == 0, - } + response := RegistrationStatusResponse{ + // Semantics for frontend: registration_enabled == true => initial admin registration required + // Keep this true only when there are no users yet. Open registration is controlled by backend in Register. + RegistrationEnabled: userCount == 0, + } - c.JSON(http.StatusOK, response) + c.JSON(http.StatusOK, response) } // @Summary Register initial admin user @@ -1715,17 +1849,16 @@ func (h *Handler) GetRegistrationStatus(c *gin.Context) { // @Failure 409 {object} map[string]string // @Router /api/v1/auth/register [post] func (h *Handler) Register(c *gin.Context) { - // Check if any users already exist - var userCount int64 - if err := database.DB.Model(&models.User{}).Count(&userCount).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to check existing users"}) - return - } - - if userCount > 0 { - c.JSON(http.StatusConflict, gin.H{"error": "Registration is not allowed. Admin user already exists"}) - return - } + // Allow registration when enabled or when no users exist + var userCount int64 + if err := database.DB.Model(&models.User{}).Count(&userCount).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to check existing users"}) + return + } + if !h.config.AllowRegistration && userCount > 0 { + c.JSON(http.StatusConflict, gin.H{"error": "Registration is disabled"}) + return + } var req RegisterRequest if err := c.ShouldBindJSON(&req); err != nil { @@ -1746,20 +1879,34 @@ func (h *Handler) Register(c *gin.Context) { return } - // Create user - user := models.User{ - Username: req.Username, - Password: hashedPassword, - } - - if err := database.DB.Create(&user).Error; err != nil { - if database.DB.Error.Error() == "UNIQUE constraint failed: users.username" { - c.JSON(http.StatusConflict, gin.H{"error": "Username already exists"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create user"}) - return - } + // Ensure username is not already taken + { + var existing models.User + if err := database.DB.Where("username = ?", req.Username).First(&existing).Error; err == nil { + c.JSON(http.StatusConflict, gin.H{"error": "Username already exists"}) + return + } else if err != nil && err != gorm.ErrRecordNotFound { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to verify username"}) + return + } + } + + // Create user; first user becomes admin + user := models.User{ + Username: req.Username, + Password: hashedPassword, + IsAdmin: userCount == 0, + } + + if err := database.DB.Create(&user).Error; err != nil { + // Handle unique constraint across different drivers + if strings.Contains(strings.ToLower(err.Error()), "unique") && strings.Contains(err.Error(), "users.username") { + c.JSON(http.StatusConflict, gin.H{"error": "Username already exists"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create user"}) + return + } // Generate token for immediate login token, err := h.authService.GenerateToken(&user) @@ -1994,11 +2141,17 @@ func (h *Handler) ChangeUsername(c *gin.Context) { // @Security BearerAuth // @Router /api/v1/api-keys [get] func (h *Handler) ListAPIKeys(c *gin.Context) { - var apiKeys []models.APIKey - if err := database.DB.Where("is_active = ?", true).Find(&apiKeys).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch API keys"}) - return - } + var apiKeys []models.APIKey + // Scope to current user + uid, ok := getContextUserID(c) + if !ok { + c.JSON(http.StatusUnauthorized, gin.H{"error": "User not authenticated"}) + return + } + if err := database.DB.Where("is_active = ? AND user_id = ?", true, uid).Find(&apiKeys).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch API keys"}) + return + } // Transform API keys to list response format var responseKeys []APIKeyListResponse @@ -2020,27 +2173,30 @@ func (h *Handler) ListAPIKeys(c *gin.Context) { // @Security BearerAuth // @Router /api/v1/api-keys [post] func (h *Handler) CreateAPIKey(c *gin.Context) { - var req CreateAPIKeyRequest - if err := c.ShouldBindJSON(&req); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request: " + err.Error()}) - return - } - - // Generate a secure API key - apiKey := generateSecureAPIKey(32) - - // Create the API key record - newKey := models.APIKey{ - Key: apiKey, - Name: req.Name, - Description: &req.Description, - IsActive: true, - } - - if err := database.DB.Create(&newKey).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create API key"}) - return - } + var req CreateAPIKeyRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request: " + err.Error()}) + return + } + + // Generate a secure API key + apiKey := generateSecureAPIKey(32) + + // Create the API key record + newKey := models.APIKey{ + Key: apiKey, + Name: req.Name, + Description: &req.Description, + IsActive: true, + } + if uid, ok := getContextUserID(c); ok { + newKey.UserID = uid + } + + if err := database.DB.Create(&newKey).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create API key"}) + return + } // Return full model with 200 to match tests c.JSON(http.StatusOK, newKey) @@ -2056,19 +2212,24 @@ func (h *Handler) CreateAPIKey(c *gin.Context) { // @Security BearerAuth // @Router /api/v1/api-keys/{id} [delete] func (h *Handler) DeleteAPIKey(c *gin.Context) { - idParam := c.Param("id") - id, err := strconv.ParseUint(idParam, 10, 32) - if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid API key ID"}) - return - } - - // Check if the API key exists - var apiKey models.APIKey - if err := database.DB.First(&apiKey, uint(id)).Error; err != nil { - c.JSON(http.StatusNotFound, gin.H{"error": "API key not found"}) - return - } + idParam := c.Param("id") + id, err := strconv.ParseUint(idParam, 10, 32) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid API key ID"}) + return + } + + // Check if the API key exists + var apiKey models.APIKey + uid, ok := getContextUserID(c) + if !ok { + c.JSON(http.StatusUnauthorized, gin.H{"error": "User not authenticated"}) + return + } + if err := database.DB.Where("id = ? AND user_id = ?", uint(id), uid).First(&apiKey).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "API key not found"}) + return + } // Delete the API key (soft delete by setting is_active to false) if err := database.DB.Model(&apiKey).Update("is_active", false).Error; err != nil { @@ -2088,15 +2249,26 @@ func (h *Handler) DeleteAPIKey(c *gin.Context) { // @Security BearerAuth // @Router /api/v1/llm/config [get] func (h *Handler) GetLLMConfig(c *gin.Context) { - var config models.LLMConfig - if err := database.DB.Where("is_active = ?", true).First(&config).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "No active LLM configuration found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch LLM configuration"}) - return - } + var config models.LLMConfig + uid, has := getContextUserID(c) + var err error + if has { + err = database.DB.Where("is_active = ? AND user_id = ?", true, uid).First(&config).Error + if err == gorm.ErrRecordNotFound { + // Fallback to legacy global config (user_id = 0) + err = database.DB.Where("is_active = ? AND user_id = 0", true).First(&config).Error + } + } else { + err = database.DB.Where("is_active = ?", true).First(&config).Error + } + if err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "No active LLM configuration found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch LLM configuration"}) + return + } response := LLMConfigResponse{ ID: config.ID, @@ -2122,11 +2294,11 @@ func (h *Handler) GetLLMConfig(c *gin.Context) { // @Security BearerAuth // @Router /api/v1/llm/config [post] func (h *Handler) SaveLLMConfig(c *gin.Context) { - var req LLMConfigRequest - if err := c.ShouldBindJSON(&req); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request: " + err.Error()}) - return - } + var req LLMConfigRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request: " + err.Error()}) + return + } // Validate provider-specific requirements if req.Provider == "ollama" && (req.BaseURL == nil || *req.BaseURL == "") { @@ -2139,8 +2311,14 @@ func (h *Handler) SaveLLMConfig(c *gin.Context) { } // Check if there's an existing active configuration - var existingConfig models.LLMConfig - err := database.DB.Where("is_active = ?", true).First(&existingConfig).Error + var existingConfig models.LLMConfig + uid, has := getContextUserID(c) + var err error + if has { + err = database.DB.Where("is_active = ? AND user_id = ?", true, uid).First(&existingConfig).Error + } else { + err = database.DB.Where("is_active = ?", true).First(&existingConfig).Error + } if err != nil && err != gorm.ErrRecordNotFound { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to check existing configuration"}) @@ -2149,32 +2327,33 @@ func (h *Handler) SaveLLMConfig(c *gin.Context) { var config models.LLMConfig - if err == gorm.ErrRecordNotFound { - // No existing active config, create new one - config = models.LLMConfig{ - Provider: req.Provider, - BaseURL: req.BaseURL, - APIKey: req.APIKey, - IsActive: req.IsActive, - } + if err == gorm.ErrRecordNotFound { + // No existing active config, create new one + config = models.LLMConfig{ + Provider: req.Provider, + BaseURL: req.BaseURL, + APIKey: req.APIKey, + IsActive: req.IsActive, + } + if has { config.UserID = uid } if err := database.DB.Create(&config).Error; err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create LLM configuration"}) return } - } else { - // Update existing config - existingConfig.Provider = req.Provider - existingConfig.BaseURL = req.BaseURL - existingConfig.APIKey = req.APIKey - existingConfig.IsActive = req.IsActive - - if err := database.DB.Save(&existingConfig).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update LLM configuration"}) - return - } - config = existingConfig - } + } else { + // Update existing config + existingConfig.Provider = req.Provider + existingConfig.BaseURL = req.BaseURL + existingConfig.APIKey = req.APIKey + existingConfig.IsActive = req.IsActive + + if err := database.DB.Save(&existingConfig).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update LLM configuration"}) + return + } + config = existingConfig + } response := LLMConfigResponse{ ID: config.ID, @@ -2297,12 +2476,17 @@ func getFormBoolWithDefault(c *gin.Context, key string, defaultValue bool) bool // @Security ApiKeyAuth // @Security BearerAuth func (h *Handler) ListProfiles(c *gin.Context) { - var profiles []models.TranscriptionProfile - if err := database.DB.Order("created_at DESC").Find(&profiles).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch profiles"}) - return - } - c.JSON(http.StatusOK, profiles) + var profiles []models.TranscriptionProfile + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("user_id = ?", uid).Order("created_at DESC").Find(&profiles).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch profiles"}) + return + } + } else if err := database.DB.Order("created_at DESC").Find(&profiles).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch profiles"}) + return + } + c.JSON(http.StatusOK, profiles) } // @Summary Create transcription profile @@ -2317,11 +2501,11 @@ func (h *Handler) ListProfiles(c *gin.Context) { // @Security ApiKeyAuth // @Security BearerAuth func (h *Handler) CreateProfile(c *gin.Context) { - var profile models.TranscriptionProfile - if err := c.ShouldBindJSON(&profile); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request data"}) - return - } + var profile models.TranscriptionProfile + if err := c.ShouldBindJSON(&profile); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request data"}) + return + } // Validate required fields if profile.Name == "" { @@ -2329,12 +2513,17 @@ func (h *Handler) CreateProfile(c *gin.Context) { return } - // Check if profile name already exists - var existingProfile models.TranscriptionProfile - if err := database.DB.Where("name = ?", profile.Name).First(&existingProfile).Error; err == nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "Profile name already exists"}) - return - } + // Attach owner + if uid, ok := getContextUserID(c); ok { + profile.UserID = uid + } + + // Check if profile name already exists for this user + var existingProfile models.TranscriptionProfile + if err := database.DB.Where("name = ? AND user_id = ?", profile.Name, profile.UserID).First(&existingProfile).Error; err == nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Profile name already exists"}) + return + } if err := database.DB.Create(&profile).Error; err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create profile"}) @@ -2356,17 +2545,26 @@ func (h *Handler) CreateProfile(c *gin.Context) { // @Security ApiKeyAuth // @Security BearerAuth func (h *Handler) GetProfile(c *gin.Context) { - profileID := c.Param("id") - - var profile models.TranscriptionProfile - if err := database.DB.Where("id = ?", profileID).First(&profile).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) - return - } + profileID := c.Param("id") + + var profile models.TranscriptionProfile + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", profileID, uid).First(&profile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) + return + } + } else if err := database.DB.Where("id = ?", profileID).First(&profile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) + return + } c.JSON(http.StatusOK, profile) } @@ -2388,14 +2586,23 @@ func (h *Handler) UpdateProfile(c *gin.Context) { profileID := c.Param("id") var existingProfile models.TranscriptionProfile - if err := database.DB.Where("id = ?", profileID).First(&existingProfile).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) - return - } + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", profileID, uid).First(&existingProfile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) + return + } + } else if err := database.DB.Where("id = ?", profileID).First(&existingProfile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) + return + } var updatedProfile models.TranscriptionProfile if err := c.ShouldBindJSON(&updatedProfile); err != nil { @@ -2410,11 +2617,11 @@ func (h *Handler) UpdateProfile(c *gin.Context) { } // Check if profile name already exists (excluding current profile) - var nameCheck models.TranscriptionProfile - if err := database.DB.Where("name = ? AND id != ?", updatedProfile.Name, profileID).First(&nameCheck).Error; err == nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "Profile name already exists"}) - return - } + var nameCheck models.TranscriptionProfile + if err := database.DB.Where("name = ? AND id != ? AND user_id = ?", updatedProfile.Name, profileID, existingProfile.UserID).First(&nameCheck).Error; err == nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Profile name already exists"}) + return + } // Update the profile updatedProfile.ID = profileID // Ensure ID doesn't change @@ -2440,14 +2647,23 @@ func (h *Handler) DeleteProfile(c *gin.Context) { profileID := c.Param("id") var profile models.TranscriptionProfile - if err := database.DB.Where("id = ?", profileID).First(&profile).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) - return - } + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", profileID, uid).First(&profile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) + return + } + } else if err := database.DB.Where("id = ?", profileID).First(&profile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) + return + } if err := database.DB.Delete(&profile).Error; err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete profile"}) @@ -2479,14 +2695,23 @@ func (h *Handler) SetDefaultProfile(c *gin.Context) { // Find the profile var profile models.TranscriptionProfile - if err := database.DB.Where("id = ?", profileID).First(&profile).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) - return - } + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", profileID, uid).First(&profile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) + return + } + } else if err := database.DB.Where("id = ?", profileID).First(&profile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profile"}) + return + } // Set this profile as default (the BeforeSave hook will handle unsetting other defaults) profile.IsDefault = true @@ -2533,15 +2758,24 @@ func (h *Handler) SubmitQuickTranscription(c *gin.Context) { if profileName := c.PostForm("profile_name"); profileName != "" { // Load parameters from profile var profile models.TranscriptionProfile - if err := database.DB.Where("name = ?", profileName).First(&profile).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("Profile '%s' not found", profileName)}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to load profile"}) - return - } - params = profile.Parameters + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("name = ? AND user_id = ?", profileName, uid).First(&profile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("Profile '%s' not found", profileName)}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to load profile"}) + return + } + } else if err := database.DB.Where("name = ?", profileName).First(&profile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("Profile '%s' not found", profileName)}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to load profile"}) + return + } + params = profile.Parameters } else if parametersJSON := c.PostForm("parameters"); parametersJSON != "" { // Parse parameters from JSON string if err := json.Unmarshal([]byte(parametersJSON), ¶ms); err != nil { @@ -2606,14 +2840,23 @@ func (h *Handler) SubmitQuickTranscription(c *gin.Context) { } } - // Submit quick transcription job - job, err := h.quickTranscription.SubmitQuickJob(file, header.Filename, params) - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Failed to submit quick transcription: %v", err)}) - return - } + // Submit quick transcription job (associate with user if available) + if uid, ok := getContextUserID(c); ok { + job, err := h.quickTranscription.SubmitQuickJobForUser(file, header.Filename, params, uid) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Failed to submit quick transcription: %v", err)}) + return + } + c.JSON(http.StatusOK, job) + return + } + job, err := h.quickTranscription.SubmitQuickJob(file, header.Filename, params) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Failed to submit quick transcription: %v", err)}) + return + } - c.JSON(http.StatusOK, job) + c.JSON(http.StatusOK, job) } // @Summary Get quick transcription status @@ -2667,8 +2910,11 @@ func (h *Handler) DownloadFromYouTube(c *gin.Context) { return } - // Create upload directory - uploadDir := h.config.UploadDir + // Create upload directory (user scoped if available) + uploadDir := h.config.UploadDir + if uid, ok := getContextUserID(c); ok { + uploadDir = filepath.Join(uploadDir, fmt.Sprintf("user_%d", uid)) + } if err := os.MkdirAll(uploadDir, 0755); err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create upload directory"}) return @@ -2685,22 +2931,16 @@ func (h *Handler) DownloadFromYouTube(c *gin.Context) { title = *req.Title } else { // Get title from yt-dlp - titleStart := time.Now() cmd := exec.Command(h.config.UVPath, "run", "--native-tls", "--project", h.config.WhisperXEnv, "python", "-m", "yt_dlp", "--get-title", req.URL) titleBytes, err := cmd.Output() if err != nil { title = "YouTube Audio" - logger.Warn("Failed to get YouTube title", "url", req.URL, "error", err.Error(), "duration", time.Since(titleStart)) } else { title = strings.TrimSpace(string(titleBytes)) - logger.Info("YouTube title retrieved", "title", title, "duration", time.Since(titleStart)) } } // Download audio using yt-dlp in Python environment - logger.Info("Starting YouTube download", "url", req.URL, "job_id", jobID) - downloadStart := time.Now() - ytDlpCmd := exec.Command(h.config.UVPath, "run", "--native-tls", "--project", h.config.WhisperXEnv, "python", "-m", "yt_dlp", "--extract-audio", "--audio-format", "mp3", @@ -2710,23 +2950,9 @@ func (h *Handler) DownloadFromYouTube(c *gin.Context) { req.URL, ) - // Execute download and capture stderr for better error messages - var stderr bytes.Buffer - ytDlpCmd.Stderr = &stderr - + // Execute download if err := ytDlpCmd.Run(); err != nil { - stderrOutput := stderr.String() - logger.Error("YouTube download failed", - "url", req.URL, - "job_id", jobID, - "error", err.Error(), - "stderr", stderrOutput, - "duration", time.Since(downloadStart)) - - c.JSON(http.StatusInternalServerError, gin.H{ - "error": fmt.Sprintf("Failed to download YouTube audio: %v", err), - "details": stderrOutput, - }) + c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Failed to download YouTube audio: %v", err)}) return } @@ -2740,24 +2966,15 @@ func (h *Handler) DownloadFromYouTube(c *gin.Context) { actualFilePath := matches[0] - // Get file size for performance logging - fileInfo, err := os.Stat(actualFilePath) - if err == nil { - fileSizeMB := float64(fileInfo.Size()) / 1024 / 1024 - logger.Info("YouTube download completed", - "url", req.URL, - "job_id", jobID, - "file_path", actualFilePath, - "file_size_mb", fmt.Sprintf("%.2f", fileSizeMB), - "duration", time.Since(downloadStart)) - } - // Create transcription record - job := models.TranscriptionJob{ - ID: jobID, - AudioPath: actualFilePath, - Status: models.StatusUploaded, - } + job := models.TranscriptionJob{ + ID: jobID, + AudioPath: actualFilePath, + Status: models.StatusUploaded, + } + if uid, ok := getContextUserID(c); ok { + job.UserID = uid + } // Set title if title != "" { @@ -2798,40 +3015,40 @@ func (h *Handler) GetUserDefaultProfile(c *gin.Context) { } // If user has no default profile set, return the first available profile or no profile - if user.DefaultProfileID == nil { - var firstProfile models.TranscriptionProfile - if err := database.DB.Order("created_at ASC").First(&firstProfile).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "No profiles available"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profiles"}) - return - } - c.JSON(http.StatusOK, firstProfile) - return - } + if user.DefaultProfileID == nil { + var firstProfile models.TranscriptionProfile + if err := database.DB.Where("user_id = ?", user.ID).Order("created_at ASC").First(&firstProfile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "No profiles available"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profiles"}) + return + } + c.JSON(http.StatusOK, firstProfile) + return + } // Get the user's default profile var profile models.TranscriptionProfile - if err := database.DB.Where("id = ?", *user.DefaultProfileID).First(&profile).Error; err != nil { - if err == gorm.ErrRecordNotFound { - // Default profile no longer exists, fall back to first available - var firstProfile models.TranscriptionProfile - if err := database.DB.Order("created_at ASC").First(&firstProfile).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "No profiles available"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profiles"}) - return - } - c.JSON(http.StatusOK, firstProfile) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get default profile"}) - return - } + if err := database.DB.Where("id = ? AND user_id = ?", *user.DefaultProfileID, user.ID).First(&profile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + // Default profile no longer exists, fall back to first available + var firstProfile models.TranscriptionProfile + if err := database.DB.Where("user_id = ?", user.ID).Order("created_at ASC").First(&firstProfile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "No profiles available"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get profiles"}) + return + } + c.JSON(http.StatusOK, firstProfile) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get default profile"}) + return + } c.JSON(http.StatusOK, profile) } @@ -2865,16 +3082,16 @@ func (h *Handler) SetUserDefaultProfile(c *gin.Context) { return } - // Verify the profile exists - var profile models.TranscriptionProfile - if err := database.DB.Where("id = ?", req.ProfileID).First(&profile).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to verify profile"}) - return - } + // Verify the profile exists and belongs to the user + var profile models.TranscriptionProfile + if err := database.DB.Where("id = ? AND user_id = ?", req.ProfileID, userID).First(&profile).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Profile not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to verify profile"}) + return + } // Update user's default profile if err := database.DB.Model(&models.User{}).Where("id = ?", userID).Update("default_profile_id", req.ProfileID).Error; err != nil { @@ -2887,8 +3104,9 @@ func (h *Handler) SetUserDefaultProfile(c *gin.Context) { // UserSettingsResponse represents the user's settings type UserSettingsResponse struct { - AutoTranscriptionEnabled bool `json:"auto_transcription_enabled"` - DefaultProfileID *string `json:"default_profile_id,omitempty"` + AutoTranscriptionEnabled bool `json:"auto_transcription_enabled"` + DefaultProfileID *string `json:"default_profile_id,omitempty"` + IsAdmin bool `json:"is_admin"` } // UpdateUserSettingsRequest represents the request to update user settings @@ -2921,6 +3139,7 @@ func (h *Handler) GetUserSettings(c *gin.Context) { response := UserSettingsResponse{ AutoTranscriptionEnabled: user.AutoTranscriptionEnabled, DefaultProfileID: user.DefaultProfileID, + IsAdmin: user.IsAdmin, } c.JSON(http.StatusOK, response) @@ -3012,15 +3231,24 @@ func (h *Handler) GetSpeakerMappings(c *gin.Context) { jobID := c.Param("id") // Verify the transcription job exists and has diarization enabled - var job models.TranscriptionJob - if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Transcription job not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription job"}) - return - } + var job models.TranscriptionJob + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", jobID, uid).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription job"}) + return + } + } else if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription job"}) + return + } // Check if diarization was enabled or if this is a multi-track job (which also has speakers) if !job.Diarization && !job.Parameters.Diarize && !job.IsMultiTrack { @@ -3073,15 +3301,24 @@ func (h *Handler) UpdateSpeakerMappings(c *gin.Context) { } // Verify the transcription job exists and has diarization enabled - var job models.TranscriptionJob - if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Transcription job not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription job"}) - return - } + var job models.TranscriptionJob + if uid, ok := getContextUserID(c); ok { + if err := database.DB.Where("id = ? AND user_id = ?", jobID, uid).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription job"}) + return + } + } else if err := database.DB.Where("id = ?", jobID).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription job not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get transcription job"}) + return + } // Check if diarization was enabled or if this is a multi-track job (which also has speakers) if !job.Diarization && !job.Parameters.Diarize && !job.IsMultiTrack { @@ -3149,3 +3386,318 @@ func (h *Handler) UpdateSpeakerMappings(c *gin.Context) { c.JSON(http.StatusOK, response) } + +// ===== Admin: User Management Handlers ===== + +// AdminUserResponse represents a sanitized user for admin listings +type AdminUserResponse struct { + ID uint `json:"id"` + Username string `json:"username"` + IsAdmin bool `json:"is_admin"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` +} + +// AdminCreateUserRequest represents payload to create a user +type AdminCreateUserRequest struct { + Username string `json:"username" binding:"required,min=3,max=50"` + Password string `json:"password" binding:"required,min=6"` + ConfirmPassword string `json:"confirmPassword" binding:"required"` + IsAdmin *bool `json:"is_admin,omitempty"` +} + +// AdminUpdateUserRequest represents payload to update a user +type AdminUpdateUserRequest struct { + Username *string `json:"username,omitempty"` + IsAdmin *bool `json:"is_admin,omitempty"` +} + +// AdminUpdatePasswordRequest represents payload to update a user's password +type AdminUpdatePasswordRequest struct { + NewPassword string `json:"newPassword" binding:"required,min=6"` + ConfirmPassword string `json:"confirmPassword" binding:"required"` +} + +// @Summary List users +// @Tags admin +// @Produce json +// @Success 200 {array} AdminUserResponse +// @Failure 401 {object} map[string]string +// @Failure 403 {object} map[string]string +// @Router /api/v1/admin/users/ [get] +// @Security BearerAuth +func (h *Handler) AdminListUsers(c *gin.Context) { + var users []models.User + if err := database.DB.Order("id ASC").Find(&users).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to list users"}) + return + } + resp := make([]AdminUserResponse, 0, len(users)) + for _, u := range users { + resp = append(resp, AdminUserResponse{ID: u.ID, Username: u.Username, IsAdmin: u.IsAdmin, CreatedAt: u.CreatedAt, UpdatedAt: u.UpdatedAt}) + } + c.JSON(http.StatusOK, resp) +} + +// @Summary Create user +// @Tags admin +// @Accept json +// @Produce json +// @Param request body AdminCreateUserRequest true "User details" +// @Success 201 {object} AdminUserResponse +// @Failure 400 {object} map[string]string +// @Failure 409 {object} map[string]string +// @Router /api/v1/admin/users/ [post] +// @Security BearerAuth +func (h *Handler) AdminCreateUser(c *gin.Context) { + var req AdminCreateUserRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request: " + err.Error()}) + return + } + if req.Password != req.ConfirmPassword { + c.JSON(http.StatusBadRequest, gin.H{"error": "Passwords do not match"}) + return + } + // Unique username check + { + var existing models.User + if err := database.DB.Where("username = ?", req.Username).First(&existing).Error; err == nil { + c.JSON(http.StatusConflict, gin.H{"error": "Username already exists"}) + return + } + } + // Hash password + hashed, err := auth.HashPassword(req.Password) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to secure password"}) + return + } + isAdmin := false + if req.IsAdmin != nil { + isAdmin = *req.IsAdmin + } + user := models.User{Username: req.Username, Password: hashed, IsAdmin: isAdmin} + if err := database.DB.Create(&user).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create user"}) + return + } + c.JSON(http.StatusCreated, AdminUserResponse{ID: user.ID, Username: user.Username, IsAdmin: user.IsAdmin, CreatedAt: user.CreatedAt, UpdatedAt: user.UpdatedAt}) +} + +// @Summary Update user +// @Tags admin +// @Accept json +// @Produce json +// @Param id path string true "User ID" +// @Param request body AdminUpdateUserRequest true "Update details" +// @Success 200 {object} AdminUserResponse +// @Failure 400 {object} map[string]string +// @Failure 404 {object} map[string]string +// @Failure 409 {object} map[string]string +// @Router /api/v1/admin/users/{id} [put] +// @Security BearerAuth +func (h *Handler) AdminUpdateUser(c *gin.Context) { + idStr := c.Param("id") + id, err := strconv.Atoi(idStr) + if err != nil || id <= 0 { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid user id"}) + return + } + var req AdminUpdateUserRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request: " + err.Error()}) + return + } + var user models.User + if err := database.DB.First(&user, uint(id)).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "User not found"}) + return + } + // Prevent demoting last admin + if req.IsAdmin != nil && user.IsAdmin && !*req.IsAdmin { + var adminCount int64 + _ = database.DB.Model(&models.User{}).Where("is_admin = ?", true).Count(&adminCount).Error + if adminCount <= 1 { + c.JSON(http.StatusBadRequest, gin.H{"error": "Cannot remove admin from the last admin user"}) + return + } + } + // Username uniqueness + if req.Username != nil && *req.Username != user.Username { + var existing models.User + if err := database.DB.Where("username = ?", *req.Username).First(&existing).Error; err == nil && existing.ID != user.ID { + c.JSON(http.StatusConflict, gin.H{"error": "Username already exists"}) + return + } + user.Username = *req.Username + } + if req.IsAdmin != nil { + user.IsAdmin = *req.IsAdmin + } + if err := database.DB.Save(&user).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update user"}) + return + } + c.JSON(http.StatusOK, AdminUserResponse{ID: user.ID, Username: user.Username, IsAdmin: user.IsAdmin, CreatedAt: user.CreatedAt, UpdatedAt: user.UpdatedAt}) +} + +// @Summary Update user password +// @Tags admin +// @Accept json +// @Produce json +// @Param id path string true "User ID" +// @Param request body AdminUpdatePasswordRequest true "Password update" +// @Success 200 {object} map[string]string +// @Failure 400 {object} map[string]string +// @Failure 404 {object} map[string]string +// @Router /api/v1/admin/users/{id}/password [put] +// @Security BearerAuth +func (h *Handler) AdminUpdateUserPassword(c *gin.Context) { + idStr := c.Param("id") + id, err := strconv.Atoi(idStr) + if err != nil || id <= 0 { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid user id"}) + return + } + var req AdminUpdatePasswordRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request: " + err.Error()}) + return + } + if req.NewPassword != req.ConfirmPassword { + c.JSON(http.StatusBadRequest, gin.H{"error": "Passwords do not match"}) + return + } + var user models.User + if err := database.DB.First(&user, uint(id)).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "User not found"}) + return + } + hashed, err := auth.HashPassword(req.NewPassword) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to secure password"}) + return + } + user.Password = hashed + if err := database.DB.Save(&user).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to update password"}) + return + } + c.JSON(http.StatusOK, gin.H{"message": "Password updated"}) +} + +// @Summary Delete user +// @Tags admin +// @Produce json +// @Param id path string true "User ID" +// @Success 200 {object} map[string]string +// @Failure 400 {object} map[string]string +// @Failure 404 {object} map[string]string +// @Router /api/v1/admin/users/{id} [delete] +// @Security BearerAuth +func (h *Handler) AdminDeleteUser(c *gin.Context) { + idStr := c.Param("id") + id, err := strconv.Atoi(idStr) + if err != nil || id <= 0 { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid user id"}) + return + } + // Prevent deleting last admin + var user models.User + if err := database.DB.First(&user, uint(id)).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "User not found"}) + return + } + if user.IsAdmin { + var adminCount int64 + _ = database.DB.Model(&models.User{}).Where("is_admin = ?", true).Count(&adminCount).Error + if adminCount <= 1 { + c.JSON(http.StatusBadRequest, gin.H{"error": "Cannot delete the last admin user"}) + return + } + } + // Prevent deleting yourself to avoid lockout + if v, ok := c.Get("user_id"); ok { + var uid uint + switch vv := v.(type) { + case uint: + uid = vv + case int: + if vv > 0 { uid = uint(vv) } + case int64: + if vv > 0 { uid = uint(vv) } + } + if uid == uint(id) { + c.JSON(http.StatusBadRequest, gin.H{"error": "You cannot delete your own account"}) + return + } + } + if err := database.DB.Delete(&models.User{}, uint(id)).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete user"}) + return + } + c.JSON(http.StatusOK, gin.H{"message": "User deleted"}) +} + +// @Summary Upload custom instance logo +// @Tags admin +// @Accept multipart/form-data +// @Produce json +// @Param logo formData file true "PNG logo file" +// @Success 200 {object} map[string]string +// @Failure 400 {object} map[string]string +// @Failure 500 {object} map[string]string +// @Router /api/v1/admin/logo [post] +// @Security BearerAuth +func (h *Handler) AdminUploadLogo(c *gin.Context) { + file, header, err := c.Request.FormFile("logo") + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Logo file is required"}) + return + } + defer file.Close() + + ext := strings.ToLower(filepath.Ext(header.Filename)) + if ext != ".png" { + c.JSON(http.StatusBadRequest, gin.H{"error": "Only PNG logo files are supported"}) + return + } + + logoPath := config.CustomLogoPath + if err := os.MkdirAll(filepath.Dir(logoPath), 0755); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create logo directory"}) + return + } + + dst, err := os.Create(logoPath) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save logo"}) + return + } + defer dst.Close() + + if _, err := io.Copy(dst, file); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save logo"}) + return + } + + c.JSON(http.StatusOK, gin.H{"message": "Logo updated"}) +} + +// @Summary Delete custom instance logo (revert to default) +// @Tags admin +// @Produce json +// @Success 200 {object} map[string]string +// @Failure 500 {object} map[string]string +// @Router /api/v1/admin/logo [delete] +// @Security BearerAuth +func (h *Handler) AdminDeleteLogo(c *gin.Context) { + logoPath := config.CustomLogoPath + if err := os.Remove(logoPath); err != nil && !os.IsNotExist(err) { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to remove custom logo"}) + return + } + + c.JSON(http.StatusOK, gin.H{"message": "Custom logo removed; default will be used"}) +} diff --git a/internal/api/notes_handlers.go b/internal/api/notes_handlers.go index 0fc14bcfb..588809b20 100644 --- a/internal/api/notes_handlers.go +++ b/internal/api/notes_handlers.go @@ -42,22 +42,31 @@ type NoteUpdateRequest struct { // @Security BearerAuth // @Router /api/v1/transcription/{id}/notes [get] func (h *Handler) ListNotes(c *gin.Context) { - transcriptionID := c.Param("id") - if transcriptionID == "" { - c.JSON(http.StatusBadRequest, gin.H{"error": "Transcription ID is required"}) - return - } + transcriptionID := c.Param("id") + if transcriptionID == "" { + c.JSON(http.StatusBadRequest, gin.H{"error": "Transcription ID is required"}) + return + } - // Ensure transcription exists - var job models.TranscriptionJob - if err := database.DB.Where("id = ?", transcriptionID).First(&job).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch transcription"}) - return - } + // Ensure transcription exists + var job models.TranscriptionJob + if uid, ok := c.Get("user_id"); ok { + if err := database.DB.Where("id = ? AND user_id = ?", transcriptionID, uid).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch transcription"}) + return + } + } else if err := database.DB.Where("id = ?", transcriptionID).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch transcription"}) + return + } var notes []models.Note if err := database.DB.Where("transcription_id = ?", transcriptionID). @@ -111,16 +120,27 @@ func (h *Handler) CreateNote(c *gin.Context) { // Ensure transcription exists var job models.TranscriptionJob - if err := database.DB.Where("id = ?", transcriptionID).First(&job).Error; err != nil { - if err == gorm.ErrRecordNotFound { - log.Printf("notes.CreateNote: transcription %s not found", transcriptionID) - c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) - return - } - log.Printf("notes.CreateNote: failed to fetch transcription %s: %v", transcriptionID, err) - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch transcription"}) - return - } + if uid, ok := c.Get("user_id"); ok { + if err := database.DB.Where("id = ? AND user_id = ?", transcriptionID, uid).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + log.Printf("notes.CreateNote: transcription %s not found", transcriptionID) + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) + return + } + log.Printf("notes.CreateNote: failed to fetch transcription %s: %v", transcriptionID, err) + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch transcription"}) + return + } + } else if err := database.DB.Where("id = ?", transcriptionID).First(&job).Error; err != nil { + if err == gorm.ErrRecordNotFound { + log.Printf("notes.CreateNote: transcription %s not found", transcriptionID) + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) + return + } + log.Printf("notes.CreateNote: failed to fetch transcription %s: %v", transcriptionID, err) + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch transcription"}) + return + } n := models.Note{ ID: uuid.New().String(), @@ -158,17 +178,25 @@ func (h *Handler) CreateNote(c *gin.Context) { // @Security BearerAuth // @Router /api/v1/notes/{note_id} [get] func (h *Handler) GetNote(c *gin.Context) { - noteID := c.Param("note_id") - var n models.Note - if err := database.DB.Where("id = ?", noteID).First(&n).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Note not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch note"}) - return - } - c.JSON(http.StatusOK, n) + noteID := c.Param("note_id") + var n models.Note + if err := database.DB.Where("id = ?", noteID).First(&n).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Note not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch note"}) + return + } + // Ownership check via transcription + if uid, ok := c.Get("user_id"); ok { + var job models.TranscriptionJob + if err := database.DB.Select("id").Where("id = ? AND user_id = ?", n.TranscriptionID, uid).First(&job).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Note not found"}) + return + } + } + c.JSON(http.StatusOK, n) } // UpdateNote updates the content of an existing note @@ -186,22 +214,29 @@ func (h *Handler) GetNote(c *gin.Context) { // @Security BearerAuth // @Router /api/v1/notes/{note_id} [put] func (h *Handler) UpdateNote(c *gin.Context) { - noteID := c.Param("note_id") - var req NoteUpdateRequest - if err := c.ShouldBindJSON(&req); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) - return - } + noteID := c.Param("note_id") + var req NoteUpdateRequest + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } - var n models.Note - if err := database.DB.Where("id = ?", noteID).First(&n).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Note not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch note"}) - return - } + var n models.Note + if err := database.DB.Where("id = ?", noteID).First(&n).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Note not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch note"}) + return + } + if uid, ok := c.Get("user_id"); ok { + var job models.TranscriptionJob + if err := database.DB.Select("id").Where("id = ? AND user_id = ?", n.TranscriptionID, uid).First(&job).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Note not found"}) + return + } + } n.Content = req.Content n.UpdatedAt = time.Now() @@ -225,11 +260,24 @@ func (h *Handler) UpdateNote(c *gin.Context) { // @Security ApiKeyAuth // @Router /api/v1/notes/{note_id} [delete] func (h *Handler) DeleteNote(c *gin.Context) { - noteID := c.Param("note_id") - if err := database.DB.Delete(&models.Note{}, "id = ?", noteID).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete note"}) - return - } - // Tests expect 200 on deletion - c.JSON(http.StatusOK, gin.H{"message": "Note deleted"}) + noteID := c.Param("note_id") + // Ownership check: ensure note's transcription belongs to user + var n models.Note + if err := database.DB.Where("id = ?", noteID).First(&n).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Note not found"}) + return + } + if uid, ok := c.Get("user_id"); ok { + var job models.TranscriptionJob + if err := database.DB.Select("id").Where("id = ? AND user_id = ?", n.TranscriptionID, uid).First(&job).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Note not found"}) + return + } + } + if err := database.DB.Delete(&models.Note{}, "id = ?", noteID).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete note"}) + return + } + // Tests expect 200 on deletion + c.JSON(http.StatusOK, gin.H{"message": "Note deleted"}) } diff --git a/internal/api/router.go b/internal/api/router.go index 9815d3505..40f14fada 100644 --- a/internal/api/router.go +++ b/internal/api/router.go @@ -146,15 +146,34 @@ func SetupRoutes(handler *Handler, authService *auth.AuthService) *gin.Engine { user.PUT("/settings", handler.UpdateUserSettings) } - // Admin routes (require authentication) - admin := v1.Group("/admin") - admin.Use(middleware.AuthMiddleware(authService)) - { - queue := admin.Group("/queue") - { - queue.GET("/stats", handler.GetQueueStats) - } - } + // Admin routes (base group) + admin := v1.Group("/admin") + admin.Use(middleware.AuthMiddleware(authService)) + { + queue := admin.Group("/queue") + { + queue.GET("/stats", handler.GetQueueStats) + } + + // User management routes - JWT only and admin-only + adminUsers := admin.Group("/users") + adminUsers.Use(middleware.JWTOnlyMiddleware(authService), middleware.AdminOnlyMiddleware()) + { + adminUsers.GET("/", handler.AdminListUsers) + adminUsers.POST("/", handler.AdminCreateUser) + adminUsers.PUT("/:id", handler.AdminUpdateUser) + adminUsers.PUT("/:id/password", handler.AdminUpdateUserPassword) + adminUsers.DELETE("/:id", handler.AdminDeleteUser) + } + + // Instance branding/logo routes - JWT only and admin-only + adminBranding := admin.Group("") + adminBranding.Use(middleware.JWTOnlyMiddleware(authService), middleware.AdminOnlyMiddleware()) + { + adminBranding.POST("/logo", handler.AdminUploadLogo) + adminBranding.DELETE("/logo", handler.AdminDeleteLogo) + } + } // LLM configuration routes (require authentication) llm := v1.Group("/llm") diff --git a/internal/api/summarize_handlers.go b/internal/api/summarize_handlers.go index 75c6bbf2f..08a061cc4 100644 --- a/internal/api/summarize_handlers.go +++ b/internal/api/summarize_handlers.go @@ -43,7 +43,16 @@ func (h *Handler) Summarize(c *gin.Context) { return } - svc, provider, err := h.getLLMService() + // Verify transcription ownership + if uid, ok := c.Get("user_id"); ok { + var t models.TranscriptionJob + if err := database.DB.Select("id").Where("id = ? AND user_id = ?", req.TranscriptionID, uid).First(&t).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Transcription not found"}) + return + } + } + + svc, provider, err := h.getLLMService(c) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return @@ -72,17 +81,17 @@ func (h *Handler) Summarize(c *gin.Context) { gotFirstChunk := false // helper to persist any accumulated content - persistIfAny := func() { - if req.TranscriptionID == "" || finalText == "" { - return - } - sum := models.Summary{ - TranscriptionID: req.TranscriptionID, - TemplateID: req.TemplateID, - Model: req.Model, - Content: finalText, - } - if err := database.DB.Create(&sum).Error; err != nil { + persistIfAny := func() { + if req.TranscriptionID == "" || finalText == "" { + return + } + sum := models.Summary{ + TranscriptionID: req.TranscriptionID, + TemplateID: req.TemplateID, + Model: req.Model, + Content: finalText, + } + if err := database.DB.Create(&sum).Error; err != nil { // Fallback: store on the transcription job record _ = database.DB.Model(&models.TranscriptionJob{}).Where("id = ?", req.TranscriptionID).Update("summary", finalText).Error } else { @@ -178,12 +187,19 @@ func (h *Handler) Summarize(c *gin.Context) { // @Security BearerAuth // @Router /api/v1/transcription/{id}/summary [get] func (h *Handler) GetSummaryForTranscription(c *gin.Context) { - tid := c.Param("id") - if tid == "" { - c.JSON(http.StatusBadRequest, gin.H{"error": "Transcription ID required"}) - return - } - var s models.Summary + tid := c.Param("id") + if tid == "" { + c.JSON(http.StatusBadRequest, gin.H{"error": "Transcription ID required"}) + return + } + if uid, ok := c.Get("user_id"); ok { + var t models.TranscriptionJob + if err := database.DB.Select("id").Where("id = ? AND user_id = ?", tid, uid).First(&t).Error; err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "Summary not found"}) + return + } + } + var s models.Summary if err := database.DB.Where("transcription_id = ?", tid).Order("created_at DESC").First(&s).Error; err != nil { if err == gorm.ErrRecordNotFound { // Fallback: check if summary is cached on the job record diff --git a/internal/api/summary_handlers.go b/internal/api/summary_handlers.go index 3a36aed4d..5df8e74a8 100644 --- a/internal/api/summary_handlers.go +++ b/internal/api/summary_handlers.go @@ -37,12 +37,17 @@ type SummarySettingsResponse struct { // @Security BearerAuth // @Router /api/v1/summaries [get] func (h *Handler) ListSummaryTemplates(c *gin.Context) { - var items []models.SummaryTemplate - if err := database.DB.Order("created_at DESC").Find(&items).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch templates"}) - return - } - c.JSON(http.StatusOK, items) + var items []models.SummaryTemplate + if uid, ok := c.Get("user_id"); ok { + if err := database.DB.Where("user_id = ?", uid).Order("created_at DESC").Find(&items).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch templates"}) + return + } + } else if err := database.DB.Order("created_at DESC").Find(&items).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch templates"}) + return + } + c.JSON(http.StatusOK, items) } // CreateSummaryTemplate creates a new template @@ -65,14 +70,17 @@ func (h *Handler) CreateSummaryTemplate(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } - item := models.SummaryTemplate{ - Name: req.Name, - Description: req.Description, - Model: req.Model, - Prompt: req.Prompt, - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - } + item := models.SummaryTemplate{ + Name: req.Name, + Description: req.Description, + Model: req.Model, + Prompt: req.Prompt, + CreatedAt: time.Now(), + UpdatedAt: time.Now(), + } + if uid, ok := c.Get("user_id"); ok { + item.UserID = uid.(uint) + } if err := database.DB.Create(&item).Error; err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to create template"}) return @@ -94,17 +102,26 @@ func (h *Handler) CreateSummaryTemplate(c *gin.Context) { // @Security BearerAuth // @Router /api/v1/summaries/{id} [get] func (h *Handler) GetSummaryTemplate(c *gin.Context) { - id := c.Param("id") - var item models.SummaryTemplate - if err := database.DB.Where("id = ?", id).First(&item).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Template not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch template"}) - return - } - c.JSON(http.StatusOK, item) + id := c.Param("id") + var item models.SummaryTemplate + if uid, ok := c.Get("user_id"); ok { + if err := database.DB.Where("id = ? AND user_id = ?", id, uid).First(&item).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Template not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch template"}) + return + } + } else if err := database.DB.Where("id = ?", id).First(&item).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Template not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch template"}) + return + } + c.JSON(http.StatusOK, item) } // UpdateSummaryTemplate updates an existing template @@ -130,15 +147,24 @@ func (h *Handler) UpdateSummaryTemplate(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } - var item models.SummaryTemplate - if err := database.DB.Where("id = ?", id).First(&item).Error; err != nil { - if err == gorm.ErrRecordNotFound { - c.JSON(http.StatusNotFound, gin.H{"error": "Template not found"}) - return - } - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch template"}) - return - } + var item models.SummaryTemplate + if uid, ok := c.Get("user_id"); ok { + if err := database.DB.Where("id = ? AND user_id = ?", id, uid).First(&item).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Template not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch template"}) + return + } + } else if err := database.DB.Where("id = ?", id).First(&item).Error; err != nil { + if err == gorm.ErrRecordNotFound { + c.JSON(http.StatusNotFound, gin.H{"error": "Template not found"}) + return + } + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch template"}) + return + } item.Name = req.Name item.Description = req.Description item.Model = req.Model @@ -162,12 +188,20 @@ func (h *Handler) UpdateSummaryTemplate(c *gin.Context) { // @Security ApiKeyAuth // @Router /api/v1/summaries/{id} [delete] func (h *Handler) DeleteSummaryTemplate(c *gin.Context) { - id := c.Param("id") - if err := database.DB.Delete(&models.SummaryTemplate{}, "id = ?", id).Error; err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete template"}) - return - } - c.Status(http.StatusNoContent) + id := c.Param("id") + if uid, ok := c.Get("user_id"); ok { + if err := database.DB.Where("id = ? AND user_id = ?", id, uid).Delete(&models.SummaryTemplate{}).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete template"}) + return + } + c.Status(http.StatusNoContent) + return + } + if err := database.DB.Delete(&models.SummaryTemplate{}, "id = ?", id).Error; err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to delete template"}) + return + } + c.Status(http.StatusNoContent) } // GetSummarySettings returns the global summary settings (default model) diff --git a/internal/config/config.go b/internal/config/config.go index b51f443c3..8193bb1df 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -13,11 +13,15 @@ import ( "scriberr/pkg/logger" ) +// CustomLogoPath is the relative path (from the working directory) where +// an uploaded instance logo will be stored and served from. +const CustomLogoPath = "data/custom-logo.png" + // Config holds all configuration values type Config struct { - // Server configuration - Port string - Host string + // Server configuration + Port string + Host string // Database configuration DatabasePath string @@ -28,9 +32,12 @@ type Config struct { // File storage UploadDir string - // Python/WhisperX configuration - UVPath string - WhisperXEnv string + // Python/WhisperX configuration + UVPath string + WhisperXEnv string + + // Registration + AllowRegistration bool } // Load loads configuration from environment variables and .env file @@ -40,15 +47,16 @@ func Load() *Config { logger.Debug("No .env file found, using system environment variables") } - return &Config{ - Port: getEnv("PORT", "8080"), - Host: getEnv("HOST", "localhost"), - DatabasePath: getEnv("DATABASE_PATH", "data/scriberr.db"), - JWTSecret: getJWTSecret(), - UploadDir: getEnv("UPLOAD_DIR", "data/uploads"), - UVPath: findUVPath(), - WhisperXEnv: getEnv("WHISPERX_ENV", "data/whisperx-env"), - } + return &Config{ + Port: getEnv("PORT", "8080"), + Host: getEnv("HOST", "localhost"), + DatabasePath: getEnv("DATABASE_PATH", "data/scriberr.db"), + JWTSecret: getJWTSecret(), + UploadDir: getEnv("UPLOAD_DIR", "data/uploads"), + UVPath: findUVPath(), + WhisperXEnv: getEnv("WHISPERX_ENV", "data/whisperx-env"), + AllowRegistration: getEnvAsBool("ALLOW_REGISTRATION", true), + } } // getEnv gets an environment variable with a default value diff --git a/internal/database/database.go b/internal/database/database.go index dfb8087cb..49a594393 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -1,16 +1,19 @@ package database import ( - "database/sql" - "fmt" - "os" - "time" - - "scriberr/internal/models" - - "github.com/glebarez/sqlite" - "gorm.io/gorm" - "gorm.io/gorm/logger" + "database/sql" + "fmt" + "os" + "path/filepath" + "strings" + "time" + + "scriberr/internal/models" + + "github.com/glebarez/sqlite" + "gorm.io/driver/postgres" + "gorm.io/gorm" + "gorm.io/gorm/logger" ) // DB is the global database instance @@ -18,32 +21,53 @@ var DB *gorm.DB // Initialize initializes the database connection with optimized settings func Initialize(dbPath string) error { - var err error - - // Create database directory if it doesn't exist - if err := os.MkdirAll("data", 0755); err != nil { - return fmt.Errorf("failed to create data directory: %v", err) - } - - // SQLite connection string with performance optimizations - dsn := fmt.Sprintf("%s?"+ - "_pragma=foreign_keys(1)&"+ // Enable foreign keys - "_pragma=journal_mode(WAL)&"+ // Use WAL mode for better concurrency - "_pragma=synchronous(NORMAL)&"+ // Balance between safety and performance - "_pragma=cache_size(-64000)&"+ // 64MB cache size - "_pragma=temp_store(MEMORY)&"+ // Store temp tables in memory - "_pragma=mmap_size(268435456)&"+ // 256MB mmap size - "_timeout=30000", // 30 second timeout - dbPath) - - // Open database connection with optimized config - DB, err = gorm.Open(sqlite.Open(dsn), &gorm.Config{ - Logger: logger.Default.LogMode(logger.Warn), // Reduce logging overhead - CreateBatchSize: 100, // Optimize batch inserts - }) - if err != nil { - return fmt.Errorf("failed to connect to database: %v", err) - } + var err error + + // Choose driver + driver := strings.ToLower(os.Getenv("DB_DRIVER")) + dbURL := os.Getenv("DATABASE_URL") + + if driver == "postgres" || (dbURL != "" && driver == "") { + // Open Postgres + if dbURL == "" { + return fmt.Errorf("DATABASE_URL is required for postgres driver") + } + DB, err = gorm.Open(postgres.Open(dbURL), &gorm.Config{ + Logger: logger.Default.LogMode(logger.Warn), + CreateBatchSize: 100, + }) + if err != nil { + return fmt.Errorf("failed to connect to postgres: %v", err) + } + } else { + // Ensure directory for sqlite file exists + dir := filepath.Dir(dbPath) + if dir != "." && dir != "" { + if mkErr := os.MkdirAll(dir, 0755); mkErr != nil { + return fmt.Errorf("failed to create data directory: %v", mkErr) + } + } + + // SQLite connection string with performance optimizations + dsn := fmt.Sprintf("%s?"+ + "_pragma=foreign_keys(1)&"+ // Enable foreign keys + "_pragma=journal_mode(WAL)&"+ // Use WAL mode for better concurrency + "_pragma=synchronous(NORMAL)&"+ // Balance between safety and performance + "_pragma=cache_size(-64000)&"+ // 64MB cache size + "_pragma=temp_store(MEMORY)&"+ // Store temp tables in memory + "_pragma=mmap_size(268435456)&"+ // 256MB mmap size + "_timeout=30000", // 30 second timeout + dbPath) + + // Open SQLite database connection with optimized config + DB, err = gorm.Open(sqlite.Open(dsn), &gorm.Config{ + Logger: logger.Default.LogMode(logger.Warn), // Reduce logging overhead + CreateBatchSize: 100, // Optimize batch inserts + }) + if err != nil { + return fmt.Errorf("failed to connect to sqlite: %v", err) + } + } // Get underlying sql.DB for connection pool configuration sqlDB, err := DB.DB() @@ -51,39 +75,69 @@ func Initialize(dbPath string) error { return fmt.Errorf("failed to get underlying sql.DB: %v", err) } - // Configure connection pool for optimal performance - sqlDB.SetMaxOpenConns(10) // SQLite generally works well with lower connection counts - sqlDB.SetMaxIdleConns(5) // Keep some connections idle - sqlDB.SetConnMaxLifetime(30 * time.Minute) // Reset connections every 30 minutes - sqlDB.SetConnMaxIdleTime(5 * time.Minute) // Close idle connections after 5 minutes + // Configure connection pool for optimal performance + if driver == "postgres" || (dbURL != "" && driver == "") { + // Higher concurrency for Postgres + sqlDB.SetMaxOpenConns(25) + sqlDB.SetMaxIdleConns(10) + } else { + // SQLite generally works well with lower connection counts + sqlDB.SetMaxOpenConns(10) + sqlDB.SetMaxIdleConns(5) + } + sqlDB.SetConnMaxLifetime(30 * time.Minute) // Reset connections every 30 minutes + sqlDB.SetConnMaxIdleTime(5 * time.Minute) // Close idle connections after 5 minutes // Auto migrate the schema - if err := DB.AutoMigrate( - &models.TranscriptionJob{}, - &models.TranscriptionJobExecution{}, - &models.SpeakerMapping{}, - &models.MultiTrackFile{}, - &models.User{}, - &models.APIKey{}, - &models.TranscriptionProfile{}, - &models.LLMConfig{}, - &models.ChatSession{}, - &models.ChatMessage{}, - &models.SummaryTemplate{}, - &models.SummarySetting{}, - &models.Summary{}, - &models.Note{}, - &models.RefreshToken{}, - ); err != nil { - return fmt.Errorf("failed to auto migrate: %v", err) - } + if err := DB.AutoMigrate( + &models.TranscriptionJob{}, + &models.TranscriptionJobExecution{}, + &models.SpeakerMapping{}, + &models.MultiTrackFile{}, + &models.User{}, + &models.APIKey{}, + &models.TranscriptionProfile{}, + &models.LLMConfig{}, + &models.ChatSession{}, + &models.ChatMessage{}, + &models.SummaryTemplate{}, + &models.SummarySetting{}, + &models.Summary{}, + &models.Note{}, + &models.RefreshToken{}, + ); err != nil { + return fmt.Errorf("failed to auto migrate: %v", err) + } // Add unique constraint for speaker mappings (transcription_job_id + original_speaker) if err := DB.Exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_speaker_mappings_unique ON speaker_mappings(transcription_job_id, original_speaker)").Error; err != nil { return fmt.Errorf("failed to create unique constraint for speaker mappings: %v", err) } - return nil + // Backfill ownership: assign existing records without owner to the first user + var firstUser models.User + _ = DB.Order("id ASC").First(&firstUser).Error + if firstUser.ID != 0 { + // Tables with user ownership + _ = DB.Model(&models.TranscriptionJob{}).Where("user_id = 0").Update("user_id", firstUser.ID).Error + _ = DB.Model(&models.APIKey{}).Where("user_id = 0").Update("user_id", firstUser.ID).Error + _ = DB.Model(&models.TranscriptionProfile{}).Where("user_id = 0").Update("user_id", firstUser.ID).Error + _ = DB.Model(&models.ChatSession{}).Where("user_id = 0").Update("user_id", firstUser.ID).Error + _ = DB.Model(&models.SummaryTemplate{}).Where("user_id = 0").Update("user_id", firstUser.ID).Error + } + + // Ensure at least one admin: make the first user admin if none exist + { + var adminCount int64 + if err := DB.Model(&models.User{}).Where("is_admin = ?", true).Count(&adminCount).Error; err == nil { + if adminCount == 0 && firstUser.ID != 0 && !firstUser.IsAdmin { + firstUser.IsAdmin = true + _ = DB.Save(&firstUser).Error + } + } + } + + return nil } // Close closes the database connection gracefully diff --git a/internal/models/summary.go b/internal/models/summary.go index 562512c28..08fb9bc2a 100644 --- a/internal/models/summary.go +++ b/internal/models/summary.go @@ -8,13 +8,16 @@ import ( // SummaryTemplate represents a saved summarization prompt/template type SummaryTemplate struct { - ID string `json:"id" gorm:"primaryKey;type:varchar(36)"` - Name string `json:"name" gorm:"type:varchar(255);not null"` - Description *string `json:"description,omitempty" gorm:"type:text"` - Model string `json:"model" gorm:"type:varchar(255);not null;default:''"` - Prompt string `json:"prompt" gorm:"type:text;not null"` - CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` - UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + ID string `json:"id" gorm:"primaryKey;type:varchar(36)"` + Name string `json:"name" gorm:"type:varchar(255);not null"` + Description *string `json:"description,omitempty" gorm:"type:text"` + Model string `json:"model" gorm:"type:varchar(255);not null;default:''"` + Prompt string `json:"prompt" gorm:"type:text;not null"` + CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` + UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + + // Owner + UserID uint `json:"user_id" gorm:"index"` } func (st *SummaryTemplate) BeforeCreate(tx *gorm.DB) error { diff --git a/internal/models/transcription.go b/internal/models/transcription.go index 7dc0481f2..513a19b9b 100644 --- a/internal/models/transcription.go +++ b/internal/models/transcription.go @@ -9,6 +9,8 @@ import ( // TranscriptionJob represents a transcription job record type TranscriptionJob struct { + // Owner (empty for legacy/quick temp jobs) + UserID uint `json:"user_id" gorm:"index"` ID string `json:"id" gorm:"primaryKey;type:varchar(36)"` Title *string `json:"title,omitempty" gorm:"type:text"` Status JobStatus `json:"status" gorm:"type:varchar(20);not null;default:'pending'"` @@ -133,27 +135,31 @@ func (tj *TranscriptionJob) BeforeCreate(tx *gorm.DB) error { // User represents a user for authentication type User struct { - ID uint `json:"id" gorm:"primaryKey"` - Username string `json:"username" gorm:"uniqueIndex;not null;type:varchar(50)"` - Password string `json:"-" gorm:"not null;type:varchar(255)"` - DefaultProfileID *string `json:"default_profile_id,omitempty" gorm:"type:varchar(36)"` - AutoTranscriptionEnabled bool `json:"auto_transcription_enabled" gorm:"not null;default:false"` - CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` - UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + ID uint `json:"id" gorm:"primaryKey"` + Username string `json:"username" gorm:"uniqueIndex;not null;type:varchar(50)"` + Password string `json:"-" gorm:"not null;type:varchar(255)"` + IsAdmin bool `json:"is_admin" gorm:"not null;default:false"` + DefaultProfileID *string `json:"default_profile_id,omitempty" gorm:"type:varchar(36)"` + AutoTranscriptionEnabled bool `json:"auto_transcription_enabled" gorm:"not null;default:false"` + CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` + UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` } // APIKey represents an API key for external authentication type APIKey struct { - ID uint `json:"id" gorm:"primaryKey"` - Key string `json:"key" gorm:"uniqueIndex;not null;type:varchar(255)"` - Name string `json:"name" gorm:"not null;type:varchar(100)"` - Description *string `json:"description,omitempty" gorm:"type:text"` + ID uint `json:"id" gorm:"primaryKey"` + Key string `json:"key" gorm:"uniqueIndex;not null;type:varchar(255)"` + Name string `json:"name" gorm:"not null;type:varchar(100)"` + Description *string `json:"description,omitempty" gorm:"type:text"` // IsActive should persist explicit false values; avoid default tag to prevent // GORM from overriding false with DB defaults during inserts. - IsActive bool `json:"is_active" gorm:"type:boolean;not null"` - LastUsed *time.Time `json:"last_used,omitempty"` - CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` - UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + IsActive bool `json:"is_active" gorm:"type:boolean;not null"` + LastUsed *time.Time `json:"last_used,omitempty"` + CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` + UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + + // Owner + UserID uint `json:"user_id" gorm:"index"` } // BeforeCreate sets the API key if not already set @@ -166,13 +172,16 @@ func (ak *APIKey) BeforeCreate(tx *gorm.DB) error { // TranscriptionProfile represents a saved transcription configuration profile type TranscriptionProfile struct { - ID string `json:"id" gorm:"primaryKey;type:varchar(36)"` - Name string `json:"name" gorm:"type:varchar(255);not null"` - Description *string `json:"description,omitempty" gorm:"type:text"` - IsDefault bool `json:"is_default" gorm:"type:boolean;default:false"` - Parameters WhisperXParams `json:"parameters" gorm:"embedded"` - CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` - UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + ID string `json:"id" gorm:"primaryKey;type:varchar(36)"` + Name string `json:"name" gorm:"type:varchar(255);not null"` + Description *string `json:"description,omitempty" gorm:"type:text"` + IsDefault bool `json:"is_default" gorm:"type:boolean;default:false"` + Parameters WhisperXParams `json:"parameters" gorm:"embedded"` + CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` + UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + + // Owner + UserID uint `json:"user_id" gorm:"index"` } // BeforeCreate sets the ID if not already set @@ -183,53 +192,59 @@ func (tp *TranscriptionProfile) BeforeCreate(tx *gorm.DB) error { return nil } -// BeforeSave ensures only one profile can be default +// BeforeSave ensures only one profile can be default (per user) func (tp *TranscriptionProfile) BeforeSave(tx *gorm.DB) error { - if tp.IsDefault { - // Set all other profiles to not default - if err := tx.Model(&TranscriptionProfile{}).Where("id != ?", tp.ID).Update("is_default", false).Error; err != nil { - return err - } - } - return nil + if tp.IsDefault { + // Set all other profiles to not default + if err := tx.Model(&TranscriptionProfile{}).Where("id != ? AND user_id = ?", tp.ID, tp.UserID).Update("is_default", false).Error; err != nil { + return err + } + } + return nil } // LLMConfig represents LLM configuration settings type LLMConfig struct { - ID uint `json:"id" gorm:"primaryKey"` - Provider string `json:"provider" gorm:"not null;type:varchar(50)"` // "ollama" or "openai" - BaseURL *string `json:"base_url,omitempty" gorm:"type:text"` // For Ollama - APIKey *string `json:"api_key,omitempty" gorm:"type:text"` // For OpenAI (encrypted) - IsActive bool `json:"is_active" gorm:"type:boolean;default:false"` - CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` - UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + ID uint `json:"id" gorm:"primaryKey"` + Provider string `json:"provider" gorm:"not null;type:varchar(50)"` // "ollama" or "openai" + BaseURL *string `json:"base_url,omitempty" gorm:"type:text"` // For Ollama + APIKey *string `json:"api_key,omitempty" gorm:"type:text"` // For OpenAI (encrypted) + IsActive bool `json:"is_active" gorm:"type:boolean;default:false"` + CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` + UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + + // Owner (0 = legacy/global) + UserID uint `json:"user_id" gorm:"index"` } -// BeforeSave ensures only one LLM config can be active +// BeforeSave ensures only one LLM config can be active (per user) func (lc *LLMConfig) BeforeSave(tx *gorm.DB) error { - if lc.IsActive { - // Set all other configs to not active - if err := tx.Model(&LLMConfig{}).Where("id != ?", lc.ID).Update("is_active", false).Error; err != nil { - return err - } - } - return nil + if lc.IsActive { + // Set all other configs to not active + if err := tx.Model(&LLMConfig{}).Where("id != ? AND user_id = ?", lc.ID, lc.UserID).Update("is_active", false).Error; err != nil { + return err + } + } + return nil } // ChatSession represents a chat session with a transcript type ChatSession struct { - ID string `json:"id" gorm:"primaryKey;type:varchar(36)"` - JobID string `json:"job_id" gorm:"type:varchar(36);not null"` - TranscriptionID string `json:"transcription_id" gorm:"type:varchar(36);not null;index"` - Title string `json:"title" gorm:"type:varchar(255);not null"` - Model string `json:"model" gorm:"type:varchar(100);not null"` - Provider string `json:"provider" gorm:"type:varchar(50);not null;default:'openai'"` - SystemContext *string `json:"system_context,omitempty" gorm:"type:text"` - MessageCount int `json:"message_count" gorm:"type:integer;default:0"` - LastActivityAt *time.Time `json:"last_activity_at,omitempty" gorm:"type:datetime"` - IsActive bool `json:"is_active" gorm:"type:boolean;default:true"` - CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` - UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + ID string `json:"id" gorm:"primaryKey;type:varchar(36)"` + JobID string `json:"job_id" gorm:"type:varchar(36);not null"` + TranscriptionID string `json:"transcription_id" gorm:"type:varchar(36);not null;index"` + Title string `json:"title" gorm:"type:varchar(255);not null"` + Model string `json:"model" gorm:"type:varchar(100);not null"` + Provider string `json:"provider" gorm:"type:varchar(50);not null;default:'openai'"` + SystemContext *string `json:"system_context,omitempty" gorm:"type:text"` + MessageCount int `json:"message_count" gorm:"type:integer;default:0"` + LastActivityAt *time.Time `json:"last_activity_at,omitempty" gorm:"type:datetime"` + IsActive bool `json:"is_active" gorm:"type:boolean;default:true"` + CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` + UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` + + // Owner + UserID uint `json:"user_id" gorm:"index"` // Relationships Transcription TranscriptionJob `json:"transcription,omitempty" gorm:"foreignKey:TranscriptionID"` diff --git a/internal/transcription/adapters/canary_adapter.go b/internal/transcription/adapters/canary_adapter.go index 17e2bfe81..bf21bab7a 100644 --- a/internal/transcription/adapters/canary_adapter.go +++ b/internal/transcription/adapters/canary_adapter.go @@ -11,6 +11,7 @@ import ( "time" "scriberr/internal/transcription/interfaces" + "scriberr/internal/transcription/registry" "scriberr/pkg/logger" ) @@ -21,7 +22,9 @@ type CanaryAdapter struct { } // NewCanaryAdapter creates a new Canary adapter -func NewCanaryAdapter(envPath string) *CanaryAdapter { +func NewCanaryAdapter() *CanaryAdapter { + envPath := "whisperx-env/parakeet" // Shares environment with Parakeet + capabilities := interfaces.ModelCapabilities{ ModelID: "canary", ModelFamily: "nvidia_canary", @@ -546,9 +549,7 @@ func (c *CanaryAdapter) Transcribe(ctx context.Context, input interfaces.AudioIn // Execute Canary cmd := exec.CommandContext(ctx, "uv", args...) - cmd.Env = append(os.Environ(), - "PYTHONUNBUFFERED=1", - "PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True") + cmd.Env = append(os.Environ(), "PYTHONUNBUFFERED=1") logger.Info("Executing Canary command", "args", strings.Join(args, " ")) @@ -698,4 +699,9 @@ func (c *CanaryAdapter) GetEstimatedProcessingTime(input interfaces.AudioInput) // Canary typically processes at about 40-50% of audio duration return time.Duration(float64(baseTime) * 2.0) +} + +// init registers the Canary adapter +func init() { + registry.RegisterTranscriptionAdapter("canary", NewCanaryAdapter()) } \ No newline at end of file diff --git a/internal/transcription/adapters/parakeet_adapter.go b/internal/transcription/adapters/parakeet_adapter.go index 38c0c8c17..8903b315a 100644 --- a/internal/transcription/adapters/parakeet_adapter.go +++ b/internal/transcription/adapters/parakeet_adapter.go @@ -12,6 +12,7 @@ import ( "time" "scriberr/internal/transcription/interfaces" + "scriberr/internal/transcription/registry" "scriberr/pkg/logger" ) @@ -22,7 +23,9 @@ type ParakeetAdapter struct { } // NewParakeetAdapter creates a new Parakeet adapter -func NewParakeetAdapter(envPath string) *ParakeetAdapter { +func NewParakeetAdapter() *ParakeetAdapter { + envPath := "whisperx-env/parakeet" + capabilities := interfaces.ModelCapabilities{ ModelID: "parakeet", ModelFamily: "nvidia_parakeet", @@ -34,11 +37,11 @@ func NewParakeetAdapter(envPath string) *ParakeetAdapter { RequiresGPU: false, // Can run on CPU but GPU recommended MemoryRequirement: 4096, // 4GB recommended Features: map[string]bool{ - "timestamps": true, - "word_level": true, - "long_form": true, - "attention_context": true, - "high_quality": true, + "timestamps": true, + "word_level": true, + "long_form": true, + "attention_context": true, + "high_quality": true, }, Metadata: map[string]string{ "engine": "nvidia_nemo", @@ -106,7 +109,7 @@ func NewParakeetAdapter(envPath string) *ParakeetAdapter { } baseAdapter := NewBaseAdapter("parakeet", envPath, capabilities, schema) - + adapter := &ParakeetAdapter{ BaseAdapter: baseAdapter, envPath: envPath, @@ -128,19 +131,15 @@ func (p *ParakeetAdapter) PrepareEnvironment(ctx context.Context) error { if CheckEnvironmentReady(p.envPath, "import nemo.collections.asr") { modelPath := filepath.Join(p.envPath, "parakeet-tdt-0.6b-v3.nemo") scriptPath := filepath.Join(p.envPath, "transcribe.py") - bufferedScriptPath := filepath.Join(p.envPath, "transcribe_buffered.py") - - // Check model, standard script, and buffered script all exist + + // Check both model and script exist if stat, err := os.Stat(modelPath); err == nil && stat.Size() > 1024*1024 { - _, scriptErr := os.Stat(scriptPath) - _, bufferedErr := os.Stat(bufferedScriptPath) - - if scriptErr == nil && bufferedErr == nil { + if _, err := os.Stat(scriptPath); err == nil { logger.Info("Parakeet environment already ready") p.initialized = true return nil } else { - logger.Info("Parakeet model exists but scripts missing, recreating scripts") + logger.Info("Parakeet model exists but script missing, recreating script") } } else { logger.Info("Parakeet model file missing or incomplete, redownloading") @@ -159,15 +158,11 @@ func (p *ParakeetAdapter) PrepareEnvironment(ctx context.Context) error { return fmt.Errorf("failed to download Parakeet model: %w", err) } - // Create transcription scripts (standard and buffered) + // Create transcription script if err := p.createTranscriptionScript(); err != nil { return fmt.Errorf("failed to create transcription script: %w", err) } - if err := p.createBufferedScript(); err != nil { - return fmt.Errorf("failed to create buffered script: %w", err) - } - p.initialized = true logger.Info("Parakeet environment prepared successfully") return nil @@ -227,9 +222,9 @@ func (p *ParakeetAdapter) downloadParakeetModel() error { } logger.Info("Downloading Parakeet model", "path", modelPath) - + modelURL := "https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3/resolve/main/parakeet-tdt-0.6b-v3.nemo?download=true" - + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Minute) defer cancel() @@ -484,84 +479,8 @@ func (p *ParakeetAdapter) Transcribe(ctx context.Context, input interfaces.Audio } } - // Detect audio duration and choose processing path - audioDuration := input.Duration - if audioDuration == 0 { - // Duration not provided, try to detect it - durationSecs, err := p.detectAudioDuration(audioInput.FilePath) - if err != nil { - logger.Warn("Failed to detect audio duration, using standard transcription", "error", err) - audioDuration = 0 - } else { - audioDuration = time.Duration(durationSecs * float64(time.Second)) - } - } - - // Get chunk threshold from environment (default: 300 seconds = 5 minutes) - chunkThreshold := 300 - if thresholdStr := os.Getenv("PARAKEET_CHUNK_THRESHOLD_SECS"); thresholdStr != "" { - if parsed, err := strconv.Atoi(thresholdStr); err == nil && parsed > 0 { - chunkThreshold = parsed - } - } - - // Choose processing path based on audio duration - chunkThresholdDuration := time.Duration(chunkThreshold) * time.Second - var result *interfaces.TranscriptResult - if audioDuration > chunkThresholdDuration { - logger.Info("Using buffered inference for long audio", - "duration_secs", audioDuration.Seconds(), - "threshold_secs", chunkThreshold) - result, err = p.transcribeBuffered(ctx, audioInput, params, tempDir) - } else { - logger.Info("Using standard transcription for short audio", - "duration_secs", audioDuration.Seconds(), - "threshold_secs", chunkThreshold) - result, err = p.transcribeStandard(ctx, audioInput, params, tempDir) - } - - if err != nil { - return nil, err - } - - result.ProcessingTime = time.Since(startTime) - result.ModelUsed = "parakeet-tdt-0.6b-v3" - result.Metadata = p.CreateDefaultMetadata(params) - - logger.Info("Parakeet transcription completed", - "segments", len(result.Segments), - "words", len(result.WordSegments), - "processing_time", result.ProcessingTime) - - return result, nil -} - -// detectAudioDuration uses ffprobe to detect audio duration -func (p *ParakeetAdapter) detectAudioDuration(audioPath string) (float64, error) { - cmd := exec.Command("ffprobe", - "-v", "error", - "-show_entries", "format=duration", - "-of", "default=noprint_wrappers=1:nokey=1", - audioPath) - - output, err := cmd.Output() - if err != nil { - return 0, fmt.Errorf("ffprobe failed: %w", err) - } - - durationStr := strings.TrimSpace(string(output)) - duration, err := strconv.ParseFloat(durationStr, 64) - if err != nil { - return 0, fmt.Errorf("failed to parse duration: %w", err) - } - - return duration, nil -} - -// transcribeStandard uses the standard Parakeet transcription (original method) -func (p *ParakeetAdapter) transcribeStandard(ctx context.Context, input interfaces.AudioInput, params map[string]interface{}, tempDir string) (*interfaces.TranscriptResult, error) { // Build command arguments - args, err := p.buildParakeetArgs(input, params, tempDir) + args, err := p.buildParakeetArgs(audioInput, params, tempDir) if err != nil { return nil, fmt.Errorf("failed to build command: %w", err) } @@ -571,7 +490,7 @@ func (p *ParakeetAdapter) transcribeStandard(ctx context.Context, input interfac cmd.Env = append(os.Environ(), "PYTHONUNBUFFERED=1") logger.Info("Executing Parakeet command", "args", strings.Join(args, " ")) - + output, err := cmd.CombinedOutput() if ctx.Err() == context.Canceled { return nil, fmt.Errorf("transcription was cancelled") @@ -582,42 +501,19 @@ func (p *ParakeetAdapter) transcribeStandard(ctx context.Context, input interfac } // Parse result - result, err := p.parseResult(tempDir, input, params) + result, err := p.parseResult(tempDir, audioInput, params) if err != nil { return nil, fmt.Errorf("failed to parse result: %w", err) } - return result, nil -} - -// transcribeBuffered uses NeMo's buffered inference for long audio -func (p *ParakeetAdapter) transcribeBuffered(ctx context.Context, input interfaces.AudioInput, params map[string]interface{}, tempDir string) (*interfaces.TranscriptResult, error) { - // Build command arguments for buffered inference - args, err := p.buildBufferedArgs(input, params, tempDir) - if err != nil { - return nil, fmt.Errorf("failed to build buffered command: %w", err) - } - - // Execute buffered inference - cmd := exec.CommandContext(ctx, "uv", args...) - cmd.Env = append(os.Environ(), "PYTHONUNBUFFERED=1") - - logger.Info("Executing Parakeet buffered inference", "args", strings.Join(args, " ")) - - output, err := cmd.CombinedOutput() - if ctx.Err() == context.Canceled { - return nil, fmt.Errorf("transcription was cancelled") - } - if err != nil { - logger.Error("Parakeet buffered execution failed", "output", string(output), "error", err) - return nil, fmt.Errorf("Parakeet buffered execution failed: %w", err) - } + result.ProcessingTime = time.Since(startTime) + result.ModelUsed = "parakeet-tdt-0.6b-v3" + result.Metadata = p.CreateDefaultMetadata(params) - // Parse buffered result - result, err := p.parseBufferedResult(tempDir, input, params) - if err != nil { - return nil, fmt.Errorf("failed to parse buffered result: %w", err) - } + logger.Info("Parakeet transcription completed", + "segments", len(result.Segments), + "words", len(result.WordSegments), + "processing_time", result.ProcessingTime) return result, nil } @@ -625,7 +521,7 @@ func (p *ParakeetAdapter) transcribeBuffered(ctx context.Context, input interfac // buildParakeetArgs builds the command arguments for Parakeet func (p *ParakeetAdapter) buildParakeetArgs(input interfaces.AudioInput, params map[string]interface{}, tempDir string) ([]string, error) { outputFile := filepath.Join(tempDir, "result.json") - + scriptPath := filepath.Join(p.envPath, "transcribe.py") args := []string{ "run", "--native-tls", "--project", p.envPath, "python", scriptPath, @@ -650,16 +546,16 @@ func (p *ParakeetAdapter) buildParakeetArgs(input interfaces.AudioInput, params // parseResult parses the Parakeet output func (p *ParakeetAdapter) parseResult(tempDir string, input interfaces.AudioInput, params map[string]interface{}) (*interfaces.TranscriptResult, error) { resultFile := filepath.Join(tempDir, "result.json") - + data, err := os.ReadFile(resultFile) if err != nil { return nil, fmt.Errorf("failed to read result file: %w", err) } var parakeetResult struct { - Transcription string `json:"transcription"` - Language string `json:"language"` - WordTimestamps []struct { + Transcription string `json:"transcription"` + Language string `json:"language"` + WordTimestamps []struct { Word string `json:"word"` StartOffset int `json:"start_offset"` EndOffset int `json:"end_offset"` @@ -682,11 +578,11 @@ func (p *ParakeetAdapter) parseResult(tempDir string, input interfaces.AudioInpu // Convert to standard format result := &interfaces.TranscriptResult{ - Text: parakeetResult.Transcription, - Language: parakeetResult.Language, - Segments: make([]interfaces.TranscriptSegment, len(parakeetResult.SegmentTimestamps)), + Text: parakeetResult.Transcription, + Language: parakeetResult.Language, + Segments: make([]interfaces.TranscriptSegment, len(parakeetResult.SegmentTimestamps)), WordSegments: make([]interfaces.TranscriptWord, len(parakeetResult.WordTimestamps)), - Confidence: 0.0, // Default confidence + Confidence: 0.0, // Default confidence } // Convert segments @@ -711,222 +607,16 @@ func (p *ParakeetAdapter) parseResult(tempDir string, input interfaces.AudioInpu return result, nil } -// createBufferedScript creates the Python script for NeMo buffered inference -func (p *ParakeetAdapter) createBufferedScript() error { - scriptContent := `#!/usr/bin/env python3 -""" -NVIDIA Parakeet buffered inference for long audio files. -Splits audio into chunks to avoid GPU memory issues. -""" - -import argparse -import json -import sys -import os -import librosa -import soundfile as sf -import numpy as np -from pathlib import Path -import nemo.collections.asr as nemo_asr - - -def split_audio_file(audio_path, chunk_duration_secs=300): - """Split audio file into chunks of specified duration.""" - audio, sr = librosa.load(audio_path, sr=None, mono=True) - total_duration = len(audio) / sr - chunk_samples = int(chunk_duration_secs * sr) - - chunks = [] - for start_sample in range(0, len(audio), chunk_samples): - end_sample = min(start_sample + chunk_samples, len(audio)) - chunk_audio = audio[start_sample:end_sample] - start_time = start_sample / sr - chunks.append({ - 'audio': chunk_audio, - 'start_time': start_time, - 'duration': len(chunk_audio) / sr - }) - - return chunks, sr - - -def transcribe_buffered( - audio_path: str, - output_file: str = None, - chunk_duration_secs: float = 300, # 5 minutes default -): - """ - Transcribe long audio by splitting into chunks and merging results. - """ - script_dir = os.path.dirname(os.path.abspath(__file__)) - model_path = os.path.join(script_dir, "parakeet-tdt-0.6b-v3.nemo") - - print(f"Loading NVIDIA Parakeet model from: {model_path}") - if not os.path.exists(model_path): - print(f"Error: Model not found at {model_path}") - sys.exit(1) - - asr_model = nemo_asr.models.ASRModel.restore_from(model_path) - - # Disable CUDA graphs to fix Error 35 on RTX 2000e Ada GPU - # Uses change_decoding_strategy() to properly reconfigure the TDT decoder - from omegaconf import OmegaConf, open_dict - - print("Disabling CUDA graphs in TDT decoder...") - dec_cfg = asr_model.cfg.decoding - - # Add use_cuda_graph_decoder parameter to greedy config - with open_dict(dec_cfg.greedy): - dec_cfg.greedy['use_cuda_graph_decoder'] = False - - # Apply the new decoding strategy (this rebuilds the decoder with our config) - asr_model.change_decoding_strategy(dec_cfg) - print("✓ CUDA graphs disabled successfully") - - print(f"Splitting audio into {chunk_duration_secs}s chunks...") - chunks, sr = split_audio_file(audio_path, chunk_duration_secs) - print(f"Created {len(chunks)} chunks") - - all_words = [] - all_segments = [] - full_text = [] - - for i, chunk_info in enumerate(chunks): - print(f"Transcribing chunk {i+1}/{len(chunks)} (duration: {chunk_info['duration']:.1f}s)...") - - # Save chunk to temporary file - chunk_path = f"/tmp/chunk_{i}.wav" - sf.write(chunk_path, chunk_info['audio'], sr) - - try: - # Transcribe chunk - output = asr_model.transcribe( - [chunk_path], - batch_size=1, - timestamps=True, - ) - - result_data = output[0] - chunk_text = result_data.text - full_text.append(chunk_text) - - # Extract and adjust timestamps - if hasattr(result_data, 'timestamp') and result_data.timestamp: - chunk_words = result_data.timestamp.get("word", []) - chunk_segments = result_data.timestamp.get("segment", []) - - # Adjust timestamps by chunk start time - for word in chunk_words: - word_copy = dict(word) - word_copy['start'] += chunk_info['start_time'] - word_copy['end'] += chunk_info['start_time'] - all_words.append(word_copy) - - for segment in chunk_segments: - seg_copy = dict(segment) - seg_copy['start'] += chunk_info['start_time'] - seg_copy['end'] += chunk_info['start_time'] - all_segments.append(seg_copy) - - print(f"Chunk {i+1} complete: {len(chunk_text)} characters") - - finally: - # Clean up temp file - if os.path.exists(chunk_path): - os.remove(chunk_path) - - final_text = " ".join(full_text) - print(f"Transcription complete: {len(final_text)} characters total") - - output_data = { - "transcription": final_text, - "language": "en", - "word_timestamps": all_words, - "segment_timestamps": all_segments, - "audio_file": audio_path, - "model": "parakeet-tdt-0.6b-v3", - "buffered": True, - "chunk_duration_secs": chunk_duration_secs, - "num_chunks": len(chunks), - } - - if output_file: - with open(output_file, 'w', encoding='utf-8') as f: - json.dump(output_data, f, indent=2, ensure_ascii=False) - print(f"Results saved to: {output_file}") - else: - print(json.dumps(output_data, indent=2, ensure_ascii=False)) - - -def main(): - parser = argparse.ArgumentParser( - description="Transcribe long audio using NVIDIA Parakeet with chunking" - ) - parser.add_argument("audio_file", help="Path to audio file") - parser.add_argument("--output", "-o", help="Output file path", required=True) - parser.add_argument( - "--chunk-len", type=float, default=300, - help="Chunk duration in seconds (default: 300 = 5 minutes)" - ) - - args = parser.parse_args() - - if not os.path.exists(args.audio_file): - print(f"Error: Audio file not found: {args.audio_file}") - sys.exit(1) - - transcribe_buffered( - audio_path=args.audio_file, - output_file=args.output, - chunk_duration_secs=args.chunk_len, - ) - - -if __name__ == "__main__": - main() -` - - scriptPath := filepath.Join(p.envPath, "transcribe_buffered.py") - if err := os.WriteFile(scriptPath, []byte(scriptContent), 0755); err != nil { - return fmt.Errorf("failed to write buffered script: %w", err) - } - - logger.Info("Created buffered transcription script", "path", scriptPath) - return nil -} - -// buildBufferedArgs builds the command arguments for buffered inference -func (p *ParakeetAdapter) buildBufferedArgs(input interfaces.AudioInput, params map[string]interface{}, tempDir string) ([]string, error) { - outputFile := filepath.Join(tempDir, "result.json") - - // Get chunk threshold from environment (default: 300 seconds = 5 minutes) - chunkDuration := "300" - if thresholdStr := os.Getenv("PARAKEET_CHUNK_THRESHOLD_SECS"); thresholdStr != "" { - chunkDuration = thresholdStr - } - - scriptPath := filepath.Join(p.envPath, "transcribe_buffered.py") - args := []string{ - "run", "--native-tls", "--project", p.envPath, "python", scriptPath, - input.FilePath, - "--output", outputFile, - "--chunk-len", chunkDuration, - } - - return args, nil -} - -// parseBufferedResult parses the buffered inference output -func (p *ParakeetAdapter) parseBufferedResult(tempDir string, input interfaces.AudioInput, params map[string]interface{}) (*interfaces.TranscriptResult, error) { - // Buffered inference uses the same output format as standard transcription - return p.parseResult(tempDir, input, params) -} - // GetEstimatedProcessingTime provides Parakeet-specific time estimation func (p *ParakeetAdapter) GetEstimatedProcessingTime(input interfaces.AudioInput) time.Duration { // Parakeet is generally faster than WhisperX but slower than real-time baseTime := p.BaseAdapter.GetEstimatedProcessingTime(input) - + // Parakeet typically processes at about 30% of audio duration return time.Duration(float64(baseTime) * 1.5) } + +// init registers the Parakeet adapter +func init() { + registry.RegisterTranscriptionAdapter("parakeet", NewParakeetAdapter()) +} \ No newline at end of file diff --git a/internal/transcription/adapters/pyannote_adapter.go b/internal/transcription/adapters/pyannote_adapter.go index dfc05fdb6..fd308171a 100644 --- a/internal/transcription/adapters/pyannote_adapter.go +++ b/internal/transcription/adapters/pyannote_adapter.go @@ -12,6 +12,7 @@ import ( "time" "scriberr/internal/transcription/interfaces" + "scriberr/internal/transcription/registry" "scriberr/pkg/logger" ) @@ -22,7 +23,9 @@ type PyAnnoteAdapter struct { } // NewPyAnnoteAdapter creates a new PyAnnote diarization adapter -func NewPyAnnoteAdapter(envPath string) *PyAnnoteAdapter { +func NewPyAnnoteAdapter() *PyAnnoteAdapter { + envPath := "whisperx-env/parakeet" // Shares environment with NVIDIA models + capabilities := interfaces.ModelCapabilities{ ModelID: "pyannote", ModelFamily: "pyannote", @@ -116,8 +119,8 @@ func NewPyAnnoteAdapter(envPath string) *PyAnnoteAdapter { Type: "string", Required: false, Default: "cpu", - Options: []string{"cpu", "cuda", "mps"}, - Description: "Device to use for computation (cpu, cuda for NVIDIA GPUs, mps for Apple Silicon)", + Options: []string{"cpu", "cuda"}, + Description: "Device to use for computation", Group: "advanced", }, @@ -368,16 +371,6 @@ def diarize_audio( print("CUDA not available, falling back to CPU") except ImportError: print("PyTorch not available for CUDA, using CPU") - elif device == "mps": - try: - import torch - if torch.backends.mps.is_available(): - pipeline = pipeline.to(torch.device("mps")) - print("Using MPS (Apple Silicon) for diarization") - else: - print("MPS not available, falling back to CPU") - except (ImportError, AttributeError): - print("PyTorch MPS not available, using CPU") print("Pipeline loaded successfully") except Exception as e: @@ -507,7 +500,7 @@ def main(): ) parser.add_argument( "--device", - choices=["cpu", "cuda", "mps"], + choices=["cpu", "cuda"], default="cpu", help="Device to use for computation" ) @@ -799,7 +792,12 @@ func (p *PyAnnoteAdapter) parseRTTMResult(tempDir string, input interfaces.Audio func (p *PyAnnoteAdapter) GetEstimatedProcessingTime(input interfaces.AudioInput) time.Duration { // PyAnnote is typically faster than real-time for diarization baseTime := p.BaseAdapter.GetEstimatedProcessingTime(input) - + // PyAnnote typically processes at about 10-15% of audio duration return time.Duration(float64(baseTime) * 0.5) +} + +// init registers the PyAnnote adapter +func init() { + registry.RegisterDiarizationAdapter("pyannote", NewPyAnnoteAdapter()) } \ No newline at end of file diff --git a/internal/transcription/adapters/sortformer_adapter.go b/internal/transcription/adapters/sortformer_adapter.go index d2e0a7f57..1b0fab707 100644 --- a/internal/transcription/adapters/sortformer_adapter.go +++ b/internal/transcription/adapters/sortformer_adapter.go @@ -12,6 +12,7 @@ import ( "time" "scriberr/internal/transcription/interfaces" + "scriberr/internal/transcription/registry" "scriberr/pkg/logger" ) @@ -22,7 +23,9 @@ type SortformerAdapter struct { } // NewSortformerAdapter creates a new NVIDIA Sortformer diarization adapter -func NewSortformerAdapter(envPath string) *SortformerAdapter { +func NewSortformerAdapter() *SortformerAdapter { + envPath := "whisperx-env/parakeet" // Shares environment with NVIDIA models + capabilities := interfaces.ModelCapabilities{ ModelID: "sortformer", ModelFamily: "nvidia_sortformer", @@ -91,8 +94,8 @@ func NewSortformerAdapter(envPath string) *SortformerAdapter { Type: "string", Required: false, Default: "auto", - Options: []string{"cpu", "cuda", "mps", "auto"}, - Description: "Device to use for computation (cpu, cuda for NVIDIA GPUs, mps for Apple Silicon, auto for automatic detection)", + Options: []string{"cpu", "cuda", "auto"}, + Description: "Device to use for computation", Group: "advanced", }, @@ -322,12 +325,7 @@ def diarize_audio( Perform speaker diarization using NVIDIA's Sortformer model. """ if device is None or device == "auto": - if torch.cuda.is_available(): - device = "cuda" - elif hasattr(torch.backends, 'mps') and torch.backends.mps.is_available(): - device = "mps" - else: - device = "cpu" + device = "cuda" if torch.cuda.is_available() else "cpu" print(f"Using device: {device}") print(f"Loading NVIDIA Sortformer diarization model...") @@ -573,7 +571,7 @@ Note: This script requires diar_streaming_sortformer_4spk-v2.nemo to be in the s parser.add_argument("audio_file", help="Path to input audio file (WAV, FLAC, etc.)") parser.add_argument("output_file", help="Path to output file (.json for JSON format, .rttm for RTTM format)") parser.add_argument("--batch-size", type=int, default=1, help="Batch size for processing (default: 1)") - parser.add_argument("--device", choices=["cuda", "mps", "cpu", "auto"], default="auto", help="Device to use for inference (default: auto-detect)") + parser.add_argument("--device", choices=["cuda", "cpu", "auto"], default="auto", help="Device to use for inference (default: auto-detect)") parser.add_argument("--max-speakers", type=int, default=4, help="Maximum number of speakers (default: 4, optimized for this model)") parser.add_argument("--output-format", choices=["json", "rttm"], help="Output format (auto-detected from file extension if not specified)") parser.add_argument("--streaming", action="store_true", help="Enable streaming mode") @@ -873,4 +871,9 @@ func (s *SortformerAdapter) GetEstimatedProcessingTime(input interfaces.AudioInp // Sortformer typically processes at about 5-10% of audio duration return time.Duration(float64(baseTime) * 0.3) +} + +// init registers the Sortformer adapter +func init() { + registry.RegisterDiarizationAdapter("sortformer", NewSortformerAdapter()) } \ No newline at end of file diff --git a/internal/transcription/adapters/whisperx_adapter.go b/internal/transcription/adapters/whisperx_adapter.go index 63b0716bb..fb6bc4de3 100644 --- a/internal/transcription/adapters/whisperx_adapter.go +++ b/internal/transcription/adapters/whisperx_adapter.go @@ -12,6 +12,7 @@ import ( "time" "scriberr/internal/transcription/interfaces" + "scriberr/internal/transcription/registry" "scriberr/pkg/logger" ) @@ -22,7 +23,9 @@ type WhisperXAdapter struct { } // NewWhisperXAdapter creates a new WhisperX adapter -func NewWhisperXAdapter(envPath string) *WhisperXAdapter { +func NewWhisperXAdapter() *WhisperXAdapter { + envPath := "whisperx-env" + capabilities := interfaces.ModelCapabilities{ ModelID: "whisperx", ModelFamily: "whisper", @@ -76,7 +79,7 @@ func NewWhisperXAdapter(envPath string) *WhisperXAdapter { Type: "string", Required: false, Default: "cpu", - Options: []string{"cpu", "cuda", "mps"}, + Options: []string{"cpu", "cuda"}, Description: "Device to use for computation", Group: "basic", }, @@ -346,7 +349,7 @@ func (w *WhisperXAdapter) updateWhisperXDependencies(whisperxPath string) error content = strings.ReplaceAll(content, `"transformers>=4.48.0",`, `"transformers>=4.48.0", - "yt-dlp[default]",`) + "yt-dlp",`) } if err := os.WriteFile(pyprojectPath, []byte(content), 0644); err != nil { @@ -590,9 +593,14 @@ func (w *WhisperXAdapter) parseResult(outputDir string, input interfaces.AudioIn func (w *WhisperXAdapter) GetEstimatedProcessingTime(input interfaces.AudioInput) time.Duration { // WhisperX processing time varies by model size baseTime := w.BaseAdapter.GetEstimatedProcessingTime(input) - + // Adjust based on model size (if we can determine it) // This would need model size information from parameters // For now, use base estimation return baseTime +} + +// init registers the WhisperX adapter +func init() { + registry.RegisterTranscriptionAdapter("whisperx", NewWhisperXAdapter()) } \ No newline at end of file diff --git a/internal/transcription/quick_transcription.go b/internal/transcription/quick_transcription.go index d09d41258..06e05334d 100644 --- a/internal/transcription/quick_transcription.go +++ b/internal/transcription/quick_transcription.go @@ -105,6 +105,17 @@ func (qs *QuickTranscriptionService) SubmitQuickJob(audioData io.Reader, filenam return job, nil } +// SubmitQuickJobForUser creates and processes a temporary transcription job and associates DB temp record with a user +func (qs *QuickTranscriptionService) SubmitQuickJobForUser(audioData io.Reader, filename string, params models.WhisperXParams, userID uint) (*QuickTranscriptionJob, error) { + job, err := qs.SubmitQuickJob(audioData, filename, params) + if err != nil { + return nil, err + } + // Best-effort: set user on the temp DB job if present + _ = database.DB.Model(&models.TranscriptionJob{}).Where("id = ?", job.ID).Update("user_id", userID).Error + return job, nil +} + // GetQuickJob retrieves a quick transcription job by ID func (qs *QuickTranscriptionService) GetQuickJob(jobID string) (*QuickTranscriptionJob, error) { qs.jobsMutex.RLock() diff --git a/internal/transcription/registry/registry.go b/internal/transcription/registry/registry.go index 817241b82..6fd95f77f 100644 --- a/internal/transcription/registry/registry.go +++ b/internal/transcription/registry/registry.go @@ -571,47 +571,4 @@ func (r *ModelRegistry) GetParameterSchema(modelID string) ([]interfaces.Paramet } return nil, fmt.Errorf("model not found: %s", modelID) -} - -// Test helper functions - -// ClearRegistry clears all registered adapters (for testing only) -func ClearRegistry() { - registry := GetRegistry() - registry.mu.Lock() - defer registry.mu.Unlock() - - registry.transcriptionAdapters = make(map[string]interfaces.TranscriptionAdapter) - registry.diarizationAdapters = make(map[string]interfaces.DiarizationAdapter) - registry.compositeAdapters = make(map[string]interfaces.CompositeAdapter) - registry.capabilities = make(map[string]interfaces.ModelCapabilities) - registry.initialized = false -} - -// GetTranscriptionAdapters returns all registered transcription adapters (for testing) -func GetTranscriptionAdapters() map[string]interfaces.TranscriptionAdapter { - registry := GetRegistry() - registry.mu.RLock() - defer registry.mu.RUnlock() - - // Return a copy to avoid concurrent access issues - result := make(map[string]interfaces.TranscriptionAdapter) - for id, adapter := range registry.transcriptionAdapters { - result[id] = adapter - } - return result -} - -// GetDiarizationAdapters returns all registered diarization adapters (for testing) -func GetDiarizationAdapters() map[string]interfaces.DiarizationAdapter { - registry := GetRegistry() - registry.mu.RLock() - defer registry.mu.RUnlock() - - // Return a copy to avoid concurrent access issues - result := make(map[string]interfaces.DiarizationAdapter) - for id, adapter := range registry.diarizationAdapters { - result[id] = adapter - } - return result } \ No newline at end of file diff --git a/internal/web/static.go b/internal/web/static.go index b804df2d2..35cb51440 100644 --- a/internal/web/static.go +++ b/internal/web/static.go @@ -4,9 +4,11 @@ import ( "embed" "io/fs" "net/http" + "os" "strings" "scriberr/internal/auth" + "scriberr/internal/config" "github.com/gin-gonic/gin" ) @@ -72,6 +74,22 @@ func SetupStaticRoutes(router *gin.Engine, authService *auth.AuthService) { // Serve scriberr-logo.png router.GET("/scriberr-logo.png", func(c *gin.Context) { + // Prevent aggressive browser caching so logo changes are visible immediately + c.Header("Cache-Control", "no-cache, no-store, must-revalidate") + + // First try to load a custom uploaded logo from the data directory + if fileContent, err := os.ReadFile(config.CustomLogoPath); err == nil { + c.Data(http.StatusOK, "image/png", fileContent) + return + } + + // Then try to load a custom logo from the local filesystem (Transferordner/Logo-Diakovere.png) + if fileContent, err := os.ReadFile("Transferordner/Logo-Diakovere.png"); err == nil { + c.Data(http.StatusOK, "image/png", fileContent) + return + } + + // Fallback to embedded default logo fileContent, err := staticFiles.ReadFile("dist/scriberr-logo.png") if err != nil { c.Status(http.StatusNotFound) diff --git a/pkg/middleware/auth.go b/pkg/middleware/auth.go index 892cd49f1..5a8ebc757 100644 --- a/pkg/middleware/auth.go +++ b/pkg/middleware/auth.go @@ -1,30 +1,33 @@ package middleware import ( - "net/http" - "strings" - "time" + "net/http" + "strings" + "time" - "scriberr/internal/auth" - "scriberr/internal/database" - "scriberr/internal/models" + "scriberr/internal/auth" + "scriberr/internal/database" + "scriberr/internal/models" - "github.com/gin-gonic/gin" + "github.com/gin-gonic/gin" ) // AuthMiddleware handles both API key and JWT authentication func AuthMiddleware(authService *auth.AuthService) gin.HandlerFunc { return func(c *gin.Context) { - // Check for API key first - apiKey := c.GetHeader("X-API-Key") - if apiKey != "" { - if validateAPIKey(apiKey) { - c.Set("auth_type", "api_key") - c.Set("api_key", apiKey) - c.Next() - return - } - } + // Check for API key first + apiKey := c.GetHeader("X-API-Key") + if apiKey != "" { + if key, ok := validateAPIKey(apiKey); ok { + c.Set("auth_type", "api_key") + c.Set("api_key", apiKey) + if key.UserID != 0 { + c.Set("user_id", key.UserID) + } + c.Next() + return + } + } // Check for JWT token authHeader := c.GetHeader("Authorization") @@ -58,41 +61,45 @@ func AuthMiddleware(authService *auth.AuthService) gin.HandlerFunc { } // validateAPIKey validates an API key against the database and updates last used timestamp -func validateAPIKey(key string) bool { - var apiKey models.APIKey - result := database.DB.Where("key = ? AND is_active = ?", key, true).First(&apiKey) - if result.Error != nil { - return false - } - - // Update last used timestamp - now := time.Now() - apiKey.LastUsed = &now - database.DB.Save(&apiKey) - - return true +func validateAPIKey(key string) (*models.APIKey, bool) { + var apiKey models.APIKey + result := database.DB.Where("key = ? AND is_active = ?", key, true).First(&apiKey) + if result.Error != nil { + return nil, false + } + + // Update last used timestamp + now := time.Now() + apiKey.LastUsed = &now + database.DB.Save(&apiKey) + + return &apiKey, true } // APIKeyOnlyMiddleware only allows API key authentication func APIKeyOnlyMiddleware() gin.HandlerFunc { return func(c *gin.Context) { - apiKey := c.GetHeader("X-API-Key") - if apiKey == "" { - c.JSON(http.StatusUnauthorized, gin.H{"error": "API key required"}) - c.Abort() - return - } - - if !validateAPIKey(apiKey) { - c.JSON(http.StatusUnauthorized, gin.H{"error": "Invalid API key"}) - c.Abort() - return - } - - c.Set("auth_type", "api_key") - c.Set("api_key", apiKey) - c.Next() - } + apiKey := c.GetHeader("X-API-Key") + if apiKey == "" { + c.JSON(http.StatusUnauthorized, gin.H{"error": "API key required"}) + c.Abort() + return + } + + key, ok := validateAPIKey(apiKey) + if !ok { + c.JSON(http.StatusUnauthorized, gin.H{"error": "Invalid API key"}) + c.Abort() + return + } + + c.Set("auth_type", "api_key") + c.Set("api_key", apiKey) + if key != nil && key.UserID != 0 { + c.Set("user_id", key.UserID) + } + c.Next() +} } // JWTOnlyMiddleware only allows JWT authentication @@ -126,3 +133,53 @@ func JWTOnlyMiddleware(authService *auth.AuthService) gin.HandlerFunc { c.Next() } } + +// AdminOnlyMiddleware ensures the authenticated JWT user has admin privileges +func AdminOnlyMiddleware() gin.HandlerFunc { + return func(c *gin.Context) { + // Require a user_id set by JWTOnlyMiddleware + v, ok := c.Get("user_id") + if !ok { + c.JSON(http.StatusUnauthorized, gin.H{"error": "User not authenticated"}) + c.Abort() + return + } + + var uid uint + switch id := v.(type) { + case uint: + uid = id + case int: + if id < 0 { + c.JSON(http.StatusForbidden, gin.H{"error": "Forbidden"}) + c.Abort() + return + } + uid = uint(id) + case int64: + if id < 0 { + c.JSON(http.StatusForbidden, gin.H{"error": "Forbidden"}) + c.Abort() + return + } + uid = uint(id) + default: + c.JSON(http.StatusForbidden, gin.H{"error": "Forbidden"}) + c.Abort() + return + } + + var user models.User + if err := database.DB.Select("id, is_admin").First(&user, uid).Error; err != nil { + c.JSON(http.StatusForbidden, gin.H{"error": "Forbidden"}) + c.Abort() + return + } + if !user.IsAdmin { + c.JSON(http.StatusForbidden, gin.H{"error": "Admin access required"}) + c.Abort() + return + } + c.Next() + } +} diff --git a/run_tests.sh b/run_tests.sh index 9ffa5d1d4..b96dc7894 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -9,37 +9,14 @@ RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color -# Check and build frontend if needed -echo -e "\n${YELLOW}🔍 Checking frontend build...${NC}" -if [ ! -d "web/frontend/dist" ]; then - echo -e "${YELLOW}Frontend not built. Building now...${NC}" - cd web/frontend - npm install - npm run build - cd ../.. - echo -e "${GREEN}✅ Frontend build complete${NC}" -else - echo -e "${GREEN}✅ Frontend already built${NC}" -fi - # Function to run tests and capture results run_test() { local test_name=$1 local test_files=$2 - + echo -e "\n${YELLOW}🔄 Running $test_name...${NC}" - - # Clean up any test databases before running - find . -maxdepth 1 -name "*_test.db" -delete 2>/dev/null || true - - # Run the test and capture the exit code - go test $test_files -v - local test_result=$? - - # Clean up test databases after running - find . -maxdepth 1 -name "*_test.db" -delete 2>/dev/null || true - - if [ $test_result -eq 0 ]; then + + if go test $test_files -v; then echo -e "${GREEN}✅ $test_name PASSED${NC}" return 0 else @@ -104,8 +81,8 @@ else fi ((total++)) -# Adapter Registration Tests (tests our model storage fix) -if run_test "Adapter Registration Tests" "./tests/test_helpers.go ./tests/adapter_registration_test.go"; then +# Transcription Tests (may have issues) +if run_test "Transcription Service Tests" "./tests/test_helpers.go ./tests/transcription_service_test.go"; then ((passed++)) else ((failed++)) diff --git a/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png b/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png new file mode 100644 index 0000000000000000000000000000000000000000..4c925fec011700f25e001f88843c1a90e90e90f9 GIT binary patch literal 256774 zcmeFZby$>J+dd2`Dj?#P(xEJ3XpruZ?(Pzap*x0B5EK*;>6RM0y9ET4l}^b7md0pk8h#rwrV99@gl#qlKb}S3w};rvUA=ns z<}EJi4|G_ZKRWM-%6y%}%B6nv=o8&r>KPwH%;M{Ucdowkxk9sgyZ9#c+8j-aPjOIv zUfx0Zs;8^|bi8s!Ps7E5+CiQ>|6V~h`iFd6c}dBaTxd@y(|0}ME$_b)YP>Z;^7$%E zP|RPAlY_pcwWEXd!B6$G16PjgpUU9!E*qK`@fQU`@88PIKXSsjA2xxn$BlM}ytiF* z1^U*%_bp=ggX}{sds%VsL2e6phkDmhaqDo~?cRE{nQz+lX3s}rgU?g4FfC$<@yO6$ zIXj{Z1($rAq3ch%+JG_o2L zqiL)ic<=wTDOi4j7Vnith3D-q*Nqn6kM>gOq$0!e=F2-cFB7j>UuWFSsTksZiT>=t ztz|*1uUCyfy&@sTi@t*WS?G2DtQ=~j1N^+aZufJ7uj@NFs(oqL}lX~;kCXMwqjv)6Cs#$_X*BJ}!`6cd%}-A6aIF)3cdg^6Zw8^#vO;8SGd(FfFj;heL6 zj#1<{BJUyNA@V3RT*BmujS?Mme@vFxk!k306)-2{&CtKv>SocaqV zXDV`r8%S{*3#5nI2knIK=)I*(qx$g(|6!?erc|b`*|X&cCLs;g5i!>i+hE(OZH!r- zrrk%^eq;NMC)75S^pWZ#BGFb+LQzsQ+x}8H~3Kz0}-d; zJK_Uo}TJcOT>)Fd3v6 z)E#gbh#MrgP+-kvQ({|X-L!blHX8dgwvBbmyitoT?_M5F9?w`|d4O~7KJ$hl>HFXq zxsP%Q-IWZQ!(trD6`C$e@;W`bjPeB{TM_kvUWMmEXXs}=*Xew(`NDlMMY5A~3=<8b zX31sfDWf!7YHgk|+p~_r24H(*8snUOhm}9C5(X_aj&-aWd$KUI&Bl~QcgAE#`^Tuo z1(&Q?GCDJ#_}_2s9J0(9r6|E&q+DECT6Czc8q7lF)Bic9sJAqrgv)5Redu$f>9|SF3sdWg$^3CLB$?TC3;e*>`+fer9FP?dxtpRJD5cu>6#U4dWKg))K!ze--~# zVl!f44puAIC5tufIiA^!*{Ip!HO6)Fx#{Hwd;@X?$Y~X&L1Fg$_IGT<=)#wUh{6clp6%-G7J3Hl z>bq$8UN-G8X1}%`cyGeF(qjsZ3qmAdZM*3}BZG&Iv zTijcd0`+BYN|?!hq4KBDlS!d$p+Zu0P?=KUW|(E*r)?{DDdT1^Y)`o2z!b(1rQMF) zJE5eV-@hJG8nN`#l+f&YMtTqVS@y1{tvBXrX&+c6e6#E1s=}!Ys>$O}XLfPf{NWt8 zQO5I$RNHxPQ)Mcq!2urCpWj~-P&4mx5pViIJ@&v^{&Ql!N7bqBk@7UBXTQz^mCv;I zrY(vp7Pa>(il%RGJRNg!oL*{r+oUaeU35W|wq;^Yd-}eY`p?PL^UO053QCGLTm#%E zr1yBtJhvUQ%wTdW0}n$)HjLjFHx*aB5y73N<6tP@66XDA_ga5euh&gwVfj@mZ3J^f zs%p7v-eB?INp@7QCO80$ZR=IvDJ*T)mk66zeP&)@SV61Z`DjR z@Kt*`x^~*EH@bf1yb${0JNgC_S6`srqm;L3jd{^-7B7@)LEboN=q%+(ns)lNw_Bf= z{r0H8DW38~R#XGxtePd^B7UdVL(C9i7s=%g>$cn6d>6!s&_~qjBr+b#?p3U+Lkhf3 z6LwE#glC%eET+~51p=of>bQ_YhgMrD!*l&E0b7w#SkuyV0%xzz3}=i!x5X^v5==<7 zP<6@cCQb4S=*jBn5){6CiE)kYfdM)?_Dv1J&sVMx-ud4jT{O^rAT-`X7GOLp7gv~x z8XV*>N1JI!J5(vIuGXokKF+$0HgFAX^1k<#sb#7Nf7Q5s0RIAwH6%@BWzlHB`?6T;2k>nBbz$@zK1NcSl^ZV=7kN#*kz<+na zuj{8P|JeE_;?vcCyuV%uzC#mI7Lk+$ugXUD#>UnTW;Tv0A2m^+6w_8h(*X^QkOK9K zE~)fn8ytTGrlR4fAuGdeWMjo(_`>G7F@vj>E$TREysq5ft(CE(;R9DIOKS&iSH4HT zw%`WuQ6Dotdhlx#M+?438nOxxL~QJhAFwkpF)%&i$9nMK0k8cF6Ki;Izog^`7Y9&ADH;AZV;=t^(x@c8$G{Np&!j2(>Z zVYZGi8|w$C;~GAlXmny^21{`W8c*pZhJb?^T+7QYYluTQ~9^JDQc{&Uv&vDmDxEP#n5fjyH~ z0k6Q!P(N2Sz#r=0U%`9y({q-amaJ%Kf@qS@gj8J7*C%h(;tx(<{3Ndn^hZlc@gY#S z)-ole`1vLwzBGOjM$44@yVfb}-&lo=0$Q(Mc|_=gAzEbcP9i|}Hz5VGYcTJICAaSL zp6-NEdzXFtDzEM}zZ#x}&Q5m|(_!~|cey+aY{Fb7tSdJkyhOXqA1L;~qv(&t)PoN% zxBX2{bRVeB&C4F%__qhqN`z`OqG;&X?g;+?J5twuIfDCVWAvY&8K~aXD7TC`^2W-^?JVx|g<_=*CPOhL?{33w( zn98n^rBegih>tUxst`y9y{!8$5Pjd~$I4hP%9e__q3pp3g*3hKxl};C`9Q(x3ZzfG z`GoqD5<$8Y7=-lYB>$humkh`^Rq9^)?<+E;(=0f?L<5(Dx-+HAC2;3wgpZY36sX9s2Ve5OKhPI? z9N8=PKszGoI}$_ta*D4jqpT1I!ph{QOnup*ACwnN4sUr!6bDz3tO;j}R%-C_>}TS? zv;nQs7QXm)ci2H{%w410AkcpkHd2_JHH?4RoG6GSP_Ti%Bcx}+*$6X%YBTvwDfRKn z4)|Se7{b**k<=l=DWZjKpbK?(GD$DzfD+n&?50$p$EO?uz4Yy>iqAypdod&9KdM2c znbHlL{naw$5=!?&;g@q3^lRCI2BXEsn3jW-%#YUIqt(u;p;=CSoAo;alh>=WI~wrGZo#H|hGV|DND4FzbJZ=r0E5 zU!L&aA^PtS{mUBuc=z8}^tU1P|4&2o>{@Fusm0YBw@Ymr&e)%3h`u9qKA3bFN54Vx zA*L1YQZR%%1g$ZAr;<=-jbqxw=&^WkDF6badmcl%nw!%*3mthN2bV9#T4=2eQ_fM~66M0A3r#*JDcBB8+KYtnR3g#Ud z$)4iOSTgTZyPEUkwT&Q-sX_u;HT+uZCo|= z7!lvWW;Hg@8bWTPZBysey^sxG6est5k-+UFwT`(s`-Z&y{On|DB2Q^e!G?7y-a&4T zouU5ldCgoP?cJrPS1$#^q=*1xRBb54R=eBHGgRm9631bqC)7bytpHHjdW5=Oku1k# z>37xk`U!9m5l`tHw(1VXdd0~T90a8D=KJLZ%DNMH#zO?oH4J%zh&k8?r|UgW{*Tkh zQiMpCj;g-%<^BDqccY-jV#E2mRy#kwrK^OlR;T+*l|F?H{A|Kz9C?X;bv>t`zMVuL zn3Zf}^i-X@DdOkl;AZ<{L8f%xe9f}kxWHL{k_`<13MSY6XH&YzhKJcZ0HE% zCL(-#1gB&d7|@T2zTd=242N}H60*cYKn=GL<-FU)0eocAWYvu#%Pjf<@{SUz6eRg0 z>uTn0!u6|v8=QcVH5jAVIsTK~rJf45A&tjNYW}zGKliy%%s!k|3^Zu!a?a-(n~&3ccjt^}Up zSPmO&6f}3+a!{{u{rTL*Dl6kY@`s4fpVA8d)AT+mfNS%UQnj!87DhGBK5iLSxvyoB zXRPmuj2O&TrM0^+F#q`~ZYfowYg0q+b|!pC&wT@{f1a}TWV43da)ikp*xY(a4}VEP z!}%Df7#0atzZ(1Euov>}k2K@pmM$f_x2lG+ZTtw6FNZ24Dq-AE{BQQ>9b9jp?qB)p5;%z>&vMjT>cR`?v*rK zrF92gksjXN_rQ6&abB^y?_2gWNz_wE_Z1sUk6YJlOdxwJY^Jg5P7jUUo?T+JL6s0w z@CpQqf#ZX%q{@g%m+46mLy|ZJ;+Z`TZHYN;4LG4|M_}&FNO_z)V+lQ(LH${CyqaS* z_a&fLGoYZxapgIP=5A^?A5|AN-NmX=DK~3is9sL_xHe*%d$L|KRASomWzuam zD?=tZu<$)8&k%-P6YRX|3e{@SvxPB>g0h_a>UOW=6)FLq{USiBIQPqPQ26UUS3h=| z0~OXfFhiH*qTwV50oZ&WtG2+Ex9g#Pv&~_J}`f} z&`@M}yayG(>9tDVb}zF1y<2>?(Ls#{<4fSo(YVrItfZP3J%FzvW<=_XLCJTr5T$>Y zsDtfVh`&$O;oQ3oM(-o(x#J^~OpeevoBC0}gsB_$#*)eW6rs?yYawu6Nsm(FJlDZv zl?n5=ph@H1A2D+N5h}j8VMm#3QPRa;f{8~tGNf%|6@iJ!9F77N^=PfzZj<>t_*A)- zHZdREamqkNF`}6164y?{2;x;|hJr|HDXgDzNsYC$9ZaPagaJV!Y8VLybQD;bu00ZK z)J!4{WLDEb)qY>->iuVYLnQF!WW-B_qJ>vC$O@Zr1$dXtS9O;@h}_OnImsEYd(Y*dY{rAs|ZieFlxI8SmVt>w1h< z^m!%S+}3ZS&-TZAVp(Ay9Y&v!T&QHjk&hFFfdC>z$ZK1`Z)9`9lweGw+CCaq%v?7h5$ zp(fgY=bP%lxahB(a?|h0P6UWk+8_r#eYbKnZqtz9rn`=Z z&$K5opyua*vV2Upv<3iFYyPE}8RDml8UP@^lxcO9JyI=`8dN(Ja8l#$Bd8 zcZV8g{fWnJ^Q;?4M=_LnUz|+uZ&XY#>MWsBZG!U{bcv<&5?+32brW@qyQeD|Nm@(Y z2^($X-gIyataoOa5m#|}zhls|rpYj;8?^=RCtaLU*+nquR*wLLWHwpj(nGfk+;bF` zkzfK@q{!M^>2DKze=js9FY(!8SKN|b&W&K5=An3pZZ7A&UUAc*!LT6qv9Es5rSeiy zMCFwIb!FD~q1{XQHJj#nT4lu{{KsFVAK`dMbMF`}&yd4CJg-CG99;A7 zpXzA98htR>ttU8ZHp<6kdUhi!4FciyRh!jochyzR7P@)1Iw7&9y(yvyWa(s@eG?|t zh_1_I1Z&*Nf7B}f38)$#g7l*5SPa6q7crB8prp3NSZUUpf^EphBAJN1kJ&eyN#cLl;fz<8nrqT ziVfZeX+>*ms;aZ~}a2Z@XnRryvn?>vg|P)dC^U*32<9rjI#aFqCg|&Y-!_Nv_fBRDK`ul`qX)!biTndp!z&NU<^#q}fdfDG17r zYKECmQb0MY}g;O*!U>T@NK+A>|ssXoiBM6Q|1;0bEE zyCp4z+E4N?7UOKH4PO#6>XFpEhxc>-{DMc@Nz0~^f+d}oN&-lKMl$zx=5g;Q@?ZoFj?bde?#}4DBtcEKaIH|W5^|fo{cyN*aS%yNZaH@W&B#| zGFFSBPV36q>pYv4^Urhom;@ousq)Rt9{ADi5a2xC1EBB=1A>eLQ~^J+cBOD4GMm7> zi33*k00kZhf;r*~!Rz>IOuQyZ%^pF??e38zYU9Y1HfU70``ch z<*-VF_N4PYDq?O&GsoUe3(^93g<=oar5Iuw6vkvRr^ruDRv_~_G<4r?ys-he+6v>2 z$Ox5rJb7NlWTFsqufs-wrxG=`rrfuzmXf@^<~#&ML^@Fr{M>kG9zcW5+F`6?Ha>D9GjHmTEK6Rm`m;61=Bryg$66jvi@jM4Zz$l3o)-Q zLAbvJ)xsQwTHibfWv1Z#nL+oMn{e_{ll21W0WPn`_O+~>^^Z{OboFYTAxZ>KGI9rip4#KVhn>&fbt z?*1=e9zf=sVB(b&VWUtT`XqFf<63wVjpy;6-ARFA@TEE&&w#f)6IGjAqmYh__5l)S zlg?;n;5r4Pphm?WdyIU+?6&ixvlucY+FTP}GLWs>F>oTy8m^%13q=*R06KF}Wx=Ht z3!st|5SjaI<|^IX^H(VBoGiXl;!K9Cd|a&p$Z5j|n?XV=@6!s1hb%bQjM zGMQSmMtnv^9C8A71$i0>!We`Yw}b6>jP-@=R%4Y5WUe#lJaca!@8m15UO|C-fY*&x zMVQjJ4cb9TZFBYdt*<-S`Z``m3(nstqF#sHO&TuHpT@Tiq?H6c#doD=Z^+=()@3OO ztLha5I{<*=UMCyxv_kwY(cm)A2SvW>%mj_4?Vzf9l{ePiClSEw`v9C4;5hl&MqUBJ zBL#izn4=GLG`wX$dIzM#(esn7BwfkvRRHiRYPRZmqVHZf?yrv`5~V*%DKWJ$7OXA2 z#*-9mP27~6m&>eX|BFRtY>=$;=_IUG+W?9vtQ`f>kg*MK^CFx4(a}WhZ&3i z2?0*J{X&F#^(f@JSsST~jMjkcG>AnG-8~%2e2%;z@DcdiB)5e(xyyWWNpzlaGj#_A z*lq$A$7w&n`iYe~^#*}zr@&`rMFgQUdw@q62cZA%S_hlRFmj~G$br6z_wN~!SJQ97 z(6J;g1FoUPdDJ-S3w^xPkft+8i&WrR?{QeiXY~qXt%LDlxBnr*ae}ID%B{vJ=~u7N zVHJm`-jRXwMzc69%8c7K@Id;W4*m~pXG}jxQQ=tEKI~}T1M^iPX6QN$L;{r zKD_|Jr0z?yPm>c;Cz)`A2jdbTu7V!KtM^OZfVCN_c3S&FZ&n%BBXBWcKAfLWDZ^=m z!ZOLaAKM#mkXwfE?!1kw1Erq@KvQ`dMUR~AaL7}qu zM@v>AeESkQVoQ|(B_U>%l%VXsnK<^YSavIjT>kc{z{ODr$dTW;omOAOS(V4IS&kGovGigd`9QHosHsD9 z!nNAKtgJObB*$GrnUiZXU9VZfb}9qHWii5!aez1op8idhb>O4Fjug$RUz*69+nOa6 z(_ZeT@odblMMGK^qv25HToC#j2QDu5{E4j#!SPNm#QX_t^m0ycC!J@WHP9 zD}-XISj)gpLs%rE{-!0{y1Y^qNL&v7nIDIYxc@$L3U=KEM9$)FR%B__QXA9Bn^Oz;Z+HD`F zttq};?&BZXIr+u!7^AOVQF>m@W;H6EuI7pI*;DVOu-HuTD)+D$ zLd$|xq0uR`@nhvyah&TPU3$OEV?}?J;u|)rBuOAg8hk8x280Qv>(y)d0Xb#ngY76% z4^-c|g`ME&^Fs*$Q2M!f`Q(pRI-PltT_QAl5d+S!-6Jsyup#jKie_o?3tu0Hlme3} zXrjE119<^aqfmzdX4MKn?s5Pu#?5o`OaRy{Lj`cwPU-v}We zqv$EVh2;sV3hd!s8Ko`GUW35Zx}UAY8@VOjG>&)}j2REp8indPK-gn)JR2{7u}f;DWv&ogS0-aO0r*O1SNA;R0BA%i zq#3H7 z1WiP2`Ft?X7{IVHBGQVNX-k74^&5T(&*TI(voiKuR#@K`e_V2FVB;O`_*mqb!;t{f z(`*%25iXCGWDrBl>X1VnWzlP-2<-}MhO`e3jTdoM(_SZ4v%XEn>bV+*5qU$T>I>yQKiXXyPjH!nfgs(* zRT|PHghdIhO)UmckZ8~-PHPy@H&U=I`;Hv0@4 zUCKrPX=6;0V1!gie(0L$ws_zD;_P5|(+}Rd+?W22cy;0B)!T*i6%#C5+>+R}pd@uh z(di<%d@n$Pm)7c(wdqF$AwfmXIuP6hZ6QR$cK|awLZGf=2m+TaU)Hm=??qO%KU?!F z?(l^~wh#OShBXc%tn^Sdn;b{>#4!%AZZNMxY!W$x)#F5FNJ(lKm<#9L_1sN zKMahzIeU5f4@n9lksALxY_vGts`wiv3YVxH$nhDQ)u2M~Nyf0i*C18+KdM_p!nTit;o;o^ryJCCvp();22bm zrL+aLEOuUw{=zg{wY$NdV4B!XyGc;kriRjqel^KQ@wH-#`DN&)w}5R52;7FeGJo*N zwhtg1Yf^4UYHG9{RG9%XWpw3Ivp-IWQ3xNq9skqIxG(h^03Pi#m8h;n+&Kg=dIPwa z(*-M_Q{MF2KAUd~sQ`Q*)llX`?|r~l^ec!+E>tZgmhc@+JcY6MUm|P+X`4 zz2b*W{oelcXIq?qPXKM5`$0L+R&77XW7>xMfVx}d#$18+XUJEG zlev9a>`6*0jg9jH_0t$2#9|!on>_kY!skCwfx>No0TvX}<*o(da~{t4Zs=betA|=F z=+|nNn1C{h)dI8`&iyp6T;{67LCKhQOUmh{ikQLXL{&Lp46F1MXiB^$xL1uuo3Cwv zGTp8u#{UxKvfwBCneKco@UBLwS*Wi4HwyL_U+-ua8VD(_na={F82|k0>IMo-fplK7jMPNG%pJ3$ z?l?|wdBpI>+F(x9M#IJV5a{oP@B5fv%8+FN zV263-27!@4DZK!)DB*Hg903#sO0l-T+asV2|NHt=f7Cn@d$*?M-N~P@!U??LHD0h=8OSV$~Yp$i@I#fxfT!@b0QA1lTG97xDki(RXEor`CWD7TVz#bBs##1{Bc=H6Y(Axp zXiy^d23+6u@n|HS}7v@)6Ipc#ZBNSDr1Gto*HpP!%9Tf#k0k zPL2C0ZX}nCNJi0U9@K7ut7B)NJ5j7G$CchRbyp@!u<07Gi0fCddZ98IDTZ|C=LZey zzI9TjM1fr8wE2}y2$`5Uc8>|WHcfz2Y1hA?gzhLho80@fw`&b3hO(GLl}fJl0R&>t zH%M2ex@(r`bqrI+<*L^Kb^B13GSvkOvQ0Q2d-G{lNmQAzr%5n`t=$UMK>Ylm^tz6f_i0T555q!Isf3x5Pu;`pyrV?^hDpxH~AslmmdB~dX$^Q+m({QQ~U0wzM` zf#H=aH&w2ppN*Y>mY|(GXm{fE^W`GKp9jlc*V0=+X;eJ-N2wxbQ8Y7=zDF;F!`hM$ zzQ=?!D43;r1qKp-U7~s9M79en)-4&pq4FR7z#BJ-vzlnIClgH`#yE(vPxNzK<3|oC zZ*(v=I7V!Orj2!FMJ4?Yo{VeCa|6+Tfrn{DPq ziQS7ZKyGG?0(Fnlz_FL14^+=b{Lh1_#^{xEo5b`@anw>x6_RUpueFfaC$S1m27zAa z0xp{qorY%%jNW#WcBYh1c-`iMIMzYk=Hw8^Ze`wZy7TTN1GD9tGU%LIf`v5_BT{x@ z1d)o02XpD+rTfr4_-Rp^Zc;%-e8`|vQWRK-&@e?lQTB1@ggeh@&?)yUN4-E#GJ`S? zUWx}J)t0;wUTDvJq9)_|*wDd^sz9TtDUv}~Yv+h|v9eUTg+yDG^`3ggNzwZ~E>*A$ zhmYQ(_ej0>jvFled4XT0)vAYCLrPM`AVu^J0M0cJ1tDza;Rkifq@Mki<$blLMDzDu z>b}U*?sMk`p2!rP;JfI|mX@wzuLZj&4($h?$tjO+_=B}sgQcS;aV?~3Q?Lje#B!Z} zj#}QwhNTQ7SHgjy=AW7&ShZ4z>SrXSFh!>@&m!MU-G6FQndiJUHF+JEEZzk-AGC;3 zfmhoa5dVcydhl;-G%(?OgTQJuZ@`_eH(Z<*c%E!jAnaBK(WZgsYaFl%vg5>9I1nt1fDY%3*SD;no4XN8`_No%9OYt9P#&&> zI=dWI^`m+L#8#!DYb@TNf$P{^uO5q{C_&%4wlFYvX*I|Mlrrp~F%idR5s7^R)lYVm z0n}?LN~r?YtVEZ|B{L#q<4jP@y~)oodH&HVW6CeQiU$`i6L#Vz!Cv$=jn|1^=&gMN zB1bbIQz`*uSJy@fq;23%?(Sf^G|}2*O+}gYB)3Jvwy0~clO^EQbvb#~svv6JTuUU% zSA8Kgz))FECbztzG%0hXhX+K7bYE=MpX8qbxfly+gAL~}NJj=Ugb!W{t3=Z^s;=KlRDT?^DPB$1lp~v@dOocaeDT z{q>c6`HSjkaX;Zb{sb-u1kaml_F)|dS>UzET)>}~gThdKB*W}1!n1)0ZaJ0&*ybK9 z_HRN5J%H_e*uP9PCf;LocrLZ;6~E}IvLv)c>sh}tvCN-+64>1Vs>v~MffVcs1}?#)bblO{ch8$Pnfx76kDqnK<_--L8MqTZAD z4cAYNVv}TH^~0ybxgLoBUcydaV<`cq##NCN9Bzke-WdQAj*dy#rrje<8VxTXO%kz zt=+BiY<=Zvz`Y~%>8S|VKA|KIG5(%sG-}>2h8WpZ=Rlw8(<#v1IN^{Si#RALHZOy& zrH!_Am9d{FKIOL1ZMOIEZi_J}(ONZ{grA>x!Y47IvlQi^4|Wtmo;ygI7rRRW7o%)a z$FSZu089q=wfIFEK&X}hQQ#1Lik>}?SSRM{m*=2Mx20aMNlW?s8Hkjv%`@N9&T^?4tNBMvESRVm#61!(6=KyfU5Wq3llpc3OGvep+iO3~>(h?HONbXiEW(o_TVVKwxuqEod z&iZM#5iumG@nt^^+SM>i4J$u5XtnxiNtblFLd*ymc?DA*Zeu5*FUeaYP?{0#_IKBFs zX1pVd0$-D+2*`#5f$mi}uKT#{==ZAPVONc$M1j5UBKrVCh*O#B(XzTVVh~lHga~WX z09{-@sz(!JY|n?;ApS#(VFj*)riR`M;t`Jp(u^sc`xs$om2TH_yC6=OxB0+wV#z`y zDZd#7XD6qN zzfRG&T#K48)DR5v!-~)3h$?*T9j?wK+z`9hP^>m1)PSaDB(E`Wh?or+&=xFBE0WJv z<|~T_=q1MU=eQ!1nD?FG56tzM97LpVfSN$Gp_ZKGg~X!Ap%VdNAX(DlH}iM&<=gKF zPF=x@hMFnaQlEX*S5FecDpT~F@L&9FOG%X98;klm-xlZd&~RB|N&K8!+-n)5;k5o_ za}9F$)Z*e^;(Vq5(}sAmcR<6L54g(l)1%#Hnu*=#zEGGh2i7*V84@^}=|t-8lN*vh%_Y-V7N#}n&Fdn|Ch?VpDfCgEfHX~6a%6Bhwm{Ql* zP_ajiruU!_evKPs5SqP2JZ|-U2yR8er!4p*taqExF~-TOXG?iaK`c9R0OjB#Xcpk+ zy(xYt>$eURdzuZToc3hr$E4O0N%c7VT>ZC3D|?0u`RmA=1Yg#BXC9O+n`YJ*tnjFT z>SQvD4q5#cn>lmN-h(~;r=G)&gn0p2^zmxyQo#pcd)0nR$|s?FqseZ^{Har?DovoJ zm2tGVmYDXTdK2BS*D1%{WsfJFUmtl!J*FKyBs=fGJ#i!P&)GN7?S6YcSyC*nzBVkj z_amQ+M$uyAt!BVrP8W?K5P#jDaO{`0jt)aLg{{fi_TGEJ5>@tS!2^_XU;4l|6pTJH zf@Yxq(a+{#v-@Y&dVG*&+!1p+<$?#t3#C3d=OJC@_=-k`8chQ2CoAUfdl{!xqq;*N zzJpgkzdk%qcbBn9QW;fM*Ns5t*x=Nph}n_*D-JK2d*B{OuC-t&@8!57 zb7$O16}QEM7C^xjf&CSy9@GPADf;6{z#d}G6t6}?9`%^e*n1^dc=wTo@;bNc|7P7N33$SydLfVht2_n^TDI;r`XP8q~=FrbIkEYWmo^_ zr8WHoJOZvOiv^RcKxUBQ_I~K4!Eo-kglv6lA-y!_Kl&A}nXBwk9E-al%Tx3vj?v!g z%i-9siq4>5d0d*|t0vE(FQxl1&;ZmFLTAf|C8h9%P@AQQHEa(j*#Q}uE54V4Vsq&E zcEdNyxXR&KZ#}mK0+*@NQlQiLj1xMqPjsAl=RNtVu=nBcwuGJNlFVdd4)uo=gFwbv zev4TD&QY+s<#fF>wfoJj(*h*HXN6CcbhBK+7M$2o^z6|oVh(WBNSBA zu5{S<*P>HJgI=x!dUOU*-|ByhaSwA zZlyvZWf~a>{H_i9%9VNm!83zGvO|W!d;nGAGCVktA!<+Sp+tg1g0^2OYg%8T`=+L$ z9TH*RCrM?zPi6fzbNeg>ORB0B8N&>ud!1gHOZWT`DWXBus~dE5s-!ZK+;SVrPDpy> znAC2f?y}Q-kKI3Ds6tph`SGWS0`ZXQ2J>hNef+*LK+K#+Jn6-0}yalSKe zKe(L|?#ueLpIjSjf7PrrNBk=3hEe+6>F)*4J)_QhleJD6vefbXG*mnUg__NNU?C2j zOgp1z;ZTJTsGX?ydo>%ndNWR9Y{X1Z+__&v~|FxUMcG2-z>P|#EM4nD?jJWOBXeUdnDFR z36n|JS>v-R&O8&XyPg%=b0CN}SwAt@@9+Oy@vBr2YxR&yUpCdo?mhO_mNPAG-qvlt zQXq}3Ci87N0+`Vja&94yD=Er%a7acs@Uj-vIHvSkphCB3i6#Qg^zI3D$Gq%N0n0nP zIm?OJ4)+qG_D|}fjigf>IXwziHJVR+1e`CTx4cO7uBK0kmvt5XR1slaanex?ftpVQ zvAed?$Fa&Dw8`@yeW~LJi&UJiZ+cAwbPVo8OYw+wryvV`M}hs>2C!D7s>jLdasIPr z4AuKGp*8+t9qQR(1^ZuDpO_$gu6&QME3qS|b+#m?418wA|l)Ell za`XJk-8~2;0r`nnOGomth}oll69>->$?-076W6n-oVM^bGWSlDD7iusBY>b)l~Kx0 z6rCL-_v}Df*8wcX?55LNU2;S`O8oORZGu4r3Ovsseq_pb@c|d5r4sZE)WQxHs3nR> zy_8mL{ejQft>OZm?|taZ4{2DV=hh_Q@At2ye0T#l`iY7?IP|Fx@6AcE{z%a;Z#!G% zu%5Kls`tclCke2yy|vcofTT>-UqzV-Bt^VgGcz-JkNo0L-0#ENxFhciOz+;DU8iZ! z1HTe%c)l0~+sui7XQlsbUA%g9#bIA~S?|6Ih+-CJ!WFV{>~M(ofbVM`EdH+AQx4|9bNGJyF{?$Z#=@oFj40uPK^(i)K>jCH29VQM;%JA33q4*9SH6Z|9GBQhS{WpUUl&&Jra3deA zUsm74dY8HEk;!ob2e*PHke_3L59m27jzB0JLXr?{N*{Vb7a+J-1+(?}j-R>XV^{FF z?Y!Vf3r$js03s#^q?@vNmX!X6Mb@yI)`8`QwCg1P-2Hmfd4B!oW1t_`OBN@!dP;{? zMl+F}k|>DJge?s@h}q`Ps+K+r{*BBCx>dH#>A;6up`HyinWbGi)3840-8KyZ5YX+M za#2F+BJ``*54+m<6M;50hU{*tNPomJ7ioK)kFVL5&!Bw2(J#P;bzl8p5w- z_?4u=nzi)PW?dMZrI$NmGGjYr51y~TwDhl%@-7a-ta|YzEQU6`EdvBY+MT=YdK{~Rf(@MNT%bD3({J!c804oC2{~A%A&slW)wYT?Qi)+2Ri6{laHNn4pS`D8iuC8si-1-KNrh#@Tg}xleJcf2AxCPSW>*9a5g*d9ojYMRRT=`}1ND`KgEP z>;&lWWa^5R$?^;-J+|d77O@fG_CX={pSI#Krfp=tc?D`ICQ}=xF##OIAJVGVm3JnI zPWg}8R%dcNp&-4iCFXfT7x{A*{!t=s8db~xpqX`%q(1=Cz-TzyE=ACZ43|Khlv}}( zQRhK40#?6Ev?)DiUB9`lr<+fvjL#4w;9WnSwmFWH*G+q@r^4rUMeEX_!1%I~`s>O5 zLYeq!5lCR5yHz;EcwogApEBdsdb7;?7af~s60;})2@ro&i#A)2V`CzypM4StN2zq{ zPj{pns^UYce4utgG=|2#--UIU(g!^I6iD8X*h`p{VA+DTOgalOripg1$msEaDVPyC z?dp&2{30!?32VGYb_3zo-wSL}tEg(s2bS~wrIC&)cllavlfZIKPY%`)ZKgKwriX9K zr{ER`*p3aZ%s7m_4mzrh;YtO>Y)Yu5I!4({Af-af(^NysxLrTT zN29G?%v({*Z21N=^C1G8&W2zq z>(^VRQKjPV>9xbB%uDXKP#*u!skOhMoU-*>!=x}d0a!%3(@{dmxZuE@ z^GNTn;ygakJuLRe(njAshiE*+Kz>L`6ayeOE_doilUT0@Adrbt_0_V~!_!i%GLyG~ z%({zCsoOvba)NKAph|RsrS*d*RV=98(S;lb@p^J@Df=-j(I0aaJY}qJ{mY8^&F_UW z^*2Ham!kfek@A~p%w7AOW~D28R{cKXivCz?<2wiSM@et0c#USSzA;h%b}@?&6sE&* zjA1jf)|MWnXRd8oBub*%4Fgqo(C-fW9CD#nW)QgUC`*0o(`?+SyF`C;%E5bh3#PAS zvRkEPa!=~kLF`=_D3Tv?45riq!Su;res{Lowmz`{XnPTYh|RVZLO=RJ2Mwjk)v{+n zE7f8iJ=_bo5U+;^Kugcu`=~>IhwS5266CgcdNqb}cAU*y%@_;XE|8$pqfc@pdk&5u zLx8$D83l{HlLzm&0W}xwKJ5WU?~hxxuT;t)cTJ=5t#?XTN<5kEoW4N z5-g9X83bxEi(+-IqaR@?V%524zPgT_%RUV>{5-ACf$Vs3)sE5rRQzE&YHc661s{nlNDTlKXXR1==ant%zU8vyN5E4#l;MT5Ml(_ zfaNxwFOVa6UNmZ_fvIN(&-tj1V4CTIwjD9(uF4RL0Dmr*JN|lES-kjOJ z4p~ZYNwgs8D>Y+U04o8?0hvruQh9|OK&q}IoRKY6SM;-S&@gf zU|1^eD4HbeCuK&xwWZDkto87ahEb4hC|1wlo$OZLh-JpNppGzvjERYkdw@=_Q2{|0 zSZ;W*QQX1MudLn6MZy=jwNjN*GMQ+ZqI-Y1qp-L^a{QVrZl86ycA5WQKxC7GgG=szsC|| zDJal}bqN~7!{oTXA^S3|2w6@;rz_fd7f<5zWfF3I|6K5u6ZxwgEAVIx-wv4`BRHc` z!ns8Qo~Tv?9x!6!hYMznwfqEwNM~kf&>P=c!y>PY1uSX-k3^_G8LUoH%m07uy=Pcc z+qyQa2qH}sK?GD3X+e+<0)`?g5_*F4sv<;sm(Wo_1*xG|fl#E12vPzlOOYA~B~k(? zO~*gFUf=Kik4tCf9COU4KlgJF@bWu(zn%xAyrGcV5p=71?{ICY zensiW+)P}7gZcpIbT|s6yWD(abfVUCX;`{A>Q`t83#a@o)x|tL))RVSw{AmY3&r=q z)VNEz?1+P8%`)lsuPgxA`=A@j-F| zb~^D8X#svm+^w2d-?4;1d-IhI%zDd{JR8|U;Kl$kj}pCFLCDwQBJW2l+@Yai zJ*SHt{qS~glKa2~*B8)K-u@9SwVZpBOgQMwQW{^g;h7_>0y|vFmDxRRze23{!|sbO zZm9=%h<%$)`W>BG@GA=@2cY5kAD`0hbk&XF+}6LaZlEyTa5-lgrT*X z(bS{pC~N6`j~cONP6B;SkFO*U+J~4m#HCzVibM4>X?XSgz%Xot!Zveak9AYF99| zXT!9GI1~-mjbE=Hz`rV6(=*whNd)+Tv2Mj32X@}yeYqc5wG7YQK6-+UM!SFY*?i>H zZO=;71KpNlDh9wK;W2ujMu!UwtIV-)2+`*VZvOCP?UB=**M=_szWK_WljQ+0J*5>y z3O&jKjA=z^p6L#hPH>U+>^go0SdlvQ-q!)UZu73UUnf#JjygiVVtic-{KF#=4lQK$ znd|_6mg6U-pbj^*i!TnO&G@8)sfS0`1v4yZoPSVJ>D>7JY=KQ}#1P^w#>aREGMXFa zppx|=K_Qq1$zzD*~^4sduPq(+(8by(f;}LQ)>r#34Y8ag?MH#E+BTX8{ z(Y2he5lG$vUrVU%R?e3#07uPRa$yQ@3Dwtfi-u=MwU6hF!016lcC? z7D5g*iAq5ezxOkXWpRPvIxL&To4C!EyW9&bNL7~@b*_c*nhz^^tk3_p3Ke%}Z{2t7 z?Q#YYq?t~y<2|);sj||a>$*d}O$}~XrQA$Z#xj&^uwa^vejp~qm1%!}Cp;0Mr(?(I z#V3q3XGaG7DLt%1==;D;gl?cR^V7=fg+d^l^LihpEKkb+yreJ{qq^Hsq89px)cHKp z| zK$KByF$|KEiT!LSfDe<04+O3yuTUn=!!9*Na5%J*S}GQ8Bawt_h`hjq)l`N49lfr{A< z%D53FB@0aPVT7(TJdlR1Ef7S{Sm`mdJ$AU);%?MVeDJb5VbC+zy-+uVdB4zUsMy-9 zbuofd+_Qw?tguUb|459VUo-^7jO~3lqUkGiZZ;d`gwD#U`@V@ z>?_`ScAv+5_KtPs_WFW-QYGx#&V5exRj_Hjzx>My3E1fQ#_TW{_Xk}&onVI089%)T z`8Qn^jdJGbk3KHM+>8k56;)#+UI7CZyCuiPEFoT35Zrra_G2(()T=D#Ybb z5j;{OmY$n=j}_J{eI~ITL~b84KkfCb&i|wow`ZUVgdNHGBEr_#J8S=dJ)Hr7x{smR%+46zF7; zWEVoR=Jy~CC)qRyJ;|UMUpu{qy-Sz|4gD-*(N{R6|7<^5I#l;PlfSdBUF!ca^d)@= z1j0SI{E;<-dN1ULgD!&kB8U*Z4O(iwq%Fnx7V9iJYQSim^hD8R{T8mD(YSrXh16vY zV55Q zzQibgFYmus(+(=Ob7AMU#|=TAz2RvNRR5Utr{eGvd*YT&K}_S{baAX*>&#^0?vs_NABFw$}r__0EX=L z&g&z(=U6DniqZE~U>>o4Otnh$@-&!-b+P8+4(gHLAIrZKMuq$?T|Q}eE*lK)84na} z1&FSF10Bg((sY2D2Xn9JM`@|#n~xNqB^IBqNhTX!K6HWGi@N2|#-9OslYQ$2V#%DG zEvpnPpusQ(C+!(Hc>+oD2*)u_6{#B^`_(e zJAA+Nab#Ng?DDnF_qvMWdcp*`)}(G`_i7c?)Ck(sP7LN$qq)AV9qD#;AKarw{F&~!|Hvwso>?dcf>w>e8TyaY zHF3`cV3yUk(+6xnp#13%xNShTTh!xj1+WwJb5~22BO041Om6#p(SMKmuXxGu%+UvP z9#(3}rC^ALt9TIGPi~zmwY6z72vQC#G0@8``EX}Mud*B^ zp#{Piy+k2eGC6Kgaci3pO0b*U3s3x;)%cSmfJ%s;iI%pwQkXMFm7^h9}j?{s!* zA8bDa*r^%{4GR-CXAb<<2Mkev137?LQFim{hsg}UU3qCl?Tjz6*rQowyuF%*9Sx9ojBJKxi5)+`U7G8><%~cfmKX}D; zB@baVHyQzI)C*vP>Pqbzd_Day80Kqd%-59<-jKczd2;F`?gv5d$pmO>cCQ7Ul5yC! zSu0j!qRnj%<{tcnL$nY9$y|vqnN(Kq6nIoHxdPA&Y=3t663O8O&|Dt~+tYJkOf@-$ z-9N|iyz3vQQ>`Kx-yzuY3xGNvYsm8b(AT=bi^_|l#WZCm65(2cfTyD^A5w4xDC(T z?^2mhe$cVc_f{BK>s`9tB6Y!~`KU3mFT7(DNLTJQUOpNn3Lv&EWySvMf>TfLphP#o z*r7S|;|fBBkkGuI;P7U_@eRP2)6qrnzq!Dd0DyVp{U0W3zziPCFX`#M>pSD<~N@6?^`&aD>i{RsiXc|9ibwnM*|=>GNw z8$|30m{l7AWrob!FKo}`0IXq`ha{flJ{Z!}D7eN+z)lqvWV$u28D?J--WJCDTkI5! zHTrETx7_mp8IM`j#4N@_N1f|UR3p;d6f^cNqSk3D4a8(&f*#!8fIA|_MA1uzLk$bd zDBwf?ldYjkQsYTgeDw3p&n*RV6u(j;*$N}lJm6JS#0)R-B3jP_AT)x5a|RPS?w zU-#C`j{IzA3WXEXBMY&Az_feA-(W%EP1%5B_0SicD1YH;caxp$2lsSLw@EoM$mncU3ufr|!UYwx5h30v_mYS_B7Q~cCC!|GltN-~+JQY2j?lr9SX6!X{v6yo=@7}GX z6CNTy3vBe3TRv!zm3$|;+TF0+K=$vRT_t6tjASV&kOBSRY`Q-= z(NukUrW?Kw$CKx$vIaJbBr)m1Q1#5Zzlr|1v0u%jtu*Z7ea+2$u3Nv0o3@LW&aPZ&KNYf7 z+UYHTa{&6fdCN3woqRu$oc}`m;iu49r2O~SRT1UvHKbabubI?wGv30uBA?^h6R0pq z8gJ>8Vut^0X67u-iz7#=s85`_q#X3$e+2KJ$lJF*t8UdU%9GW54s@-B#yx0#OPMxJzi! zfZq{a+~Dk-no_8w5;QhXE$+5DGIaZyz>U`z!US7A7EH%c$e($)}P2H%LA>UzwWP zF2}^Mh`Rs-2}=8E-q;26uEA2%q(lW!ViX{qY%=!=J4gpr)h@%P?E$Y3$p{_jd-Z4< zb-8GE?9bbdhI5jm8Cs_=DNoQ-E$n%((F;r+qgv2aKJ|G~l(TOrZJ6g@_a6MqBgiE& zo5a*=Y42dhuK3HS;}|gdS-SN*IZ~Rn~TYK`LcHK@N~;sF9YR zUx~8IT+0)XZaweb`E}aBenwp&qe{v{XJ}URU`13GR5JbE0qkI6v?krDOJd%^>)Q(Q z-sco9RnSv`4v5{YW_kRf2KVLc6nEr%j3MSvNG_@I&(T8_On)XarUpf2bGU>_z z3{cuylv_fv8K!o4pltBulKZc79%i1lbNB*KmFJndia@fYR)$A4wpQc)pLUMd+U z|NXUAdeqeU!tDtz=l>rz?LQm*ry=^!2LD4~|0BWw(7*qfh(F_y;QyG2|CorsL~H*s z5&tm}e+g3lVrE-z&YFm5Ix0h<9BqZ5N8*;VlJUeO>3$Hlg!*+96{66 zE1nGhcR_vRl^Cl80FbE%>5ltOQc%LHWDs9}y{B`kojGu`WkVF2d-vZ)+R94Q`1p1( zO*FF4XJm7QFBoF)_g+#82im`*`*e4WCnK!M|L!JMQB-ugLjWEz(!{v;?sQx;TDqZ~ zqjEMU;@aczCF7Qs3j4p<=|6Q8%eo12)zOYsH#p@1Vp!!c{g^}7-pq62;gc+Y)z7~0 z!}fHPZDuRTbTjL&RA*SgtHIQ*130te5BMXHG5(sCUqg>9Q^_eZBY-6!w zw6H|4X*_*3CL7Ig?L&6#Q45$#vzWFUI%WANPhA(# zrA_KDcjsTv;+o~F_*$(nM`KPFkf4~8cZ)1>(?=Zs6dcA=clT$qpPu9tv-J<)6|?Ckh&*5e?Z8^c zs-<*qo7Kam{#D>nSH*+{`AX>m=L-VfsJpzpb@<=;r|+6;&uu9N3r?3iXt=;)#SZ0Y zfaPmN9$;6ti+>H&(9@)6df8iflA1KEJ|17v?OAJp-h+ z`3+rOD_TlQI|fFl2{{U}se4TOK<#j86K=tb_fP;UMgDZts{Op^B%r!W1B`@f&JcI0 zYUID{Q1Ctjx*4t6F%F0q$Ib(kYS{AJ!L)Z6xS5f3uzo7WVixEk_|lK(y$)Zjg&J=U zTe$(44mhj7)@_+l9x?!M5vgm*Jb!BoGL-3HZNokp?VolpfC0FrQ;L0#115)ywW??a zGr4fX0aTq`4ByL#kKUxvG``RoW;lG0CK%nT|oTbim`S!bv`;1 z&Vr7+>=$)oo?A!s#W=-k!nJR`f%4hql+Fa_f4|dXpjaj1RFkK1de$!)- z@5dGxeoleKRcO=Tx%SD8WUR~)iI0NQq6Js3+hkbihid^N;wcof(+wb=y^DZtU}25X z>tZ!{IrB!)!2Pf^@2H(tWBe~4=qMGI{pay~UO~Re5^m3aJ?uGKESbHB4(yUu20bvs zSW5A4#Of|KzoakXX9X}fJy(JmAJl;n|MCS%mSl;7jwHKb5kQ}TT#(WDmv>RlKA`fn zf`$D86=ZOhSC84Wkm1}xn}RB3B}Rx~#@R!C1jnULpwGu#L=3J~evT#2Bp_!Qe(gg zE*HaAjSrIgIe_J}BGNmIHPosr+Cc@tN2x;rDo=y>vN7Jj*&u3u_CjBcwuQCCxCu1l z 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℘!$o#)IXF+~Uwb(9bnaH> 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 Ko6h;N^8X82&BYu5 literal 0 HcmV?d00001 diff --git a/tests/api_handlers_test.go b/tests/api_handlers_test.go index b24f728e1..4a67ed8f1 100644 --- a/tests/api_handlers_test.go +++ b/tests/api_handlers_test.go @@ -28,7 +28,7 @@ type APIHandlerTestSuite struct { router *gin.Engine handler *api.Handler taskQueue *queue.TaskQueue - unifiedProcessor *transcription.UnifiedJobProcessor + whisperXService *transcription.WhisperXService quickTranscription *transcription.QuickTranscriptionService } @@ -36,13 +36,13 @@ func (suite *APIHandlerTestSuite) SetupSuite() { suite.helper = NewTestHelper(suite.T(), "api_handlers_test.db") // Initialize services - suite.unifiedProcessor = transcription.NewUnifiedJobProcessor() + suite.whisperXService = transcription.NewWhisperXService(suite.helper.Config) var err error - suite.quickTranscription, err = transcription.NewQuickTranscriptionService(suite.helper.Config, suite.unifiedProcessor) + suite.quickTranscription, err = transcription.NewQuickTranscriptionService(suite.helper.Config, suite.whisperXService) assert.NoError(suite.T(), err) - suite.taskQueue = queue.NewTaskQueue(1, suite.unifiedProcessor) - suite.handler = api.NewHandler(suite.helper.Config, suite.helper.AuthService, suite.taskQueue, suite.unifiedProcessor, suite.quickTranscription) + suite.taskQueue = queue.NewTaskQueue(1, suite.whisperXService) + suite.handler = api.NewHandler(suite.helper.Config, suite.helper.AuthService, suite.taskQueue, suite.whisperXService, suite.quickTranscription) // Set up router suite.router = api.SetupRoutes(suite.handler, suite.helper.AuthService) @@ -310,14 +310,11 @@ func (suite *APIHandlerTestSuite) TestGetSupportedModels() { assert.Contains(suite.T(), response, "models") assert.Contains(suite.T(), response, "languages") - // Models is now a map (model_id -> capabilities), languages is still an array - // In test environment, these may be empty since no adapters are registered - models := response["models"].(map[string]interface{}) + models := response["models"].([]interface{}) languages := response["languages"].([]interface{}) - // Just verify they have the correct types (may be empty in test environment) - assert.NotNil(suite.T(), models) - assert.NotNil(suite.T(), languages) + assert.Greater(suite.T(), len(models), 0) + assert.Greater(suite.T(), len(languages), 0) } // Test profile management @@ -427,7 +424,7 @@ func (suite *APIHandlerTestSuite) TestGetQueueStats() { assert.NoError(suite.T(), err) assert.Contains(suite.T(), response, "queue_size") - assert.Contains(suite.T(), response, "current_workers") + assert.Contains(suite.T(), response, "workers") assert.Contains(suite.T(), response, "pending_jobs") assert.Contains(suite.T(), response, "processing_jobs") assert.Contains(suite.T(), response, "completed_jobs") diff --git a/tests/queue_test.go b/tests/queue_test.go index 200110e77..a602b5137 100644 --- a/tests/queue_test.go +++ b/tests/queue_test.go @@ -70,9 +70,9 @@ func (suite *QueueTestSuite) TestNewTaskQueue() { // Test queue stats before starting stats := tq.GetQueueStats() - assert.Equal(suite.T(), 2, stats["current_workers"]) + assert.Equal(suite.T(), 2, stats["workers"]) assert.Equal(suite.T(), 0, stats["queue_size"]) - assert.Equal(suite.T(), 200, stats["queue_capacity"]) + assert.Equal(suite.T(), 100, stats["queue_capacity"]) } // Test enqueuing jobs @@ -111,7 +111,7 @@ func (suite *QueueTestSuite) TestJobProcessing() { time.Sleep(100 * time.Millisecond) // Verify the job was processed - mockProcessor.AssertCalled(suite.T(), "ProcessJobWithProcess", mock.Anything, job.ID, mock.Anything) + mockProcessor.AssertCalled(suite.T(), "ProcessJob", mock.Anything, job.ID) // Check job status in database updatedJob, err := tq.GetJobStatus(job.ID) @@ -141,7 +141,7 @@ func (suite *QueueTestSuite) TestJobProcessingFailure() { time.Sleep(100 * time.Millisecond) // Verify the job was processed - mockProcessor.AssertCalled(suite.T(), "ProcessJobWithProcess", mock.Anything, job.ID, mock.Anything) + mockProcessor.AssertCalled(suite.T(), "ProcessJob", mock.Anything, job.ID) // Check job status in database updatedJob, err := tq.GetJobStatus(job.ID) @@ -222,9 +222,9 @@ func (suite *QueueTestSuite) TestGetQueueStats() { stats := tq.GetQueueStats() - assert.Equal(suite.T(), 3, stats["current_workers"]) + assert.Equal(suite.T(), 3, stats["workers"]) assert.Equal(suite.T(), 0, stats["queue_size"]) // No jobs in queue buffer - assert.Equal(suite.T(), 200, stats["queue_capacity"]) + assert.Equal(suite.T(), 100, stats["queue_capacity"]) // Note: The actual counts depend on what's in the database assert.Contains(suite.T(), stats, "pending_jobs") @@ -263,7 +263,7 @@ func (suite *QueueTestSuite) TestMultipleWorkers() { // Verify all jobs were processed for _, job := range jobs { - mockProcessor.AssertCalled(suite.T(), "ProcessJobWithProcess", mock.Anything, job.ID, mock.Anything) + mockProcessor.AssertCalled(suite.T(), "ProcessJob", mock.Anything, job.ID) } } @@ -300,17 +300,16 @@ func (suite *QueueTestSuite) TestQueueOverflow() { tq := queue.NewTaskQueue(1, mockProcessor) - // Fill up the queue (capacity is 200) - for i := 0; i < 200; i++ { + // Fill up the queue (capacity is 100) + for i := 0; i < 100; i++ { err := tq.EnqueueJob(fmt.Sprintf("job-%d", i)) assert.NoError(suite.T(), err) } - // The 201st job should fail + // The 101st job should fail err := tq.EnqueueJob("overflow-job") - if assert.Error(suite.T(), err, "Expected error for queue overflow") { - assert.Contains(suite.T(), err.Error(), "queue is full") - } + assert.Error(suite.T(), err) + assert.Contains(suite.T(), err.Error(), "queue is full") } // Test job status retrieval diff --git a/tests/security_test.go b/tests/security_test.go index d4563fc82..f768fec96 100644 --- a/tests/security_test.go +++ b/tests/security_test.go @@ -30,7 +30,7 @@ type SecurityTestSuite struct { config *config.Config authService *auth.AuthService taskQueue *queue.TaskQueue - unifiedProcessor *transcription.UnifiedJobProcessor + whisperXService *transcription.WhisperXService quickTranscriptionService *transcription.QuickTranscriptionService handler *api.Handler } @@ -57,14 +57,14 @@ func (suite *SecurityTestSuite) SetupSuite() { // Initialize services suite.authService = auth.NewAuthService(suite.config.JWTSecret) - suite.unifiedProcessor = transcription.NewUnifiedJobProcessor() + suite.whisperXService = transcription.NewWhisperXService(suite.config) var err error - suite.quickTranscriptionService, err = transcription.NewQuickTranscriptionService(suite.config, suite.unifiedProcessor) + suite.quickTranscriptionService, err = transcription.NewQuickTranscriptionService(suite.config, suite.whisperXService) if err != nil { suite.T().Fatal("Failed to initialize quick transcription service:", err) } - suite.taskQueue = queue.NewTaskQueue(1, suite.unifiedProcessor) - suite.handler = api.NewHandler(suite.config, suite.authService, suite.taskQueue, suite.unifiedProcessor, suite.quickTranscriptionService) + suite.taskQueue = queue.NewTaskQueue(1, suite.whisperXService) + suite.handler = api.NewHandler(suite.config, suite.authService, suite.taskQueue, suite.whisperXService, suite.quickTranscriptionService) // Set up router suite.router = api.SetupRoutes(suite.handler, suite.authService) diff --git a/web/frontend/src/App.tsx b/web/frontend/src/App.tsx index 31a65371e..389b3bd9d 100644 --- a/web/frontend/src/App.tsx +++ b/web/frontend/src/App.tsx @@ -5,6 +5,7 @@ import { useRouter } from './contexts/RouterContext' const Homepage = lazy(() => import('./components/Homepage').then(module => ({ default: module.Homepage }))) const AudioDetailView = lazy(() => import('./components/AudioDetailView').then(module => ({ default: module.AudioDetailView }))) const Settings = lazy(() => import('./pages/Settings').then(module => ({ default: module.Settings }))) +const Admin = lazy(() => import('./pages/Admin').then(module => ({ default: module.Admin }))) const ChatPage = lazy(() => import('./pages/ChatPage').then(module => ({ default: module.ChatPage }))) // Loading component @@ -25,6 +26,8 @@ function App() { ) : currentRoute.path === 'chat' ? ( + ) : currentRoute.path === 'admin' ? ( + ) : ( )} diff --git a/web/frontend/src/components/Header.tsx b/web/frontend/src/components/Header.tsx index 7c4b797cf..372297c1d 100644 --- a/web/frontend/src/components/Header.tsx +++ b/web/frontend/src/components/Header.tsx @@ -6,7 +6,7 @@ import { DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; -import { Upload, Mic, Settings, LogOut, Home, Plus, Grip, Zap, Youtube, Video, Users } from "lucide-react"; +import { Upload, Mic, Settings, LogOut, Home, Plus, Grip, Zap, Youtube, Video, Users, Shield } from "lucide-react"; import { ScriberrLogo } from "./ScriberrLogo"; import { ThemeSwitcher } from "./ThemeSwitcher"; import { AudioRecorder } from "./AudioRecorder"; @@ -14,7 +14,6 @@ import { QuickTranscriptionDialog } from "./QuickTranscriptionDialog"; import { YouTubeDownloadDialog } from "./YouTubeDownloadDialog"; import { useRouter } from "../contexts/RouterContext"; import { useAuth } from "../contexts/AuthContext"; -import { isVideoFile, isAudioFile } from "../utils/fileProcessor"; interface FileWithType { file: File; @@ -28,8 +27,8 @@ interface HeaderProps { } export function Header({ onFileSelect, onMultiTrackClick, onDownloadComplete }: HeaderProps) { - const { navigate } = useRouter(); - const { logout } = useAuth(); + const { navigate } = useRouter(); + const { logout, isAdmin } = useAuth(); const fileInputRef = useRef(null); const videoFileInputRef = useRef(null); const [isRecorderOpen, setIsRecorderOpen] = useState(false); @@ -64,9 +63,9 @@ export function Header({ onFileSelect, onMultiTrackClick, onDownloadComplete }: navigate({ path: "settings" }); }; - const handleLogout = () => { - logout(); - }; + const handleLogout = () => { + logout(); + }; const handleHomeClick = () => { navigate({ path: "home" }); @@ -75,26 +74,12 @@ export function Header({ onFileSelect, onMultiTrackClick, onDownloadComplete }: const handleFileChange = (event: React.ChangeEvent) => { const files = event.target.files; if (files && files.length > 0) { - const fileArray = Array.from(files); - - // Check for video files that were incorrectly uploaded via audio upload - const videoFiles = fileArray.filter(file => isVideoFile(file)); - if (videoFiles.length > 0) { - alert(`Video files detected. Please use "Upload Videos" instead of "Upload Files" to upload ${videoFiles.map(f => f.name).join(', ')}`); - event.target.value = ""; - return; - } - // Filter to only audio files - const audioFiles = fileArray.filter(file => isAudioFile(file)); + const audioFiles = Array.from(files).filter(file => file.type.startsWith("audio/")); if (audioFiles.length > 0) { onFileSelect(audioFiles.length === 1 ? audioFiles[0] : audioFiles); // Reset the input so the same files can be selected again event.target.value = ""; - } else { - // No valid audio files found - alert("No valid audio files found. Please select audio files (.mp3, .wav, .flac, .m4a, .aac, .ogg)"); - event.target.value = ""; } } }; @@ -236,10 +221,16 @@ export function Header({ onFileSelect, onMultiTrackClick, onDownloadComplete }: Home - - - Settings - + + + Settings + + {isAdmin && ( + navigate({ path: 'admin' })} className="cursor-pointer"> + + Admin + + )} Logout diff --git a/web/frontend/src/components/TranscriptionConfigDialog.tsx b/web/frontend/src/components/TranscriptionConfigDialog.tsx index 6ba2851cb..7f4ea3299 100644 --- a/web/frontend/src/components/TranscriptionConfigDialog.tsx +++ b/web/frontend/src/components/TranscriptionConfigDialog.tsx @@ -112,7 +112,7 @@ const PARAM_DESCRIPTIONS = { model: "Size of the Whisper model to use. Larger models are more accurate but slower and require more memory.", language: "Source language of the audio. Leave as auto-detect for automatic language detection.", task: "Whether to transcribe the audio or translate it to English.", - device: "Processing device: CPU (slower, universal), GPU (faster, requires CUDA), MPS (Apple Silicon GPU), or AUTO (automatic selection).", + device: "Processing device: CPU (slower, universal), GPU (faster, requires CUDA), or Auto (automatic selection).", compute_type: "Precision type: Float16 (faster, less memory), Float32 (more accurate), Int8 (fastest, least accurate).", batch_size: "Number of audio segments processed simultaneously. Higher values are faster but use more memory.", diarize: "Enable speaker diarization to identify and separate different speakers in the audio.", @@ -1057,7 +1057,7 @@ export const TranscriptionConfigDialog = memo(function TranscriptionConfigDialog CPU GPU (CUDA) - GPU (MPS) + Auto diff --git a/web/frontend/src/contexts/AuthContext.tsx b/web/frontend/src/contexts/AuthContext.tsx index efe655b6c..4272f3808 100644 --- a/web/frontend/src/contexts/AuthContext.tsx +++ b/web/frontend/src/contexts/AuthContext.tsx @@ -2,13 +2,14 @@ import { createContext, useContext, useState, useEffect, useCallback, useMemo, u import type { ReactNode } from "react"; interface AuthContextType { - token: string | null; - isAuthenticated: boolean; - requiresRegistration: boolean; - isInitialized: boolean; - login: (token: string) => void; - logout: () => void; - getAuthHeaders: () => { Authorization?: string }; + token: string | null; + isAuthenticated: boolean; + requiresRegistration: boolean; + isInitialized: boolean; + isAdmin: boolean; + login: (token: string) => void; + logout: () => void; + getAuthHeaders: () => { Authorization?: string }; } const AuthContext = createContext(undefined); @@ -18,9 +19,10 @@ interface AuthProviderProps { } export function AuthProvider({ children }: AuthProviderProps) { - const [token, setToken] = useState(null); - const [isInitialized, setIsInitialized] = useState(false); - const [requiresRegistration, setRequiresRegistration] = useState(false); + const [token, setToken] = useState(null); + const [isInitialized, setIsInitialized] = useState(false); + const [requiresRegistration, setRequiresRegistration] = useState(false); + const [isAdmin, setIsAdmin] = useState(false); // Use refs to avoid re-creating intervals on every render const tokenCheckIntervalRef = useRef(null); @@ -42,6 +44,7 @@ export function AuthProvider({ children }: AuthProviderProps) { // Logout function const logout = useCallback(() => { setToken(null); + setIsAdmin(false); localStorage.removeItem("scriberr_auth_token"); // Call logout endpoint to invalidate token server-side (optional) fetch("/api/v1/auth/logout", { @@ -76,18 +79,26 @@ export function AuthProvider({ children }: AuthProviderProps) { // Only check for existing token if registration is not required if (!regEnabled) { - const savedToken = localStorage.getItem("scriberr_auth_token"); - if (savedToken) { - if (isTokenExpired(savedToken)) { - // Token expired, remove it - localStorage.removeItem("scriberr_auth_token"); - } else { - setToken(savedToken); - } - } - } - } - } catch (error) { + const savedToken = localStorage.getItem("scriberr_auth_token"); + if (savedToken) { + if (isTokenExpired(savedToken)) { + // Token expired, remove it + localStorage.removeItem("scriberr_auth_token"); + } else { + setToken(savedToken); + // Try to fetch user settings to determine admin + try { + const us = await fetch('/api/v1/user/settings', { headers: { Authorization: `Bearer ${savedToken}` } }); + if (us.ok) { + const data = await us.json(); + if (typeof data.is_admin === 'boolean') setIsAdmin(!!data.is_admin); + } + } catch {} + } + } + } + } + } catch (error) { console.error("Failed to check registration status:", error); // If we can't check status, assume no registration needed and check token const savedToken = localStorage.getItem("scriberr_auth_token"); @@ -106,11 +117,18 @@ export function AuthProvider({ children }: AuthProviderProps) { initializeAuth(); }, [isTokenExpired]); - const login = useCallback((newToken: string) => { - setToken(newToken); - localStorage.setItem("scriberr_auth_token", newToken); - setRequiresRegistration(false); // Clear registration requirement after successful login/registration - }, []); + const login = useCallback((newToken: string) => { + setToken(newToken); + localStorage.setItem("scriberr_auth_token", newToken); + setRequiresRegistration(false); // Clear registration requirement after successful login/registration + // Fetch user settings to set admin + fetch('/api/v1/user/settings', { headers: { Authorization: `Bearer ${newToken}` }}).then(async (res) => { + if (res.ok) { + const data = await res.json(); + setIsAdmin(!!data.is_admin); + } + }).catch(() => {}); + }, []); // Helper: attempt to refresh JWT via cookie refresh token const tryRefresh = useCallback(async (): Promise => { @@ -173,8 +191,8 @@ export function AuthProvider({ children }: AuthProviderProps) { clearInterval(tokenCheckIntervalRef.current); } - // Setup token expiry checking if we have a token - if (token) { + // Setup token expiry checking if we have a token + if (token) { const checkTokenExpiry = async () => { if (!token) return; @@ -208,15 +226,16 @@ export function AuthProvider({ children }: AuthProviderProps) { }, [token]); // Memoize context value to prevent unnecessary re-renders - const value = useMemo(() => ({ - token, - isAuthenticated: !!token && isInitialized, - requiresRegistration, - isInitialized, - login, - logout, - getAuthHeaders, - }), [token, isInitialized, requiresRegistration, login, logout, getAuthHeaders]); + const value = useMemo(() => ({ + token, + isAuthenticated: !!token && isInitialized, + requiresRegistration, + isInitialized, + isAdmin, + login, + logout, + getAuthHeaders, + }), [token, isInitialized, requiresRegistration, isAdmin, login, logout, getAuthHeaders]); return ( diff --git a/web/frontend/src/contexts/RouterContext.tsx b/web/frontend/src/contexts/RouterContext.tsx index 21993fbce..ddb65bb06 100644 --- a/web/frontend/src/contexts/RouterContext.tsx +++ b/web/frontend/src/contexts/RouterContext.tsx @@ -1,7 +1,7 @@ import { createContext, useContext, useEffect, useState } from 'react' export type Route = { - path: 'home' | 'audio-detail' | 'settings' | 'chat' + path: 'home' | 'audio-detail' | 'settings' | 'chat' | 'admin' params?: Record } @@ -35,6 +35,8 @@ export function RouterProvider({ children }: { children: React.ReactNode }) { return { path: 'audio-detail', params: { id: audioId } } } else if (path === '/settings') { return { path: 'settings' } + } else if (path === '/admin') { + return { path: 'admin' } } return { path: 'home' } @@ -53,6 +55,8 @@ export function RouterProvider({ children }: { children: React.ReactNode }) { url = `/audio/${route.params.audioId}/chat` } else if (route.path === 'settings') { url = '/settings' + } else if (route.path === 'admin') { + url = '/admin' } window.history.pushState({ route }, '', url) diff --git a/web/frontend/src/pages/Admin.tsx b/web/frontend/src/pages/Admin.tsx new file mode 100644 index 000000000..e12718e9d --- /dev/null +++ b/web/frontend/src/pages/Admin.tsx @@ -0,0 +1,472 @@ +import { useEffect, useMemo, useState, useRef } from 'react' +import { useAuth } from '@/contexts/AuthContext' +import { Button } from '@/components/ui/button' +import { Card, CardHeader, CardTitle, CardContent, CardDescription } from '@/components/ui/card' +import { Input } from '@/components/ui/input' +import { Label } from '@/components/ui/label' +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table' + +type AdminUser = { + id: number + username: string + is_admin: boolean + created_at: string + updated_at: string +} + +export function Admin() { + const { getAuthHeaders, token } = useAuth() + + const [users, setUsers] = useState([]) + const [loading, setLoading] = useState(false) + const [error, setError] = useState(null) + + // Create user form state + const [newUsername, setNewUsername] = useState('') + const [newPassword, setNewPassword] = useState('') + const [newConfirm, setNewConfirm] = useState('') + const [newIsAdmin, setNewIsAdmin] = useState(false) + const [creating, setCreating] = useState(false) + + // Simple password reset state per user id + const [pwdTarget, setPwdTarget] = useState(null) + const [pwd1, setPwd1] = useState('') + const [pwd2, setPwd2] = useState('') + + // Logo/branding state + const [logoUploading, setLogoUploading] = useState(false) + const [logoVersion, setLogoVersion] = useState(0) + const [logoError, setLogoError] = useState(null) + const logoInputRef = useRef(null) + + const canCreate = useMemo( + () => + newUsername.trim().length >= 3 && + newPassword.length >= 6 && + newPassword === newConfirm, + [newUsername, newPassword, newConfirm] + ) + + const fetchUsers = async () => { + setLoading(true) + setError(null) + try { + const res = await fetch('/api/v1/admin/users/', { + headers: { ...getAuthHeaders() } + }) + if (!res.ok) { + throw new Error('Failed to load users') + } + const data = await res.json() + setUsers(data as AdminUser[]) + } catch (e: any) { + setError(e?.message || 'Failed to load users') + } finally { + setLoading(false) + } + } + + useEffect(() => { + if (token) { + fetchUsers() + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [token]) + + const createUser = async () => { + if (!canCreate) return + setCreating(true) + setError(null) + try { + const res = await fetch('/api/v1/admin/users/', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + ...getAuthHeaders() + }, + body: JSON.stringify({ + username: newUsername.trim(), + password: newPassword, + confirmPassword: newConfirm, + is_admin: newIsAdmin + }) + }) + const data = await res.json() + if (!res.ok) { + throw new Error(data?.error || 'Failed to create user') + } + setNewUsername('') + setNewPassword('') + setNewConfirm('') + setNewIsAdmin(false) + await fetchUsers() + } catch (e: any) { + setError(e?.message || 'Failed to create user') + } finally { + setCreating(false) + } + } + + const toggleAdmin = async (u: AdminUser) => { + try { + const res = await fetch(`/api/v1/admin/users/${u.id}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + ...getAuthHeaders() + }, + body: JSON.stringify({ is_admin: !u.is_admin }) + }) + const data = await res.json().catch(() => ({})) + if (!res.ok) { + throw new Error((data as any)?.error || 'Failed to update user') + } + await fetchUsers() + } catch (e: any) { + setError(e?.message || 'Failed to update user') + } + } + + const deleteUser = async (u: AdminUser) => { + if (!confirm(`Delete user ${u.username}?`)) return + try { + const res = await fetch(`/api/v1/admin/users/${u.id}`, { + method: 'DELETE', + headers: { ...getAuthHeaders() } + }) + const data = await res.json().catch(() => ({})) + if (!res.ok) { + throw new Error((data as any)?.error || 'Failed to delete user') + } + await fetchUsers() + } catch (e: any) { + setError(e?.message || 'Failed to delete user') + } + } + + const resetPassword = async (u: AdminUser) => { + if (!pwd1 || pwd1.length < 6 || pwd1 !== pwd2) { + setError('Passwords must match and be at least 6 chars') + return + } + try { + const res = await fetch(`/api/v1/admin/users/${u.id}/password`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + ...getAuthHeaders() + }, + body: JSON.stringify({ + newPassword: pwd1, + confirmPassword: pwd2 + }) + }) + const data = await res.json().catch(() => ({})) + if (!res.ok) { + throw new Error((data as any)?.error || 'Failed to update password') + } + setPwdTarget(null) + setPwd1('') + setPwd2('') + } catch (e: any) { + setError(e?.message || 'Failed to update password') + } + } + + const handleLogoChange = async (event: React.ChangeEvent) => { + const file = event.target.files?.[0] + if (!file) return + + setLogoError(null) + + if (!file.type.startsWith('image/')) { + setLogoError('Please select an image file (PNG).') + event.target.value = '' + return + } + + const formData = new FormData() + formData.append('logo', file) + + setLogoUploading(true) + try { + const res = await fetch('/api/v1/admin/logo', { + method: 'POST', + headers: { + ...getAuthHeaders() + // Do not set Content-Type, browser will set multipart boundary + }, + body: formData + }) + const data = await res.json().catch(() => ({})) + if (!res.ok) { + throw new Error((data as any)?.error || 'Failed to upload logo') + } + setLogoVersion(v => v + 1) + } catch (e: any) { + setLogoError(e?.message || 'Failed to upload logo') + } finally { + setLogoUploading(false) + event.target.value = '' + } + } + + const handleLogoReset = async () => { + setLogoError(null) + setLogoUploading(true) + try { + const res = await fetch('/api/v1/admin/logo', { + method: 'DELETE', + headers: { + ...getAuthHeaders() + } + }) + const data = await res.json().catch(() => ({})) + if (!res.ok) { + throw new Error((data as any)?.error || 'Failed to reset logo') + } + setLogoVersion(v => v + 1) + } catch (e: any) { + setLogoError(e?.message || 'Failed to reset logo') + } finally { + setLogoUploading(false) + } + } + + return ( +
+
+ + + User Management + + Add, promote, or remove users for this Scriberr instance + + + + {error && ( +
{error}
+ )} +
+
+ + setNewUsername(e.target.value)} + placeholder="e.g. alice" + className="bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-900 dark:text-gray-100" + /> +
+
+ + setNewPassword(e.target.value)} + className="bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-900 dark:text-gray-100" + /> +
+
+ + setNewConfirm(e.target.value)} + className="bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-900 dark:text-gray-100" + /> +
+
+ + +
+
+
+
+ + + + Users + + + {loading ? ( +
Loading users…
+ ) : ( + + + + Username + Admin + Actions + + + + {users.map(u => ( + + {u.username} + {u.is_admin ? 'Yes' : 'No'} + + + {pwdTarget === u.id ? ( + + setPwd1(e.target.value)} + className="w-40 bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-900 dark:text-gray-100" + /> + setPwd2(e.target.value)} + className="w-40 bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-900 dark:text-gray-100" + /> + + + + ) : ( + + )} + + + + ))} + +
+ )} +
+
+ + + + Branding + + Upload a custom logo for this Scriberr instance. + + + + {logoError && ( +
{logoError}
+ )} +
+
+ +
+ Current logo +
+
+
+ + +
+ + +
+

+ Changes are applied immediately after upload. +

+
+
+
+
+
+
+ ) +} + +export default Admin diff --git a/web/landing/dist/assets/index-CTEra42u.js b/web/landing/dist/assets/index-CTEra42u.js index ac0e1a091..bbce048e1 100644 --- a/web/landing/dist/assets/index-CTEra42u.js +++ b/web/landing/dist/assets/index-CTEra42u.js @@ -1 +1 @@ -import{j as e,r as i,G as n,c as o,R as l}from"./styles-DGJLjUaE.js";import{W as c}from"./Window-BJy5jSY4.js";function a({className:s=""}){return e.jsx("img",{src:"/scriberr-logo.png",alt:"Scriberr",className:`w-auto select-none ${s}`})}function d(){const[s,r]=i.useState(!1);return e.jsxs("header",{className:"sticky top-0 z-40 bg-white/80 backdrop-blur shadow-soft",children:[e.jsxs("div",{className:"container-narrow py-4 flex items-center justify-between",children:[e.jsx("a",{href:"#",className:"flex items-center gap-3",children:e.jsx(a,{className:"h-8 sm:h-10"})}),e.jsxs("nav",{className:"hidden md:flex items-center gap-6 text-sm text-gray-600",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",children:"API"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Menu",onClick:()=>r(t=>!t),children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:e.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),e.jsx(n,{})]})]}),s&&e.jsx("div",{className:"md:hidden border-t border-gray-200 bg-white",children:e.jsxs("div",{className:"container-narrow py-3 flex flex-col gap-2 text-sm text-gray-700",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"API"})]})})]})}function m(){return e.jsx("section",{className:"relative",children:e.jsxs("div",{className:"container-narrow section text-center",children:[e.jsx("span",{className:"eyebrow mb-3 inline-block",children:"Self-hosted offline audio transcription"}),e.jsx("h1",{className:"headline flex justify-center mb-4",children:e.jsx(a,{className:"h-16 sm:h-20 md:h-24 lg:h-28 xl:h-32"})}),e.jsx("p",{className:"subcopy mt-3 mx-auto max-w-2xl",children:"Transcribe audio locally into text - Summarize and Chat with your audio. No GPU Required."}),e.jsxs("div",{className:"mt-8 flex items-center justify-center gap-3",children:[e.jsx("a",{href:"/docs/installation.html",className:"button-primary",children:"Get Started"}),e.jsx("a",{href:"#features",className:"button-ghost",children:"Learn more"})]}),e.jsx("div",{className:"mt-6 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",onClick:s=>{s.preventDefault(),window.open("https://ko-fi.com/H2H41KQZA3","_blank","noopener,noreferrer")},children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})}),e.jsx("div",{className:"mt-12 max-w-5xl mx-auto",children:e.jsxs("div",{className:"rounded-3xl shadow-soft overflow-hidden bg-white hover-lift",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[e.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),e.jsx("img",{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage",className:"w-full object-cover"})]})}),e.jsxs("div",{className:"mt-6 flex items-center justify-center gap-4 text-xs text-gray-500",children:[e.jsx("span",{children:"Privacy preserving"}),e.jsx("span",{children:"Mobile ready"}),e.jsx("span",{children:"Fast and responsive"})]})]})})}const h=[{title:"Precise transcription",desc:"Tweak advanced transcription parameters to get the best quality output"},{title:"Built-in recorder",desc:"Capture audio directly in-app and transcribe instantly."},{title:"Summarize & chat",desc:"Extract key points or chat over transcripts using LLMs."},{title:"Lightweight notes",desc:"Highlight, annotate, and tag important moments as you listen/read."},{title:"Speaker diarization",desc:"Identify and label distinct speakers in your audio."},{title:"Profiles & presets",desc:"Save configurations for different audio scenarios."}];function x({name:s}){const r="size-4";switch(s){case"Precise transcription":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M12 3v10a3 3 0 1 1-6 0V8"}),e.jsx("path",{d:"M19 10v3a7 7 0 0 1-14 0"})]});case"Built-in recorder":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("rect",{x:"9",y:"9",width:"6",height:"6",rx:"3"}),e.jsx("circle",{cx:"12",cy:"12",r:"9"})]});case"Summarize & chat":return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:e.jsx("path",{d:"M21 15a4 4 0 0 1-4 4H7l-4 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"})});case"Lightweight notes":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M9 7h6M9 12h6M9 17h6"}),e.jsx("rect",{x:"5",y:"3",width:"14",height:"18",rx:"2"})]});case"Speaker diarization":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("circle",{cx:"7",cy:"8",r:"3"}),e.jsx("path",{d:"M2 19a5 5 0 0 1 10 0"}),e.jsx("circle",{cx:"17",cy:"10",r:"2.5"}),e.jsx("path",{d:"M13 19c.5-2.5 2.5-4 5-4"})]});case"Profiles & presets":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M6 3v12"}),e.jsx("path",{d:"M12 3v18"}),e.jsx("path",{d:"M18 3v8"})]});default:return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:e.jsx("path",{d:"M12 6v12m6-6H6"})})}}function p(){return e.jsxs("section",{id:"features",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Capabilities"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"Key Features"}),e.jsx("p",{className:"subcopy mt-2",children:"Curated set of features to manage and work with transcripts."})]}),e.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:h.map(s=>e.jsxs("article",{className:"rounded-2xl p-6 bg-gray-50 shadow-soft hover-lift",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[e.jsx("span",{className:"inline-flex items-center justify-center size-9 rounded-xl bg-gray-100 text-gray-600 shadow-subtle",children:e.jsx(x,{name:s.title})}),e.jsx("h3",{className:"font-medium text-base md:text-lg text-gray-900",children:s.title})]}),e.jsx("p",{className:"subcopy",children:s.desc})]},s.title))})]})}const u=[{title:"Transcript view",desc:"Minimal reading experience with timestamps with playback follow along that highlights currently playing word.",img:"scriberr-transcript page.png",bullets:["Jump from audio timestamp to corresponding word","Jump from text to corresponding audio segment","View transcript as paragraph or as timestamped/speaker segments"]},{title:"Record right in Scriberr",desc:"Capture audio directly in-app and transcribe",img:"scriberr-inbuilt audio recorder for directly recording and transcribing audio within the app.png",bullets:[]},{title:"Summaries at a glance",desc:"Turn long recordings into brief, actionable summaries you can scan in seconds.",img:"scriberr-summarize transcripts.png",bullets:["Write your own custom prompts for summarization","Supports both Ollama/OpenAI (needs API Key) LLM providers","Save multiple summarization presets to reuse quickly"]},{title:"Annotate transcripts",desc:"Highlight important moments, jot down concise notes, and keep insights attached to the exact timestamp.",img:"scriberr-annotate transcript and take notes.png",bullets:["Highlight text to add a note","Timestamped notes allow jumping to exact segment"]},{title:"Advanced controls",desc:"Fine-tune model settings, language, and diarization for optimal results",img:"scriberr-fine tune advanced transcription parameters as you see fit to improve transcription quality.png",bullets:["Language hints and temperature","Diarization and VAD options","Profiles for repeatable setups"]},{title:"Bring your own providers",desc:"Use OpenAI or local models via Ollama for summaries and chat — your keys, your choice.",img:"scriberr-Ollama openAI llm providers for chat and summarization.png",bullets:["Works with OpenAI or Ollama"]},{title:"Export transcripts",desc:"Download your transcripts in multiple formats",img:"scriberr-download-transcript-in-different-formats.png",bullets:["Export to TXT, Markdown, JSON","Keep timestamps and speaker info"]},{title:"Chat with your transcript",desc:"Ask questions about your recording, extract insights, and clarify details without scrubbing through audio.",img:"scriberr-chat-with-your-recording-transcript.png",bullets:["Works with OpenAI or Ollama"]},{title:"API keys and REST API",desc:"Manage API keys and use the full REST API to build automations or integrate Scriberr into your own applications.",img:"scriberr-api-key-management.png",bullets:["Secure API key management","Endpoints for transcription, chat, notes and more"]},{title:"Transcribe YouTube videos",desc:"Paste a YouTube link to transcribe the audio directly — no downloads required.",img:"scriberr-youtube-video.png",bullets:["Grab insights from talks, podcasts and lectures","Works with summarization and notes"]}];function g(){return e.jsxs("section",{id:"details",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Details"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"A closer look"})]}),e.jsx("div",{className:"space-y-16 md:space-y-24",children:u.map((s,r)=>e.jsxs("div",{className:"grid md:grid-cols-2 gap-8 md:gap-10 items-center",children:[e.jsx("div",{className:r%2===0?"order-1 md:order-1":"order-2 md:order-2",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl md:text-2xl font-semibold text-gray-900",children:s.title}),e.jsx("p",{className:"subcopy mt-2",children:s.desc}),s.bullets&&e.jsx("ul",{className:"mt-4 space-y-2 text-sm text-gray-600 list-disc list-inside",children:s.bullets.map(t=>e.jsx("li",{children:t},t))})]})}),e.jsx("div",{className:r%2===0?"order-2 md:order-2":"order-1 md:order-1",children:e.jsx(c,{src:`/screenshots/${s.img}`,alt:s.title})})]},s.title))})]})}function f(){return e.jsx("footer",{className:"mt-8 bg-gray-50",children:e.jsxs("div",{className:"container-narrow py-10 text-center text-sm text-gray-700",children:[e.jsxs("p",{children:["If you like Scriberr, consider giving the project a star on"," ",e.jsx("a",{href:"https://github.com/rishikanthc/scriberr",target:"_blank",rel:"noreferrer",className:"text-blue-600 hover:text-blue-700 underline-offset-2 hover:underline",children:"GitHub"}),"."]}),e.jsx("div",{className:"mt-4 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})})]})})}function j(){return e.jsxs("div",{className:"min-h-screen flex flex-col",children:[e.jsx(d,{}),e.jsxs("main",{className:"flex-1",children:[e.jsx(m,{}),e.jsx(p,{}),e.jsx(g,{})]}),e.jsx(f,{})]})}const b=o(document.getElementById("root"));b.render(e.jsx(l.StrictMode,{children:e.jsx(j,{})})); +import{j as e,r as i,G as n,c as o,R as l}from"./styles-DGJLjUaE.js";import{W as c}from"./Window-BJy5jSY4.js";function a({className:s=""}){return e.jsx("img",{src:"/scriberr-logo.png",alt:"Scriberr",className:`w-auto select-none ${s}`})}function d(){const[s,r]=i.useState(!1);return e.jsxs("header",{className:"sticky top-0 z-40 bg-white/80 backdrop-blur shadow-soft",children:[e.jsxs("div",{className:"container-narrow py-4 flex items-center justify-between",children:[e.jsx("a",{href:"#",className:"flex items-center gap-3",children:e.jsx(a,{className:"h-8 sm:h-10"})}),e.jsxs("nav",{className:"hidden md:flex items-center gap-6 text-sm text-gray-600",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",children:"API"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Menu",onClick:()=>r(t=>!t),children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:e.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),e.jsx(n,{})]})]}),s&&e.jsx("div",{className:"md:hidden border-t border-gray-200 bg-white",children:e.jsxs("div",{className:"container-narrow py-3 flex flex-col gap-2 text-sm text-gray-700",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"API"})]})})]})}function m(){return e.jsx("section",{className:"relative",children:e.jsxs("div",{className:"container-narrow section text-center",children:[e.jsx("span",{className:"eyebrow mb-3 inline-block",children:"Self-hosted offline audio transcription"}),e.jsx("h1",{className:"headline flex justify-center mb-4",children:e.jsx(a,{className:"h-16 sm:h-20 md:h-24 lg:h-28 xl:h-32"})}),e.jsx("p",{className:"subcopy mt-3 mx-auto max-w-2xl",children:"Transcribe audio locally into text - Summarize and Chat with your audio. No GPU Required."}),e.jsxs("div",{className:"mt-8 flex items-center justify-center gap-3",children:[e.jsx("a",{href:"/docs/installation.html",className:"button-primary",children:"Get Started"}),e.jsx("a",{href:"#features",className:"button-ghost",children:"Learn more"})]}),e.jsx("div",{className:"mt-6 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",onClick:s=>{s.preventDefault(),window.open("https://ko-fi.com/H2H41KQZA3","_blank","noopener,noreferrer")},children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})}),e.jsx("div",{className:"mt-12 max-w-5xl mx-auto",children:e.jsxs("div",{className:"rounded-3xl shadow-soft overflow-hidden bg-white hover-lift",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[e.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),e.jsx("img",{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage",className:"w-full object-cover"})]})}),e.jsxs("div",{className:"mt-6 flex items-center justify-center gap-4 text-xs text-gray-500",children:[e.jsx("span",{children:"Privacy preserving"}),e.jsx("span",{children:"Mobile ready"}),e.jsx("span",{children:"Fast and responsive"})]})]})})}const h=[{title:"Precise transcription",desc:"Tweak advanced transcription parameters to get the best quality output"},{title:"Built-in recorder",desc:"Capture audio directly in-app and transcribe instantly."},{title:"Summarize & chat",desc:"Extract key points or chat over transcripts using LLMs."},{title:"Lightweight notes",desc:"Highlight, annotate, and tag important moments as you listen/read."},{title:"Speaker diarization",desc:"Identify and label distinct speakers in your audio."},{title:"Profiles & presets",desc:"Save configurations for different audio scenarios."}];function x({name:s}){const r="size-4";switch(s){case"Precise transcription":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M12 3v10a3 3 0 1 1-6 0V8"}),e.jsx("path",{d:"M19 10v3a7 7 0 0 1-14 0"})]});case"Built-in recorder":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("rect",{x:"9",y:"9",width:"6",height:"6",rx:"3"}),e.jsx("circle",{cx:"12",cy:"12",r:"9"})]});case"Summarize & chat":return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:e.jsx("path",{d:"M21 15a4 4 0 0 1-4 4H7l-4 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"})});case"Lightweight notes":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M9 7h6M9 12h6M9 17h6"}),e.jsx("rect",{x:"5",y:"3",width:"14",height:"18",rx:"2"})]});case"Speaker diarization":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("circle",{cx:"7",cy:"8",r:"3"}),e.jsx("path",{d:"M2 19a5 5 0 0 1 10 0"}),e.jsx("circle",{cx:"17",cy:"10",r:"2.5"}),e.jsx("path",{d:"M13 19c.5-2.5 2.5-4 5-4"})]});case"Profiles & presets":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M6 3v12"}),e.jsx("path",{d:"M12 3v18"}),e.jsx("path",{d:"M18 3v8"})]});default:return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:e.jsx("path",{d:"M12 6v12m6-6H6"})})}}function p(){return e.jsxs("section",{id:"features",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Capabilities"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"Key Features"}),e.jsx("p",{className:"subcopy mt-2",children:"Curated set of features to manage and work with transcripts."})]}),e.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:h.map(s=>e.jsxs("article",{className:"rounded-2xl p-6 bg-gray-50 shadow-soft hover-lift",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[e.jsx("span",{className:"inline-flex items-center justify-center size-9 rounded-xl bg-gray-100 text-gray-600 shadow-subtle",children:e.jsx(x,{name:s.title})}),e.jsx("h3",{className:"font-medium text-base md:text-lg text-gray-900",children:s.title})]}),e.jsx("p",{className:"subcopy",children:s.desc})]},s.title))})]})}const u=[{title:"Transcript view",desc:"Minimal reading experience with timestamps with playback follow along that highlights currently playing word.",img:"scriberr-transcript page.png",bullets:["Jump from audio timestamp to corresponding word","Jump from text to corresponding audio segment","View transcript as paragraph or as timestamped/speaker segments"]},{title:"Record right in Scriberr",desc:"Capture audio directly in-app and transcribe",img:"scriberr-inbuilt audio recorder for directly recording and transcribing audio within the app.png",bullets:[]},{title:"Summaries at a glance",desc:"Turn long recordings into brief, actionable summaries you can scan in seconds.",img:"scriberr-summarize transcripts.png",bullets:["Write your own custom prompts for summarization","Supports both Ollama/OpenAI (needs API Key) LLM providers","Save multiple summarization presets to reuse quickly"]},{title:"Annotate transcripts",desc:"Highlight important moments, jot down concise notes, and keep insights attached to the exact timestamp.",img:"scriberr-annotate transcript and take notes.png",bullets:["Highlight text to add a note","Timestamped notes allow jumping to exact segment"]},{title:"Advanced controls",desc:"Fine-tune model settings, language, and diarization for optimal results",img:"scriberr-fine tune advanced transcription parameters as you see fit to improve transcription quality.png",bullets:["Language hints and temperature","Diarization and VAD options","Profiles for repeatable setups"]},{title:"Bring your own providers",desc:"Use OpenAI or local models via Ollama for summaries and chat — your keys, your choice.",img:"scriberr-Ollama:openAI llm providers for chat and summarization.png",bullets:["Works with OpenAI or Ollama"]},{title:"Export transcripts",desc:"Download your transcripts in multiple formats",img:"scriberr-download-transcript-in-different-formats.png",bullets:["Export to TXT, Markdown, JSON","Keep timestamps and speaker info"]},{title:"Chat with your transcript",desc:"Ask questions about your recording, extract insights, and clarify details without scrubbing through audio.",img:"scriberr-chat-with-your-recording-transcript.png",bullets:["Works with OpenAI or Ollama"]},{title:"API keys and REST API",desc:"Manage API keys and use the full REST API to build automations or integrate Scriberr into your own applications.",img:"scriberr-api-key-management.png",bullets:["Secure API key management","Endpoints for transcription, chat, notes and more"]},{title:"Transcribe YouTube videos",desc:"Paste a YouTube link to transcribe the audio directly — no downloads required.",img:"scriberr-youtube-video.png",bullets:["Grab insights from talks, podcasts and lectures","Works with summarization and notes"]}];function g(){return e.jsxs("section",{id:"details",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Details"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"A closer look"})]}),e.jsx("div",{className:"space-y-16 md:space-y-24",children:u.map((s,r)=>e.jsxs("div",{className:"grid md:grid-cols-2 gap-8 md:gap-10 items-center",children:[e.jsx("div",{className:r%2===0?"order-1 md:order-1":"order-2 md:order-2",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl md:text-2xl font-semibold text-gray-900",children:s.title}),e.jsx("p",{className:"subcopy mt-2",children:s.desc}),s.bullets&&e.jsx("ul",{className:"mt-4 space-y-2 text-sm text-gray-600 list-disc list-inside",children:s.bullets.map(t=>e.jsx("li",{children:t},t))})]})}),e.jsx("div",{className:r%2===0?"order-2 md:order-2":"order-1 md:order-1",children:e.jsx(c,{src:`/screenshots/${s.img}`,alt:s.title})})]},s.title))})]})}function f(){return e.jsx("footer",{className:"mt-8 bg-gray-50",children:e.jsxs("div",{className:"container-narrow py-10 text-center text-sm text-gray-700",children:[e.jsxs("p",{children:["If you like Scriberr, consider giving the project a star on"," ",e.jsx("a",{href:"https://github.com/rishikanthc/scriberr",target:"_blank",rel:"noreferrer",className:"text-blue-600 hover:text-blue-700 underline-offset-2 hover:underline",children:"GitHub"}),"."]}),e.jsx("div",{className:"mt-4 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})})]})})}function j(){return e.jsxs("div",{className:"min-h-screen flex flex-col",children:[e.jsx(d,{}),e.jsxs("main",{className:"flex-1",children:[e.jsx(m,{}),e.jsx(p,{}),e.jsx(g,{})]}),e.jsx(f,{})]})}const b=o(document.getElementById("root"));b.render(e.jsx(l.StrictMode,{children:e.jsx(j,{})})); diff --git a/web/landing/dist/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png b/web/landing/dist/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png new file mode 100644 index 0000000000000000000000000000000000000000..4c925fec011700f25e001f88843c1a90e90e90f9 GIT binary patch literal 256774 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 z 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℘!$o#)IXF+~Uwb(9bnaH> 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 Ko6h;N^8X82&BYu5 literal 0 HcmV?d00001 diff --git a/web/landing/public/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png b/web/landing/public/screenshots/scriberr-Ollama_openAI llm providers for chat and summarization.png new file mode 100644 index 0000000000000000000000000000000000000000..4c925fec011700f25e001f88843c1a90e90e90f9 GIT binary patch literal 256774 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 z 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℘!$o#)IXF+~Uwb(9bnaH> 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 Ko6h;N^8X82&BYu5 literal 0 HcmV?d00001 diff --git a/web/landing/src/components/Alternating.tsx b/web/landing/src/components/Alternating.tsx index 8d2b34878..b0870781d 100644 --- a/web/landing/src/components/Alternating.tsx +++ b/web/landing/src/components/Alternating.tsx @@ -56,7 +56,7 @@ const items: Item[] = [ { title: "Bring your own providers", desc: "Use OpenAI or local models via Ollama for summaries and chat — your keys, your choice.", - img: "scriberr-Ollama openAI llm providers for chat and summarization.png", + img: "scriberr-Ollama:openAI llm providers for chat and summarization.png", bullets: ["Works with OpenAI or Ollama"], }, {