Skip to content

Instantly share code, notes, and snippets.

@dayanand-sourcebits
Created May 21, 2012 09:26
Show Gist options
  • Save dayanand-sourcebits/2761466 to your computer and use it in GitHub Desktop.
Save dayanand-sourcebits/2761466 to your computer and use it in GitHub Desktop.
sda
var getAllProducts = function(){
var i;
var product_divs;
var products = new Array();
try{
product_divs = document.getElementsByClassName('listing-card');
if(product_divs.length){
for(i=0; i<product_divs.length; i++){
if(product_divs[i].getElementsByTagName('IMG').length){
var element = product_divs[i].getElementsByTagName('IMG')[0];
var scrap_element = new scrapProduct(element)
var product_details = new Product(scrap_element)
console.log(product_details);
products.push(product_details);
}
}
}
else{
element = document.getElementById('fullimage_link1').getElementsByTagName('IMG')[0];
var scrap_product = new scrapProduct(element);
product_details = new Product(scrap_product);
products.push(product_details);
}
return JSON.stringify(products);
}
catch(err){
console.log(err);
return "{'error' : 'Not an valid product'}"
}
}
function product(x,y){
var element;
var i;
element = document.elementFromPoint(x,y);
try{
var scrap_product = new scrapProduct(element);
var product_details = new Product(scrap_product);
return JSON.stringify(product_details);
}
catch(err){
console.log(err);
return "{'error' : 'Not an valid product'}"
}
}
String.prototype.trim = function()
{
return String(this).replace(/^\s+|\s+$/g, '');
};
String.prototype.getPriceValue = function(){
return String(this).match(/(\d+)\.(\d+)|(\d+)/)[0];
}
String.prototype.strip_id = function()
{
return String(this).match(/(\/sku:(\d+)\/)/)[2];
}
var scrapProduct = function(element){
this.element = element,
this.product_div = this.element.parentElement.parentElement.parentNode,
this.url = function(){ product_div.getElementsByTagName('a')[1].href; },
this.retailer_name = function(){return 'Eastbay.com'},
this.get_retailer_id = function(){ this.url.stip_id(); },
this.large_image_url = function(){return this.element.src},
this.short_image_url = function(){return this.large_image_url},
this.name = this.element.alt.trim(),
this.current_price = function(){ return this.product_div.getElementsByClassName('product_price')[0].textContent.getPriceValue();} ,
this.msrp = this.current_price(),
this.getMetaDescription = function(){ element.alt.trim() },
this.short_description = function(){return;},
this.long_description = this.name
}
var Product = function(scrap_element){
try{
this.retailer_id = scrap_element.get_retailer_id(),
this.retailer_name = scrap_element.retailer_name(),
this.name = scrap_element.name,
this.large_image_url = scrap_element.large_image_url(),
this.short_image_url = scrap_element.short_image_url(),
this.current_price = scrap_element.current_price(),
this.msrp = scrap_element.msrp,
this.short_description = scrap_element.short_description(),
this.long_descrption = scrap_element.long_description,
this.url = scrap_element.url;
}
catch(err){}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment