tweetlr 0.1.20 → 0.1.21

Sign up to get free protection for your applications and to get access to all the features.
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  #encoding: utf-8
2
2
  require "bundler"
3
3
  require "logger"
4
+ require "yaml"
4
5
  require "#{File.dirname(__FILE__)}/../lib/tweetlr"
5
6
 
6
7
  Bundler.require :default, :development, :test
@@ -10,8 +11,8 @@ logger.level = Logger::FATAL
10
11
  Tweetlr::LogAware.log = logger
11
12
 
12
13
  def check_pic_url_extraction(service)
13
- image_url = Tweetlr::Processors::PhotoService::send "image_url_#{service}".to_sym, @links[service]
14
- image_url.should =~ Tweetlr::Processors::PhotoService::PIC_REGEXP
14
+ image_url = Tweetlr::Processors::PhotoService.find_image_url @links[service]
15
+ (image_url =~ Tweetlr::Processors::PhotoService::PIC_REGEXP).should be, "service #{service} not working, no picture extracted!"
15
16
  end
16
17
 
17
18
  def stub_oauth
@@ -42,32 +43,64 @@ def stub_twitter
42
43
  end
43
44
 
44
45
  def stub_twimg
45
- Curl::Easy.any_instance.stub(:body_str).and_return %|<div class="entities-media-container " style="min-height:580px">
46
- <div class="tweet-media">
47
- <div class="media-instance-container">
48
- <div class="twimg">
49
- <a target="_blank" href="http://twitter.com/KSilbereisen/status/228042798161596416/photo/1/large">
50
- <img src="https://p.twimg.com/Ayort3pCEAAHRrz.jpg">
51
- </a>
52
- </div>
53
- <span class="flag-container">
54
- <button type="button" class="flaggable btn-link">
55
- Flag this media
56
- </button>
57
- <span class="flagged hidden">
58
- Flagged
59
- <span>
60
- <a target="_blank" href="//support.twitter.com/articles/20069937">
61
- (learn more)
62
- </a>
63
- </span>
64
- </span>
65
- </span>
66
- <div class="media-attribution">
67
- <span>powered by</span> <img src="/phoenix/img/turkey-icon.png"> <a target="_blank" data-media-type="Twimg" class="media-attribution-link" href="http://photobucket.com/twitter">Photobucket</a>
68
- </div>
69
- </div>
70
- </div> </div>|
46
+ Curl::Easy.any_instance.stub(:body_str).and_return %|<div class="js-tweet-details-fixer tweet-details-fixer">
47
+
48
+
49
+
50
+ <div class="cards-media-container "><div data-card-url="//twitter.com/KSilbereisen/status/228035435237097472/photo/1/large" data-card-type="photo" class="cards-base cards-multimedia" data-element-context="platform_photo_card">
51
+ <div class="media">
52
+
53
+ <a class="twitter-timeline-link media-thumbnail" href="//twitter.com/KSilbereisen/status/228035435237097472/photo/1/large" data-url="https://pbs.twimg.com/media/AyolBSnCQAA0vdp.jpg:large" data-resolved-url-large="https://pbs.twimg.com/media/AyolBSnCQAA0vdp.jpg:large">
54
+ <img src="https://pbs.twimg.com/media/AyolBSnCQAA0vdp.jpg" alt="Embedded image permalink" width="281" height="375">
55
+ </a>
56
+ </div>
57
+ <div class="cards-content">
58
+ <div class="byline">
59
+
60
+ </div>
61
+
62
+ </div>
63
+
64
+ </div>
65
+
66
+
67
+
68
+ </div>
69
+
70
+ <div class="js-tweet-media-container "></div>
71
+
72
+ <div class="js-machine-translated-tweet-container"></div>
73
+ <div class="js-tweet-stats-container tweet-stats-container ">
74
+ </div>
75
+ <div class="client-and-actions">
76
+ <span class="metadata">
77
+ <span title="9:54 AM - 25 Jul 12">9:54 AM - 25 Jul 12</span>
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+ <span class="flag-container flag-cards">
86
+ <button type="button" class="flaggable btn-link">
87
+ Flag media
88
+ </button>
89
+ <span class="flagged hidden">
90
+ Flagged
91
+ <span>
92
+ <a target="_blank" href="//support.twitter.com/articles/20069937">
93
+ (learn more)
94
+ </a>
95
+ </span>
96
+ </span>
97
+ </span>
98
+
99
+
100
+
101
+ </span>
102
+ </div>
103
+ </div>|
71
104
  Curl::Easy.any_instance.stub(:perform).and_return Curl::Easy.new
72
105
  end
73
106
 
@@ -130,6 +163,14 @@ Cache-Control: no-cache
130
163
  Server: nginx/1.0.0 + Phusion Passenger 3.0.7 (mod_rails/mod_rack)
131
164
 
132
165
  |
