mechanize_content 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +42 -0
  5. data/Rakefile +2 -0
  6. data/lib/mechanize_content/util.rb +35 -0
  7. data/lib/mechanize_content/version.rb +3 -0
  8. data/lib/mechanize_content.rb +189 -0
  9. data/mechanize_content.gemspec +25 -0
  10. data/spec/fixtures/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on.html +754 -0
  11. data/spec/fixtures/another-world-15th-anniversary-edition-now-on-gog-com.html +2416 -0
  12. data/spec/fixtures/another_world_15th_anniversary_edition.html +805 -0
  13. data/spec/fixtures/cmp.html +333 -0
  14. data/spec/fixtures/episodes_from_liberty_city_now_coming_to_playstation_3_and_pc_this_april.html +1593 -0
  15. data/spec/fixtures/gdc_2010_rounds_off_indie_cove.html +698 -0
  16. data/spec/fixtures/google.html +42 -0
  17. data/spec/fixtures/gta-iv-episodes-from-liberty-city-sees-slight-delay-on-pc-and-ps3.html +1012 -0
  18. data/spec/fixtures/johnny.jpg +0 -0
  19. data/spec/fixtures/joystiq-xbox-usb-support-580.jpg +0 -0
  20. data/spec/fixtures/mutiny.html +264 -0
  21. data/spec/fixtures/nuff-said-good-old-games-gets-another-world-168150.html +5492 -0
  22. data/spec/fixtures/rock-band-3-out-this-holiday-will-revolutionize-genre.html +1157 -0
  23. data/spec/fixtures/rockband_facebook.html +93 -0
  24. data/spec/fixtures/spartan.html +391 -0
  25. data/spec/fixtures/techmeme.html +2216 -0
  26. data/spec/fixtures/time-warner-retail-egm.html +49 -0
  27. data/spec/fixtures/witcher.html +458 -0
  28. data/spec/fixtures/xbox-360-gaining-usb-storage-support-in-2010-update.html +2462 -0
  29. data/spec/mechanize-content_spec.rb +195 -0
  30. data/spec/spec.opts +1 -0
  31. data/spec/spec_helper.rb +11 -0
  32. metadata +182 -0
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in mechanize_content.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 John Griffin
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,42 @@
1
+ = mechanize-content
2
+
3
+ Returns the most important pieces of content on a web page. Finds the best block of text, image and title by analysing the page content.
4
+
5
+ === Usage
6
+
7
+ Pass in a URL on initialisation and then call the helpers to pull the best content out.
8
+
9
+ <tt>mc = MechanizeContent::Parser.new("http://www.joystiq.com/2010/03/19/mag-gets-free-trooper-gear-pack-dlc-next-week/")</tt>
10
+
11
+ <tt>mc.best_title</tt>
12
+
13
+ <tt>"MAG gets free 'Trooper Gear Pack' DLC next week -- Joystiq"</tt>
14
+
15
+ <tt>mc.best_text</tt>
16
+
17
+ <tt>"Ten-hut, soldiers! HQ has just sent word that some new gear will be shipping to the front lines of MAG next week, free of charge: the Trooper Gear Pack. In this parcel, we'll finally get access to the Flashbang grenade..."</tt>
18
+
19
+ <tt>mc.best_image</tt>
20
+
21
+ <tt>"http://www.blogcdn.com/www.joystiq.com/media/2010/03/580mage302.jpg"</tt>
22
+
23
+ The gem also supports multiple URLs and will find the best content between them. The order in which they are inserted determines priority.
24
+
25
+ === Dependancies
26
+
27
+ * Mechanize
28
+ * imagesize
29
+
30
+ == Note on Patches/Pull Requests
31
+
32
+ * Fork the project.
33
+ * Make your feature addition or bug fix.
34
+ * Add tests for it. This is important so I don't break it in a
35
+ future version unintentionally.
36
+ * Commit, do not mess with rakefile, version, or history.
37
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
38
+ * Send me a pull request. Bonus points for topic branches.
39
+
40
+ == Copyright
41
+
42
+ Copyright (c) 2010 John Griffin. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,35 @@
1
+ module MechanizeContent
2
+ class Util
3
+
4
+ MIN_WIDTH = 64
5
+ MIN_HEIGHT = 64
6
+ AD_WIDTH = 728
7
+ AD_HEIGHT = 90
8
+
9
+ def self.get_base_url(doc, url)
10
+ base_url = doc.xpath("//base/@href").first
11
+ if base_url.nil?
12
+ return url
13
+ else
14
+ return base_url.value
15
+ end
16
+ end
17
+
18
+ def self.build_absolute_url(current_src, url)
19
+ if URI.parse(current_src).relative?
20
+ current_src = (URI.parse(url.to_s)+current_src).to_s
21
+ end
22
+ current_src
23
+ end
24
+
25
+ def self.valid_image?(width, height, src)
26
+ if width > MIN_WIDTH && height > MIN_HEIGHT && !src.include?("banner") && !src.include?(".gif")
27
+ if (!(width == AD_WIDTH) && !(height == AD_HEIGHT))
28
+ return true
29
+ end
30
+ end
31
+ return false
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,3 @@
1
+ module MechanizeContent
2
+ VERSION = "0.2.0"
3
+ end
@@ -0,0 +1,189 @@
1
+ require 'rubygems'
2
+ require 'mechanize'
3
+ require 'image_size'
4
+ require 'open-uri'
5
+ require 'mechanize_content/util'
6
+
7
+ module MechanizeContent
8
+ class Parser
9
+
10
+ attr_accessor :urls
11
+
12
+ def initialize(*args)
13
+ @urls = *args
14
+ end
15
+
16
+ def best_title
17
+ @best_title ||= fetch_titles
18
+ end
19
+
20
+ def best_text
21
+ @best_text ||= fetch_texts
22
+ end
23
+
24
+ def best_image
25
+ @best_image ||= fetch_images
26
+ end
27
+
28
+ def fetch_images
29
+ (@pages || fetch_pages).each do |page|
30
+ image = fetch_image(page)
31
+ return image unless image.nil?
32
+ end
33
+ return nil
34
+ end
35
+
36
+ def fetch_texts
37
+ (@pages || fetch_pages).each do |page|
38
+ text = fetch_text(page)
39
+ return text unless text.nil? || text.empty?
40
+ end
41
+ return nil
42
+ end
43
+
44
+ def fetch_titles
45
+ (@pages || fetch_pages).each do |page|
46
+ title = page.title
47
+ unless title.nil?
48
+ ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
49
+ title = ic.iconv(title + ' ')[0..-2]
50
+ return title
51
+ end
52
+
53
+ end
54
+ return @urls.first
55
+ end
56
+
57
+ def fetch_pages
58
+ @pages = []
59
+ @urls.each do |url|
60
+ page = fetch_page(url)
61
+ @pages << page unless page.nil?
62
+ end
63
+ @pages
64
+ end
65
+
66
+ def fetch_page(url)
67
+ begin
68
+ page = (@agent || init_agent).get(url)
69
+ if page.class == Mechanize::Page
70
+ return page
71
+ else
72
+ return nil
73
+ end
74
+ rescue Timeout::Error
75
+ puts "Timeout - "+url
76
+ rescue Errno::ECONNRESET
77
+ puts "Connection reset by peer - "+url
78
+ rescue Mechanize::ResponseCodeError
79
+ puts "Invalid url"
80
+ rescue Mechanize::UnsupportedSchemeError
81
+ puts "Unsupported Scheme"
82
+ rescue
83
+ puts "There was a problem connecting - "+url
84
+ end
85
+ end
86
+
87
+ def init_agent
88
+ agent = Mechanize.new
89
+ agent.user_agent_alias = 'Mac Safari'
90
+ return @agent = agent
91
+ end
92
+
93
+ def fetch_text(page)
94
+ top_content = fetch_content(page)
95
+ if top_content
96
+ text = top_content.text.delete("\t").delete("\n").strip
97
+ ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
98
+ text = ic.iconv(text + ' ')[0..-2]
99
+ else
100
+ return nil
101
+ end
102
+ end
103
+
104
+ def fetch_content(page)
105
+ doc = page.parser
106
+ readability = {}
107
+ doc.css('p').each do |paragraph|
108
+ if readability[paragraph.parent].nil?
109
+ readability[paragraph.parent] = 0
110
+ end
111
+ parent_class = paragraph.parent['class'] || ""
112
+ parent_id = paragraph.parent['id'] || ""
113
+ if !parent_class.match('(comment|meta|footer|footnote)').nil?
114
+ readability[paragraph.parent] -= 50
115
+ elsif !parent_class.match('((^|\\s)(post|hentry|entry[-]?(content|text|body)?|article[-_]?(content|text|body)?)(\\s|$))').nil?
116
+ readability[paragraph.parent] += 25
117
+ end
118
+
119
+ if !parent_id.match('(comment|meta|footer|footnote)').nil?
120
+ readability[paragraph.parent] -= 50
121
+ elsif !parent_id.match('((^|\\s)(post|hentry|entry[-]?(content|text|body)?|article[-_]?(content|text|body)?)(\\s|$))').nil?
122
+ readability[paragraph.parent] += 25
123
+ end
124
+
125
+ if paragraph.inner_text().length > 10
126
+ readability[paragraph.parent] += 1
127
+ end
128
+ if !paragraph.parent.attributes.values.nil?
129
+ if !paragraph.parent.attributes.values.first.nil?
130
+ if paragraph.parent.attributes.values.first.value.include? "comment"
131
+ break
132
+ end
133
+ end
134
+ end
135
+ readability[paragraph.parent] += paragraph.inner_text().count(',')
136
+ end
137
+ sorted_results = readability.sort_by { |parent,score| -score }
138
+ if sorted_results.nil? || sorted_results.first.nil?
139
+ return nil
140
+ elsif !sorted_results.first.first.xpath("//a[@href='http://get.adobe.com/flashplayer/']").empty?
141
+ return nil
142
+ else
143
+ top_result = sorted_results.first.first
144
+ top_result.css('script').unlink
145
+ top_result.css('iframe').unlink
146
+ top_result.css('h1').unlink
147
+ top_result.css('h2').unlink
148
+ return top_result
149
+ end
150
+ end
151
+
152
+ def fetch_image(page)
153
+ top_content = fetch_content(page)
154
+ if top_content
155
+ return find_best_image(top_content.css('img'), Util.get_base_url(page.parser, page.uri))
156
+ else
157
+ return nil
158
+ end
159
+ end
160
+
161
+ def find_best_image(all_images, url)
162
+ begin
163
+ current_src = nil
164
+ all_images.each do |img|
165
+ current_src = img["src"]
166
+ if Util.valid_image?(img['width'].to_i, img['height'].to_i, current_src)
167
+ return Util.build_absolute_url(current_src, url)
168
+ end
169
+ end
170
+ all_images.each do |img|
171
+ current_src = img["src"]
172
+ current_src = Util.build_absolute_url(current_src, url)
173
+ open(current_src, "rb") do |fh|
174
+ is = ImageSize.new(fh.read)
175
+ if Util.valid_image?(is.width, is.height, current_src)
176
+ return current_src
177
+ end
178
+ end
179
+ end
180
+ return nil
181
+ rescue Errno::ENOENT
182
+ puts "No such file - " + current_src
183
+ rescue
184
+ puts "There was a problem connecting - " + current_src
185
+ end
186
+ end
187
+
188
+ end
189
+ end
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "mechanize_content/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "mechanize_content"
7
+ s.version = MechanizeContent::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["John Griffin"]
10
+ s.email = ["johnog@gmail.com"]
11
+ s.homepage = "http://github.com/john-griffin/mechanize-content"
12
+ s.summary = %q{scrape the best content from a page}
13
+ s.description = %q{pass in a url or urls and mechanize-content will select the best block of text, image and title by analysing the page content}
14
+
15
+ s.rubyforge_project = "mechanize_content"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+ s.add_dependency("mechanize", "~> 1.0.0")
22
+ s.add_dependency("imagesize", "~> 0.1.1")
23
+ s.add_development_dependency('rspec', "~> 1.3.1")
24
+ s.add_development_dependency('fakeweb', "1.2.5")
25
+ end
@@ -0,0 +1,754 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Fri, 23 Jul 2010 21:58:13 GMT
3
+ Server: Apache/2.2
4
+ Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
5
+ Set-Cookie: comment_by_existing=deleted; expires=Thu, 23 Jul 2009 21:58:12 GMT; path=/
6
+ Transfer-Encoding: chunked
7
+ Content-Type: text/html
8
+
9
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
10
+ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en">
11
+ <head>
12
+
13
+ <!-- metas -->
14
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
15
+ <meta name="robots" content="all" />
16
+ <meta name="MSSmartTagsPreventParsing" content="true" />
17
+ <meta name="google-site-verification" content="atKzz_XofRs1Q8b53F6uWBEwZ-AaYQ4FRYvL45a_fLQ" />
18
+ <META name="y_key" content="3cb064ca399e265a">
19
+
20
+ <meta property="og:description" content="Joystiq"/> <!-- FB - rishisharma08 -->
21
+ <meta property="fb:admins" content="1413878946"/> <!-- FB - rishisharma08 -->
22
+ <meta property="og:site_name" content="Joystiq"/> <!-- FB - rishisharma08 -->
23
+ <title>A fistful of Red Dead Redemption (PS3) for a few dollars less on Amazon | Joystiq</title>
24
+
25
+ <!-- CSS -->
26
+ <link rel="stylesheet" href="/media/main.css?v=5" type="text/css" />
27
+ <link rel="shortcut icon" href="http://www.blogsmithmedia.com/www.joystiq.com/media/favicon.ico" type="image/x-icon" />
28
+
29
+ <!-- JS -->
30
+ <script type="text/javascript" src="http://www.blogsmithmedia.com/www.joystiq.com/include/jquery142.js"></script>
31
+ <script type="text/javascript" src="http://www.blogsmithmedia.com/www.joystiq.com/include/main.js"></script>
32
+ <script type="text/javascript" src="http://www.blogsmithmedia.com/www.joystiq.com/include/dropdown.js"></script>
33
+ <script type="text/javascript" src="http://www.blogsmithmedia.com/www.joystiq.com/include/login.js"></script>
34
+ <script type="text/javascript" src="http://www.blogsmithmedia.com/www.joystiq.com/b-c/ajax.js"></script>
35
+ <script type="text/javascript" src="http://o.aolcdn.com/ads/adsWrapper.js"></script>
36
+
37
+ <script type="text/javascript">
38
+ <!--
39
+ addthis_pub = 'weblogsinc';
40
+ addthis_options = 'digg, facebook, delicious, myspace, aolfav, propeller, google, live, stumbleupon, reddit, favorites, technorati, aim, more';
41
+ adSetAdURL('/_uac/adpage.html');
42
+ var postID = '19566408';
43
+ var prop9 = '';
44
+ if(postID != '') {
45
+ adSetOthAT('kvcmsid=bsd:'+postID);
46
+ prop9 = 'bsd:19566408';
47
+ }
48
+ //-->
49
+ var platformPop = ["PlayStation 3","Xbox 360"];</script>
50
+
51
+ </head>
52
+
53
+ <body class="perm">
54
+
55
+ <div id="omniture"><div id="omniture">
56
+ <script type="text/javascript">
57
+ <!--
58
+ function runOmni()
59
+ {
60
+ s_265.pfxID="wjs";
61
+ s_265.pageName=document.title;
62
+ s_265.server="";
63
+ s_265.channel="wb.jystiq";
64
+ s_265.pageType="";
65
+ s_265.linkInternalFilters="javascript:,joystiq.com";
66
+ s_265.prop1="Game";
67
+ s_265.prop2="";
68
+ s_265.prop12=document.location;
69
+ s_265.prop17="";
70
+ s_265.prop18="";
71
+ s_265.prop19="";
72
+ s_265.prop20="";
73
+ s_265.mmxgo = true;
74
+ if (typeof prop9 != 'undefined' && prop9 != '') {
75
+ s_265.prop9 = prop9;
76
+ }
77
+ s_265.t();
78
+ }
79
+ var s_account = "aolwbjystiq,aolwbbrand,aolsvc";
80
+ (function(){
81
+ var d = document, s = d.createElement('script');
82
+ s.type = 'text/javascript';
83
+ s.src = 'http://o.aolcdn.com/omniunih.js';
84
+ d.getElementsByTagName('head')[0].appendChild(s);
85
+ })();
86
+ //-->
87
+ </script>
88
+ </div></div>
89
+
90
+ <script type="text/javascript">
91
+
92
+ var bN_cfg = {
93
+ h : ["www.joystiq.com"]
94
+ };
95
+ </script>
96
+ <script type="text/javascript">
97
+ (function(){var c='http://o.aolcdn.com/',a=[c +'js/mg2.js'],d=document,h=d.getElementsByTagName('head')[0],s,i,l=a.length;for (i=0;i<l;i++){s=d.createElement('script');s.type='text/javascript';s.src=a[i];h.appendChild(s);}})();
98
+
99
+ </script> <!-- Beacon Layer -->
100
+
101
+ <div id="top-leader">
102
+ <div class="inner">
103
+ <script type="text/javascript">
104
+ <!--
105
+ adSetType('F');
106
+ htmlAdWH('93248557', '728', '90');
107
+ adSetType('');
108
+ //-->
109
+ </script>
110
+ </div>
111
+ </div> <!-- 728x90 -->
112
+
113
+ <div id="GH_strip">
114
+ <div id="GH_strip_inner" class="group">
115
+ <div class="aol-logo"></div>
116
+ <div class="GH-hat-mail"> | <a href="">Mail</a> | </div>
117
+ <div class="GH-hat-like">You might also like: <a href="http://www.wow.com">WoW.com</a>, <a href="http://www.massively.com">Massively</a>, and <a href="" id="GH-hat-more-link">more</a><img src="http://www.joystiq.com/media/down-arrow.png"></div>
118
+
119
+ <div class="GH-hat-ddbox-container" id="GH-hat-morebox-container">
120
+ <div class="GH-hat-ddbox group">
121
+ <p>More Sites You Might Like</p>
122
+ <ul>
123
+ <li><a href="http://www.bigdownload.com">Big Download</a></li>
124
+ <li><a href="http://www.engadget.com">Engadget</a></li>
125
+ <li><a href="http://hd.engadget.com">Engadget HD</a></li>
126
+ <li><a href="http://mobile.engadget.com">Engadget Mobile</a></li>
127
+ <li><a href="http://www.tuaw.com">TUAW</a></li>
128
+ </ul>
129
+
130
+ <ul>
131
+ <li><a href="http://www.autoblog.com">Autoblog</a></li>
132
+ <li><a href="http://green.autoblog.com">Autoblog Green</a></li>
133
+ <li><a href="http://www.switched.com">Switched</a></li>
134
+ <li><a href="http://www.downloadsquad.com">Download Squad</a></li>
135
+ <li><a href="http://www.urlesque.com">URLesque</a></li>
136
+ </ul>
137
+
138
+ <ul class="last">
139
+ <li><a href="http://blog.games.com">Games.com</a></li>
140
+ <li><a href="http://www.comicsalliance.com/">Comics Alliance</a></li>
141
+ <li><a href="http://www.fanhouse.com/">FanHouse</a></li>
142
+ <li><a href="http://www.mmafighting.com/">MMA Fighting</a></li>
143
+ <li><a href="http://www.politicsdaily.com/">Politics Daily</a></li>
144
+ </ul>
145
+ </div>
146
+ </div>
147
+
148
+
149
+ <div class="GH-hat-login">
150
+ <a href="#" id="GH-hat-login-link">Login</a><img src="http://www.joystiq.com/media/down-arrow.png"> / <a href="/register">Register</a>
151
+
152
+ <div class="GH-hat-ddbox-container" id="GH-hat-loginbox-container">
153
+ <div class="GH-hat-ddbox">
154
+
155
+ <div id="userDiv">
156
+
157
+ <form class="someForm" onsubmit="return false;">
158
+ <span id="loginError" style="color:red;"></span>
159
+ <span id="uname_error" style="color:red;"></span>
160
+ <label for="username" />Email address:</label><input type="text" name="login-un" id="login-un" /><br />
161
+ <label for="key" />Password: <small>(<a href="/recover">Forgot?</a>)</small></label><input type="password" name="login-pw" id="login-pw" /><br />
162
+ <span id="uname_span" style="display:none;">
163
+ <label for="uname" />Username:</label><input type="text" name="uname" id="uname" /><br />
164
+ </span>
165
+
166
+ <a href="" onclick="bpLogin(); return false;" value="Login" class="submit">Login</a> <a href="" class="GH-hat-close-login">Cancel</a>
167
+
168
+ </form>
169
+ </div>
170
+ </div>
171
+ </div>
172
+ </div>
173
+
174
+ </div>
175
+ </div> <!-- aol hat -->
176
+
177
+ <div id="branding">
178
+
179
+ <a href="/" class="logo" title="Back to Joystiq">Joystiq</a>
180
+
181
+ <div id="console-menu">
182
+ <!-- max 9 -->
183
+ <div class="ps3 "><a href="/ps3/" title="PS3 posts">PS3</a></div>
184
+ <div class="xbox "><a href="/xbox/" title="Xbox posts">XBOX</a></div>
185
+ <div class="wii "><a href="/wii/" title="Wii posts">Wii</a></div>
186
+ <div class="ds "><a href="/ds/" title="DS posts">DS</a></div>
187
+ <div class="psp "><a href="/psp/" title="PSP posts">PSP</a></div>
188
+ <div class="pc "><a href="/pc/" title="PC posts">PC</a></div>
189
+ <div class="mobile "><a href="/mobile/" title="Mobile posts">Mobile</a></div>
190
+
191
+ </div>
192
+
193
+ <div id="search">
194
+
195
+ <form action="/search/" name="s_form" method="get" id="search-form">
196
+ <input type="text" name="q" value="" id="search-field"/>
197
+ <input type="hidden" name="invocationType" value="wl-joystiq" />
198
+ <input type="submit" value="" id="search-button" />
199
+
200
+ </form>
201
+
202
+ </div> <!-- search -->
203
+
204
+ </div> <!-- /branding --> <!-- header -->
205
+
206
+ <div id="main-nav" class="group">
207
+
208
+ <div id="nav">
209
+
210
+ <div id="prim-nav">
211
+ <ul>
212
+ <li class="main"><a href="/" class="">Main</a></li>
213
+ <li class="games"><a href="/games/" class="">Games</a></li>
214
+ <li class="reviews"><a href="/reviews/" class="">reviews</a></li>
215
+ <li class="podcast"><a href="/podcast/" class="">Podcast</a></li>
216
+ <li class="videos"><a href="/videos/" class="">Videos</a></li>
217
+ <li class="galleries"><a href="/screenshots/" class="">Galleries</a></li>
218
+ <li class="about"><a href="/team/" class="">About</a></li>
219
+
220
+
221
+ </ul>
222
+ </div>
223
+
224
+ <div id="sec-nav">
225
+ <ul>
226
+ <li class="tips"><a href="/contact/tips/" title="Send us your tips">Tip Us</a></li>
227
+ <li class="rss"><a href="/rss/" title="Grab our feeds for your RSS reader">RSS</a></li>
228
+ <li class="twitter"><a href="http://www.twitter.com/joystiq" title="Yes, we're on Twitter">Twitter</a></li>
229
+ </ul>
230
+
231
+ </div>
232
+
233
+ </div>
234
+
235
+ </div> <!-- /main-nav --> <!-- nav -->
236
+
237
+ <!-- hero -->
238
+
239
+ <div id="container" class="group">
240
+
241
+ <div id="product-hdr" class="group hidden showBlock">
242
+
243
+ <div class="product-hdr-badges group">
244
+ <p class="badge hidden" id="game-header-badge-ps3"><a href="#">PS3</a></p>
245
+ <p class="badge hidden" id="game-header-badge-xbox"><a href="#">Xbox</a></p>
246
+ <p class="badge hidden" id="game-header-badge-wii"><a href="#">Wii</a></p>
247
+ <p class="badge hidden" id="game-header-badge-ds"><a href="#">DS</a></p>
248
+ <p class="badge hidden" id="game-header-badge-psp"><a href="#">PSP</a></p>
249
+ <p class="badge hidden" id="game-header-badge-pc"><a href="#">PC</a></p>
250
+ <p class="badge hidden" id="game-header-badge-mobile"><a href="#">Mobile</a></p>
251
+ </div>
252
+
253
+ <h2><a href="http://www.joystiq.com/game/red-dead-redemption">Red Dead Redemption</a></h2>
254
+
255
+ <ul class="tabs group">
256
+ <li class="updates"><a href="http://www.joystiq.com/game/red-dead-redemption">News</a></li>
257
+ <li class="review "><a href=" http://www.joystiq.com/2010/05/21/red-dead-redemption-single-player-review/#review">Review</a></li>
258
+ <li class="screens "><a href="http://www.joystiq.com/game/red-dead-redemption/screens/">Screens</a></li>
259
+ <li class="video "><a href="http://www.joystiq.com/game/red-dead-redemption/video/">Video</a></li>
260
+ <li class="achieve hidden"><a href="#">Achievements</a></li>
261
+ <li class="guides hidden"><a href="#">Guides</a></li>
262
+ <li class="forum hidden"><a href="#">Forum</a></li>
263
+ </ul>
264
+
265
+
266
+ </div> <!-- game header -->
267
+
268
+ <div id="content" class="group">
269
+
270
+ <div id="main-content" class="group">
271
+
272
+ <!-- mini hero -->
273
+
274
+ <div id="p19566408"><meta property="og:title" content="A fistful of Red Dead Redemption (PS3) for a few dollars less on Amazon" />
275
+ <meta property="og:type" content="article" />
276
+ <meta property="og:url" content="http://www.joystiq.com/2010/07/23/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on/" />
277
+ <meta property="og:image" content="http://www.blogcdn.com/www.joystiq.com/media/2010/06/reddeadredemption71024_thumbnail.jpg" />
278
+ <link rel="image_src" href="http://www.blogcdn.com/www.joystiq.com/media/2010/06/reddeadredemption71024_thumbnail.jpg" />
279
+
280
+ <div class="post permalink">
281
+
282
+ <div class="post-inner">
283
+
284
+ <div class="post-head">
285
+
286
+ <h1 class="headline"><a href="http://www.joystiq.com/2010/07/23/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on/"><span id="ppt19566408">A fistful of Red Dead Redemption (PS3) for a few dollars less on Amazon</span></a></h1>
287
+
288
+ <p class="byline">by <a class="byline-author" href="/editor/richard-mitchell">Richard Mitchell</a> <a href="/editor/richard-mitchell/rss.xml"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/writer_rss.gif" /></a> on Jul 23rd 2010 5:10PM</p>
289
+
290
+ <div class="comment-count"><a href="#">3</a><span class="tail"></span></div>
291
+
292
+ </div>
293
+
294
+ <div class="post-body">
295
+
296
+
297
+ <div style="text-align: center;"><a href="http://www.joystiq.com/2010/07/23/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on/"><img width="530" vspace="0" hspace="0" height="325" border="1" align="middle" src="http://www.blogcdn.com/www.joystiq.com/media/2010/06/reddeadredemption71024.jpg" alt="" /></a></div>
298
+ If you've been waiting for a good deal before jumping on the <a href="http://joystiq.com/game/red-dead-redemption"><em>Red Dead Redemption</em></a> stagecoach, <a href="http://www.amazon.com/gp/product/B001SEQWXQ?ie=UTF8&amp;tag=prey0f&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B001SEQWXQ">Amazon</a> just might have you covered. Mosey on over to the online retailer and you can holster a PS3 copy for $42.99 (17 buckskins off the regular price). Rustle it up quick though: This deal's gone by sunup.<a name="continued" /></a>
299
+
300
+
301
+
302
+ </div>
303
+
304
+
305
+ <div class="post-meta">
306
+
307
+ <ul class="sources">
308
+
309
+
310
+
311
+
312
+ </ul>
313
+
314
+
315
+ <div class="social-tools group">
316
+ <div class="social-tools-facebook"><a href="http://www.addthis.com/bookmark.php?pub=weblogsinc&v=250&source=tbx-250&s=facebook&url=http://www.joystiq.com/2010/07/23/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on/&title=<span id="ppt19566408">A fistful of Red Dead Redemption (PS3) for a few dollars less on Amazon</span>">Facebook</a></div>
317
+ <div class="social-tools-stumble"><a href="http://www.addthis.com/bookmark.php?pub=weblogsinc&v=250&source=tbx-250&s=stumbleupon&url=http://www.joystiq.com/2010/07/23/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on/&title=<span id="ppt19566408">A fistful of Red Dead Redemption (PS3) for a few dollars less on Amazon</span>">Stumble Upon</a></div>
318
+ <div class="social-tools-digg"><a href="http://www.addthis.com/bookmark.php?pub=weblogsinc&v=250&source=tbx-250&s=digg&url=http://www.joystiq.com/2010/07/23/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on/&title=<span id="ppt19566408">A fistful of Red Dead Redemption (PS3) for a few dollars less on Amazon</span>">Digg</a></div>
319
+ <div class="social-tools-twitter"><a href="http://www.addthis.com/bookmark.php?pub=weblogsinc&v=250&source=tbx-250&s=twitter&url=http://www.joystiq.com/2010/07/23/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on/&title=<span id="ppt19566408">A fistful of Red Dead Redemption (PS3) for a few dollars less on Amazon</span>">Twitter</a></div>
320
+
321
+ <div class="social-tools-email"><a href="http://www.addthis.com/bookmark.php?pub=weblogsinc&v=250&source=tbx-250&s=email&url=http://www.joystiq.com/2010/07/23/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on/&title=<span id="ppt19566408">A fistful of Red Dead Redemption (PS3) for a few dollars less on Amazon</span>">Email</a></div>
322
+ </div>
323
+
324
+ </div>
325
+
326
+ </div> <!-- post-inner -->
327
+
328
+
329
+ <div id="show-tags" style="margin-top:2px; font-size:85%;">
330
+ Tags: <a href="http://www.joystiq.com/tag/playstation/">playstation</a>, <a href="http://www.joystiq.com/tag/ps3/">ps3</a>, <a href="http://www.joystiq.com/tag/Red-Dead-Redemption/">Red-Dead-Redemption</a>, <a href="http://www.joystiq.com/tag/RockStar/">RockStar</a>
331
+ </div>
332
+ <div name="like_button" class="like_button"><fb:like href="http://www.joystiq.com/2010/07/23/a-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on/" layout="standard" show_faces="false" action="like" width="300" style="height:23px;position:relative;margin-top:5px;margin-bottom:5px;"></fb:like><br class="clear"/></div>
333
+
334
+ </div> <!-- post -->
335
+
336
+ </div> <!-- list post -->
337
+
338
+ <div id="comments">
339
+
340
+ <h2>Reader Comments <span>(3)</span></h2>
341
+ <div class="comment group level2 parent" id="c29482027">
342
+
343
+
344
+ <a href="http://www.joystiq.com/profile/3518528/"><img src="http://www.blogsmithcdn.com/avatar/images/11/3518528_50.jpg" alt="" class="avatar" /></a>
345
+
346
+ <div class="comment-inner">
347
+
348
+ <div class="header">
349
+ <h4>Posted: Jul 23rd 2010 5:35PM <span><a href="http://www.joystiq.com/profile/3518528/">tenacioustoaster</a> said</span></h4>
350
+
351
+ <ul style="">
352
+ <li class="rating"><span class="cmt_label label_level2"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/heart002.png" alt="2 hearts" /></span></li>
353
+
354
+ <li class="report"><span class="cmt_tools" id="tools_29482027"><a href="#" class="voteLink" id="vu29482027" onclick="voteComment('29482027','up'); return false;" title="Vote This Comment Up"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/icon-voteup.png" /></a> <a href="#" class="voteLink" id="vd29482027" onclick="voteComment('29482027','down'); return false;" title="Vote This Comment Down"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/icon-votedown.png"></a> <a href="#" class="reportLink" id="r29482027" onclick="reportComment(29482027); return false" title="Report This Comment"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/icon-report.png" alt="Report" /></a></span></li>
355
+ </ul>
356
+
357
+ </div>
358
+
359
+ <div class="comment-body">
360
+
361
+ I bought this game during the gamestop deal.<br>If you get a chance, BUY IT!<br>Wont regret it, I promise. I would have paid full price any day.
362
+
363
+ </div>
364
+
365
+ <a href="#commentform" onclick="replyToCmt('29482027','tenacioustoaster'); document.commentform.Comments.value = '@tenacioustoaster ';" class="reply">Reply</a>
366
+
367
+ </div> <!-- comment-inner -->
368
+
369
+ </div> <!-- comment -->
370
+
371
+
372
+
373
+
374
+
375
+
376
+
377
+ <div class="comment group level2 parent" id="c29482073">
378
+
379
+
380
+ <a href="http://www.joystiq.com/profile/3831165/"><img src="http://www.blogsmithcdn.com/avatar/images/11/3831165_50.jpg" alt="" class="avatar" /></a>
381
+
382
+ <div class="comment-inner">
383
+
384
+ <div class="header">
385
+ <h4>Posted: Jul 23rd 2010 5:38PM <span><a href="http://www.joystiq.com/profile/3831165/">Zenith</a> said</span></h4>
386
+
387
+ <ul style="">
388
+ <li class="rating"><span class="cmt_label label_level2"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/heart002.png" alt="2 hearts" /></span></li>
389
+
390
+ <li class="report"><span class="cmt_tools" id="tools_29482073"><a href="#" class="voteLink" id="vu29482073" onclick="voteComment('29482073','up'); return false;" title="Vote This Comment Up"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/icon-voteup.png" /></a> <a href="#" class="voteLink" id="vd29482073" onclick="voteComment('29482073','down'); return false;" title="Vote This Comment Down"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/icon-votedown.png"></a> <a href="#" class="reportLink" id="r29482073" onclick="reportComment(29482073); return false" title="Report This Comment"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/icon-report.png" alt="Report" /></a></span></li>
391
+ </ul>
392
+
393
+ </div>
394
+
395
+ <div class="comment-body">
396
+
397
+ I can tell you were having a lot of fun writing this post.
398
+
399
+ </div>
400
+
401
+ <a href="#commentform" onclick="replyToCmt('29482073','Zenith'); document.commentform.Comments.value = '@Zenith ';" class="reply">Reply</a>
402
+
403
+ </div> <!-- comment-inner -->
404
+
405
+ </div> <!-- comment -->
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+ <div class="comment group level2 parent" id="c29482369">
414
+
415
+
416
+ <a href="http://www.joystiq.com/profile/596592/"><img src="http://www.blogsmithcdn.com/avatar/images/11/596592_50.jpg" alt="" class="avatar" /></a>
417
+
418
+ <div class="comment-inner">
419
+
420
+ <div class="header">
421
+ <h4>Posted: Jul 23rd 2010 5:56PM <span><a href="http://www.joystiq.com/profile/596592/">leobebes</a> said</span></h4>
422
+
423
+ <ul style="">
424
+ <li class="rating"><span class="cmt_label label_level2"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/heart002.png" alt="2 hearts" /></span></li>
425
+
426
+ <li class="report"><span class="cmt_tools" id="tools_29482369"><a href="#" class="voteLink" id="vu29482369" onclick="voteComment('29482369','up'); return false;" title="Vote This Comment Up"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/icon-voteup.png" /></a> <a href="#" class="voteLink" id="vd29482369" onclick="voteComment('29482369','down'); return false;" title="Vote This Comment Down"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/icon-votedown.png"></a> <a href="#" class="reportLink" id="r29482369" onclick="reportComment(29482369); return false" title="Report This Comment"><img src="http://www.blogsmithmedia.com/www.joystiq.com/media/icon-report.png" alt="Report" /></a></span></li>
427
+ </ul>
428
+
429
+ </div>
430
+
431
+ <div class="comment-body">
432
+
433
+ Why haven't PS3 owners jumped all over this game? What's wrong with you?
434
+
435
+ </div>
436
+
437
+ <a href="#commentform" onclick="replyToCmt('29482369','leobebes'); document.commentform.Comments.value = '@leobebes ';" class="reply">Reply</a>
438
+
439
+ </div> <!-- comment-inner -->
440
+
441
+ </div> <!-- comment -->
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+ <script type="text/javascript" src="http://www.blogcdn.com/js/ajax_c.js"></script>
451
+ <script language="JavaScript" type="text/javascript">function reportComment(commentid) {
452
+ if(confirm("Are you sure you want to report this comment?")) {
453
+ getURL("/?a=ajax-comment-report&commentid="+commentid);
454
+ }
455
+ return false;
456
+ }
457
+
458
+ function reportCommentOK(commentid) {
459
+ document.getElementById("c"+commentid).className+=" reportedComment";
460
+ alert("Comment has been reported for review. Thank You!");
461
+ return false;
462
+ }
463
+
464
+ function voteComment(commentid,type) {
465
+ getURL("/?a=ajax-comment-vote&commentid="+commentid+"&type="+type);
466
+ return false;
467
+ }
468
+
469
+ function voteCommentOK(commentid) {
470
+ document.getElementById("c"+commentid).className+=" votedComment";
471
+ return false;
472
+ }
473
+
474
+ function replyToCmt(commentid,author) {
475
+ var replyInd = document.getElementById("replyindicator");
476
+ if (document.getElementById('replyToText')) { var replyToText = document.getElementById('replyToText').value; } else { var replyToText = "replying to"; }
477
+ if (document.getElementById('replyToUndo')) { var replyToUndo = document.getElementById('replyToUndo').value; } else { var replyToUndo = "Undo"; }
478
+ replyInd.innerHTML = (replyToText+' <a href="#c'+commentid+'">'+author+'</a> [<a href="#" onclick="wipeReply(\''+commentid+'\'); return false;">'+replyToUndo+'</a>]');
479
+ document.getElementById("sourceID").value=commentid;
480
+ }
481
+
482
+ function wipeReply(commentid) {
483
+ var replyInd = document.getElementById("replyindicator");
484
+ replyInd.innerHTML = "";
485
+
486
+ document.getElementById("sourceID").value = "";
487
+ return false;
488
+ }
489
+
490
+ function showReplies(postid,commentid) {
491
+ getURL("/?a=ajax-comment-show-replies&commentid="+commentid+"&postid="+postid);
492
+ return false;
493
+ }
494
+
495
+ function showRepliesOK(commentid, data) {
496
+ var replyDiv = document.getElementById(commentid+"_replies");
497
+ replyDiv.innerHTML = data;
498
+
499
+ return false;
500
+ }
501
+
502
+ </script><div id="cmt_paging"> </div> </div> <!-- show comments -->
503
+
504
+ <div id="post-comment-not-logged-in">
505
+ Sorry, you must be <a href="/login">logged in</a> to leave a comment.
506
+ </div> <!-- leave a comment -->
507
+
508
+
509
+ </div> <!-- main-content -->
510
+
511
+ <div id="sub-content">
512
+
513
+ <div id="medrect">
514
+ <div class="inner">
515
+ <script type="text/javascript">
516
+ <!--
517
+ adSetType('F');
518
+ htmlAdWH('93248559', '300', '250');
519
+ adSetType('');
520
+ //-->
521
+ </script>
522
+ </div>
523
+ </div><!-- /medrect --> <!-- 300x250 -->
524
+
525
+ <div id="info-card" class="rmod hidden showBlock">
526
+
527
+
528
+ <div class="hr" style="width: 125px; height: 8px; background: #F9A51B; margin-bottom: 1em;"><hr /></div>
529
+
530
+ <h3>Red Dead Redemption Info</h3>
531
+
532
+ <div class="ic-content group">
533
+
534
+ <div id="game-info-description-hider" class="hidden showBlock">
535
+ <div id="game-info-description-inner">
536
+ <h4>Description</h4>
537
+ <p>America, early 1900s -- the era of the cowboy is coming to an end. When federal agents threaten his family, former outlaw John Marston is sent across the American frontier to help bring the rule of law. Experience intense gun battles, dramatic train robberies, bounty hunting and duels during a time of violent change. Red Dead Redemption is an epic battle for survival in a beautiful open world as John Marston struggles to bury his blood-stained past, one man at a time.</a></p>
538
+ </div>
539
+ </div>
540
+ <div id="game-info-description-hider-more" class="hidden"><a href="">Show more</a></div>
541
+
542
+ <div class="col stats hidden showBlock">
543
+ <h5>MSRP</h5>
544
+ <p>59.99 USD</p>
545
+
546
+ <h5>Release Date</h5>
547
+ <p>Available Now</p>
548
+
549
+ <h5>Genre</h5>
550
+ <p>Action, Action Adventure</p>
551
+
552
+
553
+ </div>
554
+
555
+ <div class="col stats hidden showBlock">
556
+ <h5>Developer</h5>
557
+ <p>Rockstar North, Rockstar San Diego</p>
558
+
559
+ <h5>Publisher</h5>
560
+ <p>Rockstar Games</p>
561
+
562
+ <h5>Rating</h5>
563
+ <p>M (Mature)</p>
564
+ </div>
565
+
566
+ </div>
567
+
568
+ </div><div id="p19566101"><div class="rmod" id="breaking-news">
569
+
570
+ <div class="hr" style="width: 125px; height: 8px; background: #444446; margin-bottom: 1em;"><hr /></div>
571
+
572
+ <h3>Breaking News</h3>
573
+
574
+ <a href="http://www.joystiq.com/2010/07/23/littlebigplanet-2-grabs-onto-november-16-release-date/"><img src="http://www.blogcdn.com/www.joystiq.com/media/2010/07/lbp2-collectors-2_310x160.jpg" /></a>
575
+
576
+ <h4><a href="http://www.joystiq.com/2010/07/23/littlebigplanet-2-grabs-onto-november-16-release-date/"><span id="pt19566101">LittleBigPlanet 2 grabs onto Nov. 16 release date; Collector's Edition and pre-order bonuses detailed</span></a></h4>
577
+
578
+ <!-- <p><a href="#">See what else we have on Joystiq</a></p> -->
579
+
580
+ </div></div><div class="rmod list-post-mod">
581
+ <div class="hr" style="width: 125px; height: 8px; background: none repeat scroll 0% 0% rgb(249, 165, 27); margin-bottom: 1em;"><hr></div>
582
+ <h3>Featured Stories</h3>
583
+
584
+ <div class="lp-content group"><div id="p19566019">
585
+ <div class="box group">
586
+ <a href="#"><img src="http://www.blogcdn.com/www.joystiq.com/media/2010/07/incepting_75x75.jpg"></a>
587
+
588
+ <h4><a href="http://www.joystiq.com/2010/07/23/joystiq-podcast-146-schmear-edition/"><span id="pt19566019">Joystiq Podcast 146 - Schmear edition</span></a></h4>
589
+ <p>Posted on Jul 23rd 2010 5:30PM</p>
590
+ </div>
591
+
592
+
593
+ </div><div id="p19565812">
594
+ <div class="box group">
595
+ <a href="#"><img src="http://www.blogcdn.com/www.joystiq.com/media/2010/07/dangercloseheaderimg530px_75x75.jpg"></a>
596
+
597
+ <h4><a href="http://www.joystiq.com/2010/07/23/danger-close-the-story-behind-ea-las-new-name/"><span id="pt19565812">Danger Close: The story behind EA LA's new name</span></a></h4>
598
+ <p>Posted on Jul 23rd 2010 2:30PM</p>
599
+ </div>
600
+
601
+
602
+ </div><div id="p19565798">
603
+ <div class="box group">
604
+ <a href="#"><img src="http://www.blogcdn.com/www.joystiq.com/media/2010/07/alanwake11fog530px_75x75.jpg"></a>
605
+
606
+ <h4><a href="http://www.joystiq.com/2010/07/23/review-alan-wake-dlc-the-signal/"><span id="pt19565798">Review: Alan Wake DLC 'The Signal'</span></a></h4>
607
+ <p>Posted on Jul 23rd 2010 11:30AM</p>
608
+ </div>
609
+
610
+
611
+ </div>
612
+ </div>
613
+
614
+ </div><div class="rmod" id="popular-games">
615
+
616
+ <div class="hr" style="width: 125px; height: 8px; background: #444446; margin-bottom: 1em;"><hr /></div>
617
+ <h3>The most popular posts<br />in the last 7 days</h3>
618
+
619
+ <ol class="group"><li class="one"><a href="http://www.joystiq.com/2010/07/19/joyswag-win-a-trip-for-two-to-pax-courtesy-of-hothead-games/">Joyswag: Win a trip for two to PAX, courtesy of HotHead Games and DeathSpank</a> <span>1499 comments</span></li><li class="two"><a href="http://www.joystiq.com/2010/07/21/joyswag-get-stuck-in-limbo/">Joyswag: Get stuck in Limbo [update: giveaway closed]</a> <span>1335 comments</span></li><li class="three"><a href="http://www.joystiq.com/2010/07/17/swag-saturday-naughty-bears/">Swag Saturday: Naughty Bears [update]</a> <span>915 comments</span></li><li class="four"><a href="http://www.joystiq.com/2010/07/17/joystiq-app-for-iphone-ipod-touch-now-available/">Joystiq app for iPhone, iPod Touch now available!</a> <span>285 comments</span></li><li class="five"><a href="http://www.joystiq.com/2010/07/20/kinect-priced-at-150-includes-kinect-adventures/">Kinect priced at $150, includes Kinect Adventures</a> <span>141 comments</span></li></ol>
620
+
621
+ </div>
622
+ </div> <!-- sub-content -->
623
+
624
+ </div> <!-- content -->
625
+
626
+
627
+ </div> <!-- /container -->
628
+
629
+ <div id="grid" class="group">
630
+
631
+ <div class="pod">
632
+ <a href="http://www.engadget.com"><img src="http://www.engadget.com/media/favicon.ico" /></a>
633
+ <h4>Engadget</h4>
634
+ <ul> <div id="p19566790"> <li><a href="http://www.engadget.com/2010/07/23/atandt-readies-new-calling-plans-for-july-25-little-changing-at-t/"><span id="pt19566790">AT&amp;T readies new calling plans for July 25, li</span> ...</a></li>
635
+ </div><div id="p19566628"> <li><a href="http://www.engadget.com/2010/07/23/commodore-amiga-celebrates-its-25th-birthday-andy-warhol-still/"><span id="pt19566628">Commodore Amiga celebrates its 25th birthday, Andy</span> ...</a></li>
636
+ </div><div id="p19566739"> <li><a href="http://www.engadget.com/2010/07/23/the-engadget-podcast-live-at-5-30pm-est/"><span id="pt19566739">The Engadget Podcast, live at 5:30PM EST!</span> ...</a></li>
637
+ </div></ul> </div>
638
+
639
+ <div class="pod">
640
+
641
+ <a href="http://www.wow.com"><img src="http://www.wow.com/media/favicon.ico" /></a>
642
+ <h4>WoW</h4>
643
+ <ul> <div id="p19566433"> <li><a href="http://www.wow.com/2010/07/23/cataclysm-screenshot-of-the-day/"><span id="pt19566433">Cataclysm screenshot of the day</span> ...</a></li>
644
+ </div><div id="p19564990"> <li><a href="http://www.wow.com/2010/07/23/choose-my-adventure-welcome-lisiel/"><span id="pt19564990">Choose My Adventure: Welcome Lisiel</span> ...</a></li>
645
+ </div><div id="p19566377"> <li><a href="http://www.wow.com/2010/07/23/cataclysm-beta-garrosh-and-sylvanas-voice-clips/"><span id="pt19566377">Cataclysm Beta: Garrosh and Sylvanas voice clips</span> ...</a></li>
646
+ </div></ul> </div>
647
+
648
+ <div class="pod">
649
+ <a href="http://www.massively.com"><img src="http://www.massively.com/media/favicon.ico" /></a>
650
+ <h4>Massively</h4>
651
+ <ul> <div id="p19566754"> <li><a href="http://www.massively.com/2010/07/23/space-combat-has-been-comfirmed-for-swtor/"><span id="pt19566754">Space combat has been confirmed for SWTOR!</span> ...</a></li>
652
+ </div><div id="p19560655"> <li><a href="http://www.massively.com/2010/07/23/wasteland-diaries-the-end/"><span id="pt19560655">Wasteland Diaries: The end</span> ...</a></li>
653
+ </div><div id="p19563479"> <li><a href="http://www.massively.com/2010/07/23/the-road-to-mordor-a-look-back-at-volume-1/"><span id="pt19563479">The Road to Mordor: A look back at Volume 1</span> ...</a></li>
654
+ </div></ul> </div>
655
+
656
+ <div class="pod last">
657
+ <a href="http://news.bigdownload.com"><img src="http://news.bigdownload.com/media/favicon.ico" /></a>
658
+ <h4>Big Download</h4>
659
+ <ul> <div id="p19566820"> <li><a href="http://news.bigdownload.com/2010/07/23/star-wars-the-old-republic-to-feature-space-combat/"><span id="pt19566820">Star Wars The Old Republic to feature space combat</span> ...</a></li>
660
+ </div><div id="p19566386"> <li><a href="http://news.bigdownload.com/2010/07/23/dead-space-2-to-spawn-new-animated-movie-and-graphic-novel/"><span id="pt19566386">Dead Space 2 to spawn new animated movie and graph</span> ...</a></li>
661
+ </div><div id="p19566554"> <li><a href="http://news.bigdownload.com/2010/07/23/rulers-of-nations-to-let-you-play-as-president-obama-sort-of/"><span id="pt19566554">Rulers of Nations to let you play as President Oba</span> ...</a></li>
662
+ </div></ul> </div>
663
+
664
+ <div class="pod">
665
+ <a href="http://www.autoblog.com"><img src="http://www.autoblog.com/media/favicon.ico" /></a>
666
+ <h4>Autoblog</h4>
667
+ <ul> <div id="p19566810"> <li><a href="http://www.autoblog.com/2010/07/23/spy-shots-621-hp-supercharged-2012-camaro-z28/"><span id="pt19566810">Spy Shots: 621-hp Supercharged 2012 Camaro Z28</span> ...</a></li>
668
+ </div><div id="p19566784"> <li><a href="http://www.autoblog.com/2010/07/23/confirmed-audi-rs5-coming-to-america-in-2012-r8-spyder-priced/"><span id="pt19566784">Confirmed: Audi RS5 coming to America in 2012, R8 </span> ...</a></li>
669
+ </div><div id="p19565220"> <li><a href="http://www.autoblog.com/2010/07/23/moto-guzzi-v12-concepts-shot-in-the-studio/"><span id="pt19565220">Moto Guzzi V12 Concepts shot in the studio</span> ...</a></li>
670
+ </div></ul>
671
+ </div>
672
+
673
+ <div class="pod">
674
+ <a href="http://www.urlesque.com"><img src="http://www.urlesque.com/media/favicon.ico" /></a>
675
+ <h4>Urlesque</h4>
676
+ <ul> <div id="p19565887"> <li><a href="http://www.urlesque.com/2010/07/23/tarp-surfing/"><span id="pt19565887">Tarp Surfing Takes the Street by Storm</span> ...</a></li>
677
+ </div><div id="p19566572"> <li><a href="http://www.urlesque.com/2010/07/23/youtube-life-in-a-day/"><span id="pt19566572">YouTube's 'Life In A Day' Project Is Tomorrow - Ge</span> ...</a></li>
678
+ </div><div id="p19563707"> <li><a href="http://www.urlesque.com/2010/07/23/urly-show-episode-43/"><span id="pt19563707">Urly Show Episode #43 - Barbie Video Girl Reviewed</span> ...</a></li>
679
+ </div></ul> </div>
680
+
681
+ <div class="pod">
682
+ <a href="http://blog.games.com/"><img src="http://o.aolcdn.com/os/games/images/favicon.ico" /></a>
683
+ <h4>Games.com Blog</h4>
684
+ <ul> <div id="p19565819"> <li><a href="http://blog.games.com/2010/07/23/zindangi-plans-to-teach-financial-skills-though-social-game/"><span id="pt19565819">Zindangi plans to teach financial skills though so</span> ...</a></li>
685
+ </div><div id="p19565791"> <li><a href="http://blog.games.com/2010/07/23/dueling-studies-differ-on-which-gender-spends-more-on-social-gam/"><span id="pt19565791">Dueling studies differ on which gender spends more</span> ...</a></li>
686
+ </div><div id="p19565776"> <li><a href="http://blog.games.com/2010/07/23/jumpstart-jumps-into-social-gaming-with-jumpstart-connect/"><span id="pt19565776">Jumpstart jumps into social gaming with Jumpstart </span> ...</a></li>
687
+ </div></ul> </div>
688
+
689
+ <div class="pod last">
690
+ &nbsp;&nbsp; </div>
691
+
692
+ </div>
693
+
694
+
695
+ <div id="footer">
696
+
697
+ <div id="footer-inner" class="group">
698
+
699
+ <a href="#" target="_blank" class="cobrand-footer">AOL Games</a>
700
+
701
+ <div id="ft-legal">
702
+
703
+ <a href="/" class="logo">Joystiq</a>
704
+
705
+ <p>&copy 2010 Weblogs, Inc. All rights reserved. <a href="">Joystiq</a> is a member of the <a href="http://www.weblogsinc.com/">Weblogs, Inc. Network</a>.</p>
706
+ <p><a href="http://www.weblogsinc.com/privacy/">Privacy Policy</a>, <a href="http://www.weblogsinc.com/terms/">Terms of Service</a>, <a href="http://www.weblogsinc.com/report/">Notify AOL</a>, <a href="http://www.aolnews.com/">AOL News</a></p>
707
+
708
+ </div>
709
+
710
+ </div>
711
+
712
+ </div>
713
+ <script src="http://www.aolcdn.com/merge/?f=/aol/jquery.getjs-1.0.min.js&f=/aol/jquery.inlinecss-1.0.min.js&expsec=864000&ver=1" type="text/javascript"></script>
714
+ <script src="http://o.aolcdn.com/os/aol/jquery.event.special.sonar.min.js" type="text/javascript"></script>
715
+ <script src="http://o.aolcdn.com/os/ke/scripts/facebook/jquery.fb-init.js?v=3" type="text/javascript"></script>
716
+ <script>
717
+ (function($){
718
+ //default : pass the appid and css (if needed)
719
+ $.fbInit({fbConfig:{appid:130819273603966},css:''});
720
+ //initialize the fb modules
721
+ $("[name='like_button']").fbInit();
722
+ $("#fb_container").fbInit();
723
+
724
+
725
+ var el=$('#fb_container').find('#tabs').find('span.tab');
726
+ el.bind('click',function()
727
+ {
728
+ if(!$(this).find('a').hasClass('active'))
729
+ {
730
+ var me=$(this);
731
+ $('#fb_container>.fbBox').css({'display':'none'});
732
+ el.find('a').removeClass('active');
733
+ $('#'+me.attr('id')+'_box').css({'display':'block'});
734
+ me.find('a').addClass('active');
735
+ FB.getLoginStatus(function(response){if(response.status!="unknown")
736
+ {
737
+ var box = $("#fb_container>#"+me.attr('id')+"_box");
738
+ if(!box.hasClass('fb_loggedin'))
739
+ {
740
+ box.addClass('fb_loggedin');
741
+ box.find("span>iframe").attr('src',box.find("span>iframe").attr('src'));
742
+ }
743
+ }},true);
744
+ }
745
+ });
746
+ })(jQuery);
747
+ </script> <!-- Module: fb-init - rishisharma08 -->
748
+ </body>
749
+
750
+ </html><script type="text/javascript">
751
+ <!--
752
+ document.write('<scr' + 'ipt src="http://www.joystiq.com/traffic/' + '?t=js&bv=&os=&tz=&lg=&rv=&rsv=&pw=%2F2010%2F07%2F23%2Fa-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on%2F&cb=636058901" type="text/javascript"></scr' + 'ipt>');
753
+ // -->
754
+ </script><noscript><img src="http://www.joystiq.com/traffic/?t=px&bv=JavaScript+Disabled&os=&tz=default&lg=&rv=&rsv=&pw=%2F2010%2F07%2F23%2Fa-fistful-of-red-dead-redemption-ps3-for-a-few-dollars-less-on%2F&cb=1283875716" alt="the end" width="1" height="1"border="0" /></noscript>