Advertisement
Guest User

redfin_script

a guest
Aug 19th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         New Userscript
  3. // @namespace    http://tampermonkey.net/
  4. // @version      0.1
  5. // @description  try to take over the world!
  6. // @author       You
  7. // @match        https://www.redfin.com/*
  8. // @grant        none
  9. // @require http://code.jquery.com/jquery-latest.js
  10. // @run-at document-start
  11. // ==/UserScript==
  12.  
  13. (function() {
  14.     'use strict';
  15.  
  16.     var interval = setInterval(run, 200);
  17.     function run(){
  18.         console.log('run()');
  19.  
  20.         $('.kay-and-kevin').remove();
  21.  
  22.         var issues = [];
  23.  
  24.         // lot size
  25.         var lotSize = extractNumberFromString($(':contains("Lot Size"):last').next().text());
  26.  
  27.         // stop refreshing once lot size is available
  28.         if(typeof lotSize == 'number') {
  29.             clearInterval(interval);
  30.         }
  31.  
  32.         if(lotSize < 3000) {
  33.             issues.push(makeIssue('Small Lot - ' + lotSize, 'BAD'));
  34.         } else if(lotSize < 4000) {
  35.             issues.push(makeIssue('Medium Lot - ' + lotSize, 'OK'));
  36.         } else {
  37.             issues.push(makeIssue('Big Enough Lot - ' + lotSize, 'GOOD'));
  38.         }
  39.  
  40.         // parking
  41.         if($(':contains("No Parking"):last').text() === 'No Parking') {
  42.             issues.push(makeIssue('No Parking','BAD'));
  43.         } else {
  44.             issues.push(makeIssue('Has Parking','GOOD'));
  45.         }
  46.  
  47.         // redfin refund
  48.         var LEASE_BREAKING_FEE = 3426;
  49.         var refund = extractNumberFromString($('[data-rift-target="commission_refund"]').text());
  50.         if(refund >= LEASE_BREAKING_FEE) {
  51.             issues.push(makeIssue('Refund ($' + refund + ') greater than lease breaking fee ($' + LEASE_BREAKING_FEE + ') by $' + (refund-LEASE_BREAKING_FEE), 'GOOD'));
  52.         } else {
  53.             issues.push(makeIssue('Refund ($' + refund + ') less than lease breaking fee ($' + LEASE_BREAKING_FEE + ') by $' + (LEASE_BREAKING_FEE-refund), 'BAD'));
  54.         }
  55.  
  56.         // make list of issue divs
  57.         issues.forEach(function(issue) {
  58.             makeAlertDiv(issue).insertBefore( ".criticalComponents.pageComponentsContainer" );
  59.         });
  60.  
  61.         function makeIssue(issue, sev) {
  62.             return {
  63.                 issue: issue,
  64.                 sev: sev
  65.             };
  66.         }
  67.  
  68.         function makeAlertDiv(issue) {
  69.             var alertDiv = $('<div class="kay-and-kevin">'+issue.issue+'</div>');
  70.             switch(issue.sev) {
  71.                 case 'BAD':
  72.                     alertDiv.css('background-color', '#eca1a6');
  73.                     break;
  74.                 case 'OK':
  75.                     alertDiv.css('background-color', '#ffef96');
  76.                     break;
  77.                 case 'GOOD':
  78.                     alertDiv.css('background-color', '#b5e7a0');
  79.                     break;
  80.             }
  81.  
  82.             return alertDiv;
  83.  
  84.         }
  85.  
  86.         function extractNumberFromString(str) {
  87.             return parseInt(str.replace(/[^0-9\.]/g, ''),10);
  88.         }
  89.  
  90.     }
  91.  
  92. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement