Przejdź do treści
fansuby

API / Poradniki

Powiadomienie na Discordzie

Na kanale pojawia się wiadomość z linkami, kiedy ktoś doda napisy do odcinka, na który czekasz.

  • 10 minut
  • Python 3
  • klucz API
  • serwer Discorda
Ten skrypt też korzysta z fansuby_sub.py z poradnika Napisy do jednego pliku wideo. Trzymaj oba pliki w jednym katalogu.

Zrób to

  1. Krok 1: Utwórz webhook na Discordzie

    Otwórz ustawienia kanału, wybierz Integracje, potem Webhooki i Nowy webhook. Skopiuj jego adres i zapisz w zmiennej.

    Terminal
    export DISCORD_WEBHOOK="https://discord.com/api/webhooks/…"

    Adres webhooka pozwala pisać na kanale, więc traktuj go jak hasło.

  2. Krok 2: Ustaw klucz fansuby

    Terminal
    export FANSUBY_KEY="fsb_…"

    Klucz utworzysz w ustawieniach konta. W PowerShellu wpisz $env:FANSUBY_KEY="fsb_…".

  3. Krok 3: Zapisz skrypt

    Wklej kod do pliku fansuby_watch.py.

    fansuby_watch.py
    #!/usr/bin/env python3
    """Czeka na napisy do odcinka i daje znać na Discordzie (webhook)."""
    import os
    import sys
    import time
    
    import requests
    
    from fansuby_sub import API, get
    
    anilist_id, episode = sys.argv[1], sys.argv[2]
    every = int(os.environ.get("CHECK_EVERY", "1800"))  # sekundy; co pół godziny wystarczy
    
    while True:
        res = get(f"{API}/subtitles", params={"anilistId": anilist_id, "episode": episode})
        res.raise_for_status()
        items = res.json()["data"]
        if items:
            break
        time.sleep(every)
    
    lines = [f"{s['releaseGroup']} {s['resolution'] or ''} ({s['format']}): {s['url']}" for s in items[:5]]
    text = f"Są napisy do odcinka {episode}:\n" + "\n".join(lines)
    requests.post(os.environ["DISCORD_WEBHOOK"], json={"content": text}, timeout=15).raise_for_status()
    print("wysłano")
  4. Krok 4: Uruchom go dla odcinka

    Podajesz AniList ID serii (liczba z adresu anilist.co/anime/154587) i numer odcinka.

    Terminal
    python3 fansuby_watch.py 154587 6

    Skrypt sprawdza co pół godziny. Zostaw go w tle (w tmux, screen albo jako usługę systemd). Po wysłaniu wiadomości kończy pracę.

    Wiadomość na kanale
    Są napisy do odcinka 6:
    SubsPlease 1080p (ass): https://fansuby.cc/napisy/42

Warto wiedzieć

Pół godziny to rozsądny odstęp. Częstsze sprawdzanie nic nie da, a zużywa limit zapytań. Zmienisz go zmienną CHECK_EVERY (w sekundach). Jeśli chcesz tylko śledzić nowości, możesz zamiast tego użyć kanału RSS serii.

Co dalej

↑↓ wybórEnter otwórz