Mein persönlicher Mainchat-James

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Mein persönlicher Mainchat-James

    Tach vb-Coder.
    Ich habe mir für meinen Mainchat einen James geprogt.
    (Chatbot)

    Quellcode

    1. 'Verbidnungsangaben in allen Subs typisieren udn bekannt machen
    2. Dim sock As Long
    3. Dim strServer As String
    4. Dim strHost As String
    5. Dim strRaum As String
    6. Dim strPost As String
    7. Dim strSend As String
    8. Dim strResponse As String
    9. 'Regex-Objekt vorbereiten!
    10. Dim myRegExp As RegExp
    11. Dim myMatches As MatchCollection
    12. Dim myMatch As Match
    13. Dim strSchreiben As String
    14. Dim Drin As Boolean
    15. Dim Rueckgabe As String
    16. 'Daten des Bots Subweit bekannt machen.
    17. Dim strBot_Name As String
    18. Dim strBot_Pass As String
    19. Dim strBot_Browser As String
    20. Dim strBot_uid As String
    21. Sub Verzoegerung(ByVal Dauer As Integer)
    22. start = Timer
    23. Do
    24. DoEvents
    25. Zeit = Timer - start
    26. Loop Until Zeit >= Dauer
    27. End Sub
    28. Public Function ScheckLog()
    29. 'Chatlog abhören.
    30. Rueckgabe = ""
    31. sock = Socket.Socket(istTCPSocket:=True)
    32. If Not Socket.Connect(sock, strServer, Port:=80) Then
    33. txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "''s Anfrage zum Server wurde abgelehnt!"
    34. Else
    35. If Not Socket.Send(sock, "GET /chat.php?http_host=" + strHost + "&id=" + strBot_uid + "&back=1 HTTP/1.0" + vbCrLf + "Host: " + strServer + vbCrLf + strBot_Browser + vbCrLf + vbCrLf) Then
    36. txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "' konnte seinen Chatlog nicht aktualisieren - Chat verlassen!"
    37. Else
    38. Rueckgabe = Right(Socket.Receive(sock, 1000), 1000)
    39. txtLog.Text = txtLog.Text + "LOG aktualisiert: '" + strBot_Name + "'!" + vbCrLf
    40. End If
    41. End If
    42. Socket.CloseSocket (sock)
    43. ScheckLog = Rueckgabe
    44. End Function
    45. Public Sub Chatten(ByVal Message As String)
    46. sock = Socket.Socket(istTCPSocket:=True)
    47. If Not Socket.Connect(sock, strServer, Port:=80) Then
    48. txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "' konnte sich nicht zum Server verbinden!" + vbCrLf
    49. Else
    50. Schreiben = "GET /schreibe.php?http_host=" + strHost + "&id=" + strBot_uid + "&text=" + Message + "&text2=" + Message + " HTTP/1.0" + vbCrLf + "Host: " + strServer + vbCrLf + strBot_Browser + vbCrLf + vbCrLf
    51. If Not Socket.Send(sock, Schreiben) Then
    52. txtLog.Text = txtLog.Text + "Nope: " + strBot_Name + "' konnte die Nachricht nicht logen!" + vbCrLf
    53. Else
    54. txtLog.Text = txtLog.Text + "<" + strBot_Name + ">" + Message + vbCrLf
    55. End If
    56. End If
    57. Socket.CloseSocket (sock)
    58. End Sub
    59. Private Sub cmdNewBot_Click()
    60. If (txtNewBot_login = "") Then
    61. MsgBox "Gebe erst einen login-Nickname ein für den Bot!"
    62. Exit Sub
    63. End If
    64. If Not Socket.Initialize Then
    65. txtLog.Text = "Nix socket!" + vbCrLf
    66. Else
    67. 'Verbindung zum Server.
    68. strServer = txtServer.Text
    69. strHost = txtHost.Text
    70. strRaum = txtRaum.Text
    71. sock = Socket.Socket(istTCPSocket:=True)
    72. If Not Socket.Connect(sock, strServer, Port:=80) Then
    73. txtLog.Text = txtLog.Text + "Nope: Verbindung zu " + strServer + " fehlgeschlagen!" + vbCrLf
    74. Else
    75. 'Dem Bot Name, Passwort und seinen Browser zuweisen
    76. strBot_Name = txtNewBot_login
    77. strBot_Pass = txtNewBot_passwort
    78. strBot_Browser = txtBrowser.Text
    79. strPost = "http_host=" + strHost + "&aktion=login&login=" + strBot_Name + "&passwort=" + strBot_passwort + "&eintritt=" + strRaum + "&javascript=on"
    80. strSend = "POST /index.php HTTP/1.0" + vbCrLf + "Host: " + strServer + vbCrLf + strBot_Browser + "Content-Type: application/x-www-form-urlencoded" + vbCrLf + "Content-Length: " + Str(Len(strPost)) + vbCrLf + vbCrLf + strPost + vbCrLf + vbCrLf
    81. If Not Socket.Send(sock, strSend) Then
    82. txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "' konnte sich nicht einlogen!" + vbCrLf
    83. Else
    84. strResponse = Socket.Receive(sock, 5000)
    85. Socket.CloseSocket (sock)
    86. Set myRegExp = New RegExp
    87. myRegExp.IgnoreCase = True
    88. myRegExp.Global = True
    89. myRegExp.Pattern = "FRAME SRC=.*http_host=.*&id=(.*)&aktion=chatuserliste.* MARGINWIDTH=4 MARGINHEIGHT=0 name=.*"
    90. strBot_uid = ""
    91. For Each m In myRegExp.Execute(strResponse)
    92. strBot_uid = m.SubMatches(0)
    93. Next
    94. 'Konnte keine uid des Bots rausgenommen werden und ist somit leer, kam er nicht rein. Wahrscheinlich Gastname besetzt.
    95. If strBot_uid = "" Then
    96. txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "' kam nicht rein. login wahrscheinlich besetzt oder ungültig." + vbCrLf
    97. Exit Sub
    98. End If
    99. txtLog.Text = txtLog.Text + "Klopf: '" + strBot_Name + "' betritt den Raum Lobby!" + vbCrLf
    100. 'Chatlog abhören.
    101. sock = Socket.Socket(istTCPSocket:=True)
    102. If Not Socket.Connect(sock, strServer, Port:=80) Then
    103. txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "''s Anfrage zum Server wurde abgelehnt!"
    104. Else
    105. If Not Socket.Send(sock, "GET /chat.php?http_host=" + strHost + "&id=" + strBot_uid + "&back=1 HTTP/1.0" + vbCrLf + "Host: " + strServer + vbCrLf + strBot_Browser + vbCrLf + vbCrLf) Then
    106. txtLog.Text = txtLog.Text + "Nope: '" + strBot_Name + "' konnte seinn Chatlog nicht aktualisieren - Chat verlassen!"
    107. Else
    108. txtLog.Text = txtLog.Text + "LOG aktualisiert: '" + strBot_Name + "'!" + vbCrLf
    109. End If
    110. End If
    111. Socket.CloseSocket (sock)
    112. 'Hallo sagen wenn jemand hi sagt
    113. Chatten "Test"
    114. Drin = True
    115. End If
    116. End If
    117. End If
    118. End Sub
    119. Private Sub Timer1_Timer()
    120. If Drin = True Then
    121. 'Hier wird später der Bot per Regex Befehle entnehmen und darauf Posten
    122. string1 = ScheckLog
    123. MsgBox string1
    124. End If
    125. End Sub
    Alles anzeigen


    Der soll sich einlogen und dort sitzen bleiben also
    der soll jede 3 Sekudnen den Log lesen
    und auf alle eintrittsbenachrichtigungen hören,
    also den Besuchern hallo sagen und auch
    auf auf wiedersehen bye tshcüss und muss los
    hören und bye sagen.

    ich wüsste wie es geht und soweit klappt auch alles bis auf...
    Wenn ich aus dem Log mehr als 1000 zeichen
    receiven möchte, stürzt mein prgramm ab udn es kommt
    ein "Probelmberich senden/nicht senden"
    was muss ich nur tun, dass mein bot den log kompeltt liest???
    bitte um hilfe :( :(

    Das Problem-Recieve liegt in Function ScheckLog...

    Die inputFelder:
    txtServer.Text der Chatserver
    txtHost.Text der Host auf dem Server
    txtBrowser.Text der firefox request
    txtLog.Text die meldungen kommen hierrein
    cmdNewBot Zum reinschicken
    txtNewBot_login Username des bots bei mir voreingabe James
    txtNewBot_passwort passwort das verwendet werden soll.
  • Hi.
    Sorry ich kapier's nid wirklich ._.
    Kann man das Script verwenden bzw.kannsu noch n bisschen erklären?
    Könnte wirklich sehr nützlich sein, so 'n Bot :)

    edit:
    Hab folgende Fragen:
    Ist der Bot in der Lage alle 59 Minuten (50 Minuten) sich selbst anzuflüstern?
    Kann der Bot nen Raum verwalten also quasi Besitzerrechte immer an die User x / y und z geben?
    Vll.indem sobald der Name fällt und er das Log ausliest er es mit /schenke Name raum versucht?

    Hab leider nur'n bisschen Ahnung mit HTML u.PHP wobei man das nid wirklich als Ahnung bezeichnen kann. :)