TubiaBot/tubiabot.rb
2016-02-26 11:31:45 +01:00

163 lines
2.9 KiB
Ruby

# coding: utf-8
require 'cinch'
require 'marky_markov'
require 'open-uri'
class ToniNegri
include Cinch::Plugin
match "toninegri"
def execute(m)
@bot.nick = "toninegri"
m.reply "swasp: sono tuo padre"
@bot.nick = "TubiaBot"
end
end
class Caffe
include Cinch::Plugin
match /caff(è|e)/
def execute(m)
users = [ "qup", "imega", "gresci" ]
requests = [ "andiamo al bar?", "caffè?", "bar?" ]
m.reply users.sample+": "+requests.sample
end
end
class Amici
include Cinch::Plugin
match /lavor(o|are|atori)/
def execute(m)
users = [ "qup", "imega", "gresci", "jigen", "lgine", "encrypt", "thegamer" ]
requests = [ "oggi non ho voglia di fare un cazzo", "caffè?", "andiamo al bar?" ]
m.reply users.sample+" "+users.sample+" "+requests.sample
end
end
class JS
include Cinch::Plugin
match /js/
def execute(m)
frameworks = ["Angular", "React", "Ember", "Meteor"]
loves = ["è una figata", "è bellissimo"]
m.reply frameworks.sample+" "+loves.sample
end
end
class Salvino
include Cinch::Plugin
match /salvino/
def execute(m)
m.reply "FORZA SALVINO"+("O"*rand(3...10))
end
end
class Jops
include Cinch::Plugin
match /jops/
def execute(m)
cibo = ["tigelle", "crescentine"]
m.reply "jops: andiamo a mangiare le "+cibo.sample+" ?"
end
end
class Qup
include Cinch::Plugin
match /qup/
def execute(m)
m.reply "qup, ora ti vengo a menare"
end
end
class Vergogna
include Cinch::Plugin
match /vergogna/
def execute(m)
m.reply "vergogna vergogna settimo reparto"
end
end
class Film
include Cinch::Plugin
match /film/
def execute(m)
loop do
if open("http://www.imdb.com/random/title").read =~ /<title>(.*?) (\(.*?\)) - IMDb<\/title>/
title = $1.gsub("&quot;","\"").split
if title.count > 1
#title[title.count - 1] = "Tubia"
title[rand(0...title.count)] = "Tubia"
m.reply title.join(' ')
break
end
end
end
end
end
class Thegamer
include Cinch::Plugin
match /thegamer/
def execute(m)
m.reply ["ahahahahahaha", "sistemistahahahahah"].sample
end
end
class Roll
include Cinch::Plugin
match /roll/
def execute(m)
m.reply rand(1..6)
end
end
logger = File.open("./logs.txt", 'a+')
markov = MarkyMarkov::TemporaryDictionary.new
markov.parse_file './logs.txt'
bot = Cinch::Bot.new do
configure do |c|
c.server = "irc.mufhd0.net"
c.nick = "TubiaBot"
c.channels = ["#indivia"]
c.plugins.plugins = [Caffe, ToniNegri, Amici, JS, Salvino, Jops, Qup, Vergogna, Film, Thegamer, Roll]
end
end
bot.on :message do |m|
if m.user.nick == "Tubia87"
logger.write(m.message+"\n")
end
if m.message.include?(@bot.nick)
m.reply markov.generate_n_sentences 1
end
if m.message.include?("encrypt")
File.open('/tmp/lucine', 'w') do |f|
f.puts('blink 3 0.3')
f.flush
end
end
end
bot.start