Files
meta-feeder-opensubtitles/feeder-plugin/opensubtitles-feeder/src/main.rs
T
Worph 2f3ca57322
Publish image / publish (push) Failing after 14s
improve compute API
2026-09-13 14:31:17 +02:00

38 lines
1.6 KiB
Rust

//! `opensubtitles-feeder` — the OpenSubtitles subtitle search feeder.
//!
//! Serves `fileType:subtitle`. Needs an OpenSubtitles API key (config page or
//! `OPENSUBTITLES_API_KEY`); without one it stays registered but degraded and
//! answers every query with nothing. An account login additionally lets the
//! gateway redeem (download) subtitle files.
//!
//! Env:
//! - `META_FEEDER_HTTP_LISTEN` — listen addr (default `0.0.0.0:8080`)
//! - `META_FEEDER_STATE_DIR` — per-plugin cache root (default `/data/meta-feeder`)
//! - `OPENSUBTITLES_API_KEY` — seed API key (the config page overrides it)
//! - `OPENSUBTITLES_USER_AGENT` — seed User-Agent (OpenSubtitles wants `App vX.Y`)
//! - `OPENSUBTITLES_USERNAME` / `OPENSUBTITLES_PASSWORD` — seed account login (downloads)
//! - `RUST_LOG` — tracing filter (default `info`)
use std::net::SocketAddr;
use meta_feeder_sdk::plugin::FeederPlugin;
use meta_feeder_sdk::serve_feeders;
use opensubtitles_feeder::plugin::OpenSubtitlesPlugin;
use tracing_subscriber::EnvFilter;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
tracing_subscriber::fmt()
.with_env_filter(EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info")))
.init();
let listen: SocketAddr = std::env::var("META_FEEDER_HTTP_LISTEN")
.unwrap_or_else(|_| "0.0.0.0:8080".to_string())
.parse()?;
let state_dir =
std::env::var("META_FEEDER_STATE_DIR").unwrap_or_else(|_| "/data/meta-feeder".to_string());
let plugins: Vec<Box<dyn FeederPlugin>> = vec![Box::new(OpenSubtitlesPlugin::from_env())];
serve_feeders(plugins, state_dir, listen).await
}