| Line 8... |
Line 8... |
| 8 |
from dtr.utils import AmazonDealScraper
|
8 |
from dtr.utils import AmazonDealScraper
|
| 9 |
from dtr.utils import FlipkartScraper,NewFlipkartScraper
|
9 |
from dtr.utils import FlipkartScraper,NewFlipkartScraper
|
| 10 |
from dtr.storage.MemCache import MemCache
|
10 |
from dtr.storage.MemCache import MemCache
|
| 11 |
from functools import partial
|
11 |
from functools import partial
|
| 12 |
import threading
|
12 |
import threading
|
| 13 |
from dtr.utils.utils import getCashBack
|
- |
|
| 14 |
|
13 |
|
| 15 |
mc = MemCache("127.0.0.1")
|
14 |
mc = MemCache("127.0.0.1")
|
| 16 |
|
15 |
|
| 17 |
con = None
|
16 |
con = None
|
| 18 |
SOURCE_MAP = {'AMAZON':1,'FLIPKART':2,'SNAPDEAL':3,'SAHOLIC':4}
|
17 |
SOURCE_MAP = {'AMAZON':1,'FLIPKART':2,'SNAPDEAL':3,'SAHOLIC':4}
|
| Line 53... |
Line 52... |
| 53 |
pass
|
52 |
pass
|
| 54 |
|
53 |
|
| 55 |
|
54 |
|
| 56 |
url = "http://www.amazon.in/gp/offer-listing/%s/ref=olp_sort_ps"%(data['identifier'])
|
55 |
url = "http://www.amazon.in/gp/offer-listing/%s/ref=olp_sort_ps"%(data['identifier'])
|
| 57 |
lowestPrice = 0.0
|
56 |
lowestPrice = 0.0
|
| - |
|
57 |
print data['dealFlag']
|
| - |
|
58 |
print data['dealType']
|
| 58 |
try:
|
59 |
try:
|
| 59 |
if data['dealFlag'] ==1 and data['dealType'] ==1:
|
60 |
if data['dealFlag'] ==1 and data['dealType'] ==1:
|
| 60 |
print "Inside deal"
|
61 |
print "Inside deal"
|
| 61 |
deal_url = "http://www.amazon.in/dp/%s"%(data['identifier'].strip())
|
62 |
deal_url = "http://www.amazon.in/dp/%s"%(data['identifier'].strip())
|
| 62 |
print deal_url
|
63 |
print deal_url
|
| Line 82... |
Line 83... |
| 82 |
else:
|
83 |
else:
|
| 83 |
lowestPrice = data['available_price']
|
84 |
lowestPrice = data['available_price']
|
| 84 |
get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':0,'priceUpdatedOn':to_java_date(now)}}, multi=True)
|
85 |
get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':0,'priceUpdatedOn':to_java_date(now)}}, multi=True)
|
| 85 |
get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':0,'dealType':data['dealType']}}, multi=True)
|
86 |
get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':0,'dealType':data['dealType']}}, multi=True)
|
| 86 |
|
87 |
|
| - |
|
88 |
print "Returning info"
|
| 87 |
return {'_id':data['_id'],'available_price':lowestPrice,'in_stock':inStock,'source_id':1,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
89 |
return {'_id':data['_id'],'available_price':lowestPrice,'in_stock':inStock,'source_id':1,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
| 88 |
except:
|
90 |
except:
|
| 89 |
return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':1,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
91 |
return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':1,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
| 90 |
|
92 |
|
| 91 |
elif source_id ==4:
|
93 |
elif source_id ==4:
|
| Line 118... |
Line 120... |
| 118 |
else:
|
120 |
else:
|
| 119 |
lowestPrice = data['available_price']
|
121 |
lowestPrice = data['available_price']
|
| 120 |
get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':instock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
|
122 |
get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':instock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
|
| 121 |
get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':instock}}, multi=True)
|
123 |
get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':instock}}, multi=True)
|
| 122 |
|
124 |
|
| - |
|
125 |
print "Returning info"
|
| 123 |
return {'_id':data['_id'],'available_price':lowestPrice,'in_stock':instock,'source_id':4,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
126 |
return {'_id':data['_id'],'available_price':lowestPrice,'in_stock':instock,'source_id':4,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
| 124 |
|
127 |
|
| 125 |
except:
|
128 |
except:
|
| 126 |
return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':4,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
129 |
return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':4,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
| 127 |
|
130 |
|
| Line 166... |
Line 169... |
| 166 |
else:
|
169 |
else:
|
| 167 |
lowestOfferPrice = data['available_price']
|
170 |
lowestOfferPrice = data['available_price']
|
| 168 |
get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':inStock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
|
171 |
get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':inStock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
|
| 169 |
get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
|
172 |
get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
|
| 170 |
|
173 |
|
| - |
|
174 |
print "Returning info"
|
| 171 |
return {'_id':data['_id'],'available_price':lowestOfferPrice,'in_stock':inStock,'source_id':3,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
175 |
return {'_id':data['_id'],'available_price':lowestOfferPrice,'in_stock':inStock,'source_id':3,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
| 172 |
except:
|
176 |
except:
|
| 173 |
return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':3,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
177 |
return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':3,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
| 174 |
|
178 |
|
| 175 |
elif source_id == 2:
|
179 |
elif source_id == 2:
|
| Line 216... |
Line 220... |
| 216 |
else:
|
220 |
else:
|
| 217 |
lowestSp = data['available_price']
|
221 |
lowestSp = data['available_price']
|
| 218 |
get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':inStock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
|
222 |
get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':inStock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
|
| 219 |
get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
|
223 |
get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
|
| 220 |
|
224 |
|
| - |
|
225 |
print "returning"
|
| 221 |
return {'_id':data['_id'],'available_price':lowestSp,'in_stock':inStock,'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
226 |
return {'_id':data['_id'],'available_price':lowestSp,'in_stock':inStock,'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
| 222 |
|
227 |
|
| 223 |
except:
|
228 |
except:
|
| 224 |
return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
229 |
return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
|
| 225 |
else:
|
230 |
else:
|
| Line 240... |
Line 245... |
| 240 |
bestSellerPoints = 0
|
245 |
bestSellerPoints = 0
|
| 241 |
toUpdate = []
|
246 |
toUpdate = []
|
| 242 |
for similarItem in similarItems:
|
247 |
for similarItem in similarItems:
|
| 243 |
if mc.get("negative_deals") is None:
|
248 |
if mc.get("negative_deals") is None:
|
| 244 |
populateNegativeDeals()
|
249 |
populateNegativeDeals()
|
| 245 |
try:
|
- |
|
| 246 |
cashBack = getCashBack(similarItem['_id'], similarItem['source_id'], similarItem['category_id'], mc, 'localhost')
|
- |
|
| 247 |
if not cashBack or cashBack.get('cash_back_status')!=1:
|
- |
|
| 248 |
pass
|
- |
|
| 249 |
else:
|
- |
|
| 250 |
if cashBack['cash_back_type'] ==1:
|
- |
|
| 251 |
similarItem['available_price'] = similarItem['available_price'] - similarItem['available_price'] * float(cashBack['cash_back'])/100
|
- |
|
| 252 |
elif cashBack['cash_back_type'] ==2:
|
- |
|
| 253 |
similarItem['available_price'] = similarItem['available_price'] - float(cashBack['cash_back'])
|
- |
|
| 254 |
else:
|
- |
|
| 255 |
pass
|
- |
|
| 256 |
except Exception as cashBackEx:
|
- |
|
| 257 |
print cashBackEx
|
- |
|
| 258 |
print "Error calculating cashback."
|
- |
|
| 259 |
if similarItem['in_stock'] == 0 or similarItem['maxprice'] is None or similarItem['maxprice'] < similarItem['available_price'] or similarItem['_id'] in mc.get("negative_deals"):
|
250 |
if similarItem['in_stock'] == 0 or similarItem['maxprice'] is None or similarItem['maxprice'] < similarItem['available_price'] or similarItem['_id'] in mc.get("negative_deals"):
|
| 260 |
get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0 }})
|
251 |
get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0 }})
|
| 261 |
continue
|
252 |
continue
|
| 262 |
if similarItem['available_price'] < bestPrice:
|
253 |
if similarItem['available_price'] < bestPrice:
|
| 263 |
bestOne = similarItem
|
254 |
bestOne = similarItem
|