mechanize_content 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rvmrc +1 -0
- data/Rakefile +5 -0
- data/lib/mechanize_content/image.rb +61 -0
- data/lib/mechanize_content/page.rb +115 -0
- data/lib/mechanize_content/util.rb +4 -31
- data/lib/mechanize_content/version.rb +1 -1
- data/lib/mechanize_content.rb +8 -168
- data/mechanize_content.gemspec +2 -1
- data/spec/cassettes/MechanizeContent.yml +33742 -0
- data/spec/cassettes/MechanizeContent_Image.yml +279 -0
- data/spec/mechanize_content/image_spec.rb +39 -0
- data/spec/mechanize_content/page_spec.rb +90 -0
- data/spec/mechanize_content_spec.rb +149 -0
- data/spec/spec_helper.rb +11 -1
- metadata +29 -45
- data/spec/fixtures/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on.html +0 -754
- data/spec/fixtures/another-world-15th-anniversary-edition-now-on-gog-com.html +0 -2416
- data/spec/fixtures/another_world_15th_anniversary_edition.html +0 -805
- data/spec/fixtures/cmp.html +0 -333
- data/spec/fixtures/episodes_from_liberty_city_now_coming_to_playstation_3_and_pc_this_april.html +0 -1593
- data/spec/fixtures/gdc_2010_rounds_off_indie_cove.html +0 -698
- data/spec/fixtures/google.html +0 -42
- data/spec/fixtures/gta-iv-episodes-from-liberty-city-sees-slight-delay-on-pc-and-ps3.html +0 -1012
- data/spec/fixtures/johnny.jpg +0 -0
- data/spec/fixtures/joystiq-xbox-usb-support-580.jpg +0 -0
- data/spec/fixtures/mutiny.html +0 -264
- data/spec/fixtures/nuff-said-good-old-games-gets-another-world-168150.html +0 -5492
- data/spec/fixtures/rock-band-3-out-this-holiday-will-revolutionize-genre.html +0 -1157
- data/spec/fixtures/rockband_facebook.html +0 -93
- data/spec/fixtures/spartan.html +0 -391
- data/spec/fixtures/techmeme.html +0 -2216
- data/spec/fixtures/time-warner-retail-egm.html +0 -49
- data/spec/fixtures/witcher.html +0 -458
- data/spec/fixtures/xbox-360-gaining-usb-storage-support-in-2010-update.html +0 -2462
- data/spec/mechanize-content_spec.rb +0 -202
@@ -0,0 +1,279 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://media.giantbomb.com:80/uploads/8/82135/1655259-background_black_v3_middle.jpg
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
referer:
|
9
|
+
- http://splitstate.com
|
10
|
+
response: !ruby/struct:VCR::Response
|
11
|
+
status: !ruby/struct:VCR::ResponseStatus
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
x-amz-id-2:
|
16
|
+
- sqo07dmpz5IvD5DG5XrEpL/uDl/nA28DKeyTl81r2JsRexATnq7Y660CFx2jVC+B
|
17
|
+
x-amz-request-id:
|
18
|
+
- 5EA19F1DAE6FC021
|
19
|
+
date:
|
20
|
+
- Fri, 27 May 2011 22:30:30 GMT
|
21
|
+
cache-control:
|
22
|
+
- max-age=315360000, public
|
23
|
+
expires:
|
24
|
+
- Thu, 31 Dec 2037 23:55:55 GMT
|
25
|
+
last-modified:
|
26
|
+
- Fri, 27 May 2011 21:17:36 GMT
|
27
|
+
etag:
|
28
|
+
- "\"b075f6409bd435cadad832211e97a8ca\""
|
29
|
+
accept-ranges:
|
30
|
+
- bytes
|
31
|
+
content-type:
|
32
|
+
- image/jpeg
|
33
|
+
content-length:
|
34
|
+
- "10437"
|
35
|
+
server:
|
36
|
+
- AmazonS3
|
37
|
+
age:
|
38
|
+
- "128322"
|
39
|
+
x-cache:
|
40
|
+
- Hit from cloudfront
|
41
|
+
x-amz-cf-id:
|
42
|
+
- 039fc8c57ad630d79423e73698def66e69b5737575f655aafe9d55fb9d623a02364c95028dbafdc8
|
43
|
+
via:
|
44
|
+
- 1.0 227087338674ca3d3d23a79539f2998b.cloudfront.net:11180 (CloudFront), 1.0 c27ac78e369067481a204547ae56aef7.cloudfront.net:11180 (CloudFront)
|
45
|
+
body: !binary |
|
46
|
+
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL
|
47
|
+
DBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/
|
48
|
+
2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
|
49
|
+
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACvARgDASIAAhEBAxEB/8QA
|
50
|
+
HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUF
|
51
|
+
BAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
|
52
|
+
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1
|
53
|
+
dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
|
54
|
+
x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEB
|
55
|
+
AQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAEC
|
56
|
+
AxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRom
|
57
|
+
JygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
|
58
|
+
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU
|
59
|
+
1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDbUVIopiip
|
60
|
+
VFdbMkPUVIopqipFFQzRCgU8CkAp4FQzRCgU4CkAp4FQy0AWpkWmCpVNQzSJ
|
61
|
+
YijzWjBbg44qnB2rYtV6VhJmnQlhtAe1Wfsi46VYhUYqbHFXBaHLOWplS2gx
|
62
|
+
0rOntMA8V0TrVC5QYNTLQ0pyOUuYcE1nTRgqVIBBrobtBzxWBdzxxS7Sy9Oe
|
63
|
+
auEu5tKN0crrirb8ICB1Ncrc3TSltxOB2rqNduI5kEkThozkZHrXGTN8xpt6
|
64
|
+
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
|
278
|
+
|
279
|
+
http_version: "1.0"
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MechanizeContent::Image do
|
4
|
+
use_vcr_cassette :record => :new_episodes
|
5
|
+
|
6
|
+
describe "#interesting_css?" do
|
7
|
+
context "given a gif" do
|
8
|
+
it "is not interesting" do
|
9
|
+
img = {"src" => "http://www.cmpevents.com/GD10/ablank.gif2", "width" => 500, "height" => 500}
|
10
|
+
image = MechanizeContent::Image.new(img, "https://www.cmpevents.com")
|
11
|
+
image.should_not be_interesting_css
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "given a banner" do
|
16
|
+
it "is not interesting" do
|
17
|
+
img = {"src" => "http://www.cmpevents.com/GD10/banner.png", "width" => 500, "height" => 500}
|
18
|
+
image = MechanizeContent::Image.new(img, "https://www.cmpevents.com")
|
19
|
+
image.should_not be_interesting_css
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context "given a small image" do
|
24
|
+
it "is not interesting" do
|
25
|
+
img = {"src" => "http://www.cmpevents.com/GD10/toosmall.png", "width" => 64, "height" => 500}
|
26
|
+
image = MechanizeContent::Image.new(img, "https://www.cmpevents.com")
|
27
|
+
image.should_not be_interesting_css
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context "given a well sized non advertising image" do
|
32
|
+
it "is valid" do
|
33
|
+
img = {"src" => "http://media.giantbomb.com/uploads/8/82135/1655259-background_black_v3_middle.jpg", "width" => 500, "height" => 500}
|
34
|
+
image = MechanizeContent::Image.new(img, "http://www.giantbomb.com/news/to-congress-from-sony-we-still-dont-know-who-hacked-us-dont-believe-credit-card-data-taken/3273/")
|
35
|
+
image.should be_interesting_css
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MechanizeContent::Page do
|
4
|
+
use_vcr_cassette "MechanizeContent", :record => :new_episodes
|
5
|
+
|
6
|
+
describe "#base_url" do
|
7
|
+
context "given a page" do
|
8
|
+
it "will have a base url" do
|
9
|
+
mc = MechanizeContent::Page.new("http://www.mutinydesign.co.uk/scripts/html-base-tag---1/")
|
10
|
+
mc.base_url.to_s.should eql("http://www.mutinydesign.co.uk")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#image" do
|
16
|
+
context "given a page with content" do
|
17
|
+
it "will find an image" do
|
18
|
+
mc = MechanizeContent::Page.new("http://www.rockstargames.com/newswire/article/16021/street-crimes-of-la-noire-new-screenshots-info.html")
|
19
|
+
mc.image.should eql("http://media.rockstargames.com/rockstargames/img/global/news/upload/lanoire_streetcrimes_cameraobscura.jpg")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context "given a page with no image" do
|
24
|
+
it "will not find an image" do
|
25
|
+
mc3 = MechanizeContent::Page.new("http://www.gog.com/en/gamecard/another_world_15th_anniversary_edition")
|
26
|
+
mc3.image.should eql(nil)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "given a page with no content" do
|
31
|
+
it "will not find an image" do
|
32
|
+
mc4 = MechanizeContent::Page.new("http://www.gog.com/page_has_no_content")
|
33
|
+
mc4.stub!(:fetch_content).and_return(nil)
|
34
|
+
mc4.image.should eql(nil)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context "given a page with an image" do
|
39
|
+
it "will find the image" do
|
40
|
+
mc5 = MechanizeContent::Page.new("http://www.egmnow.com/press/time-warner-retail-egm.html")
|
41
|
+
mc5.image.should eql("http://www.egmnow.com/images/egmlogo.jpg")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "#fetch_content" do
|
47
|
+
context "given an error in fetching the page" do
|
48
|
+
it "has no content" do
|
49
|
+
mc2 = MechanizeContent::Page.new("http://somewherelse.com/")
|
50
|
+
agent = mock("agent")
|
51
|
+
page = mock("page")
|
52
|
+
page.stub!(:class).and_return(Mechanize::Page)
|
53
|
+
agent.should_receive(:get).with("http://somewherelse.com/").and_raise(Errno::ECONNRESET)
|
54
|
+
mc2.should_receive(:agent).any_number_of_times.and_return(agent)
|
55
|
+
mc2.fetch_content.should eql(nil)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
context "given the page timeouts" do
|
59
|
+
it "has no content" do
|
60
|
+
mc = MechanizeContent::Page.new("http://techmeme.com/")
|
61
|
+
agent = mock("agent")
|
62
|
+
page = mock("page")
|
63
|
+
page.stub!(:class).and_return(Mechanize::Page)
|
64
|
+
agent.should_receive(:get).with("http://techmeme.com/").and_raise(Timeout::Error)
|
65
|
+
mc.should_receive(:agent).any_number_of_times.and_return(agent)
|
66
|
+
mc.fetch_content.should eql(nil)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
context "given the page is not available" do
|
70
|
+
it "has no content" do
|
71
|
+
mc = MechanizeContent::Page.new("http://techmeme.com/")
|
72
|
+
agent = mock("agent")
|
73
|
+
page = mock("page")
|
74
|
+
mc.stub!(:agent).and_return(agent)
|
75
|
+
page.stub!(:code).and_return(400)
|
76
|
+
agent.should_receive(:get).with("http://techmeme.com/").and_return(page)
|
77
|
+
mc.fetch_content.should eql(nil)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "#text" do
|
83
|
+
context "given a page with content" do
|
84
|
+
it "will find some text" do
|
85
|
+
mc2 = MechanizeContent::Page.new("http://www.gamesetwatch.com/2010/03/gdc_2010_rounds_off_indie_cove.php")
|
86
|
+
mc2.text.should eql("Game Developers Conference organizers have confirmed the final set of independent game-specific content, including Ron Carmel on the just-debuted Indie Fund, the Gamma IV party/showcase, and the EGW-replacing Nuovo Sessions game showcase.The newly confirmed details round off a multitude of independent game-specific content at the March 9th-13th event, held at the Moscone Center in San Francisco, including the 12th Annual Independent Games Festival -- featuring over 30 top indie games playable on the GDC Expo floor from Thursday 11th to Saturday 13th, as well as the major IGF Awards on Thursday 11th at 6.30pm.In addition, the 4th Independent Games Summit on Tuesday 9th and Wednesday 10th has added and clarified a number of sessions, with 2D Boy's Ron Carmel kicking off the event with 'Indies and Publishers: Fixing a System That Never Worked', now confirmed to discuss the new Indie Fund organization.Another major new panel, 'Tripping The Art Fantastic', features Spelunky creator Derek Yu, Braid artist David Hellman and Super Meat Boy co-creator Edmund McMillen discussing \"how each one of these figures influences the state of game art, from hand painted epics to short form experimental Flash games.\"")
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
3
|
+
|
4
|
+
describe "MechanizeContent" do
|
5
|
+
use_vcr_cassette :record => :new_episodes
|
6
|
+
|
7
|
+
describe "#best_title" do
|
8
|
+
context "given a page with a title" do
|
9
|
+
it "will be that title" do
|
10
|
+
mc = MechanizeContent::Parser.new("http://techmeme.com/")
|
11
|
+
mc.best_title.should eql("Techmeme")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "given the page has an incorrect class" do
|
16
|
+
it "will be the url" do
|
17
|
+
p = MechanizeContent::Page.new("http://techmeme.com/")
|
18
|
+
p.stub!(:agent => double("agent", :get => double("p")))
|
19
|
+
MechanizeContent::Page.stub!(:new => p)
|
20
|
+
mc = MechanizeContent::Parser.new("http://techmeme.com/")
|
21
|
+
mc.best_title.should eql("http://techmeme.com/")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "given page has no title" do
|
26
|
+
it "will be the url" do
|
27
|
+
p = mock("page", :title => nil, :url => "http://techmeme.com/")
|
28
|
+
MechanizeContent::Page.stub!(:new => p)
|
29
|
+
mc = MechanizeContent::Parser.new("http://techmeme.com/")
|
30
|
+
mc.best_title.should eql("http://techmeme.com/")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "given multiple urls are passed in" do
|
35
|
+
it "will find the best title" do
|
36
|
+
mc = MechanizeContent::Parser.new("http://www.facebook.com/RockBand", "http://www.vg247.com/2010/03/09/rock-band-3-out-this-holiday-will-revolutionize-genre/")
|
37
|
+
mc.best_title.should eql("Rock Band | Facebook")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#best_text" do
|
44
|
+
context "page with no text" do
|
45
|
+
it "will be nil" do
|
46
|
+
mc = MechanizeContent::Parser.new("https://www.cmpevents.com/GD10/a.asp?option=C&V=11&SessID=10601")
|
47
|
+
mc.best_text.should eql(nil)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context "given a page with text" do
|
52
|
+
it "will be the text" do
|
53
|
+
mc2 = MechanizeContent::Parser.new("http://www.gamesetwatch.com/2010/03/gdc_2010_rounds_off_indie_cove.php")
|
54
|
+
mc2.best_text.should eql("Game Developers Conference organizers have confirmed the final set of independent game-specific content, including Ron Carmel on the just-debuted Indie Fund, the Gamma IV party/showcase, and the EGW-replacing Nuovo Sessions game showcase.The newly confirmed details round off a multitude of independent game-specific content at the March 9th-13th event, held at the Moscone Center in San Francisco, including the 12th Annual Independent Games Festival -- featuring over 30 top indie games playable on the GDC Expo floor from Thursday 11th to Saturday 13th, as well as the major IGF Awards on Thursday 11th at 6.30pm.In addition, the 4th Independent Games Summit on Tuesday 9th and Wednesday 10th has added and clarified a number of sessions, with 2D Boy's Ron Carmel kicking off the event with 'Indies and Publishers: Fixing a System That Never Worked', now confirmed to discuss the new Indie Fund organization.Another major new panel, 'Tripping The Art Fantastic', features Spelunky creator Derek Yu, Braid artist David Hellman and Super Meat Boy co-creator Edmund McMillen discussing \"how each one of these figures influences the state of game art, from hand painted epics to short form experimental Flash games.\"")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context "given multiple urls are passed in" do
|
59
|
+
it "will find the best text" do
|
60
|
+
mc = MechanizeContent::Parser.new("http://www.facebook.com/RockBand", "http://www.vg247.com/2010/03/09/rock-band-3-out-this-holiday-will-revolutionize-genre/")
|
61
|
+
mc.best_text.should include("Harmonix just confirmed that Rock Band 3 will release this holiday season.Said the firm on Rock Band’s Facebook page:“Harmonix is developing Rock Band 3 for worldwide release this holiday season! The game, which will be published by MTV Games and distributed by Electronic Arts, will innovate and revolutionize the music genre once again, just as Harmonix did with the original Rock Band, Rock Band 2 and The Beatles: Rock Band. Stay tuned for more details!”There’s no more detail right now, but keep watching for updates from GDC.")
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "given the first link has no text" do
|
66
|
+
it "will pull text from the next link" do
|
67
|
+
mc = MechanizeContent::Parser.new("http://www.gog.com/en/gamecard/another_world_15th_anniversary_edition", "http://www.destructoid.com/-nuff-said-good-old-games-gets-another-world-168150.phtml", "http://www.joystiq.com/2010/03/18/another-world-15th-anniversary-edition-now-on-gog-com/")
|
68
|
+
mc.best_text.should eql("Éric Chahi masterpiece is looking better than ever\r\r\rPosted on 2010-03-18 09:46:36 by \r\rEclipse:\r\rThe first time I've ever played Another World was on my 486, I remember I booted up the game and wow, I was so shocked at how "cinematic" it felt, it looked and played like an animated sci-fi movie, fluid animations, always unique enemies, action puzzles... I remember it was the first game I've ever played that needed you to actually run away from the beast atread more\r the end of the first level instead of just shooting the hell out of your enemies. The world around Lester felt more alive than every game I've ever played before and Lester himself was a true human, not some sort of pumped superdude with a shotgun.Smooth animations like I was never able to see from Prince of Persia times, glorious and fascinating graphics, rapid action sequences and an hard yet satisfying gameplay.When I played this remade version for the first time I had a similar feeling, It wasn't something new, I've played this game dozen of times during years, but the sharp vector graphics i was able too see as child on my old crt monitor looked pixelly on my new 23" LCD, this restyle reminds me more than the original version how I used to look at this game, I know it may sound strange but it's true.And yay, no more passwords to remember :)This game made my childhood and it's one of the best games EVER.\r\r\r\rWas this helpful?\r\r\r(105 of 119 people found this helpful)")
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "given a page with strange class names" do
|
73
|
+
it "should still be able to find the text" do
|
74
|
+
mc = MechanizeContent::Parser.new("http://www.destructoid.com/-nuff-said-good-old-games-gets-another-world-168150.phtml")
|
75
|
+
mc.best_text.should eql("Another World -- or Out of this World, as many of you will know it by -- is now on DRM-free digital distribution service Good Old Games. It can be had for $9.99. Need I say more?\rI love the game, even though I have never made it more than oh, five minutes in. It's more or less universally loved by the Destructoid staff. Not long after we got an email detailing the good news, the thread soon reached fifteen or so replies full of praise for the game.\rOther, less exciting recent releases include: Empire Earth II Gold, Gabriel Knight 3, and Aquanox. Not to completely s**t on these games, but this is Another World we're talking about here.")
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
context "given a flash marketing micro site" do
|
80
|
+
it "will be nil" do
|
81
|
+
mc = MechanizeContent::Parser.new("http://www.sonypictures.co.uk/movies/cloudywithachanceofmeatballs/")
|
82
|
+
mc.best_text.should eql(nil)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context "given a first page with text that is too short" do
|
87
|
+
it "will pull text from the next suitable page" do
|
88
|
+
mc = MechanizeContent::Parser.new("http://www.examiner.com/fps-in-national/playstation-network-up-japan-video-announcement-video",
|
89
|
+
"http://www.vg247.com/2011/05/28/sony-brings-psn-back-online-in-japan/",
|
90
|
+
"http://kotaku.com/5806527/oh-yeah--playstation-network-is-back-online-in-japan")
|
91
|
+
mc.best_text.should eq("Sony has announced that it has brought PlayStation Network services back online in Japan.After announcing a phased restoration of PSN and Qriocity Services in Japan and Asian countries and regions including Taiwan, Singapore, Malaysia, Indonesia, and Thailand yesterday, the firm has released a video of Sony president Kaz Harai revealing the service being brought back online.It’s posted below. But he is speaking in Japanese and there are no subtitles – just so you know. Yesterday, Sony also announced its plans for increased security measures in the region, which will “strengthen [and] safeguard against unauthorized activity, and provide consumers with greater protection of their personal information.”As an additional measure, a Chief Information Security Officer was created at SNEI who will work to reinforce overall information security across the company’s network infrastructure.“I’d also like to send my sincere regret to customers in Japan and Asian countries and regions for the inconvenience these events have caused you,” said Hirai. “We are taking aggressive action including increasing security measures and working with respective authorities to address the concerns that were raised by this incident.“We are making consumer data protection a full-time, company wide commitment so that our customers can rest assured about enjoying their entertainment.”The first phase of restored services for these countries and regions will include:Sign-in for PlayStationNetwork and Qriocity services, including the resetting of passwordsRestoration of online game-play across PS3 and PSP‘Friends’ category on PS3, including Friends List, Chat Functionality, Trophy Comparison, etc.PlayStation HomeAccess to other network features on services such as torne.(Customers will not be able to download movies rented through PlayStation Network video download service because movies have expired as a result of PlayStation Network service being turned off since April 21 (JST).)Thanks, Examiner. Related postsPlayStation Japan relief effort brings in $1.3 millionSeason One tester brings Tribbles to Star Trek OnlineSony Japan reveals Dress 2 Posted in: Japan, PSN, Sony Tags: kaz hirai, psn services")
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
describe "#best_image" do
|
97
|
+
context "given a page with a suitable image" do
|
98
|
+
it "will be the image url" do
|
99
|
+
mc = MechanizeContent::Parser.new("http://www.rockstargames.com/newswire/article/16021/street-crimes-of-la-noire-new-screenshots-info.html")
|
100
|
+
mc.best_image.should eql("http://media.rockstargames.com/rockstargames/img/global/news/upload/lanoire_streetcrimes_cameraobscura.jpg")
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
context "given a page with no suitable images" do
|
105
|
+
it "will be nil" do
|
106
|
+
mc3 = MechanizeContent::Parser.new("http://www.gog.com/en/gamecard/another_world_15th_anniversary_edition")
|
107
|
+
mc3.best_image.should eql(nil)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
context "given multiple urls are passed in" do
|
112
|
+
it "will find the best image" do
|
113
|
+
mc = MechanizeContent::Parser.new("http://www.facebook.com/RockBand", "http://www.vg247.com/2010/03/09/rock-band-3-out-this-holiday-will-revolutionize-genre/")
|
114
|
+
mc.best_image.should eql("http://assets.vg247.com/current//2010/03/rockbandlogo.jpg")
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
context "given the first pick does not support hot linking" do
|
119
|
+
it "will fall back to the next image" do
|
120
|
+
mc = MechanizeContent::Parser.new("http://www.andriasang.com/e/blog/2011/05/27/kojima_questions/",
|
121
|
+
"http://www.joystiq.com/2011/05/27/kojima-something-big-planned-for-25th-metal-gear-anniversary-ne/",
|
122
|
+
"http://www.giantbomb.com/news/hideo-kojima-smacks-down-rumors-spreads-disappointment-ahead-of-e3/3272/",
|
123
|
+
"http://www.vg247.com/2011/05/27/kojima-no-mgs5-at-e3-ngp-project-isnt-mgs4-port/",
|
124
|
+
"http://www.1up.com/news/kojima-planning-something-big-metal-gear-anniversary")
|
125
|
+
mc.best_image.should == "http://media.giantbomb.com/uploads/0/91/233021-2368273836_4080f1e08e_o_middle.jpg"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe ".initialize" do
|
131
|
+
context "given an array of urls are passed in" do
|
132
|
+
it "will still parse content" do
|
133
|
+
mc = MechanizeContent::Parser.new(["http://www.rockstargames.com/newswire/article/16021/street-crimes-of-la-noire-new-screenshots-info.html", "http://www.vg247.com/2010/03/18/gta-iv-episodes-from-liberty-city-sees-slight-delay-on-pc-and-ps3/"])
|
134
|
+
mc.best_title.should eql("Street Crimes of L.A. Noire: New Screenshots & Info | Rockstar Games")
|
135
|
+
mc.best_text.should eql(" Two women describe their encounter with a pervert to Detective Phelps in \"Camera Obscura\", one of many street crimes you'll encounter while exploring the city in L.A. Noire.\rIn addition to all of the desk cases you'll tackle as Cole Phelps as part of the main story of L.A. Noire, you'll also have the opportunity to bring wayward miscreants to justice and protect and serve the city of Los Angeles by solving Street Crimes. Pay attention to your police radio as you're driving around the city of L.A., requests for help will be broadcast to your squad car, and an icon will appear on your map. More and more Street Crimes will become unlocked as you progress through the game, solving them all will earn you 'The Long Arm of the Law' Achievement/Trophy.\rCheck out new screens from just a few of the incidents you'll encounter on the streets of Los Angeles below, which can also be seen in high definition at the official L.A. Noire site Screenshots section.\r A pair of novice criminals attempt to pull off a jewelry store heist in \"Amateur Hour.\"\r Chase down the armed suspects responsible for shooting this patrol officer in the \"Cop Killer Shot\" case.\r Phelps and Bekowsky encounter a man on the sidewalk that been robbed of everything - even his footwear - in the \"Shoo-Shoo Bandits\" Street Crimes case.\rPreviously:L.A. Noire Character Dossier & New Screens: Mickey CohenScreens from L.A. Noire Crime Desk #4 of 5: ViceCandy Edwards - L.A. Noire Character Dossier & New Screens")
|
136
|
+
mc.best_image.should eql("http://media.rockstargames.com/rockstargames/img/global/news/upload/lanoire_streetcrimes_cameraobscura.jpg")
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
context "given urls are passed in as seperate arguements" do
|
141
|
+
it "will parse arguements" do
|
142
|
+
mc = MechanizeContent::Parser.new("http://www.rockstargames.com/newswire/article/16021/street-crimes-of-la-noire-new-screenshots-info.html", "http://www.vg247.com/2010/03/18/gta-iv-episodes-from-liberty-city-sees-slight-delay-on-pc-and-ps3/")
|
143
|
+
mc.best_title.should eql("Street Crimes of L.A. Noire: New Screenshots & Info | Rockstar Games")
|
144
|
+
mc.best_text.should eql(" Two women describe their encounter with a pervert to Detective Phelps in \"Camera Obscura\", one of many street crimes you'll encounter while exploring the city in L.A. Noire.\rIn addition to all of the desk cases you'll tackle as Cole Phelps as part of the main story of L.A. Noire, you'll also have the opportunity to bring wayward miscreants to justice and protect and serve the city of Los Angeles by solving Street Crimes. Pay attention to your police radio as you're driving around the city of L.A., requests for help will be broadcast to your squad car, and an icon will appear on your map. More and more Street Crimes will become unlocked as you progress through the game, solving them all will earn you 'The Long Arm of the Law' Achievement/Trophy.\rCheck out new screens from just a few of the incidents you'll encounter on the streets of Los Angeles below, which can also be seen in high definition at the official L.A. Noire site Screenshots section.\r A pair of novice criminals attempt to pull off a jewelry store heist in \"Amateur Hour.\"\r Chase down the armed suspects responsible for shooting this patrol officer in the \"Cop Killer Shot\" case.\r Phelps and Bekowsky encounter a man on the sidewalk that been robbed of everything - even his footwear - in the \"Shoo-Shoo Bandits\" Street Crimes case.\rPreviously:L.A. Noire Character Dossier & New Screens: Mickey CohenScreens from L.A. Noire Crime Desk #4 of 5: ViceCandy Edwards - L.A. Noire Character Dossier & New Screens")
|
145
|
+
mc.best_image.should eql("http://media.rockstargames.com/rockstargames/img/global/news/upload/lanoire_streetcrimes_cameraobscura.jpg")
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,13 @@
|
|
1
1
|
require 'mechanize_content'
|
2
2
|
require "fakeweb"
|
3
|
-
|
3
|
+
require 'vcr'
|
4
|
+
|
5
|
+
VCR.config do |c|
|
6
|
+
c.cassette_library_dir = 'spec/cassettes'
|
7
|
+
c.stub_with :fakeweb
|
8
|
+
c.default_cassette_options = { :record => :new_episodes }
|
9
|
+
end
|
10
|
+
|
11
|
+
RSpec.configure do |c|
|
12
|
+
c.extend VCR::RSpec::Macros
|
13
|
+
end
|