encrypt 8 years ago
parent
commit
00c666c628
15 changed files with 195 additions and 124 deletions
  1. 12 0
      plugins/amici.rb
  2. 12 0
      plugins/caffe.rb
  3. 10 0
      plugins/encrypt.rb
  4. 19 0
      plugins/film.rb
  5. 10 0
      plugins/jops.rb
  6. 12 0
      plugins/js.rb
  7. 9 0
      plugins/qup.rb
  8. 46 0
      plugins/radio.rb
  9. 9 0
      plugins/roll.rb
  10. 9 0
      plugins/salvino.rb
  11. 9 0
      plugins/thegamer.rb
  12. 11 0
      plugins/toninegri.rb
  13. 10 0
      plugins/tpo.rb
  14. 9 0
      plugins/vergogna.rb
  15. 8 124
      tubiabot.rb

+ 12 - 0
plugins/amici.rb

@@ -0,0 +1,12 @@
+# coding: utf-8
+class Amici
+  include Cinch::Plugin
+
+  #match /lavor(o|are|atori)/
+  match /#{["dio","madonna"].join('|')}/
+  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

+ 12 - 0
plugins/caffe.rb

@@ -0,0 +1,12 @@
+# coding: utf-8
+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

+ 10 - 0
plugins/encrypt.rb

@@ -0,0 +1,10 @@
+# coding: utf-8
+class Encrypt
+  include Cinch::Plugin
+
+  match /encrypt/
+
+  def execute(m)
+    m.reply ["encrypt, non vedo l'ora che arrivi il tempo del nostro prossimo incontro","soccia encrypt quanto sei troll","encrypt, sei malvagio","encrypt, guardare la nebbia","ahahah encrypt esatto","il nostro encrypt","encrypt, è il JSON marxista leninista","encrypt, magari","encrypt...","ciao encrypt","encrypt è impazzito","encrypt, se vuoi puoi parlare con me ","ma sei pazzo encrypt?","questa è per encrypt","encrypt, conosciamo la tua religione","Ciao encrypt","in particolare encrypt che usa la sua capacità per il Male "].sample
+  end
+end

+ 19 - 0
plugins/film.rb

@@ -0,0 +1,19 @@
+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

+ 10 - 0
plugins/jops.rb

@@ -0,0 +1,10 @@
+class Jops
+  include Cinch::Plugin
+
+  match /jops/
+
+  def execute(m)
+    cibo = ["tigelle", "crescentine"]
+    m.reply "jops: andiamo a mangiare le "+cibo.sample+" ?"
+  end
+end

+ 12 - 0
plugins/js.rb

@@ -0,0 +1,12 @@
+# coding: utf-8
+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

+ 9 - 0
plugins/qup.rb

@@ -0,0 +1,9 @@
+class Qup
+  include Cinch::Plugin
+
+  match /qup/
+
+  def execute(m)
+    m.reply "qup, ora ti vengo a menare"
+  end
+end

+ 46 - 0
plugins/radio.rb

@@ -0,0 +1,46 @@
+class Radio
+  include Cinch::Plugin
+
+  match /radio play (.*)$/, :method => :on_play
+  match /radio pialla/, :method => :on_pialla
+  match /radio help/, :method => :on_help
+  match /radio info/, :method => :on_info
+  match /radio next/, :method => :on_next
+  
+  def on_play(m, link)
+    if link =~ /http(s):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-]+)(&(amp;)?[\w\?=]*)?/
+      File.open('/tmp/radio', 'w') do |f|
+        f.puts(link)
+        f.flush
+      end
+      open(link).read =~ /<title>(.*?) - YouTube<\/title>/
+      m.reply "New song \""+$1+"\""
+      File.open('/tmp/notify-send', 'w') do |f|
+        f.puts($1)
+        f.flush
+      end
+    end
+  end
+
+  def on_help(m)
+    m.reply 'curl "http://soyuz.labr.xyz:8080/" | play -q - 2>/dev/null'
+  end
+
+  def on_pialla(m)
+    File.open('/tmp/notify-send', 'w') do |f|
+      f.puts("Sto piallando")
+      f.flush
+    end
+    system("mpc del $(mpc -f %position% | head -n 1)")
+  end
+
+  def on_info(m)
+    title = `mpc | head -n 1 | cut -d '#' -f 2 | base64 -d`
+    title.gsub("\n","")
+    m.reply CGI.unescapeHTML(title)
+  end
+
+  def on_next(m)
+    `mpc next`
+  end
+end

