Typy źródeł

Do filtrów przychodzących używaj dokładnej nazwy źródła z danych, a przed wysyłaniem wiadomości z powrotem poznaj rodzinę celu.

Czym jest type?

type jest kanonicznym identyfikatorem źródła w przychodzących danych Social Stream. Nakładki, filtry URL, API i Event Flow używają go do rozróżniania platform i wariantów źródeł.

{
  "type": "youtubeshorts",
  "chatname": "Ava",
  "chatmessage": "Hello from Shorts"
}
Nazwa Znaczenie Z czym nie należy tego mylić
type Źródło przychodzących danych, na przykład youtube lub instagramlive. Etykietą wyświetlaną, trybem połączenia ani nazwą zdarzenia.
event Co się wydarzyło, na przykład superchat, gift lub viewer_update. Platforma, która je utworzyła.
sourceName Opcjonalna nazwa wyświetlana kanału, pokoju lub źródła. Stała wartość używana przez wyzwalacz From Source.
tid Identyfikator karty lub okna źródła aplikacji komputerowej, z którego pochodzą dane, używany do odpowiedzi i wykluczania źródła. Typem platformy.
Aplikacja komputerowa target Zapisana kategoria służąca do wyboru adresu URL, trybu i skryptu przechwytywania. Gwarancją, że wszystkie emitowane dane mają ten sam ciąg znaków.

Ważne: W Event Flow Ze źródła (From Source) wyzwalacz porównuje skonfigurowaną wartość bezpośrednio z message.type. Użyj dokładnej wartości z danych, zapisanej małymi literami.

Częste i mylące typy

Nazwa trybu przechwytywania lub w interfejsie Typ danych Dlaczego może zaskakiwać
Czat na żywo YouTube youtube DOM, odpytywanie API i WebSocket/streaming opisują transport, a nie oddzielne typy.
Czat transmisji YouTube Shorts youtubeshorts Jest odrębny w filtrach przychodzących i celach przekazywania Event Flow, natomiast wspólne ustawienia YouTube w razie potrzeby nadal traktują oba warianty jako jedną rodzinę.
Instagram Live / InstaFeed live instagramlive Komentarze pod postami i w aktualnościach Instagrama używają instagram.
TikFinity tiktok TikFinity jest łącznikiem; znormalizowaną platformą pozostaje TikTok.
X xlub starsze twitter z opcją oznaczenia marką Twitter Istniejące filtry mogą celowo zachowywać starszą nazwę.
Regionalne warianty Bilibili bilibili Cele i skrypty aplikacji komputerowej mogą mieć nazwy bilibilicom lub bilibilitv, podczas gdy dane są normalizowane.
Zdarzenia systemowe OBS obs Nie są źródłami czatu, ale mogą trafiać do Event Flow ze zdarzeniami takimi jak scene_changed.

Użyj Dokumentacja wydarzeń do kontraktu pól oraz Obsługiwane witryny do publicznych nazw konfiguracji platform.

YouTube Shorts i Event Flow

Dopasowanie danych przychodzących jest dokładne: użyj youtubeshorts w wyzwalaczu From Source dla wiadomości Shorts, a youtube do zwykłego czatu transmisji YouTube.

Dopasowanie danych wychodzących również jest dokładne: Relay Chat traktuje je jako oddzielne cele.

  • Cel youtube wysyła tylko do zwykłych okien czatu transmisji YouTube.
  • Cel youtubeshorts wysyła tylko do okien czatu transmisji YouTube Shorts.
  • Aby dotrzeć do obu, dodaj po jednej akcji dla każdego celu albo przekaż do wszystkich platform z wykluczeniem źródła.

Inne ustawienia obejmujące całe YouTube mogą celowo traktować oba typy jako jedną rodzinę platformy. Nie zmienia to dokładnego dopasowania Event Flow opisanego powyżej.

Rozwiązywanie problemów ze starszymi wersjami

Starsze wersje grupowały oba cele przekazywania, więc dwie akcje mogły wysyłać dwa razy do każdego okna YouTube. Jeśli tak się dzieje, zaktualizuj Social Stream Ninja. Reflection Filter zapobiega pętlom przekazywania, ale nie naprawia nakładającego się dopasowywania celów w tych starszych wersjach.

Edytor Event Flow Social Stream Ninja z połączonymi węzłami wyzwalacza, filtra i akcji
From Source odczytuje typ przychodzących danych; Relay Chat wybiera docelowe okna źródeł.

Przejdź do Przewodnik po Event Flow lub Poradnik konfiguracji YouTube.

Instagram Live a komentarze na Instagramie

Użyj instagramlive do czatu pokoju na żywo przechwytywanego przez źródło Instagram Live lub InstaFeed live. Użyj instagram do komentarzy w aktualnościach, pod postami lub statycznych, poza transmisją na żywo.

  • Przepływ czatu na żywo: From Source = instagramlive.
  • Przepływ postów/komentarzy: From Source = instagram.
  • Oba: użyj dwóch wyzwalaczy prowadzących do jednej wspólnej akcji albo wyzwalacza Any Source, po którym następuje filtr uwzględniający typ.

Widoczna marka Instagram nie wystarcza do wyboru typu; te dwa warianty rozróżnia kontekst treści.

Źródła ogólne, niestandardowe i bez nazwy

