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
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.
Krok 2: Ustaw klucz fansuby
Terminal export FANSUBY_KEY="fsb_…"Klucz utworzysz w ustawieniach konta. W PowerShellu wpisz
$env:FANSUBY_KEY="fsb_…".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")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 6Skrypt sprawdza co pół godziny. Zostaw go w tle (w
tmux,screenalbo 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.