onebox 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +7 -452
  4. data/Gemfile +1 -1
  5. data/README.md +23 -45
  6. data/lib/onebox.rb +21 -13
  7. data/lib/onebox/engine.rb +53 -43
  8. data/lib/onebox/engine/amazon_onebox.rb +34 -7
  9. data/lib/onebox/engine/classic_google_maps_onebox.rb +37 -0
  10. data/lib/onebox/engine/github_blob_onebox.rb +27 -7
  11. data/lib/onebox/engine/github_commit_onebox.rb +8 -15
  12. data/lib/onebox/engine/github_gist_onebox.rb +10 -10
  13. data/lib/onebox/engine/github_pullrequest_onebox.rb +7 -15
  14. data/lib/onebox/engine/google_play_app_onebox.rb +30 -0
  15. data/lib/onebox/engine/html.rb +10 -1
  16. data/lib/onebox/engine/image_onebox.rb +13 -0
  17. data/lib/onebox/engine/stack_exchange_onebox.rb +25 -11
  18. data/lib/onebox/engine/standard_embed.rb +48 -0
  19. data/lib/onebox/engine/twitter_status_onebox.rb +100 -0
  20. data/lib/onebox/engine/whitelisted_generic_onebox.rb +223 -0
  21. data/lib/onebox/engine/wikipedia_onebox.rb +27 -5
  22. data/lib/onebox/engine/youtube_onebox.rb +22 -0
  23. data/lib/onebox/helpers.rb +24 -0
  24. data/lib/onebox/layout.rb +67 -0
  25. data/lib/onebox/layout_support.rb +16 -0
  26. data/lib/onebox/matcher.rb +6 -1
  27. data/lib/onebox/preview.rb +19 -6
  28. data/lib/onebox/version.rb +1 -1
  29. data/lib/onebox/view.rb +7 -12
  30. data/onebox.gemspec +7 -5
  31. data/spec/fixtures/amazon.response +1336 -2971
  32. data/spec/fixtures/githubblob.response +49 -921
  33. data/spec/fixtures/{android.response → googleplayapp.response} +1 -1
  34. data/spec/fixtures/stackexchange.response +1 -1889
  35. data/spec/fixtures/twitterstatus.response +3006 -0
  36. data/spec/fixtures/youtube-json.response +1 -0
  37. data/spec/fixtures/youtube.response +1625 -0
  38. data/spec/lib/onebox/engine/amazon_onebox_spec.rb +5 -20
  39. data/spec/lib/onebox/engine/classic_google_maps_onebox_spec.rb +28 -0
  40. data/spec/lib/onebox/engine/github_blob_onebox_spec.rb +6 -15
  41. data/spec/lib/onebox/engine/github_commit_onebox_spec.rb +14 -22
  42. data/spec/lib/onebox/engine/github_gist_onebox_spec.rb +6 -14
  43. data/spec/lib/onebox/engine/github_pullrequest_onebox_spec.rb +14 -26
  44. data/spec/lib/onebox/engine/google_play_app_onebox_spec.rb +28 -0
  45. data/spec/lib/onebox/engine/html_spec.rb +4 -6
  46. data/spec/lib/onebox/engine/json_spec.rb +4 -6
  47. data/spec/lib/onebox/engine/stack_exchange_onebox_spec.rb +4 -17
  48. data/spec/lib/onebox/engine/twitter_status_onebox_spec.rb +103 -0
  49. data/spec/lib/onebox/engine/whitelisted_generic_onebox_spec.rb +51 -0
  50. data/spec/lib/onebox/engine/wikipedia_onebox_spec.rb +4 -17
  51. data/spec/lib/onebox/engine/youtube_onebox_spec.rb +17 -0
  52. data/spec/lib/onebox/engine_spec.rb +35 -32
  53. data/spec/lib/onebox/layout_spec.rb +77 -0
  54. data/spec/lib/onebox/matcher_spec.rb +0 -15
  55. data/spec/lib/onebox/preview_spec.rb +39 -9
  56. data/spec/lib/onebox_spec.rb +15 -11
  57. data/spec/spec_helper.rb +60 -4
  58. data/spec/support/html_spec_helper.rb +2 -1
  59. data/templates/_layout.mustache +11 -4
  60. data/templates/amazon.mustache +4 -3
  61. data/templates/githubblob.mustache +7 -5
  62. data/templates/githubcommit.mustache +20 -11
  63. data/templates/githubpullrequest.mustache +19 -12
  64. data/templates/googleplayapp.mustache +4 -0
  65. data/templates/stackexchange.mustache +19 -3
  66. data/templates/twitterstatus.mustache +12 -0
  67. data/templates/whitelistedgeneric.mustache +5 -0
  68. data/templates/wikipedia.mustache +4 -3
  69. metadata +57 -166
  70. data/lib/onebox/engine/bliptv_onebox.rb +0 -28
  71. data/lib/onebox/engine/clikthrough_onebox.rb +0 -25
  72. data/lib/onebox/engine/college_humor_onebox.rb +0 -27
  73. data/lib/onebox/engine/dailymotion_onebox.rb +0 -28
  74. data/lib/onebox/engine/dotsub_onebox.rb +0 -27
  75. data/lib/onebox/engine/example_onebox.rb +0 -24
  76. data/lib/onebox/engine/flickr_onebox.rb +0 -26
  77. data/lib/onebox/engine/funny_or_die_onebox.rb +0 -28
  78. data/lib/onebox/engine/hulu_onebox.rb +0 -29
  79. data/lib/onebox/engine/imgur_image_onebox.rb +0 -26
  80. data/lib/onebox/engine/itunes_onebox.rb +0 -28
  81. data/lib/onebox/engine/kinomap_onebox.rb +0 -27
  82. data/lib/onebox/engine/nfb_onebox.rb +0 -28
  83. data/lib/onebox/engine/open_graph.rb +0 -11
  84. data/lib/onebox/engine/qik_onebox.rb +0 -25
  85. data/lib/onebox/engine/revision3_onebox.rb +0 -27
  86. data/lib/onebox/engine/slideshare_onebox.rb +0 -27
  87. data/lib/onebox/engine/sound_cloud_onebox.rb +0 -27
  88. data/lib/onebox/engine/spotify_onebox.rb +0 -27
  89. data/lib/onebox/engine/ted_onebox.rb +0 -28
  90. data/lib/onebox/engine/twitter_onebox.rb +0 -31
  91. data/lib/onebox/engine/viddler_onebox.rb +0 -28
  92. data/lib/onebox/engine/vimeo_onebox.rb +0 -27
  93. data/lib/onebox/engine/yfrog_onebox.rb +0 -28
  94. data/spec/fixtures/bliptv.response +0 -724
  95. data/spec/fixtures/clikthrough.response +0 -1472
  96. data/spec/fixtures/collegehumor.response +0 -1272
  97. data/spec/fixtures/dailymotion.response +0 -575
  98. data/spec/fixtures/dotsub.response +0 -1257
  99. data/spec/fixtures/example.response +0 -50
  100. data/spec/fixtures/flickr.response +0 -1292
  101. data/spec/fixtures/funnyordie.response +0 -2010
  102. data/spec/fixtures/githubgist.response +0 -468
  103. data/spec/fixtures/hulu.response +0 -339
  104. data/spec/fixtures/imguralbum.response +0 -941
  105. data/spec/fixtures/imgurimage.response +0 -872
  106. data/spec/fixtures/itunes.response +0 -402
  107. data/spec/fixtures/kinomap.response +0 -299
  108. data/spec/fixtures/nfb.response +0 -810
  109. data/spec/fixtures/opengraph.response +0 -27
  110. data/spec/fixtures/qik.response +0 -371
  111. data/spec/fixtures/revision3.response +0 -985
  112. data/spec/fixtures/rottentomatoesfresh.response +0 -3275
  113. data/spec/fixtures/rottentomatoesincomplete.response +0 -2313
  114. data/spec/fixtures/rottentomatoesrotten.response +0 -3549
  115. data/spec/fixtures/slideshare.response +0 -1745
  116. data/spec/fixtures/soundcloud.response +0 -1409
  117. data/spec/fixtures/spotify.response +0 -250
  118. data/spec/fixtures/ted.response +0 -1341
  119. data/spec/fixtures/twitter.response +0 -1712
  120. data/spec/fixtures/viddler.response +0 -442
  121. data/spec/fixtures/vimeo.response +0 -571
  122. data/spec/fixtures/yfrog.response +0 -464
  123. data/spec/lib/onebox/engine/bliptv_onebox_spec.rb +0 -37
  124. data/spec/lib/onebox/engine/clikthrough_onebox_spec.rb +0 -29
  125. data/spec/lib/onebox/engine/college_humor_onebox_spec.rb +0 -37
  126. data/spec/lib/onebox/engine/dailymotion_onebox_spec.rb +0 -39
  127. data/spec/lib/onebox/engine/dotsub_onebox_spec.rb +0 -39
  128. data/spec/lib/onebox/engine/example_onebox_spec.rb +0 -21
  129. data/spec/lib/onebox/engine/flickr_onebox_spec.rb +0 -33
  130. data/spec/lib/onebox/engine/funny_or_die_onebox_spec.rb +0 -37
  131. data/spec/lib/onebox/engine/hulu_onebox_spec.rb +0 -37
  132. data/spec/lib/onebox/engine/imgur_image_onebox_spec.rb +0 -29
  133. data/spec/lib/onebox/engine/itunes_onebox_spec.rb +0 -29
  134. data/spec/lib/onebox/engine/kinomap_onebox_spec.rb +0 -37
  135. data/spec/lib/onebox/engine/nfb_onebox_spec.rb +0 -38
  136. data/spec/lib/onebox/engine/open_graph_spec.rb +0 -27
  137. data/spec/lib/onebox/engine/qik_onebox_spec.rb +0 -38
  138. data/spec/lib/onebox/engine/revision3_onebox_spec.rb +0 -39
  139. data/spec/lib/onebox/engine/slideshare_onebox_spec.rb +0 -33
  140. data/spec/lib/onebox/engine/sound_cloud_onebox_spec.rb +0 -39
  141. data/spec/lib/onebox/engine/spotify_onebox_spec.rb +0 -36
  142. data/spec/lib/onebox/engine/ted_onebox_spec.rb +0 -33
  143. data/spec/lib/onebox/engine/twitter_onebox_spec.rb +0 -47
  144. data/spec/lib/onebox/engine/viddler_onebox_spec.rb +0 -39
  145. data/spec/lib/onebox/engine/vimeo_onebox_spec.rb +0 -37
  146. data/spec/lib/onebox/engine/yfrog_onebox_spec.rb +0 -33
  147. data/spec/lib/onebox/view_spec.rb +0 -16
  148. data/templates/bliptv.mustache +0 -5
  149. data/templates/clikthrough.mustache +0 -4
  150. data/templates/collegehumor.mustache +0 -5
  151. data/templates/dailymotion.mustache +0 -5
  152. data/templates/dotsub.mustache +0 -5
  153. data/templates/example.mustache +0 -2
  154. data/templates/flickr.mustache +0 -4
  155. data/templates/funnyordie.mustache +0 -6
  156. data/templates/githubgist.mustache +0 -3
  157. data/templates/hulu.mustache +0 -6
  158. data/templates/imgurimage.mustache +0 -3
  159. data/templates/itunes.mustache +0 -4
  160. data/templates/kinomap.mustache +0 -5
  161. data/templates/nfb.mustache +0 -5
  162. data/templates/qik.mustache +0 -4
  163. data/templates/revision3.mustache +0 -5
  164. data/templates/slideshare.mustache +0 -4
  165. data/templates/soundcloud.mustache +0 -5
  166. data/templates/spotify.mustache +0 -4
  167. data/templates/ted.mustache +0 -5
  168. data/templates/twitter.mustache +0 -7
  169. data/templates/viddler.mustache +0 -5
  170. data/templates/vimeo.mustache +0 -5
  171. data/templates/yfrog.mustache +0 -4
