Compare commits
2 Commits
4efdce8983
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| ac7241b1b9 | |||
| b7628ab316 |
@@ -1,5 +1,5 @@
|
|||||||
# ============================================
|
# ============================================
|
||||||
# TranscriptorIO Configuration
|
# Transcriptarr Configuration
|
||||||
# ============================================
|
# ============================================
|
||||||
#
|
#
|
||||||
# IMPORTANT: Most configuration is now stored in the database
|
# IMPORTANT: Most configuration is now stored in the database
|
||||||
|
|||||||
50
.github/workflows/build_CPU.yml
vendored
50
.github/workflows/build_CPU.yml
vendored
@@ -1,50 +0,0 @@
|
|||||||
name: Build_Subgen_Dockerfile_CPU
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths:
|
|
||||||
- 'requirements.txt'
|
|
||||||
- 'Dockerfile.cpu'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
docker:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Get version from transcriptarr.py
|
|
||||||
id: get_version
|
|
||||||
run: |
|
|
||||||
version=$(grep -oP "subgen_version\s*=\s*'\K[^']+" subgen.py)
|
|
||||||
echo "version=$version" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
with:
|
|
||||||
#platforms: all
|
|
||||||
image: tonistiigi/binfmt:qemu-v7.0.0
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build and push CPU Docker image
|
|
||||||
uses: docker/build-push-action@v5
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
file: ./Dockerfile.cpu
|
|
||||||
push: true
|
|
||||||
tags: |
|
|
||||||
mccloud/subgen:cpu
|
|
||||||
mccloud/subgen:${{ env.version }}-cpu
|
|
||||||
39
.github/workflows/build_GPU.yml
vendored
39
.github/workflows/build_GPU.yml
vendored
@@ -1,39 +0,0 @@
|
|||||||
name: Build_Subgen_Dockerfile_GPU
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths:
|
|
||||||
- 'requirements.txt'
|
|
||||||
- 'Dockerfile'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
docker:
|
|
||||||
runs-on: [self-hosted]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Get version from transcriptarr.py
|
|
||||||
id: get_version
|
|
||||||
run: |
|
|
||||||
version=$(grep -oP "subgen_version\s*=\s*'\K[^']+" subgen.py)
|
|
||||||
echo "version=$version" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build and push GPU Docker image
|
|
||||||
uses: docker/build-push-action@v5
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
push: true
|
|
||||||
tags: |
|
|
||||||
mccloud/subgen:latest
|
|
||||||
mccloud/subgen:${{ env.version }}
|
|
||||||
55
.github/workflows/calver.yml
vendored
55
.github/workflows/calver.yml
vendored
@@ -1,55 +0,0 @@
|
|||||||
name: Update_CalVer_Amend
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- 'main'
|
|
||||||
paths:
|
|
||||||
- '../../transcriptarr.py'
|
|
||||||
workflow_dispatch: # Allow manual triggering
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
docker:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
fetch-depth: 0 # Crucial for getting full history
|
|
||||||
|
|
||||||
- name: Calculate version
|
|
||||||
id: version
|
|
||||||
run: |
|
|
||||||
YEAR=$(date +%Y)
|
|
||||||
MONTH=$(date +%m)
|
|
||||||
COMMIT_COUNT=$(git rev-list --count HEAD --since="$YEAR-$MONTH-01")
|
|
||||||
echo "COMMIT_COUNT=$COMMIT_COUNT"
|
|
||||||
echo "VERSION=${YEAR}.${MONTH}.${COMMIT_COUNT}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Update transcriptarr.py with version
|
|
||||||
run: |
|
|
||||||
sed -i "s/subgen_version =.*/subgen_version = '${{ env.VERSION }}'/" subgen.py
|
|
||||||
|
|
||||||
- name: Check if transcriptarr.py was actually changed (compare with HEAD)
|
|
||||||
id: check_change
|
|
||||||
run: |
|
|
||||||
if git diff --quiet HEAD subgen.py; then
|
|
||||||
echo "::set-output name=changed::false"
|
|
||||||
else
|
|
||||||
echo "::set-output name=changed::true"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Amend commit if transcriptarr.py changed
|
|
||||||
if: steps.check_change.outputs.changed == 'true'
|
|
||||||
env:
|
|
||||||
GIT_AUTHOR_NAME: "McCloudS"
|
|
||||||
GIT_AUTHOR_EMAIL: "scott@mccloud.dev"
|
|
||||||
run: |
|
|
||||||
git config user.name "${GIT_AUTHOR_NAME}"
|
|
||||||
git config user.email "${GIT_AUTHOR_EMAIL}"
|
|
||||||
|
|
||||||
git add subgen.py
|
|
||||||
git commit --amend --reuse-message=HEAD --author="${GIT_AUTHOR_NAME} <${GIT_AUTHOR_EMAIL}>" # Amend the last commit
|
|
||||||
|
|
||||||
# Push with force-with-lease (safer than --force)
|
|
||||||
git push --force-with-lease origin HEAD:main
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# 🎬 TranscriptorIO
|
# 🎬 Transcriptarr
|
||||||
|
|
||||||
**AI-powered subtitle transcription service with REST API and Web UI**
|
**AI-powered subtitle transcription service with REST API and Web UI**
|
||||||
|
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
[](https://vuejs.org/)
|
[](https://vuejs.org/)
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
|
|
||||||
TranscriptorIO is an AI-powered subtitle transcription service based on [Subgen](https://github.com/McCloudS/subgen), featuring a modern FastAPI backend with 45+ REST endpoints, a Vue 3 web interface, and a distributed worker pool architecture.
|
Transcriptarr is an AI-powered subtitle transcription service based on [Subgen](https://github.com/McCloudS/subgen), featuring a modern FastAPI backend with 45+ REST endpoints, a Vue 3 web interface, and a distributed worker pool architecture.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# TranscriptorIO REST API
|
# Transcriptarr REST API
|
||||||
|
|
||||||
Documentación completa de las APIs REST del backend de TranscriptorIO.
|
Documentación completa de las APIs REST del backend de Transcriptarr.
|
||||||
|
|
||||||
## 🚀 Inicio Rápido
|
## 🚀 Inicio Rápido
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ Información básica de la API.
|
|||||||
**Response:**
|
**Response:**
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"name": "TranscriptorIO API",
|
"name": "Transcriptarr API",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"status": "running"
|
"status": "running"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
"""TranscriptorIO Backend Package."""
|
"""Transcriptarr Backend Package."""
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"""API module for TranscriptorIO backend."""
|
"""API module for Transcriptarr backend."""
|
||||||
from backend.api.workers import router as workers_router
|
from backend.api.workers import router as workers_router
|
||||||
from backend.api.jobs import router as jobs_router
|
from backend.api.jobs import router as jobs_router
|
||||||
from backend.api.scan_rules import router as scan_rules_router
|
from backend.api.scan_rules import router as scan_rules_router
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"""Main FastAPI application for TranscriptorIO backend."""
|
"""Main FastAPI application for Transcriptarr backend."""
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
from contextlib import asynccontextmanager
|
from contextlib import asynccontextmanager
|
||||||
@@ -47,7 +47,7 @@ async def lifespan(app: FastAPI):
|
|||||||
- Graceful shutdown
|
- Graceful shutdown
|
||||||
"""
|
"""
|
||||||
# === STARTUP ===
|
# === STARTUP ===
|
||||||
logger.info("=== TranscriptorIO Backend Starting ===")
|
logger.info("=== Transcriptarr Backend Starting ===")
|
||||||
|
|
||||||
# Initialize database
|
# Initialize database
|
||||||
logger.info("Initializing database...")
|
logger.info("Initializing database...")
|
||||||
@@ -158,12 +158,12 @@ async def lifespan(app: FastAPI):
|
|||||||
else:
|
else:
|
||||||
logger.info("File watcher enabled but no library paths configured")
|
logger.info("File watcher enabled but no library paths configured")
|
||||||
|
|
||||||
logger.info("=== TranscriptorIO Backend Started ===")
|
logger.info("=== Transcriptarr Backend Started ===")
|
||||||
|
|
||||||
yield
|
yield
|
||||||
|
|
||||||
# === SHUTDOWN ===
|
# === SHUTDOWN ===
|
||||||
logger.info("=== TranscriptorIO Backend Shutting Down ===")
|
logger.info("=== Transcriptarr Backend Shutting Down ===")
|
||||||
|
|
||||||
# Stop library scanner first (quick operations)
|
# Stop library scanner first (quick operations)
|
||||||
logger.info("Stopping library scanner...")
|
logger.info("Stopping library scanner...")
|
||||||
@@ -180,12 +180,12 @@ async def lifespan(app: FastAPI):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(f"Error stopping worker pool: {e}")
|
logger.warning(f"Error stopping worker pool: {e}")
|
||||||
|
|
||||||
logger.info("=== TranscriptorIO Backend Stopped ===")
|
logger.info("=== Transcriptarr Backend Stopped ===")
|
||||||
|
|
||||||
|
|
||||||
# Create FastAPI app
|
# Create FastAPI app
|
||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
title="TranscriptorIO API",
|
title="Transcriptarr API",
|
||||||
description="AI-powered subtitle transcription service",
|
description="AI-powered subtitle transcription service",
|
||||||
version="1.0.0",
|
version="1.0.0",
|
||||||
lifespan=lifespan
|
lifespan=lifespan
|
||||||
@@ -278,7 +278,7 @@ else:
|
|||||||
async def root():
|
async def root():
|
||||||
"""Root endpoint - API info."""
|
"""Root endpoint - API info."""
|
||||||
return {
|
return {
|
||||||
"name": "TranscriptorIO API",
|
"name": "Transcriptarr API",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"status": "running",
|
"status": "running",
|
||||||
"message": "Frontend not built. Access API docs at /docs"
|
"message": "Frontend not built. Access API docs at /docs"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""CLI entry point for TranscriptorIO backend."""
|
"""CLI entry point for Transcriptarr backend."""
|
||||||
import argparse
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
@@ -15,7 +15,7 @@ def main():
|
|||||||
"""Main CLI entry point."""
|
"""Main CLI entry point."""
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description="TranscriptorIO - AI-powered subtitle transcription service"
|
description="Transcriptarr - AI-powered subtitle transcription service"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Subcommands
|
# Subcommands
|
||||||
@@ -113,7 +113,7 @@ def main():
|
|||||||
|
|
||||||
def run_server(args):
|
def run_server(args):
|
||||||
"""Run FastAPI server."""
|
"""Run FastAPI server."""
|
||||||
print(f"🚀 Starting TranscriptorIO server on {args.host}:{args.port}")
|
print(f"🚀 Starting Transcriptarr server on {args.host}:{args.port}")
|
||||||
print(f"📖 API docs available at: http://{args.host}:{args.port}/docs")
|
print(f"📖 API docs available at: http://{args.host}:{args.port}/docs")
|
||||||
|
|
||||||
uvicorn.run(
|
uvicorn.run(
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"""Configuration management for TranscriptorIO.
|
"""Configuration management for Transcriptarr.
|
||||||
|
|
||||||
Most configuration is now stored in the database and managed through the
|
Most configuration is now stored in the database and managed through the
|
||||||
Settings service. Only DATABASE_URL is loaded from environment variables.
|
Settings service. Only DATABASE_URL is loaded from environment variables.
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
"""TranscriptorIO Core Module."""
|
"""Transcriptarr Core Module."""
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
"""Database models for TranscriptorIO."""
|
"""Database models for Transcriptarr."""
|
||||||
import uuid
|
import uuid
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class SetupWizard:
|
|||||||
True if setup completed successfully
|
True if setup completed successfully
|
||||||
"""
|
"""
|
||||||
print("\n" + "=" * 70)
|
print("\n" + "=" * 70)
|
||||||
print(" 🎬 TranscriptorIO - First Run Setup Wizard")
|
print(" 🎬 Transcriptarr - First Run Setup Wizard")
|
||||||
print("=" * 70 + "\n")
|
print("=" * 70 + "\n")
|
||||||
|
|
||||||
# Step 1: Select mode
|
# Step 1: Select mode
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# TranscriptorIO REST API
|
# Transcriptarr REST API
|
||||||
|
|
||||||
Complete documentation for the TranscriptorIO backend REST API.
|
Complete documentation for the Transcriptarr backend REST API.
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ Root endpoint - API info or frontend (if built).
|
|||||||
**Response (API mode):**
|
**Response (API mode):**
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"name": "TranscriptorIO API",
|
"name": "Transcriptarr API",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"status": "running",
|
"status": "running",
|
||||||
"message": "Frontend not built. Access API docs at /docs"
|
"message": "Frontend not built. Access API docs at /docs"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# TranscriptorIO Backend Architecture
|
# Transcriptarr Backend Architecture
|
||||||
|
|
||||||
Technical documentation of the backend architecture, components, and data flow.
|
Technical documentation of the backend architecture, components, and data flow.
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Technical documentation of the backend architecture, components, and data flow.
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
TranscriptorIO is built with a modular architecture consisting of:
|
Transcriptarr is built with a modular architecture consisting of:
|
||||||
|
|
||||||
- **FastAPI Server**: REST API with 45+ endpoints
|
- **FastAPI Server**: REST API with 45+ endpoints
|
||||||
- **Worker Pool**: Multiprocessing-based transcription workers (CPU/GPU)
|
- **Worker Pool**: Multiprocessing-based transcription workers (CPU/GPU)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# TranscriptorIO Configuration
|
# Transcriptarr Configuration
|
||||||
|
|
||||||
Complete documentation for the configuration system.
|
Complete documentation for the configuration system.
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ Complete documentation for the configuration system.
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
TranscriptorIO uses a **database-backed configuration system**. All settings are stored in the `system_settings` table and can be managed through:
|
Transcriptarr uses a **database-backed configuration system**. All settings are stored in the `system_settings` table and can be managed through:
|
||||||
|
|
||||||
1. **Setup Wizard** (first run)
|
1. **Setup Wizard** (first run)
|
||||||
2. **Web UI** (Settings page)
|
2. **Web UI** (Settings page)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# TranscriptorIO Frontend
|
# Transcriptarr Frontend
|
||||||
|
|
||||||
Technical documentation for the Vue 3 frontend application.
|
Technical documentation for the Vue 3 frontend application.
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ Technical documentation for the Vue 3 frontend application.
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
The TranscriptorIO frontend is a Single Page Application (SPA) built with Vue 3, featuring:
|
The Transcriptarr frontend is a Single Page Application (SPA) built with Vue 3, featuring:
|
||||||
|
|
||||||
- **6 Complete Views**: Dashboard, Queue, Scanner, Rules, Workers, Settings
|
- **6 Complete Views**: Dashboard, Queue, Scanner, Rules, Workers, Settings
|
||||||
- **Real-time Updates**: Polling-based status updates
|
- **Real-time Updates**: Polling-based status updates
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# TranscriptorIO Frontend
|
# Transcriptarr Frontend
|
||||||
|
|
||||||
Vue 3 + TypeScript + Vite frontend for TranscriptorIO.
|
Vue 3 + TypeScript + Vite frontend for Transcriptarr.
|
||||||
|
|
||||||
## 🚀 Quick Start
|
## 🚀 Quick Start
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<link rel="icon" href="/favicon.ico">
|
<link rel="icon" href="/favicon.ico">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>TranscriptorIO</title>
|
<title>Transcriptarr</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "transcriptorio-ui",
|
"name": "transcriptorio-ui",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "TranscriptorIO Web UI - Vue 3 Frontend",
|
"description": "Transcriptarr Web UI - Vue 3 Frontend",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "🎬 TranscriptorIO Frontend - Setup Script"
|
echo "🎬 Transcriptarr Frontend - Setup Script"
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="header-content">
|
<div class="header-content">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<h1>🎬 TranscriptorIO</h1>
|
<h1>🎬 Transcriptarr</h1>
|
||||||
<span class="subtitle">AI-Powered Subtitle Transcription</span>
|
<span class="subtitle">AI-Powered Subtitle Transcription</span>
|
||||||
</div>
|
</div>
|
||||||
<nav class="main-nav">
|
<nav class="main-nav">
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
<footer class="app-footer">
|
<footer class="app-footer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<p>© 2026 TranscriptorIO | Powered by Whisper AI</p>
|
<p>© 2026 Transcriptarr | Powered by Whisper AI</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,14 +2,14 @@
|
|||||||
<div class="setup-wizard-overlay">
|
<div class="setup-wizard-overlay">
|
||||||
<div class="wizard-container">
|
<div class="wizard-container">
|
||||||
<div class="wizard-header">
|
<div class="wizard-header">
|
||||||
<h1>🎬 Welcome to TranscriptorIO</h1>
|
<h1>🎬 Welcome to Transcriptarr</h1>
|
||||||
<p>Let's get you set up in just a few steps</p>
|
<p>Let's get you set up in just a few steps</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Step 1: Choose Mode -->
|
<!-- Step 1: Choose Mode -->
|
||||||
<div v-if="currentStep === 1" class="wizard-step">
|
<div v-if="currentStep === 1" class="wizard-step">
|
||||||
<h2>Choose Operation Mode</h2>
|
<h2>Choose Operation Mode</h2>
|
||||||
<p class="step-description">How would you like to use TranscriptorIO?</p>
|
<p class="step-description">How would you like to use Transcriptarr?</p>
|
||||||
|
|
||||||
<div class="mode-cards">
|
<div class="mode-cards">
|
||||||
<div
|
<div
|
||||||
@@ -150,7 +150,7 @@
|
|||||||
<!-- Scanner Configuration -->
|
<!-- Scanner Configuration -->
|
||||||
<div class="config-section">
|
<div class="config-section">
|
||||||
<h3 class="section-title">⏰ Automatic Scanning</h3>
|
<h3 class="section-title">⏰ Automatic Scanning</h3>
|
||||||
<p class="section-description">How often should TranscriptorIO scan your libraries for new content?</p>
|
<p class="section-description">How often should Transcriptarr scan your libraries for new content?</p>
|
||||||
|
|
||||||
<div class="scanner-config">
|
<div class="scanner-config">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
<!-- Step 2b: Bazarr Slave Configuration -->
|
<!-- Step 2b: Bazarr Slave Configuration -->
|
||||||
<div v-if="currentStep === 2 && selectedMode === 'bazarr_slave'" class="wizard-step">
|
<div v-if="currentStep === 2 && selectedMode === 'bazarr_slave'" class="wizard-step">
|
||||||
<h2>Bazarr Provider Configuration</h2>
|
<h2>Bazarr Provider Configuration</h2>
|
||||||
<p class="step-description">Use these details to add TranscriptorIO as a provider in Bazarr</p>
|
<p class="step-description">Use these details to add Transcriptarr as a provider in Bazarr</p>
|
||||||
|
|
||||||
<div v-if="bazarrInfo" class="bazarr-info-card">
|
<div v-if="bazarrInfo" class="bazarr-info-card">
|
||||||
<div class="info-section">
|
<div class="info-section">
|
||||||
@@ -319,7 +319,7 @@
|
|||||||
|
|
||||||
<div class="info-section">
|
<div class="info-section">
|
||||||
<h3>Provider Type</h3>
|
<h3>Provider Type</h3>
|
||||||
<code>TranscriptorIO (Whisper AI)</code>
|
<code>Transcriptarr (Whisper AI)</code>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="info-instructions">
|
<div class="info-instructions">
|
||||||
@@ -346,7 +346,7 @@
|
|||||||
<div v-if="currentStep === 5" class="wizard-step completion">
|
<div v-if="currentStep === 5" class="wizard-step completion">
|
||||||
<div class="completion-icon">✅</div>
|
<div class="completion-icon">✅</div>
|
||||||
<h2>Setup Complete!</h2>
|
<h2>Setup Complete!</h2>
|
||||||
<p>TranscriptorIO is ready to use</p>
|
<p>Transcriptarr is ready to use</p>
|
||||||
<button @click="finishSetup" class="btn btn-primary btn-lg">
|
<button @click="finishSetup" class="btn btn-primary btn-lg">
|
||||||
Go to Dashboard →
|
Go to Dashboard →
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ const router = createRouter({
|
|||||||
})
|
})
|
||||||
|
|
||||||
router.beforeEach((to, _from, next) => {
|
router.beforeEach((to, _from, next) => {
|
||||||
document.title = `${to.meta.title || 'TranscriptorIO'} - TranscriptorIO`
|
document.title = `${to.meta.title || 'Transcriptarr'} - Transcriptarr`
|
||||||
next()
|
next()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user