166
+ Curl::Easy.any_instance.stub(:body_str).and_return %|<div id="image-box">
167
+ <!-- / #the-image-container{ :'data-url' => @image.image.url(:large) } -->
168
+ <img alt="trending: laugenzopf camenbert. #wirsounterwegs " crossorigin="" id="the-image" src="http://s3.amazonaws.com/imgly_production/899582/large.jpg">
169
+ <div id="tagging-cursor"></div>
170
+ <form accept-charset="UTF-8" action="/peopletaggings" class="new_peopletagging" id="tag-people-form" method="post">
171
+ <div style="margin:0;padding:0;display:inline">
172
+ <input name="utf8" type="hidden" value="✓"><input name="authenticity_token" type="hidden" value="780G4Ra4X2R0AyNc01w2XKQHmd0122ZoIt478wIYeOI=">
173
+ </div>|
133
174
  end
134
175
 
135
176
  def stub_twitpic
@@ -172,11 +213,6 @@ end
172
213
 
173
214
  #embedly powered lookups
174
215
 
175
- def stub_foursquare
176
- Curl::Easy.any_instance.stub(:body_str).and_return %|{"provider_url": "http://foursquare.com", "description": "See where your friends are, learn about the places they frequent, and unlock rewards as you travel. 8555 Fletcher PkwyLa Mesa, CA 91942(619) 589-0071", "title": "Matt S. checked in at Banbu Sushi Bar And Grill", "url": "https://playfoursquare.s3.amazonaws.com/pix/PNIBDBIPP5G2XGROCZXVCOHABOZP4MICHZVPJWZXZWAN3SEQ.jpg", "author_name": "Matt S.", "height": 345, "width": 460, "thumbnail_url": "https://playfoursquare.s3.amazonaws.com/pix/PNIBDBIPP5G2XGROCZXVCOHABOZP4MICHZVPJWZXZWAN3SEQ.jpg", "thumbnail_width": 460, "version": "1.0", "provider_name": "Foursquare", "type": "photo", "thumbnail_height": 345, "author_url": "https://foursquare.com/mjstraus"}|
177
- Curl::Easy.any_instance.stub(:perform).and_return Curl::Easy.new
178
- end
179
-
180
216
  def stub_embedly
181
217
  Curl::Easy.any_instance.stub(:body_str).and_return %|{"provider_url": "http://www.flickr.com/", "description": "Lady GaGa", "title": "Lady GaGa", "url": "http://farm6.static.flickr.com/5204/5319200155_c966f67dc3.jpg", "author_name": "mjcom18", "height": 468, "width": 307, "thumbnail_url": "http://farm6.static.flickr.com/5204/5319200155_c966f67dc3_t.jpg", "thumbnail_width": 66, "version": "1.0", "provider_name": "Flickr", "cache_age": 3600, "type": "photo", "thumbnail_height": 100, "author_url": "http://www.flickr.com/photos/57795463@N05/"}|
182
218
  Curl::Easy.any_instance.stub(:perform).and_return Curl::Easy.new
@@ -465,569 +501,12 @@ end
465
501
 
466
502
  def stub_foursquare
467
503
  Curl::Easy.any_instance.stub(:perform).and_return Curl::Easy.new
