Release Tracker - Scene
CREATE TABLE watchlist ( user_id INTEGER REFERENCES users(id), keyword TEXT, -- e.g., "Windows 11 PRO", "Marvel" group_name TEXT, -- e.g., "EVILBUD" PRIMARY KEY (user_id, keyword, group_name) ); Header: Logo + search bar + category pills (Movies | TV | Music | Games)
class Release(BaseModel): name: str group: str category: str date: datetime scene release tracker
CREATE TABLE users ( id SERIAL PRIMARY KEY, email TEXT UNIQUE, discord_webhook TEXT, telegram_chat_id TEXT ); "Windows 11 PRO"
import requests from fastapi import FastAPI from pydantic import BaseModel from datetime import datetime from typing import List app = FastAPI() "Marvel" group_name TEXT
@app.get("/api/releases", response_model=List[Release]) def get_releases(limit: int = 50): # Example: scrape predb.me RSS or JSON (if available) # Note: predb.me does not have official API, this is illustrative url = "https://predb.me/?rss=1" response = requests.get(url) # parse XML, extract titles like "Movie.Name.2024.1080p.WEB-DL.DDP5.1.EVILBUD" # then split by . to guess group (last part) releases = [] # ... parsing logic omitted for brevity return releases[:limit]
[IRC scraper] ─┐ [PreDB API] ─┼─→ [Normalizer] ─→ [PostgreSQL/DB] ─→ [Web Frontend] [RSS parser] ─┘ │ └──→ [Notification worker] CREATE TABLE releases ( id SERIAL PRIMARY KEY, release_name TEXT UNIQUE NOT NULL, category VARCHAR(20), -- movies, tv, music, games, apps, xxx group_name VARCHAR(50), size_mb INTEGER, release_date TIMESTAMP WITH TIME ZONE, nfo_preview TEXT, source_url TEXT, created_at TIMESTAMP DEFAULT NOW() ); CREATE INDEX idx_release_date ON releases(release_date DESC); CREATE INDEX idx_group_name ON releases(group_name);