0. Hızlı Tanıtım
Bu düzenleyici nedir?
Etkinlik Akışı düzenleyicisi Social Stream Ninja'nın “gelişmiş otomasyon” katmanıdır. Basit açılır pencere anahtarlarının üzerinde yer alır ve kendi yönlendirme mantığınızı yazmanızı sağlar. Şunlara ihtiyacınız olduğunda kullanın:
- Sohbeti filtrelerle hizmetler arasında aktarın (ör. Twitch'i Discord'a yansıtın ama komutları engelleyin).
- AND/OR/NOT mantığıyla sadakate dayalı komutlar, anahtar kelime oyunları veya çekiliş katılım denetimi oluşturun.
- Akışta zenginleştirdiğiniz verilere göre özel katmanlar, ses, OBS sahneleri veya webhook'lar tetikleyin.
- Birden fazla platformu tek otomasyonda birleştirin (Kick + Twitch + YouTube tek akıştan yönlendirilir).
Açılır pencereyi “hızlı ön ayarlar”, Etkinlik Akışı'nı ise özel iş akışları için araç takımı olarak düşünün.
Başlatma ve Temeller
- Ana panonun menüsünden Etkinlik Akışı düzenleyicisini açın (masaüstü veya uzantı).
- Her proje dışa aktarılana kadar yerel kaydedilir. Şunu kullanın:
Exportyedeklemek veya paylaşmak için. - Şu adla anılan tuvallerde çalışın: akışlar. Her akış aynı anda birden fazla platforma abone olabilir.
Düğümlere Genel Bakış
- Girdiler (sol bağlantı noktaları) mesaj bağlamını bekler.
- Çıktılar (sağ bağlantı noktaları) aynı bağlamı ve yapılan düzenlemeleri çıkarır.
- Mantık düğümleri şu kanallardan çıktı verebilir:
trueve isteğe bağlıfalse.
Veri Yapısı
Her mesaj JSON nesnesi taşır. Zorunlu anahtarlar şu yapıyı izler: docs/event-reference.html (platform, type, chatname, chatmessage vb.). Özel verileri şu alana ekleyin: meta.
Her akış bir tetikleyiciyle başlar
Eylem düğümleri (yeşil) kendiliğinden çalışmaz — yalnızca üstlerindeki tetikleyici düğümü (mavi) şu sonucu verdiğinde çalışır: true. Yalnızca birbirine bağlı eylemlerden oluşan akış geçerli görünür ama zinciri başlatan hiçbir şey olmadığından sürekli boşta kalır. Düğüm adları düğümün ne yaptığını açıklar, ne zaman gerçekleştiğini değil: Mesajı Öne Çıkar akış kendisine ulaştığında mesajı öne çıkarır — başka yerde mesaj öne çıkardığınızda tetiklenmez.
Akış Eylemleri Katmanı (Eylem Çıktısı)
Seçin: Bağış: kutlama + seslendirme hazır animasyon ve sentetik teşekkür klibi için veya gelişmiş Bağış: animasyon + ses + OBS filtresi şablonu. Yeni uyarı şablonları önce yapılandırıp test edebilmeniz için devre dışı başlar. OBS şablonunda her iki filtre eyleminde de kaynak ve normalde kapalı olan aynı filtreyi seçin.
Ses klibi oynat ve Çoklu Uyarılar artık 17 seslik ortak kitaplığı kullanır: alkış, davul rulosu, geçiş sesi, kasa ve diğer efektler, etiketlenmiş dört sentetik İngilizce ifade ve basit sesler. Dinle / Durdur görünür oynatma durumuyla yerel önizleme yapar. Yine kayıt yükleyebilir veya uygulamaya yerel dosya seçebilirsiniz. Değişen adlar veya mesajlar için mevcut şu seçeneği kullanın: Metni Seslendir eylemi.
Etkinlik Akışı şu kaynak üzerinden oynatır: Flow Actions tarayıcı kaynağı; Çoklu Uyarılar kendi tarayıcı kaynağı üzerinden oynatır. Çift oynatmayı önlemek için aynı etkinlikte yalnızca birinde sesi açık tutun. Özelliklerini düzenlemek için Tab ile akış düğümüne geçip Enter veya Boşluk'a basın.
Şu gibi düğümler: Ses klibi oynat, Medya katmanını göster, ve OBS kontrolleri bir görüntüleme yüzeyi gerektirir. Bu yüzey, şu adresten sunulan Akış Eylemleri katman sayfasıdır: actions.html. Etkinlik Akışı eylemlerinin görünebileceği bir yer olması için yayın yazılımınızda (OBS/Streamer.bot tarayıcı panelleri vb.) çalışır tutun.
- Ana Social Stream Ninja açılır penceresini açın (şuradan yüklenen pencere: popup.html veya uzantı simgesi).
- “Akış Eylemleri” kartına kaydırın. Şu düğmeyi kullanın: [bağlantıyı kopyala] veya kart içindeki URL'ye tıklayın.
- Bağlantı şöyle görünür:
https://socialstream.ninja/actions.html?session=YOURSESSION. OBS Tarayıcı Kaynağı'na yapıştırın (1920×1080 önerilir) veya herhangi bir katman tarayıcısında açın.
- Ses Klibi Çal veya Medya Katmanı Göster eyleminde şuna tıklayın: Yerel dosya seç.
- Tıklayın: OBS için Yerel Flow Actions URL'sini kopyala ve barındırılan Akış Eylemleri URL'si yerine oluşturulan localhost URL'sini kullanın.
- SSApp'i çalışır tutun. Seçili dosya taşınırsa eyleme dönüp şuna tıklayın: Yeniden bağla.
Chrome uzantısı tek başına disk dosyalarını sunamaz. Masaüstü yardımcı uygulaması yoksa Yükle'yi veya barındırılan URL'yi kullanın. Şuraya bakın: Etkinlik Akışı için Medya Dosyaları rehberi tam kurulum için.
Yüklendiğinde bu katman şunları yapabilir:
- Akışlarınızın tetiklediği GIPHY veya doğrudan medya URL'lerini, metni ve konfetiyi gösterin.
- İzleyicilerin duyabilmesi için sesleri (TTS, ses klipleri) yerel çalın.
- Açılır penceredeki Akış Eylemleri bölümünde bulunan WebSocket ayarları üzerinden OBS ile iletişim kurun (sahne değiştirme, kaynak anahtarları, GDI+/FreeType metin güncellemeleri, tekrar arabelleği vb.).
- Tarayıcı Kaynağı API'si: yalnızca şu durumda kullanılabilir:
actions.htmlOBS Tarayıcı Kaynağı içinde şu seçenekle çalışıyorsa: Gelişmiş Erişim Düzeyi. Sahne değiştirme burada çalışır; kayıt / yayın / tekrar arabelleği eylemleri de alternatif olarak bunu kullanabilir. - OBS WebSocket: tutarlı kontrol için önerilir. Social Stream Ninja Akış Eylemleri, OBS 28+ içindeki OBS WebSocket v5 API'sini kullanır ve şu bağlantı noktasında güncel istek kümesini bekler:
4455. - Parola: isteğe bağlıdır. Yalnızca şunu ekleyin:
&obspw=...OBS sunucunuz kimlik doğrulama gerektirecek şekilde ayarlanmışsa Akış Eylemleri URL'sine. - Katman tanılaması: ekleyin:
&obsdebug=1şu sayfanın URL'sine:actions.htmlsorun giderirken katmanda küçük, canlı OBS bağlantı rozeti istiyorsanız. - Metin Kaynağını Ayarla: OBS Metin (GDI+) ve Metin (FreeType 2) girişlerini doğrudan günceller ve şu gibi Etkinlik Akışı şablon değişkenlerini destekler:
{counterValue}ve{counterTarget}. - Eski 4.x kurulumları: hâlâ obs-websocket 4.x / şu bağlantı noktasını kullanıyorsanız:
4444, kaynak / filtre / sessize alma / metin eylemleri OBS / obs-websocket yükseltilene kadar çalışmaz.
Özel rehbere bakın: OBS Kontrol Rehberi her tetikleyici, eylem, kurulum adımı ve test edilmiş tarif için.
- Açın: obs-websocket-test.html.
- Doğrulayın:
GetVersion,GetCurrentProgramScene, veGetSceneListbaşarılı olur. - Tam Etkinlik Akışı otomasyonunu test etmeden önce orada ilgili eylem kontrolünü çalıştırın.
1. Düğümden Ne Geçer?
Etkinlik Akışı çalışma zamanı her bağlantıdan iki şey geçirir:
- Veri – etkinlik veya mesaj verisi nesnesi.
- Geçit sinyali – bir true/false sonraki düğüme çalışıp çalışmayacağını söyleyen bit.
false Koşul düğümündeki bağlantı noktası). Böylece tüm akışları çoğaltmadan alternatif mantık oluşturabilirsiniz.
Girdi Beklentileri
- Etkinlik Kaynakları (Twitch Mesajı, Zamanlayıcılar, Elle Tetikleyici vb.) önceki girdiyi yok sayar — kendi verilerini üretir ve her zaman şu değeri çıkarır:
truedüğümün kendisi hata vermedikçe. - Dönüştürme ve Mantık Düğümleri veriyi okur ve alanları yeniden yazabilir, durum ayarlayabilir veya geçit sinyalini şu değere çevirebilir:
false. - Eylem Düğümleri yalnızca geçit şu değerde kaldığında çalışır:
true. Eylemleri zincirlemeyi sürdürmek isterseniz güncellenmiş veri de çıkarabilirler.
Çıkış Örüntüleri
Tek Çıkış
Çoğu düğüm tek çıkış sunar. Giren veri ve geçit, düğüm değiştirmedikçe aynı çıkar.
Doğru/Yanlış Çıkışları
Koşul, Karşılaştırma, Regex ve Mantık düğümleri iki çıkış sunar. Doğru yeşil bağlantı noktasından devam eder; false gri/kırmızı bağlantı noktasında kullanılabilir olur.
Olduğu Gibi Aktarma ve Geçersiz Kılma
Bazı düğümler (Değişken Ayarla, Matematik, Metin Değiştir) veriyi değiştirir ancak şu değeri yine aktarır: true/false durumunu girdilerinden alır. Diğerleri (NOT, AND, OR) mantıksal değeri kendileri yeniden hesaplar.
2. Mantık Düğümü Özeti
Bu bloklar en yaygın "doğru/yanlış ne anlama gelir?" sorularını yanıtlar.
DEĞİL
- Girdiler: önceki düğümden gelen 1 mantıksal değer (doğru/yanlış).
- Çıktılar: tersine çevrilmiş mantıksal değer ve değiştirilmemiş veri.
- Varsayılan davranış: NOT girişine hiçbir şey bağlı değilse şu sonucu verir:
false, dolayısıyla çıktıtrue.
VE
- Girdiler: iki veya daha fazla mantıksal sinyal (A, B, ...). Ek bağlantı noktalarını boş bırakabilirsiniz.
- Çıktılar:
trueyalnızca bağlı tüm girdiler şu değere eşitse:true. - Birden fazla koşul aynı anda sağlanmalıysa AND kullanın ("abone" ve "sohbet mesajı !raffle içeriyor").
OR
- Şunu üretir:
trueeğer herhangi bir bağlı girdi doğruysa. - Çok platformlu tetikleyiciler için idealdir: Twitch + YouTube mesaj düğümlerini tek OR'a bağlayıp sonraki eylemi birleştirin.
Hayır. Birçok düğüm zaten birleşik filtreler sağlar (örneğin "Kullanıcı Düzeyini Filtrele" + "Metin İçerir"). AND'i yalnızca yerleşik seçenekler birleşiminizi karşılamadığında veya diğer dalların paylaşabileceği yeniden kullanılabilir mantık birleşimi istediğinizde kullanın.
true. Yanlışlıkla akışı açmaması için anlamlı bir yere bağlı tutun veya düğümü devre dışı bırakın.
3. Örnek Küçük Akışlar
A. Mesaj Komut Değilse Otomatik Yanıtla
Burada Regex düğümü şu çıktıyı verir: true mesaj bir komut olduğunda. Şu bağlantı noktasını yanıtımıza yönlendiririz: false . Böylece normal sohbet katılımcıları yanıt alırken komutlar yalnızca geçer.
B. AND ile Birden Fazla Kontrol Gerektirin
AND düğümü yalnızca doğru anahtar kelimeyi kullanan üyelerin Discord'a aktarılmasını sağlar. İki dal da mantıksal sonucunu AND düğümüne gönderir; veri ilk daldan sonraki aşamaya aktarılır.
C. Tekrarlanan Uyarıları Engellemek için NOT Düğümü
State Check şu değeri verir: true uyarı sessize alındığında. NOT düğümü bu sonucu tersine çevirerek kutlamanın yalnızca bayrak şu değerdeyken çalmasını sağlar: false.
D. İki Sesten Birini Rastgele Çalın
AND kapısı isteğe bağlı değildir. Tek başına NOT şu çıktıyı verir: true RANDOM kapısı boşta kaldığında; bu yüzden B sesinin çalacağı sohbet mesajları şunlar olurdu: tetikleyicinizle eşleşmeyen tüm mesajlar. Tetikleyiciyi AND'e ikinci girdi olarak bağlamak B sesini yalnızca eşleşen mesajlarla sınırlar. Aynı örüntü yalnızca seste değil, iki seçenekli her eylem çiftinde çalışır.
4. Yankı, Döngü ve Aktarma Geri Beslemesini Önleme
Sohbeti arayüzler arasında aktarmak güçlüdür ancak kendi çıkışınızı dinlerseniz sonsuz yankı oluşabilir. Şu önlemleri izleyin:
Gelen tetikleyiciler ve giden Sohbeti Aktar hedefleri şu iki türü ayrı tutar:
youtube ve youtubeshorts. Mesaj iki çeşide de ulaşacaksa iki aktarma eylemi kullanın. Bkz. YouTube Shorts ve Etkinlik Akışı.
Yansıma, giden mesajın hedef sohbetten yeniden yakalanmasıdır. Mevcut Sohbeti Aktar eylemleri tanınan yansımaları atlar; ayrı Yansıma Yok kutusu bulunmaz. Panel ve katmanlarda gösterimini gizlemek veya sınırlamak için şunu kullanın: Yansıma filtresi eylemi, şu seçenekle: Tümünü engelle, İlkine izin ver, veya Tümüne izin ver. Bu, gönderimi değil yeniden alındığında gösterimi kontrol eder. Şunu izleyin: Twitch ve YouTube aktarma anlatımı tam kurulum için.
- Yinelenen aktarma sistemlerinden kaçının. Eşdeğer Etkinlik Akışı yollarını kullanırken genel Tümünü Aktar'ı kapatın ve aynı sohbetleri bağlayan diğer hizmetleri kontrol edin. Özel üst verilerin platform sohbetinden geçerken korunacağı garanti edilmez.
- Debounce veya Bekleme Süresi düğümlerini kullanın yalnızca her X saniyede bir tetiklenmesi gereken uyarılar için.
- Döngüleri bilinçli kırın. İki dal birbirini besliyorsa bir durum değişkenini ("currentlyRelaying") kontrol eden mantık düğümü ekleyin; böylece bayrak ayarlandığında akış erken çıkar.
5. Girdiler, Çıktılar ve Pratik Sorular
Bir düğüme ne girer?
- Tam mesaj verisi.
- Geçit biti (
true/false). - Düğümün açıkça istediği isteğe bağlı bağlam (durum değişkenleri, zamanlayıcılar).
Düğümden ne çıkar?
- Düğüm değiştirmedikçe aynı veri.
- Yeniden hesaplanan geçit biti (mantık düğümleri) veya aktarılan bit (eylemler).
- Çoğu yan etki (sohbet gönderme gibi) veriyi değiştirmez ancak puan eylemleri şu gibi durum alanları ekleyebilir:
pointsTotalveyapointsSpendErrorsonraki mantık için.
Ne zaman dallanmalı?
Farklı tepki vermek istediğinizde: true ile false. Gereken renkli çıkıştan (yeşil = doğru, gri/kırmızı = yanlış) sonraki düğüme bağlantı sürükleyin.
false , akış orada biter. Bu filtreler için idealdir ("kontrolden geçmeyen her şeyi engelle") ancak şu yolu bağlamayı unutmayın: false yolu, alternatifler gerekiyorsa.
Yaygın Sorular ve Yanıtlar
- Her filtre çifti için AND kullanmalı mıyım? Hayır. Birçok düğüm birden fazla kontrol içerir (örneğin temel Mesaj Filtresi anahtar kelime + rol destekler). AND'i yalnızca gelişmiş birleşimlerde veya farklı düğümlerden gelen sinyalleri birleştirirken kullanın.
- Doğru/yanlış değerleri NOT düğümüne nasıl ulaşır? Yeşil çıkışlı her düğüm şu değeri çıkarır:
truevarsayılan olarak. Koşul sağlanmazsa şu çıktıyı verir:false. Sonucu tersine çevirmek için bu bağlantıyı NOT'a bağlayın. - Düğüm yanlış döndürse bile veri çıkarabilir mi? Evet. Veri yanlış çıkışından geçmeye devam eder; o dalın nereye gideceğine siz karar verirsiniz.
- TikTok Takım üyelerini nasıl eşleştiririm? Seçin: TikTok Takım Üyesi Kullanıcı Rolü düğümünde. Gelen mesajdaki TikTok Hayran Kulübü/takım seviyelerini ve rozetlerini tanır; Ana Sohbet Katmanı ayarlarına bağlı değildir.
- Her Metni Seslendir düğümü farklı ses kullanabilir mi? Evet. Şu alana sağlayıcının desteklediği ses adı veya kimliğini girin: Ses Geçersiz Kılması, veya Akış Eylemleri TTS varsayılanını kullanmak için boş bırakın.
6. Şablon Değişkenleri Referansı
Birçok eylem düğümü (Metin Göster, Metin Kaynağını Ayarla, Mesaj Gönder, Sohbeti Aktar, TTS Seslendir, Webhook Çağır, Termal Etiket Yazdır) şunu destekler: şablon değişkenleri çalışma zamanında etkinlik verileriyle değiştirilir. Değişken adlarını şu şekilde süslü paranteze alın: {username}.
Temel Değişkenler (geriye uyumlu)
| Değişken | Takma ad | Açıklama | Örnek |
|---|---|---|---|
{username} | {chatname} | Kullanıcının görünen adı | CoolViewer123 |
{message} | {chatmessage} | Sohbet mesajı metni | Herkese merhaba! |
{source} | - | Platform adı (baş harfi büyük) | Twitch, YouTube |
{type} | - | Platform adı (ham) | twitch, youtube |
{donation} | {hasDonation} | Bağış/bahşiş görünüm etiketi | $5.00, 500 bits |
Genişletilmiş Değişkenler
| Değişken | Açıklama | Örnek |
|---|---|---|
{displayname} | Görünen ad (alternatif alan) | CoolViewer123 |
{donoValue} | Sağlanan veya tahmin edilen USD bağış karşılığı; Etkinlik Akışı eşik değerlerini normalleştirilmiş şu alandan türetir: hasDonation değer gibi etiketler, $değer, değer + birim veya kısa birim/değer. Bilinmeyen adlandırılmış sanal birimler için 100 birim = 0,01 USD kullanılır; fiyatı bilinmeyen TikTok hediyeleri hediye başına bir coin (her biri 0,01 USD) kullanır. {donationAmount} eski bir takma addır | 5.00 |
{event} | Etkinlik türü tanımlayıcısı | cheer, raid, new_follower |
{membership} | Üyelik durumu | MEMBERSHIP, new_sponsor |
{subtitle} | Ek bağlam | 3 aydır üye |
{userid} | Kullanıcının platform kimliği | 12345678 |
{chatimg} | Kullanıcı avatar URL'si | https://... |
{contentimg} | Eklenen resmin URL'si | https://... |
{rewardTitle} | Kaynak üst düzey ödül başlığı alanı sunuyorsa ödül adı | Mesajımı Vurgula |
{meta} | Yapılandırılmış etkinlik verisi (JSON) | {"viewers":100} |
{counterValue} | Sayaç veya Sayacı Kontrol Et adımından sonraki mevcut sayaç değeri | 12 |
{counterTarget} | Sayaç hedef değeri | 30 |
{counterRemaining} | Sayaç hedefi eksi mevcut değer; en az 0 | 18 |
{USERNAME}, {Username}, ve {username} aynı şekilde çalışır.
Check Counter sunar: {counterValue}, {counterTarget}, ve {counterRemaining}.
Örnek Şablonlar
- Metin Göster:
{username} just cheered {hasDonation}! - OBS Metin Kaynağını Ayarla:
{username}: now {counterValue}, need {counterTarget} - Sohbeti Aktar:
[{source}] {username}: {message} - TTS:
{username} says {message} - Bağış Uyarısı:
{username} donated {donation} - {subtitle} - Termal Etiket:
{username}, yeni bir satır, ardından{donation}. Bkz. Termal Yazıcı Rehberi yazıcı kurulumu, sabit boyutlu etiketler ve tam akış için. - Discord Webhook Çağır:
{"content":"{message}","username":"{username}","avatar_url":"{chatimg}"}
{donation} normal sohbet mesajında), yer tutucunun kendisini göstermek yerine boş metin konur: {donation} metni.
7. İyi Uygulamalar Kontrol Listesi
- Adlandırın ve renklendirin düğümlerinizi; böylece gelecekte hangi dalın ne olduğunu bilirsiniz.
- Yerleşik simülatörle test edin (Test Etkinliği Gönder), akışı canlı kullanıma almadan önce.
- Mantığı kaynağın yakınında gruplayın. Sonraki aşamalardaki ek işlemleri önlemek için mümkün olduğunca erken filtreleyin.
- Tekrarları Durum düğümlerinde saklayın. Çift uyarıları önlemek için sayaç, anahtar ve zaman damgaları kullanın.
- meta alanlarını belgeleyin. Özel şu alanları eklediğinizde:
metaanahtarlarını belgeleyin; böylece katmanlar ve uzak istemciler tutarlı kalır.
8. Daha Fazla Keşif
Stream Deck veya API'den özel iş akışları çalıştırın: adlandırılmış tetikleyiciler, başlangıç şablonu, iş akışı keşfi, ek veriler, HTTP/WebSocket/P2P örnekleri ve kadran hareketleri.
Daha derine inmeye hazır mısınız?
- Kullanın: Durum Düğümleri (sayaçlar, anahtarlar, zamanlayıcılar), etkinlikler arasında bağlamı takip etmek için.
- Birleştirin: Değişkenler + Mantık kuyruk sistemleri, çekilişler veya puanlama motorları oluşturmak için.
- Şu sisteme bağlanın: Puanlar ve Ödüller ; böylece izleyiciler akışları bilinçli tetikleyebilir.
- Kullandığınız yazılım SSApp masaüstü uygulaması mı? Şu düğümlerin kilidini açın: Özel JavaScript düğümleri yerleşik düğümlerin kapsamadığı özel mantık için.
- Şunu kontrol edin: Etkinlik başvuru kaynağı tüm platformlarda ayrıntılı veri belgeleri için.
Bu rehber bilinçli olarak bağımsız hazırlanmıştır — yerel olarak kopyalayın, ekibinize uyarlayın ve düzenleyicide denemeyi sürdürün.
9. Özel JavaScript Yalnızca SSApp / Masaüstü
Etkinlik Akışı düzenleyicisindeki iki düğüm, akış işlem hattında çalışan istediğiniz JavaScript kodunu yazmanızı sağlar: Özel Kod (tetikleyici) ve Özel Kod Çalıştır (eylem). Yerleşik düğümlerin ifade edemediği her şey için çıkış yoludur.
new Function() / eval(). Düzenleyiciyi şu yoldan açın: SSApp masaüstü uygulaması bunları etkinleştirmek için. Uzantı modunda düğümler şu etiketle gri görünür: "Yalnızca masaüstü".
Ctrl+S veya Cmd+S aynısını yapar. İptal, düğümü değiştirmez.
Özel Kod — Tetikleyici düğümü
Sürükleyin: Özel Kod şu kaynaktan: Gelişmiş grubu, şu panelde: Tetikleyiciler panelinden tuvale. Geçit görevi görür: akış yalnızca kodunuz şu değeri döndürdüğünde sürer: true.
true veya false.function(message) { ... }Şunu döndürmelidir: mantıksal değer —
true akışın devam etmesini sağlamak için, false durdurmak için.Kullanılabilir: nesne:
message (bkz. mesaj API'si aşağıda), ayrıca convertCurrency(value, targetCurrency, source) ve convertToUSD(value, source).
Özel Kod Çalıştır — Eylem düğümü
Sürükleyin: Özel Kod Çalıştır şu kaynaktan: Entegrasyonlar grubu, şu panelde: Eylemler paneli. Mesajı değiştirebilir, engelleyebilir veya sonraki düğümlerin okuyabileceği üst veriler ekleyebilir.
function(message, result) { ... }Şunu döndürmesi gerekir: şuna birleştirilen nesne veya Promise:
result— bkz. sonuç API'si.Kullanılabilir:
message (etkinlik verisi), result (mevcut akış sonucu durumu), printThermal(html, options), ayrıca convertCurrency(value, targetCurrency, source) ve convertToUSD(value, source).
printThermal('<strong>' + message.chatname + '</strong>'). SSApp işi yerel Windows yazıcı API'si üzerinden sessizce kuyruğa alır ve kayıtlı ayarları kullanır. Akış bunları şu gibi seçeneklerle geçersiz kılabilir: { width: '58mm', marginLeft: '3mm', marginRight: '3mm', marginTop: '2mm', marginBottom: '2mm', feed: '3mm', marginType: 'printableArea' }. Promise döndürmek Etkinlik Akışı'nın gönderimi beklemesini ve hataları bildirmesini sağlar.
Nesne: message
Her iki düğüm de tüm etkinlik verisini şu değişkenle alır: message. Aşağıdaki alanlar her zaman kullanılabilir; platforma özel etkinlikler ek alanlar içerebilir.
| Alan | Veri türü | Açıklama | Örnek |
|---|---|---|---|
message.chatmessage | metin | Sohbet mesajı metni (HTML içerebilir) | "Hello stream!" |
message.chatname | metin | Gönderenin görünen adı | "CoolViewer" |
message.userid | metin | Platform kullanıcı kimliği | "12345678" |
message.type | metin | Kaynak platform (küçük harf) | "twitch", "youtube", "kick" |
message.hasDonation | metin | Varsa biçimlendirilmiş bağış metni | "$5.00", "500 bits" |
message.donoValue | number / string | Kaynak sağlıyorsa bağışın USD karşılığı; geçerli sıfır değerleri dikkate alınır. Etkinlik Akışı alternatif olarak şunu kullanır: currency.js . Normalleştirilmiş hasDonation etiketlerini eşik karşılaştırmaları için dönüştürür; 100 bilinmeyen adlandırılmış birim = 0,01 USD dahildir. Bağış değerlerini şu alandaki serbest metinden ayrıştırmaz: chatmessage . | 5 |
message.event | metin | Etkinlik türü tanımlayıcısı | "new_follower", "cheer", "raid" |
message.membership | metin | Geçerliyse üyelik durumu | "MEMBERSHIP" |
message.subtitle | metin | İkincil bağlam satırı | "Member for 3 months" |
message.mod | boolean | Gönderen moderatör | true |
message.subscriber | boolean | Gönderen abone | true |
message.vip | boolean | Gönderen VIP durumunda | true |
message.chatimg | metin | Kullanıcı avatar URL'si | "https://..." |
message.meta | object | Etkinliğe eklenen herhangi bir yapılandırılmış veri | { viewers: 120 } |
convertCurrency(message.hasDonation, 'EUR', message.type) biçimlendirilmiş bağış etiketini EUR'ya çevirmek için. Sayı döndürür veya null istenen hedef para birimi desteklenmediğinde. Dönüştürücü Social Stream Ninja'nın yaklaşık dahili kurlarını kullanır; harici kur hizmetine bağlanmaz.
Eylemin döndürdüğü
Eylem kodunuzdan düz nesne döndürün. Eklediğiniz tüm alanlar akışın şu nesnesiyle birleştirilir: result ; belirtmediğiniz alanlar mevcut değerlerini korur.
| Dönüş alanı | Veri türü | Etki |
|---|---|---|
modified | boolean | Şunu ayarlayın: true şunu değiştirdiyseniz: message alanları. Sonraki düğümlere verinin düzenlendiğini bildirir. |
message | object | Sonraki düğümlerin değişikliklerinizi alması için (değiştirilmiş olabilecek) mesajı geri verin. |
blocked | boolean | Şunu ayarlayın: true mesajın görüntülenmesini veya aktarılmasını önlemek için. |
return { modified: false, message };Hiçbir şeyi değiştirmeseniz bile şu değeri döndürmek:
message sonraki düğüme akmayı sürdürür.
Kod parçası örnekleri
Bunlardan herhangi birini ilgili düğüm türünün JavaScript Kodu metin alanına kopyalayın.
Tetikleyici kod parçaları — şunu döndürün: true akışı sürdürmek için
!queue, !raffle, !enter).Eylem kod parçaları — şunu döndürün: { modified, message }
{meta}).Tam örnek — VIP özellik talebi botu
Bu akış şunu dinler: !feature <text> abonelerden, VIP'lerden veya moderatörlerden; bunu yeni özellik talebi olarak yeniden biçimlendirip ikinci hedefe (ör. Discord) aktarır.
1. Adım — Özel Kod tetikleyicisi (tetikleyicinin JavaScript Kodu alanına yapıştırın):
2. Adım — Özel Kod Çalıştır eylemi (eylemin JavaScript Kodu alanına yapıştırın):
3. Adım — Sohbeti Aktar eylemi: eylemden sonra standart Sohbeti Aktar düğümü ekleyip Discord (veya başka) hedefinize yönlendirin. Burada özel kod gerekmez — yeniden biçimlendirilen message.chatmessage otomatik olarak aktarılır.
!feature dark mode support, ve Sohbeti Aktar hedefinin yeniden biçimlendirilmiş metni aldığını doğrulayın.
Güvenlikle ilgili hususlar
window ve preload betiğinin sunduğu tüm API'lere (ör. window.ninjafy). İçe aktarılan akış dosyalarını çalıştırılabilir kod gibi değerlendirin — yalnızca güvendiğiniz kaynaklardan akış içe aktarın.
- Ağ korumalı alanı yoktur. Eylem kodu şunu çağırabilir:
fetch(). Başkalarından paylaşılan akışlar alıyorsanız etkinleştirmeden önce JS kodunu inceleyin. - Hatalar yakalanır. Kodunuzdaki çalışma zamanı hatası şu değeri döndürür:
false(tetikleyici) veya işlem yapmadan döner (eylem) ve DevTools konsoluna kaydeder — akış çökmez. - Sözdizimi hataları da yakalanır. Şu tür bir hata:
SyntaxErrorderleme sırasında aynı şekilde yakalanır. Düğüm hiçbir şey yapmıyor görünüyorsa DevTools'u (F12) kontrol edin.