468
- Curl::Easy.any_instance.stub(:body_str).and_return %^<?xml version="1.0" encoding="UTF-8"?>
469
-
470
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
471
- <html xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:lift="http://liftweb.net" xmlns="http://www.w3.org/1999/xhtml">
472
- <head>
473
- <meta content="text/html; charset=UTF-8" http-equiv="content-type" />
474
- <meta content="foursquare" name="description" />
475
- <meta content="foursquare" name="application-name" />
476
-
477
- <meta content="Start the foursquare App" name="msapplication-tooltip" />
478
- <meta content="/" name="msapplication-starturl" />
479
- <meta content="width=1024;height=768" name="msapplication-window" />
480
- <meta content="name=Recent Check-ins; action-uri=/; icon-uri=/favicon.ico" name="msapplication-task" />
481
- <meta content="name=Profile;action-uri=/user;icon-uri=/favicon.ico" name="msapplication-task" />
482
- <meta content="name=History;action-uri=/history;icon-uri=/favicon.ico" name="msapplication-task" />
483
- <meta content="name=Badges;action-uri=/badges;icon-uri=/favicon.ico" name="msapplication-task" />
484
- <meta content="name=Stats;action-uri=/stats;icon-uri=/favicon.ico" name="msapplication-task" />
485
-
486
-
487
- <title>foursquare :: Sven @ kopiba</title>
488
- <link href="https://static-s.foursquare.com/favicon-c62b82f6120e2c592a3e6f3476d66554.ico" type="image/x-icon" rel="icon" />
489
- <link href="https://static-s.foursquare.com/favicon-c62b82f6120e2c592a3e6f3476d66554.ico" type="image/x-icon" rel="shortcut icon" />
490
- <link href="https://static-s.foursquare.com/img/touch-icon-ipad-1d5a99e90171f6a0cc2f74920ec24021.png" sizes="72x72" rel="apple-touch-icon-precomposed" />
491
- <link href="https://playfoursquare.s3.amazonaws.com/press/logo/foursquare-logo.svg" type="image/svg" rel="logo" />
492
- <link href="https://static-s.foursquare.com/opensearch-6b463ddc6a73b41a3d4b1c705d814fcf.xml" title="foursquare" type="application/opensearchdescription+xml" rel="search" />
493
-
494
- <link href="https://static-s.foursquare.com/styles/reset-ba1d59b0e53d380b12b3e97a428b3314.css" type="text/css" rel="stylesheet" />
495
- <link href="https://static-s.foursquare.com/facebox/facebox-29383c5fc530ed391a05276abeb1959a.css" type="text/css" rel="stylesheet" />
496
-
497
-
498
-
499
- <link href="https://static-s.foursquare.com/styles/master-redesign-e811ecb709c2414dbd8bbb382f312aa1.css" type="text/css" rel="stylesheet" />
500
-
501
-
502
-
503
-
504
-
505
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript" id="jquery"></script>
506
-
507
-
508
-
509
-
510
- <script type="text/javascript">
511
- var _kmq = _kmq || [];
512
- function _kms(u){
513
- setTimeout(function(){
514
- var s = document.createElement('script'); var f = document.getElementsByTagName('script')[0]; s.type = 'text/javascript'; s.async = true;
515
- s.src = u; f.parentNode.insertBefore(s, f);
516
- }, 1);
517
- }
518
- // Use this for dev
519
- //_kms('//i.kissmetrics.com/i.js');_kms('//doug1izaerwt3.cloudfront.net/0c1574f4c7da92b07e34862fcc6c505d531a957c.1.js');
520
- </script>
521
-
522
-
523
- <script type="text/javascript">
524
- // Use this for production
525
- _kms('//i.kissmetrics.com/i.js');_kms('//doug1izaerwt3.cloudfront.net/033f1ff04dc072af9d77e05e3fe10ed9b6ea4fcf.1.js');
526
- </script>
527
-
528
-
529
-
530
- <script src="https://static-s.foursquare.com/scripts/build/en/chrome/root-d0d815376f0111b37b1b2f3786ff5314.js" type="text/javascript"></script>
531
- <script src="https://static-s.foursquare.com/scripts/build/en/foursquare/root-5c88202943112aa3305dcb2f9425a601.js" type="text/javascript"></script>
532
-
533
-
534
-
535
-
536
-
537
-
538
-
539
-
540
-
541
-
542
-
543
-
544
-
545
- <script type="text/javascript">
546
- (function() {
547
- window.fourSq = window.fourSq || {};
548
- window.fourSq.api = window.fourSq.api || {};
549
- window.fourSq.fb = window.fourSq.fb || {};
550
- window.fourSq.user = window.fourSq.user || {};
551
- window.fourSq.debugLevel = function() { return fourSq.debug.Level.OFF; };
552
-
553
- /**
554
- * Setup API domain and token
555
- */
556
- window.fourSq.api.config = {
557
- API_BASE: 'https://api.foursquare.com/',
558
- API_TOKEN: 'QEJ4AQPTMMNB413HGNZ5YDMJSHTOHZHMLZCAQCCLXIX41OMP',
559
- API_IFRAME: 'https://api.foursquare.com/xdreceiver.html',
560
- CLIENT_VERSION: '20111109'
561
- };
562
-
563
- /**
564
- * Useful values for current user.
565
- */
566
- window.fourSq.user.config = {
567
- USER_PROFILE: undefined,
568
- USER_LAT: 0,
569
- USER_LNG: 0,
570
- // Only used for display.
571
- SU6: false,
572
- LOCALE: 'en_US'
573
- };
574
-
575
- window.fourSq.fb.config = {
576
- APP_ID: 86734274142,
577
- SCOPE: 'offline_access,publish_stream,user_checkins,friends_checkins,user_location,user_birthday'
578
- };
579
-
580
- document.domain = 'foursquare.com';
581
- })();
582
- </script>
583
-
584
-
585
-
586
- <script type="text/javascript">
587
- $(function() {
588
- $('a[rel*=facebox]').facebox();
589
- $('.linkify').linkify();
590
-
591
- var search = $('#search input').placeholder();
592
- if ($.trim(search.val()) != '') {
593
- search.keydown();
594
- }
595
- })
596
- </script>
597
-
598
-
599
-
600
-
601
- <meta content="NOINDEX" name="ROBOTS" />
602
-
603
-
604
- <script src="https://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
605
-
606
-
607
- <script src="https://static-s.foursquare.com/scripts/build/en/foursquare/comments-be605309e291ccdcaa2c7d2645743741.js" type="text/javascript"></script>
608
-
609
-
610
- <script src="https://static-s.foursquare.com/scripts/build/en/foursquare/checkin-detail-page-2d377f73b6d6318b813cc6db39651fff.js" type="text/javascript"></script>
611
-
612
-
613
- <script type="text/javascript">
614
- $(function() {
615
- var options = {
616
- el: $('body')
617
- }
618
-
619
- options['lat'] = 53.558831084738;
620
- options['lng'] = 9.963698387145996;
621
- options['fuzzy'] = false;
622
- options['venue'] = {"id":"v4b169255f964a52072ba23e3","venue":{"id":"4b169255f964a52072ba23e3","name":"kopiba","contact":{"phone":"4940343824","formattedPhone":"040\/343824","twitter":"kopiba"},"location":{"address":"Beim Grünen Jäger 24","lat":53.558831084738,"lng":9.963698387145996,"postalCode":"20357","city":"Hamburg","country":"Germany"},"categories":[{"id":"4bf58dd8d48988d16d941735","name":"Café","pluralName":"Cafés","shortName":"Café","icon":{"prefix":"https:\/\/foursquare.com\/img\/categories\/food\/cafe_","sizes":[32,44,64,88,256],"name":".png"},"primary":true}],"verified":true,"stats":{"checkinsCount":2903,"usersCount":478,"tipCount":26}}};
623
-
624
-
625
-
626
- options['checkinId'] = '4f0c401ae4b020a8d96fb0b1';
627
-
628
-
629
- if(typeof FRIENDS_PHOTOS_JSON != 'undefined') {
630
- options = _.extend(options, {friendsPhotosJson: FRIENDS_PHOTOS_JSON});
631
- }
632
-
633
- if(typeof STREAM_PHOTOS_JSON != 'undefined') {
634
- options = _.extend(options, {streamPhotosJson: STREAM_PHOTOS_JSON});
635
- }
636
-
637
- new fourSq.views.CheckinDetailPage(options);
638
- });
639
- </script>
640
-
641
-
642
- </head>
643
- <body>
644
-
645
-
646
-
647
- <div id="wrapper">
648
-
649
-
650
- <div id="header">
651
-
652
-
653
-
654
- <div class="wrap loggedOut translate">
655
- <a id="logo" href="/">foursquare</a>
656
- <form id="search" method="get" action="/search">
657
- <input placeholder="Search people and places..." name="q" type="text" />
658
- <button>Search</button>
659
- </form>
660
- <div id="loginLink"><a href="/login">Log in</a></div>
661
- <div id="menu"><a href="/signup">Sign up</a></div>
662
- </div>
663
-
664
- </div>
665
- <div id="lift__noticesContainer__"></div>
666
-
667
-
668
-
669
-
670
-
671
- <div class="translate wrap" id="signupPrompt">
672
- <h3>foursquare helps you keep up with friends, discover what's nearby, save money &amp; unlock rewards</h3>
673
- <a class="greenButton biggerButton" href="/signup/?source=nav">Get Started Now</a>
674
- <iframe scrolling="no" allowTransparency="true" src="https://www.facebook.com/plugins/facepile.php?app_id=86734274142&amp;amp;width=600&amp;amp;max_rows=1" style="border:none; overflow:hidden; width:600px; height: 70px;" frameborder="0"></iframe>
675
- </div>
676
-
677
- <style type="text/css">
678
- #loginBeforeActionPopup {
679
- padding: 10px;
680
- width: 500px;
681
- }
682
- #loginBeforeActionPopup h2 {font-size: 21px;}
683
- #loginBeforeActionPopup #signupPopup {}
684
- #loginBeforeActionPopup #signupPopup p {
685
- float: left;
686
- line-height: 18px;
687
- margin: 15px 0;
688
- padding-top: 2px;
689
- width: 330px;
690
- }
691
- #loginBeforeActionPopup #signupPopup .newGreenButton {
692
- font-size: 18px;
693
- height: 40px;
694
- float: right;
695
- line-height: 40px;
696
- margin: 15px 0;
697
- text-transform: none;
698
- width: 140px;
699
- }
700
- #loginBeforeActionPopup #loginPopup {
701
- border-top: 1px solid #d9d9d9;
702
- padding-top: 10px;
703
- }
704
- #loginBeforeActionPopup #loginPopup .linkStyle {
705
- border: none;
706
- background: none;
707
- color: #2398c9;
708
- cursor: pointer;
709
- font: inherit;
710
- font-weight: bold;
711
- padding: 0;
712
- margin: 0;
713
- }
714
- #loginBeforeActionPopup #loginPopup .linkStyle:hover {text-decoration: underline;}
715
- </style>
716
-
717
- <div style="display:none;" class="translate" id="loginBeforeActionPopup">
718
-
719
- <h2 class="newh2">Join foursquare to <span id="loginActionLabel">do that</span></h2>
720
- <form method="POST" action="/signup/pre-signup">
721
- <input value="" type="hidden" name="actionKey" id="loginActionKey" />
722
- <input value="" type="hidden" name="source" id="loginSource" />
723
- <input value="" type="hidden" name="continue" id="loginContinue" />
724
- <div id="signupPopup">
725
- <p>Foursquare helps you meet up with friends and find<br />new places to experience in your neighborhood.</p>
726
- <input value="Get Started" name="signupSubmit" class="newGreenButton greenButton translate" type="submit" />
727
- <div style="clear: both;"></div>
728
- </div>
729
- <div id="loginPopup">
730
- <strong>Already a foursquare user?</strong> <input value="Log in" name="loginSubmit" class="linkStyle" type="submit" /> to continue.
731
- </div>
732
- </form>
733
-
734
- </div>
735
-
736
-
737
-
504
+ Curl::Easy.any_instance.stub(:body_str).and_return %^<!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:og=\"http://opengraphprotocol.org/schema/\" xmlns:fb=\"http://www.facebook.com/2008/fbml\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /><meta name=\"application-name\" content=\"Foursquare\"/><meta name=\"msapplication-TileColor\" content=\"#0ca9c9\"/><meta name=\"msapplication-TileImage\" content=\"https://playfoursquare.s3.amazonaws.com/misc/foursquare-144-logo.png\"/><meta name=\"msapplication-tooltip\" content=\"Start the foursquare App\" /><meta name=\"msapplication-starturl\" content=\"/\" /><meta name=\"msapplication-window\" content=\"width=1024;height=768\" /><meta name=\"msapplication-task\" content=\"name=Recent Check-ins; action-uri=/; icon-uri=/favicon.ico\" /><meta name=\"msapplication-task\" content=\"name=Profile;action-uri=/user;icon-uri=/favicon.ico\" /><meta name=\"msapplication-task\" content=\"name=History;action-uri=/user/history;icon-uri=/favicon.ico\" /><meta name=\"msapplication-task\" content=\"name=Badges;action-uri=/user/badges;icon-uri=/favicon.ico\" /><meta name=\"msapplication-task\" content=\"name=Stats;action-uri=/user/stats;icon-uri=/favicon.ico\" /><link rel=\"icon\" href=\"/favicon.ico\" type=\"image/x-icon\"/><link rel=\"shortcut icon\" href=\"/favicon.ico\" type=\"image/x-icon\"/><link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"/img/touch-icon-ipad.png\" /><link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"/img/touch-icon-ipad-retina.png\" /><link rel=\"logo\" href=\"https://playfoursquare.s3.amazonaws.com/press/logo/foursquare-logo.svg\" type=\"image/svg\" /><link rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"/opensearch.xml\" title=\"foursquare\" /><title>Sven @ kopiba</title><meta content=\"en\" http-equiv=\"Content-Language\" /><meta content=\"https://foursquare.com/sven_kr/checkin/4f0c401ae4b020a8d96fb0b1?ref=fb&amp;source=openGraph&amp;s=eU7t9fpmByekJgPb8IOuchQ9ibw\" property=\"og:url\" /><meta content=\"A check-in at kopiba\" property=\"og:title\" /><meta content=\"A check-in\" property=\"og:description\" /><meta content=\"playfoursquare:checkin\" property=\"og:type\" />
738
505
 
