Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 72aa501a47 |
+3
-8
@@ -24,13 +24,6 @@ kotlin {
|
|||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
named("runtimeClasspath") {
|
named("runtimeClasspath") {
|
||||||
exclude(group = "tools.jackson.core")
|
|
||||||
exclude(group = "tools.jackson.databind")
|
|
||||||
exclude(group = "com.fasterxml.jackson.core")
|
|
||||||
exclude(group = "com.fasterxml.jackson.databind")
|
|
||||||
exclude(group = "com.fasterxml.jackson.datatype")
|
|
||||||
exclude(group = "com.fasterxml.jackson.dataformat")
|
|
||||||
exclude(group = "com.fasterxml.jackson.module")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,7 +38,9 @@ configurations.all {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(platform("org.springframework.boot:spring-boot-dependencies:4.1.0"))
|
implementation(platform("org.springframework.boot:spring-boot-dependencies:4.1.0"))
|
||||||
implementation("org.springframework.boot:spring-boot-starter-webmvc")
|
implementation("org.springframework.boot:spring-boot-starter-webmvc") {
|
||||||
|
exclude(group = "org.springframework.boot", module = "spring-boot-starter-jackson")
|
||||||
|
}
|
||||||
implementation("org.springframework.boot:spring-boot-starter-jdbc")
|
implementation("org.springframework.boot:spring-boot-starter-jdbc")
|
||||||
implementation("org.springframework.boot:spring-boot-starter-flyway")
|
implementation("org.springframework.boot:spring-boot-starter-flyway")
|
||||||
implementation("org.flywaydb:flyway-database-postgresql")
|
implementation("org.flywaydb:flyway-database-postgresql")
|
||||||
|
|||||||
@@ -1,18 +1,19 @@
|
|||||||
CREATE SCHEMA IF NOT EXISTS media_mirror;
|
CREATE SCHEMA IF NOT EXISTS media_mirror;
|
||||||
|
CREATE TABLE media_mirror.jobs (
|
||||||
CREATE TABLE IF NOT EXISTS media_mirror.jobs (
|
|
||||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
item_id text NOT NULL,
|
item_id text NOT NULL, -- itemId из Jellyfin
|
||||||
source_url text NOT NULL,
|
source_url text NOT NULL, -- URL исходника (jellyfin stream)
|
||||||
source_type text NOT NULL DEFAULT 'jellyfin',
|
source_type text NOT NULL DEFAULT 'jellyfin',
|
||||||
status text NOT NULL DEFAULT 'new',
|
status text NOT NULL DEFAULT 'new', -- new | processing | done | failed | cancelled
|
||||||
progress int NOT NULL DEFAULT 0,
|
progress int NOT NULL DEFAULT 0, -- 0..100
|
||||||
video_key text,
|
video_key text, -- S3-ключ видео (после done)
|
||||||
audio_keys jsonb,
|
audio_keys jsonb, -- [{key, title, language, index}]
|
||||||
error text,
|
error text,
|
||||||
created_at timestamptz NOT NULL DEFAULT now(),
|
created_at timestamptz NOT NULL DEFAULT now(),
|
||||||
updated_at timestamptz NOT NULL DEFAULT now(),
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
||||||
taken_at timestamptz
|
taken_at timestamptz
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_jobs_status ON media_mirror.jobs (status, created_at);
|
CREATE INDEX IF NOT EXISTS idx_jobs_status ON media_mirror.jobs (status, created_at);
|
||||||
|
CREATE UNIQUE INDEX IF NOT EXISTS uq_jobs_active_item
|
||||||
|
ON media_mirror.jobs (item_id)
|
||||||
|
WHERE status NOT IN ('failed', 'cancelled');
|
||||||
|
|||||||
Reference in New Issue
Block a user