+ 9 - 0
plugins/roll.rb

@@ -0,0 +1,9 @@
+class Roll
+  include Cinch::Plugin
+
+  match /roll/
+
+  def execute(m)
+    m.reply rand(1..6)
+  end
+end

+ 9 - 0
plugins/salvino.rb

@@ -0,0 +1,9 @@
+class Salvino
+  include Cinch::Plugin
+
+  match /salvino/
+
+  def execute(m)
+    m.reply "FORZA SALVINO"+("O"*rand(3...10))
+  end
+end

+ 9 - 0
plugins/thegamer.rb

@@ -0,0 +1,9 @@
+class Thegamer
+  include Cinch::Plugin
+
+  match /thegamer/
+
+  def execute(m)
+    m.reply ["ahahahahahaha", "sistemistahahahahah", "Al centro della mia vita metto la coerenza"].sample
+  end
+end

+ 11 - 0
plugins/toninegri.rb

@@ -0,0 +1,11 @@
+class ToniNegri
+  include Cinch::Plugin
+
+  match "toninegri"
+
+  def execute(m)
+    @bot.nick = "toninegri"
+    m.reply "swasp: sono tuo padre"
+    @bot.nick = "TubiaBot"
+  end
+end

+ 10 - 0
plugins/tpo.rb

@@ -0,0 +1,10 @@
+# coding: utf-8
+class Tpo
+  include Cinch::Plugin
+
+  match /(P|p)olitic(a|he|i)/
+
+  def execute(m)
+    m.reply ["ahahahahahaha", "Swasps democrazia! 'Con 1589 votanti si sono concluse le primarie di CoalizioneCivica'","Swasps hashtag per tutti: LaCittàDelBuonVivere #CoalizioneCivica #Bologna LoSportDiCittadinanza tra #benessere e #integrazione", "VIGILI URBANI: UN BUON SINDACO NON DISPREZZA I PROPRI LAVORATORI - Il Sindaco di Bologna... http://fb.me/1XmvjJ2nc" ].sample
+  end
+end

+ 9 - 0
plugins/vergogna.rb

@@ -0,0 +1,9 @@
+class Vergogna
+  include Cinch::Plugin
+
+  match /vergogna/
+
+  def execute(m)
+    m.reply "vergogna vergogna settimo reparto"
+  end
+end

+ 8 - 124
tubiabot.rb

@@ -2,135 +2,16 @@
 require 'cinch'
 require 'marky_markov'
 require 'open-uri'
+require 'cgi'
 
-class ToniNegri
-  include Cinch::Plugin
+plugins = [ :Caffe, :ToniNegri, :Amici, :JS, :Salvino, :Jops, :Qup, :Vergogna, :Film, :Thegamer, :Roll, :Encrypt, :Tpo, :Radio]
 
-  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
+plugins.each do |plugin|
+  require './plugins/'+plugin.downcase.to_s
 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
@@ -141,7 +22,7 @@ bot = Cinch::Bot.new do
     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]
+    c.plugins.plugins = plugins.map { |p| eval(p.to_s) }
   end
 end
 
@@ -152,6 +33,9 @@ bot.on :message do |m|
   if m.message.include?(@bot.nick)
     m.reply markov.generate_n_sentences 1
   end
+  if m.message.include?("jops")
+    m.reply "jops: aggiorna lattuga"
+  end
   if m.message.include?("encrypt")
     File.open('/tmp/lucine', 'w') do |f|
       f.puts('blink 3 0.3')