506
+ <meta content=\"https://irs0.4sqi.net/img/general/600x600/NKFGXXX41TIQJA0P25ZYSUYKUUROQLLWGUXXSA5ABUQFDDYE.jpg\" property=\"og:image\" />
739
507
 
740
- <div class="wrap" id="container">
741
-
742
-
743
-
744
-
745
-
746
-
747
-
748
-
749
-
750
- <div class="twoColumns" id="checkinPage">
751
- <div class="wideColumn">
752
-
753
-
754
- <div id="userCheckin">
755
- <div id="userPic">
756
- <a href="/sven_kr"><img src="https://img-s.foursquare.com/userpix_thumbs/ZXPGHBJTWWSTMXN1.jpg" alt="Sven K." width="110" class="notranslate" height="110" /></a>
757
- </div>
758
- <div id="userDetails">
759
- <h2><a href="/sven_kr">Sven K.</a> checked in to <a href="/v/kopiba/4b169255f964a52072ba23e3">kopiba</a> </h2>
760
- <p class="shout linkify">#coffeediary</p>
761
-
762
- <p class="date">
763
- 8 hours ago via <em><a href="https://foursquare.com/download/#/iphone">foursquare for iPhone</a></em>
764
- </p>
765
-
766
-
767
-
768
-
769
-
770
-
771
-
772
-
773
-
774
-
775
-
776
-
777
- </div>
778
- </div>
779
-
780
-
781
- <div>
782
- <script type="text/javascript">
783
- // <![CDATA[
784
- var STREAM_PHOTOS_JSON = "{\"count\":1,\"items\":[{\"id\":\"4f0c4020e4b0261c93fd4ede\",\"createdAt\":1326202912,\"url\":\"https:\u005c/\u005c/img-s.foursquare.com\u005c/pix\u005c/NKFGXXX41TIQJA0P25ZYSUYKUUROQLLWGUXXSA5ABUQFDDYE.jpg\",\"sizes\":{\"count\":4,\"items\":[{\"url\":\"https:\u005c/\u005c/img-s.foursquare.com\u005c/pix\u005c/NKFGXXX41TIQJA0P25ZYSUYKUUROQLLWGUXXSA5ABUQFDDYE.jpg\",\"width\":537,\"height\":720},{\"url\":\"https:\u005c/\u005c/img-s.foursquare.com\u005c/derived_pix\u005c/NKFGXXX41TIQJA0P25ZYSUYKUUROQLLWGUXXSA5ABUQFDDYE_300x300.jpg\",\"width\":300,\"height\":300},{\"url\":\"https:\u005c/\u005c/img-s.foursquare.com\u005c/derived_pix\u005c/NKFGXXX41TIQJA0P25ZYSUYKUUROQLLWGUXXSA5ABUQFDDYE_100x100.jpg\",\"width\":100,\"height\":100},{\"url\":\"https:\u005c/\u005c/img-s.foursquare.com\u005c/derived_pix\u005c/NKFGXXX41TIQJA0P25ZYSUYKUUROQLLWGUXXSA5ABUQFDDYE_36x36.jpg\",\"width\":36,\"height\":36}\u005d},\"user\":{\"id\":\"304170\",\"firstName\":\"Sven\",\"lastName\":\"K.\",\"photo\":\"https:\u005c/\u005c/img-s.foursquare.com\u005c/userpix_thumbs\u005c/ZXPGHBJTWWSTMXN1.jpg\",\"gender\":\"male\",\"homeCity\":\"Hamburg, Germany\"},\"visibility\":\"friends\"}\u005d}";
785
- // ]]>
786
- </script>
787
- <div id="comments">
788
-
789
- <div id="4f0c4020e4b0261c93fd4ede" class="comment withPhoto">
790
- <div class="commentLeft">
791
- <a href="/sven_kr"><img src="https://img-s.foursquare.com/userpix_thumbs/ZXPGHBJTWWSTMXN1.jpg" alt="Sven K." width="60" class="notranslate" height="60" /></a>
792
- </div>
793
- <div class="commentPhoto">
794
- <span title="Delete your image?" class="flagDelete">
795
-
796
- </span>
797
- <img src="https://img-s.foursquare.com/pix/NKFGXXX41TIQJA0P25ZYSUYKUUROQLLWGUXXSA5ABUQFDDYE.jpg" />
798
- </div>
799
- </div>
800
-
801
- </div>
802
-
803
-
804
-
805
-
806
-
807
-
808
-
809
-
810
- <div class="translate" id="cantComment">
811
- Only <span class="notranslate">Sven's</span> friends can see comments and add their own.
812
- </div>
813
-
814
-
815
- </div>
816
-
817
- </div>
818
-
819
- <div class="narrowColumn">
820
-
821
-
822
-
823
-
824
-
825
- <div id="venueDetails" class="box">
826
- <div id="venueIcon">
827
- <img src="https://static-s.foursquare.com/img/categories/food/cafe-f0c1523ad255a6e9e65e27c2ca02576c.png" class="thumb" />
828
- <img src="https://static-s.foursquare.com/img/specials/check-in-f870bc36c0cc2a842fac06c35a6dccdf.png" class="specialImage" title="Check-in Special" />
829
- </div>
830
- <div class="vcard" id="venueName">
831
- <h5 class="fn org"><a href="/v/kopiba/4b169255f964a52072ba23e3">kopiba</a></h5>
832
- <p>Hamburg</p>
833
- <div class="hiddenAddress">
834
- <span class="adr"><span class="street-address">Beim Grünen Jäger 24</span><br /><span class="locality">Hamburg</span>, <span class="region"></span> <span class="postal-code">20357</span><br /><span class="tel">040/343824</span><br /></span>
835
- </div>
836
- </div>
837
- <div id="listControlHolder"></div>
838
- <div id="vmap"></div>
839
-
840
- </div>
841
-
842
-
843
- <div class="box">
844
- <div class="statsBlock translate">
845
- <div class="stat">
846
- <strong>Total<br />People</strong><br /><span class="notranslate">478</span>
847
- </div>
848
- <div class="stat">
849
- <strong>Total<br />Checkins</strong><br /><span class="notranslate">2903</span>
850
- </div>
851
- <div class="stat">
852
- <strong>Here<br />Now</strong><br /><span class="notranslate">1</span>
853
- </div>
854
- </div>
855
- </div>
856
-
857
-
858
-
859
-
860
-
861
-
862
-
863
-
864
-
865
-
866
- </div>
867
- <div style="clear: both;"></div>
868
- </div>
869
-
870
- <script type="text/javascript">
871
- $('.delete').tooltip();
872
- $('.flagDelete').tooltip();
873
- </script>
874
-
875
-
876
-
877
- <div id="containerFooter">
878
- <div class="wideColumn">
879
- <ul class="translate">
880
- <li><a href="https://foursquare.com/about">About</a></li>
881
- <li><a href="https://foursquare.com/apps">Apps</a></li>
882
- <li><a href="http://blog.foursquare.com">Blog</a></li>
883
- <li><a href="http://developers.foursquare.com">Developers</a></li>
884
- <li><a href="http://foursquare.com/help">Help</a></li>
885
- <li><a href="https://foursquare.com/jobs/">Jobs</a></li>
886
- <li><a href="https://foursquare.com/legal/privacy">Privacy</a></li>
887
- <li><a href="https://foursquare.com/legal/terms">Terms</a></li>
888
- <li><a href="http://store.foursquare.com">Store</a></li>
889
- <li>
890
-
891
-
892
-
893
-
894
- <script type="text/javascript">
895
- //<![CDATA[
896
- // IMPORTANT: This is what does the redirect to the correct domain
897
- fourSq.i18n.redirect();
898
- // ]]>
899
- </script>
900
-
901
-
902
- <script type="text/javascript">
903
- //<![CDATA[
904
- $(function() {
905
- $('#currentLanguage a').text(fourSq.i18n.currentLang());
906
- });
907
- // ]]>
908
- </script>
909
-
910
- <span id="currentLanguage">
911
- <a rel="facebox" href="#languagesContainer"></a>
912
- </span>
913
-
914
- <div style="display:none" class="translate" id="languagesContainer">
915
- Do none of the words on this site make sense to you? Select your
916
- favorite language below for greater clarity:
917
- <ul class="languages notranslate">
918
- <li><a onclick="fourSq.i18n.setLang('en'); return false;" href="#">English</a></li><li><a onclick="fourSq.i18n.setLang('it'); return false;" href="#">Italiano</a></li><li><a onclick="fourSq.i18n.setLang('de'); return false;" href="#">Deutsch</a></li><li><a onclick="fourSq.i18n.setLang('es'); return false;" href="#">Español</a></li><li><a onclick="fourSq.i18n.setLang('fr'); return false;" href="#">Français</a></li><li><a onclick="fourSq.i18n.setLang('ja'); return false;" href="#">日本語</a></li><li><a onclick="fourSq.i18n.setLang('th'); return false;" href="#">ภาษาไทย</a></li><li><a onclick="fourSq.i18n.setLang('ko'); return false;" href="#">한국어</a></li><li><a onclick="fourSq.i18n.setLang('ru'); return false;" href="#">Русский</a></li><li><a onclick="fourSq.i18n.setLang('pt'); return false;" href="#">Português</a></li><li><a onclick="fourSq.i18n.setLang('id'); return false;" href="#">Bahasa Indonesia</a></li>
919
- </ul>
920
- </div>
921
- </li>
922
- </ul>
923
- </div>
924
- <div class="narrowColumn translate">
925
- foursquare © 2011 <img src="https://static-s.foursquare.com/img/chrome/iconHeart-03e49accc507d9d99e7e4dfaa73868cb.png" height="9" width="11" alt="" /> Lovingly made in NYC &amp; SF
926
- </div>
927
- </div>
928
- </div>
929
- </div>
930
-
931
- <div id="footer">
932
- <div style="display: none;" class="wrap">
933
- <p class="right">Discover more brands in the <a href="/pages">page gallery</a>.</p>
934
- <p>Follow these brands to unlock badges and find interesting tips around your city!</p>
935
-
936
-
937
- <ul><li><a href="/vh1"><img src="https://static-s.foursquare.com/img/footer/vh1-bb870b187d4e4378457e4a8e7df33e28.png" height="50" /></a></li><li><a href="/luckymagazine"><img src="https://static-s.foursquare.com/img/footer/luckymagazine-81550ed80bb77ddf9fa7e09c94ef4ac3.png" height="50" /></a></li><li><a href="/askmen"><img src="https://static-s.foursquare.com/img/footer/askmen-32a19bae424cafba11d7131fbc763f6d.png" height="50" /></a></li><li><a href="/eater"><img src="https://static-s.foursquare.com/img/footer/eater-5a8d27da22828104e13b0a4a50a74db8.png" height="50" /></a></li><li><a href="/joinred"><img src="https://static-s.foursquare.com/img/footer/joinred-6b8edbfec8aeb5e256f7824ca757cb81.png" height="50" /></a></li><li><a href="/bbcamerica"><img src="https://static-s.foursquare.com/img/footer/bbcamerica-d777b112c51696700dbd348e1b1e6817.png" height="50" /></a></li></ul>
938
-
939
- </div>
940
- </div>
941
-
942
- <div id="overlayFrame">
943
- <div id="overlayPage">
944
- <div id="photoDetails">
945
- <div class="wrap">
946
- <img src="https://static-s.foursquare.com/img/gallery-next-4fe893b7a611387276ef45cd74632759.png" height="32" width="32" alt="" class="navControl" id="next" />
947
- <img src="https://static-s.foursquare.com/img/gallery-prev-6da401eecb2e8a276e2a89bea5ac3819.png" height="32" width="32" alt="" class="navControl" id="previous" />
948
- <img width="32" height="32" alt="" src="" id="userPic" />
949
- <h5 id="userName"><a href="#"></a></h5>
950
- <p id="date"></p>
951
- </div>
952
- </div>
953
- <div id="mainPhoto"></div>
954
-
955
- <div style="display:none" class="flagFrame unknown">
956
- <div class="flagForm translate">
957
- <h3>Flag this Photo</h3>
958
- <ul>
959
- <li><input id="spam_scam" value="spam_scam" type="radio" name="problem" /> <label for="spam_scam">Spam/Scam</label></li>
960
- <li><input id="nudity" value="nudity" type="radio" name="problem" /> <label for="nudity">Nudity</label></li>
961
- <li><input id="hate_violence" value="hate_violence" type="radio" name="problem" /> <label for="hate_violence">Hate/Violence</label></li>
962
- <li><input id="illegal" value="illegal" type="radio" name="problem" /> <label for="illegal">Illegal</label></li>
963
- <li><input id="unrelated" value="unrelated" type="radio" name="problem" /> <label for="unrelated">Unrelated</label></li>
964
- </ul>
965
- <p class="noProblemMessage">Please select a problem.</p>
966
- <p><input class="submitFlag greenButton" value="Submit Flag" name="submitFlag" type="button" name="problem" /></p>
967
- </div>
968
- <div class="flagStatus translate">
969
- <div class="status success">
970
- <h3>Flag this Photo</h3>
971
- <p>Your flag was submitted successfully.</p>
972
- </div>
973
- <div class="status failure">
974
- <h3>Flag this Photo</h3>
975
- <p>Your flag did not submit. Please try again later.</p>
976
- </div>
977
- </div>
978
- </div>
979
- </div>
980
- </div>
981
-
982
-
983
-
984
- <script src="https://ssl.google-analytics.com/ga.js" type="text/javascript"></script>
985
-
986
-
987
-
988
- <script type="text/javascript">
989
- try {
990
- var pageTracker = _gat._getTracker('UA-2322480-5');
991
- pageTracker._trackPageview();
992
- pageTracker._trackPageLoadTime();
993
- } catch(err) {
994
- }
995
- </script>
996
- <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
997
- <script type="text/javascript">
998
- var _sf_async_config={uid:11280,domain:'foursquare.com'};
999
- if (window.chartbeat_path) {
1000
- _sf_async_config.path = chartbeat_path;
1001
- }
1002
- (function(){
1003
- function loadChartbeat() {
1004
- window._sf_endpt=(new Date()).getTime();
1005
- var e = document.createElement('script');
1006
- e.setAttribute('language', 'javascript');
1007
- e.setAttribute('type', 'text/javascript');
1008
- e.setAttribute('src',
1009
- (('https:' == document.location.protocol) ? 'https://s3.amazonaws.com/' : 'http://') +
1010
- 'static.chartbeat.com/js/chartbeat.js');
1011
- document.body.appendChild(e);
1012
- }
1013
- var oldonload = window.onload;
1014
- window.onload = (typeof window.onload != 'function') ?
1015
- loadChartbeat : function() { oldonload(); loadChartbeat(); };
1016
- })();
1017
-
1018
- </script>
1019
-
1020
-
1021
-
1022
-
1023
-
1024
-
1025
- <script src="/ajax_request/liftAjax.js" type="text/javascript"></script>
1026
-
1027
-
1028
- </body>
1029
- </html>
1030
- ^
508
+ <meta content=\"2012-01-10T13:41:46.000Z\" property=\"playfoursquare:date\" /><meta content=\"https://foursquare.com/v/kopiba/4b169255f964a52072ba23e3\" property=\"playfoursquare:place\" /><meta content=\"Foursquare\" property=\"og:site_name\" /><meta content=\"86734274142\" property=\"fb:app_id\" /><meta content=\"@foursquare\" name=\"twitter:site\" /><meta content=\"photo\" name=\"twitter:card\" /><meta content=\"Foursquare\" name=\"twitter:app:name:iphone\" /><meta content=\"Foursquare\" name=\"twitter:app:name:ipad\" /><meta content=\"Foursquare\" name=\"twitter:app:name:googleplay\" /><meta content=\"foursquare://checkins/4f0c401ae4b020a8d96fb0b1?s=eU7t9fpmByekJgPb8IOuchQ9ibw\" name=\"twitter:app:url:iphone\" /><meta content=\"foursquare://checkins/4f0c401ae4b020a8d96fb0b1?s=eU7t9fpmByekJgPb8IOuchQ9ibw\" name=\"twitter:app:url:ipad\" />
509
+ ^
1031
510
  end
1032
511
 
1033
512
  def stub_eyeem