Advertisement
Guest User

mantabot code

a guest
Nov 17th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 2.45 KB | None | 0 0
  1. open System
  2. open System.IO
  3. open System.Net
  4. open System.Net.Sockets
  5. open System.Text.RegularExpressions
  6. open System.Net.Security
  7. open System.Security.Cryptography.X509Certificates
  8.  
  9. (* This bot cannot create or join some channels without registering; registration is also
  10.     required to join servers like idlechat which have daemon checkers.
  11.     Currently, SSL verification is bypassed.
  12. *)
  13. let test_toggle = 0
  14.  
  15. let server =
  16.     if test_toggle = 1 then "us.idlechat.net"
  17.     else "irc.geekshed.net"
  18. let port  = 6697
  19. let channel = "#batoto" //mantabot
  20. let nick = "mantabot"
  21. let username =
  22.     if server.Contains("idlechat") then "antaMay ayRay"
  23.     else "mantatanta"
  24. let password = "my_password"
  25.  
  26. let mutable run = true
  27.  
  28. // establish and confirm a connection to the server
  29. let irc_client = new TcpClient()
  30. irc_client.Connect(server, port)
  31.  
  32. if (irc_client.Connected = false) then Console.WriteLine("Did not connect.")
  33. else Console.WriteLine("Connected to " + server)
  34.  
  35. // get the input and output streams in ssl
  36. //cheating verification
  37.  
  38. let validatecheat = RemoteCertificateValidationCallback(fun _ _ _ _ -> true)
  39. let selectioncheat = fun _ -> System.Security.Cryptography.X509Certificates.X509Certificate()
  40. let certificatecheat = LocalCertificateSelectionCallback( fun _ _ _ _ -> selectioncheat)
  41.    
  42. let irc_writer =
  43.     let stream = irc_client.GetStream()
  44.     let ssl = new SslStream(stream, true, validatecheat, certificatecheat)
  45.     ssl.AuthenticateAsClient(server)
  46.     ssl
  47.  
  48. //non ssl version, for testing
  49. (*
  50. let irc_writer =
  51.     let stream = irc_client.GetStream()
  52.     let write = new StreamWriter( stream )
  53.     write
  54.     *)
  55.  
  56. // identify with the server and join a room
  57.  
  58. let stream = new StreamReader(irc_writer, true)
  59.  
  60. let writer = new StreamWriter(irc_writer)
  61.  
  62. let send (data: string) =
  63.     writer.WriteLine(data + "\n\r")
  64.     writer.Flush()
  65.     Console.WriteLine("\n<{ " + data)
  66.  
  67.  
  68. Console.Write("\n}> "); Console.Write(stream.Read())
  69. send ("PASS " + password)
  70. Console.Write("\n}> "); Console.Write(stream.Read())
  71. send ("NICK " + nick)
  72. Console.Write("\n}> "); Console.Write(stream.Read())
  73. if server.Contains("idlechat") then
  74.     send ("USER " + nick + " " + nick + " " + nick + " :themantarays")// + username) //mantatanta
  75. else
  76.     send ("USER " + nick + " " + nick + " " + nick + " :mantatanta")
  77. Console.Write("\n}> "); Console.Write(stream.Read())
  78. send ("JOIN " + channel)
  79. Console.Write("\n}> "); Console.Write(stream.Read())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement