busk-ruby-readability 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/readability.rb +59 -26
- data/ruby-readability.gemspec +1 -1
- data/spec/fixtures/folha.html +1 -0
- data/spec/fixtures/portalodia.com.html +933 -0
- data/spec/fixtures/portalodia_photo.html +970 -0
- data/spec/readability_spec.rb +45 -0
- data/special_rules.yml +5 -0
- metadata +10 -5
data/spec/readability_spec.rb
CHANGED
@@ -216,4 +216,49 @@ describe Readability do
|
|
216
216
|
|
217
217
|
end
|
218
218
|
|
219
|
+
describe "handles portal o dia" do
|
220
|
+
|
221
|
+
it "should extract the news and images from the page" do
|
222
|
+
url = "http://portalodia.com/noticias/piaui/mais-de-um-veiculo-e-roubado-por-dia-na-capital-102189.html"
|
223
|
+
FakeWeb.register_uri(:get, url,
|
224
|
+
:response => File.read("spec/fixtures/portalodia_photo.html"))
|
225
|
+
@uri = URI.parse(url)
|
226
|
+
@parsed_page = Readability::Document.new(Nokogiri::HTML(open(url)),
|
227
|
+
@uri.host, @uri.request_uri)
|
228
|
+
@content = @parsed_page.content
|
229
|
+
|
230
|
+
@content.should == "<p>\"A gente fica se sentindo impotente. N\303\243o sabe o que fazer\". Foi esse o sentimento que a jornalista Vanessa Viana teve ao saber que o seu carro havia sido levado por um assaltante no bairro Bela Vista, zona Sul de Teresina, no \303\272ltimo dia 29. Assim como Vanessa, de acordo com um levantamento do Comando de Policiamento da Capital da Pol\303\255cia Militar, outras 45 pessoas<br>tiveram seus ve\303\255culos (carros e motocicletas) roubados ou furtados em janeiro deste ano. O n\303\272mero representa uma m\303\251dia de 1,5 ve\303\255culos levados por bandidos diariamente na capital no per\303\255odo.</p><p>\"Eu tinha comprado o carro h\303\241 quatro meses apenas. Quando me falaram, na delegacia, que o assaltante j\303\241 era procurado pela pol\303\255cia, fiquei assustada. Afinal, uma pessoa que podia estar presa levou meu carro\", afirma Vanessa Viana. A jornalista conta que o carro, um Uno Mille novo, na noite em que foi roubado estava estacionado em uma rua no bairro Bela Vista em Teresina. No local, o seu cunhado que dirigia o ve\303\255culo participava de um encontro de jovens da Igreja do bairro.</p><p><img src=\"/media/uploads/filebrowser/moto1.jpg\" alt=\"\" width=\"510\" height=\"339\"></p>"
|
231
|
+
end
|
232
|
+
|
233
|
+
it "should extract the news from the page" do
|
234
|
+
FakeWeb.register_uri(:get, 'http://portalodia.com/noticias/mundo/homem-chama-a-policia-porque-nao-quer-fazer-sexo-com-a-mulher-100984.html',
|
235
|
+
:response => File.read("spec/fixtures/portalodia.com.html"))
|
236
|
+
@uri = URI.parse("http://portalodia.com/noticias/mundo/homem-chama-a-policia-porque-nao-quer-fazer-sexo-com-a-mulher-100984.html")
|
237
|
+
@parsed_page = Readability::Document.new(Nokogiri::HTML(open('http://portalodia.com/noticias/mundo/homem-chama-a-policia-porque-nao-quer-fazer-sexo-com-a-mulher-100984.html')),
|
238
|
+
@uri.host, @uri.request_uri)
|
239
|
+
@content = @parsed_page.content
|
240
|
+
|
241
|
+
@content.should == "<p>A pol\303\255cia alem\303\243 informou nesta ter\303\247a-feira que recebeu um chamado no m\303\255nimo inusitado. Um homem da cidade de Waiblingen, distrito de Stuttgart, ligou para os policiais porque n\303\243o queria mais fazer sexo com sua mulher.</p><p>De acordo com ele, apesar de recusar seguidamente as ofertas, ela continua insistindo e n\303\243o o\302\240deixa dormir. O casal, que tem dois filhos, est\303\241 junto h\303\241 18 anos, mas j\303\241 n\303\243o dorme na mesma cama h\303\241 quatro.\302\240</p><p>Embora o caso seja curioso, n\303\243o \303\251 in\303\251dito no pa\303\255s europeu. Em 2006, a pol\303\255cia de Aachen, oeste da Alemanha, foi acionada por uma mulher que acusava o marido de n\303\243o cumprir suas obriga\303\247\303\265es conjugais.</p><p>Na ocasi\303\243o, ap\303\263s meses sem nenhum contato f\303\255sico, ela acordou no meio da madrugada e exigiu que o c\303\264njuge satisfizesse suas necessidades sexuais. Frustrada por ter seu pedido negado, ela acionou os agentes, que nada puderam fazer.</p><p>O porta voz da pol\303\255cia, Paul Kemen, explicou \303\240 \303\251poca que os policiais n\303\243o se sentiram capazes de resolver o caso. \"O que eles puderam fazer foi abrir uma ocorr\303\252ncia para o caso de uma poss\303\255vel interven\303\247\303\243o futura\", disse.\302\240</p>"
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
describe "#has_special_rule?" do
|
246
|
+
it "should return true when I have a special rule" do
|
247
|
+
url = "http://portalodia.com/noticias/piaui/mais-de-um-veiculo-e-roubado-por-dia-na-capital-102189.html"
|
248
|
+
FakeWeb.register_uri(:get, url,
|
249
|
+
:response => File.read("spec/fixtures/portalodia_photo.html"))
|
250
|
+
@uri = URI.parse(url)
|
251
|
+
@parsed_page = Readability::Document.new(Nokogiri::HTML(open(url)), @uri.host, @uri.request_uri)
|
252
|
+
@parsed_page.has_special_rule?.should be_true
|
253
|
+
end
|
254
|
+
|
255
|
+
it "should return false when I don't have a special rule" do
|
256
|
+
url = "http://globoesporte.globo.com/futebol/times/internacional/noticia/2011/02/inter-ainda-aguarda-sinal-verde-da-fifa-para-cavenaghi-ser-relacionado.html"
|
257
|
+
FakeWeb.register_uri(:get, url,
|
258
|
+
:response => File.read("spec/fixtures/portalodia_photo.html"))
|
259
|
+
@uri = URI.parse(url)
|
260
|
+
@parsed_page = Readability::Document.new(Nokogiri::HTML(open(url)), @uri.host, @uri.request_uri)
|
261
|
+
@parsed_page.has_special_rule?.should be_false
|
262
|
+
end
|
263
|
+
end
|
219
264
|
end
|
data/special_rules.yml
ADDED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: busk-ruby-readability
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 1.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Fabio Mont Alegre
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-
|
19
|
+
date: 2011-02-11 00:00:00 -02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies: []
|
22
22
|
|
@@ -37,6 +37,8 @@ files:
|
|
37
37
|
- ruby-readability.gemspec
|
38
38
|
- spec/fixtures/cant_read.html
|
39
39
|
- spec/fixtures/folha.html
|
40
|
+
- spec/fixtures/portalodia.com.html
|
41
|
+
- spec/fixtures/portalodia_photo.html
|
40
42
|
- spec/fixtures/sample.html
|
41
43
|
- spec/fixtures/samples/channel4-1-fragments.rb
|
42
44
|
- spec/fixtures/samples/channel4-1.html
|
@@ -47,6 +49,7 @@ files:
|
|
47
49
|
- spec/readability_spec.rb
|
48
50
|
- spec/spec.opts
|
49
51
|
- spec/spec_helper.rb
|
52
|
+
- special_rules.yml
|
50
53
|
- test_on_url.rb
|
51
54
|
has_rdoc: true
|
52
55
|
homepage: http://github.com/busk/ruby-readability
|
@@ -85,6 +88,8 @@ summary: A rewrite of original ruby-readability
|
|
85
88
|
test_files:
|
86
89
|
- spec/fixtures/cant_read.html
|
87
90
|
- spec/fixtures/folha.html
|
91
|
+
- spec/fixtures/portalodia.com.html
|
92
|
+
- spec/fixtures/portalodia_photo.html
|
88
93
|
- spec/fixtures/sample.html
|
89
94
|
- spec/fixtures/samples/channel4-1-fragments.rb
|
90
95
|
- spec/fixtures/samples/channel4-1.html
|