Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2012
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. tabornok.rb
  2.  
  3.  
  4. #!/usr/bin/env ruby
  5.  
  6. require_relative "tabornok/irc"
  7. require_relative "tabornok/logger"
  8. require_relative "tabornok/console"
  9. require_relative "tabornok/pinger"
  10. require "thread"
  11.  
  12. class Tabornok
  13.  
  14. def initialize
  15. @logger = Logger.new
  16.  
  17. @logger.message "Tabornok IRC Bot and Framework"
  18. @logger.message "Copyright (C) 2012 Jackneill"
  19. @logger.message "This program comes with ABSOLUTELY NO WARRANTY; for details type see <http://www.gnu.org/licenses/>."
  20. @logger.message "This is free software, and you are welcome to redistribute it"
  21. @logger.message "under certain conditions; for details type see <http://www.gnu.org/licenses/>."
  22.  
  23. irc = Irc.new
  24. irc.connect "irc.rizon.net", 6667
  25. irc.auth "Tabornok"
  26.  
  27. irc.joinchan "#hun_bot"
  28. irc.joinchan "#Tabornok"
  29.  
  30. begin
  31. #Thread.abort_on_exception = true
  32.  
  33. thread_read_irc = Thread.new { irc.read_irc }
  34. thread_pinger = Thread.new { Pinger.new.pinger }
  35. thread_read_console = Thread.new { Console.new.read_console }
  36.  
  37. Thread.current.join
  38. rescue Exception => e
  39. @logger.fatal
  40. "Error in #{__method__}: #{$!}\nException Error:\n" +
  41. e.to_s
  42. end
  43. end
  44.  
  45. end
  46.  
  47. tabornok = Tabornok.new
  48.  
  49.  
  50.  
  51.  
  52.  
  53. sender.rb
  54.  
  55.  
  56. #!/usr/bin/env ruby
  57.  
  58. require_relative "logger"
  59. require_relative "irc"
  60.  
  61. class Sender
  62.  
  63. def initialize
  64. @logger = Logger.new
  65. @tcpsocket = Irc.new
  66. end
  67.  
  68. def sendServiceMsg msg
  69. @logger.send_service msg
  70. #@tcpsocket.puts msg
  71. end
  72.  
  73. def sendIrcMsg chan, *msg
  74. @logger.send_service msg
  75. @tcpsocket.puts "PRIVMSG #{chan} :#{msg}"
  76. end
  77.  
  78. end
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86. irc.rb
  87.  
  88.  
  89.  
  90. #!/usr/bin/env ruby
  91.  
  92. require "socket"
  93. require "thread"
  94. require_relative "parser"
  95. require_relative "logger"
  96. require_relative "sender"
  97.  
  98. class Irc
  99.  
  100. def initialize
  101. @logger = Logger.new
  102. @sender = Sender.new
  103. end
  104.  
  105. def connect server, port
  106. @server = server
  107.  
  108. @tcpsocket = TCPSocket.open server, port
  109. end
  110.  
  111. def read_irc
  112. parser = Parser.new
  113.  
  114. until @tcpsocket.eof? do
  115. parser.parse @tcpsocket.gets.chomp
  116. end
  117. end
  118.  
  119. def auth nick
  120. @sender.sendServiceMsg "NICK #{nick}"
  121. @sender.sendServiceMsg "USER #{nick} 0 * #{nick}"
  122. end
  123.  
  124. def joinchan chan, pass = nil
  125. if chan[0] != "#"
  126. chan.insert(0, '#')
  127. end
  128.  
  129. @sender.sendServiceMsg "JOIN #{chan}"
  130. end
  131.  
  132. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement