Subversion Repositories SmartDukaan

Rev

Rev 14729 | Rev 14748 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 14729 Rev 14743
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
13
 
14
 
14
mc = MemCache("127.0.0.1")
15
mc = MemCache("127.0.0.1")
15
 
16
 
16
con = None
17
con = None
17
SOURCE_MAP = {'AMAZON':1,'FLIPKART':2,'SNAPDEAL':3,'SAHOLIC':4}
18
SOURCE_MAP = {'AMAZON':1,'FLIPKART':2,'SNAPDEAL':3,'SAHOLIC':4}
Line 52... Line 53...
52
                pass
53
                pass
53
            
54
            
54
            
55
            
55
            url = "http://www.amazon.in/gp/offer-listing/%s/ref=olp_sort_ps"%(data['identifier'])
56
            url = "http://www.amazon.in/gp/offer-listing/%s/ref=olp_sort_ps"%(data['identifier'])
56
            lowestPrice = 0.0
57
            lowestPrice = 0.0
57
            print data['dealFlag']
-
 
58
            print data['dealType']
-
 
59
            try:
58
            try:
60
                if data['dealFlag'] ==1 and data['dealType'] ==1:
59
                if data['dealFlag'] ==1 and data['dealType'] ==1:
61
                    print "Inside deal"
60
                    print "Inside deal"
62
                    deal_url = "http://www.amazon.in/dp/%s"%(data['identifier'].strip())
61
                    deal_url = "http://www.amazon.in/dp/%s"%(data['identifier'].strip())
63
                    print deal_url
62
                    print deal_url
Line 83... Line 82...
83
            else:
82
            else:
84
                lowestPrice = data['available_price']
83
                lowestPrice = data['available_price']
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)
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)
86
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':0,'dealType':data['dealType']}}, multi=True)
85
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':0,'dealType':data['dealType']}}, multi=True)
87
            
86
            
88
            print "Returning info"
-
 
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']}
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']}
90
        except:
88
        except:
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']}
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']}
92
        
90
        
93
    elif source_id ==4:
91
    elif source_id ==4:
Line 120... Line 118...
120
            else:
118
            else:
121
                lowestPrice = data['available_price']
119
                lowestPrice = data['available_price']
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)
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)
123
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':instock}}, multi=True)
121
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':instock}}, multi=True)
124
            
122
            
125
            print "Returning info"    
-
 
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']}
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']}
127
    
124
    
128
        except:
125
        except:
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']}
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']}
130
        
127
        
Line 169... Line 166...
169
            else:
166
            else:
170
                lowestOfferPrice = data['available_price']
167
                lowestOfferPrice = data['available_price']
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)
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)
172
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
169
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
173
            
170
            
174
            print "Returning info"
-
 
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']}
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']}
176
        except:
172
        except:
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']}
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']}
178
        
174
        
179
    elif source_id == 2:
175
    elif source_id == 2:
Line 220... Line 216...
220
            else:
216
            else:
221
                lowestSp = data['available_price']
217
                lowestSp = data['available_price']
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)
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)
223
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
219
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
224
                
220
                
225
            print "returning"    
-
 
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']}
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']}
227
            
222
            
228
        except:
223
        except:
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']}
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']}
230
    else:
225
    else:
Line 245... Line 240...
245
    bestSellerPoints = 0
240
    bestSellerPoints = 0
246
    toUpdate = []
241
    toUpdate = []
247
    for similarItem in similarItems:
242
    for similarItem in similarItems:
248
        if mc.get("negative_deals") is None:
243
        if mc.get("negative_deals") is None:
249
            populateNegativeDeals()
244
            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."
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"):
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"):
251
            get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0 }})
260
            get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0 }})
252
            continue
261
            continue
253
        if similarItem['available_price'] < bestPrice:
262
        if similarItem['available_price'] < bestPrice:
254
            bestOne = similarItem
263
            bestOne = similarItem