sources/generic.js jest uniwersalnym awaryjnym przechwytywaniem DOM. Szuka typowych wierszy czatu, nazw, wiadomości, awatarów i pól wpisywania. Zaczyna od generic, a następnie zwykle wyprowadza typ zapisany małymi literami ze znanej platformy lub nazwy hosta strony.

  • Użyj go, aby potwierdzić możliwość przechwytywania zwykłego czatu DOM, zanim napiszesz dedykowane źródło.
  • Nie oczekuj niezawodnej obsługi zdarzeń, moderacji, usuwania, wirtualizowanych list ani zamkniętego shadow DOM.
  • Typ wyprowadzony z nazwy hosta jest wygodny, ale nie stanowi trwałego publicznego kontraktu. Sprawdź emitowane dane, zanim zbudujesz na nim filtry.
  • Jeśli źródło nie ma ustalonej nazwy platformy, wybierz jedną stałą wartość zapisaną małymi literami type. Użyj sourceName do czytelnej dla użytkownika etykiety pokoju lub kanału.
  • Jeśli nie istnieje jeszcze stabilna tożsamość, generic jest bezpieczniejsze niż zmienianie typu dla każdej wiadomości. Zewnętrzne integracje często używają świadomie wybranej wartości, takiej jak external.

Gdy użytkownicy, nakładki lub przepływy zaczną zależeć od nowego typu, udokumentuj go w Dokumentacja wydarzeń zamiast zmieniać jego nazwę bez powiadomienia.

Wstrzykiwanie skryptów w aplikacji komputerowej

Aplikacja komputerowa zapisuje target, wybiera co najmniej jeden sourceFile/sourceFiles, otwiera okno źródła i wstrzykuje wspólne skrypty przechwytywania z tego projektu. Most zgodności z Chrome runtime przenosi przechwycone wiadomości i polecenia odpowiedzi między stroną a aplikacją.

  • Cel i nazwa pliku skryptu nie muszą odpowiadać typowi danych. Cel youtubeshorts ładuje sources/youtube.js, który emituje youtube lub youtubeshorts z kontekstu strony.
  • Cele Bilibili podobnie mapują się na wspólne/regionalne skrypty, emitując bilibili.
  • sources/inject/*.js to skrypty pomocnicze działające w kontekście strony, obsługujące gniazda lub zmienne strony. Skrypt opakowujący źródło nadal odpowiada za kanoniczne dane.
  • Gdy wstrzykiwanych jest kilka skryptów, nie pozwalaj każdemu skryptowi pomocniczemu deklarować tego samego celu wysyłania. Tożsamość przechwytywania i możliwość odpowiadania to oddzielne kwestie.
  • Zmiany w przechwytywaniu źródeł należy wprowadzać w plikach tego repozytorium sources/ . Aplikacja komputerowa z nich korzysta; dołączona do jej pakietu kopia awaryjna nie jest źródłem prawdy.
Wpisy źródeł aplikacji komputerowej Social Stream Ninja pokazujące tryby połączenia
Każde źródło aplikacji komputerowej zachowuje własny cel, adres URL, tryb połączenia i skrypt przechwytywania.

Opiekunowie projektu mogą prześledzić konfigurację w pliku aplikacji komputerowej index.html tworzenie okna źródła, a następnie main.js i preload.js do wstrzykiwania i komunikacji przez most.

Odpowiadanie i przekazywanie do źródeł

Tożsamość przychodzących danych i możliwość wysyłania są ze sobą powiązane, ale nie stanowią tego samego kontraktu.

Działanie Jak dokonuje wyboru Częsty problem
Odpowiedz do źródła Używa tid , aby wskazać dokładną kartę lub okno pochodzenia. Nie tidalbo ten tryb przechwytywania nie umożliwia wysyłania wiadomości.
Przekaż na platformę Pyta otwarte źródła, czy obsługują ten cel wysyłania. Wybrany wariant nie ma pasującego otwartego okna źródła lub źródło nie może wysyłać wiadomości.
Przekaż do wszystkich oprócz źródła Wysyła do źródeł, do których można kierować wiadomości, i wyklucza źródłowy tid. Źródło nie przyjmuje automatycznego wprowadzania albo odbicie jest przechwytywane ponownie.
  • Pole skryptu źródła getSource to odpowiedź sygnalizująca możliwość kierowania danych wychodzących. Wspólne ustawienia YouTube mogą grupować oba warianty, natomiast Relay Chat dodaje dokładny kontekst adresu Shorts do dopasowania celu.
  • Ogólne przechwytywanie może znaleźć prawdopodobne pola wpisywania i ustawić na nich fokus, ale nie gwarantuje to, że witryna zaakceptuje automatyczne wysłanie.
  • Tryby API/WebSocket mogą wysyłać przez API platformy zamiast wpisywać tekst na widocznej stronie.
  • W aplikacji komputerowej Bot tylko do odpowiedzi (bez przechwytywania) utrzymuje źródło dostępne dla odpowiedzi i statusu, jednocześnie tłumiąc jego zwykłe przechwycone wiadomości.
  • Przetestuj obsługę odpowiedzi w jednym oknie źródła, zanim zbudujesz przekaźnik między wieloma platformami.

Gdzie znaleźć dokładne informacje

Podczas diagnozowania sprawdź jeden surowy zestaw danych i zapisz jego type, event, sourceName i tid. Zwykle pozwala to oddzielić dopasowywanie przychodzących danych, routing wychodzący i powielanie przechwytywania.