@@ -1,872 +0,0 @@
1
-
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
- <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
4
- <head>
5
- <title> My dog likes to hug me. He also likes to get a running start first. - Imgur
6
- </title>
7
- <meta http-equiv="content-type" content="text/html;charset=utf-8" />
8
- <meta name="robots" content="follow,index" />
9
- <meta name="keywords" content="images, funny pictures, image host, image upload, image sharing, image resize" />
10
- <meta name="description" content="Imgur is home to the web's most popular image content, curated in real time by a dedicated community through commenting, voting and sharing." />
11
- <meta http-equiv="X-UA-Compatible" content="IE=Edge;" />
12
-
13
- <link rel="alternate" type="application/rss+xml" title="Imgur Gallery" href="http://feeds.feedburner.com/ImgurGallery?format=xml" />
14
- <link rel="stylesheet" type="text/css" href="http://s.imgur.com/min/global.css?1379624102" />
15
- <meta name="medium" content="image"/>
16
- <link rel="stylesheet" href="http://s.imgur.com/min/gallery.css?1379709744"/>
17
- <meta name="twitter:card" value="photo"/>
18
- <meta name="twitter:site" value="@imgur"/>
19
- <meta name="twitter:url" value="http://imgur.com/gallery/twoDTCU"/>
20
- <meta name="twitter:title" value="My dog likes to hug me. He also likes to get a running start first."/>
21
- <link rel="image_src" href="http://i.imgur.com/twoDTCU.jpg"/>
22
- <meta name="twitter:image" value="http://i.imgur.com/twoDTCU.jpg"/>
23
- <meta name="twitter:image:width" value="2400"/>
24
- <meta name="twitter:image:height" value="1800"/>
25
-
26
- <!--[if IE 9]><link rel="stylesheet" href="http://s.imgur.com/include/css/ie-sucks.css?0" type="text/css" /><![endif]-->
27
-
28
-
29
- <script type='text/javascript'>
30
- var googletag = googletag || { };
31
- googletag.cmd = googletag.cmd || [];
32
- (function() {
33
- var gads = document.createElement('script');
34
- gads.async = true;
35
- gads.type = 'text/javascript';
36
- var useSSL = 'https:' == document.location.protocol;
37
- gads.src = (useSSL ? 'https:' : 'http:') +
38
- '//www.googletagservices.com/tag/js/gpt.js';
39
- var node = document.getElementsByTagName('script')[0];
40
- node.parentNode.insertBefore(gads, node);
41
- })();
42
- </script>
43
-
44
- <script type='text/javascript'>
45
- var dfp_adslot = undefined;
46
-
47
- googletag.cmd.push(function() {
48
- dfp_adslot = googletag.defineSlot('/4761660/H_I_300x250', [300, 250], 'div-gpt-ad-1345436847476-0').addService(googletag.pubads());
49
- googletag.pubads().enableSingleRequest();
50
- googletag.enableServices();
51
- });
52
- </script>
53
- </head>
54
- <body>
55
- <div id="topbar" >
56
- <div class="header-center">
57
- <div id="header-logo">
58
- <a href="//imgur.com"></a>
59
- </div>
60
-
61
-
62
-
63
- <div id="main-nav">
64
- <ul>
65
-
66
- <li class="random-button title-n " title="random mode"><span class="button-outline"><a href="http://imgur.com/random"><span class="random-icon"></span></a></span></li>
67
- <li class="upload-button disabled title-n" title="upload images"><div id="upload-global-top-bar-mini-progress"></div><span class="button-outline"><a href="javascript:void(0);"><span class="upload-icon"></span><span class="upload-queue-length">23</span></a></span></li>
68
- </ul>
69
- </div>
70
-
71
- <div id="secondary-nav">
72
- <ul class="user-nav">
73
- <li class="signin-link"><a class="" href="https://imgur.com/signin"><span class="dot"></span>sign in</a>
74
- <div class="signin-dropdown">
75
- <form method="post" action="https://imgur.com/signin" id="dropdown-signin-form">
76
- <span class='tiptext'>Use an Imgur account</span>
77
- <div>
78
- <input type="text" tabindex="11" name="username" maxlength="255" id="dd-username" title="username or email address" class="placeholder-onkeydown required" value="">
79
- </div>
80
-
81
- <div>
82
- <div class="recover">
83
- <a class="forgot" href="http://imgur.com/signin/forgotpassword">
84
- forgot?
85
- </a>
86
- </div>
87
- <div class="clear"></div>
88
- <input type="password" tabindex="12" name="password" title="password" maxlength="255" id="dd-password" placeholder="password" class="placeholder required" value="">
89
- </div>
90
-
91
- <div class="remember-box">
92
- <input type="checkbox" tabindex="13" name="remember" id="dd-remember" value="remember" checked="checked">
93
- <label for="dd-remember"> Stay signed in on this computer</label>
94
- </div>
95
-
96
- <div class="signin-button">
97
- <input type="submit" class="button-medium" name="submit_form" value="Sign in" id="dd-submit" tabindex="14">
98
- <label class="imgur signin-icon" for="dd-submit"></label>
99
- </div>
100
- </form>
101
-
102
- <div class="other-accounts">
103
- <span class='tiptext'>Use another account</span>
104
-
105
- <ul>
106
- <li>
107
- <a href="https://imgur.com/signin/google">
108
- Google
109
- <span class="signin-icon google"></span>
110
- </a>
111
- </li>
112
- <li><a href="https://imgur.com/signin/facebook">
113
- Facebook
114
- <span class="signin-icon facebook"></span>
115
- </a>
116
- </li>
117
- <li>
118
- <a href="https://imgur.com/signin/twitter">
119
- Twitter
120
- <span class="signin-icon twitter"></span>
121
- </a>
122
- </li>
123
- <li>
124
- <a href="https://imgur.com/signin/yahoo">
125
- Yahoo
126
- <span class="signin-icon yahoo"></span>
127
- </a>
128
- </li>
129
- </ul>
130
- </div>
131
- </div>
132
- </li>
133
- <li><a href="https://imgur.com/register">register</a></li>
134
- </ul>
135
-
136
- </div>
137
-
138
- </div>
139
-
140
- </div>
141
-
142
-
143
-
144
-
145
-
146
-
147
-
148
- <a href="javascript:;" id="upload-global-album-tipsy" class="title-nw nodisplay" title="You can't create an album with just one image"></a>
149
-
150
- <div id="upload-global" class="popup">
151
- <form method="post" id="upload-global-form" enctype="multipart/form-data" action="http://imgur.com/upload">
152
- <h1>
153
- <span id="upload-global-title">Upload images</span>
154
-
155
- </h1>
156
-
157
- <div id="upload-global-buttons">
158
- <div id="upload-global-upload-loader" class="textbox">
159
- Loading...
160
- </div>
161
-
162
- <div id="upload-global-file-wrapper">
163
- <span class="computerIcon"></span>
164
- <span class="green">browse</span> your computer
165
-
166
- <input type="file" name="Filedata" multiple="multiple" id="upload-global-file">
167
- </div>
168
-
169
- <div class="left">
170
- <div id="upload-global-url">
171
- <span class="webIcon"></span>
172
- <textarea id="upload-global-link-input" class="placeholder-onkeydown" title="enter URLs to upload from web" placeholder="enter URLs to upload from web" rows="1"></textarea>
173
- </div>
174
- </div>
175
-
176
- <div class="clear"></div>
177
-
178
- <div id="upload-global-dragdrop">
179
- <span class="dragdropIcon"></span>
180
- <span class="green">drag and drop</span> here
181
- </div>
182
-
183
- <div class="left">
184
- <div id="upload-global-clipboard">
185
- <div style="text-align: center"><span class="clipboardIcons">Ctrl + V</span></div>
186
- <span class="green">paste</span> from your clipboard
187
- </div>
188
- </div>
189
-
190
- <div class="clear"></div>
191
- </div>
192
-
193
- <div class="textbox center" id="upload-global-instructions"></div>
194
-
195
- <!-- gallery submit vars -->
196
- <input type="hidden" name="current_upload" value="0"/>
197
- <input type="hidden" name="total_uploads" value="0"/>
198
- <input type="hidden" name="terms" value="0"/>
199
- <input type="hidden" name="gallery_type" value=""/>
200
-
201
-
202
- <div id="upload-global-errors" class="textbox error" style="display: none;"></div>
203
-
204
- <div id="upload-global-queue-description" class="textbox nodisplay"></div>
205
-
206
- <div id="upload-global-start-upload">
207
- <div class="panel">
208
- <div>
209
-
210
- <table id="upload-global-actions">
211
- <tbody>
212
- <tr>
213
-
214
- <td width="50.1%">
215
-
216
- <div id="upload-global-album-checkbox-div">
217
- <input type="hidden" name="gallery_submit" value="0"/>
218
-
219
- <button id="upload-global-gallery-checkbox" type="button">
220
- <span class="gallery-icon"></span>add to gallery
221
- </button>
222
-
223
- <div id="upload-global-gallery-checkbox-overlay"></div>
224
-
225
- <input type="hidden" name="create_album" value="0"/>
226
-
227
- <button id="upload-global-album-checkbox" type="button">
228
- <span class="createAlbum-icon"></span>create album
229
- </button>
230
-
231
- </div>
232
-
233
- </td>
234
- <td width="49.9%">
235
- <button type="button" id="upload-global-start-button" class="button-big green" type="submit">
236
- <span class="start-btn-icon"></span>
237
- Start Upload
238
- </button>
239
- </td>
240
- </tr>
241
- </tbody>
242
- </table>
243
-
244
- </div>
245
-
246
- <div id="upload-global-album-options">
247
-
248
-
249
-
250
-
251
-
252
-
253
-
254
-
255
-
256
-
257
- <table id="upload-global-album-layout">
258
- <tr>
259
- <td id="upload-global-album-td">
260
- <input name="album_title" type="text" title="Optional Album Title" class="placeholder-onkeydown" id="upload-global-album-title" maxlength="55" />
261
- </td>
262
-
263
- <td class="center title" title="<table><tr><td style='vertical-align: middle'>&lt;img src=&#039;http://s.imgur.com/images/album-layout-blog.png&#039; style=&#039;padding-right: 2px;&#039;/&gt;</td><td>&lt;h1&gt;Blog Layout&lt;/h1&gt;Shows all the images on one page in a blog post style layout. Best for albums with a small to medium amount of images.</td></tr></table>">
264
- <input id="blog" type="radio" name="layout" value="b" checked="checked"/>
265
- <label for="blog">Blog</label>
266
- </td>
267
-
268
- <td class="center title" title="<table><tr><td style='vertical-align: middle'>&lt;img src=&#039;http://s.imgur.com/images/album-layout-vertical.png&#039; style=&#039;padding-right: 6px;&#039;/&gt;</td><td>&lt;h1&gt;Vertical Layout&lt;/h1&gt;Shows one image at a time in a traditional style, with thumbnails to the right. Good for almost any album.</td></tr></table>">
269
- <input id="vertical" type="radio" name="layout" value="v"/>
270
- <label for="vertical">Vertical</label>
271
- </td>
272
-
273
- <td class="center title" title="<table><tr><td style='vertical-align: middle'>&lt;img src=&#039;http://s.imgur.com/images/album-layout-horizontal.png&#039; style=&#039;padding-right: 6px;&#039;/&gt;</td><td>&lt;h1&gt;Horizontal Layout&lt;/h1&gt;Shows one image at a time in a traditional style, with thumbnails on top. Best for albums that have high resolution photos.</td></tr></table>">
274
- <input id="horizontal" type="radio" name="layout" value="h"/>
275
- <label for="horizontal">Horizontal</label>
276
- </td>
277
-
278
- <td class="center title" title="<table><tr><td style='vertical-align: middle'>&lt;img src=&#039;http://s.imgur.com/images/album-layout-grid.png&#039; style=&#039;padding-right: 6px;&#039;/&gt;</td><td>&lt;h1&gt;Grid Layout&lt;/h1&gt;Shows all the images on one page as thumbnails that expand when clicked on. Best for albums with lots of images.</td></tr></table>">
279
- <input id="grid" type="radio" name="layout" value="g"/>
280
- <label for="grid">Grid</label>
281
- </td>
282
-
283
- <td width="15"></td>
284
- </tr>
285
- </table>
286
-
287
- </div>
288
- <div id="upload-global-image-options">
289
- <table id="upload-global-submission-title">
290
- <tr>
291
- <td>
292
- <input name="gallery_title" type="text" class="placeholder-onkeydown" title="Gallery submission title (required)" id="upload-global-gallery-submission-title" maxlength="255" />
293
- </td>
294
- </tr>
295
- </table>
296
- </div>
297
-
298
- <div class="textbox list">
299
- <table id="upload-global-file-list-header">
300
- <tr class="top-tr">
301
- <td width="40"></td>
302
- <td><h2>Images <span class="upload-queue-length">(0)</span></h2></td>
303
- <td width="45" class="edit-td"><h2>Edit</h2></td>
304
- </tr>
305
- </table>
306
-
307
- <table id="upload-global-file-list">
308
- </table>
309
- <div class="agreement-notice">By uploading, you agree to our <a href="//imgur.com/tos" target="_blank">terms of service</a></div>
310
-
311
- </div>
312
- </div>
313
- </div>
314
-
315
- <div id="upload-global-progress-wrapper">
316
- <div id="upload-global-progressbar">
317
- <div class="progressBarBG">
318
- <div class="progressBar"></div>
319
- </div>
320
- </div>
321
- <div id="upload-global-upload-queue"></div>
322
- </div>
323
- </form>
324
- </div>
325
-
326
- <div id="upload-global-FF-paste-box"></div>
327
-
328
- <div id="hiddenDropZone" class="nodisplay"></div>
329
-
330
- <div class="nodisplay">
331
- <div id="upload-global-image-formats">
332
- That file type is not supported!
333
-
334
- <div class="textbox supported-formats">
335
- Supported formats: JPEG, GIF, PNG, APNG, TIFF, BMP, PDF, XCF
336
- </div>
337
- </div>
338
- </div>
339
-
340
- <div id="upload-global-flash-container" title="upload images from your computer">
341
- <div id="upload-global-flash-browse"></div>
342
- </div>
343
-
344
-
345
-
346
- <div class="nodisplay">
347
- Imgur is home to the web's most popular image content, curated in real time by a dedicated community through commenting, voting and sharing.
348
- </div>
349
-
350
-
351
-
352
-
353
- <div id="content" class="two-column">
354
- <div class="left main-image">
355
- <div class="panel">
356
- <h2 id='image-title'>My dog likes to hug me. He also likes to get a running start first.</h2>
357
-
358
-
359
-
360
- <div id="image" class="zoom">
361
- <div class="image textbox ">
362
-
363
-
364
- <a href="http://i.imgur.com/twoDTCU.jpg">
365
- <img src="http://i.imgur.com/twoDTCU.jpg" alt="" />
366
- </a>
367
- </div>
368
-
369
-
370
-
371
-
372
-
373
- </div>
374
-
375
- <div id="under-image">
376
-
377
-
378
- <div>
379
- <div class="textbox image-arrows nospace"><span id="mainUpArrow" class="arrow up title" data="twoDTCU" type="image" title="Like"></span><span id="mainDownArrow" class="arrow down title" data="twoDTCU" type="image" title="Dislike"></span></div>
380
-
381
- <div class="favorite-icon inline" >
382
- <div id="favorite-image" title="Favorite" class="title " href="javascript:;"></div>
383
- </div>
384
-
385
- <div class="info textbox">
386
- <div class="left">
387
- <span class="points-twoDTCU">1,540</span>
388
- <span class="points-text-twoDTCU">points</span>
389
-
390
- </div>
391
-
392
-
393
-
394
- <div class="sparkbar">
395
-
396
- <div class="title positive " title="1556 likes" style="width: 98.982188295165%"></div>
397
- <div class="title negative " title="16 dislikes" style="width: 1.0178117048346%"></div>
398
- </div>
399
-
400
-
401
-
402
- </div>
403
-
404
-
405
-
406
- <div class="report-icon inline" >
407
- <div id="report-image" title="Report Image" class="title " href="javascript:;"></div>
408
- <div id="delete-image" title="Remove this image from the gallery" class="title nodisplay" href="javascript:;"></div>
409
- </div>
410
-
411
- <div id="social" class="social">
412
- <ul>
413
- <li class="title" title="Share on Twitter">
414
- <span class="twitter_custom"></span>
415
- </li>
416
- <li class="title" title="Share on Facebook">
417
- <span class="facebook_custom"></span>
418
- </li>
419
- <li class="title" title="Share on Reddit">
420
- <span class="reddit_custom"></span>
421
- </li>
422
- <li class="title" title="Share on Tumblr">
423
- <span class="tumblr_custom"></span>
424
- </li>
425
- <li class="title" title="Share on Stumble Upon">
426
- <span class="stumbleupon_custom"></span>
427
- </li>
428
- <li class="title email-button-hide" title="Share over email">
429
- <a href="javascript:;" class="addthis_button_email"><span class="st_email_custom"></span></a>
430
- </li>
431
- <li class="title" title="More sharing options">
432
- <span class="addthis_button st_sharethis_custom"><span></span></span>
433
- </li>
434
- </ul>
435
- </div>
436
-
437
-
438
- <div class="clear"></div>
439
- </div>
440
-
441
- <div id="sponsored-image-caption">
442
-
443
- </div>
444
-
445
- <div id="submit-caption">
446
- <textarea name="5356d2e58e23b5a4c11dfae7791a91ef" id="caption_textarea">Submit a comment</textarea>
447
- <input type="button" name="save" class="submit submit-caption-button button-medium right" value="save" />
448
-
449
- <span class="counter left"></span>
450
- <div id="save-caption-loader"></div>
451
- <div class="clear"></div>
452
- </div>
453
-
454
- <div id="caption-error" class="error textbox"></div>
455
- <div class="clear"></div>
456
-
457
- <div class="small textbox comments-info">
458
- <div class="left">
459
- <div class="inline"><span id="comment-count">- comments</span> sorted by&nbsp;</div>
460
-
461
- <div id="comment-sort" class="left combobox inline" title="sort comments by" name="comment-sort">
462
- <div class="selection green"></div>
463
- <div class="triangle"></div>
464
- <div class="options">
465
- <div class="item center selected" value="best">best</div>
466
- <div class="item center " value="new">new</div>
467
- <div class="item center " value="top">top</div>
468
- </div>
469
- </div>
470
- </div>
471
- <div class="right small">
472
- <a href="javascript:;" data="collapsed" id="expand-comments">expand all</a>
473
-
474
- </div>
475
- <div class="clear"></div>
476
- </div>
477
-
478
- <div id="captions">
479
- <noscript>
480
- <div class="textbox small-margin-top line-height-normal">
481
- Javascript is required to view comments normally. Please either enable javascript or click <a href="?no-script=true">here</a> to view comments without javascript.
482
- </div>
483
- </noscript>
484
-
485
- </div>
486
- </div>
487
- </div>
488
-
489
- <div id="footer">
490
- <div id="copyright">© 2013 Imgur, LLC.</div>
491
-
492
-
493
- <div id="footer-links">
494
- <a href="http://store.imgur.com" class="title green" title="the official imgur store">store</a>
495
- <a href="http://imgur.com/blog" class="title" title="the simple imgur blog">blog</a>
496
- <a href="http://imgur.com/help" class="title" title="answers to your questions">help</a>
497
- <a href="http://imgur.com/apps" class="title" title="uploading apps">apps</a>
498
- <a href="http://imgur.com/removalrequest" class="title" title="submit an image removal request">request deletion</a>
499
- <a href="http://imgur.com/tos" class="title" title="terms of service">terms</a>
500
- <a href="http://imgur.com/register/upgrade" class="title" title="imgur pro">go pro</a>
501
-
502
- <a href="http://api.imgur.com" class="title" title="the imgur API">api</a>
503
- </div>
504
-
505
- <div class="clear"></div>
506
-
507
- </div>
508
- </div>
509
-
510
- <div id="right-content" class="right">
511
- <div class="panel navigation-thumbs">
512
- <div class="next-prev">
513
-
514
-
515
- <div class="left">
516
- <a id="navPrev" href="/gallery/8XX0z">
517
- <input type="button" class="button-medium" id="navPrev" value="&laquo; prev"/>
518
- </a>
519
-
520
- <a id="navNext" href="/gallery/qc2vTYc">
521
- <input type="button" class="button-medium" value="next &raquo;"/>
522
- </a>
523
-
524
- </div>
525
-
526
- <div class="right">
527
- <a href="/hot/viral/" class="browse" >
528
- <input type="button" class="button-medium" value="browse" onclick="javascript:window.location='/hot/viral/';" />
529
- </a>
530
-
531
- </div>
532
-
533
- <div class="clear"></div>
534
- </div>
535
-
536
- <div class='thumbs-carousel'>
537
- <div class="carousel-button prev">
538
- <div></div>
539
- </div>
540
-
541
- <div class="left">
542
- <div id="thumbs-top" class="jcarousel">
543
- <ul>
544
-
545
- <li><a href="/gallery/qc2vTYc">
546
- <img class='thumb-title' hash='qc2vTYc' src="http://i.imgur.com/qc2vTYcb.jpg" title="Don&amp;#039;t ruin the sanctity of marriage!<p>2,262 points : 70,454 views</p>" />
547
- </a></li>
548
-
549
-
550
- <li><a href="/gallery/t8SYt6t">
551
- <img class='thumb-title' hash='t8SYt6t' src="http://i.imgur.com/t8SYt6tb.jpg" title="I don&amp;#039;t know if this is more creepy or hilarious.<p>609 points : 205,580 views</p>" />
552
- </a></li>
553
-
554
-
555
- <li><a href="/gallery/628BxQa">
556
- <img class='thumb-title' hash='628BxQa' src="http://i.imgur.com/628BxQab.jpg" title="Catsitting this monstrosity<p>860 points : 184,864 views</p>" />
557
- </a></li>
558
-
559
-
560
-
561
-
562
-
563
-
564
-
565
-
566
-
567
- </ul>
568
- </div>
569
- <div id="thumbs-bottom" class="jcarousel">
570
- <ul>
571
-
572
-
573
-
574
-
575
-
576
-
577
-
578
- <li><a href="/gallery/G3uDdnF">
579
- <img class='thumb-title' hash='G3uDdnF' src="http://i.imgur.com/G3uDdnFb.jpg" title="I was looking up references of broken glass, and I accidently scared the shit out of my boss.<p>1,425 points : 504,615 views</p>" />
580
- </a></li>
581
-
582
-
583
- <li><a href="/gallery/wdaekjY">
584
- <img class='thumb-title' hash='wdaekjY' src="http://i.imgur.com/wdaekjYb.jpg" title="Neil deGrasse Tyson gave a talk at my university yesterday. This is how the newspaper reported it today.<p>2,627 points : 1,263,306 views</p>" />
585
- </a></li>
586
-
587
-
588
- <li><a href="/gallery/SaiAoWY">
589
- <img class='thumb-title' hash='SaiAoWY' src="http://i.imgur.com/SaiAoWYb.jpg" title="8 Papa John&amp;#039;s Suddenly Close on Payday, leaving myself and 50+ other employees without pay for our last 2 weeks. The same owners have another franchise open and run by Papa John&amp;#039;s.<p>356 points : 236,330 views</p>" />
590
- </a></li>
591
-
592
-
593
-
594
- </ul>
595
- </div>
596
- </div>
597
- <div class="carousel-button next">
598
- <div></div>
599
- </div>
600
-
601
- <div class="clear"></div>
602
- </div>
603
- </div>
604
-
605
-
606
-
607
- <div id="statsbox" class="panel" style="display:block">
608
- <div class="stats textbox">
609
- <div id="stats-submit-date" style="float:left" title="Friday, September 20, 2013 at 18:58:00 GMT">
610
- Submitted
611
- 5 hours ago
612
- </div>
613
-
614
- <div id="stats-submit-source-reddit" class="right small"><a href="http://www.reddit.com/r/aww/comments/1msljq/my_dog_likes_to_hug_me_he_also_likes_to_get_a/">(source)</a></div>
615
-
616
- <div class="clear"></div>
617
-
618
- <div class="by">
619
- <div id="stats-submit-source"></div>
620
- </div>
621
-
622
- <div class="">
623
- <span id="stats-views" class="stat">593,820</span> views
624
- <span id="bandwidth-div" > &middot; <span id="stats-bandwidth" class="stat">374.08 GB</span> bandwidth</span>
625
- </div>
626
-
627
- <div id="original-source" class="nodisplay">
628
- <span class="title" title="This images original location on the web">from:</span> <span class="domain"><a href=""></a></span>
629
- </div>
630
-
631
- <div class="small margin-top">
632
- <div class="left .embed-codes">
633
- <a target="_blank" id="stats-embed-codes" href="/twoDTCU?tags">Get embed codes</a>
634
-
635
- </div>
636
- <div class="right">
637
- <a href="/download/twoDTCU/My+dog+likes+to+hug+me.+He+also+likes+to+get+a+running+start+first." id='stats-download'>Download</a>
638
- <img id="download-loader" class="nodisplay" src="http://s.imgur.com/images/index-loader.gif">
639
- </div>
640
- <div class="clear"></div>
641
- </div>
642
-
643
- <div class="clear"></div>
644
-
645
- </div>
646
- </div>
647
-
648
- <div class="advertisement">
649
- <div class="panel-ad">
650
- <div id='div-gpt-ad-1345436847476-0' style='width:300px; height:250px;'>
651
- <script type='text/javascript'>
652
- googletag.cmd.push(function() { googletag.display('div-gpt-ad-1345436847476-0'); });
653
- </script>
654
- </div>
655
-
656
-
657
-
658
- </div>
659
-
660
- <div class="ad-text">
661
- Advertisement: <a href="/register/upgrade">pro users don't see ads</a>
662
- </div>
663
- </div>
664
-
665
-
666
-
667
- </div>
668
-
669
- <div class="clear"></div>
670
- </div>
671
-
672
- <input id="sid" type="hidden" value="5356d2e58e23b5a4c11dfae7791a91ef" />
673
-
674
- <div class="nodisplay">
675
- <div id="colorbox-confirm" class="popup">
676
- <h1 id="colorbox-confirm-title"></h1>
677
-
678
- <div class="textbox" id="colorbox-confirm-message"></div>
679
-
680
- <div class="margin-top">
681
- <div class="left">
682
- <a href="javascript:;" class="colorbox-no-confirm" id="colorbox-confirm-no">No way!</a>
683
- </div>
684
-
685
- <div class="right">
686
- <div class="small-loader"></div>
687
- <a href="javascript:;" class="colorbox-confirm" id="colorbox-confirm-yes">I'm sure</a>
688
- </div>
689
-
690
- <div class="clear"></div>
691
- </div>
692
- </div>
693
- </div>
694
-
695
- <div class="nodisplay">
696
- <div id="download-album-form" class="popup">
697
- <h1>Download this album</h1>
698
-
699
- <div class="textbox">
700
- This album is really big! It's going to take us a bit to get your download ready for you. Enter your email and we will notify you when it's ready.
701
- </div>
702
- <form id="download-form" onsubmit="return false;">
703
-
704
- <div>
705
- <div><input id="email" type="text" class="placeholder-onkeydown placeholder" title="Email" value="" class="required email" /></div>
706
- <div id="message" class="right"></div>
707
- <div class="left">
708
- <input name="zip-album-submit-5356d2e58e23b5a4c11dfae7791a91ef" type="submit" class="button-medium" value="Save" id="save">
709
- </div>
710
- <div class="clear"></div>
711
- </div>
712
- </form>
713
- </div>
714
- </div>
715
-
716
-
717
-
718
-
719
-
720
-
721
-
722
-
723
-
724
- <script type="text/javascript">
725
- (function() {
726
- var roll = Math.random();
727
- if(roll < 0.05) {
728
-
729
- (function(_,e,rr,s){
730
- _errs=[s];var c=_.onerror;_.onerror=function(){var a=arguments;_errs.push(a);
731
- c&&c.apply(this,a)};var b=function(){var c=e.createElement(rr),b=e.getElementsByTagName(rr)[0];
732
- c.src="//beacon.errorception.com/"+s+".js";c.async=!0;b.parentNode.insertBefore(c,b)};
733
- _.addEventListener?_.addEventListener("load",b,!1):_.attachEvent("onload",b)
734
- })(window,document,"script","51d1e360b05ccb10310000d2");
735
-
736
- }
737
- })();
738
- </script>
739
-
740
- <script type="text/javascript" src="http://s.imgur.com/min/global.js?1379709744"></script>
741
- <script type="text/javascript">
742
- var imgur = Imgur.getInstance();
743
- imgur.init({
744
-
745
- isDev : 0,
746
- host : 'imgur.com',
747
- cdnUrl : 'http://i.imgur.com',
748
- signed : false
749
- });
750
-
751
- imgur.initTopBarUploadButton();
752
- imgur.generalInit();
753
- </script>
754
-
755
-
756
- <iframe id="zedo" src="http://imgur.com/include/zedoinviewstub1621.html?n=1621;c=1;s=0;w=160;h=600;sz=7;li=false;ns=true;" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" allowTransparency="true" width="1" height="1"></iframe>
757
-
758
-
759
- <script type="text/javascript" src="http://s.imgur.com/min/gallery.js?1379624102"></script>
760
- <script type="text/javascript">
761
- var gallery = Imgur.Gallery.getInstance({
762
- sid : '5356d2e58e23b5a4c11dfae7791a91ef',
763
- cdnUrl : 'http://i.imgur.com',
764
- account_url : '',
765
- signed : false,
766
- sort : 'viral',
767
- section : 'hot',
768
- window : 'day',
769
- isHotImage : '1',
770
- prevHash : '8XX0z',
771
- nextHash : 'qc2vTYc',
772
- hash : 'twoDTCU',
773
- baseURL : '/gallery',
774
- page : '0',
775
- galleryTitle : 'imgur: the simple image sharer',
776
- commentName : 'comment',
777
- isPro : false,
778
- searchQuery : '',
779
- debugTLDR : false,
780
- isRandom : false,
781
- comment_sort : 'best',
782
- comment_id : '',
783
-
784
- image : {"hash":"twoDTCU","account_id":null,"account_url":null,"title":"My dog likes to hug me. He also likes to get a running start first.","score":2447,"starting_score":611,"virality":1911.4098095651,"size":676416,"views":593820,"is_hot":true,"is_album":false,"album_cover":null,"mimetype":"image\/jpeg","ext":".jpg","width":2400,"height":1800,"animated":false,"ups":1556,"downs":16,"points":1540,"reddit":"\/r\/aww\/comments\/1msljq\/my_dog_likes_to_hug_me_he_also_likes_to_get_a\/","bandwidth":"374.08 GB","timestamp":"2013-09-20 18:58:00","hot_datetime":"2013-09-21 00:43:49","nsfw":false,"section":"aww","description":""},
785
- gallery_type : null,
786
- usingCache : true,
787
- captionsCacheTime : 30,
788
- captionsCacheCookie : 'm_force_cache_miss',
789
- subgallery_name : null,
790
- subgalleryUpload : true,
791
- tldrAds : true
792
- });
793
-
794
- gallery.insideInit();
795
- gallery.initTldr();
796
-
797
- $(document).ready(function(){
798
- var imgurFavorite = Imgur.Favorite.getInstance({
799
- method: null
800
- });
801
-
802
- imgurFavorite._init();
803
- });
804
- </script>
805
-
806
-
807
-
808
- <script type="text/javascript">
809
- var _gaq = _gaq || [];
810
- _gaq.push(['_setAccount', 'UA-6671908-2']);
811
- _gaq.push(['_setDomainName', 'none']);
812
- _gaq.push(['_trackPageview']);
813
- _gaq.push(['_trackPageLoadTime']);
814
-
815
- _gaq.push(['_setCustomVar', 1, 'Gallery', 'Inside', 3]);
816
-
817
- (function() {
818
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
819
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : '//www') + '.google-analytics.com/ga.js';
820
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
821
- })();
822
- </script>
823
-
824
- <script type='text/javascript'>
825
- var _qevents = _qevents || [];
826
- (function() {
827
- var elem = document.createElement('script');
828
- elem.src = (document.location.protocol == "https:" ? "https://secure" : "//edge") + ".quantserve.com/quant.js";
829
- elem.async = true;
830
- elem.type = "text/javascript";
831
- var scpt = document.getElementsByTagName('script')[0];
832
- scpt.parentNode.insertBefore(elem, scpt);
833
- })();
834
-
835
- _qevents.push({
836
- qacct:"p-f8oruOqDFlMeI"
837
- });
838
- </script>
839
-
840
- <noscript>
841
- <div class="nodisplay">
842
- <img src="//pixel.quantserve.com/pixel/p-f8oruOqDFlMeI.gif" border="0" height="1" width="1" alt="Quantcast"/>
843
- </div>
844
- </noscript>
845
-
846
-
847
-
848
- <script type="text/javascript" src="http://tap-cdn.rubiconproject.com/partner/scripts/rubicon/alice.js?pc=8526/13802"></script>
849
- <script type='text/javascript' src='http://static.fmpub.net/site/imgur'></script>
850
-
851
-
852
-
853
- <script type='text/javascript'>
854
- //<![CDATA[
855
- var _stippleq = _stippleq || [];
856
- (function() {
857
- var s = document.createElement('script');
858
- s.type = 'text/javascript';
859
- s.async = true;
860
- s.src = location.protocol === 'https:' ? 'https://stippleit.com/stipple.js' : 'http://stipple.cachefly.net/production/stipple.js';
861
- var x = document.getElementsByTagName('script')[0];
862
- x.parentNode.insertBefore(s, x);
863
- })();
864
- //]]>
865
- </script>
866
- <script type='text/javascript'>
867
- //<![CDATA[
868
- _stippleq.push(['load', '31Mn39', {}]);
869
- //]]>
870
- </script>
871
- </body>
872
- </html>