Twitch IRC - Commands rausfiltern bzw entfernen

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von newcat.

    Twitch IRC - Commands rausfiltern bzw entfernen

    Ich bin gerade einen Twitch.tv Chat am programmieren. d
    Dieser Funktioniert auch soweit. Nun möchte ich ihn verfeinern, indem ich z.B JOIN und PART events rausgefiltert werden.

    JOIN: Someone joined a channel!

    :nickname!username@nickname.tmi.twitch.tv JOIN #channelname

    PART: Someone parted a channel

    :nickname!username@nickname.tmi.twitch.tv PART #channelname


    Leider komme ich gerade nicht darauf, wie ich das am besten rausfiltern kann.
    Ja irgendwie will das nicht so klappen.
    Spoiler anzeigen
    ishvarloiva::ishvarloiva!ishvarloiva@ishvarloiva.tmi.twitch.tv JOIN #guardsmanbob
    wazonikus::wazonikus!wazonikus@wazonikus.tmi.twitch.tv JOIN #guardsmanbob
    captainchocula::captainchocula!captainchocula@captainchocula.tmi.twitch.tv JOIN #guardsmanbob
    evil_lapinou::evil_lapinou!evil_lapinou@evil_lapinou.tmi.twitch.tv JOIN #guardsmanbob
    gorrestrump::gorrestrump!gorrestrump@gorrestrump.tmi.twitch.tv JOIN #guardsmanbob
    2qazxcvbnm::2qazxcvbnm!2qazxcvbnm@2qazxcvbnm.tmi.twitch.tv JOIN #guardsmanbob
    jhaeltw::jhaeltw!jhaeltw@jhaeltw.tmi.twitch.tv JOIN #guardsmanbob
    svensken52::svensken52!svensken52@svensken52.tmi.twitch.tv PART #guardsmanbob
    john_ora::john_ora!john_ora@john_ora.tmi.twitch.tv PART #guardsmanbob
    mtn0508::mtn0508!mtn0508@mtn0508.tmi.twitch.tv PART #guardsmanbob
    tw1st3rlol2::tw1st3rlol2!tw1st3rlol2@tw1st3rlol2.tmi.twitch.tv PART #guardsmanbob
    vullkus::vullkus!vullkus@vullkus.tmi.twitch.tv PART #guardsmanbob
    maysterz85::maysterz85!maysterz85@maysterz85.tmi.twitch.tv PART #guardsmanbob
    shukenja::shukenja!shukenja@shukenja.tmi.twitch.tv PART #guardsmanbob


    Ich benutze die Multiserver von diesem Thread

    VB.NET-Quellcode

    1. Private Sub AddItem(ByVal s As String)
    2. Dim cIndex As Integer = s.IndexOf(":", 3)
    3. Dim Nicks As String = s.Split("!")(0).Trim(":")
    4. Dim MSG As String = s.Substring(cIndex + 1, s.Length - cIndex - 1)
    5. Select Case s
    6. Case s.Contains("PING")
    7. streamw.WriteLine("PONG tmi.twitch.tv")
    8. streamw.Flush()
    9. Case s.Contains("JOIN")
    10. Textbox2.AppendText(Nicks & " ist dem Chat beigetreten" & vbCrLf)
    11. Case s.Contains("+o")
    12. Textbox2.AppendText("(MOD)" & Nicks & vbCrLf)
    13. Case s.Contains("PART")
    14. Textbox2.AppendText(Nicks & " hat den Chat verlassen" & vbCrLf)
    15. Case Else
    16. Textbox2.AppendText(Nicks & ":" & MSG & vbCrLf)
    17. End Select



    edit://
    Im Anhang kann man mein Problem vll. besser erkennen^^
    Bilder
    • 123123.png

      105,49 kB, 413×1.005, 226 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „wamborambo“ ()

    Dein Select Case ist schonmal unfug.

    Du fragst Was ist s?
    Fall1 s=(ieine funktion die true oder false zurückgibt)
    Fall2 s=(ieine funktion die true oder false zurückgibt)
    usw.

    Du hast das Prinzip von Select Case nicht verstanden.
    Ausserdem brauchst du nur nach Space zu splitten und aus dem Array den wert mit dem index 1 nehmen

    ungefähr:

    Visual Basic-Quellcode

    1. dim cmds as String() = s.tolower.Split(" "c)
    2. Select Case cmds(1)
    3. Case "join"
    4. Case "part"
    5. Case "ping"
    6. End Select


    Wenn ich mich richtig erinner haben die IRC commands eigentlich noch irgendeine commandid anhand der man die commands auch unterscheiden könnte.
    Guardsmanbob ist cool btw :)

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    Habe vor einiger Zeit eine Twitch API geschrieben (DLL), die das alles ausfiltert (und noch mehr), wenn du interesse hast kann ich dir den Source schicken.

    € Siehe Anhang (hab den Source hochgeladen)
    Dateien
    • TwitchBot API.zip

      (767,27 kB, 179 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RushDen“ ()

    Hab das damals so gemacht:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. ​If client_receive.Contains("PING") Then
    2. client_send("PONG tmi.twitch.tv")
    3. ElseIf client_receive.Contains("NOTICE") Then
    4. RaiseEvent cmdmsgReceived(client_receive)
    5. MsgBox("Login not successfull! Please check your settings")
    6. disconnect()
    7. ElseIf client_receive.Contains("JOIN") Then
    8. RaiseEvent join(getNickname(client_receive))
    9. ElseIf client_receive.Contains("PRIVMSG") And Not client_receive.Contains("jtv") Then
    10. RaiseEvent privmsgReceived(getNickname(client_receive), getMessage(client_receive))
    11. ElseIf client_receive.Contains("PART") Then
    12. RaiseEvent part(getNickname(client_receive))
    13. ElseIf client_receive.Contains("376 " + My.Settings.nick) Then
    14. client_send("JOIN #" & My.Settings.channel)
    15. ElseIf client_receive.Contains("353") Then
    16. RaiseEvent cmdmsgReceived(client_receive)
    17. getConnectedUsers(client_receive)
    18. ElseIf client_receive.Contains("366") Then
    19. RaiseEvent initCompleted()
    20. RaiseEvent cmdmsgReceived(client_receive)
    21. ElseIf client_receive.Contains("MODE #" + My.Settings.channel) Then
    22. RaiseEvent modeChanged(getModNick(client_receive), getModStatus(client_receive))
    23. RaiseEvent cmdmsgReceived(client_receive)
    24. Else
    25. RaiseEvent cmdmsgReceived(client_receive)
    26. End If
    Twitch Viewer Display Chat-, Zuschauer- und Statistiktool für Streamer