Advertisement
ajorpheus

LivingSocial

Jul 14th, 2012
418
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name            LivingSocial - Add Rewards Information
  3. // @namespace       com.scott.livingsocial
  4. // @description     Adds information about a restaurant on livingsocial.com from MileagePlus Dining program website
  5. // @version         1.0.1
  6. // @include         http://www.livingsocial.com/*
  7. // @include         http://*.livingsocial.com/*/
  8. // @require        http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
  9. // @require        http://courses.ischool.berkeley.edu/i290-4/f09/resources/gm_jq_xhr.js
  10. // ==/UserScript==
  11.  
  12. //------------------ BEGIN Not User Configurable --------------------------------------------------------------
  13. // Don't change anything inside this block
  14. var spinnerGif = $('<img></img>')
  15.         .attr('alt', "...")
  16.         .attr(
  17.                 'src',
  18.                 'data:image/gif;base64,'
  19.                         + 'R0lGODlhEAAQAPYAAP///wAAANTU1JSUlGBgYEBAQERERG5ubqKiotzc3KSkpCQkJCgoKDAwMDY2'
  20.                         + 'Nj4+Pmpqarq6uhwcHHJycuzs7O7u7sLCwoqKilBQUF5eXr6+vtDQ0Do6OhYWFoyMjKqqqlxcXHx8'
  21.                         + 'fOLi4oaGhg4ODmhoaJycnGZmZra2tkZGRgoKCrCwsJaWlhgYGAYGBujo6PT09Hh4eISEhPb29oKC'
  22.                         + 'gqioqPr6+vz8/MDAwMrKyvj4+NbW1q6urvDw8NLS0uTk5N7e3s7OzsbGxry8vODg4NjY2PLy8tra'
  23.                         + '2np6erS0tLKyskxMTFJSUlpaWmJiYkJCQjw8PMTExHZ2djIyMurq6ioqKo6OjlhYWCwsLB4eHqCg'
  24.                         + 'oE5OThISEoiIiGRkZDQ0NMjIyMzMzObm5ri4uH5+fpKSkp6enlZWVpCQkEpKSkhISCIiIqamphAQ'
  25.                         + 'EAwMDKysrAQEBJqamiYmJhQUFDg4OHR0dC4uLggICHBwcCAgIFRUVGxsbICAgAAAAAAAAAAAACH/'
  26.                         + 'C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwA'
  27.                         + 'AAAAEAAQAAAHjYAAgoOEhYUbIykthoUIHCQqLoI2OjeFCgsdJSsvgjcwPTaDAgYSHoY2FBSWAAML'
  28.                         + 'E4wAPT89ggQMEbEzQD+CBQ0UsQA7RYIGDhWxN0E+ggcPFrEUQjuCCAYXsT5DRIIJEBgfhjsrFkaD'
  29.                         + 'ERkgJhswMwk4CDzdhBohJwcxNB4sPAmMIlCwkOGhRo5gwhIGAgAh+QQJCgAAACwAAAAAEAAQAAAH'
  30.                         + 'jIAAgoOEhYU7A1dYDFtdG4YAPBhVC1ktXCRfJoVKT1NIERRUSl4qXIRHBFCbhTKFCgYjkII3g0hL'
  31.                         + 'UbMAOjaCBEw9ukZGgidNxLMUFYIXTkGzOmLLAEkQCLNUQMEAPxdSGoYvAkS9gjkyNEkJOjovRWAb'
  32.                         + '04NBJlYsWh9KQ2FUkFQ5SWqsEJIAhq6DAAIBACH5BAkKAAAALAAAAAAQABAAAAeJgACCg4SFhQkK'
  33.                         + 'E2kGXiwChgBDB0sGDw4NDGpshTheZ2hRFRVDUmsMCIMiZE48hmgtUBuCYxBmkAAQbV2CLBM+t0pu'
  34.                         + 'aoIySDC3VC4tgh40M7eFNRdH0IRgZUO3NjqDFB9mv4U6Pc+DRzUfQVQ3NzAULxU2hUBDKENCQTtA'
  35.                         + 'L9yGRgkbcvggEq9atUAAIfkECQoAAAAsAAAAABAAEAAAB4+AAIKDhIWFPygeEE4hbEeGADkXBycZ'
  36.                         + 'Z1tqTkqFQSNIbBtGPUJdD088g1QmMjiGZl9MO4I5ViiQAEgMA4JKLAm3EWtXgmxmOrcUElWCb2zH'
  37.                         + 'kFQdcoIWPGK3Sm1LgkcoPrdOKiOCRmA4IpBwDUGDL2A5IjCCN/QAcYUURQIJIlQ9MzZu6aAgRgwF'
  38.                         + 'GAFvKRwUCAAh+QQJCgAAACwAAAAAEAAQAAAHjIAAgoOEhYUUYW9lHiYRP4YACStxZRc0SBMyFoVE'
  39.                         + 'PAoWQDMzAgolEBqDRjg8O4ZKIBNAgkBjG5AAZVtsgj44VLdCanWCYUI3txUPS7xBx5AVDgazAjC3'
  40.                         + 'Q3ZeghUJv5B1cgOCNmI/1YUeWSkCgzNUFDODKydzCwqFNkYwOoIubnQIt244MzDC1q2DggIBACH5'
  41.                         + 'BAkKAAAALAAAAAAQABAAAAeJgACCg4SFhTBAOSgrEUEUhgBUQThjSh8IcQo+hRUbYEdUNjoiGlZW'
  42.                         + 'QYM2QD4vhkI0ZWKCPQmtkG9SEYJURDOQAD4HaLuyv0ZeB4IVj8ZNJ4IwRje/QkxkgjYz05BdamyD'
  43.                         + 'N9uFJg9OR4YEK1RUYzFTT0qGdnduXC1Zchg8kEEjaQsMzpTZ8avgoEAAIfkECQoAAAAsAAAAABAA'
  44.                         + 'EAAAB4iAAIKDhIWFNz0/Oz47IjCGADpURAkCQUI4USKFNhUvFTMANxU7KElAhDA9OoZHH0oVgjcz'
  45.                         + 'rJBRZkGyNpCCRCw8vIUzHmXBhDM0HoIGLsCQAjEmgjIqXrxaBxGCGw5cF4Y8TnybglprLXhjFBUW'
  46.                         + 'VnpeOIUIT3lydg4PantDz2UZDwYOIEhgzFggACH5BAkKAAAALAAAAAAQABAAAAeLgACCg4SFhjc6'
  47.                         + 'RhUVRjaGgzYzRhRiREQ9hSaGOhRFOxSDQQ0uj1RBPjOCIypOjwAJFkSCSyQrrhRDOYILXFSuNkpj'
  48.                         + 'ggwtvo86H7YAZ1korkRaEYJlC3WuESxBggJLWHGGFhcIxgBvUHQyUT1GQWwhFxuFKyBPakxNXgce'
  49.                         + 'YY9HCDEZTlxA8cOVwUGBAAA7AAAAAAAAAAAA');
  50.                        
  51. var insertSelector = "div#market-subscription";
  52. var labelHtml = 'Mileage Plus Dining:';
  53. var progressMessageText = 'Checking Mileage Plus...';
  54. var pinCodePlaceHolder = '0';
  55. var hotelNamePlaceHolder = '1';
  56. var queryURLPlaceHolder = 'http://mpdining.rewardsnetwork.com/search.htm?q={'
  57.         + pinCodePlaceHolder + '}&e={' + hotelNamePlaceHolder + '}';
  58. //------------------ END NOT User Configurable --------------------------------------------------------------
  59.  
  60. var displayed = false;
  61. $(document).ready(function(){  
  62.     var rewardsSiteResults = $('<div class="panel deal-panel rc-lr"></div>').attr('id', "rewardsSiteResults")
  63.             .html("<p>" + progressMessageText + "</p> ").append(spinnerGif);
  64.     $(insertSelector).after(rewardsSiteResults);
  65.  
  66.     var addressMap = getAddressOfHotel();
  67.     var pinCode = addressMap[pinCodePlaceHolder];
  68.     var hotelName = addressMap[hotelNamePlaceHolder];
  69.     var queryURL = constructQueryURL(pinCode, hotelName);
  70.  
  71.     $.ajaxSetup({async:true, timeout: 5000});
  72.     $.get(queryURL,null, function(response) {
  73.         if(!displayed){
  74.             displayed=true;
  75.             //rewardsSiteResults.html("adfaasddsf");
  76.             var text = $(response).find("#col2");
  77.             $(text).find("script").remove();
  78.  
  79.             //console.log(text.html())
  80. //          $('<iframe id="someId"/>').appendTo('#rewardsSiteResults')
  81. //          .contents().find('body').append(response);
  82.             rewardsSiteResults.html("<div class='panel deal-panel rc-lr'>" + text.html() +"</div>");
  83.             //console.log(response);
  84.         }
  85.     },'html');
  86.    
  87.    
  88. //  GM_xmlhttpRequest({
  89. //        method: "GET",
  90. //        url: queryURL,
  91. //        headers: {
  92. //          "User-Agent": "Mozilla/5.0",    // If not specified, navigator.userAgent will be used.
  93. //          "Accept": "text/html"            // If not specified, browser defaults will be used.
  94. //        },
  95. //        onload: function(response) {
  96. //          // Inject responseXML into existing Object (only appropriate for XML content).
  97. //          alert(response.responseText);
  98. //          rewardsSiteResults.html("<div class='panel deal-panel rc-lr'>" + response.responseText +"</div>");
  99. //
  100. //          GM_log([
  101. //            response.status,
  102. //            response.statusText,
  103. //            response.readyState,
  104. //            response.responseHeaders,
  105. //            response.responseText,
  106. //            response.finalUrl,
  107. //            response.responseXML
  108. //          ].join("\n"));
  109. //        }
  110. //      });
  111.    
  112. });
  113.  
  114. function constructQueryURL(pincode, name) {
  115.     var queryURL = formatString(queryURLPlaceHolder, new Array(pincode, name));
  116.     return queryURL;
  117. }
  118.  
  119. function getAddressOfHotel() {
  120.     var addressMap = new Object();
  121.     addressMap[pinCodePlaceHolder] = '10013';
  122.     addressMap[hotelNamePlaceHolder] = 'Xicala';
  123.     return addressMap;
  124. }
  125.  
  126. // --------------- Utility Functions -------------------------------------
  127. function formatString(str, args) {
  128.     return str.replace(/{(\d+)}/g, function(match, number) {
  129.         return typeof args[number] != 'undefined' ? args[number] : match;
  130.     });
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement