Zum Inhalt springen
  • Dunkel
  • Hell
  • System

!lurkers

!lurkers

Pro

!lurkerlist

Listet alle User die aktuell als Lurker markiert sind. Braucht eine kurze C#-Sub-Action weil Streamer.bot keinen Built-in User-Global-Enumerator hat.

Steps
2
Cooldown
1 min/User
Cooldown
30sglobal
Zugriff
Public

Streamer.bot kann pro User Globals speichern (isLurking=true), bietet aber kein Built-in zum Auflisten aller User-Globals. Lösung: eine kleine C#-Sub-Action die durch die User-Datenbank iteriert und alle Lurker zurückgibt.

Execute Code (C#). Lurker enumerieren

Core C# Code Execute C# Code

Iteriert durch alle User-Globals mit Key 'isLurking', sammelt User mit Value=true.

Code siehe C#-Block unten
using System.Linq;
using System.Text;
public class CPHInline {
public bool Execute() {
// Hole alle User-Globals mit Key 'isLurking'
var lurkers = CPH.GetUserGlobalsForVariable<bool>("isLurking", persisted: true)
.Where(g => g.Value == true)
.Select(g => g.UserName)
.ToList();
if (!lurkers.Any()) {
CPH.SetArgument("lurkerList", "Niemand lurkt gerade: alle sind aktiv 👀");
CPH.SetArgument("lurkerCount", 0);
return true;
}
// Maximal 15 Namen anzeigen damit die Message ins 500-Zeichen-Limit passt
var displayed = lurkers.Take(15).ToList();
var rest = lurkers.Count - displayed.Count;
var sb = new StringBuilder(string.Join(", ", displayed));
if (rest > 0) sb.Append($" und {rest} weitere");
CPH.SetArgument("lurkerList", sb.ToString());
CPH.SetArgument("lurkerCount", lurkers.Count);
return true;
}
}

Nach Ausführung gesetzt: %lurkerList% (Stringliste) und %lurkerCount% (Integer).

Send Message: Liste posten

Twitch Chat Send Message to Channel

Bot postet die formatierte Liste mit Count-Vorspann.

Message 🌙 %lurkerCount% Lurker: %lurkerList%
Send using bot account aktiv
Fallback to Broadcaster aktiv
AzaBot: 🌙 4 Lurker: azazelitv, bob_streams, claire_codes, dave_lurks
So sieht's im Chat aus
  1. 1 Execute Code (C#): GetUserGlobalsForVariable("isLurking") → %lurkerList%, %lurkerCount%
  2. 2 Send Message: "🌙 %lurkerCount% Lurker: %lurkerList%"
FeldWert
Name!lurkers. Lurker-Liste
GroupStandard
Commands!lurkers
!lurkerlist
Text Matching ModeBasic
LocationStart
SourcesTwitch Message
Ignore Bot Accountaktiv
User Cooldown60
Global Cooldown30

Wenn du C# nicht nutzen willst, ist die Alternative ein zentraler “Lurker-Register”-Global den !lurk und !unlurk pflegen:

  • !lurk hängt %userName% an einen Global namens lurkerRegister an (mit Komma als Separator)
  • !unlurk entfernt den Namen aus dem String via $replace()$
  • !lurkers liest den Global und postet ihn direkt

Vorteil: kein C#. Nachteil: String-Manipulation in Streamer.bot’s $replace()$ ist fehleranfällig bei ähnlichen Namen (bob matched auch bobby). Mit Trennzeichen-Padding (|bob|) lösbar, aber häßlich.

  1. 1 Global (Get): lurkerRegister → %register% (default leerer String)
  2. 2 If/Else: %register% Contains "|" (mind. 1 Lurker)
    1. Then 2a Send Message: "🌙 Lurker: %register%"
    2. Else 2b Send Message: "Niemand lurkt gerade 👀"

Wenn die Lurker-Liste interessant wird, zeig sie nicht nur passiv. Bot kann das im Recap des Streams nutzen:

  • Bei Stream Offline-Event den finalen Lurker-Count loggen
  • In Discord-Webhook (“Today’s Lurkers: 23, Top-Lurker: azazelitv mit 4h 12min”) posten
  • Siehe Discord-Webhook für Webhook-Setup