tubiabot.rb 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. # coding: utf-8
  2. require 'cinch'
  3. require 'marky_markov'
  4. class ToniNegri
  5. include Cinch::Plugin
  6. match "toninegri"
  7. def execute(m)
  8. @bot.nick = "toninegri"
  9. m.reply "swasp: sono tuo padre"
  10. @bot.nick = "TubiaBot"
  11. end
  12. end
  13. class Caffe
  14. include Cinch::Plugin
  15. match /caff(è|e)/
  16. def execute(m)
  17. users = [ "qup", "imega", "gresci" ]
  18. requests = [ "andiamo al bar?", "caffè?", "bar?" ]
  19. m.reply users.sample+": "+requests.sample
  20. end
  21. end
  22. class Amici
  23. include Cinch::Plugin
  24. match /lavor(o|are|atori)/
  25. def execute(m)
  26. users = [ "qup", "imega", "gresci", "jigen", "lgine", "encrypt", "thegamer" ]
  27. requests = [ "oggi non ho voglia di fare un cazzo", "caffè?", "andiamo al bar?" ]
  28. m.reply users.sample+" "+users.sample+" "+requests.sample
  29. end
  30. end
  31. class JS
  32. include Cinch::Plugin
  33. match /js/
  34. def execute(m)
  35. frameworks = ["Angular", "React", "Ember", "Meteor"]
  36. loves = ["è una figata", "è bellissimo"]
  37. m.reply frameworks.sample+" "+loves.sample
  38. end
  39. end
  40. class Salvino
  41. include Cinch::Plugin
  42. match /salvino/
  43. def execute(m)
  44. m.reply "FORZA SALVINO"+("O"*rand(3...10))
  45. end
  46. end
  47. class Jops
  48. include Cinch::Plugin
  49. match /jops/
  50. def execute(m)
  51. cibo = ["tigelle", "crescentine"]
  52. m.reply "jops: andiamo a mangiare le "+cibo.sample+" ?"
  53. end
  54. end
  55. class Qup
  56. include Cinch::Plugin
  57. match /qup/
  58. def execute(m)
  59. m.reply "qup, ora ti vengo a menare"
  60. end
  61. end
  62. class Vergogna
  63. include Cinch::Plugin
  64. match /vergogna/
  65. def execute(m)
  66. m.reply "vergogna vergogna settimo reparto"
  67. end
  68. end
  69. logger = File.open("./logs.txt", 'a+')
  70. markov = MarkyMarkov::TemporaryDictionary.new
  71. markov.parse_file './logs.txt'
  72. bot = Cinch::Bot.new do
  73. configure do |c|
  74. c.server = "irc.mufhd0.net"
  75. c.nick = "TubiaBot"
  76. c.channels = ["#indivia"]
  77. c.plugins.plugins = [Caffe, ToniNegri, Amici, JS, Salvino, Jops, Qup, Vergogna]
  78. end
  79. end
  80. bot.on :message do |m|
  81. if m.user.nick == "Tubia87"
  82. logger.write(m.message+"\n")
  83. end
  84. if m.message.include?(@bot.nick)
  85. m.reply markov.generate_n_sentences 1
  86. end
  87. if m.message.include?("encrypt")
  88. File.open('/tmp/lucine', 'w') do |f|
  89. f.puts('blink 3 0.3')
  90. f.flush
  91. end
  92. end
  93. end
  94. bot.start