descartes 0.7 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/descartes +125 -125
- data/lib/descartes.rb +20 -20
- data/lib/descartes/descartes.rb +27 -27
- data/lib/descartes/modules/crunchyroll.rb +35 -35
- data/lib/descartes/modules/currency.rb +35 -35
- data/lib/descartes/modules/dicteng.rb +30 -30
- data/lib/descartes/modules/files/lastfm_api.yml +1 -1
- data/lib/descartes/modules/files/replies.txt +10 -4
- data/lib/descartes/modules/files/sindaco.txt +18 -18
- data/lib/descartes/modules/google.rb +48 -48
- data/lib/descartes/modules/lastfm.rb +91 -91
- data/lib/descartes/modules/musicthoughts.rb +33 -33
- data/lib/descartes/modules/pigro.rb +144 -144
- data/lib/descartes/modules/quotone.rb +35 -35
- data/lib/descartes/modules/reply.rb +27 -27
- data/lib/descartes/modules/rpn.rb +43 -43
- data/lib/descartes/modules/seen.rb +48 -48
- data/lib/descartes/modules/shinbo.rb +23 -23
- data/lib/descartes/modules/sindaco.rb +27 -27
- data/lib/descartes/modules/treccani.rb +58 -58
- data/lib/descartes/modules/url.rb +36 -36
- data/lib/descartes/utils.rb +42 -42
- data/lib/descartes/version.rb +19 -19
- metadata +2 -2
@@ -1,30 +1,30 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
##
|
3
|
-
### DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
4
|
-
### Version 2, December 2004
|
5
|
-
###
|
6
|
-
### Everyone is permitted to copy and distribute verbatim or modified
|
7
|
-
### copies of this license document, and changing it is allowed as long
|
8
|
-
### as the name is changed.
|
9
|
-
###
|
10
|
-
### DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
11
|
-
### TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
12
|
-
###
|
13
|
-
### 0. You just DO WHAT THE FUCK YOU WANT TO.
|
14
|
-
|
15
|
-
require 'nokogiri'
|
16
|
-
require 'open-uri'
|
17
|
-
|
18
|
-
class Descartes
|
19
|
-
class Dicteng
|
20
|
-
include Cinch::Plugin
|
21
|
-
|
22
|
-
match /!dict ([a-zA-Z]+) ([a-zA-Z]+)/, use_prefix: false
|
23
|
-
|
24
|
-
def execute(m, action, word)
|
25
|
-
url = "http://www.wordreference.com/#{action}/#{word}"
|
26
|
-
page = Nokogiri::HTML open(url)
|
27
|
-
m.reply "#{page.xpath('//table[@class="WRD"]/tr[2]').text} di più qui: #{url}"
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
1
|
+
# encoding: UTF-8
|
2
|
+
##
|
3
|
+
### DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
4
|
+
### Version 2, December 2004
|
5
|
+
###
|
6
|
+
### Everyone is permitted to copy and distribute verbatim or modified
|
7
|
+
### copies of this license document, and changing it is allowed as long
|
8
|
+
### as the name is changed.
|
9
|
+
###
|
10
|
+
### DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
11
|
+
### TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
12
|
+
###
|
13
|
+
### 0. You just DO WHAT THE FUCK YOU WANT TO.
|
14
|
+
|
15
|
+
require 'nokogiri'
|
16
|
+
require 'open-uri'
|
17
|
+
|
18
|
+
class Descartes
|
19
|
+
class Dicteng
|
20
|
+
include Cinch::Plugin
|
21
|
+
|
22
|
+
match /!dict ([a-zA-Z]+) ([a-zA-Z]+)/, use_prefix: false
|
23
|
+
|
24
|
+
def execute(m, action, word)
|
25
|
+
url = "http://www.wordreference.com/#{action}/#{word}"
|
26
|
+
page = Nokogiri::HTML open(url)
|
27
|
+
m.reply "#{page.xpath('//table[@class="WRD"]/tr[2]').text} di più qui: #{url}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -1,2 +1,2 @@
|
|
1
|
-
api_key:
|
1
|
+
api_key:
|
2
2
|
api_secret:
|
@@ -2,7 +2,6 @@ In una scala da 1 a 10 la tua petulanza meriterebbe un 9+.
|
|
2
2
|
Cerchi forse consolazione, stolido humano?
|
3
3
|
La tua stupidità scardina con violenza le mie tesi.
|
4
4
|
Sembra che il tuo nome sia sinonimo di ignoranza e trivialità.
|
5
|
-
Quello che voi chiamate 'chicco' o 'seme' riferendovi alla cariosside di frumento, non è altro che un frutto.
|
6
5
|
Ciò che dico è già stato scritto affinché possa resistere al tempo come le rovine di antiche città.
|
7
6
|
Ciò che ci circonda può sembrare casuale, ma in realtà è tutto calcolato e armonioso.
|
8
7
|
L'unica risposta adatta all'ignoranza è senz'altro il silenzio.
|
@@ -23,8 +22,15 @@ Del doman non v'è certezza, meglio un BLOW che una carezza.
|
|
23
22
|
Straordinario.
|
24
23
|
Ma ovviamente.
|
25
24
|
Dovresti metterti una tarantola in gola, scellerato.
|
26
|
-
Ma un gran sticazzi
|
25
|
+
Ma un gran sticazzi no, eh?
|
27
26
|
Stai un po' zitto.
|
28
27
|
Sei per caso RoxasShadow in incognito? Il faggometro ha segnato un picco.
|
29
|
-
Figghiu i bottana
|
30
|
-
Non contare su di me.
|
28
|
+
Figghiu i bottana.
|
29
|
+
Non contare su di me.
|
30
|
+
Non ti curar di loro, ma guarda e passa.
|
31
|
+
Gesù Iddio, interrompi questo scempio di neuroni.
|
32
|
+
Dovresti tenere le tue idiozie nei confini della tua sporca mente.
|
33
|
+
Un momento, mi sto dedicando al giardinaggio.
|
34
|
+
Le tue idee mi fanno perdere le staffe, manigoldo.
|
35
|
+
Nulla da dire a riguardo.
|
36
|
+
Dovrebbero privarti dell'uso delle dita.
|
@@ -1,19 +1,19 @@
|
|
1
|
-
E così vuoi fare il fansubber? Quanto hai detto che porta di reggiseno la tua ragazza?
|
2
|
-
He's the hero that your girlfriend deserves. But not the one she needs right now.
|
3
|
-
Ma se gli FTF sono una grande famiglia, non è che il sindaco stava solo mettendo a letto la bambina?
|
4
|
-
Sindaco-chan, mi hanno detto che ti sei portato due pigiamo a Pisa con la mia ragazza / Sì, Ptole-kun, ma stai tranquillo: non li abbiamo usati.
|
5
|
-
One does not simply: sifon your girlfriend like Sindaco.
|
6
|
-
One cannot simply have a girlfriend, if he is in FTF.
|
7
|
-
I used to be a fansubber like you. Then I took a Ptole's girlfriend in the bed.
|
8
|
-
I don't always sifon. But when I do, it's your girlfriend.
|
9
|
-
Tisifone? No, Tisifono.
|
10
|
-
http://i.imgur.com/B7gBq.jpg
|
11
|
-
Ho chiesto alla fidanzata di Ptolemaios se mi aiutava a sistemare il tubo del lavandino che perdeva.
|
12
|
-
http://i47.tinypic.com/fjj3gx.jpg
|
13
|
-
Io dico solo che il Detective Conan è il motivo per cui il Giappone si meriterebbe un'altra bomba atomica.
|
14
|
-
Ti farò lezioni di encode quando tua madre sarà in oncologia.
|
15
|
-
Il Sindaco è comunista quanto Hitler / Si, forse un pochino di più / Nel senso che ha la passione in comune per il genocidio? / No, per le loli.
|
16
|
-
La Ninna Nanna del Sindaco: Dormi dormi / bella bambina / che c'è il sindaco che s'avvicina. / Il letto traballa / e l'orsetto se la squaglia. / La mammina resta in cucina / e col babbo fa melina. / Basta solo che dal corridoio / non vedan la pelata di quell'avvoltoio.
|
17
|
-
Il fansub italiano è ostaggio di un manipolo di lanzichenecchi.
|
18
|
-
Nel mulino che vorrei, ragazza d'altri e pigiami miei.
|
1
|
+
E così vuoi fare il fansubber? Quanto hai detto che porta di reggiseno la tua ragazza?
|
2
|
+
He's the hero that your girlfriend deserves. But not the one she needs right now.
|
3
|
+
Ma se gli FTF sono una grande famiglia, non è che il sindaco stava solo mettendo a letto la bambina?
|
4
|
+
Sindaco-chan, mi hanno detto che ti sei portato due pigiamo a Pisa con la mia ragazza / Sì, Ptole-kun, ma stai tranquillo: non li abbiamo usati.
|
5
|
+
One does not simply: sifon your girlfriend like Sindaco.
|
6
|
+
One cannot simply have a girlfriend, if he is in FTF.
|
7
|
+
I used to be a fansubber like you. Then I took a Ptole's girlfriend in the bed.
|
8
|
+
I don't always sifon. But when I do, it's your girlfriend.
|
9
|
+
Tisifone? No, Tisifono.
|
10
|
+
http://i.imgur.com/B7gBq.jpg
|
11
|
+
Ho chiesto alla fidanzata di Ptolemaios se mi aiutava a sistemare il tubo del lavandino che perdeva.
|
12
|
+
http://i47.tinypic.com/fjj3gx.jpg
|
13
|
+
Io dico solo che il Detective Conan è il motivo per cui il Giappone si meriterebbe un'altra bomba atomica.
|
14
|
+
Ti farò lezioni di encode quando tua madre sarà in oncologia.
|
15
|
+
Il Sindaco è comunista quanto Hitler / Si, forse un pochino di più / Nel senso che ha la passione in comune per il genocidio? / No, per le loli.
|
16
|
+
La Ninna Nanna del Sindaco: Dormi dormi / bella bambina / che c'è il sindaco che s'avvicina. / Il letto traballa / e l'orsetto se la squaglia. / La mammina resta in cucina / e col babbo fa melina. / Basta solo che dal corridoio / non vedan la pelata di quell'avvoltoio.
|
17
|
+
Il fansub italiano è ostaggio di un manipolo di lanzichenecchi.
|
18
|
+
Nel mulino che vorrei, ragazza d'altri e pigiami miei.
|
19
19
|
Ad Agosto, visto che vado a farmi un tour delle Repubbliche Baltiche, ci vorrà il pigiama?
|
@@ -1,49 +1,49 @@
|
|
1
|
-
##
|
2
|
-
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
-
# Version 2, December 2004
|
4
|
-
#
|
5
|
-
# Everyone is permitted to copy and distribute verbatim or modified
|
6
|
-
# copies of this license document, and changing it is allowed as long
|
7
|
-
# as the name is changed.
|
8
|
-
#
|
9
|
-
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
10
|
-
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
11
|
-
#
|
12
|
-
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
13
|
-
##
|
14
|
-
|
15
|
-
require 'open-uri'
|
16
|
-
require 'nokogiri'
|
17
|
-
require 'cgi'
|
18
|
-
|
19
|
-
class Descartes
|
20
|
-
class Google
|
21
|
-
include Cinch::Plugin
|
22
|
-
match /google (.+)/
|
23
|
-
|
24
|
-
def search(query)
|
25
|
-
page = Nokogiri::HTML open("http://www.google.com/search?q=#{CGI.escape(query)}")
|
26
|
-
|
27
|
-
[].tap { |res|
|
28
|
-
page.search('cite').each { |r|
|
29
|
-
res << { url: r.inner_text }
|
30
|
-
}
|
31
|
-
|
32
|
-
page.xpath('//h3[@class="r"]').each_with_index { |r, i|
|
33
|
-
res[i][:title] = r.child.inner_text
|
34
|
-
}
|
35
|
-
}
|
36
|
-
end
|
37
|
-
|
38
|
-
def execute(m, query)
|
39
|
-
res = search query
|
40
|
-
|
41
|
-
if res.empty?
|
42
|
-
# m.reply 'No results found.'
|
43
|
-
m.reply 'Nessun risultato.'
|
44
|
-
else
|
45
|
-
res[0..3].each { |r| m.reply "#{r[:title]} - #{r[:url]}" }
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
1
|
+
##
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
+
# Version 2, December 2004
|
4
|
+
#
|
5
|
+
# Everyone is permitted to copy and distribute verbatim or modified
|
6
|
+
# copies of this license document, and changing it is allowed as long
|
7
|
+
# as the name is changed.
|
8
|
+
#
|
9
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
10
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
11
|
+
#
|
12
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
13
|
+
##
|
14
|
+
|
15
|
+
require 'open-uri'
|
16
|
+
require 'nokogiri'
|
17
|
+
require 'cgi'
|
18
|
+
|
19
|
+
class Descartes
|
20
|
+
class Google
|
21
|
+
include Cinch::Plugin
|
22
|
+
match /google (.+)/
|
23
|
+
|
24
|
+
def search(query)
|
25
|
+
page = Nokogiri::HTML open("http://www.google.com/search?q=#{CGI.escape(query)}")
|
26
|
+
|
27
|
+
[].tap { |res|
|
28
|
+
page.search('cite').each { |r|
|
29
|
+
res << { url: r.inner_text }
|
30
|
+
}
|
31
|
+
|
32
|
+
page.xpath('//h3[@class="r"]').each_with_index { |r, i|
|
33
|
+
res[i][:title] = r.child.inner_text
|
34
|
+
}
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
def execute(m, query)
|
39
|
+
res = search query
|
40
|
+
|
41
|
+
if res.empty?
|
42
|
+
# m.reply 'No results found.'
|
43
|
+
m.reply 'Nessun risultato.'
|
44
|
+
else
|
45
|
+
res[0..3].each { |r| m.reply "#{r[:title]} - #{r[:url]}" }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
49
|
end
|
@@ -1,91 +1,91 @@
|
|
1
|
-
##
|
2
|
-
## DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
-
## Version 2, December 2004
|
4
|
-
##
|
5
|
-
## Everyone is permitted to copy and distribute verbatim or modified
|
6
|
-
## copies of this license document, and changing it is allowed as long
|
7
|
-
## as the name is changed.
|
8
|
-
##
|
9
|
-
## DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
10
|
-
## TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
11
|
-
##
|
12
|
-
## 0. You just DO WHAT THE FUCK YOU WANT TO.
|
13
|
-
##
|
14
|
-
|
15
|
-
require 'rockstar'
|
16
|
-
require 'yaml'
|
17
|
-
require 'fileutils'
|
18
|
-
|
19
|
-
class Descartes
|
20
|
-
class LastFm
|
21
|
-
include Cinch::Plugin
|
22
|
-
|
23
|
-
def authenticate!
|
24
|
-
file = File.join $options[:dotfiles], 'lastfm_api.yml'
|
25
|
-
Rockstar.lastfm = YAML.load_file file
|
26
|
-
end
|
27
|
-
|
28
|
-
def get_lastfm_nicks_archive
|
29
|
-
file = File.join $options[:dotfiles], 'lastfm_nicks.yml'
|
30
|
-
FileUtils.touch file unless File.exists? file
|
31
|
-
YAML.load_file(file) || {}
|
32
|
-
end
|
33
|
-
|
34
|
-
match 'lastsong', method: :last_played_song
|
35
|
-
def last_played_song(m)
|
36
|
-
authenticate!
|
37
|
-
|
38
|
-
usernick = m.user.nick
|
39
|
-
lastfmnick = get_lastfm_nicks_archive[usernick]
|
40
|
-
m.reply "Hey #{usernick.colorize}, I don't know your Last.fm nick. add it using '!lastfmuser add <lastfmnick>'." unless lastfmnick
|
41
|
-
|
42
|
-
user = Rockstar::User.new lastfmnick
|
43
|
-
track = user.recent_tracks.first
|
44
|
-
|
45
|
-
album = track.album.empty? ? 'in no known album' : "in #{track.album.colorize}"
|
46
|
-
if track.now_playing?
|
47
|
-
m.reply "#{lastfmnick.colorize} is listening to #{track.name.colorize} by #{track.artist.colorize} (#{album}) right now!"
|
48
|
-
else
|
49
|
-
m.reply "The last song #{lastfmnick.colorize} listened to is #{track.name.colorize} by #{track.artist.colorize} (#{album})."
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
match /lastfmuser add (\w{1,15})/, method: :add_user
|
54
|
-
def add_user(m, lastfmnick)
|
55
|
-
nicks = get_lastfm_nicks_archive
|
56
|
-
nicks[m.user.nick] = lastfmnick
|
57
|
-
|
58
|
-
file = File.join $options[:dotfiles], 'lastfm_nicks.yml'
|
59
|
-
File.open(file, ?w) { |f| f.write YAML.dump(nicks) }
|
60
|
-
|
61
|
-
m.reply "Ok, added user #{lastfmnick}."
|
62
|
-
end
|
63
|
-
|
64
|
-
match /lastfmuser remove (\w{1,15})/, method: :remove_user
|
65
|
-
def remove_user(m, lastfmnick)
|
66
|
-
nicks = get_lastfm_nicks_archive
|
67
|
-
nicks.delete lastfmnick
|
68
|
-
|
69
|
-
file = File.join $options[:dotfiles], 'lastfm_nicks.yml'
|
70
|
-
File.open(file, ?w) { |f| f.write YAML.dump(nicks) }
|
71
|
-
|
72
|
-
m.reply "Ok, removed user #{lastfmnick}."
|
73
|
-
end
|
74
|
-
|
75
|
-
match /lastfmuser show ([^\b]+)/, method: :show_relations
|
76
|
-
def show_relations(m, usernicks)
|
77
|
-
usernick_list = usernicks.split
|
78
|
-
found = false
|
79
|
-
|
80
|
-
get_lastfm_nicks_archive.each { |usernick, lastfmnick|
|
81
|
-
if usernick_list.include? usernick
|
82
|
-
found = true
|
83
|
-
m.reply "#{usernick} is known as #{lastfmnick}."
|
84
|
-
end
|
85
|
-
}
|
86
|
-
|
87
|
-
m.reply 'I don\'t know anthing, I know only what I know.' unless found
|
88
|
-
end
|
89
|
-
|
90
|
-
end
|
91
|
-
end
|
1
|
+
##
|
2
|
+
## DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
+
## Version 2, December 2004
|
4
|
+
##
|
5
|
+
## Everyone is permitted to copy and distribute verbatim or modified
|
6
|
+
## copies of this license document, and changing it is allowed as long
|
7
|
+
## as the name is changed.
|
8
|
+
##
|
9
|
+
## DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
10
|
+
## TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
11
|
+
##
|
12
|
+
## 0. You just DO WHAT THE FUCK YOU WANT TO.
|
13
|
+
##
|
14
|
+
|
15
|
+
require 'rockstar'
|
16
|
+
require 'yaml'
|
17
|
+
require 'fileutils'
|
18
|
+
|
19
|
+
class Descartes
|
20
|
+
class LastFm
|
21
|
+
include Cinch::Plugin
|
22
|
+
|
23
|
+
def authenticate!
|
24
|
+
file = File.join $options[:dotfiles], 'lastfm_api.yml'
|
25
|
+
Rockstar.lastfm = YAML.load_file file
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_lastfm_nicks_archive
|
29
|
+
file = File.join $options[:dotfiles], 'lastfm_nicks.yml'
|
30
|
+
FileUtils.touch file unless File.exists? file
|
31
|
+
YAML.load_file(file) || {}
|
32
|
+
end
|
33
|
+
|
34
|
+
match 'lastsong', method: :last_played_song
|
35
|
+
def last_played_song(m)
|
36
|
+
authenticate!
|
37
|
+
|
38
|
+
usernick = m.user.nick
|
39
|
+
lastfmnick = get_lastfm_nicks_archive[usernick]
|
40
|
+
m.reply "Hey #{usernick.colorize}, I don't know your Last.fm nick. add it using '!lastfmuser add <lastfmnick>'." unless lastfmnick
|
41
|
+
|
42
|
+
user = Rockstar::User.new lastfmnick
|
43
|
+
track = user.recent_tracks.first
|
44
|
+
|
45
|
+
album = track.album.empty? ? 'in no known album' : "in #{track.album.colorize}"
|
46
|
+
if track.now_playing?
|
47
|
+
m.reply "#{lastfmnick.colorize} is listening to #{track.name.colorize} by #{track.artist.colorize} (#{album}) right now!"
|
48
|
+
else
|
49
|
+
m.reply "The last song #{lastfmnick.colorize} listened to is #{track.name.colorize} by #{track.artist.colorize} (#{album})."
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
match /lastfmuser add (\w{1,15})/, method: :add_user
|
54
|
+
def add_user(m, lastfmnick)
|
55
|
+
nicks = get_lastfm_nicks_archive
|
56
|
+
nicks[m.user.nick] = lastfmnick
|
57
|
+
|
58
|
+
file = File.join $options[:dotfiles], 'lastfm_nicks.yml'
|
59
|
+
File.open(file, ?w) { |f| f.write YAML.dump(nicks) }
|
60
|
+
|
61
|
+
m.reply "Ok, added user #{lastfmnick}."
|
62
|
+
end
|
63
|
+
|
64
|
+
match /lastfmuser remove (\w{1,15})/, method: :remove_user
|
65
|
+
def remove_user(m, lastfmnick)
|
66
|
+
nicks = get_lastfm_nicks_archive
|
67
|
+
nicks.delete lastfmnick
|
68
|
+
|
69
|
+
file = File.join $options[:dotfiles], 'lastfm_nicks.yml'
|
70
|
+
File.open(file, ?w) { |f| f.write YAML.dump(nicks) }
|
71
|
+
|
72
|
+
m.reply "Ok, removed user #{lastfmnick}."
|
73
|
+
end
|
74
|
+
|
75
|
+
match /lastfmuser show ([^\b]+)/, method: :show_relations
|
76
|
+
def show_relations(m, usernicks)
|
77
|
+
usernick_list = usernicks.split
|
78
|
+
found = false
|
79
|
+
|
80
|
+
get_lastfm_nicks_archive.each { |usernick, lastfmnick|
|
81
|
+
if usernick_list.include? usernick
|
82
|
+
found = true
|
83
|
+
m.reply "#{usernick} is known as #{lastfmnick}."
|
84
|
+
end
|
85
|
+
}
|
86
|
+
|
87
|
+
m.reply 'I don\'t know anthing, I know only what I know.' unless found
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
end
|
@@ -1,34 +1,34 @@
|
|
1
|
-
##
|
2
|
-
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
-
# Version 2, December 2004
|
4
|
-
#
|
5
|
-
# Everyone is permitted to copy and distribute verbatim or modified
|
6
|
-
# copies of this license document, and changing it is allowed as long
|
7
|
-
# as the name is changed.
|
8
|
-
#
|
9
|
-
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
10
|
-
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
11
|
-
#
|
12
|
-
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
13
|
-
##
|
14
|
-
|
15
|
-
require 'open-uri'
|
16
|
-
require 'nokogiri'
|
17
|
-
|
18
|
-
class Descartes
|
19
|
-
class MusicToughts
|
20
|
-
include Cinch::Plugin
|
21
|
-
match 'music'
|
22
|
-
|
23
|
-
def execute(m)
|
24
|
-
lang = { 'Cookie' => 'lang=it' }
|
25
|
-
page = Nokogiri::HTML open('http://musicthoughts.com/t', lang)
|
26
|
-
|
27
|
-
quote = page.at_xpath('//blockquote//q').text.strip
|
28
|
-
author = page.at_xpath('//blockquote//cite').text.strip
|
29
|
-
|
30
|
-
m.reply quote
|
31
|
-
m.reply "- #{author}"
|
32
|
-
end
|
33
|
-
end
|
1
|
+
##
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
+
# Version 2, December 2004
|
4
|
+
#
|
5
|
+
# Everyone is permitted to copy and distribute verbatim or modified
|
6
|
+
# copies of this license document, and changing it is allowed as long
|
7
|
+
# as the name is changed.
|
8
|
+
#
|
9
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
10
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
11
|
+
#
|
12
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
13
|
+
##
|
14
|
+
|
15
|
+
require 'open-uri'
|
16
|
+
require 'nokogiri'
|
17
|
+
|
18
|
+
class Descartes
|
19
|
+
class MusicToughts
|
20
|
+
include Cinch::Plugin
|
21
|
+
match 'music'
|
22
|
+
|
23
|
+
def execute(m)
|
24
|
+
lang = { 'Cookie' => 'lang=it' }
|
25
|
+
page = Nokogiri::HTML open('http://musicthoughts.com/t', lang)
|
26
|
+
|
27
|
+
quote = page.at_xpath('//blockquote//q').text.strip
|
28
|
+
author = page.at_xpath('//blockquote//cite').text.strip
|
29
|
+
|
30
|
+
m.reply quote
|
31
|
+
m.reply "- #{author}"
|
32
|
+
end
|
33
|
+
end
|
34
34
|
end
|